Bayesian Polishing of cryosparc-processed particles

The “180+φ, 180-θ, -ψ” transformation mentioned by @sunch seemed to work. Not sure how to do with star.py, but with awk:

awk -v s=180 '{print $1, $2, $3, $4, s+$5, s-$6, -$7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17}' particles_in.star > particles_out.star

Where columns 5-7 are the Euler angles, and the star file has 17 columns in total. Need to replace the header afterwards. There is probably a more elegant way of doing this, but this seems to do the trick!

Cheers
Oli

EDIT:

Hmm this still isn’t quite working. Relion reconstruct of the half maps from the transformed star file gives a reconstruction with a resolution of 5.7 Å, whereas the expected value is ~3Å with the same mask. With the non-transformed star file it is much worse - ~16Å. But normally, relion_reconstruct from a star file imported from cryosparc gives comparable values to those originally determined in csparc, in my experience, so still feels like there is something missing here.

EDIT 2:
Ok, so the easiest way to do this I think is to:

  1. convert particle.cs to star using csparc2star.py (with --swapxy &/or --inverty as needed)
  2. Extract in relion from relion motioncorrected mics (try a subset first and confirm particles are well centered)
  3. Import back into cryosparc, and associate with relion motion corrected mics
  4. Re-run global refinement.
  5. Export back to relion.
  6. Do all the usual things - symlink cryosparc job dir for particles, symlink mrc stacks to mrcs, adjust paths and opticsGroupName in star file as needed
  7. run relion_reconstruct for two halves
  8. run relion_postprocess using refinement mask
  9. CTFrefine if needed (and another round of relion_reconstruct if so)
  10. Polish.

After this, using relion_reconstruct gives the expected resolution and everything seems to proceed smoothly.

3 Likes