Hi Horacio,
actually, for this problem, Biskit doesn't have a readymade solution.
The Biskit PDBModel is arraybased. There is no builtin topology or
connectivity information. So we don't have functions to turn around a
certain bond. What you would have to do is something like this:
1) load PDB
import Biskit as B
m = B.PDBModel('your_file.pdb')
2) split the PDBModel into two, right at the bond you want to turn.
E.g. if your bond is between atom 500 and atom 501 (first atom is 0)
then:
m1 = m.take( range(0,501) ) ## all from 0 .. (including) 500
m2 = m.take( range(501, len(m) ) ) ## all from 501 ... end
3) Now you have to calculate your rotation matrix yourself, sorry,
can't help you with that. The coordinates of the first atom of m2 are:
origin = m2.xyz[0]
rotation = zeros( 3,3 )
.... now calculate your rotation matrix ...
translation = numpy.array( [0.0, 0.0, 0.0]) # no translation
4) apply the rotation to second half of the PDB:
m2 = m2.transform( rotation, translation )
5) join the two models back together
mfinal = m1.concat( m2 )
mfinal.writePdb( 'your_result.pdb')
Actually, you can probably make things easier by centering your
coordinates on the first atom after the bond (in step 1)
m.xyz = m.xyz  m.xyz[501]
If I am not messing this up, this should translate the coordinates
such that atom 501 is (0,0,0)
You still have to figure out how to create your rotation matrix. I am
not mathematician enough for that. The nice thing is though that once
you have a rotation matrix for a turn by 1 degree, you can just apply
the same matrix in a loop 360 times.
So yes, that's about as good as it gets with Biskit. UCSF Chimera has
some model building options and is also python based. Perhaps you can
find readytogo solution there. I didn't test the code I wrote up
there, there might be typos or errors. Ah, and if you come up with a
general solution, don't hesitate to send me your modification and I am
happy to add a new method to PDBModel :)
Good luck!
Greetings from Montreal,
Raik
On Mon, Mar 11, 2013 at 4:17 PM, Horacio PérezSánchez <horacio@...> wrote:
> Good morning,
>
> I have recently read about BISKIT. For some publication that we have ready
> to submit we need to add some calculations; for some PDB structures we need
> to focus on a concrete dihedral angle and generate all conformations
> (different pdb files for each new value of the angle) when we change that
> angle by increments. I wonder where could I find just this exact information
> (I do not need anything else), or if there is a tutorial that explains this
> part.
>
> Thanks,
> Horacio
>
> ==============================================
> Horacio PérezSánchez, PhD
> Parallel Computer Architecture Group: http://www.um.es/gacop
> School of Computer Science, University of Murcia (Spain)
> Email: horacio@...
> Tel: + 34 868 88 8509
> ==============================================
>
>
>
>


___________________________________
Raik Grünberg
http://www.raiks.de/contact.html
___________________________________
