Exporting particles from Cryosparc to relion for re-extraction

If you have coordinates from cryoSPARC which are to be used in Relion, the coordinates need to be flipped in Y. This is the default for csparc2star.py, because cryoSPARC flips the coordinates when it imports them, and back before all the different job types were available we were always importing drift corrected micrographs and particle coordinates into cryoSPARC. Further, if you only import coordinates then you can also use --copy-micrograph-coordinates and just keep the original ones, which are guaranteed to work.

--inverty flips the coordinates a second time (and as an optimization becomes a no-op). That allows import/export cycles to keep the same numeric coordinates throughout. That’s important if you are just using external programs like Relion for 3D classification and need to maintain the coordinates to re-use in cryoSPARC. This is common nowadays, as cryoSPARC itself does motion correction, particle picking, etc. and most folks use those features.

There is an additional point of confusion introduced by motion correction software, such as MotionCor2 and Relion, that also physically flip the movie frames when writing out sums. If you have coordinates from cryoSPARC, using cryoSPARC Patch Motion, and you want to use them to extract in Relion using Relion MotionCorr or MC2, then you actually need --inverty too.

I should mention that --invertx and --no-swapxy are never needed in a normal pipeline, but they are there if for some reason you need to use transposed images with old coordinates.

You can use the disparticle.py program from pyem to test coordinates using the same conversion arguments/semantics as in csparc2star.py.

2 Likes