[Chimera-users] Origin of transformation matrices
goddard at sonic.net
Mon Apr 15 12:02:01 PDT 2019
The translation and rotation are given for the physical units (Angstroms), not grid index units. Chimera almost always reports things in physical units. The volume origin index in the Volume Viewer is a rare exception where it is reported in grid index units, and it has "index" in the name to clarify that.
In Chimera the map data values are at the integer grid index values, not half-integer. In other words the density value at grid index 10,15,20 is considered top be a sample at exactly that grid point in physical space.
> On Apr 13, 2019, at 6:42 PM, Daniel Asarnow <asarnow at msg.ucsf.edu> wrote:
> Thanks for the clarification, Tom, and sorry I didn't see your message right away.
> Is the translation from measure rotation also in coordinate units or grid units? For measure center I know that for volumes the coordinates are always in grid units (but in Angstroms for the volume eraser and sets of atoms).
> The cryo-EM processing programs predominantly use the convention that the origin of an image or volume is N // 2, so the indices are in [0, N - 1] and the coordinates are in [-N // 2, N // 2 - 1], i.e. there is one more voxel on the negative side of the axes and the coordinate (0, 0, 0) is defined as the center of the pixel at index N // 2.
> Is Chimera using the convention that the pixels are at the half-integer coordinates? It's the difference between using N // 2 and N // 2 +/- 0.5 to form the origin when recovering the translation around (0, 0, 0) using the formula R * O + T - O. (And assuming the origin index is 0, since none of the processing packages are setting a different value in output file headers).
> On Wed, Apr 10, 2019 at 12:29 PM Tom Goddard <goddard at sonic.net <mailto:goddard at sonic.net>> wrote:
> Hi Daniel,
> The measure rotation command and fit in map output reports a transformation matrix that is a rotation and a translation that maps the coordinates of one model to the coordinates of another model, xyz -> R*xyz + T where R is the 3x3 rotation matrix and T is the translation vector. These are listed as a 3x4 matrix with the first 3 columns being the rotation and the 4th column being the translation.
> The "origin" of density map is the position in the volume coordinate system where x,y,z = 0,0,0. This is often *not* (boxsize/2, boxsize/2, boxsize/2). For instance, for a box size of 100,100,100 the origin may be at grid point 49,49,49 instead of 50,50,50. The exact center of the volume is at grid point 49.5,49.5,49.5 in this case where grid indices start at 0, ie 0-99.
> An MRC file has no header value that says whether the origin is set. In other words, in the MRC file, the origin is always set, even if it is 0,0,0. In fact there are two origins specified in the MRC header. Chimera usually uses the xorigin, yorigin, zorigin values
> http://www2.mrc-lmb.cam.ac.uk/research/locally-developed-software/image-processing-software/#image <http://www2.mrc-lmb.cam.ac.uk/research/locally-developed-software/image-processing-software/#image>
> for cryoEM maps, but for CCP4 files which is nearly an identical format but used mostly for x-ray crystallography it will instead use the nxstart, nystart, nzstart header values. Whether a file is MRC or CCP4 is given by word 53 of the header.
> The origin being used by Chimera is reported in the Volume Viewer, menu Features / Coordinates, called Origin Index and is grid index units (not Angstroms) with grid indices starting at 0.
>> On Apr 9, 2019, at 4:17 PM, Daniel Asarnow wrote:
>> What's the origin for the rotation/translation output by measure rotation or fit-in-map results? If the origin index is 0, is the transformation calculated around (0, 0, 0)?
>> I'm extending my software for transforming single-particle EM alignment parameters to accept a transformation matrix copy-pasted from Chimera and am having a slight difficulty. For most EM maps, the origin MRC header is not set, and the origin appears to be (0,0,0). Thus, if R and V are the rotation and translation from Chimera, the formula R * O + V - O where O is the real origin (boxsize / 2, boxsize / 2, boxsize / 2) should give the correct translation. However, it's exactly one pixel short.
>> Chimera-users mailing list: Chimera-users at cgl.ucsf.edu <mailto:Chimera-users at cgl.ucsf.edu>
>> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users <http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users>
> Chimera-users mailing list: Chimera-users at cgl.ucsf.edu
> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Chimera-users