Skip to main content

DLOmix

Docs Build PyPI

DLOmix is a Python framework for Deep Learning in Proteomics. DLOmix provides multi-backend support for both TensorFlow/Keras and PyTorch, allowing researchers to choose their preferred deep learning framework while maintaining identical APIs and functionality. The dataset module is built upon HuggingFace datasets and can provide both TensorFlow and PyTorch tensors.

Note: Multi-backend support was introduced in dlomix==0.2. Earlier versions supported TensorFlow/Keras only.

Note: Keras 3 support was introduced in dlomix==0.3: the TensorFlow backend now requires TensorFlow 2.18 or newer (where tf.keras is Keras 3), and every model is available on both backends and verified to compute the same function given the same weights. Import dlomix before keras, since DLOmix sets the Keras backend from DLOMIX_BACKEND. For TensorFlow < 2.16 (Keras 2), use dlomix<0.3. Upgrading from 0.2 on PyTorch: models now start and train like their TensorFlow counterparts, and some older checkpoints no longer load; see the changelog.

The PyTorch implementation was largely introduced during a hackathon as part of the EuBIC Developer Meeting 2025. We appreciate the efforts and contributions of the team who joined the hackathon and the efforts of the EuBIC team and organizers.

Backend Selection

DLOmix automatically detects and uses the appropriate backend based on your environment setup. You can control which backend to use through the DLOMIX_BACKEND environment variable:

TensorFlow Backend (Default)

The TensorFlow backend requires TensorFlow 2.18+ (Keras 3); the PyTorch backend requires PyTorch 2.3+.

# Set TensorFlow as backend (default)
export DLOMIX_BACKEND=tensorflow
# or
export DLOMIX_BACKEND=tf

# Install DLOmix with TensorFlow
pip install dlomix[tensorflow]

# Or install tensorflow separately (existing installation), then only install dlomix
pip install dlomix

PyTorch Backend

# Set PyTorch as backend
export DLOMIX_BACKEND=pytorch
# or
export DLOMIX_BACKEND=torch
# or
export DLOMIX_BACKEND=pt

# Install DLOmix with PyTorch support
pip install dlomix[pytorch]

# Or install pytorch separately (existing installation), then only install dlomix
pip install dlomix

Note: The backend must be set before importing DLOmix. If no backend is specified, DLOmix defaults to TensorFlow with a user warning.

GPU Support (Linux, NVIDIA)

TensorFlow needs its CUDA libraries installed explicitly. The tf-cuda extra installs them as pip packages through tensorflow[and-cuda], so no system-wide CUDA toolkit is needed — only an NVIDIA driver:

pip install "dlomix[tf-cuda]"

NVIDIA publishes these CUDA wheels for Linux only. On macOS and Windows the tf-cuda extra installs the regular TensorFlow build instead of failing.

PyTorch needs no extra: its Linux wheels on PyPI are already CUDA builds, so pip install "dlomix[pytorch]" is enough. Recent PyTorch releases target a recent CUDA version, which requires a correspondingly recent NVIDIA driver. On an older driver, install PyTorch from the matching CUDA index given by the PyTorch install selector, then install DLOmix.

To check what your environment sees — backend, versions, and GPUs visible to the active backend:

python -m dlomix

Please include this output when reporting a bug. If a GPU is present but not detected, the usual causes are a driver that is too old for the CUDA version shown, or an LD_LIBRARY_PATH pointing at a different system CUDA installation.

Apple GPUs (macOS, tensorflow-metal)

With tensorflow-metal installed, TensorFlow trains on the Apple GPU. Its fused GRU kernel (tensorflow-metal 1.2.0) does not compute the standard GRU: it ignores the GRU's input bias and adds the recurrent bias outside the reset gate. Both agree while the biases are zero, as Keras initializes them, so training on a Mac looks normal. But once the biases are trained, the weights compute a different function on any other platform or in PyTorch: weights trained on a Mac give other predictions elsewhere, and published weights give wrong predictions on a Mac. This is a different formula, not floating-point error. The DLOmix TensorFlow models therefore use the standard GRU kernel when an Apple GPU is visible, and warn once. Results are then the same on every platform and in PyTorch, but the standard kernel is slow on the Apple GPU. Training Prosit intensity on an M1 Max:

Setup Time per epoch
TensorFlow, Apple GPU, standard GRU (default with tensorflow-metal) 622 s
TensorFlow, CPU 78 s
PyTorch, Apple GPU (MPS) 16 s

For the models with GRU layers (Prosit, charge state, detectability, Ionmob), train TensorFlow on the CPU by hiding the GPU before TensorFlow uses it, or use the PyTorch backend:

import tensorflow as tf
tf.config.set_visible_devices([], "GPU")

tensorflow-metal 1.2.0 only works with TensorFlow below 2.20, which DLOmix installs on macOS for Python 3.11 and 3.12.

Usage

Experiment a simple retention time prediction use-case using Google Colab    Colab

A version that includes experiment tracking with Weights and Biases is available here    Colab

Resources Repository

More learning resources can be found in the dlomix-resources repository.

Installation

Quick Start

# Basic installation
# TensorFlow and PyTorch not installed, please install separately
pip install dlomix

# Install DLOmix and additionally install specific backend
pip install dlomix[tensorflow]  # TensorFlow backend
pip install dlomix[pytorch]     # PyTorch backend

General Package Overview

DLOmix provides a unified API across both TensorFlow and PyTorch backends:

  • data: structures for modeling input data, processing functions, and feature extractions based on Hugging Face datasets Dataset and DatasetDict (backend-agnostic)
  • eval: classes for evaluating models and reporting results (backend-specific implementations)
  • layers: custom layers for building models
    • TensorFlow: based on tf.keras.layers.Layer
    • PyTorch: based on torch.nn.Module
  • losses: custom loss functions
    • TensorFlow: compatible with model.fit()
    • PyTorch: compatible with standard PyTorch training loops
  • models: common model architectures for relevant use-cases
    • TensorFlow: based on tf.keras.Model
    • PyTorch: based on torch.nn.Module
  • pipelines: high-level pipeline implementations (backend-agnostic)
  • reports: classes for generating reports (backend-agnostic)
  • constants.py: constants and configuration values

Available Models by Backend

Model TensorFlow/Keras PyTorch
PrositRetentionTimePredictor [1] ✅ ✅
PrositIntensityPredictor [1] ✅ ✅
ChargeStatePredictor ✅ ✅
DetectabilityModel [4] ✅ ✅
DeepLCRetentionTimePredictor [2,3] ✅ ✅
Ionmob [5] ✅ ✅
PIMMS-CF [6] ❌ ⚠ (experimental)

Use-cases

  • Retention Time Prediction:

    • a regression problem where the retention time of a peptide sequence is to be predicted.
  • Fragment Ion Intensity Prediction:

    • a multi-output regression problem where the intensity values for fragment ions are predicted given a peptide sequence along with some additional features.
  • Peptide Detectability (Pfly) [4]:

    • a multi-class classification problem where the detectability of a peptide is predicted given the peptide sequence.

Developing DLOmix

To install dlomix, along with the tools needed to develop and run tests, run the following command in your virtualenv:

$ pip install -e .[dev]

References

[Prosit]

[1] Gessulat, S., Schmidt, T., Zolg, D. P., Samaras, P., Schnatbaum, K., Zerweck, J., ... & Wilhelm, M. (2019). Prosit: proteome-wide prediction of peptide tandem mass spectra by deep learning. Nature methods, 16(6), 509-518.

[DeepLC]

[2] DeepLC can predict retention times for peptides that carry as-yet unseen modifications Robbin Bouwmeester, Ralf Gabriels, Niels Hulstaert, Lennart Martens, Sven Degroeve bioRxiv 2020.03.28.013003; doi: 10.1101/2020.03.28.013003

[3] Bouwmeester, R., Gabriels, R., Hulstaert, N. et al. DeepLC can predict retention times for peptides that carry as-yet unseen modifications. Nat Methods 18, 1363–1369 (2021). https://doi.org/10.1038/s41592-021-01301-5

[Detectability - Pfly]

[4] Abdul-Khalek, N., Picciani, M., Wimmer, R., Overgaard, M. T., Wilhelm, M., & Gregersen Echers, S. (2024). To fly, or not to fly, that is the question: A deep learning model for peptide detectability prediction in mass spectrometry. bioRxiv, 2024-10.

[IonMob]

[5] Teschner, D., Gomez-Zepeda, D., Declercq, A., Łącki, M. K., Avci, S., Bob, K., ... & Hildebrandt, A. (2023). Ionmob: a Python package for prediction of peptide collisional cross-section values. Bioinformatics, 39(9), btad486.

[PIMMS]

[6] Webel, H., Niu, L., Nielsen, A.B. et al. Imputation of label-free quantitative mass spectrometry-based proteomics data using self-supervised deep learning. Nat Commun 15, 5405 (2024). https://doi.org/10.1038/s41467-024-48711-5

Credit

PyTorch Implementation Hackathon during EuBIC Developer Meeting 2025

  • Ayla Schröder
  • Henry Webel
  • David Teschner
  • Stan Reinders

Metadata

Release files for dlomix 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dlomix 0.3.1
File Size Uploaded
dlomix-0.3.1.tar.gz 180.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dlomix 0.3.1
File Interpreter ABI Platform
dlomix-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 347.8 kB

Release files / dlomix-0.3.1.tar.gz

Download URL dlomix-0.3.1.tar.gz
Size 180.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3997307b8382383bddd497ed4a157de1d79541662f2a8a53cda4666d38e35326
BLAKE2b-256 checksum
How to use checksums
d66d8cd4d2b2759bb2e57da4de7460a392e495c6d0a00cf4805fad6ffee9a588
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / dlomix-0.3.1-py3-none-any.whl

Download URL dlomix-0.3.1-py3-none-any.whl
Size 167.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
63bdced9d7fb846c770300e21fdca215d794b2db7b2168d69612c7b945eb2c60
BLAKE2b-256 checksum
How to use checksums
ecb3c78d92b3932fc0da1b7572b63ae38a54c1225441acd062f721f331781adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page