On 26/01/2022 22:18, Helge Paternoga wrote:
Dear all,
Continuing from this topic over at the ChimeraX user list:
http://plato.cgl.ucsf.edu/pipermail/chimerax-users/2022-January/003177.html
I would like to ask if it is possible currently (or to introduce) the
ability in Coot to rotate and translate a cryo-EM map according to the
output of the ChimeraX "fitmap" command.
This would be very useful in comparing the map quality of volumes e.
g. from the same classification. Resampling the volumes in ChimeraX
changes the map and is therefore not a good option when one wants to
compare subtle differences in the densities.
I believe the information provided by "fitmap" adheres to the ChimeraX
Positions Format described here:
https://rbvi.ucsf.edu/chimerax/docs/user/formats/positions.html
The output from "fitmap" to the log appears a bit different though, so
I am not sure which one would be useable in the end:
Example:
tool show 'Fit in Map'Fit map run_class001.mrc in map run_class001.mrc
using 159932 points
correlation = 0.9589, correlation about mean = 0.5393, overlap = 82.65
steps = 48, shift = 2.47, angle = 0.571 degrees
Position of run_class001.mrc (#1) relative to run_class001.mrc (#2)
coordinates:
Matrix rotation and translation
0.99995193 -0.00918946 0.00341831 2.19650599
0.00918323 0.99995615 0.00183397 -4.59169731
-0.00343502 -0.00180249 0.99999248 1.52902230
Axis -0.18233729 0.34363524 0.92123175
Axis point 479.76292846 225.20927991 0.00000000
Rotation angle (degrees) 0.57135182
Shift along axis -0.56979010
Alas, I have not done what I think you want (which is to say, to use the
extented CCP4/MRC map header information to represent an arbitrary
rotation/translation).
In my tests, transforming the map changes the values by 0.1% or less and
that is often acceptable it seems. You could validate your results by
making the transformation the other way around. You could use refmac to
calculate the fourier coefficients and write an mtz file. On reading
that into Coot you can control the Shannon super-sampling rate and that
will reduce the interpolation errors.
To apply the transformation above to a map in Coot, one would use the
function transform_map() function:
# transform_map(imol, mat, trans, about_pt, radius, space_group, cell)
#
# where space_group is a "P1" and cell is a list of 6 parameters, where
the cell angles are in degrees (you can use the input cell)
You can access the cell parameters using the cell() function. The mat is
a 3x3 matrix list and the trans in this case is
[2.1965059, -4.5916973, 1.5290223]
I would like to draw your attention to the following paper and the EMDA
project by my colleagues, it is a cryo-EM map and model manipulation
toolbox, maybe that has what you need:
https://www.biorxiv.org/content/10.1101/2021.07.26.453750v2
Paul
########################################################################
To unsubscribe from the COOT list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=COOT&A=1
This message was issued to members of www.jiscmail.ac.uk/COOT, a mailing list
hosted by www.jiscmail.ac.uk, terms & conditions are available at
https://www.jiscmail.ac.uk/policyandsecurity/