Hi, I have imported a mrc volume generated from a pdb file using molmap in Chimera. I got an error below when I did heterogeneous refinement with this volume.
File “cryosparc2_compute/fourier.py”, line 175, in resample_real
fft(x, stack=stack), N, rescale, stack), stack=stack)
File “cryosparc2_compute/fourier.py”, line 110, in fft
return fftcenter3(x, fft_threads)
File “cryosparc2_compute/fourier.py”, line 69, in fftcenter3
assert all([d%2 == 0 for d in vol.shape])
I tried to use Volume Tools on the same imported volume but I got this error this time.
File “cryosparc2_compute/jobs/utilities/run_volume_tools.py”, line 57, in run
assert n.all(n.array(input_shape)==N_input), “Cube volumes only”
AssertionError: Cube volumes only
Any idea what is the problem and how to resolve these errors?
I have another question. When I imported an Ab-initio volume generated from a data set in cryoSPARC2 and used it for refinement for another data set, I got result volumes that did not align to the Ab-initio volume. Is it normal or something is wrong?
Your volume is not a cube. Chimera by default generates molmap mrcs in a minimal box, which can have odd dimensions. You can correct this by resampling on the grid of the original map - e.g.
vop resample #map1 ongrid #map2 - or by using molmap with the ongrid option - e.g.
molmap sel 20 ongrid #mymap
You definitely want to use
molmap ... ongrid. Tom Goddard (lead Chimera developer) found that the interpolation errors were significant otherwise and implemented
molmap ... ongrid in response.
yes - although I don’t think that matters much with molmap really? I would usually only be using a molmap volume as the starting point for a mask, in which case I’ll usually filter at low res anyway and not care about minor interpolation errors.
Thank you for the responses. It is working now!
Oli, I found Tom’s mailing list post about the interpolation errors here:
2nd para opens with:
I tested this to see how much interpolation (vop resample command) changes the sum of atom Gaussians and I am shocked by the result.
Yes - I know that it does - I just don’t think this matters much, as molmap is only used to make a simulated map from atoms, or am I missing something? The errors introduced by
vop resample #map1 ongrid #map2 do matter, because they affect experimentally obtained maps.
Molmap only affects calculated maps, which are only used for mask creation, or maybe in rare cases as an initial model for refinement.
(having said all this - the errors from vop resample are pretty minimal in my experience if using a sufficiently fine grid for the reference map - if the res of all maps is close to the limit from sampling it is a different story)
The person in the chimera-users post was going to use it for map-to-model FSC. Tom found that there was a pretty large effect in using
molmap with defaults and then
vop resample as opposed to
molmap with the right box options, so he added
molmap ongrid to make it easier to set the box.
I think you’re right about the use of
molmap in general though. In particular it should never be used for map-to-model FSCs! You probably know, but for any one else that happens by the right way to simulate a map is with
# Example with boxsize 256 @ 1.02 A/px.
sed -i '/^CRYST1.*/c\CRYST1 261.12 261.12 261.12 90.00 90.00 90.00 P1 1' 6bg.pdb
phenix.fmodel 6bgj.pdb high_resolution=2.04 scattering_table=electron
phenix.mtz2map 6bgj.pdb.mtz include_fmodel=True d_min=2.04 grid_resolution_factor=0.5
Ahhh got it - yes that makes sense and agreed
By the way - off topic - do you have any idea why I’m getting this error with csparc2star.py? It was working fine for another job with similar inputs (picked and extracted in cryosparc, J292 is the cryosparc refinement job). Can’t see what is going wrong but I’m sure it is something simple and stupid on my end. The old job still works, so nothing is fundamentally broken in my csparc2star install.
sparc2star.py --passthrough passthrough_particles.cs cryosparc_P36_J292_004_particles.cs cryosparc_P36_J292_004_particles.star
That’s an old version of the program, in the latest one there’s no
--passthrough argument (extra .cs files are provided as additional positional arguments) and that error won’t occur. (See the “Final update” thread).
aha - got it now - sorry & thanks