[PYTHON] Es ist Zeit, die Generierung von SMILES mit RDKit zu beenden

Überblick

Wenn Sie die Standardoptionen nicht verstehen und Chem.MolToSmiles irgendwie verwenden, ist es Zeit für einen Abschluss. Ein Memo, das dadurch zusammengefasst wird.

Umgebung

RDkit 2020.03.5

Optionsbeschreibung

Möglichkeit Erläuterung
iosomericSmiles Fügen Sie Informationen zur sterischen Chemie in SMILES ein. Der Standardwert ist true
kekuleSmiles Verwenden Sie das Kekule-Format (keine aromatische Bindung) mit SMILES. Der Standardwert ist false
rootedAtAtom Wenn nicht negativ, zwingt dies SMILES, an einem bestimmten Atom zu beginnen. Der Standardwert ist-1
canonical Wenn false, wird es nicht normalisiert. Der Standardwert ist true.
allBondsExplicit Wenn true, werden alle Join-Bestellungen explizit in der Ausgabe SMILES gedruckt. Der Standardwert ist false.
allHsExplicit Wenn true, werden alle H-Zählungen explizit in der Ausgabe SMILES ausgegeben. Der Standardwert ist false.

Lass es uns versuchen

Erstellen Sie diese Methode, um die andere Operation als rootedAtAtom zu überprüfen.

def generate_smiles(old_smiles, isometric=True, kekule=False, allBondsExplicit=False, allHsExplicit=False, canonical=True):
    print(f"\n\ngenerate smiles {old_smiles}")
    print(f"prev smiles = {old_smiles}")
    old_mol = Chem.MolFromSmiles(old_smiles)
    new_smiles = Chem.MolToSmiles(old_mol, isomericSmiles=isometric, kekuleSmiles=kekule,
                                 allBondsExplicit=allBondsExplicit, allHsExplicit=allHsExplicit, canonical=canonical)

    print(f"new smiles = {new_smiles}")

LÄCHELN zu testen

Lassen Sie uns mit diesem Typen sprechen, der dreidimensionale Informationen und aromatische Ringinformationen hat.

C[C@H]1COC2=C1C(=O)C(=O)c1c2ccc2c1CCCC2(C)C

Beim Ändern der isometischen Smiles von der Standardeinstellung true auf flase

CC1COC2=C1C(=O)C(=O)c1c2ccc2c1CCCC2(C)C

Oh, die dreidimensionale Information ist verschwunden.

Wenn canonical von der Standardeinstellung true auf flase geändert wird

C[C@H]1COC2=C1C(=O)C(=O)c1c2ccc2c1CCCC2(C)C

Keine Änderung. Es ist möglich, dass das ursprüngliche SMILES kanonisch war.

Beim Ändern von kekureSmiles vom Standardwert false in true

C[C@H]1COC2=C1C(=O)C(=O)C1:C2:C:C:C2:C:1CCCC2(C)C

c wurde groß geschrieben und die Anzahl der Doppelpunkte hat zugenommen. -And = alternativ, ist es nicht ein Muster?

Wenn allBondsExplicit vom Standardwert false in true geändert wird

C-[C@H]1-C-O-C2=C-1-C(=O)-C(=O)-c1:c-2:c:c:c2:c:1-C-C-C-C-2(-C)-C

Die Einfachbindung ist auch richtig herausgekommen. Nun, es ist laut (lacht).

Wenn allHsExplicit vom Standardwert false in true geändert wird

[CH3][C@H]1[CH2][O][C]2=[C]1[C](=[O])[C](=[O])[c]1[c]2[cH][cH][c]2[c]1[CH2][CH2][CH2][C]2([CH3])[CH3]

Impliziter Wasserstoff wurde entdeckt. Noch lauter (lacht)

Setzen Sie abschließend allBondsExplicit und allHsExplicit gleichzeitig auf true (Bonus).

 [CH3]-[C@H]1-[CH2]-[O]-[C]2=[C]-1-[C](=[O])-[C](=[O])-[c]1:[c]-2:[cH]:[cH]:[c]2:[c]:1-[CH2]-[CH2]-[CH2]-[C]-2(-[CH3])-[CH3]

Für Leute, die nicht zwischen Zeilen lesen können.

Referenz

https://www.rdkit.org/docs/source/rdkit.Chem.rdmolfiles.html

Recommended Posts

Es ist Zeit, die Generierung von SMILES mit RDKit zu beenden
Jetzt ist es an der Zeit, DB mit Docker zu installieren! DB-Installation für Anfänger auf Docker
So implementieren Sie die Time-Wait-Verarbeitung mit wxpython
So messen Sie die Ausführungszeit mit Python Teil 1
So messen Sie die Ausführungszeit mit Python Part 2
Stoppen Sie EC2 für eine bestimmte Zeit + beginnen Sie mit Lambda (Python)
[Einführung in Word Cloud] Einfache Verwendung mit Jetson-nano ♬
So messen Sie die Wiedergabezeit von MP3-Dateien mit Python
Um Zeit damit zu verbringen, mit Python gezeichnete Figuren zu färben
Es ist zu mühsam, Japanisch in Vims Python3 anzuzeigen.