_images/maldiamrkit.png _images/maldiamrkit.png

MaldiAMRKit Documentation#

A Python toolkit for MALDI-TOF mass spectrometry preprocessing for antimicrobial resistance (AMR) prediction. Scikit-learn compatible transformers for seamless integration into machine learning pipelines.


Key Features#

Preprocessing Pipeline

Composable transformers (smoothing, baseline, trimming, normalization), multiple binning strategies, and peak detection. Serializable to JSON/YAML.

quickstart.html#custom-preprocessing-pipeline
Sklearn Pipelines

Scikit-learn compatible transformers. Drop into any Pipeline, cross_val_score, or GridSearchCV workflow.

quickstart.html#building-ml-pipelines
Spectral Alignment

Shift, linear, piecewise, and DTW warping for both binned and raw full-resolution spectra.

api/alignment.html
AMR Evaluation

VME, ME, sensitivity, specificity, and classification reports following EUCAST conventions. Species-drug stratified, case-based, and group-aware (replicate-safe) splitting to prevent data leakage.

api/evaluation.html
MIC & Susceptibility

MICEncoder and BreakpointTable turn raw MIC strings into log2(MIC) regression targets and S/I/R categories, with bundled EUCAST clinical breakpoints (v1.0-v16.0).

api/susceptibility.html
Differential Analysis

Per-bin resistant-vs-susceptible testing with multiple-testing correction, fold change, and effect size. Volcano, Manhattan, and multi-drug comparison plots.

api/differential.html
Drift Monitoring

DriftMonitor tracks temporal drift via reference similarity, PCA centroid trajectory, and top-peak stability, with ready-made trajectory plots.

api/drift.html
DRIAMS Dataset Builder

Build and load DRIAMS-like dataset directories from raw spectra and metadata, with year-based subfolders, custom processing handlers, and technical-replicate collapsing.

quickstart.html#building-driams-like-datasets
Composable Filters

SpeciesFilter, DrugFilter, QualityFilter, MetadataFilter combinable with &, |, ~ operators.

api/core.html#filters

Quick Example#

from maldiamrkit import MaldiSpectrum, MaldiSet
from maldiamrkit.alignment import Warping
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier

# Load dataset (with parallel loading)
data = MaldiSet.from_directory(
    "spectra/", "metadata.csv",
    aggregate_by=dict(antibiotics="Ceftriaxone"),
    n_jobs=-1  # Use all cores
)

# Create pipeline (with parallel warping)
pipe = Pipeline([
    ("warp", Warping(method="shift", n_jobs=-1)),
    ("scaler", StandardScaler()),
    ("clf", RandomForestClassifier())
])

# Train and evaluate
pipe.fit(data.X, data.get_y_single())