Liaison AI
AI-Bind est un pipeline d'apprentissage en profondeur qui fournit des prédictions de liaison interprétables pour des protéines et des ligands inédits. AI-Bind est capable de cribler rapidement de grandes bibliothèques chimiques et de guider des simulations d'auto-amarrage coûteuses en termes de calcul en donnant la priorité aux paires protéine-ligand pour la validation. Le pipeline nécessite comme entrée des caractéristiques chimiques simples telles que la séquence d'acides aminés d'une protéine et le SMILE isomère d'un ligand, ce qui permet de surmonter les limitations associées au manque de structures protéiques 3D disponibles.
Préimpression disponible sur : https://arxiv.org/abs/2112.13168
Pourquoi AI-Bind ?
Lacunes des modèles ML existants dans la prévision de la liaison protéine-ligand
Notre intérêt pour la prédiction de la liaison de protéines et de ligands inédits nous a poussé à diviser les performances de test des modèles d'apprentissage automatique existants (par exemple, DeepPurpose) en trois composants :
(a) Test transductif : lorsque les protéines et les ligands de l'ensemble de données de test sont présents dans les données d'entraînement,
(b) Test semi-inductif : lorsque seuls les ligands de l'ensemble de données de test sont présents dans les données d'entraînement, et
(c) Test inductif : lorsque les protéines et les ligands de l'ensemble de données de test sont absents dans les données d'entraînement.
Nous apprenons que seules les performances des tests inductifs constituent une mesure fiable pour évaluer dans quelle mesure un modèle d’apprentissage automatique a appris la liaison à partir des caractéristiques structurelles des protéines et des ligands. Nous notons que la majorité des modèles présentent principalement des performances de tests transductifs, liés à la prédiction de liens invisibles dans le réseau d'interaction protéine-ligand utilisé dans l'entraînement. Nous explorons comment les modèles ML atteignent des performances transductives comparables à des algorithmes beaucoup plus simples (à savoir les modèles de configuration de réseau), qui ignorent complètement les structures moléculaires et utilisent les informations sur les degrés pour faire des prédictions contraignantes.
Que propose AI-Bind ?
Le pipeline AI-Bind maximise les performances des tests inductifs en incluant des négatifs dérivés du réseau dans les données de formation et en introduisant une pré-formation non supervisée pour les intégrations moléculaires. Le pipeline est validé via trois architectures neuronales différentes : VecNet, VAENet et le modèle siamois. L'architecture la plus performante d'AI-Bind est VecNet, qui utilise Mol2vec et ProtVec pour intégrer respectivement des protéines et des ligands. Ces intégrations sont introduites dans un décodeur (Multi-layer Perceptron), prédisant la probabilité de liaison.
Interprétabilité de AI-Bind et identification des sites de liaison actifs
Nous modifions certains éléments constitutifs (trigrammes d'acides aminés) de la structure protéique pour reconnaître les régions influençant le plus les prédictions de liaison et les identifions comme sites de liaison potentiels. Ci-dessous, nous validons les sites de liaison actifs prédits par AI-Bind sur la protéine humaine TRIM59 en visualisant les résultats des simulations d'auto-amarrage et en cartographiant les sites prédits avec les résidus d'acides aminés où les ligands se lient. Les sites de liaison prédits par AI-Bind peuvent guider les utilisateurs dans la création d'une grille optimale pour les simulations d'amarrage automatique, réduisant ainsi encore le temps de simulation.
Configuration de AI-Bind et prévision de la liaison protéine-ligand (directives destinées aux utilisateurs finaux)
Configuration matérielle pour AI-Bind
Nous avons formé et testé tous nos modèles via un serveur sur Google Cloud Platform avec un processeur Intel Broadwell et un ou plusieurs GPU NVIDIA Tesla T4. La version Python utilisée dans AI-Bind est la 3.6.6. La version CUDA utilisée est la 9.0.
Utiliser Docker
Veuillez utiliser ce docker pour exécuter AI-Bind : https://hub.docker.com/r/omairs/foodome2
Utilisation du fichier d'exigences
Tous les modules Python et versions correspondantes requis pour AI-Bind sont répertoriés ici : conditions.txt
Utilisez pip install -r Requirements.txt pour installer les packages associés.
Version de rdkit utilisée dans AI-Bind : '2017.09.1' (Pour l'installation, consultez la documentation ici : https://www.rdkit.org/docs/Install.html, commande : conda install -c rdkit rdkit)
Assurez-vous que le bloc-notes VecNet-User-Frontend.ipynb et les trois fichiers du dossier AIBind (AIBind.py, init .py et import_modules.py) se trouvent dans le même dossier.
Téléchargez et enregistrez les fichiers de données sous /data. Lien de téléchargement : https://zenodo.org/record/7226641
Installation alternative à l'aide de Docker
- Téléchargez le fichier docker nommé « Predictions.dockerfile ».
- Sur votre terminal, accédez au répertoire contenant le fichier docker et exécutez : docker build -t aibindpred -f ./Predictions.dockerfile ./
- Pour exécuter l'image en tant que conteneur : docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Vous pouvez cloner le référentiel git à l'intérieur du conteneur ou attacher votre volume local lors de l'exécution du conteneur : docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home aibindpred
- Pour exécuter des shells supplémentaires à l'intérieur du conteneur, exécutez : docker exec -it aibindpredcontainer /bin/bash
- Pour exécuter une instance de notebook Jupyter dans le conteneur, exécutez : jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root Les étapes ci-dessus installeront tous les packages nécessaires et créeront l'environnement pour exécuter des prédictions de liaison à l'aide d'AI- Lier.
Exécuter des prédictions depuis le frontend
- Organisez votre fichier de données dans un format dataframe avec les colonnes 'InChiKey', 'SMILE' et 'target_aa_code'. Enregistrez cette trame de données dans un fichier .csv.
- Exécutez le bloc-notes intitulé VecNet-User-Frontend.ipynb pour effectuer les prédictions de liaison. Les probabilités de liaison prévues seront disponibles sous l'en-tête de colonne « Prédictions moyennes ».
Code et données
Fichiers de données
Tous les fichiers de données sont disponibles ici : https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/Database files : contient des données de liaison protéine-ligand dérivées de DrugBank, BindingDB et DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals : contient des ligands utilisés dans la formation et les tests d'AI-Bind avec des intégrations.
- /data/sars-busters-consolidated/GitData/DeepPurpose et modèle de configuration : données de test d'entraînement liées à la validation croisée 5 fois de Transformer-CNN (DeepPurpose) et du modèle de configuration duplex.
- /data/sars-busters-consolidated/GitData/interactions : contient l'ensemble de données négatives dérivées du réseau utilisé dans la formation des réseaux neuronaux AI-Bind.
- /data/sars-busters-consolidated/GitData : contient un modèle VecNet entraîné, des prédictions de liaison sur les protéines virales et humaines associées au COVID-19 et un résumé des résultats des simulations d'auto-amarrage.
- /data/sars-busters-consolidated/master_files : contient les paires protéine-ligand absolument négatives (non contraignantes) utilisées dans les tests d'AI-Bind.
- /data/sars-busters-consolidated/targets : contient les protéines utilisées dans la formation et les tests d'AI-Bind avec les intégrations associées.
- /data/sars-busters-consolidated/interactions : contient les paires protéine-ligand positives (de liaison) dérivées de DrugBank, NCFD (Natural Compounds in Food Database), BindingDB et DTC.
- /data/sars-busters-consolidated/Auto Docking : contient tous les fichiers et résultats de la validation d'AI-Bind sur les protéines virales et humaines liées au COVID-19.
- /data/sars-busters-consolidated/Binding Probability Profile Validation : contient les fichiers visualisant les sites de liaison actifs à partir de simulations d'auto-dcokage.
- /data/sars-busters/Mol2vec : des modèles Mol2vec et ProtVec pré-entraînés sont disponibles ici.
- /data/sars-busters-consolidated/s4pred : inclut le code et les fichiers permettant de prédire la structure secondaire de TRIM59.
Code
Nous décrivons ici les notebooks Jupyter, les modules Python et les scripts MATLAB utilisés dans AI-Bind.
AIBind
- AIBind.py : contient la classe Python pour AI-Bind. Comprend toutes les architectures neuronales : VecNet, VAENet et Siamese Model.
- import_modules.py : contient tous les modules Python nécessaires pour exécuter AI-Bind.
Configuration-Modèle-5 fois
- Modèle de configuration - Cross-Validation.ipynb : calcule les performances de validation croisée multipliées par 5 du modèle de configuration duplex sur les données BindingDB utilisées dans DeepPurpose.
- configuration_bipartite.m : contient l'implémentation MATLAB du modèle de configuration duplex.
- runscriptposneg.m : exécute le modèle de configuration duplex en utilisant les séquences de degrés des ligands et des protéines. Les fichiers de sortie summat10.csv et summat01.csv sont utilisés pour calculer les performances du modèle de configuration.
DeepPurpose-5 fois
- Deep Purpose - Final DataSet - Unseen Targets.ipynb : Nous exécutons une validation croisée 5 fois sur des cibles invisibles (test semi-inductif) sur DeepPurpose en utilisant les négatifs dérivés du réseau.
- Deep Purpose - Final DataSet - Unseen Nodes.ipynb : Nous exécutons une validation croisée 5 fois sur des nœuds invisibles (test inductif) sur DeepPurpose en utilisant les négatifs dérivés du réseau.
MolTrans
- example_inductive_AI_Bind_data.py : Nous effectuons un test inductif sur MolTrans en utilisant les échantillons négatifs dérivés du réseau qui sont utilisés dans la formation AI-Bind.
- example_inductive_BindingDB.py : Nous effectuons un test inductif sur MolTrans en utilisant les données BindingDB utilisées dans l'article MolTrans.
- example_semi_inductive.py : Ce script peut être utilisé pour exécuter des tests semi-inductifs sur MolTrans.
- example_transductive.py : Ce script peut être utilisé pour exécuter des tests transductifs sur MolTrans.
Modèle d'objectif et de configuration profond
- DeepPurpose Rerun - Transformer CNN.ipynb : nous testons DeepPurpose à l'aide des données de référence BindingDB. Plusieurs expériences sur DeepPurpose ont été menées ici, notamment le mélange aléatoire des structures chimiques et l'analyse des degrés de performances de DeepPurpose.
- Modèles de configuration sur DeepPurpose data.ipynb : nous explorons les performances du modèle de configuration duplex sur l'ensemble de données BindingDB utilisé dans DeepPurpose.
Rayons propres
- Eigen Spokes Analysis.ipynb - Nous exécutons ici l'analyse EigenSpokes sur la matrice de contiguïté combinée (matrice de contiguïté carrée avec des ligands et des cibles dans les lignes et les colonnes).
Apparition de raccourcis
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb : crée et exécute le modèle de configuration sur le réseau unipartite jouet basé sur l'échantillon de protéine dans BindingDB. Nous explorons ici deux scénarios liés à l'association entre le degré et la constante de dissociation - sans aucune fluctuation et fluctuations constantes sur les valeurs de la constante de dissociation.
- With_varying_fluctuations.ipynb : crée et exécute le modèle de configuration sur le réseau unipartite jouet basé sur l'échantillon de protéine dans BindingDB, où les fluctuations des valeurs constantes de dissociation suivent des tendances similaires à celles des données BindingDB.
Caractéristiques techniques
- Comprendre les fonctionnalités d'ingénierie.ipynb : Nous explorons l'explicabilité des fonctionnalités d'ingénierie (caractéristiques simples représentant le ligand et les molécules protéiques.
- Caractéristiques techniques de VecNet - Mol2vec et Protvec Important Dimensions.ipynb : identifie les dimensions les plus importantes dans les intégrations Mol2vec et ProtVec, en termes de liaison protéine-ligand.
- VecNet Engineered Features Concat Original Features.ipynb : explore les performances de VecNet après avoir concaténé les intégrations originales de protéines et de ligands.
- VecNet Engineered Features.ipynb : remplace les intégrations Mol2vec et ProtVec par des fonctionnalités d'ingénierie simples dans l'architecture VecNet et explore ses performances.
Identification des sites de liaison actifs
- VecNet-Protein-Trigrams-Study-GitHub.ipynb : Nous modifions les trigrammes d'acides aminés sur la protéine et observons les fluctuations des prédictions de VecNet. Ce processus nous aide à identifier les sites de liaison actifs potentiels sur la séquence d’acides aminés.
Tests d'entrée aléatoire
- VecNet-Unseen_Nodes-RANDOM.ipynb : exécute VecNet sur des nœuds invisibles (test inductif) où le ligand et les incorporations de protéines sont remplacés par des entrées aléatoires gaussiennes.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb : exécute VecNet sur des nœuds invisibles (test inductif) où les incorporations de protéines sont remplacées par des entrées aléatoires gaussiennes.
- VecNet-Unseen_Targets-RANDOM.ipynb : exécute VecNet sur des cibles invisibles (test semi-inductif) où le ligand et les incorporations de protéines sont remplacés par des entrées aléatoires gaussiennes.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb : exécute VecNet sur des cibles invisibles (test semi-inductif) où les intégrations de protéines sont remplacées par des entrées aléatoires gaussiennes.
Siamois
- Siamese_Unseen_Nodes.ipynb : Nous créons l'ensemble de données négatives dérivées du réseau et exécutons ici une validation croisée 5 fois sur les nœuds invisibles (test inductif).
- Siamese_Unseen_Targets.ipynb : Nous exécutons ici une validation croisée 5 fois sur des cibles invisibles (test semi-inductif).
VAENet
- VAENet-Unseen_Nodes.ipynb : Nous créons les négatifs dérivés du réseau et exécutons ici une validation croisée 5 fois sur des nœuds invisibles (test inductif).
- VAENet-Unseen_Targets.ipynb : Nous exécutons ici une validation croisée 5 fois sur des cibles invisibles (test semi-inductif).
Validation
- Analyse des prédictions du SRAS-CoV-2 VecNet.ipynb : validation automatique des 100 prédictions supérieures et inférieures faites par VecNet sur les protéines virales du SRAS-CoV-2 et les protéines humaines associées au COVID-19.
- Binding_Probability_Profile_Golden_Standar_Validation.py : validation des emplacements de liaison dérivés d'AI-Bind avec les données de liaison aux protéines de référence.
VecNet
- VecNet-Unseen_Nodes.ipynb : Nous créons les négatifs dérivés du réseau, exécutons une validation croisée 5 fois sur des nœuds invisibles (test inductif) et faisons des prédictions sur les protéines virales du SRAS-CoV-2 et les protéines humaines associées au COVID-19.
- VecNet-Unseen_Targets.ipynb : Nous exécutons ici une validation croisée 5 fois sur des cibles invisibles (test semi-inductif).
Ressources externes
- Apprenez l'amarrage automatique à l'aide d'Autodock Vina : https://www.youtube.com/watch?v=BLbXkhqbebs
- Apprenez à visualiser les sites de liaison actifs à l'aide de PyMOL : https://www.youtube.com/watch?v=mBlMI82JRfI
Citer AI-Bind
Si vous trouvez AI-Bind utile dans votre recherche, veuillez ajouter la citation suivante :
@article{Chatterjee2023,
doi = {10.1038/s41467-023-37572-z},
url = {https://doi.org/10.1038/s41467-023-37572-z},
year = {2023},
month = apr,
publisher = {Springer Science and Business Media {LLC}},
volume = {14},
number = {1},
author = {Ayan Chatterjee and Robin Walters and Zohair Shafi and Omair Shafi Ahmed and Michael Sebek and Deisy Gysi and Rose Yu and Tina Eliassi-Rad and Albert-L{'{a}}szl{'{o}} Barab{'{a}}si and Giulia Menichetti},
title = {Improving the generalizability of protein-ligand binding predictions with {AI}-Bind},
journal = {Nature Communications}
}