On 03/10/2020 19:11, Jade Shi wrote:

ThanksĀ Paul for the quick reply! I wasn't aware of Coot's Transform Map by LSQ Fit function, I'll definitely try it out. Is there a command-line equivalent of this that I could use for batch processing multiple structures/maps that I want to align to a single reference? I'm using Pymol now because it was recommended to me, but clearly there are better solutions...



------------------------------------------------------------------------
*From:* Paul Emsley <[email protected]>
*Sent:* Friday, October 2, 2020 11:44 PM
*To:* Jade <[email protected]>; [email protected] <[email protected]>
*Subject:* Re: PyMol-exported CCP4 maps not being read correctly in Coot

On 02/10/2020 23:30, Jade wrote:
> I'm trying to use PyMol's matrix_copy command to align some PDB/CCP4 map pairs, and I ran through the first example outlined here: https://pymolwiki.org/index.php/Matrix_Copy, which fetches two PDBs/maps, 1rx1 and 3dau, aligns the 1rx1 PDB to 3dau, and then matrix_copy's the 1rx1 map to the aligned 1rx1 PDB.
>
> The resulting maps look well-aligned in Pymol, but when I save these maps as .ccp4 files and load them into Coot, Coot doesn't seem to register the movement of the 1rx1 map. I chatted with Schrodinger about this and they suspect that Coot is not reading the skew transformation flags SKWMAT and SKWTRN that are written by Pymol, so the map stays in its original, unaligned position. I was wondering if anyone has run into this same issue, and whether there is an easy fix.


This is the reference that I'm using for CCP4/MRC maps:

https://www.ccpem.ac.uk/mrc_format/mrc2014.php

It doesn't mention skew.

After a bit of googling:

http://legacy.ccp4.ac.uk/html/maplib.html

This doesn't mention skew - but I've only just discovered it.

So yes, Coot does ignore the skew. It would be nice to have - I'll try
to get it done for 0.9.2.

So that answers your question.

But... I must ask... why are you even using PyMOL at all? Why not just
use the map transformation tool built into Coot?

Calculate -> Map Tools -> Transform Map by LSQ fit

Here, I did that example.

(It doesn't do SSM superposition via the gui - you'd have to cut and
paste the matrix)




There a command line interface to almost everything in Coot - because that's the way I write code... i.e. I'll write a test script, that, in the beginning, inevitably fails and keep adding code behind the API until it doesn't. Then I'll add a GUI to wrap that function. I mostly use Coot in script/command-line mode.


You will need to change the attached script a bit to call transform_map_using_lsq_matrix for various values of imol_2 and imol_map_2. And how those are created depends on where the files are on you file system - so that's an exercise for the reader.


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/
radius = 20

imol_1 = read_pdb('coot-download/pdb1rx1.ent')
imol_2 = read_pdb('coot-download/pdb3dau.ent')

imol_map_1 = make_and_draw_map('coot-download/1rx1_map.mtz', 'FWT', 'PHWT', "", 0, 0)
imol_map_2 = make_and_draw_map('coot-download/3dau_map.mtz', 'FWT', 'PHWT', "", 0, 0)

set_go_to_atom_molecule(imol_1)
set_go_to_atom_chain_residue_atom_name("A", 100, "CA")

new_map_number = transform_map_using_lsq_matrix(imol_1, "A", 50, 150,
                                                imol_2, "A", 50, 150,
                                                imol_map_2, rotation_centre(), radius)

Reply via email to