[PYTHON] Konvertieren Sie MOL-Dateien über Standard-E / A in SMILES

Einführung

Ich habe ein Python-Skript erstellt, um eine MOL-Datei in SMILES zu konvertieren. Dies ist eine Geschichte, die überall ist, aber ich lese die MOL-Datei (Zeichenfolge im MOL-Format) von der Standardeingabe und spucke SMILES an die Standardausgabe aus. Infolgedessen kann das Ergebnis erhalten werden, ohne die Datei zu durchlaufen, und es kann einfacher verwendet werden.

Umgebung

Quelle

Die Quelle ist wie folgt.

Mol2SMILESConvertor.py


import sys
from rdkit import Chem


def main():
    f = sys.stdin
    mol_block = ""
    for line in f:
        mol_block += line

    mol = Chem.MolFromMolBlock(mol_block)
    smiles = Chem.MolToSmiles(mol)
    print(smiles)


if __name__ == "__main__":
    main()

Wie benutzt man

Die Verwendung wird anhand der folgenden MOL-Datei als Beispiel erläutert.

test.mol


2,3,6-PCB
     RDKit          2D

 15 16  0  0  0  0  0  0  0  0999 V2000
    1.2990   -0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.2990    0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.0000    1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.2990    0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.2990   -0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.0000   -1.5000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    0.0000   -3.0008    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -1.2978   -3.7529    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.3380   -3.1546    0.0000 Cl  0  0  0  0  0  0  0  0  0  0  0  0
   -1.2955   -5.2529    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
   -2.3337   -5.8546    0.0000 Cl  0  0  0  0  0  0  0  0  0  0  0  0
    0.0048   -6.0009    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.3026   -5.2488    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    1.3002   -3.7488    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
    2.3385   -3.1472    0.0000 Cl  0  0  0  0  0  0  0  0  0  0  0  0
  1  2  2  0
  2  3  1  0
  3  4  2  0
  4  5  1  0
  5  6  2  0
  6  1  1  0
  6  7  1  0
  7  8  2  0
  8  9  1  0
  8 10  1  0
 10 11  1  0
 10 12  2  0
 12 13  1  0
 13 14  2  0
 14  7  1  0
 14 15  1  0
M  END
$$$$

Wenn Sie die obige MOL-Datei kopieren und diesem Skript zuführen, erhalten Sie SMILES wie folgt. Es ist einfach.

$ cat test.mol |python bin/Mol2SMILESConvertor.py
Clc1ccc(Cl)c(-c2ccccc2)c1Cl

Andere

Recommended Posts

Konvertieren Sie MOL-Dateien über Standard-E / A in SMILES
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Ich habe ein Skript in Python erstellt, um MDD-Dateien in das Scrapbox-Format zu konvertieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Konvertieren Sie PDF-Dateien mit GIMP in PNG-Dateien
[Python] Fügen Sie der Standardeingabedatei einen Kommentar hinzu
Ich habe versucht, WAV-Dateien mit Pydub zu synthetisieren.
Ich möchte CSV-Dateien mit Vega-Lite visualisieren!
Konvertieren Sie UTF-8-CSV-Dateien in Excel
Konvertieren Sie mehrere JPG-Dateien in eine PDF-Datei
Stapelkonvertierung von PSD-Dateien im Verzeichnis in PDF
Ich möchte die Eingabe / Ausgabe von Dateien unter Linux protokollieren