Antimicrobial Resistance predictions via AI models
Project description
ResPredAI
Antimicrobial resistance predictions via artificial intelligence models
Implementation of the pipeline described in:
Bonazzetti, C., Rocchi, E., Toschi, A. et al. Artificial Intelligence model to predict resistances in Gram-negative bloodstream infections. npj Digit. Med. 8, 319 (2025). https://doi.org/10.1038/s41746-025-01696-x
Website | Documentation | Installation | Quick Start | CLI Commands | Citation
A reproducible machine learning framework designed to accelerate clinical decision-making by predicting antimicrobial resistance patterns from patient data.
Links
- Project Website - Overview of the project, original paper, and related work
- Documentation - Installation guides, CLI reference, tutorials, and API documentation
Installation
Install from PyPI:
pip install respredai
Or install from source:
git clone https://github.com/EttoreRocchi/ResPredAI.git
cd ResPredAI
# For development (includes pytest)
pip install -e ".[dev]"
Testing the Installation
Verify the installation:
respredai --version
Quick Start
1. Create a configuration file
respredai create-config my_config.ini
2. Edit the configuration file
Edit my_config.ini with your data paths and parameters:
[Data]
data_path = ./data/my_data.csv
targets = Target1,Target2
continuous_features = Feature1,Feature2,Feature3
# group_column = PatientID # Optional: prevents data leakage when you have multiple samples per patient
[Pipeline]
models = LR,RF,XGB,CatBoost
outer_folds = 5
inner_folds = 3
calibrate_threshold = false
threshold_method = auto
# Threshold optimization objective: youden (default), f1, f2, cost_sensitive
threshold_objective = youden
# Cost weights for cost_sensitive objective (VME = false susceptible, ME = false resistant)
vme_cost = 1.0
me_cost = 1.0
[Uncertainty]
# Margin around threshold for flagging uncertain predictions (0-0.5)
margin = 0.1
[Reproducibility]
seed = 42
[Log]
verbosity = 1
log_basename = respredai.log
[Resources]
n_jobs = -1
[ModelSaving]
enable = true
compression = 3
[Imputation]
method = none
strategy = mean
n_neighbors = 5
estimator = bayesian_ridge
[Output]
out_folder = ./output/
3. Run the pipeline
respredai run --config my_config.ini
CLI Commands
Run the pipeline
respredai run --config path/to/config.ini [--quiet]
Train models using nested cross-validation with the specified configuration.
๐ Detailed Documentation - Complete guide with all configuration options and workflow details.
Train models for cross-dataset validation
respredai train --config path/to/config.ini [--models LR,RF] [--output ./trained/]
Train models on the entire dataset using GridSearchCV for hyperparameter tuning. Saves one model file per model-target combination for later use with evaluate.
๐ Detailed Documentation - Complete guide with output structure and workflow.
Evaluate on new data
respredai evaluate --models-dir ./output/trained_models --data new_data.csv --output ./eval/
Apply trained models to new data with ground truth. Outputs predictions and metrics.
๐ Detailed Documentation - Complete guide with data requirements and output format.
Extract feature importance
respredai feature-importance --output <output_folder> --model <model_name> --target <target_name> [--top-n 20]
Extract and visualize feature importance/coefficients from trained models across all outer cross-validation iterations. Uses SHAP as fallback for models without native feature importance.
๐ Detailed Documentation - Complete guide with interpretation, examples, and statistical considerations.
List available models
respredai list-models
Display all available machine learning models with descriptions.
Available Models:
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Code โ Name โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ LR โ Logistic Regression โ
โ MLP โ Neural Network โ
โ XGB โ XGBoost โ
โ RF โ Random Forest โ
โ CatBoost โ CatBoost โ
โ TabPFN โ TabPFN โ
โ RBF_SVC โ RBF SVM โ
โ Linear_SVC โ Linear SVM โ
โ KNN โ K-Nearest Neighbors โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Create a template configuration file
respredai create-config output_path.ini
Generate a template configuration file that you can edit for your data.
๐ Detailed Documentation - Complete guide to configuration file structure and customization.
Validate a configuration file
respredai validate-config <path_to_config.ini> [--check-data]
Validate a configuration file without running the pipeline. It can also check that the dataset load without errors.
๐ Detailed Documentation - Complete guide to configuration file validation.
Show information
respredai info
Display information about ResPredAI including scientific paper citation and version details.
Or just:
respredai --version
to show the installed version of ResPredAI.
Output
The pipeline generates:
- Confusion matrices: PNG files with heatmaps showing model performance for each target
- Detailed metrics tables: CSV files with comprehensive metrics (precision, recall, F1, MCC, balanced accuracy, AUROC, VME, ME) with mean, std, and 95% CI
- Trained models: Saved models for resumption and feature importance extraction (if model saving enabled)
- Feature importance: Plots and CSV files showing feature importance/coefficients (generated separately)
- Log files: Detailed execution logs (if verbosity > 0)
Output Structure
output_folder/
โโโ models/ # Trained models (if model saving enabled)
โ โโโ {Model}_{Target}_models.joblib
โโโ trained_models/ # Models for cross-dataset validation (from train command)
โ โโโ {Model}_{Target}.joblib
โ โโโ training_metadata.json
โโโ metrics/ # Detailed performance metrics
โ โโโ {target_name}/
โ โ โโโ {model_name}_metrics_detailed.csv
โ โ โโโ summary.csv # Summary across all models
โ โโโ summary_all.csv # Global summary
โโโ feature_importance/ # Feature importance (if extracted)
โ โโโ {target_name}/
โ โโโ {model_name}_feature_importance.csv # Importance values
โ โโโ {model_name}_feature_importance.png # Barplot visualization
โโโ confusion_matrices/ # Confusion matrix heatmaps
โ โโโ Confusion_matrix_{model_name}_{target_name}.png
โโโ report.html # Comprehensive HTML report
โโโ respredai.log # Execution log (if verbosity > 0)
Changelog
See the full history of changes in the CHANGELOG.md file.
Citation
If you use ResPredAI in your research, please cite:
@article{Bonazzetti2025,
author = {Bonazzetti, Cecilia and Rocchi, Ettore and Toschi, Alice and Derus, Nicolas Riccardo and Sala, Claudia and Pascale, Renato and Rinaldi, Matteo and Campoli, Caterina and Pasquini, Zeno Adrien Igor and Tazza, Beatrice and Amicucci, Armando and Gatti, Milo and Ambretti, Simone and Viale, Pierluigi and Castellani, Gastone and Giannella, Maddalena},
title = {Artificial Intelligence model to predict resistances in Gram-negative bloodstream infections},
journal = {npj Digital Medicine},
volume = {8},
pages = {319},
year = {2025},
doi = {10.1038/s41746-025-01696-x},
url = {https://doi.org/10.1038/s41746-025-01696-x}
}
Funding
This research was supported by EU funding within the NextGenerationEU-MUR PNRR Extended Partnership initiative on Emerging Infectious Diseases (Project no. PE00000007, INF-ACT).
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines on setting up a development environment, running tests, and submitting pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file respredai-1.5.0.tar.gz.
File metadata
- Download URL: respredai-1.5.0.tar.gz
- Upload date:
- Size: 55.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1884ae9cc3c42aa3728d2fada17208ceac87bee20bcdb7cd5ad5a337651cd894
|
|
| MD5 |
3907af5aa1814fdec73f0c909fb88791
|
|
| BLAKE2b-256 |
6d5eefd56e5d70de973a8ff87e42aef6494e9bbcb79f385f27830182257608dc
|
File details
Details for the file respredai-1.5.0-py3-none-any.whl.
File metadata
- Download URL: respredai-1.5.0-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1c4335505cd4ce8ec624c6742f8f4f52553b34924c82934f3f117ee0d3e40c6
|
|
| MD5 |
a0a5c0a470152877bba60aa7b30388ba
|
|
| BLAKE2b-256 |
ef83169ee11a9287e15b54bc78f3752acad8322f160b17c721d264f5e4d12d91
|