Convertir SDF en CSV
Exporter les enregistrements SDF de substances chimiques, les tags SD et les SMILES au format CSV avec Open Babel, RDKit ou KNIME.
Créer des fichiers CSV en ligne
Nous ne savons pas encore lire les fichiers SDF, cette conversion n’est donc pas proposée. Si vous pouvez exporter votre travail dans l’un de ces formats ou d’autres, nous en ferons un CSV :
Comment convertir sdf en fichier csv
- Documents
- Notes: 5.0/5
Les bibliothèques de composés sont souvent fournies sous forme de fichiers chimiques SDF, mais Excel, les importations LIMS, les systèmes de reporting et les chargeurs de bases de données nécessitent généralement une table CSV plate. L’exportation des SD tags et d’un identifiant de structure permet à chaque composé d’occuper une ligne CSV tout en conservant les données nécessaires au filtrage ou à la mise en correspondance.
Identifier le type de fichier SDF
Cette procédure s’applique à un Structure Data File chimique, également appelé fichier SD. Il stocke une ou plusieurs tables de connectivité moléculaire (atomes et liaisons), des propriétés nommées facultatives appelées SD tags, et chaque enregistrement se termine normalement par $$$$.
ChemDraw, les logiciels BIOVIA, RDKit, Open Babel, les outils de docking, les systèmes d’enregistrement de composés et les bases de données chimiques telles que PubChem utilisent des fichiers chimiques SDF. Un fichier SDF chimique est du texte brut et peut généralement être reconnu grâce aux blocs d’atomes et de liaisons ainsi qu’aux séparateurs $$$$.
L’extension .sdf est ambiguë. Les bases de données SQL Server Compact et les fichiers de données spatiales Autodesk peuvent également l’utiliser ; ce sont des bases de données, et non des fichiers SD chimiques. Exportez une table sélectionnée depuis SQL Server Compact ou une couche spatiale sélectionnée depuis un logiciel SIG/CAO compatible, car une base de données comportant plusieurs tables ou couches ne peut pas être convertie fidèlement en un seul fichier CSV sans sélectionner ou joindre d’abord les données.
Ce que conserve le format CSV
Le format CSV stocke les valeurs tabulaires sous forme de colonnes séparées par un délimiteur. Les tableurs, R, Python pandas, les utilitaires d’importation de bases de données et de nombreux produits LIMS/de reporting peuvent le lire.
Un fichier CSV peut contenir des noms de composés, des identifiants, des SD tags, des résultats d’essais, des descripteurs calculés et une chaîne de structure telle que isomeric SMILES ou InChI. Il ne peut pas stocker nativement une table de connectivité SDF, les coordonnées moléculaires ou la disposition originale des enregistrements. Conservez le SDF original comme archive de structures et incluez les SMILES lorsque le destinataire doit reconstruire les molécules.
Convertir avec Open Babel
Open Babel est une option locale adaptée à une conversion rapide en ligne de commande. Après l’avoir installé, exécutez la commande suivante depuis le dossier contenant le fichier source :
obabel input.sdf -ocsv -O output.csv
Ouvrez le résultat et vérifiez ses en-têtes, son délimiteur et les propriétés incluses avant de l’importer ailleurs. La sortie CSV d’Open Babel et la gestion des propriétés peuvent varier selon la version ; utilisez donc RDKit lorsqu’un système récepteur exige des noms de colonnes, un ordre ou l’ensemble des SD tags précis.
Convertir avec RDKit
Installez RDKit, par exemple avec conda install -c conda-forge rdkit. Le script suivant crée une ligne par molécule valide, écrit le titre de l’enregistrement et les isomeric SMILES, puis copie chaque SD tag ordinaire.
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)
Enregistrez-le sous sdf_to_csv.py et exécutez python sdf_to_csv.py. Remplacez columns par une liste fixe si un importateur exige un schéma ou un ordre de colonnes particulier. RDKit ignore les enregistrements qu’il ne peut pas analyser ; comparez donc le nombre de lignes produites avec le nombre attendu d’enregistrements séparés par $$$$ et examinez les avertissements d’analyse.
Utiliser un workflow de bureau
KNIME Analytics Platform fournit un workflow graphique et reproductible aux utilisateurs qui ne souhaitent pas écrire de scripts. Utilisez un nœud SDF Reader, convertissez la colonne moléculaire en SMILES avec l’intégration RDKit, sélectionnez les colonnes de SD tags requises par la destination et connectez un nœud CSV Writer. Configurez le délimiteur, le caractère de guillemet et l’encodage UTF-8 dans le writer.
DataWarrior peut examiner un SDF, exposer les SD tags sous forme de colonnes, filtrer les enregistrements et calculer des descripteurs avant l’exportation. Vérifiez le délimiteur sélectionné pour l’exportation de texte et incluez une colonne SMILES plutôt que de supposer qu’une table exportée conserve les structures moléculaires.
Services en ligne et précautions liées à l’importation
Ne téléversez pas de collections de composés propriétaires, réglementées ou volumineuses vers des sites web de conversion génériques. De nombreux convertisseurs en ligne ne préservent pas les SD tags ni les structures moléculaires. PubChem PUG-REST peut renvoyer des propriétés CSV pour des PubChem CIDs publics connus, mais il ne convertit pas les fichiers SDF locaux arbitraires et ne préserve pas leurs tags d’origine.
Les champs CSV contenant des virgules, des guillemets ou des sauts de ligne doivent être placés entre guillemets ; le module csv de Python s’en charge automatiquement. Utilisez UTF-8 et importez le fichier dans Excel via Data → From Text/CSV plutôt que de l’ouvrir directement. Attribuez aux identifiants tels que 00123, aux longs numéros de registre et aux valeurs ressemblant à une notation scientifique le type Text afin d’éviter toute conversion numérique indésirable.
Les SMILES canoniques préservent généralement la connectivité moléculaire définie et la stéréochimie ordinaire, mais ils ne préservent pas les coordonnées 2D/3D, la disposition du dessin, toutes les informations améliorées des groupes stéréochimiques ni chaque caractéristique d’enregistrement spécifique au SDF. Incluez InChI ou InChIKey pour la mise en correspondance des identités lorsque cela est nécessaire, mais ne considérez pas un nom de composé comme un identifiant structurel unique.
Logiciel suggéré pour convertir sdf en csv
Autres conversions de fichiers .sdf
Conversion inverse
Conversion vers .csv
depuis d'autres formats
- excel en csv
- xlsx en csv
- txt en csv
- xls en csv
- lvm en csv
- prnx en csv
- ecsv en csv
- docx en csv
- bgl en csv
- slk en csv
- 123 en csv
- cwk en csv
- dif en csv
- doc en csv
- gsheet en csv
- gtable en csv
- html en csv
- iwa en csv
- jrprint en csv
- numbers en csv
- ods en csv
- odt en csv
- ott en csv
- oxps en csv
- pdf en csv
- pmd en csv
- rtf en csv
- skv en csv
- sxc en csv
- tsv en csv
- uos en csv
- wk1 en csv
- wk4 en csv
- wpd en csv
- wr1 en csv
- wri en csv
- xfdl en csv
- xlsb en csv
- xlsm en csv