-
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
-ioption 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.descr 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