tacular
tacular is a lookup library for the reference data every mass-spec/proteomics tool needs: amino acids, elements and isotopes, and post-translational modification ontologies (UNIMOD, PSI-MOD, RESID, XLMOD, GNOme, UniProt-PTM). It has no runtime dependencies, so it's an easy way to add "what modification has a delta mass of X" or "what's the monoisotopic mass of alanine" to any Python project. It's also the shared data layer behind peptacular (ProForma peptide sequences) and paftacular (mzPAF fragment annotations).
Why tacular?
- Six PTM ontologies in one interface — UNIMOD, PSI-MOD, RESID, XLMOD, GNOme, and UniProt-PTM, all queryable by id, name, or approximate mass.
- Amino acid, element, ion-type, neutral-loss, protease, and mzPAF reference
molecule lookups, through the same simple
LOOKUP[key]interface. - No runtime dependencies.
- Refreshable without reinstalling: data ships baked into the package, and
the
tacular updateCLI can pull the latest ontology release into a per-user cache on demand. - Typed (
py.typed) dataclasses for every entry.
Install
pip install tacular
Quick example
import tacular as t
# Look up amino acids and elements by code or name
alanine = t.AA_LOOKUP["A"]
print(alanine.monoisotopic_mass) # 71.0371137851
carbon_13 = t.ELEMENT_LOOKUP["13C"]
print(carbon_13.mass) # 13.00335483507
# Identify a modification from an observed mass shift
hits = t.UNIMOD_LOOKUP.query_mass(79.9663, tolerance=0.001)
print(hits[0].name) # Phospho
What else it can do
-
Query PSI-MOD, RESID, XLMOD, GNOme, and UniProt-PTM the same way as UNIMOD above.
-
Look up fragment ion types, common neutral losses, mzPAF reference molecules, and protease cleavage patterns.
-
Refresh any ontology to its latest upstream release without reinstalling:
tacular update # refresh all six ontologies (includes GNOme, a ~129 MB download) tacular update unimod xlmod # refresh a subset (skips GNOme unless named) tacular status # show bundled vs. cached versions tacular clear # revert to the bundled data
The refresh takes effect on the next
import tacular. See the docs for the full CLI reference (including--offline, verbosity flags, and cache environment variables) and the complete lookup API.
Documentation
- Full docs: tacular.readthedocs.io
- Changelog: CHANGELOG.md
- Architecture and contributing (also useful for AI coding agents): CLAUDE.md
(
AGENTS.mdpoints here for tools that look for that filename instead) - Data-generation pipeline (regenerating the bundled ontology snapshots): data_gen/README.md
Funding
Supported by NIH grants R01AG077046, R01MH132570, R01MH100175, R01HL165168 and U01AG088679.
Release files for tacular 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tacular-1.1.3.tar.gz | 884.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tacular-1.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.3 MB
Release files / tacular-1.1.3.tar.gz
| Download URL | tacular-1.1.3.tar.gz |
|---|---|
| Size | 884.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b7ab212447163baab01dd5a73f4eceb96fa64ffc8c0ba78ffc8c70f7d17fd08
|
|
BLAKE2b-256 checksum How to use checksums |
1536fadd0e7d0f3d9b358c0111530d1f6ac7e7ee472d2c408915c3a2619b5204
|
| 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 23, 2026.
Transparency logRelease files / tacular-1.1.3-py3-none-any.whl
| Download URL | tacular-1.1.3-py3-none-any.whl |
|---|---|
| Size | 422.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1f4cf2d2494192f0c1b33673cf899bafd87c89c7e6900868b20225a54212b7ec
|
|
BLAKE2b-256 checksum How to use checksums |
ac2741fe06c1445f67128a692ca08fbcd827fddd287f774518a68c4931643e42
|
| 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 23, 2026.
Transparency log