Proposing a job type to add for helical processing

Dear Cryosparc team,
it is great to see that helical processing is now included in Cryosparc, and I have been testing it extensively since last week. I would have one suggestion (for now), which would help in analysing helical samples. When we analyse power spectra to determine helical symmetry (indexing), the way the power spectra is obtained can have great influence on the success of this approach. In particular, we observed in many cases that the power spectra of a 2D class average is very different than the sum of power spectra of segments belonging to that class average. The power spectra of a class average is often artifactual, especially due to alignment issues. Among others, sometimes segments align well on very clear features such as the pitch but do not correspond precisely to same on-axis view, in which case there is an extinction of diffraction -which can be dramatic even for “good looking” class averages. So, to obtain best power spectra for indexing, what we usually do is to take aligned segments, pad them (for finer Fourier sampling), calculate their PS and then sum the PS of all segments, for each class. Since the PS of each segment is unaffected by on-axis rotation (and translations of course), the resulting sum of PS is usually much better than the PS of the sum (the class average), and most importantly do not suffer from artifacts.
If you had such a job type (calculate sum of PS, for a set of class averages), that would be awesome !
Thanks, please feel free to contact me if questions
Ambroise Desfosses


Dear @adesfosses,

Thank you for the suggestion! This is great to know as determining helical symmetry is still the most challenging part of the workflow, and any way to make it easier/more accessible would be a great addition; we’ll definitely add this to our feature tracker :slight_smile:

Just to clarify the proposed workflow: To get the summed power spectrum, you normally take all raw segments along with their 2D class alignments, and simply sum the squared amplitudes of their individual Fourier transforms? With this approach, do you sum the PS of the raw particle data, or do you also account for the CTF? The current 2D reconstruction implementation accounts for both amplitude and phase, CTF, and the noise variance, but from what I understand, you found better results (for indexing purposes) by discarding phase and CTF information before averaging. Another question is: assuming the sample is homogeneous, do you typically take all the segments from a single 2D class (segments which may correspond to different actual filaments from the micrograph), or do you take only segments that correspond to a single filament?

Another related question, as I have not done Fourier-Bessel indexing before: The power spectrum is unaffected by rotations around the helical axis, and by translations; however, with 2D classes that have slight out-of-plane tilt (i.e. not perfectly vertical slices through the helical axis), are these power spectra still useful for Fourier-Bessel indexing?


Dear Michael,
yes we would sum the squared amplitudes of their individual Fourier transforms (done on padded segments if one wants finer sampling). I did not try to account for the CTF. We indeed find better results when discarding phase information before averaging, for the purpose of generating the sum of PS which we exploit for indexing, but I am not proposing to do this for 2D reconstruction (2D real space classification), for which phase information will be important.
We typically use all the segments from a single 2D class, since in many case the signal from a single filament is not enough.
About out-of-plane tilt : it is much easier to work on classes which have no out-of-plane tilt. Of course this is not an information that we have a priori, but by comparing the PS corresponding to several classes (assuming they all have same symmetry), one can detect the ones which correspond to tilted filaments : the layer lines are further apart, and the first maximum of amplitude along layer lines will move towards the meridian. In theory, one can do indexing on tilted sample, but one would need to determine the tilt angle, which require phase information… Back in the days, this was done on highly regular, long helical assemblies, filament per filament, by looking at their FT.
Hoping that was clear enough,

1 Like

Hello Ambroise,

Thank you for the additional information; this is very clear! This sounds like a great feature to support helical processing. If I may kindly ask another question: on the topic of actually doing Fourier-Bessel indexing, do you typically use any specialized image analysis software to help interact with and label the power spectra images? I am considering trying this out on a few datasets I have just to get a better feel for what this workflow usually looks like.


Hello Michael,

my colleague Leandro Estrozi wrote what is up to now the most complete software to analyze and understand power spectra :
It allows to simulate PS with every parameters one can think about (e.g. you can simulate X-ray fiber diffraction such as DNA fibers in the 50’s by adjusting imaging wavelength and orientation variability). With an input PS, it allows to explore helical parameters and find local optima (for helices, unfortunately, there is no “global” optimum) that best fit the PS. Please contact me if you need help for using helixplorer.
The typical workflow often also includes thinking, pen and paper. Looking at real-space class averages can e.g. help in finding a pseudo-repeat (if there is one within the considered length), the pitch, and may in some cases indicate possible additional Cn symmetry. Looking at PS can also lead to pseudo-repeat estimation (finding a regular spacing between layer lines), the pitch layer line is sometimes very clear too (strong first maximum near meridian), but most importantly, one always hope to see the axial rise (a spot right on the meridian). Depending on the helix geometry, those parameters can be non-trivial to get : e.g. if the axial rise is smaller than the class resolution you will never see it, the pitch layer line can be not exactly as expected in term of intensities, and there might be no pseudo-repeat appearing clearly…
In many cases, prior information is very useful for analysing a PS, such as subunit size, whether additional Cn symmetry is possible, etc…
Please do not hesitate to contact me directly for further info.

1 Like

It is only true that the “PS of each segment is unaffected by on-axis rotation” when there is no Bessel overlap. The beating of two or more Bessel functions on a layer line can break the mirror symmetry that is expected in a power spectrum. But this is yet another reason why this an important suggestion, as class averages might arise from one view in the case of Bessel overlap.
Ed Egelman


How could I get the segments files (.mrc) of a single or multiple 2D class in Cryosparc?
I’d like to pad them, calculate their PS and sum them as you recommended for indexing.
I’m stuck with my first asymmetrical helical refinement (GSFSC 6.5 A) with promising features. I can see some alpha helical contours, but after trying some symmetric refinements (guesses with helical symmetry search job) both GSFSC and map get worse. Clearly, I haven’t found the right symmetry. DO you have any recommendations about indexing?

Is there any cryosparc update on any job related to this problem? @mmclean

Lorenzo Agostini

Hi @lorago92,

Apologies for the delayed response. In our upcoming release, we plan on adding a job to execute this processing (specifically, to calculate the power spectrum of all particles belonging to a 2D class, and then average these power spectra together). We hope this will be useful for downstream use with software such as HELIXPLORER or other Fourier-space indexing software :slight_smile:


1 Like