Spectral analysis, simulation and subtomogram averaging of heterogenic cylindrical structures

BSD 3-Clause License Python package index download statistics PyPI version codecov

cylindra is a GUI-integrated cryo-ET image analysis tool for cylindric periodic structures such as microtubules.

→ Documentation


  • Use pip
pip install cylindra -U
  • From source

If you install from the source, you'll need Rust to compile a part of the code.

git clone git+
cd cylindra
pip install .


Launch GUI

  • From shell

  • From a Python interpreter

    from cylindra import start
    # launch a napari viewer with a cylindra dock widget.
    ui = start()

Command line interface

cylindra is implemented with some basic command line interface (CLI).

cylindra --help

Implemented Functions

  • Automatic/manual fitting of splines to cylindrical structures in 3D.
  • Analyze lattice structures (such as lattice spacing and skew angle) using Cylindric Fourier transformation.
  • Automatic determination of polarity, protofilament number etc.
  • Monomer mapping along splines for subtomogram averaging and alignment.
  • Microtubule seam search with or without binding proteins.
  • Subtomogram alignment with 2D constraint.
  • Tomogram simulation of cylindric structure.

Prerequisite and Recommendations

  • Python ≥ 3.10. This project follows spec-0000.
  • Sufficient memory size. Most of the intense calculations are done out-of-core using dask, so that you can even run on 8-GB memory PC in many cases. However, larger memory size will make parallel processing more efficient. ≥32 GB is recommended.
  • Images should be loaded from SSD. Raw image stacks are loaded lazily in most of the processes. Loading from HDD will slow down many analyses as well.


If you encountered any bugs or have any requests, feel free to report an issue. (We'll appreciate if you find some methods are over-fitted to microtubules and do not work well on other cylindric structures)

For better reproducibility, please copy your environments from Others > cylindra info and the recorded macro from Others > Macro > Show macro.


If you find cylindra useful in your work, please consider citing our paper.

Heterogeneous local structures of the microtubule lattice revealed by cryo-ET and non-averaging analysis
Hanjin Liu, Hiroshi Yamaguchi, Masahide Kikkawa, Tomohiro Shima
bioRxiv 2024.04.30.591984; doi:


  • 1.0.0b1

Last updated:

  • 07 May 2024

First released:

  • 01 May 2024


  • Information not submitted

Supported data:

  • Information not submitted

Plugin type:

  • Information not submitted

GitHub activity:

  • Stars: 0
  • Forks: 0
  • Issues + PRs: 0

Python versions supported:

Operating system:

  • Information not submitted


  • impy-array>=2.4.1
  • acryo>=0.4.7
  • macro-kit>=0.4.6
  • magicgui>=0.8.1
  • magic-class>=0.7.10
  • psygnal>=0.9.1
  • superqt[iconify]>=0.6.1
  • pydantic>=1.10.0
  • pydantic-compat
  • pyqtgraph>=0.12.4
  • pyarrow>=11.0.0
  • numpy>=1.23.0
  • scipy>=1.11.3
  • pandas>=1.5.0
  • polars>=0.20.13
  • scikit-image>=0.21.0
  • napari>=0.4.18
  • qtpy>=2.3.1
  • qt-command-palette>=0.0.7
  • matplotlib>=3.8.1
  • rich>=13.6.0
  • dask<2024