Particle intersection of imported+native particles returns 0 in common


I’m trying to make an intersection between a particle stack that was created in cryosparc (from an entire pipeline PatchCTF->Picking->Extract->2Dclass,etc until consensus homogeneous refinement) and another particle stack generated through classification in Relion (ie this is a subset of the first particle stack) and imported back into cryosparc. I wanted to intersect with the original stack because the imported particles have lost their ‘pick stats’ which are required for the ‘inspect picks’ job. However, the particle intersection cannot match any particles although the UIDs are intact (and I imported the particles with the micrographs connected for whatever it’s worth).

Is this a bug? I’m on a fresh install of cryosparc v3.2.0+211012
Any other way to regenerate the ‘pick stats’?


Hi @amueller,

If the particle UIDs are still the same, you can use the job builder’s low-level results to intersect these result groups.
For example:

  1. Create the Inspect Picks job
  2. Connect the micrographs and the imported particles to the job
  3. Open up a job that has the pick stats for the corresponding imported particles, and navigate to the “Outputs” tab
  4. Drag the “pick_stats” result slot over to the pick_stats input result slot in the job builder:

    The result slot will be highlighted green.
    Screen Shot 2021-10-19 at 10.55.51 AM
  5. Run the job, and it will automatically intersect the pick stats and particles for you.

For more information, see this guide post:

1 Like

Hi @stephan,

Thank you for the suggestion. I connected the ‘pick stats’ subgroup from the particles output of the extract job (or from the blob picker job) to the imported particles, but I get the following error:

I didn’t make any changes to the UIDs, just pulled it through Relion to get a subset and imported that back into cryosparc. The *.star file I’m importing contains the all paths/UIDs (see example below) and the import job did not complain about anything (I’ve also connected the micrographs, which it seems to have reassigned just fine).

Any idea what’s causing this?


Excerpt of the imported star file:


_rlnImageName #1
_rlnMicrographName #2
_rlnCoordinateX #3
_rlnCoordinateY #4
_rlnAngleRot #5
_rlnAngleTilt #6
_rlnAnglePsi #7
_rlnOriginXAngst #8
_rlnOriginYAngst #9
_rlnDefocusU #10
_rlnDefocusV #11
_rlnDefocusAngle #12
_rlnPhaseShift #13
_rlnCtfBfactor #14
_rlnOpticsGroup #15
_rlnRandomSubset #16
_rlnClassNumber #17
_rlnGroupNumber #18
_rlnNormCorrection #19
_rlnLogLikeliContribution #20
_rlnMaxValueProbDistribution #21
_rlnNrOfSignificantSamples #22
000016@J14/extract/000000876059545677708_21sep24a_b1g2_00005gr_00125sq_v01_00005hl_00016enn_frames_particles.mrc J1/imported/000000876059545677708_21sep24a_b1g2_00005gr_00125sq_v01_00005hl_00016enn_frames.mrc 818.000000 3695.000000 27.419168 132.551834 122.681610 4.061250 -0.27075 23313.849609 22661.222656 -47.94227 -1.51865 0.000000 1 2 2 1 0.606707 1.304707e+05 0.999306 1
000019@J14/extract/000000876059545677708_21sep24a_b1g2_00005gr_00125sq_v01_00005hl_00016enn_frames_particles.mrc J1/imported/000000876059545677708_21sep24a_b1g2_00005gr_00125sq_v01_00005hl_00016enn_frames.mrc 5112.000000 843.000000 -70.86754 32.420269 67.771072 5.252550 6.877050 21657.228516 21004.601562 -47.94227 -1.51865 0.000000 1 2 2 1 0.588291 1.308265e+05 0.999999 1

Hi @stephan,
I might have found the issue: The “Import particles” job assigns new particle UIDs, i.e., a particle that was named
has now the name

How can I preserve UIDs when importing particles into cryosparc? I can only see options to remove old UIDs.

Hi @amueller,

You’re trying to do this intersection with the original stack because you require the pick_stats result field for the Inspect Picks job, but why? Are you trying to view your particles? Another option is to use the manual picker, which would allow you to do the same thing. When you import particles into cryoSPARC, new UIDs are created for them, which breaks the link to their old particles- theres not really a way to take the union of these particles when this happens. If you’re trying to cull the particles, you might have to do this outside of cryoSPARC before bringing them back in.

Hi @stephan,

Yes, I wanted to cull the particles/picks and I found previously the ‘inspect picks’ job was a straightforward way to do it. But as you suggested, I resorted now to methods outside of cryoSPARC.

I think in the long run it would be really useful to have cryoSPARC recognize pre-exisiting UIDs when importing particles (instead of making new ones). Somebody posted a feature request for this recently: