Python-based Helix Indexer: A graphical user interface program for finding symmetry of helical assembly through Fourier-Bessel indexing of electron microscopic data

Protein Sci. 2022 Jan;31(1):107-117. doi: 10.1002/pro.4186. Epub 2021 Sep 22.


Many macromolecules form helical assemblies to carry out their functions. Helical reconstruction from electron microscopic images is a powerful approach for solving high-resolution structures of such assemblies. Determination of the symmetry parameters of the helical assemblies is a prerequisite step in helical reconstruction. The most widely used method for deducing the symmetry is through Fourier-Bessel indexing the diffraction pattern of the helical assemblies. This method, however, often leads to incorrect solutions, due to intrinsic ambiguities in indexing helical diffraction patterns. Here, we present Python-based Helix Indexer (PyHI), which provides a graphical user interface (GUI) to guide the users through the process of symmetry determination. Diffraction patterns can be read into the program directly or calculated on the fly from two-dimensional class averages of helical assemblies. PyHI allows deducing the Bessel orders of diffraction peaks by using both the amplitudes and phases of the diffraction data. Based on the Bessel orders of two unit vectors, the Fourier space lattice is constructed with minimal user inputs. The program then uses a refinement algorithm to optimize the Fourier space lattice, and subsequently generate the helical assembly in real space. The program provides both a publication-quality graphic representation of the helical assembly and the symmetry parameters required for subsequent helical reconstruction steps.

Keywords: cryo-EM; helical reconstruction; helical symmetry; indexing.

Publication types

  • Research Support, N.I.H., Extramural
  • Research Support, Non-U.S. Gov't

MeSH terms

  • Algorithms*
  • Image Processing, Computer-Assisted*
  • Microscopy, Electron*
  • Models, Molecular*
  • Programming Languages*
  • User-Computer Interface*