Catalog PyPI
Back to packageRELEASE DETAILS

0.9.0

PyPI

acryo

An extensible cryo-EM/ET toolkit for Python.

Published18 Oct 2026
Direct dependencies9
Transitive dependenciesNot calculated

README

Version 0.9.0 documentation

Python package index download statistics PyPI version

acryo

acryo is an extensible cryo-EM/ET toolkit for Python.

The purpose of this library is to make data analysis of cryo-EM/ET safer, efficient, reproducible and customizable for everyone. Scientists can avoid the error-prone CLI-based data handling, such as writing out the results to the files every time and manage all the result just by the file names.

📘 Documentation

Install

Use pip
pip install acryo -U
From source
git clone git+https://github.com/hanjinliu/acryo.git
cd acryo
pip install -e .

Features

  1. Out-of-core and parallel processing during subtomogram averaging/alignment to make full use of CPU.
  2. Extensible and ready-to-use alignment models.
  3. Manage subtomogram loading tasks from single or multiple tomograms in the same API.
  4. Tomogram and tilt series simulation.
  5. Masked PCA clustering.

Code Snippet

import polars as pl
from acryo import SubtomogramLoader, Molecules  # acryo objects
from acryo.tilt import single_axis  # missing wedge model
from acryo.pipe import soft_otsu  # data input pipelines

# construct a loader
loader = SubtomogramLoader.imread(
    "path/to/tomogram.mrc",
    molecules=Molecules.from_csv("path/to/molecules.csv"),
    tilt=single_axis((-45, 45), axis="y"),  # range of tilt series degrees.
)

# filter out bad alignment in polars way
loader_filt = loader.filter(pl.col("score") > 0.7)

# averaging
avg = loader_filt.average(output_shape=(48, 48, 48))

# alignment
aligned_loader = loader.align(
    template=avg,                           # use the average as template
    mask=soft_otsu(sigma=2, radius=2),      # apply soft-Otsu to template to make the mask
    cutoff=0.5,                             # lowpass filtering cutoff
    max_shifts=(4, 4, 4),                   # search space limits
)

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 9

Native requirements
9 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
dask
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
daskruntime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
numpy>=2.2.4runtime
polars
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
polars>=1.35.1runtime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
scipy>=1.14.0runtime
typing-extensions
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
typing-extensions>=4.1.1runtime
mrcfile
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mrcfile>=1.5.3; extra == "testing"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest; extra == "testing"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov; extra == "testing"runtime
tifffile
Environment
{
  "extras": "",
  "marker": "extra == \"testing\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
tifffile; extra == "testing"runtime

Distribution files

2 collected
acryo-0.9.0-py3-none-any.whl

bdist_wheel · 165.25 KB · Python py3

Source file
acryo-0.9.0.tar.gz

sdist · 132.99 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:27 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:31cd4731936bb0c06769be9b795a0de86820e25d5957a2f9cc6d0e9d035b4e26

Other collected versions

View all collected versions →