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)