KI-Bindung
AI-Bind ist eine Deep-Learning-Pipeline, die interpretierbare Bindungsvorhersagen für noch nie dagewesene Proteine und Liganden liefert. AI-Bind ist in der Lage, große chemische Bibliotheken schnell zu durchsuchen und rechenintensive Auto-Docking-Simulationen zu steuern, indem Protein-Ligand-Paare für die Validierung priorisiert werden. Die Pipeline benötigt als Eingabe einfache chemische Merkmale wie die Aminosäuresequenz eines Proteins und das isomere SMILE eines Liganden, was dazu beiträgt, Einschränkungen zu überwinden, die mit dem Mangel an verfügbaren 3D-Proteinstrukturen verbunden sind.
Vorabdruck verfügbar unter: https://arxiv.org/abs/2112.13168
Warum AI-Bind?
Mängel bestehender ML-Modelle bei der Vorhersage der Protein-Ligand-Bindung
Unser Interesse an der Vorhersage der Bindung für noch nie dagewesene Proteine und Liganden veranlasste uns dazu, die Testleistungen der bestehenden Modelle für maschinelles Lernen (z. B. DeepPurpose) in drei Komponenten aufzuteilen:
(a) Transduktiver Test: Wenn sowohl Proteine als auch Liganden aus dem Testdatensatz in den Trainingsdaten vorhanden sind,
(b) Halbinduktiver Test: wenn nur die Liganden aus dem Testdatensatz in den Trainingsdaten vorhanden sind, und
(c) Induktiver Test: Wenn sowohl Proteine als auch Liganden aus dem Testdatensatz in den Trainingsdaten fehlen.
Wir erfahren, dass nur die Leistung induktiver Tests ein verlässliches Maß für die Bewertung ist, wie gut ein Modell für maschinelles Lernen die Bindung anhand der Strukturmerkmale von Proteinen und Liganden gelernt hat. Wir stellen fest, dass die meisten Modelle hauptsächlich eine transduktive Testleistung darstellen, die mit der Vorhersage unsichtbarer Verbindungen im im Training verwendeten Protein-Ligand-Interaktionsnetzwerk zusammenhängt. Wir untersuchen, wie ML-Modelle transduktive Leistungen erzielen, die mit viel einfacheren Algorithmen (nämlich Netzwerkkonfigurationsmodellen) vergleichbar sind, die die molekularen Strukturen völlig ignorieren und die Gradinformationen verwenden, um Bindungsvorhersagen zu treffen.
Was bietet AI-Bind?
Die AI-Bind-Pipeline maximiert die Leistung induktiver Tests, indem sie aus dem Netzwerk abgeleitete Negative in die Trainingsdaten einbezieht und ein unbeaufsichtigtes Vortraining für die molekularen Einbettungen einführt. Die Pipeline wird über drei verschiedene neuronale Architekturen validiert: VecNet, VAENet und Siamese Model. Die leistungsstärkste Architektur in AI-Bind ist VecNet, das Mol2vec und ProtVec zum Einbetten von Proteinen bzw. Liganden verwendet. Diese Einbettungen werden in einen Decoder (Multi-Layer-Perceptron) eingespeist, der die Bindungswahrscheinlichkeit vorhersagt.
Interpretierbarkeit von AI-Bind und Identifizierung aktiver Bindungsstellen
Wir mutieren bestimmte Bausteine (Aminosäuretrigramme) der Proteinstruktur, um die Regionen zu erkennen, die die Bindungsvorhersagen am stärksten beeinflussen, und sie als potenzielle Bindungsstellen zu identifizieren. Im Folgenden validieren wir die von AI-Bind vorhergesagten aktiven Bindungsstellen auf dem menschlichen Protein TRIM59, indem wir die Ergebnisse der Auto-Docking-Simulationen visualisieren und die vorhergesagten Stellen den Aminosäureresten zuordnen, an die die Liganden binden. Die von AI-Bind vorhergesagten Bindungsstellen können die Benutzer bei der Erstellung eines optimalen Rasters für die Auto-Docking-Simulationen unterstützen und so die Simulationszeit weiter verkürzen.
Einrichten von AI-Bind und Vorhersage der Protein-Ligand-Bindung (Richtlinien für Endbenutzer)
Hardware-Setup für AI-Bind
Wir haben alle unsere Modelle über einen Server auf der Google Cloud Platform mit einer Intel Broadwell CPU und NVIDIA Tesla T4 GPU(s) trainiert und getestet. Die in AI-Bind verwendete Python-Version ist 3.6.6. Die verwendete CUDA-Version ist 9.0.
Mit Docker
Bitte verwenden Sie diesen Docker zum Ausführen von AI-Bind: https://hub.docker.com/r/omairs/foodome2
Anforderungsdatei verwenden
Alle für AI-Bind erforderlichen Python-Module und entsprechenden Versionen sind hier aufgelistet: „requirements.txt“.
Verwenden Sie pip install -r require.txt, um die zugehörigen Pakete zu installieren.
In AI-Bind verwendete rdkit-Version: „2017.09.1“ (Informationen zur Installation finden Sie in der Dokumentation hier: https://www.rdkit.org/docs/Install.html, Befehl: conda install -c rdkit rdkit)
Stellen Sie sicher, dass sich das Notizbuch VecNet-User-Frontend.ipynb und die drei Dateien im AIBind-Ordner (AIBind.py, init .py und import_modules.py) im selben Ordner befinden.
Laden Sie die Datendateien herunter und speichern Sie sie unter /data. Download-Link: https://zenodo.org/record/7226641
Alternative Installation mit Docker
- Laden Sie die Docker-Datei mit dem Namen „Predictions.dockerfile“ herunter.
- Wechseln Sie auf Ihrem Terminal in das Verzeichnis mit der Docker-Datei und führen Sie Folgendes aus: docker build -t aibindpred -f ./Predictions.dockerfile ./
- So führen Sie das Image als Container aus: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Sie können das Git-Repository im Container klonen oder Ihr lokales Volume anhängen, während der Container ausgeführt wird: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 -v ./local_directory:/home aibindpred
- Um zusätzliche Shells im Container auszuführen, führen Sie Folgendes aus: docker exec -it aibindpredcontainer /bin/bash
- Um eine Jupyter-Notebook-Instanz innerhalb des Containers auszuführen, führen Sie Folgendes aus: jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root Mit den obigen Schritten werden alle erforderlichen Pakete installiert und die Umgebung zum Ausführen von Bindungsvorhersagen mithilfe von KI erstellt. Binden.
Ausführen von Vorhersagen über das Frontend
- Organisieren Sie Ihre Datendatei in einem Datenrahmenformat mit den Spalten „InChiKey“, „SMILE“ und „target_aa_code“. Speichern Sie diesen Datenrahmen in einer CSV-Datei.
- Führen Sie das Notebook mit dem Titel VecNet-User-Frontend.ipynb aus, um die Bindungsvorhersagen zu treffen. Die vorhergesagten Bindungswahrscheinlichkeiten sind unter der Spaltenüberschrift „Gemittelte Vorhersagen“ verfügbar.
Code und Daten
Datendateien
Alle Datendateien sind hier verfügbar: https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/Datenbankdateien: Enthält Protein-Ligand-Bindungsdaten, abgeleitet von DrugBank, BindingDB und DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals: Enthält Liganden, die beim Training und Testen von AI-Bind mit Einbettungen verwendet werden.
- /data/sars-busters-consolidated/GitData/DeepPurpose und Konfigurationsmodell: Zugtestdaten im Zusammenhang mit der 5-fachen Kreuzvalidierung von Transformer-CNN (DeepPurpose) und dem Duplex-Konfigurationsmodell.
- /data/sars-busters-consolidated/GitData/interactions: Enthält den vom Netzwerk abgeleiteten Negativdatensatz, der beim Training von AI-Bind neuronalen Netzwerken verwendet wird.
- /data/sars-busters-consolidated/GitData: Enthält trainiertes VecNet-Modell, Bindungsvorhersagen für virale und menschliche Proteine, die mit COVID-19 assoziiert sind, und eine Zusammenfassung der Ergebnisse der Auto-Docking-Simulationen.
- /data/sars-busters-consolidated/master_files: Enthält die absolut negativen (nicht bindenden) Protein-Ligand-Paare, die beim Testen von AI-Bind verwendet werden.
- /data/sars-busters-consolidated/targets: Enthält die Proteine, die beim Training und Testen von AI-Bind mit zugehörigen Einbettungen verwendet werden.
- /data/sars-busters-consolidated/interactions: Enthält die positiven (bindenden) Protein-Ligand-Paare, abgeleitet von DrugBank, NCFD (Natural Compounds in Food Database), BindingDB und DTC.
- /data/sars-busters-consolidated/Auto Docking: Enthält alle Dateien und Ergebnisse der Validierung von AI-Bind für COVID-19-bezogene virale und menschliche Proteine.
- /data/sars-busters-consolidated/Binding Probability Profile Validation: Enthält die Dateien, die die aktiven Bindungsstellen aus Auto-Dcoking-Simulationen visualisieren.
- /data/sars-busters/Mol2vec: Vortrainierte Mol2vec- und ProtVec-Modelle sind hier verfügbar.
- /data/sars-busters-consolidated/s4pred: Enthält den Code und die Dateien zur Vorhersage der Sekundärstruktur von TRIM59.
Code
Hier beschreiben wir die in AI-Bind verwendeten Jupyter-Notebooks, Python-Module und MATLAB-Skripte.
AIBind
- AIBind.py: Enthält die Python-Klasse für AI-Bind. Enthält alle neuronalen Architekturen: VecNet, VAENet und Siamese Model.
- import_modules.py: Enthält alle notwendigen Python-Module zum Ausführen von AI-Bind.
Konfigurationsmodell 5-fach
- Konfigurationsmodell – Cross-Validation.ipynb: Berechnet die 5-fache Kreuzvalidierungsleistung des Duplex-Konfigurationsmodells für in DeepPurpose verwendete BindingDB-Daten.
- Configuration_bipartite.m: Enthält die MATLAB-Implementierung des Duplex-Konfigurationsmodells.
- runscriptposneg.m: Führt das Duplex-Konfigurationsmodell unter Verwendung der Gradsequenzen der Liganden und Proteine aus. Die Ausgabedateien summat10.csv und summat01.csv werden zur Berechnung der Leistung des Konfigurationsmodells verwendet.
DeepPurpose-5-fach
- Deep Purpose – Final DataSet – Unseen Targets.ipynb: Wir führen eine 5-fache Kreuzvalidierung über unsichtbare Ziele (semi-induktiver Test) auf DeepPurpose unter Verwendung der vom Netzwerk abgeleiteten Negative durch.
- Deep Purpose – Final DataSet – Unseen Nodes.ipynb: Wir führen eine 5-fache Kreuzvalidierung über unsichtbare Knoten (induktiver Test) auf DeepPurpose unter Verwendung der vom Netzwerk abgeleiteten Negative durch.
MolTrans
- example_induktive_AI_Bind_data.py: Wir führen einen induktiven Test auf MolTrans unter Verwendung der vom Netzwerk abgeleiteten negativen Proben durch, die beim Training von AI-Bind verwendet werden.
- example_induktive_BindingDB.py: Wir führen einen induktiven Test auf MolTrans unter Verwendung der BindingDB-Daten durch, die im MolTrans-Artikel verwendet werden.
- example_semi_induktiv.py: Mit diesem Skript können halbinduktive Tests auf MolTrans ausgeführt werden.
- example_transducing.py: Mit diesem Skript können transduktive Tests auf MolTrans ausgeführt werden.
DeepPurpose-and-Configuration-Modell
- DeepPurpose-Wiederholung – Transformer CNN.ipynb: Wir trainieren DeepPurpose mithilfe der Benchmark-BindingDB-Daten. Hier wurden mehrere Experimente zu DeepPurpose durchgeführt, darunter das zufällige Mischen der chemischen Strukturen und die Gradanalyse der DeepPurpose-Leistung.
- Konfigurationsmodelle für DeepPurpose data.ipynb: Wir untersuchen die Leistung des Duplex-Konfigurationsmodells für den in DeepPurpose verwendeten BindingDB-Datensatz.
EigenSpokes
- Eigen Spokes Analysis.ipynb – Wir führen die EigenSpokes-Analyse hier für die kombinierte Adjazenzmatrix (quadratische Adjazenzmatrix mit Liganden und Zielen in Zeilen und Spalten) durch.
Entstehung von Abkürzungen
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb: Erstellt und führt das Konfigurationsmodell im Toy-Unipartite-Netzwerk basierend auf der Proteinprobe in BindingDB aus. Hier untersuchen wir zwei Szenarien im Zusammenhang mit dem Zusammenhang zwischen Grad und Dissoziationskonstante – ohne Schwankungen und konstante Schwankungen über die Werte der Dissoziationskonstanten.
- With_varying_fluctuations.ipynb: Erstellt und führt das Konfigurationsmodell im Toy-Unipartite-Netzwerk basierend auf der Proteinprobe in BindingDB aus, wobei die Schwankungen über die Werte der Dissoziationskonstanten ähnlichen Trends folgen wie in den BindingDB-Daten.
Technische Funktionen
- Technische Merkmale verstehen.ipynb: Wir untersuchen die Erklärbarkeit der konstruierten Merkmale (einfache Merkmale, die die Liganden- und Proteinmoleküle darstellen).
- Von VecNet entwickelte Funktionen – Wichtige Dimensionen von Mol2vec und Protvec.ipynb: Identifiziert die wichtigsten Dimensionen in Mol2vec- und ProtVec-Einbettungen im Hinblick auf die Protein-Ligand-Bindung.
- VecNet Engineered Features Concat Original Features.ipynb: Untersucht die Leistung von VecNet nach der Verkettung der ursprünglichen Protein- und Ligandeneinbettungen.
- VecNet Engineered Features.ipynb: Ersetzt Mol2vec- und ProtVec-Einbettungen durch einfache technische Funktionen in der VecNet-Architektur und untersucht deren Leistung.
Identifizierung aktiver Bindungsstellen
- VecNet-Protein-Trigrams-Study-GitHub.ipynb: Wir mutieren die Aminosäuretrigramme auf dem Protein und beobachten die Schwankungen in VecNet-Vorhersagen. Dieser Prozess hilft uns, die potenziell aktiven Bindungsstellen auf der Aminosäuresequenz zu identifizieren.
Zufällige Eingabetests
- VecNet-Unseen_Nodes-RANDOM.ipynb: Führt VecNet auf unsichtbaren Knoten aus (induktiver Test), wobei der Ligand und die Proteineinbettungen durch Gaußsche Zufallseingaben ersetzt werden.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb: Führt VecNet auf unsichtbaren Knoten aus (induktiver Test), wobei die Proteineinbettungen durch Gaußsche Zufallseingaben ersetzt werden.
- VecNet-Unseen_Targets-RANDOM.ipynb: Führt VecNet auf unsichtbaren Zielen aus (halbinduktiver Test), wobei der Ligand und die Proteineinbettungen durch Gaußsche Zufallseingaben ersetzt werden.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb: Führt VecNet auf unsichtbaren Zielen aus (halbinduktiver Test), wobei die Proteineinbettungen durch Gaußsche Zufallseingaben ersetzt werden.
Siamese
- Siamese_Unseen_Nodes.ipynb: Wir erstellen den vom Netzwerk abgeleiteten Negativdatensatz und führen hier eine fünffache Kreuzvalidierung auf unsichtbaren Knoten durch (induktiver Test).
- Siamese_Unseen_Targets.ipynb: Wir führen hier eine 5-fache Kreuzvalidierung für unsichtbare Ziele durch (semi-induktiver Test).
VAENet
- VAENet-Unseen_Nodes.ipynb: Wir erstellen die vom Netzwerk abgeleiteten Negative und führen hier eine 5-fache Kreuzvalidierung auf unsichtbaren Knoten durch (induktiver Test).
- VAENet-Unseen_Targets.ipynb: Wir führen hier eine 5-fache Kreuzvalidierung für unsichtbare Ziele durch (semi-induktiver Test).
Validierung
- SARS-CoV-2-Vorhersageanalyse VecNet.ipynb: Automatische Docking-Validierung der Top- und Bottom-100-Vorhersagen von VecNet zu SARS-CoV-2-Virusproteinen und menschlichen Proteinen, die mit COVID-19 assoziiert sind.
- Binding_Probability_Profile_Golden_Standar_Validation.py: Validierung der von AI-Bind abgeleiteten Bindungsorte mit Goldstandard-Proteinbindungsdaten.
VecNet
- VecNet-Unseen_Nodes.ipynb: Wir erstellen die vom Netzwerk abgeleiteten Negative, führen eine fünffache Kreuzvalidierung an unsichtbaren Knoten durch (induktiver Test) und treffen Vorhersagen zu SARS-CoV-2-Virusproteinen und menschlichen Proteinen, die mit COVID-19 assoziiert sind.
- VecNet-Unseen_Targets.ipynb: Wir führen hier eine 5-fache Kreuzvalidierung für unsichtbare Ziele durch (semi-induktiver Test).
Externe Ressourcen
- Lernen Sie das automatische Andocken mit Autodock Vina: https://www.youtube.com/watch?v=BLbXkhqbebs
- Erfahren Sie, wie Sie aktive Bindungsstellen mit PyMOL visualisieren: https://www.youtube.com/watch?v=mBlMI82JRfI
Zitieren Sie AI-Bind
Wenn Sie AI-Bind für Ihre Forschung nützlich finden, fügen Sie bitte das folgende Zitat hinzu:
@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}
}