Convertir csv en sdf

Convertir CSV en SDF

Convertir des enregistrements CSV chimiques contenant des SMILES ou des InChI en fichiers SDF validés.

Convertir des fichiers CSV en ligne

Nous n’avons pas encore de convertisseur en ligne dédié pour CSV vers SDF, mais vous pouvez convertir des fichiers CSV en ligne vers ces formats et bien d’autres :

Comment convertir csv en fichier sdf

Les programmes de laboratoire et de cheminformatics nécessitent souvent un fichier SDF lorsqu’un tableur, un instrument ou une base de données exporte des enregistrements de composés au format CSV. La conversion ne fonctionne que lorsque le CSV contient une représentation de structure chimique, telle que SMILES ; les noms, les formules et les valeurs d’essai seuls ne peuvent pas créer la géométrie moléculaire.

Qu’est-ce que le format CSV ?

CSV est un format tabulaire en texte brut dans lequel les enregistrements sont séparés par des sauts de ligne et les champs par des virgules ou un autre délimiteur. Excel, LibreOffice Calc, les instruments de laboratoire, les systèmes de gestion des stocks, les bases de données et les scripts produisent couramment des fichiers CSV.

Un CSV chimique peut contenir des colonnes telles que ID, Name, SMILES, InChI, Formula, CAS et des propriétés mesurées. Avant de l’importer, identifiez le délimiteur, les règles de guillemetage, l’encodage des caractères, la convention décimale, les noms des en-têtes et la colonne de structure. Un CSV contenant uniquement des noms, des formules ou des numéros de registre nécessite une recherche dans une base de données chimique externe avant de pouvoir devenir un fichier de structure.

Qu’est-ce que le format SDF ?

En cheminformatics, SDF signifie Structure Data File, également appelé fichier SD. Chaque enregistrement contient un bloc de structure Molfile suivi de champs de propriétés balisés, par exemple > <ID> et > <Activity>. Les enregistrements se terminent par une ligne contenant $$$$.

SDF peut stocker la connectivité des atomes et des liaisons, les charges formelles, la stéréochimie, les coordonnées 2D ou 3D et les métadonnées du composé dans un seul fichier. Contrairement à un tableur ordinaire, il représente le graphe moléculaire requis par de nombreux éditeurs chimiques, systèmes d’enregistrement, outils de screening et programmes de modélisation. Les noms des propriétés SDF et les versions de Molfile prises en charge varient selon les applications ; il convient donc de vérifier les exigences du programme destinataire.

L’extension .sdf peut également désigner une base de données SQL Server Compact. Les procédures ci-dessous s’appliquent au format chimique Structure Data File ; un fichier SQL Server Compact nécessite un export de base de données ou une migration des données au niveau des tables.

Convertir le fichier avec DataWarrior

  1. Assurez-vous que le CSV contient une notation SMILES, InChI ou une autre notation valide prise en charge par le logiciel. Conservez les identifiants et les valeurs de propriétés sur la même ligne que leur structure.
  2. Ouvrez DataWarrior et choisissez File → Open, puis sélectionnez le CSV. Dans la boîte de dialogue d’importation, définissez le délimiteur, l’encodage du texte, le format décimal et la gestion des champs entre guillemets.
  3. Vérifiez que DataWarrior a classé la colonne de structure comme contenant des structures chimiques plutôt que comme du texte ordinaire. Examinez les entrées non valides, vides et déconnectées de manière inattendue.
  4. Choisissez File → Save Special → SD-file et sélectionnez les colonnes de structure et de métadonnées à exporter si vous y êtes invité. Enregistrez le résultat avec une extension .sdf.
  5. Rouvrez le fichier de sortie dans DataWarrior ou dans une seconde application chimique. Vérifiez plusieurs structures, les centres stéréogènes, les charges, les coordonnées et les valeurs de propriétés.

DataWarrior est une option graphique locale pratique pour les fichiers de taille modérée, car il peut interpréter les colonnes chimiques, afficher les structures et exporter des fichiers SD. Les intitulés des menus peuvent différer selon les versions.

Effectuer des conversions répétables avec Python et RDKit

RDKit convient aux conversions automatisées ou volumineuses. Cet exemple attend un fichier délimité par des virgules contenant une colonne SMILES et éventuellement une colonne ID. Toutes les autres colonnes non vides deviennent des propriétés 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()

Installez RDKit via Conda, enregistrez le code sous le nom csv_to_sdf.py, puis exécutez :

python csv_to_sdf.py input.csv output.sdf

Le script analyse la connectivité et les attributs chimiques à partir de SMILES, mais ne génère pas de coordonnées. Ajoutez la génération de coordonnées de RDKit, par exemple des coordonnées de représentation 2D, ou utilisez un éditeur chimique si l’application destinataire nécessite des coordonnées 2D ou 3D. Modifiez la configuration du lecteur lorsque la source utilise un point-virgule, une tabulation ou un autre délimiteur.

Utiliser Open Babel après un prétraitement

Open Babel convertit les formats de texte chimiques reconnus, mais ce n’est pas un importateur de tables CSV polyvalent. Extrayez d’abord la colonne de structure dans un fichier SMILES, en conservant les identifiants et les propriétés au moyen d’un script distinct ou d’un outil qui les prend en charge. Générez ensuite un SDF avec :

obabel compounds.smi -O output.sdf --gen2D

Utilisez --gen3D uniquement lorsque des conformations calculées sont acceptables ; les coordonnées générées ne sont pas des mesures expérimentales et peuvent ne pas représenter la conformation préférée.

Options en ligne pour les données publiques

Les convertisseurs de fichiers génériques en ligne renomment ou reconditionnent normalement le texte et ne peuvent pas valider SMILES, résoudre les identifiants ou préserver la stéréochimie chimique. Pour une petite liste de composés publics non confidentiels, utilisez un résolveur chimique tel que NIH Chemical Identifier Resolver ou PubChem PUG REST afin de récupérer des enregistrements SDF à partir de noms, de numéros CAS, de CID ou d’autres identifiants pris en charge. Ces services sont des interfaces de recherche plutôt que des convertisseurs CSV-vers-SDF fiables en masse ; un script est généralement nécessaire pour soumettre chaque ligne, gérer les correspondances échouées et combiner les enregistrements renvoyés. Ne téléversez pas de structures propriétaires, de données d’essai ou d’enregistrements réglementés vers un service en ligne sans autorisation.

Contrôles de qualité et de compatibilité

  • Compter les enregistrements : comparez le nombre de structures d’entrée valides au nombre d’enregistrements SDF et conservez un rapport des lignes ignorées ou non résolues.
  • Vérifier l’interprétation chimique : des SMILES mal formés, des états de valence non pris en charge, des charges manquantes, des différences de tautomérie et une stéréochimie ambiguë ou perdue peuvent modifier la molécule obtenue.
  • Vérifier les coordonnées : SMILES décrit normalement la connectivité, et non les coordonnées. Une application destinataire qui affiche ou utilise des positions 3D pour ses calculs peut nécessiter une génération de coordonnées et une optimisation par champ de force.
  • Protéger les valeurs tabulaires : les tableurs peuvent supprimer les zéros initiaux, convertir les identifiants longs en notation scientifique, modifier les dates et changer les séparateurs décimaux. Exportez un CSV UTF-8 et placez entre guillemets les champs contenant des virgules, des sauts de ligne ou des guillemets.
  • Vérifier la compatibilité des propriétés : les noms de champs SDF ne sont pas complètement standardisés. Les noms en double, la ponctuation, les espaces, la longueur des champs, les types de données et la prise en charge de la version de Molfile peuvent provoquer des échecs d’importation.
  • Valider indépendamment : ouvrez le fichier de sortie dans une seconde application chimique et examinez des sels, mélanges, isotopes, charges, centres stéréogènes représentatifs ainsi que des enregistrements contenant des propriétés longues ou multilignes.

Autres conversions de fichiers .csv

Conversion inverse

Conversion vers .sdf
depuis d'autres formats

Partager sur les réseaux sociaux :