Junk, junk, junk. It’s always good to get rid of junk particles.
Best not to pick them in the first place, but that’s a separate discussion…
After a few rounds of 2D classification, my favorite tool to get rid of junk particles is a multi-class ab initio refinement. For me, the magic number is four. Set the ab initio to have four classes. Then clone that job three times and run them all (our nodes have four GPUs each, so we can run four jobs simultaneously). At the beginning stages this will usually give you one good class and three junk classes. You get to decide.
It’s the nature of the math that four identical ab initio jobs, with the same input particle stack, will not give identical results.
Then you pick the good classes from all four jobs, and put them all into a single homogenous refinement. This will not create duplicate particles (provided there were no duplicates in the first place).
If you think about the logic, this is what you are doing. You are keeping any particle that any one of the four ab initio jobs sorted into a good class. And you are discarding all the particles that all four jobs agreed are junk particles. This is a conservative way to discard junk particles without throwing away good particles.
The homogenous refinement allows you to evaluate the results.
Repeat as many times as you have patience for, with the output of the homogenous refinement going into four new four-class ab inito refinements.
When I do this, I find that the first few rounds will improve the resolution of the refinements. In subsequent rounds the ab initio refinements may start to give two or three “good” classes with minor differences. It’s up to you what to keep and discard. Further rounds of this technique may not change the resolution of the homogenous refinements, or may even make the stated resolution worse by 0.1-0.2 Å; however, a careful look at the maps shows them to actually be getting better, and more homogenous (IMO).
Stop when you’ve hit diminishing returns or are genuinely making things worse.