Natural-abundance correction for GC-MS mass distribution vectors (MDVs) from 13C stable-isotope tracer experiments. Given a fragment's molecular formula and its labelled-backbone carbon count, SITA returns the natural-abundance correction matrix and the corrected MDV*.
A live version is hosted at sita-app.up.railway.app.
This repo is a UV workspace with two packages:
sita-core— pure algorithm library (numpy only). TheLabelledCompoundclass and isotope data.sita-web— Flask web UI, REST API. Depends onsita-core.
Requires Python 3.10+ and uv.
git clone https://github.com/CMonnin/SITA.git
cd SITA
uv sync
uv run python -m sita_web.appThen open http://127.0.0.1:5000.
The web UI has two sections:
- Correction matrix — enter a molecular formula and the number of backbone carbons; returns the natural-abundance correction matrix.
- Corrected MDV (MDV*) — additionally enter a measured MDV; returns the natural-abundance-corrected MDV.
Every compound requires a backbone_c argument: the number of carbons in
the fragment that are subject to 13C labelling in the tracer experiment.
These positions are excluded from the natural-abundance correction because
their labelling is the measurement signal (per Fischer & Zamboni 2004).
Example: alanine M-57 is the fragment C11H26NO2Si2 (Nanchen 2007 Table 1,
mass 260). Eleven total carbons — three from the alanine backbone, eight
from the two TBDMS groups after loss of the tert-butyl (C4H9). So
backbone_c=3. The MDV length defaults to backbone_c + 1 (M+0 ... M+n).
uv run pytestfrom sita_core import LabelledCompound
compound = LabelledCompound(
formula="C11H26NO2Si2",
labelled_element="C",
backbone_c=3,
)
matrix = compound.correction_matrix()- sita-core: Python + numpy for the correction math
- sita-web: Flask serving a vanilla-JS frontend
- Deployed on Railway
The mathematical basis follows:
- Nanchen, A., Fuhrer, T., Sauer, U. (2007). Determination of Metabolic Flux Ratios From 13C-Experiments and Gas Chromatography-Mass Spectrometry Data: Protocol and Principles. In: Metabolomics (Methods in Molecular Biology 358), Humana Press, pp. 177-197. doi:10.1007/978-1-59745-244-1_11
- Fischer, E., Zamboni, N., Sauer, U. (2004). High-throughput metabolic flux analysis based on gas chromatography-mass spectrometry derived 13C constraints. Analytical Biochemistry 325(2):308-316. doi:10.1016/j.ab.2003.10.036
Natural isotope abundances are from Coursey, J. S., et al. Atomic weights and isotopic compositions with relative atomic masses. NIST Physical Measurement Laboratory (2015). physics.nist.gov
The correction matrix and worked example in the test suite come from Nanchen 2007, §3.7 (alanine M-57 fragment).
This is an open-source project — contributions are welcome. Fork the repo,
make changes, and open a pull request. For feature requests or bug reports,
open an issue or reach out at cianmonnin at gmail dot com.