Vai al contenuto

Converti SDF in CSV

Esporta i record chimici SDF, i tag SD e gli SMILES in CSV con Open Babel, RDKit o KNIME.

Crea file CSV online

Non sappiamo ancora leggere i file SDF, quindi questa conversione non è disponibile. Se puoi esportare il tuo lavoro in uno di questi formati o in altri, ne ricaviamo un CSV:

Vuoi convertire SDF in CSV?

Faccelo sapere. Scegliamo le prossime conversioni da aggiungere in base all'interesse.

Come convertire sdf in csv file

Le librerie di composti vengono spesso fornite come file SDF chimici, ma Excel, le importazioni LIMS, i sistemi di reporting e i loader di database richiedono generalmente una tabella CSV piatta. L'esportazione dei tag SD e di un identificatore della struttura consente a ogni composto di occupare una riga CSV, mantenendo al contempo i dati necessari per il filtraggio o la corrispondenza.

Identificare il tipo di file SDF

Questa procedura si applica a un Structure Data File chimico, chiamato anche file SD. Memorizza una o più tabelle di connessione molecolare (atomi e legami), proprietà denominate facoltative chiamate SD tags e normalmente termina ogni record con $$$$.

ChemDraw, i software BIOVIA, RDKit, Open Babel, gli strumenti di docking, i sistemi di registrazione dei composti e database chimici come PubChem utilizzano file SDF chimici. Un SDF chimico è testo normale e può generalmente essere riconosciuto dai blocchi di atomi/legami e dai separatori $$$$.

L'estensione .sdf è ambigua. Anche i database SQL Server Compact e i file di dati spaziali Autodesk possono utilizzarla; si tratta di database, non di file SD chimici. Esportare una tabella selezionata da SQL Server Compact o un layer spaziale selezionato da software GIS/CAD compatibile, poiché un database con più tabelle o layer non può essere convertito fedelmente in un unico CSV senza prima scegliere o unire i dati.

Cosa conserva il CSV

CSV memorizza valori tabellari in colonne separate da delimitatori. I programmi per fogli di calcolo, R, Python pandas, le utility di importazione dei database e molti prodotti LIMS/reporting possono leggerlo.

CSV può contenere nomi di composti, identificatori, SD tags, risultati di saggi, descrittori calcolati e una stringa della struttura come isomeric SMILES o InChI. Non può memorizzare nativamente una tabella di connessione SDF, le coordinate molecolari o il layout del record originale. Conservare l'SDF originale come archivio della struttura e includere SMILES quando il destinatario deve ricostruire le molecole.

Convertire con Open Babel

Open Babel è un'opzione locale adatta per una rapida conversione dalla riga di comando. Dopo averlo installato, eseguire il comando seguente dalla cartella contenente il file di origine:

obabel input.sdf -ocsv -O output.csv

Aprire il risultato e verificare le intestazioni, il delimitatore e le proprietà incluse prima di importarlo altrove. L'output CSV di Open Babel e la gestione delle proprietà possono variare in base alla versione; utilizzare quindi RDKit quando il sistema di destinazione richiede nomi esatti delle colonne, un ordine specifico o tutti gli SD tags.

Convertire con RDKit

Installare RDKit, ad esempio con conda install -c conda-forge rdkit. Lo script seguente crea una riga per ogni molecola valida, scrive il titolo del record e gli isomeric SMILES e copia ogni SD tag ordinario.

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)

Salvarlo come sdf_to_csv.py ed eseguire python sdf_to_csv.py. Sostituire columns con un elenco fisso se un importatore richiede uno schema o un ordine delle colonne specifico. RDKit ignora i record che non riesce ad analizzare; confrontare quindi il numero di righe di output con il numero previsto di record separati da $$$$ e controllare gli avvisi di analisi.

Utilizzare un workflow desktop

KNIME Analytics Platform fornisce un workflow grafico e ripetibile per gli utenti che non desiderano scrivere script. Utilizzare un nodo SDF Reader, convertire la colonna molecolare in SMILES con l'integrazione RDKit, selezionare le colonne SD-tag richieste dalla destinazione e collegare un nodo CSV Writer. Configurare il delimitatore, il carattere di virgolette e la codifica UTF-8 nel writer.

DataWarrior può esaminare un SDF, esporre gli SD tags come colonne, filtrare i record e calcolare i descrittori prima dell'esportazione. Verificare il delimitatore selezionato per l'esportazione di testo e includere una colonna SMILES invece di presumere che una tabella esportata conservi le strutture molecolari.

Servizi online e considerazioni sull'importazione

Non caricare raccolte di composti proprietarie, soggette a normative o di grandi dimensioni su siti web generici di conversione. Molti convertitori online non conservano gli SD tags o le strutture molecolari. PubChem PUG-REST può restituire proprietà CSV per CID PubChem pubblici conosciuti, ma non converte file SDF locali arbitrari né conserva i relativi tag originali.

I campi CSV contenenti virgole, virgolette o interruzioni di riga devono essere racchiusi tra virgolette; il modulo csv di Python lo fa automaticamente. Utilizzare UTF-8 e importare il file in Excel tramite Data → From Text/CSV invece di aprirlo direttamente. Assegnare agli identificatori come 00123, ai numeri di registro lunghi e ai valori simili alla notazione scientifica il tipo Text per evitare conversioni numeriche indesiderate.

Canonical SMILES generalmente conserva la connettività molecolare definita e la stereochimica ordinaria, ma non conserva le coordinate 2D/3D, il layout del disegno, tutte le informazioni sui gruppi stereochimici avanzati o ogni caratteristica specifica dei record SDF. Includere InChI o InChIKey per la corrispondenza delle identità quando richiesto, ma non trattare il nome di un composto come un identificatore strutturale univoco.

Le informazioni su estensioni e tipi di file sono fornite da File-Extensions.org

Domande frequenti

La conversione da SDF a CSV mantiene la struttura chimica?

Non da sola, perché CSV è una tabella piatta, non un formato per strutture molecolari. L'esportazione può conservare la struttura in una colonna di testo SMILES o simile, ma i dettagli dei legami, le coordinate degli atomi e la stereochimica possono andare persi se non vengono scritti esplicitamente in campi separati.

Le proprietà SDF e i tag SD vengono mantenuti nel CSV?

Di solito ogni proprietà SDF viene esportata come colonna CSV, ma i record con tag diversi possono generare celle vuote o colonne non uniformi. I valori su più righe, le virgole e le virgolette devono essere preceduti correttamente da caratteri di escape, altrimenti le righe risultanti potrebbero essere suddivise in modo errato.

Perché alcune molecole SDF mancano o sono suddivise su più righe CSV?

Succede spesso quando un record SDF è malformato, contiene separatori imprevisti o ha testo di proprietà su più righe che non viene gestito come un unico campo. Anche una riga vuota o un terminatore di record nella parte sbagliata del file può far interpretare a un convertitore una molecola come più record.

Posso riconvertire il CSV nell'SDF originale?

Solo parzialmente, a meno che il CSV non contenga informazioni chimiche sufficienti, come una stringa di struttura completa e le proprietà necessarie. Un CSV contenente solo nomi, formule o tag selezionati non può ricreare in modo affidabile i legami, le coordinate, la stereochimica e la formattazione originali.

Già scaricato

Questo file è già stato scaricato. Per tutelare la tua privacy lo abbiamo eliminato dal nostro server subito dopo il download, quindi non può essere scaricato di nuovo. Se ti serve ancora, converti di nuovo il file.