https://pubs.acs.org/doi/10.1021/acs.jcim.3c00978
Die molekulare Suche ist in der Chemie, Biologie und Informatik wichtig, um molekulare Strukturen in großen Datensätzen zu identifizieren, die Entdeckung und Innovation von Wissen zu verbessern und chemische Daten FAIR (auffindbar, zugänglich, interoperabel, wiederverwendbar) zu machen. Suchalgorithmen für Polymere sind deutlich weniger entwickelt als jene für kleine Moleküle, da die Polymersuche auf der Suche nach Polymernamen beruht, was eine Herausforderung sein kann, da die Polymerbenennung zu weit gefasst ist (z. B. Polyethylen), für komplexe chemische Strukturen kompliziert ist und häufig nicht übereinstimmt zu offiziellen IUPAC-Konventionen. Die Suche nach chemischen Strukturen in Polymeren ist auf Unterstrukturen wie Monomere beschränkt, ohne Kenntnis der Konnektivität oder Topologie. Diese Arbeit stellt eine neuartige Abfragesprache und einen Graph-Traversal-Suchalgorithmus für Polymere vor, der die erste Suchmethode bereitstellt, die in der Lage ist, alle in Polymeren vorhandenen chemischen Strukturen vollständig zu erfassen. Die BigSMARTS-Abfragesprache, eine Erweiterung der SMARTS-Sprache für kleine Moleküle, ermöglicht es Benutzern, Abfragen zu schreiben, die die Suche nach Monomeren und funktionellen Gruppen auf verschiedene Teile des Polymers lokalisieren, wie den Mittelblock eines Triblocks, die Seitenkette eines Transplantats usw das Rückgrat einer Wiederholungseinheit. Der Unterstruktursuchalgorithmus basiert auf der Durchquerung von Graphdarstellungen der erzeugenden Funktionen für die stochastischen Graphen von Polymeren. Im Betrieb identifiziert der Algorithmus zunächst Zyklen, die die Monomere und dann die Endgruppen darstellen, und führt schließlich eine Tiefensuche durch, um ganze Untergraphen zu finden. Um den Algorithmus zu validieren, wurden Hunderte von Abfragen mit Hunderten von Zielchemien und Topologien aus der Literatur durchsucht, mit etwa 440.000 Abfrage-Ziel-Paaren. Dieses Tool bietet einen detaillierten Algorithmus, der in Suchmaschinen implementiert werden kann, um Suchergebnisse mit vollständiger Übereinstimmung der Monomerkonnektivität und der Polymertopologie bereitzustellen.
Tabelle 1. Abfragen mit zunehmender Einschränkung des übereinstimmenden Zielensembles.
BigSMARTS | Bedeutung | # BigSMILES Treffer |
---|---|---|
CCO | Ethanol SMARTS, das ein ganzes BigSMILES durchsucht | 207 |
{[]CCO[]} | Ethanol-SMARTS, das Treffer auf die Wiederholungseinheiten lokalisiert | 198 |
{[][<]CCO[>][]} | PEG-Abfrage mit Platzhalter-Endgruppen, die Treffer auf die Backbones der Wiederholungseinheiten lokalisiert | 68 |
{[][<][CH2][CH2]O[>][]} | verhindert Übereinstimmungen mit Pendantgruppen, die nicht in der Abfrage angegeben sind | 57 |
{[][<][CH2][CH2]O[>],!*[]} | verhindert Übereinstimmungen mit zusätzlichen Wiederholungseinheiten, die nicht in der Abfrage angegeben sind | 45 |
{[][<][CH2][CH2]O[>],!*;!*[]} | verhindert Übereinstimmungen mit zusätzlichen Wiederholungseinheiten und Endgruppen, die nicht in der Abfrage angegeben sind | 1 |
Tabelle 2. Wiederholungsmutationen, die sich nicht auf die übereinstimmenden Ziele auswirken.
BigSMARTS | Ändern | # BigSMILES Treffer |
---|---|---|
{[][<]CCO[>][]} | PEG-Backbone-Suche | 68 |
{[][>]CCO[<][]} | Änderung der Bindungsdeskriptoren | 68 |
{[][<]COC[>][]} | Rahmenverschiebung | 68 |
{[][<]OCC[>][]} | Umkehrung | 68 |
{[][<]C[<2],[>2]CO[>][]} | Teilt | 68 |
{[][<]CCO[>],[<]CCO[>][]} | Vervielfältigung | 68 |
Tabelle 3. Blockcopolymer-Abfrage-Ziel-Paare.
BigSMARTS | Ändern | # BigSMILES Treffer |
---|---|---|
{[][>]CC(c1ccccc1)[<][>]}?*{[>][<]CC(C(=O)O)[>][]} | Polystyrol- b -Polyacrylat-Blockunterstruktur mit Wildcard-Linker | 11 |
{[][$]CC(c1ccccc1)[$][$]}{[$][$]CC(C(=O)O)[$][]} | kein Wildcard-Linker | 7 |
{[][$]CC(C(=O)O)[$][$]}{[$][$]CC(c1ccccc1)[$][]} | Drehe die Blöcke um | 7 |
{[][<]CC(c1ccccc1)[>][<]}{[>][<]CC(C(=O)O)[>][]} | Nur Kopf-an-Schwanz-Wiederholungseinheiten | 7 |
{[][<]CC(c1ccccc1)[>],[<]CC(c1ccccc1)[>2],[<2]CC(C(=O)O)[>2][]} | ein einzelnes stochastisches Objekt, codiert aber immer noch einen Diblock! | 7 |
{[][<]CC(c1ccccc1)[>];[<]CC(c1ccccc1){[>][<]CC(C(=O)O)[>][]}[]} | implizite/explizite Endgruppendarstellung | 7 |
Tabelle 4. Abfrage-Ziel-Paare im Polymernetzwerk.
BigSMARTS | Ändern | # BigSMILES Treffer |
---|---|---|
{[][<]CCCCC(C)(C)C(=O)O{[>][<]CCO[>][<]}C(=O)C(C)(C)CCCC[<] ,[>]n1cc([<2])nn1,[>2]COCC(COC[>2])(COC[>2])C[]} | A2 + B3 Polymernetzwerk | 2 |
{[][<]CCCCC(C)(C)C(=O)O{[>][<]CCOCCO[>][<]}C(=O)C(C)(C)CCCC[<] ,[>]n1cc([<2])nn1,[>2]COCC(COC[>2])(COC[>2])C[]} | duplizierte verschachtelte Wiederholungseinheit | 2 |
{[][<]CCCCC(C)(C)C(=O)O{[>][<]C[<3],[>3]CO[>][<]}C(=O)C (C)(C)CCCC[<],[>]n1cc([<2])nn1,[>2]COCC(COC[>2])(COC[>2])C[]} | verschachtelte Wiederholungseinheitenaufteilung | 2 |
{[][>]CCCCC(C)(C)C(=O)O{[>][<]CCO[>][<]}C(=O)C(C)(C)CCCC[>] ,[<]n1cc([<5])nn1,[>5]COCC(COC[>5])(COC[>5])C[]} | Änderung der Bindungsdeskriptoren | 2 |
Tabelle 5. Topologische Graphabfragen.
BigSMARTS | Bedeutung | # BigSMILES Treffer |
---|---|---|
{[][]} | Stochastisches Wildcard-Objekt, passt zu allen Polymeren | 489 |
{[][]}!{[][]} | nur ein stochastisches Objekt, passt nicht zu Diblöcken, Triblöcken oder Sternen | 382 |
{[][]}?*{[][]} | Diblock-Unterstruktur, kann mit Triblöcken und Tetrablöcken kombiniert werden | 107 |
{[][]}?*{[][]}!{[][]} | Diblock-Unterstruktur ohne andere Blöcke | 78 |
{[][]}?*{[][]}?*{[][]} | Triblock-Unterstruktur, kann mit Tetrablöcken und Hexablöcken kombiniert werden | 15 |
{[][]}?*{[][]}?*{[][]}!{[][]} | Dreiblock-Unterkonstruktion ohne weitere Blöcke | 2 |
{[][<]?*{[>][<]?*[>][<]}?*[>][]} | segmentierte Topologie (verschachteltes Objekt entlang des Backbones) | 10 |
{[][<]?*(?*{[>][<]?*[>][]})?*[>][]} | Graft-Topologie (verschachteltes Objekt in der Sidechain) | 11 |
{[][]}?*(?*{[][]})?*{[][]} | 3-armiger Stern-Polymer-Unterbau | 21 |
Tabelle 6. Funktionsgruppen entlang der Backbone-Abfragen.
BigSMARTS | Chemieunterricht | # BigSMILES Treffer |
---|---|---|
{[][<]C(=O)O?*[>][]} | Polyester | 75 |
{[][<]OC(=O)O?*[>][]} | Polycarbonat | 29 |
{[][<]NC(=O)O?*[>][]} | Polyurethan | 1 |
{[][<]C=C?*[>][]} | Polydien | 31 |
{[][<]NC(=O)N?*[>][]} | Polyharnstoff | 6 |
Dies sind einfache Fälle, es gibt jedoch keine Beschränkung hinsichtlich der Anzahl der Wiederholungseinheiten und Endgruppen in der Abfrage und im Ziel, was die Komplexität der Suche erheblich erhöht. Der Algorithmus behandelt alle diese Fälle.
https://doi.org/10.5281/zenodo.10702689
Der Datensatz wird unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) in Zenodo (https://doi.org/10.5281/zenodo.10702689) veröffentlicht.