tomo_toolshed
A small, growing collection of lightweight cryo-ET file/CLI tools — etomo and
WarpTools helpers, segmentation curation, and more to come — all installed at
once and exposed as subcommands of a single tomo_toolshed command. Every tool
here is intentionally lightweight (file/CLI editors, no heavy or GPU deps), so
one install gets you everything.
Install
git clone https://github.com/hamid13r/tomo_toolshed.git
cd tomo_toolshed
pip install -e .
This installs the tomo_toolshed command. List the available tools with:
tomo_toolshed --help
Prefer conda/micromamba? A merged environment is provided:
micromamba create -f environment.yml -y
micromamba activate tomo-toolshed
pip install -e .
Tools
| Command | Description | Docs |
|---|---|---|
tomo_toolshed skipped-views |
Prune skipped etomo views from WarpTools tilt-series XML by updating UseTilt from taSolution.log (with optional dose/tilt selection), or physically remove the excluded tilts from the XML and .tomostar with --delete. |
docs/skipped_views.md |
tomo_toolshed curate |
Interactive GUI to review and clean a 3D segmentation over a tomogram, then export a curated binary mask — or load particles (star, or x y z .txt/.box) as spheres and export a star file with false positives removed. |
docs/segmentation_curator.md |
tomo_toolshed add-defocus |
Fill in the placeholder _rlnDefocus column of an IsoNet star file with the average CTF defocus from the matching Warp XML files. |
docs/add_defocus.md |
tomo_toolshed trace-filaments |
Trace filaments in a binary segmentation mask and export a RELION 4 helical star file of evenly spaced particles (optional ChimeraX .bild overlay). |
docs/filament_tracer.md |
tomo_toolshed dipole2star |
Collapse manual dipole picks (RELION star or plain 3-column text) into a RELION oriented-particle star file, one output per input. | docs/dipole2star.md |
tomo_toolshed write-ebt |
Build an etomo batchruntomo .ebt project file from a directory of per-tilt-series subdirectories, with Linux or Windows .st path styles. |
docs/write_ebt.md |
tomo_toolshed duplicate-remover |
Remove particles closer than a distance threshold within each tomogram/micrograph, across RELION 3/4/5 and M/WarpTools star flavors (resolves the coordinate pixel size per flavor). | docs/duplicate_remover.md |
tomo_toolshed split-star |
Split a particle star file into one star file per tomogram/micrograph/source, flat by default or one subdirectory per group with --dir-per-group (carries through optics/general blocks). |
docs/split_star.md |
tomo_toolshed scale-star |
Rescale particle coordinates between pixel sizes (with optional shift), rewriting the coordinate pixel-size columns, across RELION 3/4/5 and M/WarpTools star flavors (leaves rlnImagePixelSize and *Angst columns alone). |
docs/scale_star.md |
tomo_toolshed filament-cleanup |
After RELION helical refinement, remove particles that sit off a smooth curve through their filament or whose tilt/psi axis disagrees with their neighbours; writes the cleaned star file plus a star file of the removed particles for inspection. | docs/filament_cleanup.md |
tomo_toolshed xml-reconstruct |
Reconstruct a Warp/WarpTools tomogram from its tilt-series XML (a NumPy/SciPy re-implementation of ts_reconstruct), with swappable weighting and filtering hooks for making new versions of a tomogram from the same aligned tilts. |
docs/xml_reconstruct.md |
Development
pip install -e ".[test]"
pytest
Adding a tool
The layout is designed so a new lightweight tool is easy to drop in. Convention:
- Create a subpackage under
src/tomo_toolshed/<your_tool>/with acli.pyexposing aclickcommand (split heavier logic into acore.py, likeskipped_views/does). Keep any GUI/matplotlib imports lazy so the package stays headless-import-safe. - Register it in
src/tomo_toolshed/cli.py: import the command and add it to the group withtomo_toolshed.add_command(<cmd>, name="<subcommand>"). Also add a one-line entry to the group docstring sotomo_toolshed --helpreads as a useful index. - Add any new dependencies to the single
dependencieslist inpyproject.toml(and toenvironment.yml). There are deliberately no per-tool extras — one install gets everything. - Add a docs page at
docs/<your_tool>.mdand link it from the table above. - Add tests under
tests/<your_tool>/.
Acknowledgments
These tools read, write, or interoperate with files from the cryo-ET ecosystem,
and build on established open-source software. Please cite the relevant upstream
projects when you use the corresponding part of this toolshed (see
CITATION.cff for structured references).
Interoperates with / builds on:
- Warp / WarpTools —
xml-reconstructreimplementsts_reconstruct, and several tools read Warp XML /.tomostar/.settings(Tegunov & Cramer, Nat. Methods 2019). - IMOD / etomo —
skipped-viewsreads etomotaSolution.log;write-ebtbuilds abatchruntomo.ebtproject (Kremer, Mastronarde & McIntosh, J. Struct. Biol. 1996). - novaCTF — 3D-CTF correction in the tomography pipeline (Turoňová et al., J. Struct. Biol. 2017).
- AreTomo — marker-free tilt-series alignment, an alignment source reflected in the metadata (Zheng et al., 2022).
- RELION — the star-file format target for the helical / oriented-particle tools (RELION 4.x).
- IsoNet —
add-defocusfills IsoNet star files.
Built on these Python libraries: mrcfile, starfile, NumPy, SciPy, scikit-image, pandas, Click, NetworkX, connected-components-3d, Matplotlib, Pillow, and lxml.
License
MIT — see LICENSE.
Metadata
Release files for tomo-toolshed 0.1.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 | |
|---|---|---|---|
| tomo_toolshed-0.1.0.tar.gz | 94.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tomo_toolshed-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 204.6 kB
Release files / tomo_toolshed-0.1.0.tar.gz
| Download URL | tomo_toolshed-0.1.0.tar.gz |
|---|---|
| Size | 94.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d594a2c7d2c5b0724c3b1fbfb9fae6062f688d0ffaba378bfef389272e0dd010
|
|
BLAKE2b-256 checksum How to use checksums |
73091f84fc4f664a1addc119f29f14686c52a1569c39528b044d6d073e4b17f7
|
| 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 Oct 5, 2026.
Transparency logRelease files / tomo_toolshed-0.1.0-py3-none-any.whl
| Download URL | tomo_toolshed-0.1.0-py3-none-any.whl |
|---|---|
| Size | 110.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d8b50dc9a7ba2e6f9a9610e6ffd9b01914ee9644112ce0bf4fb9bd900611b39
|
|
BLAKE2b-256 checksum How to use checksums |
f974cebb35a04942260e42a1dcf330a1d41069ba5fe5735fed8612c9c1827316
|
| 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 Oct 5, 2026.
Transparency log