Re: [COOT] Map rotation and translation

2022-01-28 Thread Helge Paternoga

Thank you Paul for the explanation/clarification.

Indeed, it would be enough for me at the moment if I could align maps 
according to the fit I get in ChimeraX.


The "transform_map() function" sounds exactely like what I was looking 
for! Could you perhaps elaborate if I filled in the parameters correctly 
(see below)?


ChimeraX output:

Fit map job122_class1 in map job145_class1+3 using 378391 points
correlation = 0.9626, correlation about mean = 0.8182, overlap = 1.076e+04
steps = 40, shift = 0.009, angle = 0.00377 degrees

Position of job122_class1 (#1) relative to job145_class1+3 (#4) coordinates:
Matrix rotation and translation
0.3251 -0.00473394 -0.01060925 2.07918736
0.00471099 0.8651 -0.00218664 -0.57281865
0.01061946 0.00213651 0.4133 -1.65452589
Axis 0.18292243 -0.89823687 0.39963723
Axis point 165.64873479 0. 190.89655799
Rotation angle (degrees) 0.67707290
Shift along axis 0.23364667


Coot command:

Based on |(transform-map /imol/ /rotation-matrix/ /trans/ /point 
radius/)| from the user manual:


(transform-map 1 (list 0.3251 -0.00473394 -0.01060925 0.00471099 
0.8651 -0.00218664 0.01061946 0.00213651 0.4133) (list 
2.07918736 -0.57281865 -1.65452589) (list 181.1739959716797 
205.94700622558594 198.18699645996094) 10)


The value for "point" I took from running |(rotation-centre)| in Coot, 
is that correct? The resulting map fragment seems to be aligned quite 
well to the resampled map.|

|

I set the radius to 10 for testing purposes, is there a way to use the 
full map by default?



Best,

Helge





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/


Re: [COOT] Map rotation and translation

2022-01-28 Thread Marcin Wojdyr
Paul,

both your emails are partly correct.
Rotation+translation, called skew transformation (words 25-37) is
supported by CCP4 maplib and PyMOL.
It's mentioned in the MRC/CCP4 2000 specification on CCP-EM page:
https://www.ccpem.ac.uk/mrc_format/mrc2000.php
although it's not mentioned in the 2014 version of this spec.
I don't know if any program apart from PyMOL is using it.

When Tom wrote about the shift of origin, he must have meant N[XYZ]START fields.

Marcin

On Fri, Jan 28, 2022 at 6:00 AM Paul Emsley  wrote:
>
> On 27/01/2022 01:13, Paul Emsley wrote:
> >
> > 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).
> >
>
> After having read Tom's reply about these
> rotation/translation/interpolation issues on the ChimeraX mailing list
> I'd like to correct a misunderstanding I had about what Coot wasn't
> doing. There is an unused (by Coot) slot in the CCP4/MRC map header, I
> had thought that the slot allows rotation and translation but it does
> not - it allows a shift of origin (translation) only. Everything Tom
> said was on the money.
>
> 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/



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/


Re: [COOT] Map rotation and translation

2022-01-27 Thread Paul Emsley

On 27/01/2022 01:13, Paul Emsley wrote:


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).




After having read Tom's reply about these 
rotation/translation/interpolation issues on the ChimeraX mailing list 
I'd like to correct a misunderstanding I had about what Coot wasn't 
doing. There is an unused (by Coot) slot in the CCP4/MRC map header, I 
had thought that the slot allows rotation and translation but it does 
not - it allows a shift of origin (translation) only. Everything Tom 
said was on the money.


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/


Re: [COOT] Map rotation and translation

2022-01-26 Thread Paul Emsley

On 27/01/2022 01:13, Paul Emsley wrote:



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


This has been published now:

https://www.sciencedirect.com/science/article/pii/S1047847721001313



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/


Re: [COOT] Map rotation and translation

2022-01-26 Thread Paul Emsley

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.5193 -0.00918946 0.00341831 2.19650599
0.00918323 0.5615 0.00183397 -4.59169731
-0.00343502 -0.00180249 0.9248 1.52902230
Axis -0.18233729 0.34363524 0.92123175
Axis point 479.76292846 225.20927991 0.
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/