Convertir CSV a SDF
Convierta registros químicos CSV con SMILES o InChI en archivos SDF validados.
Convierte archivos CSV en línea
Todavía no tenemos un conversor en línea específico para CSV a SDF, pero puedes convertir archivos CSV en línea a estos y otros formatos:
Cómo convertir un archivo csv a sdf
- Bases de datos
- Aún sin calificaciones.
Los programas de laboratorio y de quimioinformática suelen requerir un archivo SDF cuando una hoja de cálculo, un instrumento o una base de datos exporta registros de compuestos como CSV. La conversión solo funciona cuando el CSV contiene una representación de la estructura química, como SMILES; los nombres, las fórmulas y los valores de ensayo por sí solos no pueden crear la geometría molecular.
Qué es el formato CSV
CSV es un formato tabular de texto sin formato en el que los registros están separados por saltos de línea y los campos están separados por comas u otro delimitador. Excel, LibreOffice Calc, los instrumentos de laboratorio, los sistemas de inventario, las bases de datos y los scripts suelen producir archivos CSV.
Un CSV químico puede contener columnas como ID, Name, SMILES, InChI, Formula, CAS y propiedades medidas. Antes de importarlo, identifique el delimitador, las reglas de entrecomillado, la codificación de caracteres, la convención decimal, los nombres de los encabezados y la columna de estructura. Un CSV que solo contiene nombres, fórmulas o números de registro requiere una consulta a una base de datos química externa antes de poder convertirse en un archivo de estructura.
Qué es el formato SDF
En quimioinformática, SDF significa Structure Data File, también llamado archivo SD. Cada registro contiene un bloque de estructura Molfile seguido de campos de propiedades etiquetados, por ejemplo > <ID> y > <Activity>. Los registros terminan con una línea que contiene $$$$.
SDF puede almacenar la conectividad de átomos y enlaces, cargas formales, estereoquímica, coordenadas 2D o 3D y metadatos del compuesto en un solo archivo. A diferencia de una hoja de cálculo normal, representa el grafo molecular requerido por muchos editores químicos, sistemas de registro, herramientas de cribado y programas de modelado. Los nombres de las propiedades de SDF y las versiones de Molfile compatibles varían según la aplicación, por lo que deben comprobarse los requisitos del programa receptor.
La extensión .sdf también puede hacer referencia a una base de datos SQL Server Compact. Los procedimientos siguientes se aplican al formato químico Structure Data File; un archivo de SQL Server Compact requiere una exportación de base de datos o una migración de datos a nivel de tabla.
Convertir el archivo con DataWarrior
- Asegúrese de que el CSV contiene una columna
SMILES,InChIu otra notación válida compatible con el software. Mantenga los identificadores y los valores de las propiedades en la misma fila que su estructura. - Abra DataWarrior y seleccione File → Open; después, seleccione el CSV. En el diálogo de importación, configure el delimitador, la codificación del texto, el formato decimal y el tratamiento de los campos entrecomillados.
- Verifique que DataWarrior haya clasificado la columna de estructura como estructuras químicas y no como texto ordinario. Examine las entradas no válidas, vacías y desconectadas inesperadamente.
- Seleccione File → Save Special → SD-file y elija las columnas de estructura y metadatos que desea exportar si se le solicita. Guarde el resultado con una extensión
.sdf. - Vuelva a abrir el resultado en DataWarrior o en una segunda aplicación química. Compruebe varias estructuras, centros estereogénicos, cargas, coordenadas y valores de propiedades.
DataWarrior es una opción gráfica local práctica para archivos de tamaño moderado, ya que puede interpretar columnas químicas, mostrar estructuras y exportar archivos SD. Las etiquetas de los menús pueden variar según la versión.
Convertir de forma repetible con Python y RDKit
RDKit es adecuado para conversiones automatizadas o de gran tamaño. Este ejemplo espera un archivo delimitado por comas con una columna SMILES y, opcionalmente, una columna ID. Todas las demás columnas no vacías se convierten en propiedades de 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()
Instale RDKit mediante Conda, guarde el código como csv_to_sdf.py y ejecute:
python csv_to_sdf.py input.csv output.sdf
El script analiza la conectividad y los atributos químicos de SMILES, pero no genera coordenadas. Añada la generación de coordenadas de RDKit, como coordenadas de representación 2D, o utilice un editor químico si la aplicación de destino requiere coordenadas 2D o 3D. Cambie la configuración del lector cuando el origen utilice un punto y coma, una tabulación u otro delimitador.
Usar Open Babel después del preprocesamiento
Open Babel convierte formatos de texto químicos reconocidos, pero no es un importador de tablas CSV de propósito general. Primero extraiga la columna de estructura a un archivo SMILES, conservando los identificadores y las propiedades mediante un script independiente o una herramienta que los admita. Después, genere un SDF con:
obabel compounds.smi -O output.sdf --gen2D
Use --gen3D solo cuando las conformaciones calculadas sean aceptables; las coordenadas generadas no son mediciones experimentales y pueden no representar la conformación preferida.
Opciones en línea para datos públicos
Los convertidores genéricos de archivos en línea normalmente cambian el nombre o vuelven a empaquetar el texto, pero no pueden validar SMILES, resolver identificadores ni conservar la estereoquímica química. Para una lista pequeña de compuestos públicos no confidenciales, utilice un resolvedor químico como NIH Chemical Identifier Resolver o PubChem PUG REST para recuperar registros SDF a partir de nombres, números CAS, CID u otros identificadores compatibles. Estos servicios son interfaces de consulta, no convertidores masivos de CSV a SDF fiables; normalmente se necesita un script para enviar cada fila, gestionar las coincidencias fallidas y combinar los registros devueltos. No cargue estructuras propietarias, datos de ensayos ni registros regulados en un servicio en línea sin autorización.
Comprobaciones de calidad y compatibilidad
- Contar los registros: compare el número de estructuras de entrada válidas con el número de registros SDF y conserve un informe de las filas omitidas o no resueltas.
- Comprobar la interpretación química: los SMILES mal formados, los estados de valencia no compatibles, las cargas faltantes, las diferencias de tautómeros y la estereoquímica ambigua o perdida pueden cambiar la molécula resultante.
- Comprobar las coordenadas: SMILES normalmente describe la conectividad, no las coordenadas. Un destino que muestra o calcula con posiciones 3D puede requerir la generación de coordenadas y la optimización mediante un campo de fuerza.
- Proteger los valores tabulares: las hojas de cálculo pueden eliminar ceros iniciales, convertir identificadores largos a notación científica, modificar fechas y cambiar los separadores decimales. Exporte un CSV UTF-8 y entrecomille los campos que contengan comas, saltos de línea o comillas.
- Comprobar la compatibilidad de las propiedades: los nombres de los campos SDF no están completamente estandarizados. Los nombres duplicados, la puntuación, los espacios, la longitud de los campos, los tipos de datos y la compatibilidad con la versión de Molfile pueden provocar fallos de importación.
- Validar de forma independiente: abra el resultado en una segunda aplicación química e inspeccione sales, mezclas, isótopos, cargas, centros estereogénicos y registros representativos que contengan propiedades largas o multilínea.