Splitting particles for half maps : how does cryoSPARC proceed?



Dear cryoSPARC developers, I would like to know how cryoSPARC splits particles for half map calculation ?
I successfully imported particles from a data.star produced by Relion, and could run 3D refinement, but artifacts in FSC curve indicates that the splitting is not done as I would like (the issue is that I have overlapping particles which should not end up being included in two different halves).
Does it take even/odd lines from this star file, does it read the rlnRandomSubset field, does it proceed differently ?
Can I do anything to control which particles will be included in each half map ?
Thanks much in advance,


Dear all, would anyone have a quick answer to this question? To summarise : how does cryoSPARC split particles for half-map generation and is it possible to choose myself which particle goes into which half ?
Thanks very much

  • If you extract in cryoSPARC, or import particles without rlnRandomSubset, it’s random.
  • If you import particles with rlnRandomSubset defined, the split is preserved.

Therefore, you can set it yourself if you use csparc2star.py to make a .star file and then change rlnRandomSubset as you like. One reason to do this is to prevent FSC artifacts (such as failure to decay to and oscillate around zero) caused by duplicate particles. Such artifacts do not arise if all duplicates are within the same half set.


Dear Daniel, thanks for your reply. I imported particles with rlnRandomSubset defined, out of a Relion refinement (which did not give any artifacts since the overlapping particles were grouped in the same half map -Relion does by default per-micrograph splitting). There were no artifacts in FSC from Relion refinement, so I assume that somehow the rlnRandomSubset was not taken into account. This is maybe a bug ?


Hi @adesfosses, which version of cryoSPARC were you using to do the .star file import?