Print

Print


Hi James,

carving and normalization in PyMOL are really independent things. Normalization happens during map loading (if normalize_ccp4_maps is on). Carving happens during mesh generation (it's an argument of the isomesh command) and is really just a way to limit mesh display to an area of interest. You can do a simple test and create a mesh of an entire map, and a carved mesh around a ligand or residue, and both should match perfectly. Example:

fetch 1rx1, async=0
fetch 1rx1, async=0, type=2fofc
isomesh meshfull, 1rx1_2fofc, 1.0
isomesh meshcarve, 1rx1_2fofc, 1.0, organic, 2.0, 1, 2.0
set grid_mode
disable 1rx1
set_view (\
     0.929457247,    0.368711948,    0.012666196,\
    -0.360624999,    0.900760233,    0.242035180,\
     0.077831753,   -0.229529440,    0.970184207,\
     0.000016911,    0.000072468,  -31.454853058,\
    26.290172577,   59.373352051,   15.045225143,\
    29.803743362,   33.103614807,  -20.000000000 )

Expanding the map also happens during mesh generation and does nothing to the data, except replicating it.

Using your tool of choice to normalize a map before loading into PyMOL is for sure a good practice and solves the issue that PyMOL doesn't normalize across the asymmetric unit, but the raw data (if raw data != integral number of asymmetric units).

Cheers,
  Thomas

On 03 Jun 2015, at 14:14, James Holton <[log in to unmask]> wrote:

> I have never trusted Pymol's "normalization" of maps, because it has never been clear to me if it does the normalization before or after the "carve".  If it is after, then you have a serious interpretation problem: the "1 sigma" level will be MUCH lower than if the rest of the map were not set to zero.  In this situation if you set the "carve" right the map will look a LOT more like the coordinates than it should. In fact, if you "normalize" a map using anything but an integral number of asymmetric units your "1 sigma" level will not be the same as if it were done properly.  With pymol you usually have to extend the map to "cover" the protein of interest, and this extended map is seldom an integral number of asymmetric units.
> 
> So, I have always taken to normalizing the map myself (using mapmask) with a single ASU or single cell as the map extent, and THEN extending the map to cover the PDB (using a completely different run of mapmask) and only then load it into pymol. I always turn off map normalization in pymol.  I have also never used "carve", as my thesis adviser strongly disapproved of the practice.  Mostly because of the potential for bias mentioned above.
> 
> Do you really have to "carve" for your density to be clear?
> 
> -James Holton
> MAD Scientist
> 
> 
> On 5/29/2015 1:15 PM, Emilia C. Arturo (Emily) wrote:
>> Hello.
>> I am struggling with an old question--old because I've found several discussions and wiki bits on this topic, e.g. on the PyMOL mailing list (http://sourceforge.net/p/pymol/mailman/message/26496806/ and http://www.pymolwiki.org/index.php/Display_CCP4_Maps), but the suggestions about how to fix the problem are not working for me, and I cannot figure out why. Perhaps someone here can help:
>> 
>> I'd like to display (for beauty's sake) a selection of a model with the map about this selection. I've fetched the model from the PDB, downloaded its 2mFo-DFc CCP4 map, loaded both the map and model into both PyMOL (student version) and Coot (0.8.2-pre EL (revision 5592)), and decided that I would use PyMOL to make the figure. I notice, though, that the map 'level' in PyMOL is not equivalent to the rmsd level in Coot, even when I set normalization off in PyMOL. I expected that a 1.0 rmsd level in Coot would look identical to a 1.0 level in PyMOL, but it does not; rather, a 1.0 rmsd level in Coot looks more like a 0.5 level in PyMOL. Does anyone have insight they could share about the difference between how Coot and PyMOL loads maps? Maybe the PyMOL 'level' is not a rmsd? is there some other normalization factor in PyMOL that I should set? Or, perhaps there is a mailing list post out there that I've missed, to which you could point me. :-)
>> 
>> Alternatively, does anyone have instructions on how to use Coot to do what I'm trying to do in PyMOL? In PyMOL I displayed the mesh of the 2Fo-Fc map, contoured at "1.0" about a 3-residue-long 'selection' like so: isomesh map, My_2Fo-Fc.map, 1.0, selection, carve=2.0, and after hiding everything but the selection, I have a nice picture ... but with a map at a level I cannot interpret in PyMOL relative to Coot :-/
>> 
>> Regards,
>> Emily.

-- 
Thomas Holder
PyMOL Principal Developer
Schrödinger, Inc.