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 <[email protected]> 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.