[Chimera-users] Creating maps from models for map/model FSC calculations
Ardan Patwardhan
ardan at ebi.ac.uk
Fri Jun 3 02:40:01 PDT 2016
Dear Tom
On 2 Jun 2016, at 20:04, Tom Goddard <goddard at sonic.net> wrote:
> Hi Ardan,
>
> Your Fourier shell correlation plot is between resampled and not resampled molmap maps, right?
Yes this is correct
> I think the following idea may reconcile my observations that resampling lowers resolution a good bit and your observation that the FSC is nearly 1 between resampled and non-resampled maps. If you smooth a map by convolution with a Gaussian, this is equivalent to multiplying point-wise times a Gaussian in Fourier space. The Gaussian is spherically symmetric so every “shell” is simply scaled by a constant value. This means the Fourier shell correlation between the smoothed and unsmoothed map will be 1.0 at all resolutions. In other words, the FSC doesn’t show at all the modulation by a Gaussian. Resampling is not equivalent to convolution with a Gaussian, but it may have a nearly spherically symmetric modulation in Fourier space, so the FSC doesn’t show the smoothing effect of resampling. Smoothing reduces the high frequencies so it is quite visible when comparing contour surfaces or looking at a difference map.
I agree that the nature of the Gaussians may mask the smoothing effect on the FSC. I am using your new version of mol map (with resampling) as the default for making the maps.
Many thanks again for the help in implementing this feature and investigating the issue.
Best wishes
>
> Tom
>
>
>> On Jun 2, 2016, at 2:25 AM, Ardan Patwardhan <ardan at ebi.ac.uk> wrote:
>>
>> Dear Tom
>>
>> Thank you so much for taking the time to investigate this and for implementing the change to mol map so quickly. I have downloaded it and can confirm that it works. I also did a small investigation from my perspective to look at the difference between the resampled and non-resampled maps.
>> My work flow
>> 1) load Beta Galactosidase map
>> 2) use fit to map with 3j7h
>> 3) create map using the old way:
>> molmap #1 3 model #4
>> vop resample #4 on #0 model #5
>> 4) create map using your new option
>> molmap #1 3 on #0 model #3
>>
>> To compare the two maps I did what you did to look at the difference and also at the Fourier shell correlation between the two maps ( I have attached the curve to the file).
>> When I look at the difference there is a lot that pops up but when I vary the density I can usually see comparable features (side chains etc) but not necessarily at exactly the same densities. So there seem to be small differences but I am not sure to what extent this will affect the FSC up to 3A resolution. From the FSC plot below the FSC is above 0.98 up to 3A resolution. So I would almost be tempted to say that both methods give similar maps for the purposes of FSC calculations. I tried this on a TRPV1 model as well and got similar results.
>>
>> Best wishes
>>
>>
>> <PastedGraphic-1.png>
>>
>> On 28 May 2016, at 00:03, Tom Goddard <goddard at sonic.net> wrote:
>>
>>> Hi Ardan,
>>>
>>> Today I added an option "onGrid" to the molmap command so that the sum of Gaussians can be computed directly on the grid of a reference map, instead of having molmap determine the bounding grid automatically and then interpolating the calculated map on the grid of the reference map. This allows you to avoid the interpolation step.
>>>
>>> I tested this to see how much interpolation (vop resample command) changes the sum of atom Gaussians and I am shocked by the result. I told you that I thought the interpolation did not change the map much when molmap creates a grid that is 3 times finer than the requested resolution. I thought that that grid spacing was fine enough so the trilinear interpolation gave a good approximation to what you would get by exactly computing the sum of Gaussians.
>>>
>>> Here are my numbers. I made a 6A resolution molmap for PDB 1a0k with grid spacing 2A, then I shifted that grid by 1A in x, y, and z for my reference grid. So the reference grid has grid points located half way between the molmap grid points, a worst case for interpolating. I compared on this reference grid the interpolated molmap values (using vop resample) to the exact Gaussian sum on the reference grid using the new molmap onGrid option. Looking at the surfaces for the intepolated and exact maps on the reference grid it is clear that the interpolated one is smoothed some -- see attached image, interpolated is gray, exact is blue. The exact map contour surface pokes through the interpolated map surface at the atom bumps on the surface. To get them to look similar I tried doing an exact molmap at lower resolution. The shocking result was that the best match was at molmap resolution 7.7A. So it seems the interpolation in this test smoothed the map from 6 A resolution down to 7.7 A resolution -- a big change. Besides visually comparing I also subtracted the maps and looked at the histogram of the difference map to find the resolution of the exact map that minimizes the residual. Here's the set of Chimera commands in case you want to try this
>>>
>>> open 1a0k
>>> molmap #0 6 grid 1 model #1
>>> # Now duplicate and shift map to create reference grid #2.
>>> vop scale #1 model #2
>>> move 1,1,1 model #2 coord #2
>>> # Compute interpolated molmap #3
>>> vop resample #1 on #2 model #3
>>> # Compute exact molmap on reference grid.
>>> molmap #0 6 on #3 model #4
>>> # Compute lower resolution molmap to compare to interpolated map
>>> molmap #0 7.7 on #3 model #5
>>> # Look at difference map
>>> vop subtract #5 #3 model #6
>>>
>>> I tried the same test with resolution 6A but smaller grid spacing of 1A and shifting by 0.5A for the reference grid. There the interpolated map best matched the exact map resolution 6.4 A (almost an exact match visually). So the interpolation had the effect of reducing the resolution from 6 to 6.4 Angstroms with grid spacing 1/6 of resolution.
>>>
>>> These results may depend somewhat on the resolution 6 A, since the atoms are spaced about 2 A apart which sets an absolute length scale. If you think of interpolation as a smoothing operation (the trilinear interpolation is not exactly that, but it does use the 8 nearest neighbors), then these tests show the reduction in resolution by interpolating is significant.
>>>
>>> Tom
>>>
>>> <1a0k.png>
>>>
>>>
>>>> On May 27, 2016, at 1:20 AM, Ardan Patwardhan <ardan at ebi.ac.uk> wrote:
>>>>
>>>> Dear Tom and Elaine
>>>>
>>>> The suggestion to use the vop resample command works very well - many thanks
>>>>
>>>> @Tom: If we could have the script which does the map on the second grid without interpolation that would be very useful. We would like to run FSCs as well between the different ways maps are being derived from models and it would be interesting to see to what extent the interpolation affects things at different spatial frequencies.
>>>>
>>>> Many thanks and best wishes
>>>>
>>>> On 26 May 2016, at 19:26, Tom Goddard <goddard at sonic.net> wrote:
>>>>
>>>>> Hi Ardan,
>>>>>
>>>>> Sounds like you want the molmap calculated map to have a grid that exactly matches a second map which is a cube centered on the molecule. The way to do that is compute the molmap in the normal way then use “vop resample” to interpolate the molmap map on exactly the grid of the second map. This is more reliable than trying to figure out the molecule center and make a matching cube map without using the second map. I can think of at least 3 reasonable ways to define the center (equal weighted atoms, mass weighted atoms, bounding box center) and it is just too easy to get a grid that doesn’t really match the second map. So if #0 is your molecule and #1 is your second map use
>>>>>
>>>>> molmap #0 5 gridSpacing 1.3 model #2
>>>>> vop resample #2 onGrid #1 model #3
>>>>>
>>>>> then map #3 will exactly match the grid of map #1. The interpolation is trilinear (using nearest 8 grid points) and will be very close to the exact values you would obtain by using the second map grid to sum the atom Gaussians. If you really want the exact sum of Gaussians on the second map grid with no interpolation step I can give you a Chimera Python script that will do that.
>>>>>
>>>>> Tom
>>>>>
>>>>>
>>>>>> On May 26, 2016, at 12:43 AM, Ardan Patwardhan wrote:
>>>>>>
>>>>>> Dear all
>>>>>>
>>>>>> We are using Chimera to align PDB models to maps, then creating maps from the models using the following command (as an example):
>>>>>> molmap #0 5 gridSpacing 1.3
>>>>>>
>>>>>> This should create a map with the voxel spacing of 1.3A and a gaussian atom spread function with the width related to 5A resolution (https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/molmap.html).
>>>>>>
>>>>>> Our problem is
>>>>>> a) the map that is created can have an arbitrary size - we need it to be cubic and have the same (known) dimensions as the second map against which it will be compared
>>>>>> b) we have tried padding it in other programs like bsoft but then we sometimes run into problems of centring the model.
>>>>>>
>>>>>> I was wondering if there was a way to get a centred map of a certain size from a model directly from Chimera?
>>>>>> Perhaps there are certain parameters that can be used in molmap?
>>>>>>
>>>>>> You thoughts and advice on this issue are much appreciated!
>>>>>>
>>>>>> Many thanks and best wishes
>>>>>>
>>>>>> Ardan Patwardhan
>>>>>> Coordinator - cellular structure & PDBe production
>>>>>> Protein Data Bank in Europe (PDBe)
>>>>>> European Bioinformatics Institute (EMBL-EBI) European Molecular Biology Laboratory
>>>>>> Wellcome Trust Genome Campus
>>>>>> Hinxton, Cambridge CB10 1SD
>>>>>> Tel: +44 1223 492649
>>>>>>
>>>>>> _______________________________________________
>>>>>> Chimera-users mailing list: Chimera-users at cgl.ucsf.edu
>>>>>> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20160603/e3383340/attachment.html>
More information about the Chimera-users
mailing list