Reconstructions with subsets of frames?

Hi, I’m sure this has been discussed before, but I would love to have the capacity to easily calculate reconstructions using subsets of movie frames.

As we get to higher and higher resolution, assessing the effects of site-specific radiation damage will likely become increasingly important (e.g. see here for an example:

To assess such effects, we need to refine using particles generated from the full aligned average, then calculate a reconstruction using particles extracted from the same movies, but only using the early frames. This is currently not possible (or very awkward) in cryoSPARC, but would be very useful to have.



Hi @olibclarke!

I am totally with you, it would be great to see this type of functionality implemented on cryoSPARC :slight_smile:
It proves more and more often to be useful.

What is your current ‘awkward’ approach using cryoSPARC?


Hi André

The workaround is just to re-run motion correction with different subsets of frames (start frame & end frame in patch motion), then re-extract your final particle set from each Patch Motion job (it will inherit CTF estimates from particles).

Not ideal, because you shouldn’t have to re-do alignment each time (would be faster and better not to) but only way that I know to do it in csparc.

Hi Oliver,

Glad to hear from you! =D
(Congrats on your latest publication! :wink: )

Yes, that is then how I am doing. In fact, re-doing the alignment is a limitation for me since I want to reduce to a minimal amount of accumulated dose that creates problems for motion correction and refinement alignments.
I would love to be able to keep the previously defined alignments of the successful 3D reconstruction from the ‘full movie’ set and use the same particles and alignment values on a low-dose set. Is that easier/possible in other data processing software?


Thanks! Yes agreed would be great to have a “per-frame reconstruction” job, where one could input movies from a patch motion job, particles (w/ orientations & offsets) and calculate a dose-weighted reconstruction using a defined subset of frames.

It is easier to do this in relion right now I think but still a bit of a pain even there

@team just bumping this - would be really great to have straightforward capacity to analyze subsets of frames, and important I think for assessing effects of radiation damage.

Such a job would presumably read alignment information generated by Patch Motion, apply to the unaligned movies, and generate averages from a subset of frames. This is otherwise difficult/time consuming to do, but it is important I think.


My continued support to @olibclarke suggestion.
The only workaround is both time and computationally consuming and I find myself needing it quite often!

1 Like

Hi everyone,

This functionality is being worked on, in conjunction with a number of other improvements to the motion correction tools in cryoSPARC, but unfortunately I don’t have a firm release date yet. I will update this thread when it has been released.



Hi @hsnyder,

When this is implemented, it would be great if possible to add support for some form of zero dose extrapolation, similar to that described here (see relevant details in supplementary text and associated python scripts):

Basically what would be required would be the capacity to take movie frames and alignment information as input, and output per frame reconstructions (and ideally a zero-dose extrapolated reconstruction). Perhaps it could be implemented as an option for Local Motion Correction (with the option of switching off trajectory fitting and just doing reconstruction), given that already needs to extract out subframes for each particle?

This should become even more useful once HexAuFoil grids are widely available, which I would expect based on chatting with quantifoil to be fairly soon.



Since HexAuFoil grids are now commercially available, I also think it would be great to be able to do zero-dose extrapolation in cryoSPARC. Is this feature still under development? Or is it here already and I missed the announcement?


Thanks @Guillaume. This feature is not yet built or released but is noted.