[PYTHON] RDKit definiert das Reaktionsmuster mit SMARTS und erzeugt einen Reaktanten

Einführung

Mit RDKit möchte ich mit SMARTS ein Reaktionsmuster definieren und aus dem Reaktanten basierend auf diesem Muster ein Produkt erzeugen.

Umgebung

Methode

Bitte beachten Sie die Referenzen.

Reaktion habe ich diesmal versucht

Dieses Mal möchte ich die Hydroxylierungsreaktion von Kohlenstoffatomen ausprobieren. Das SMARTS-Muster ist wie folgt.

[C:1]>>[C:1][OH]

Die folgenden Verbindungen wurden als Reaktionsprodukt ausprobiert.

query.png

Quelle

Die Quelle ist wie folgt. Ich habe versucht, alle Produkte auszugeben, die durch die Reaktion auf ein Bild entstanden sind.

from rdkit.Chem import AllChem
from rdkit.Chem.Draw import rdMolDraw2D
from io import BytesIO
from cairosvg import svg2png
from IPython.display import SVG
from rdkit import Chem

#Bildausgabe
def generate_image(mol, size, path, name):

    image_data = BytesIO()
    view = rdMolDraw2D.MolDraw2DSVG(size[0], size[1])
    tm = rdMolDraw2D.PrepareMolForDrawing(mol)

    view.DrawMolecule(tm)
    view.FinishDrawing()
    svg = view.GetDrawingText()
    SVG(svg.replace('svg:', ''))
    print(path + "/" + name)
    try:
        svg2png(bytestring=svg, write_to=path + "/" + name + ".png ")
    except:
        pass


def main():
    reactant_1 = Chem.MolFromSmiles('COc2ccc1cccc(CCNC(C)=O)c1c2')
    reaction_pattern = '[C:1]>>[C:1][OH]'
    rxn = AllChem.ReactionFromSmarts(reaction_pattern)
    x = rxn.RunReactants([reactant_1])
    for i, mol in enumerate(x):
        print(mol[0])
        try:
            Chem.SanitizeMol(mol[0])
            generate_image(mol[0], (300, 300), "tmp", "metablite_{0}".format(i))
        except:
            print("Error")
            print(Chem.MolToMolBlock(mol[0]))


if __name__ == "__main__":
    main()

Bestätigung

Es wurden vier Produkte erhalten. Einer war ein Fehler aufgrund der Gebühr beim Desinfizieren. Lassen Sie uns das Ergebnis mit einem Bild überprüfen.

Produkt 1

metablite_0.png

Produkt 2

metablite_1.png

Produkt 3

metablite_2.png

Produkt 4

metablite_4.png

Produkt 5 (Ladefehler durch Desinfektionsprozess)

error_metabolite.png

Erwägung

Verweise

Recommended Posts

RDKit definiert das Reaktionsmuster mit SMARTS und erzeugt einen Reaktanten
Machen Sie ein BLE-Thermometer und ermitteln Sie die Temperatur mit Pythonista3
Generieren Sie mit GAN physisch stabile Formen und drucken Sie mit einem 3D-Drucker
Lösen Sie das Python-Rucksackproblem mit der Branch-and-Bound-Methode
Generieren Sie mit SciPy eine Normalverteilung
Generieren Sie eine vorsignierte URL mit golang
[Python] Generiere ein Passwort mit Slackbot
Ersetzen Sie den Verzeichnisnamen und den Dateinamen im Verzeichnis zusammen mit einem Linux-Befehl.
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
C> link> Definiere einen String und greife auf den Index zu> * dstPtr ++ = "0123456789ABCDEF" [nibble];
Die Geschichte einer Soundkamera mit Touch Designer und ReSpeaker
Erstellen Sie DNN-CRF mit Chainer und erkennen Sie den Akkordfortschritt der Musik
Erstellen Sie mit RDKit einen Befehl zum Suchen nach ähnlichen Verbindungen aus der Zieldatenbank und überprüfen Sie die Verarbeitungszeit