Skip to content

PhantomTransform

Adrian Quintana edited this page Dec 11, 2017 · 1 revision

Phantom Transform

Purpose

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

Usage


$ 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 routinert 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)

Examples and Notes

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

Clone this wiki locally