
Hi, 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. Best, -da

Hi Daniel, The sum total of my understanding here is in the “measure rotation” description: <http://www.rbvi.ucsf.edu/chimera/docs/UsersGuide/midas/measure.html#rotation> The matrix describes a rotation and a translation in the coordinate system of the first model in the command. I believe this is in xyz coordinates, not grid units. You can see grid indices corresponding to XYZ (0,0,0) in the Volume Viewer by using menu: Features… Coordinates to show that section: <http://www.rbvi.ucsf.edu/chimera/docs/ContributedSoftware/volumeviewer/volumeviewer.html#coordinates> Alternatively (going back to the“measure rotation” description) the transformation is described as an axis, rotation around that axis (not center of rotation, but I believe the axis is all you need, pinned in space by a point on that axis which is also given) and shift parallel to that axis. Our expert in this area is away currently, so although he may be able to shed more light on this and whether there is a problem with your calculations, it may be a while, sorry. I hope this helps, Elaine ----- Elaine C. Meng, Ph.D. UCSF Chimera(X) team Department of Pharmaceutical Chemistry University of California, San Francisco
On Apr 9, 2019, at 4:17 PM, Daniel Asarnow <asarnow@msg.ucsf.edu> wrote:
Hi, 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.
Best, -da _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

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-proc... <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. Tom
On Apr 9, 2019, at 4:17 PM, Daniel Asarnow wrote:
Hi, 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.
Best, -da _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

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). Best, -da On Wed, Apr 10, 2019 at 12:29 PM Tom Goddard <goddard@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-proc...
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.
Tom
On Apr 9, 2019, at 4:17 PM, Daniel Asarnow wrote:
Hi, 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.
Best, -da _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

Hi Daniel, 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. Tom
On Apr 13, 2019, at 6:42 PM, Daniel Asarnow <asarnow@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).
Best, -da
On Wed, Apr 10, 2019 at 12:29 PM Tom Goddard <goddard@sonic.net <mailto:goddard@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-proc... <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.
Tom
On Apr 9, 2019, at 4:17 PM, Daniel Asarnow wrote:
Hi, 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.
Best, -da _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu <mailto:Chimera-users@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@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

Got it, thanks. My code is working exactly as expected now with the transforms copied from fit-in-map. Best, -da On Mon, Apr 15, 2019 at 12:02 PM Tom Goddard <goddard@sonic.net> wrote:
Hi Daniel,
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.
Tom
On Apr 13, 2019, at 6:42 PM, Daniel Asarnow <asarnow@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).
Best, -da
On Wed, Apr 10, 2019 at 12:29 PM Tom Goddard <goddard@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-proc...
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.
Tom
On Apr 9, 2019, at 4:17 PM, Daniel Asarnow wrote:
Hi, 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.
Best, -da _______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
_______________________________________________ Chimera-users mailing list: Chimera-users@cgl.ucsf.edu Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
participants (3)
-
Daniel Asarnow
-
Elaine Meng
-
Tom Goddard