[PYTHON] Konvertieren Sie SDF schnell in CSV

Einführung

Ich habe ein Skript geschrieben, um SDF, ein zusammengesetztes Datenformat, schnell in CSV zu konvertieren.

Spezifikation

--Lesen Sie die Eigenschaften in SDF und geben Sie sie als CSV-Element aus

Quelle

SDF2CSVConvert.py


import pandas as pd
from rdkit import Chem
import argparse
from collections import defaultdict


def main():

    parser = argparse.ArgumentParser()
    parser.add_argument("-input", type=str, required=True)
    parser.add_argument("-output", type=str, required=True)
    parser.add_argument("-save_name", action='store_true', help="store header line as _Name")
    args = parser.parse_args()

    #SDF wird geladen(Lesen Sie beim ersten Mal alle Parameternamen)
    sdf_sup = Chem.SDMolSupplier(args.input)
    Props = []
    if args.save_name:
        Props.append("_Name")

    for mol in sdf_sup:
        for name in mol.GetPropNames():
            if name not in Props:
                Props.append(name)

    #Wörterbuch zum Speichern von Daten
    param_dict = defaultdict(list)

    #SDF wird geladen(Das zweite Mal bekam ich die Parameter der Verbindung. Sonst ein Fehler)
    sdf_sup = Chem.SDMolSupplier(args.input)
    for mol in sdf_sup:
        #Name holen
        for name in Props:
            if mol.HasProp(name):
                param_dict[name].append(mol.GetProp(name))
            else:
                param_dict[name].append(None)

    #Sofort mit Pandas konvertieren
    df = pd.DataFrame(data=param_dict)
    df.to_csv(args.output, index=False)


if __name__ == "__main__":
    main()

Kommentar

Das SDF wird zuerst geladen, um die Eigenschaften aller Verbindungen zu kennen. Dann wird der Wert der Eigenschaft jeder Verbindung in der zweiten Lesung gelesen. Wenn die Verbindung keine Eigenschaften hat, ist Keine enthalten. Schließlich wurde der Wörterbuchtyp, in dem die Eigenschaften gespeichert sind, in Pandas geworfen und an CSV ausgegeben. Zusätzlich kann die erste Zeile von SDF mit der Eigenschaft "_Name" mit -save_name gespeichert werden. Weitere Argumente finden Sie in der Quelle.

Ausgabebeispiel

Die Löslichkeitsdaten von RDKit sehen folgendermaßen aus.

_Name,ID,NAME,SOL,SMILES,SOL_classification
3-methylpentane,5,3-methylpentane,-3.68,CCC(C)CC,(A) low
"2,4-dimethylpentane",10,"2,4-dimethylpentane",-4.26,CC(C)CC(C)C,(A) low
1-pentene,15,1-pentene,-2.68,CCCC=C,(B) medium
cyclohexene,20,cyclohexene,-2.59,C1CC=CCC1,(B) medium
"1,4-pentadiene",25,"1,4-pentadiene",-2.09,C=CCC=C,(B) medium
cycloheptatriene,30,cycloheptatriene,-2.15,C1=CC=CC=CC1,(B) medium
1-octyne,35,1-octyne,-3.66,CCCCCCC#C,(A) low
ethylbenzene,40,ethylbenzene,-2.77,c1ccccc1CC,(B) medium
"1,3,5-trimethylbenzene",45,"1,3,5-trimethylbenzene",-3.4,c1c(C)cc(C)cc1C,(A) low
indane,50,indane,-3.04,c(c(ccc1)CC2)(c1)C2,(A) low
isobutylbenzene,55,isobutylbenzene,-4.12,c1ccccc1CC(C)C,(A) low
n-hexylbenzene,60,n-hexylbenzene,-5.21,c1ccccc1CCCCCC,(A) low

Recommended Posts

Konvertieren Sie SDF schnell in CSV
Zum HSV konvertieren
So konvertieren Sie csv in tsv in CLI
[Python] Konvertieren Sie CSV-Dateibegrenzer in Tabulatortrennzeichen
Konvertieren Sie mit pdfplumber von PDF in CSV
[Python] Konvertieren von DICOM in PNG oder CSV
Konvertieren Sie UTF-8-CSV-Dateien in Excel
Konvertieren Sie XLSX in CSV in der Befehlszeile
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Konvertiere Kanji in Kana
Jupyter in py umwandeln
Konvertiere keras-yolo3 in onnx
Dikt in Array konvertieren
Konvertieren Sie json in Excel
Ich konvertiere AWS JSON-Daten wie folgt in CSV
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
So konvertieren Sie Json-Dateien in das CSV- oder EXCEL-Format
Konvertieren Sie eine hexadezimale Zeichenfolge in eine Binärzeichenfolge
[Python] Datum in Zeichenfolge konvertieren
Konvertieren Sie numpy int64 in python int
[Python] Liste in Pandas konvertieren [Pandas]
Konvertieren Sie HTML in eine Textdatei
[Python] Konvertieren Sie Shift_JIS in UTF-8
Konvertieren Sie die IP-Adresse in eine Dezimalzahl
Batch-Konvertierung aller XLSX-Dateien im Ordner in CSV-Dateien
Schreiben Sie mit Python in csv
Konvertieren Sie die Genbank-Datei in die GFF-Datei
Konvertieren Sie Python 3.x-Code in Python 2.x.
Konvertieren Sie nach dem Aufrufen der Shell-Datei unter Python CSV in Parkett.
Konvertieren Sie das PDF der Händlerliste der Go To Eat Hokkaido-Kampagne in CSV
Python-Handspiel (RDKit-Deskriptorberechnung: SDF zu CSV mit Pandas)
[Good By Excel] Python-Skript zum Generieren von SQL zum Konvertieren von CSV in Tabelle
Konvertieren Sie das Tweepy Status-Objekt in JSON
Funktion zum Konvertieren von Excel-Spalten in Zahlen
Konvertieren Sie Markdown in Python in PDF
[Python] Mit Python in eine CSV-Datei schreiben
Konvertieren Sie A4 PDF alle 2 Seiten in A3
Konvertieren Sie wma in mp3 auf dem Mac
Konvertieren Sie einen Teil des japanischen Namens in ein Synonym
Konvertieren Sie ein ggplot-basiertes Diagramm in HTML
Konvertieren Sie die Liste mit Python in DataFrame
Konvertieren Sie Sätze mit gensim in Vektoren
So konvertieren Sie 0,5 in 1056964608 auf einmal
Python> Liste> Doppelte Liste in einfache Liste konvertieren
Konvertierung von pdf nach txt 2 [pyocr]
So konvertieren Sie das Tensorflow-Modell in Lite
Konvertieren Sie eine Zeichenfolge in ein Bild
[Django] Befehl zum Ausgeben von QuerySet an csv
[Python] Konvertiert natürliche Zahlen in Ordnungszahlen
Konvertieren Sie die Dezimalzahl in n-ary [Python]
Programm zum Konvertieren von Japanisch in Sendernamen
So konvertieren Sie von .mgz nach .nii.gz
Konvertieren Sie PDF in Image mit ImageMagick
Tool zum Konvertieren der Juniper-Konfiguration
Erhöhen Sie die lokale CSV in Google SpreadSheet
Python> Tupel> Konvertiert doppeltes Tupel in einzelnes Tupel
In der XML-Datenbank (BaseX) gespeichertes XML-Dokument in das CSV-Format konvertieren (mit Python)
Ich möchte eine in Python in PDF konvertierte Tabelle wieder in CSV konvertieren
Konvertieren Sie eine Tabelle in CSV und laden Sie sie mit Cloud-Funktionen in den Cloud-Speicher hoch
Konvertieren Sie das PDF der Go To EAT-Mitgliedergeschäftsliste in der Präfektur Kumamoto in CSV