Patch based CTF query


I have a query regarding the new patch-based CTF estimation algorithm. Based on the 3D-surface that is generated, it looks like the algorithm has some kind of local smoothing - assuming that nearby regions have similar defocus values.

This will be more or less true for particles in thin ice that is bent or tilted, but is unlikely to be true for large particles in thick ice, where often a lot of the variation in per particle defocus comes from the z-position of the particle in the ice (e.g. adhered to one interface vs the other), rather than the shape of the ice itself. In this case it is quite common that two particles adjacent in x-y will have very different z-positions, and hence different local defocus values.

Is there any plan to take account of this, e.g. by refining the patch based estimates at the extracted particle positions during the Patch CTF Extract job, or as another parameter to refine during homogeneous refinement?


@olibclarke I do think defocus refinement works pretty well, recovering the correct defocus even over hundreds of nm.

If that holds, shouldn’t the global defocus (or a simplistic local defocus for tilted micrographs) ought to be a sufficiently close initial guess?

Absolutely - but per particle defocus refinement is not implemented in cryoSPARC? Or has it been added in 2.8 and I missed it?

No, it’s not available in cryoSPARC, I meant this as a statement of principles/priorities based on how it’s working for me in Relion and cisTEM (I routinely move between all three programs for the same projects).

Oh yes - as do I (more relion than cisTEM) - but would be nice to have it integrated in cryoSPARC too

Agreed! Do you have an opinion about astigmatism refinement in Relion? I can’t tell if it’s helpful or not…usually the images don’t have much astigmatism so I worry about the angle “just spinning around” during optimization.

I have found per mic astigatism refinement helpful (small res improvement) in some cases - usually I will check the histogram of both astig magnitude and angle to make sure any overall changes in the distribution are sensible

Effects of per particle defocus are much larger though, as are effects of beamtilt refinement (grouped and overall).

Having checked with a couple of projects, Patch CTF is great, but per particle CTF gives me an extra 0.2-0.3 Å for large particles - would be great to have per particle (lmbfgs based?) CTF refinement incorporated into cryosparc.

Hi @olibclarke, @DanielAsarnow,

Indeed our plan is that Patch CTF should be used to give CTF estimates that are refined using a reference, later in the pipeline (CTF refinement during homogeneous refinement is on the way). We do however find that Patch CTF often works surprisingly well, even beating other processing in other programs that do perform per-particle CTF refinement, and we think that’s due to:

  • smaller particles have an intrinsic limitation in how accurately the per-particle defocus can be measured due to noise. With completely per-particle methods, there is no prior information so this is the hard limit of detectability. In some cases with small particles we see that Patch CTF (despite the fact that as you pointed out, even neighbouring particles can and do vary in z just due to placement in the ice) gives better results than CTF refinement in other programs, because it is useful to assume there is a strong dependence of the CTF of one particle relative to neighbours.
  • Disorder/heterogeneity in a molecule means that the reference to which particle images are compared during per-particle CTF refinement is never correct, and there will be substantial signal in the particle image that is not explained by the reference. This can make per-particle CTF refinements worse than reference free patch-based CTF estimation in some cases (membrane proteins, flexible molecules, etc)

Hi @apunjani - I think absolutely this is true for small particles in thin ice, where most of the variation in z is due to the topography of the sample, rather than positioning within the ice layer.

For larger particles in thicker ice though, in my hands a combination of a reference free method like patch CTF with subsequent per particle refinement seems to be best - certainly having both available to try either independently or in combination would be optimal.


I mostly agree with your comments, but let’s step back for a moment. “CTF refinement” could include defocus refinement, astigmatism refinement, beam tilt refinement and magnification refinement* (and even AC, CS & envelopes). Any of these could be refined by fitting to power spectra or projection matching techniques, and on a per-particle or per-micrograph basis.

There are quite a lot of combinations! It doesn’t make sense to support every possibility, but for projection-matching CTF refinement my wishlist is per-particle defocus refinement as you mentioned, per-particle & per-micrograph astigmatism angle options, and per-micrograph beam tilt and magnification refinement. (Per-micrograph here means using projections, but only one value for particles from the same micrograph).

*Magnification refinement is only available in Frealign9, per-micrograph variations of 1 - 5% are common, and there is a strong interplay with defocus optimization. IMHO it’s been neglected and should be brought back in other suites. Best done it’s own 1D search step because of the interplay with defocus.