Prédiction améliorée par l'IA de la progression de la sténose aortique : Aperçu de l'étude PROGRESSA

Gitlab

Lien vers le repo : Gitlab

Objectifs de l’algorithme

Outils d’identification de patients / dépistage biologique

Les algorithmes d'intelligence artificielle (IA) ont déjà été utilisés pour diverses tâches en cardiologie, notamment la prédiction des risques et l'optimisation de la prise de décision. Plusieurs études ont fait état de l'applicabilité et de la précision de ces algorithmes pour détecter la Sténose Aortique (SA) dans divers contextes. En outre, nous avons précédemment démontré l'utilité d'un pipeline d'apprentissage automatique qui intègre quelques paramètres échocardiographiques pour améliorer la stratification du risque de SA.

Toutefois, la capacité d’un tel pipeline à prédire la progression de la SA n'a pas encore été étudiée. 

Les réseaux neuronaux récurrents (RNN), généralement mis en œuvre pour des problèmes impliquant des séquences temporelles, pourraient constituer une approche prometteuse pour l'application de l'apprentissage profond à la prédiction de l'évolution de la maladie dans le temps, utile à la prise de décisions thérapeutiques.

En outre, les algorithmes arborescents tels que XGBoost et LightGBM, qui ont également démontré de solides performances avec des données temporelles, peuvent fournir des prédictions précises dans notre contexte.

Dans la présente étude, nous avons intégré des données cliniques et échocardiographiques complètes provenant de patients suivis depuis des années dans un RNN et des algorithmes à base d'arbres pour prédire la progression de la SA et améliorer ensuite la prédiction du risque d'événements cliniques par rapport à des facteurs de risque cardiovasculaire bien connus et à des paramètres échocardiographiques standard.

Auteur(s)

Établissement d’enseignement supérieur
Louis Ohl

Université Côte d’Azur

Domaine médical

Maladies cardio-vasculaires

Méthodologie

Des algorithmes d'apprentissage automatique et profond ont été entraînés sur l’ensemble de données PROGRESSA (décrit ci-dessous) et ont été comparés à un modèle standard avec des caractéristiques habituellement utilisées en milieu clinique, basé sur la régression logistique.

Pour chaque visite annuelle de suivi, nous avons entraîné divers algorithmes d'apprentissage supervisé, y compris le modèle standard, à prédire la progression de la maladie à 2 et 5 ans. Aux deux échéances, LightGBM a constamment surpassé les autres modèles avec la plus grande aire moyenne sous la courbe ROC (mesure de performance AUROC) à travers les visites des patients (0,85 à 2 ans, 0,83 à 5 ans). Les modèles basés sur les réseaux neuronaux récurrents (Gated Recurrent Unit et Long Short-Term Memory), les modèles par Naïve Bayes et XGBoost ont également démontré de fortes capacités prédictives, tandis que le modèle clinique a affiché les performances les plus faibles.

Langage de programmation

Python

Données utilisées

Données d'application

Base principale
Données d’imagerie
Données tabulaires

En amont de la mise en open source des algorithmes du projet HDH-FRQS Sténose Aortique, 303 patients inscrits à l'étude PROGRESSA (Metabolic Determinants of the Progression of Aortic Stenosis) ont fait l'objet d'un suivi clinique et échocardiographique sur une base annuelle pour constituer le jeu de données PROGRESSA. L’évaluation des modèles sur ce jeu de données vise à prédire la progression de la maladie à long terme (5 ans) et à court terme (2 ans).

Validation

Validé

Ces tableaux de performances sont disponibles dans la documentation détaillée expliquant l'entraînement du modèle : 

Table 4

Tabke 5

Date de dernière mise à jour

Il s’agit de la version 1.0 pour l'implémentation Python : octobre 2024.

Maintenance

Ad-hoc (en fonction des remontées de problèmes, suggestions)

Comment installer l’algorithme ?

This repository contains the code to reproduce the results of the paper Sanabria, M, Tastet, L, Pelletier, S, Leclercq, M, Ohl, L, Hermann, L, Mattei, P-A, Precioso, F, Coté, N, Pibarot, P, Droit, A. AI-Enhanced Prediction of Aortic Stenosis Progression: Insights From the PROGRESSA Study. JACC Adv. 2024 Oct, 3 (10) . https://doi.org/10.1016/j.jacadv.2024.101234 

Install the package and necessary dependencies by running the command:
pip3 install 
or
python3 setup.py build
python3 setup.py install

Comment utiliser l’algorithme ?

PREPROCESS

Before training the models, the first step is to run the script to extract the features using the command:
python3 progressa/preprocess/extract_features.py

The next step is to create a file that will contain the indices for the 10 splits that will be used for the repeated holdout method. To achieve this, run the script:
python3 progressa/preprocess/create_splits.py

Then, the features importance is calculated using the script:
python3 progressa/preprocess/feature_importance.py

The most important features returned from running this script are then input in the script select_features.py
To get the file with selected features only, which will be found in data/features-22.pkl, run:
python3 progressa/preprocess/select_features.py
 

TRAIN MODELS

To train the RNN model (GRU):
python3 progressa/train_models/RNN.py

To train the machine learning models compared with RNN, use the following command lines:
python3 progressa/train_models/sklearn_models.py --model=naiveBayes
python3 progressa/train_models/sklearn_models.py --model=Logistic_Regression 
python3 progressa/train_models/sklearn_models.py --model=lightgbm
python3 progressa/train_models/sklearn_models.py --model=xgboost

To train on 2 visits at a time, modify the precedent commands by adding the command --n_visits=2
For example: python3 progressa/train_models/sklearn_models.py --model=naiveBayes --n_visits=2
 

ANALYSIS

To reproduce the analysis from the paper, run the following commands
python3 progressa/analysis/analyse_results.py
python3 progressa/analysis/analyse_results_per_sex.py
python3 progressa/analysis/severity_baseline.py
python3 progressa/analysis/stats.py
python3 progressa/analysis/calibration_plot.py


CREATE IMAGES

To reproduce the images from the paper, run the following commands
python3 progressa/create_images/plot_rocs.py
python3 progressa/create_images/plot_tsne.py

Licence et conditions d’utilisation

The MIT License (MIT)
Copyright (c) 2025 
Melissa Sanabria, Lionel Tastet, Simon Pelletier, Mickael Leclercq, Louis Ohl, Lara Hermann, Pierre-Alexandre Mattei, Frederic Precioso, Nancy Coté, Philippe Pibarot, Arnaud Droit

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.