Tutorials#
Interactive notebooks demonstrating MaldiDeepKit workflows end to end. Each notebook is self-contained and can be downloaded from the GitHub repository.
Example Workflows#
Single-Architecture Baseline#
import numpy as np
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from maldideepkit import MaldiMLPClassifier
rng = np.random.default_rng(0)
X = rng.standard_normal((400, 6000)).astype("float32")
y = rng.integers(0, 2, size=400)
pipe = Pipeline([
("scaler", StandardScaler()),
("clf", MaldiMLPClassifier(random_state=0)),
])
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
scores = cross_val_score(pipe, X, y, cv=cv, scoring="accuracy")
print(f"CV accuracy: {scores.mean():.3f} ± {scores.std():.3f}")
Cross-Architecture Comparison#
from maldideepkit import (
MaldiCNNClassifier,
MaldiMLPClassifier,
MaldiResNetClassifier,
MaldiTransformerClassifier,
)
classifiers = {
"mlp": MaldiMLPClassifier(random_state=0),
"cnn": MaldiCNNClassifier(random_state=0),
"resnet": MaldiResNetClassifier(random_state=0),
"transformer": MaldiTransformerClassifier(random_state=0),
}
for name, clf in classifiers.items():
clf.fit(X, y)
print(f"{name}: {clf.score(X, y):.3f}")
Full MaldiSuite Pipeline#
from maldiamrkit import MaldiSet
from maldibatchkit import SpeciesAwareComBat
from maldibatchkit.integrations import MaldiSetAdapter
from maldideepkit import MaldiCNNClassifier
ds = MaldiSet.from_directory(
"spectra/", "metadata.csv",
aggregate_by={"antibiotics": "Ciprofloxacin"},
n_jobs=-1,
)
# Optional batch-effect correction across acquisition sites
adapter = MaldiSetAdapter(batch_column="Batch", species_column="Species")
ds = adapter.correct(ds, SpeciesAwareComBat)
clf = MaldiCNNClassifier(random_state=0).fit(ds, ds.y.squeeze())
clf.save("ciprofloxacin_model")
preds = clf.predict(ds)