Welcome to the adabmDCA 2.0
Documentation
adabmDCA
is a versatile library for Direct Coupling Analysis (DCA), enabling the training, sampling, and application of Boltzmann Machines (Potts models) on biological sequence data.
Instructons
This documentation is meant for providing a user-friendly description of the adabmDCA
package main features. It is supported by:
- The main article [Rosset et al., 2025], with detailed explanations of the main features. The present documentation is a shorter version of the paper, but it includes additional features
- The Colab notebook providing a tutorial of the APIs for training, sampling and analyzing a
bmDCA
model (Python only)
This tutorial introduces the new and enhanced version of adabmDCA
[Muntoni at al., 2021]. The software is available in three language-specific implementations:
- C++ – optimized for single-core CPUs
- Julia – ideal for multi-core CPU setups
- Python – GPU-accelerated and feature-rich
All versions share a unified terminal-based interface, allowing users to choose based on their hardware and performance needs.
Core Capabilities
🧠 Model Training
Choose from three training strategies to fit your model complexity and goals:
bmDCA
: Fully-connected Boltzmann Machine [Figliuzzi et al., 2018]eaDCA
: Sparse model with progressively added couplings [Calvanese et al., 2024]edDCA
: Prunes an existingbmDCA
model down to a sparse network [Barrat-Charlaix et al., 2021]
⚙️ Applications of Pretrained Models
Once trained, models can be used to:
- Generate new sequences
- Predict structural contacts [Ekeberg et al., 2013].
- Score sequence datasets based on model energy
- Build mutational libraries with DCA-based scoring
🚀 Advanced Features in Python (adabmDCApy
)
The Python version includes exclusive features:
- Experimental feedback reintegration for refined models [Calvanese et al., 2025]
- Thermodynamic integration to estimate model entropy
Profmark
: GPU-accelerated dataset splitting with phylogenetic and sampling bias control, based on thecobalt
algorithm [Petti et al., 2022]
Get Started
Ready to run? Skip ahead to the Quicklist for command-line usage examples.