Force cryosparc to import beamtilt

I run homogeneous refinement with optimize per-group ctf parameters and find TILT optimization is crucial for my dataset with one optics group. The difference is 3.0 without tilt optimization v <2.0 Å with.

I convert to star file with csparc2star.py and manually insert the same values for _rlnBeamTiltX and _rlnBeamTiltY into the end of every particle line. This value is obtained by the cryosparc final iteration, under fitting parameters
New group params:
Tilt (mrad): [x y]

I have to use --inverty during csparc2star for relion-extract to get the particle coordinates, but NOT --flipy or my reconstruction is 8 Å (it is 3.1 Å with --flipy).

How can I force cryosparc to apply the same beamtilt as identified in the original refinement to the relion-extracted particles?

Say for example I want to share a particle stack with a collaborator and they will work with the alignments and shifts identified in my refinement, but it can’t reconstruct to the same resolution without beamtilt refinement. How can I do this and play nicely with conversion between relion?

Short answer is you can’t at present - and in terms of converting beam tilt (& trefoil etc) between relion and cryosparc, I’m not sure it is as simple as just directly transposing them - both due to coordinate system issues (flipy/inverty etc) and differences in how the higher order params are specified. There is an open issue on the pyem github requesting conversion of higher order CTF params in csparc2star.py, but it does not yet have the capacity to do so.

Presently, if I need to do this, I just re-rerun CTFrefine in relion, which is usually pretty quick and gives comparable results to global CTF refinement in CS (and is actually more flexible in a lot of ways).

I agree it would be great to be able to convert them though - also for comparing CTF refinement approaches in the two software packages.

1 Like

Thanks, Oli! Hoping there can be a consensus between the two programs in the future.

1 Like

You can also export/archive cryoSPARC files and give them the .cs files with CTF values from cryoSPARC, if you have a working refinement there.

2 Likes

Yes - if you want to do that, the best way I have found is this: Moving a particle stack to a separate machine - #2 by olibclarke

Then export the particle sets job and make a tarball from it, which is relatively compact as it only has the particles and associated metadata, and can then be directly imported on another CS instance.