Hi @olibclarke thanks for reporting this as well.
Reconstruct-only uses Fourier backprojection (like all other refinement in CryoSPARC except 3DFlex). The Flex-reconstruct job uses a new L-BFGS-based real-space optimization to do the reconstruction. This is powerful since we not longer have to make assumptions about the Fourier-slice theorem so can actually deal with deformations, but also has cons like it’s much more computationally intensive and is iterative instead of having a closed-form solution (like backprojection). The “rigid” baseline from flex-reconstruct is computed using L-BFGS (without deformation model) to enable comparisons and sanity checks just as you’re doing.
The expected differences between reconstruct-only and flex-reconstruction:
- cropping can have an impact depending on CTF aliasing but doesnt seem to be the cause in your case as you mentioned
- the iterative L-BFGS solver is limited to a number of iterations (default 20) but for some particles/datasets it might need more. You can try to increase this to eg. 40 (taking double the time) and that may slightly improve the real-space reconstruction
- CTF is most likely the culprit. Flex-reconstruct uses a real-only CTF. So this will account for per-particle defocus refinements that were done upstream but not tilt/trefoil/etc. This should be possible to change soon (i.e. no fundamental reason we can’t use complex CTFs in flex-reconstruct).