Sure, I’ll give that a go.
In the mean time, I’ve tried to dig a bit into the discrepancy. I took the pre-shiny particle images from S3b, flipped them in Y (relion_image_handler --flipY), replaced the original stacks and refined against the original reference, in order to simulate the necessary shifts/transformations required if particles were sourced from Y-flipped mics.
Averaged across a few thousand particle images, the differences in rlnAngleRot, rlnAngleTilt, rlnAnglePsi, rlnOriginXAngst and rlnOriginYAngst, compared to right-side up particle images seemed best described by…
- phi+180, 180-theta, -psi, XAngst (as is), -YAngst
Note, it’s similar to the transformation suggested by @sunch here, sans Y-shift inversion. That additional element is incorporated in --flipy. That one difference is perhaps why @olibclarke didn’t quite have success with just the Euler angle modifications at the time.
Scenario 3: CS to RELION
- c)
tifmovies Patch Motion-corrected in CS.
→ pre-shinyparticle coordinates from S1 Y-inverted and used to extract from csMicrographs (Recenter using aligned shiftsdisabled).
→ Particles refined against original reference (3.1-3.2Å).
→csparc2star.py --movieto generate csMicrograph and motion star files.
→csparc2star.pyparticle conversion for polishing.
→ application of the above.starfile modifications usingawk.
→half_mapsandmask_fsc_autoused as is for postprocessing.
→shinyparticles now yield comparable, if not identical results to S3a.
I’ve also been wondering about the slight difference in polishing outcomes when sourcing from RC/MC2 vs PM in CS.
The FSC is improved vs un-polished particles in both cases, but RC/MC2 has been giving slightly better FSCs. I wondered earlier if it was stochastic, but I’m beginning to think that it’s due to the fact that RC/MC2 and PM do not share the same reference frame–PM has no reference frame. Meaning if particles are extracted from csMicrographs, the particles won’t be exactly where they should be when Relion goes back to the movies. That is, unless csparc2star.py corrects for that?
Perhaps another reason to stick to RC/MC2, for consistency.
Cheers,
Yang