-
Notifications
You must be signed in to change notification settings - Fork 1
PhantomTransform
This utility allows you to apply geometrical transformations (rotations, shifts and scalings) to phantom descriptions. This is very useful in order to produce realistic phantoms from PDB. To rotate a phantom you can choose among three different methods: rotation around an axis, rotation after an Euler matrix, rotation such that a given axis is vertical. The order of the operations is rotate, scale and shift. Although the three operations can be performed in a single command we recommend to issue them separately so that there cannot be any confusion
$ pantom_transform ...
Parameters
- `` Apply a geometrical transformation to a phantom description
- ``
- `` Supply this flag if the file in the
-i
option is a PDB - `` Move the center of mass of the PDB to the origin of coordinates
- `` Rotate a phantom using these three angles to generate the rotation matrix. Click here to have a deeper knowledge on Euler angles. The sign of the tilt angle in this program is the opposite to the one which must be supplied to the Spider routine
rt 3d
-
-align_with_Z[[X],[y],[z]]
Rotate a volume such that(x,y,z)
is aligned withZ
. Notice that the brackets are important -
-axis[[X],[y],[z]] -ang [ang]
This is a turn of [ang] degrees around the desired axis -
-shift[[X],[y],[z]]
Apply a shift to the volume. The shift is expressed in the same units as the feature coordinates within the phantom -
-scale[[X],[y],[z]]
This option scales the position of the features (not their size)
Assume we have a PDB phantom calledLAT.pdb
with an hexamer of a protein. We want to produce a double hexamer where both are confronted head-to-head. We want to rock the hexamers so that the angle between the central axes is 20 degrees. UsePDBPhantom to convert it to a phantom description based in blobs
$ xmipp_convert_pdb2vol -i mycenteredpdbfile.pdb
Compute the maximumZ
center of all blobs inLAT.descr
. This value gives you an idea of the shift amount to be used. Assume that this maximum value is 42.76. So we decide to shift the hexamer by -44 in order to create the upper hexamer.
$ xmipp_phantom_transform -i LAT.descr -o LAT_0.descr -shift "[0,0,-44]"
$ xmipp_phantom_transform -i LAT_0.descr -o LAT_upper.descr -axis "[0,1,0]" -ang 10
Now we will create the corresponding lower hexamer by a 180 degrees rotation of the upper hexamer over the Y axis
$ xmipp_phantom_transform -i LAT_0.descr -o LAT_lower.descr -axis "[0,1,0]" -ang 170
Now it's time to combine both phantoms in a single volume. You may create a single phantom description simply by editing both files and appendingLAT_lower.descr
toLAT_upper.desc
r and removing the header information ofLAT_lower.descr
. Alternatively, you can create a Spider volume by converting both phantoms to voxels and adding algebraically the volumes.
$ xmipp_create_phantom -i LAT_upper.descr -o LAT_upper.vol
$ xmipp_create_phantom -i LAT_lower.descr -o LAT_lower.vol
$ xmipp_operate # LAT_upper.vol + LAT_lower.vol = double_hexamer.vol
Here you are a picture of the double hexamer
/lat.jpg
In the following example we look for a symmetry axis of a PDB file and correct it in the PDB. The search for the symmetry is performed using the Xmipp programFindCenter3D which only works with voxels
$ xmipp_phantom_transform -i mypdbfile.pdb -o mycenteredpdbfile.pdb -pdb -center_pdb
$ xmipp_convert_pdb2vol -i mycenteredpdbfile.pdb
$ xmipp_findcenter3D -i mycenteredpdbfile.pdb -rot 0 360 5 -tilt 0 2 0.1 -rot_sym 7
The best axis provided by findcenter3D is rot=270 and tilt=1.6
$ xmipp_phantom_transform -i mypdbfile.pdb -o mycorrectedpdbfile.pdb -pdb -center_pdb -euler 270 1.6 0
--Main.AlfredoSolano - 29 Jan 2007