Skip to main content

Deep learning tools and models for MALDI-TOF spectra analysis

Project description

maldi-nn

Deep learning tools and models for MALDI-TOF mass spectra analysis.

Package features:

  • Reading and preprocessing functions for MALDI-TOF MS spectra.
  • Model definitions to process SMILES strings with state-of-the-art techniques (for feature-based AMR prediction).
  • Model definitions to pre-train state-of-the-art Transformer networks on MALDI-TOF MS data
  • Model definitions and scripts to train AMR models on the DRIAMS database.
  • Model definitions and scripts to train species identification models.

Install

maldi-nn is distributed on PyPI.

pip install maldi-nn

In case this package loses backward-compatibility with more-recent versions of PyTorch and PyTorch Lightning: the code has been tested with torch==2.0.1 and pytorch-lightning==2.0.9. If you encounter errors with these packages, try running the code using these versions.

You may need to install PyTorch before running this command in order to ensure the right CUDA kernels for your system are installed

Quick start

We have uploaded some example spectra from the RKI database and our pre-trained models in the assets folder.

To quickly start playing around with our models, follow:

In bash:

pip install maldi-nn
git clone https://github.com/gdewael/maldi-nn.git

In Python:

from maldi_nn.spectrum import *
from maldi_nn.models import MaldiTransformer
import torch
spectrum = SpectrumObject.from_bruker(
    "./maldi-nn/assets/RKI_example/Bacillus_anthracis/acqu",
    "./maldi-nn/assets/RKI_example/Bacillus_anthracis/fid"
    )

preprocessor = SequentialPreprocessor(
    VarStabilizer(method="sqrt"),
    Smoother(halfwindow=10),
    BaselineCorrecter(method="SNIP", snip_n_iter=20),
    Trimmer(),
    PersistenceTransformer(extract_nonzero=True),
    Normalizer(sum=1),
    PeakFilter(max_number=200),
)

spectrum_preprocessed = preprocessor(spectrum)
spectrum_tensors = spectrum_preprocessed.torch()

model = MaldiTransformer.load_from_checkpoint("../../maldi-nn/assets/MaldiTransformerM.ckpt").eval().cpu()

mlm_logits, spectrum_embedding = model(spectrum_tensors)

prob_noise_peak = torch.sigmoid(mlm_logits)

Other Maldi Transformer model sizes are available at https://huggingface.co/gdewael/MaldiTransformer/tree/main.

Academic Reproducibility

This package contains all code and scripts to reproduce: "An antimicrobial drug recommender system using MALDI-TOF MS and dual-branch neural networks", and "Pre-trained Maldi Transformers improve MALDI-TOF MS-based prediction". All information regarding reproducing our results can be found in the reproduce folder README

Credits

  • Implementations of many MALDI reading and processing functions were based on the R package MaldiQuant.
  • Topological Peak Filtering was taken from the Topf package.

Citation

Antimicrobial drug recommenders:

@article{dewaele2023antimicrobial,
  title={An antimicrobial drug recommender system using MALDI-TOF MS and dual-branch neural networks},
  url={http://dx.doi.org/10.1101/2023.09.28.559916},
  DOI={10.1101/2023.09.28.559916},
  publisher={Cold Spring Harbor Laboratory},
  author={De Waele, Gaetan and Menschaert, Gerben and Waegeman, Willem},
  year={2023},
  month=sep,
}

Maldi Transformers:

@article{dewaele2024pre,
  title={Pre-trained Maldi Transformers improve MALDI-TOF MS-based prediction},
  author={De Waele, Gaetan and Menschaert, Gerben and Vandamme, Peter and Waegeman, Willem},
  journal={bioRxiv},
  pages={2024--01},
  year={2024},
  publisher={Cold Spring Harbor Laboratory}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maldi_nn-0.2.4.tar.gz (43.0 MB view details)

Uploaded Source

Built Distribution

maldi_nn-0.2.4-py3-none-any.whl (5.9 MB view details)

Uploaded Python 3

File details

Details for the file maldi_nn-0.2.4.tar.gz.

File metadata

  • Download URL: maldi_nn-0.2.4.tar.gz
  • Upload date:
  • Size: 43.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for maldi_nn-0.2.4.tar.gz
Algorithm Hash digest
SHA256 c368583cf60d54df7946971a336193595d686e7360231115abc27225b9c485aa
MD5 89b28a921731e54040815ee5c840ce59
BLAKE2b-256 fe322e5693cccd9ea1f03e35e37c9522bc59cf050939c5749655f16d164d957d

See more details on using hashes here.

File details

Details for the file maldi_nn-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: maldi_nn-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for maldi_nn-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2f6da0104eb3028fa38711338c47c739fddf5b188d946fd116df80fc9c3eb7b5
MD5 a0d79a67612f3d509fb2362188fb944b
BLAKE2b-256 08b06402e440728ca6550524427acd7472fe40a5e3dfb60fa89c3ca05741b294

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page