Reference-based motion correction with symmetry-expansion

Hi @olibclarke,

After some discussions with other folks on the team, it seems I was wrong about a couple of items above. The workflow you did (right hand column), should work correctly with no issues. The confusion on my end is what information Apply Trajs is using to do the RBMC. To eliminate any future confusion from others, I will be editing my post above to cleanup the incorrect info.

So, here is a correct description of the workflow and whats happening under the hood.

Step A generates a host of information in the particle.cs file including a set of info in the motion slot. This includes motion/path and motion/idx. For each micrograph, a .npy file is generated containing all of the motion trajectories for each particle. In the case of this workflow, this is the trajectory of the entire vault complex. In each .npy file are the trajectories of all particles on each micrograph and each particle is assigned a motion trajectory id (motion/idx).

Step B will duplicate all particle information for each symmetry mate except for generating a new particle UID and documenting from which particle the symmetry mate was generated (sym_expand/src_uid). The duplicated information includes both motion/path and motion/idx which are important for use later on. This step also changes the expanded particles’ alignments3D/pose as part of the symmetry expansion, such that both caps are coincident.

Step C will change all of the particles alignments3D/shift so that the cap is located at the center of the box.

Step D is used specifically to recenter the particles locations using the location/center(x/y)_frac and the new shifts produced from Step C. Apply Trajs does not recenter the particles; this step is likely required for correct results. You should also be fine with extracting at a smaller box size here although I did not test this on the downstream step.

Step E is where all of this info comes together. In this example, lets consider particle 1 is symmetry expanded to 1a and 1b. Apply Trajs will take particle 1a and 1b and apply the assigned trajectory (motion/idx in motion/path) coming from particle 1 (full vault complex) to each of the sub particles at each of those sub particle locations (location/center_(x/y)_frac). Therefore, the particle UIDs are not actually used (and this is where i went wrong). The output subparticles should now be RBMC’d using the full particles info.

2 Likes