Skip to main content

TeamTomo

DOI

TeamTomo is a set of modular Python package for cryo-EM and cryo-ET for the modern scientific computing environment.

This unified repository contains the core TeamTomo data processing functionality under a single umbrella for better maintainability and cross-package development. File I/O packages are distributed separately and can be found under the organizations repositories.

Getting Started

Using TeamTomo packages is easy within the Python ecosystem. Simply install the latest release of packages from PyPI (e.g. pip install torch-grid-utils). A complete list of packages can be found on teamtomo.org.

If you're interested in contributing to TeamTomo, please look through the CONTRIBUTING guide for more info on adding, migrating, or updating packages. Source installation instructions for different use-cases are listed below. Note that the development workspace depends on the uv tool for Python environment/package management.

Basic source installation

git clone https://github.com/teamtomo/teamtomo.git
cd teamtomo
uv sync

For contributing developers

We strongly recommend making your own fork of the monorepo if you plan on contributing changes. Code should be edited in your repo (origin) and pull requests made into the TeamTomo repo (upstream).

First, fork the repository on GitHub (button near top-right of the repo home page), and then clone your fork locally:

git clone https://github.com/YOUR_USERNAME/teamtomo.git
cd teamtomo

Then, add the TeamTomo repository as an upstream remote to keep your fork up to date:

git remote add upstream https://github.com/teamtomo/teamtomo.git
git remote -v
# Verify remote setup looks like this
# origin        https://github.com/YOUR_USERNAME/teamtomo.git (fetch)
# origin        https://github.com/YOUR_USERNAME/teamtomo.git (push)
# upstream      https://github.com/teamtomo/teamtomo.git (fetch)
# upstream      https://github.com/teamtomo/teamtomo.git (push)

Package setting up via uv

Then, create and activate a new virtual environment:

uv venv
source .venv/bin/activate

And finally sync with the repository to install packages

uv sync --all-extras --all-packages

Note that the --all-extras and --all-packages flags install the development and testing requirements for all sub-packages. More granular install options are possible, if your system requires it.

Before opening a pull request

CI checks two things beyond the test suite, and a PR won't pass until both are satisfied:

  • Formatting, linting, and type checks. These are defined in .pre-commit-config.yaml (ruff, ruff-format, mypy, validate-pyproject, typos). Run them locally with:

    uv run --group dev pre-commit run --all-files
    

    Or install them as a git hook so they run automatically on every commit:

    uv run --group dev pre-commit install
    
  • A lockfile in sync with pyproject.toml. If you added, removed, or changed a dependency in any package's pyproject.toml, regenerate the lockfile before committing:

    uv lock
    

    CI runs uv sync --locked, which fails outright if uv.lock doesn't match what the pyproject.toml files declare.

Editable install for downstream development

For developing programs atop TeamTomo infrastructure, it's useful to have your program and TeamTomo both installed in editable mode in the same environment. Assuming you've cloned the teamtomo/teamtomo repo and your program uses uv for packaging, add the following to your packages pyproject.toml file:

[tool.uv.sources]
# (other lines for tool.uv.sources)
torch-grid-utils =          { path = "/path/to/teamtomo/packages/primitives/torch-grid-utils", editable = true }
torch-affine-utils =        { path = "/path/to/teamtomo/packages/primitives/torch-affine-utils", editable = true }
torch-image-interpolation = { path = "/path/to/teamtomo/packages/primitives/torch-image-interpolation", editable = true }
# ...
# Add other TeamTomo packages you want editable

# (continuation of pyproject.toml)

Then, in your project folder, run uv sync which will install those dependencies plus the listed teamtomo packages in editable mode. Changes made to TeamTomo packages will reflect in your project's environment.

List of Packages

🚧 Coming Soon 🚧

Metadata

Release files for teamtomo 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for teamtomo 0.6.0
File Size Uploaded
teamtomo-0.6.0.tar.gz 2.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for teamtomo 0.6.0
File Interpreter ABI Platform
teamtomo-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / teamtomo-0.6.0.tar.gz

Download URL teamtomo-0.6.0.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
01d48821a3084955e4ed9040b0afc2c23b591234401b8ff83797e6f5d769c309
BLAKE2b-256 checksum
How to use checksums
cc83af8a31a45d127a674a665785b109dc75e05bf1b4211aba0355abef8b1534
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / teamtomo-0.6.0-py3-none-any.whl

Download URL teamtomo-0.6.0-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
75727bf9302365bd8e474fd61be8564eca6adcc9f4c1905a2d9b6140a7637c8b
BLAKE2b-256 checksum
How to use checksums
7a0c71d114b9001c40337ab6f44d8f25c29878c87940fb5d0b2dc1dbbd5f227d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page