Konversi sdf ke csv

Konversi SDF menjadi CSV

Ekspor record SDF kimia, tag SD, dan SMILES ke CSV dengan Open Babel, RDKit, atau KNIME.

Buat berkas CSV secara online

Kami belum bisa membaca berkas SDF, jadi konversi ini belum tersedia. Jika Anda bisa mengekspor pekerjaan Anda ke salah satu format ini atau lainnya, kami akan mengubahnya menjadi CSV:

Bagaimana mengkonversi sdf ke csv berkas

Compound library sering disediakan sebagai file SDF kimia, tetapi Excel, impor LIMS, sistem pelaporan, dan database loader biasanya memerlukan tabel CSV datar. Mengekspor SD tags dan structure identifier memungkinkan setiap compound menempati satu baris CSV sekaligus mempertahankan data yang diperlukan untuk filtering atau matching.

Identifikasi jenis file SDF

Prosedur ini berlaku untuk Structure Data File kimia, yang juga disebut file SD. File ini menyimpan satu atau beberapa molecular connection tables (atom dan bond), properti bernama opsional yang disebut SD tags, dan biasanya mengakhiri setiap record dengan $$$$.

ChemDraw, software BIOVIA, RDKit, Open Babel, docking tools, compound-registration systems, dan database kimia seperti PubChem menggunakan file SDF kimia. SDF kimia adalah plain text dan biasanya dapat dikenali melalui atom/bond blocks serta separator $$$$.

Ekstensi .sdf bersifat ambigu. Database SQL Server Compact dan file spatial-data Autodesk juga dapat menggunakannya; keduanya adalah database, bukan file SD kimia. Ekspor tabel yang dipilih dari SQL Server Compact atau spatial layer yang dipilih dari software GIS/CAD yang kompatibel, karena database multi-table atau multi-layer tidak dapat dikonversi secara akurat menjadi satu CSV tanpa memilih atau menggabungkan data terlebih dahulu.

Data yang dipertahankan CSV

CSV menyimpan nilai tabular sebagai kolom yang dipisahkan delimiter. Program spreadsheet, R, Python pandas, database import utilities, dan banyak produk LIMS/reporting dapat membacanya.

CSV dapat berisi nama compound, identifier, SD tags, hasil assay, calculated descriptors, dan structure string seperti isomeric SMILES atau InChI. CSV tidak dapat menyimpan connection table SDF, molecular coordinates, atau original record layout secara native. Simpan SDF asli sebagai structure archive, dan sertakan SMILES ketika penerima harus merekonstruksi molekul.

Konversi dengan Open Babel

Open Babel merupakan opsi lokal yang sesuai untuk konversi command-line secara cepat. Setelah menginstalnya, jalankan command berikut dari folder yang berisi source file:

obabel input.sdf -ocsv -O output.csv

Buka hasilnya dan verifikasi heading, delimiter, serta properti yang disertakan sebelum mengimpornya ke tempat lain. Output CSV dan penanganan properti Open Babel dapat berbeda menurut versinya, jadi gunakan RDKit ketika receiving system memerlukan nama kolom, urutan, atau semua SD tags yang tepat.

Konversi dengan RDKit

Instal RDKit, misalnya dengan conda install -c conda-forge rdkit. Script berikut membuat satu baris per molekul yang valid, menulis record title dan isomeric SMILES, serta menyalin setiap SD tag biasa.

from rdkit import Chem
import csv

supplier = Chem.SDMolSupplier("input.sdf", removeHs=False)
rows = []
tags = set()

for mol in supplier:
    if mol is None:
        continue
    properties = list(mol.GetPropNames())
    tags.update(properties)
    row = {
        "Record_name": mol.GetProp("_Name") if mol.HasProp("_Name") else "",
        "Isomeric_SMILES": Chem.MolToSmiles(mol, isomericSmiles=True)
    }
    for tag in properties:
        row[tag] = mol.GetProp(tag)
    rows.append(row)

columns = ["Record_name", "Isomeric_SMILES"] + sorted(tags)
with open("output.csv", "w", newline="", encoding="utf-8") as file:
    writer = csv.DictWriter(file, fieldnames=columns, extrasaction="ignore")
    writer.writeheader()
    writer.writerows(rows)

Simpan sebagai sdf_to_csv.py dan jalankan python sdf_to_csv.py. Ganti columns dengan fixed list jika importer memerlukan schema atau urutan kolom tertentu. RDKit melewati record yang tidak dapat di-parse, jadi bandingkan jumlah baris output dengan jumlah record yang diharapkan, yang dipisahkan oleh $$$$, dan periksa parsing warnings.

Gunakan workflow desktop

KNIME Analytics Platform menyediakan graphical, repeatable workflow bagi pengguna yang tidak ingin membuat script. Gunakan node SDF Reader, konversi molecular column menjadi SMILES dengan integrasi RDKit, pilih SD-tag columns yang diperlukan oleh destination, lalu hubungkan node CSV Writer. Konfigurasikan delimiter, quote character, dan encoding UTF-8 pada writer.

DataWarrior dapat memeriksa SDF, menampilkan SD tags sebagai kolom, memfilter record, dan menghitung descriptors sebelum ekspor. Konfirmasikan delimiter text-export yang dipilih dan sertakan kolom SMILES, bukan berasumsi bahwa tabel yang diekspor mempertahankan molecular structures.

Online services dan catatan impor

Jangan mengunggah proprietary, regulated, atau large compound collections ke generic conversion websites. Banyak online converters tidak mempertahankan SD tags atau molecular structures. PubChem PUG-REST dapat mengembalikan properti CSV untuk PubChem CIDs publik yang telah diketahui, tetapi tidak mengonversi file SDF lokal sembarang atau mempertahankan original tags.

CSV fields yang berisi koma, quotation marks, atau line breaks harus diberi quote; modul csv Python melakukannya secara otomatis. Gunakan UTF-8, dan impor file di Excel melalui Data → From Text/CSV, bukan membukanya secara langsung. Tetapkan identifier seperti 00123, long registry numbers, dan nilai yang menyerupai scientific notation ke tipe Text untuk mencegah konversi numerik yang tidak diinginkan.

Canonical SMILES umumnya mempertahankan defined molecular connectivity dan ordinary stereochemistry, tetapi tidak mempertahankan koordinat 2D/3D, drawing layout, seluruh enhanced stereochemical-group information, atau setiap SDF-specific record feature. Sertakan InChI atau InChIKey untuk identity matching jika diperlukan, tetapi jangan menganggap nama compound sebagai unique structural identifier.