Beam tilt refinement?


Are there any plans for CryoSPARC to support estimation and/or correction of beam tilt? This would be very helpful for datasets collected with image shift (or an imperfectly aligned scope).

Currently cryoSPARC seems to read _rlnBeamTilt values when importing a star file, but does not seem to use them in any corrections as far as I can tell.



I’d just like to echo Oli’s message and say that this would be quite helpful. For data with no beam tilt, it’s great to process in multiple programs, and cryoSPARC works amazingly well! However, any significant beam tilt and then I’m siloed into Relion because beam tilt correction gives such a boost in resolution.

One day I’ll have perfect data!


Hi @RickBaker @olibclarke,

We have been working hard on a completely rewritten cryosparc core computation module - mainly to deal with various signal processing issues, GPU memory requirements, inefficiencies, and expanding support for more advanced uses. Complex-valued CTFs (i.e. as caused by beam tilt) are supported by the new core, so we will soon be rolling this out! Our beam-tilt estimation tools need some work but correction at least should be possible very soon.



Awesome! Looking forward to it :slight_smile:

Hi Ali - is correction of beam tilt supported in 2.8? If so, will it correctly read rlnBeamTiltX/rlnBeamTiltY values from an imported star file?


@RickBaker In your experience, what is a typical boost in resolution (and from what starting resolution)? Thanks.

Can’t answer for @RickBaker, but in one recent case (data collected using extended image shift up to 3mrad, beam tilts refined in clusters based on image shift) grouped beam tilt refinement improved resolution from 3.5 to 2.9. In another case, from 2.7 to 2.5. Really depends on data collection strategy and microscope alignment

Thanks, I was just looking to confirm my expectation that there is no point in employing beam tilt refinement at resolutions lower than ~4.5 - 6 A, as shown in Anchi’s paper. (And, according to my understanding, that was without tilt compensation).

Ah - I haven’t tried with data that low res. In the 3.5Å before, 2.9Å after case it is possible that the corner holes may have been limited to sub-4 without beam tilt correction (these had ~3mrad beam tilt), but I haven’t refined using only particles from those mics so I can’t be sure.

Yes @DanielAsarnow we get to ~3.5 without beam tilt compensation for datasets with ~0.5 mrad beam tilt.

Like @olibclarke we see 0.2 to 0.6 Ang improvements with beam tilt refinement for datasets with significant beam tilt (>0.3 mrad or so).

My two recent examples are 3.7 to 3.2 after beam tilt refinement and 4.2 to 3.6 after beam tilt refinement.

Have you tested any of these sets in cryoSPARC 2.8 yet? I’m hoping correction for beam tilt has been incorporated but haven’t had free GPU time to test yet

No, but when I do I’ll check back in

Thanks for providing those examples!

Are all your tilt data sets in nanoprobe with parallel beam and shift/tilt compensation?

In my case, parallel beam, microprobe (0.6/1 gold grids, one shot per hole), beam tilt compensation was on but ineffective (calibration issue), so the refined beam tilts were similar to what one would expect for no compensation (~0.2mrad/um shift)

Hi Ali - was this implemented in 2.9? Should we expect that cryosparc can correct for beam tilt values, if present? Or is it still in the pipeline?

Still in the pipeline! We’re working to get it out as soon as possible :slight_smile:

- Suhail

What is the current situation with this ? Thanks

This is available - global CTF

(At least for refinement - not 100% about importing from Relion)