Open Source ECFP/FCFP-Zirkularfingerabdrücke in CDK

CDD Vault  Logo aktualisieren
Mai 10, 2014

CDD Vault ermöglicht es Ihnen jetzt, Vorhersagemodelle zu erstellen. Da wir an Zusammenarbeit und reproduzierbare Ergebnisse glauben, veröffentlichen wir die Kernalgorithmen, die dieser Funktion zugrunde liegen, als Open-Source-Software. Die chemischen Fingerabdrücke sind weiter unten beschrieben, und wir haben auch unser modifiziertes Bayes'sches Modell veröffentlicht. Senden Sie eine E-Mail an [email protected], wenn Sie die Modelle in CDD Vault ausprobieren möchten.


Von Alex Clark; Teile dieses Beitrags erschienen ursprünglich in Cheminformatics 2.0

Ab sofort verfügt die neueste Version des beliebten Open Source Chemistry Development Kit (CDK) über eine eigene Implementierung der hoch angesehenen ECFP- und FCFP-Klassen von chemischen Struktur-Fingerprints (manchmal auch als zirkuläre oder Morgan-Fingerprints bezeichnet). Während das allgemeine Rezept für diese Art von Fingerabdrücken schon seit einiger Zeit verfügbar ist und es eine Reihe von Implementierungen in verschiedenen Toolkits gibt, unterscheidet sich dieser Algorithmus in mehrfacher Hinsicht: Er wurde so nah wie möglich an der Beschreibung der ursprünglichen Definition implementiert (ohne Zugang zu den Geschäftsgeheimnissen, die in dem Papier ausgelassen wurden); er beinhaltet die Auflösung chiraler Zentren; er ist als Open-Source-Java-Code frei verfügbar; und nicht zuletzt ist der Algorithmus so konzipiert, dass er so portabel wie möglich ist, ohne größere Abhängigkeiten von bestimmten Programmiersprachen oder Chemoinformatik-Toolkits.

Erstellung von Prognosemodellen in CDD Vault

Die neuen Fingerabdrücke in Aktion: Erstellung von Vorhersagemodellen in CDD Vault .

Dieser Beitrag zu CDK wurde von Collaborative Drug Discovery geleistet, und die Implementierung wurde von mir selbst durchgeführt. Er wird für die neuen Funktionen zur Vorhersagemodellierung in CDD Vault sowie für die kostenlose TB Mobile App für die Tuberkuloseforschung verwendet.

Da die in Java geschriebene CDK-Version (verfügbar in unserem Github-Fork oder im neuesten & besten CDK-Hauptzweig) Fingerabdrücke erzeugt, die buchstäblich identisch mit der Version sind, die in Objective-C für die Verwendung in iOS-Apps kodiert wurde, bedeutet dies, dass Modelle mit einer Java-basierten Desktop-Anwendung oder einem Webservice erstellt und auf der Client-Seite von der mobilen App angewendet werden können. Auf diese Weise ist die TB Mobile App in der Lage, Ähnlichkeitssortierung, visuelles Clustering und Zielaktivitätsvorhersage zu bieten, indem sie vorberechnete Referenzdaten mit dynamisch berechneten, vom Benutzer bereitgestellten Daten mischt.

Falls Sie mit den Begriffen ECFP6 und FCFP6 nicht vertraut sind, in aller Kürze: Die chemische Struktur wird auf alle Untergraphen mit einem Durchmesser von bis zu Größe 6 untersucht (d. h. man beginnt mit einem einzelnen Knoten und führt 3 Breadth-First-Iterationen durch). Jedem dieser Graphen wird ein Hash-Code zugewiesen, der auf den Eigenschaften des Atoms, der Bindungen und ggf. der Chiralität basiert. Diese Hash-Codes durchlaufen mehrere Redundanz-Eliminierungsschritte und werden schließlich in eine Liste von 32-Bit-Ganzzahlen umgewandelt. Ein arzneimittelähnliches Molekül hat normalerweise Dutzende bis Hunderte dieser eindeutigen Hashcodes. Moleküle, die strukturell sehr ähnlich sind, neigen dazu, eine große Anzahl dieser Indizes gemeinsam zu haben, und werden daher oft mit dem Tanimoto-Koeffizienten verglichen. Bei Fingerprints der ECFP-Klasse sind die Atomeigenschaften eher wörtlich zu verstehen (z. B. Ordnungszahl, Ladung, Wasserstoffzahl usw.), während bei der FCFP-Klasse ("F" steht für funktional) die Atomcharakteristika gegen Eigenschaften ausgetauscht werden, die sich auf die Ligandenbindung beziehen (z. B. Wasserstoffdonor/-akzeptor, Polarität, Aromatizität usw.), was bedeutet, dass verschiedene Atome oft mit demselben Wert beginnen (z. B. können -OH und -NH als gleich angesehen werden).

Es gibt viele verschiedene Arten von graphbasierten Fingerprints, die als alternative Auswahl für verschiedene Arten von Strukturvergleichen verwendet werden können. Die Kategorien ECFP und FCFP wurden in einer Reihe von Studien erfolgreich verwendet, insbesondere für die Bayes'sche Modellbildung. Die Art und Weise, wie diese Fingerprints konstruiert sind, bietet ein gutes Gleichgewicht und eine empirisch gute Proportionalität, wenn sie für die verschiedenen Arten von Ähnlichkeitsvergleichen verwendet werden, was sie zu einer beliebten Wahl für die Arzneimittelforschung gemacht hat.

Mehrere Software-Anbieter haben ihren eigenen Stil von zirkulären Deskriptoren implementiert, aber es gibt ein Problem: Die ursprüngliche Erfindung basiert auf einem Algorithmus, der in der Literatur veröffentlicht wurde, aber leider wichtige Details auslässt, die es keinem anderen möglich machen, eine Version zu implementieren, die buchstäblich kompatibel ist. Das mag keine Rolle spielen, wenn Sie Ihre gesamte Modellierung mit Software eines einzigen Anbieters durchführen, aber wenn Sie mischen und anpassen wollen, können Fingerabdrücke, die von einem Paket erzeugt wurden, nicht mit Fingerabdrücken verglichen werden, die von einem anderen erzeugt wurden, selbst wenn die Eingabemoleküle dieselben sind und die Implementierung demselben Grundrezept folgt: Die Zahlen werden völlig unterschiedlich sein.

Da das CDK-Projekt bisher keine eigene Implementierung hatte, haben wir diese besondere Lücke geschlossen. Jeder, der Software in einer Java-Laufzeitumgebung verwendet, kann darauf zugreifen, ohne jemanden bezahlen oder um Erlaubnis fragen zu müssen. Wir haben viel Arbeit investiert, um sicherzustellen, dass diese Fingerabdrücke verschiedene Validierungstests bestehen und mit einer Anreicherungsrate arbeiten, die mit anderen Implementierungen vergleichbar ist. Aber vielleicht noch wichtiger ist, dass der Algorithmus ganz bewusst so aufgebaut wurde, dass er relativ einfach in Worten zu beschreiben ist und auf einem Code basiert, der sehr eigenständig ist. Definitionen wie implizite Wasserstoffzahl, Aromatizität, Ringblöcke und Chiralität sind minimalistisch, gut definiert und werden sich garantiert nie ändern. Das bedeutet, dass Sie, wenn Sie eine Liste von Fingerprints für eine Struktur erzeugen, diese in einer Datenbank speichern und für immer verwenden können; Sie müssen sie nicht versionieren und sicherstellen, dass sie neu erstellt werden, wenn sich eine der Abhängigkeiten ändert (was bei vielen Softwarepaketen ein großes Problem darstellt). Und weil die Implementierung ziemlich plattformunabhängig ist, kann eine einzelne Quelldatei Zeile für Zeile in eine andere Entwicklungsumgebung übersetzt werden. In der Praxis können Sie die CDK-Implementierung verwenden, um Beispielergebnisse zu erzeugen, um sicherzustellen, dass die transplantierte Version identisch arbeitet. Wie bereits erwähnt, wurde dies bereits getan und wird von der TB Mobile App verwendet.

Wir beabsichtigen, den Algorithmus in naher Zukunft explizit in der wissenschaftlichen Literatur zu dokumentieren, um den frei verfügbaren Quellcode zu ergänzen, aber darauf werden Sie warten müssen. In der Zwischenzeit, wenn Sie sich mutig fühlen, suchen Sie nach der Datei CircularFingerprint.java im CDK-Quellcode, unter der Hierarchie der Fingerabdrücke.

Es ist auch das erste Mal, dass ich aktiv mit der CDK-Codebasis gearbeitet habe. Das Projekt scheint sich mitten in einer großen Überarbeitung zu befinden, es wird also interessant sein, zu sehen, was am anderen Ende herauskommt. Abgesehen von einer wichtigen neuen Klasse von Fingerabdrücken, versteht sich!