Eine Web-App zur Erforschung des Einbettungsraums von Reagenzien, die als Reaktionsdaten verwendet werden. Beschrieben in unserer Arbeit, die Reagenzien in chemischen Reaktionsdaten mit einer interaktiven Reagenzien -Raumkarte kuratieren.
Die App ist eine visuelle Methode, um die Co-Aufrufstatistiken von Reagenzien bei Reaktionen zu untersuchen. Die App zeigt UMAP -Projektionen von Reagenzieneinbettungen an, die durch Zerlegen der PMI -Matrix von Reagenzien mit einer einzelnen Wertzersetzung abgeleitet werden.
Eine PMI -Matrix enthält pointreiche Mutualinformationswerte . Für zwei Reagenzien A und B leitet sich ihr PMI -Score aus der Anzahl der Reagenzien ab.
Faktorieren Sie diese Matrix mithilfe von SVD -Ergebnissen dichte Einbettungen für Reagenzien, die für zwei Reagenzien tendenziell ähnlich sind, wenn diese Reagenzien auftreten
In ähnlichen Kontexten, dh zusammen mit denselben anderen Reagenzien. Beispielsweise werden zwei verschiedene Palladiumkatalysatoren für die Suzuki -Kopplung nicht zusammen in einer Reaktion verwendet, aber sie können mit denselben Basen und Lösungsmitteln verwendet werden.
Daher erhalten diese beiden Katalysatoren ähnliche Einbettungen und liegen nahe beieinander. Diese Einbettungen werden dann auf der 2D -Ebene und der Oberfläche der Einheitskugel projiziert
durch den UMAP -Algorithmus. Es ist ein Algorithmus zur Dimensionalitätsreduzierung, der versucht, die Entfernungsbeziehungen zwischen ursprünglichen Punkten zu bewahren, wenn sie auf einen niedrigeren Raum projizieren.
Die Karte der UMAP -Projektionen von Reagenzimbettendings wird in der App angezeigt.
Führen Sie die folgenden Befehle aus, um die Umgebung für die App zu installieren:
conda create - n reagent_emb_vis_app python = 3.10 - y
conda activate reagent_emb_vis_app
pip install - r requirements . txt
pip install - e .Führen Sie die App mit dem folgenden Befehl aus
python3 app . py Die App wird unter http: // localhost: 8050 ausgeführt. Standardmäßig zeigt es die Karte von USPTO -Reagenzien -Einbettungen, die durch AAM bestimmt werden, die die Infomation aus data/default/uspto_aam_rgs_min_count_100_d_50.csv lesen. Benutzer können auch ihre eigenen Reagenzdaten hochladen, die mit den entsprechenden Skripten in der unten beschriebenen Art und Weise erstellt werden.
Die data/standard_reagents.csv enthält die Informationen zu ~ 600 Reagenzien, die im USPTO mit ihren Rollen und Namen auftreten. Die Einträge in der Datei werden durch die Auftrittsfrequenz in der absteigenden Reihenfolge bestellt.
Wir laden den USPTO -Datensatz mit rxnutils herunter, indem wir die folgenden Befehle aus dem data ausführen:
python - m rxnutils . data . uspto . download python - m rxnutils . data . uspto . combine Es lädt die data/uspto_data.csv herunter. Anschließend machen wir die anfängliche Filterung dieses Datensatzes mit dem folgenden Befehl, der aus dem Projektverzeichnis ausgeführt wird:
python3 - m rxnutils . pipeline . runner - - pipeline uspto / pipeline . yml - - data data / uspto_data . csv - - output data / uspto_filtered . csvSchließlich extrahieren wir die Reagenzien aus dem gefilterten Datensatz:
python3 scripts / prepare_reagents . py - i data / uspto_filtered . csv - - output_dir uspto_aam_reagents - c ReactionSmiles - - reagents aam - - fragment_grouping cxsmiles - - canonicalization remove_aam - - n_jobs 9 - - min_reagent_occurrences 1 - - verbose Das Skript prepare_reagents.py als verschiedene Optionen. Zum Beispiel kann es Reagenzien entweder durch Atomzuordnung oder durch Fingerabdrücke bestimmen.
Die Einbettungen für Reagenzien werden unter Verwendung der Skript build_embeddings.py berechnet, basierend auf einer Datei mit Reagenzien, die in ihren jeweiligen Reagenzien verwendet werden.
Die Eingabedatei muss für eine Reaktion in jeder Zeile ein Reagenz -Lächeln enthalten, und diese Lächeln müssen durch einen Separator getrennt werden. zB ; .
Beispiel:
CCO ; c1ccccc1
[ H - ].[ Na + ]; C1CCOC1
NN Jede Zeile in dieser Datei enthält Reagenzien für eine Reaktion im interessierenden Datensatz. Die Reaktionen selbst sind nicht relevant. Das Skript prepare_reagents.py erstellt eine geeignete Eingabe für build_embeddings.py .
Die App verwendet Koordinaten in einer CSV -Datei, die mit dem Skript build_embeddings.py erstellt wird.
Führen Sie den folgenden Befehl aus:
python3 scripts / build_embeddings . py - i < PATH TO THE TEXT FILE WITH REAGENT SMILES > - - standard data / standard_reagents . csv - - min_count < MINIMAL OCCURENCE COUNT FOR REAGENTS TO BE CONSIDERED > - o < PATH TO THE OUTPUT CSV FILE > - d < DIMENSONALITY OF REAGENT EMBEDDINGS > Für weitere Informationen führen Sie python3 build_embeddings.py --help aus.
Das Standard -Reagenz -Einbettungsdings wurde mit dem folgenden Befehl erstellt:
python3 scripts / build_embeddings . py - i data / uspto_aam_reagents / reagents - 1128297. txt - - standard data / standard_reagents . csv - d 50 - o data / uspto_aam_rgs_min_count_100_d_50 . csv - - min_count 100 Laden Sie eine CSV -Datei hoch, die durch das Skript build_embeddings.py erstellt wurde.
Für die Erkenntnisse über Reagenzien im USPTO und die Reproduktion der Figuren im Papier folgen Sie bitte den Notebooks notebooks/results.ipynb .
@inproceedings { andronov2024 ,
title = { Curating Reagents in Chemical Reaction Data with an Interactive Reagent Space Map } ,
author = { Andronov, Mikhail and Andronova, Natalia and Wand, Michael and Schmidhuber, J{"u}rgen and Clevert, Djork-Arn{'e} } ,
booktitle = { International Workshop on AI in Drug Discovery } ,
pages = { 21--35 } ,
year = { 2024 } ,
publisher = { Springer Nature Switzerland } ,
address = { Cham } ,
doi = { 10.1007/978-3-031-72381-0_3 }
}