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 :
Vous voulez convertir SDF en CSV ?
Dites-le-nous. Nous choisissons les prochaines conversions à ajouter selon l'intérêt.
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.
Les informations sur les extensions et les types de fichiers sont fournies par File-Extensions.org
Logiciel suggéré pour convertir sdf en csv
Questions fréquentes
La conversion de SDF en CSV conserve-t-elle la structure chimique ?
Pas à elle seule, car CSV est un tableau plat et non un format de structure moléculaire. L’exportation peut conserver la structure dans une colonne de texte au format SMILES ou similaire, mais les détails des liaisons, les coordonnées des atomes et la stéréochimie peuvent être perdus s’ils ne sont pas écrits explicitement dans des champs distincts.
Les propriétés SDF et les balises SD sont-elles conservées dans CSV ?
Généralement, chaque propriété SDF est exportée dans une colonne CSV, mais les enregistrements contenant des balises différentes peuvent produire des cellules vides ou des colonnes incohérentes. Les valeurs multilignes, les virgules et les guillemets doivent être correctement échappés, sinon les lignes obtenues risquent d’être séparées incorrectement.
Pourquoi certaines molécules SDF manquent-elles ou sont-elles réparties sur plusieurs lignes CSV ?
Cela se produit généralement lorsqu’un enregistrement SDF est mal formé, contient des séparateurs inattendus ou comporte un texte de propriété multiligne qui n’est pas traité comme un seul champ. Une ligne vide ou un terminateur d’enregistrement placé dans la mauvaise partie du fichier peut également amener un convertisseur à interpréter une molécule comme plusieurs enregistrements.
Puis-je reconvertir le CSV en SDF d’origine ?
Seulement en partie, sauf si le CSV contient suffisamment d’informations chimiques, comme une chaîne de structure complète et les propriétés nécessaires. Un CSV contenant uniquement des noms, des formules ou certaines balises sélectionnées ne peut pas recréer de manière fiable les liaisons, les coordonnées, la stéréochimie et le formatage d’origine.
Autres conversions de fichiers .sdf
Conversion inverse
Conversion vers .csv
depuis d'autres formats
- arff en csv
- docx en csv
- xlt en csv
- ods en csv
- tsv en csv
- sor en csv
- txt en csv
- doc en csv
- xlsx en csv
- xls en csv
- 123 en csv
- bgl en csv
- colpkg en csv
- cwk en csv
- dif en csv
- ecsv en csv
- excel en csv
- gsheet en csv
- gtable en csv
- html en csv
- iwa en csv
- jrprint en csv
- lvm en csv
- numbers en csv
- odt en csv
- ott en csv
- oxps en csv
- pdf en csv
- pmd en csv
- prnx en csv
- rpt en csv
- rtf en csv
- skv en csv
- slk en csv
- sxc 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
- xltm en csv
- xltx en csv