Q: I have two structures with different ligands or in different functional states. How do I make a difference map between two structures ?
A: Hi. Difference maps are always tricky in cryoEM. Very subtle differences in CTF can cause large artifacts in difference maps. One trick you can use, if you expect the 2 structures to be almost the same, with just a few subtle differences, is to take the radial structure factor from one map and impose it on the other map. In EMAN, this can be accomplished like this:
proc3d map1.mrc z.mrc calcsf=sf1.txt apix=???
proc3d map2.mrc map2f.mrc setsf=sf1.txt apix=???
This filters one map to make it look as much like the other map as possible. Since this only affects the radial Fourier amplitudes, it doesn't much impact the detailed features you would be looking for in a difference map.
proc3d map1.mrc map2f.mrc diffmap
Then look at diffmap.mrc
Honestly, in most cases I don't find difference maps very useful, and rather, produce a morphing animation from one state to the other. This lets you see what details are changing via motion rather than a static snapshot. I usually have a much easier time visualizing differences this way...
morphmrc2mrc.py map1.mrc map2.mrc --steps=10 --nseg=??? --sym=??? --thr=???
- thr is a typical isosurface threshold for visualizing the map
- sym is the symmetry of the map. It can be omitted if there is no symmetry.
- The map must be properly aligned WRT the x,y,z axes for this to work.
- nseg is the number of control points to generate per asymmetric unit. A large
- number may make the process take a very long time. The number is resolution dependent. I would suggest
NOTE - before doing the morph, the maps must be adjusted so the same isosurface threshold can be used with both maps.
This gives a sequence of MRC maps that can, for example, be visualized in Chimera using EMANimator.