TeamTomo
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'spyproject.toml, regenerate the lockfile before committing:uv lockCI runs
uv sync --locked, which fails outright ifuv.lockdoesn't match what thepyproject.tomlfiles 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)
| File | Size | Uploaded | |
|---|---|---|---|
| teamtomo-0.6.0.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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