Konversi CSV menjadi SDF
Konversi catatan CSV kimia dengan SMILES atau InChI menjadi file SDF yang tervalidasi.
Konversi file CSV secara online
Kami belum punya konverter online khusus untuk CSV ke SDF, tetapi Anda bisa mengonversi file CSV secara online ke format berikut dan lainnya:
Bagaimana mengkonversi csv ke sdf berkas
- Basis Data
- Belum ada peringkat.
Program laboratorium dan cheminformatics sering memerlukan file SDF ketika spreadsheet, instrumen, atau database mengekspor catatan senyawa sebagai CSV. Konversi hanya berfungsi jika CSV berisi representasi struktur kimia, seperti SMILES; nama, formula, dan nilai pengujian saja tidak dapat membuat geometri molekul.
Apa itu format CSV
CSV adalah format tabular teks biasa yang record-nya dipisahkan oleh jeda baris dan field-nya dipisahkan oleh koma atau delimiter lain. Excel, LibreOffice Calc, instrumen laboratorium, sistem inventaris, database, dan script umumnya menghasilkan file CSV.
CSV kimia dapat berisi kolom seperti ID, Name, SMILES, InChI, Formula, CAS, dan properti yang diukur. Sebelum mengimpornya, identifikasi delimiter, aturan quoting, encoding karakter, konvensi desimal, nama header, dan kolom struktur. CSV yang hanya berisi nama, formula, atau nomor registrasi memerlukan pencarian pada database kimia eksternal sebelum dapat menjadi file struktur.
Apa itu format SDF
Dalam cheminformatics, SDF berarti Structure Data File, yang juga disebut file SD. Setiap record berisi blok struktur Molfile yang diikuti oleh field properti bertag, misalnya > <ID> dan > <Activity>. Record diakhiri oleh baris yang berisi $$$$.
SDF dapat menyimpan konektivitas atom dan ikatan, muatan formal, stereokimia, koordinat 2D atau 3D, serta metadata senyawa dalam satu file. Berbeda dari spreadsheet biasa, format ini merepresentasikan molecular graph yang diperlukan oleh banyak chemical editor, sistem registrasi, screening tool, dan program pemodelan. Nama properti SDF dan versi Molfile yang didukung berbeda-beda antar aplikasi, sehingga persyaratan program penerima harus diperiksa.
Ekstensi .sdf juga dapat merujuk pada database SQL Server Compact. Prosedur di bawah ini berlaku untuk format chemical Structure Data File; file SQL Server Compact memerlukan ekspor database atau migrasi data tingkat tabel.
Konversi file dengan DataWarrior
- Pastikan CSV berisi
SMILES,InChI, atau notasi valid lain yang didukung software. Pertahankan identifier dan nilai properti pada baris yang sama dengan strukturnya. - Buka DataWarrior dan pilih File → Open, lalu pilih CSV. Dalam dialog impor, atur delimiter, encoding teks, format desimal, dan penanganan field yang diberi tanda kutip.
- Verifikasi bahwa DataWarrior telah mengklasifikasikan kolom struktur sebagai struktur kimia, bukan teks biasa. Periksa entri yang tidak valid, kosong, dan terputus secara tidak terduga.
- Pilih File → Save Special → SD-file dan pilih kolom struktur serta metadata yang akan diekspor jika diminta. Simpan hasilnya dengan ekstensi
.sdf. - Buka kembali output di DataWarrior atau aplikasi kimia kedua. Periksa beberapa struktur, pusat stereokimia, muatan, koordinat, dan nilai properti.
DataWarrior merupakan opsi grafis lokal yang praktis untuk file berukuran sedang karena dapat menafsirkan kolom kimia, menampilkan struktur, dan mengekspor file SD. Label menu dapat berbeda antar rilis.
Konversi secara berulang dengan Python dan RDKit
RDKit cocok untuk konversi otomatis atau berukuran besar. Contoh ini mengharapkan file yang dipisahkan koma dengan kolom SMILES dan, secara opsional, kolom ID. Setiap kolom tidak kosong lainnya menjadi properti SDF.
import csv
import sys
from rdkit import Chem
source, target = sys.argv[1], sys.argv[2]
reader = csv.DictReader(open(source, newline='', encoding='utf-8-sig'))
writer = Chem.SDWriter(target)
for row_number, row in enumerate(reader, start=2):
smiles = (row.get('SMILES') or '').strip()
molecule = Chem.MolFromSmiles(smiles)
if molecule is None:
print(f'Skipping row {row_number}: invalid SMILES', file=sys.stderr)
continue
for key, value in row.items():
if key and key != 'SMILES' and value not in (None, ''):
molecule.SetProp(key, value)
writer.write(molecule)
writer.close()
Instal RDKit melalui Conda, simpan kode sebagai csv_to_sdf.py, lalu jalankan:
python csv_to_sdf.py input.csv output.sdf
Script ini mengurai konektivitas dan atribut kimia dari SMILES, tetapi tidak menghasilkan koordinat. Tambahkan pembuatan koordinat RDKit, seperti koordinat penggambaran 2D, atau gunakan chemical editor jika aplikasi tujuan memerlukan koordinat 2D atau 3D. Ubah konfigurasi reader jika sumber menggunakan titik koma, tab, atau delimiter lain.
Gunakan Open Babel setelah prapemrosesan
Open Babel mengonversi format teks kimia yang dikenali, tetapi bukan importer tabel CSV serbaguna. Ekstrak kolom struktur terlebih dahulu ke dalam file SMILES, sambil mempertahankan identifier dan properti melalui script terpisah atau tool yang mendukungnya. Kemudian buat SDF dengan:
obabel compounds.smi -O output.sdf --gen2D
Gunakan --gen3D hanya jika konformasi yang dihitung dapat diterima; koordinat yang dihasilkan bukan pengukuran eksperimental dan mungkin tidak merepresentasikan konformasi yang dipilih.
Opsi online untuk data publik
Online file converter umum biasanya hanya mengganti nama atau mengemas ulang teks dan tidak dapat memvalidasi SMILES, menyelesaikan identifier, atau mempertahankan stereokimia kimia. Untuk daftar kecil senyawa publik yang tidak rahasia, gunakan chemical resolver seperti NIH Chemical Identifier Resolver atau PubChem PUG REST untuk mengambil record SDF dari nama, nomor CAS, CID, atau identifier lain yang didukung. Layanan ini merupakan interface pencarian, bukan converter CSV-ke-SDF massal yang andal; biasanya diperlukan script untuk mengirimkan setiap baris, menangani kecocokan yang gagal, dan menggabungkan record yang dikembalikan. Jangan mengunggah struktur proprietary, data pengujian, atau record yang diatur regulasi ke layanan online tanpa persetujuan.
Pemeriksaan kualitas dan kompatibilitas
- Hitung record: bandingkan jumlah struktur input yang valid dengan jumlah record SDF, dan simpan laporan baris yang dilewati atau tidak berhasil diselesaikan.
- Periksa interpretasi kimia: SMILES yang tidak terbentuk dengan benar, keadaan valensi yang tidak didukung, muatan yang hilang, perbedaan tautomer, serta stereokimia yang ambigu atau hilang dapat mengubah molekul yang dihasilkan.
- Periksa koordinat: SMILES biasanya mendeskripsikan konektivitas, bukan koordinat. Tujuan yang menampilkan atau menghitung posisi 3D mungkin memerlukan pembuatan koordinat dan optimasi force field.
- Lindungi nilai tabular: spreadsheet dapat menghapus angka nol di awal, mengonversi identifier panjang menjadi notasi ilmiah, mengubah tanggal, dan mengubah pemisah desimal. Ekspor CSV UTF-8 dan gunakan tanda kutip pada field yang berisi koma, jeda baris, atau tanda kutip.
- Periksa kompatibilitas properti: nama field SDF tidak sepenuhnya terstandardisasi. Nama duplikat, tanda baca, spasi, panjang field, tipe data, dan dukungan versi Molfile dapat menyebabkan kegagalan impor.
- Validasi secara independen: buka output dalam aplikasi kimia kedua dan periksa garam, campuran, isotop, muatan, pusat stereokimia, serta record yang berisi properti panjang atau multiline.