You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LC-MS peak picking, chromatogram extraction, gap fill, and mass-feature rollup are faster and less memory intensive.
Molecular networking and MGF export for LC-MS/MS data.
Multi-charge molecular formula search, and consensus isotope / singly charged adduct grouping.
Direct-infusion noise threshold and LC-MS peak picking default to by_format for profile vs centroid data.
Python 3.11+ only. Postgres uses psycopg 3. Atomic weights are pinned to a NIST snapshot.
Features
Molecular networking for experimental and library MS2 spectra (entropy and cosine; open, neutral-loss, and identity modes). Optional networking extra (networkx, ipysigma), collection helper, and tutorial.
Parquet export for high-resolution spectra, multi-spectrum datasets, GC-MS, and LC-MS collections.
Spectraverse MS2 (MGF) library search, with optional parquet caching.
Molecular formula search over min_ion_charge…max_ion_charge (default 1…1).
Collection-level grouping of consensus LC-MS features into natural-abundance isotope and |z|=1 adduct families.
MS2 spectral-similarity settings live on MSParameters.
peak_picking_method="by_format" selects persistent homology for profile scans and centroided persistent homology for centroid scans.
SIRIUS-compatible MGF export from LCMSBase.to_mgf and LCMSCollection.to_mgf.
lc_ms.ph_inten_min_abs (default 0.0) is an optional raw-intensity floor on persistent-homology peak picking.
HDF5 mass-spectrum export accepts compression and dtype settings. A stored profile reloads as MassSpecProfile.
Bug fixes
Annotation reports keep the MS1 molecular formula separate from MS2 library formulas.
Induced EICs are associated before gap-fill features are cleared.
Mass-feature de-duplication no longer fails when start_scan or final_scan is missing.
Resolving power is reported at the spectrum edges when a half-maximum crossing exists on both sides.
Thermo RawFileReader handles are released on close, so a .raw file can be renamed or deleted while Python is still running.
Process pools use spawn after pythonnet has started.
Profile spectra stored in CoreMS HDF5 keep m/z and abundance in the labeled column order.
Performance
Persistent-homology peak picking builds one m/z grid and does not form a distance matrix over every MS1 scan.
Gap fill binary-searches a sorted m/z axis and skips building a processed MS1 spectrum for each filled apex.
Chromatogram extraction sums intensities directly onto the scan axis.
Mass-feature rollup keeps the greedy parent rule and searches a hash grid instead of an all-pairs matrix.
Documentation / packaging
Installation guide is docs/user/installation.md and is rendered on the pdoc landing page.
Molecular formula confidence score is documented on the public formula API.
usedAtoms keys must be element symbols (C, Fe), not isotope labels (13C, 54Fe).
Data-model UML diagrams are regenerated as SVGs when the docs are built.
The task runner is just (recipe names match the old Makefile).
Release formatting is ruff format and ruff check --fix via just lint.
FTMS test data is arranged into subfolders.
Breaking changes
Python 3.10 is unsupported. CoreMS requires Python >= 3.11.
The Postgres driver is psycopg[binary]>=3.2 with SQLAlchemy >= 2.1. Use a postgresql+psycopg:// URL. psycopg2 is no longer a dependency.
Settings files are read and written with tomlkit instead of toml.
pandas is capped at >=2.2.2,<3.
Atomic weights, abundances, and isotope lists are pinned to NIST Coursey et al. Atomic Weights and Isotopic Compositions version 4.1 (retrieved 2026-10-16 and before each release from here on, updating as appropriate).
Bare Cd is now mass 113.90336509 (Δ +2.0006022 u). Look up 112Cd for the old mass.