Converter CSV para SDF
Converta registros químicos em CSV com SMILES ou InChI em arquivos SDF validados.
Converter ficheiros CSV online
Ainda não temos um conversor online dedicado para CSV para SDF, mas pode converter ficheiros CSV online para estes e outros formatos:
Como converter csv para sdf arquivo
- Bancos de dados
- Nenhuma avaliação ainda.
Os programas de laboratório e de quimioinformática frequentemente exigem um arquivo SDF quando uma planilha, um instrumento ou um banco de dados exporta registros de compostos como CSV. A conversão funciona somente quando o CSV contém uma representação da estrutura química, como SMILES; nomes, fórmulas e valores de ensaio, por si só, não podem criar a geometria molecular.
O que é o formato CSV
CSV é um formato tabular de texto simples no qual os registros são separados por quebras de linha e os campos são separados por vírgulas ou outro delimitador. Excel, LibreOffice Calc, instrumentos de laboratório, sistemas de inventário, bancos de dados e scripts produzem arquivos CSV com frequência.
Um CSV químico pode conter colunas como ID, Name, SMILES, InChI, Formula, CAS e propriedades medidas. Antes de importá-lo, identifique o delimitador, as regras de aspas, a codificação de caracteres, a convenção decimal, os nomes dos cabeçalhos e a coluna de estrutura. Um CSV contendo apenas nomes, fórmulas ou números de registro exige uma consulta a um banco de dados químico externo antes de poder se tornar um arquivo de estrutura.
O que é o formato SDF
Em quimioinformática, SDF significa Structure Data File, também chamado de arquivo SD. Cada registro contém um bloco de estrutura Molfile seguido por campos de propriedades identificados por etiquetas, por exemplo > <ID> e > <Activity>. Os registros terminam com uma linha contendo $$$$.
O SDF pode armazenar conectividade de átomos e ligações, cargas formais, estereoquímica, coordenadas 2D ou 3D e metadados do composto em um único arquivo. Diferentemente de uma planilha comum, ele representa o grafo molecular exigido por muitos editores químicos, sistemas de registro, ferramentas de triagem e programas de modelagem. Os nomes das propriedades SDF e as versões de Molfile compatíveis variam entre os aplicativos, portanto os requisitos do programa receptor devem ser verificados.
A extensão .sdf também pode se referir a um banco de dados SQL Server Compact. Os procedimentos abaixo se aplicam ao formato químico Structure Data File; um arquivo SQL Server Compact exige exportação do banco de dados ou migração de dados no nível das tabelas.
Converter o arquivo com DataWarrior
- Certifique-se de que o CSV contenha um
SMILES,InChIválido ou outra notação compatível com o software. Mantenha os identificadores e os valores das propriedades na mesma linha que a estrutura. - Abra o DataWarrior e escolha File → Open; em seguida, selecione o CSV. Na caixa de diálogo de importação, defina o delimitador, a codificação de texto, o formato decimal e o tratamento de campos entre aspas.
- Verifique se o DataWarrior classificou a coluna de estrutura como estruturas químicas, e não como texto comum. Examine as entradas inválidas, em branco e inesperadamente desconectadas.
- Escolha File → Save Special → SD-file e selecione as colunas de estrutura e metadados a exportar, se solicitado. Salve o resultado com uma extensão
.sdf. - Reabra a saída no DataWarrior ou em um segundo aplicativo químico. Verifique várias estruturas, centros estereogênicos, cargas, coordenadas e valores de propriedades.
O DataWarrior é uma opção gráfica local prática para arquivos de tamanho moderado, pois pode interpretar colunas químicas, exibir estruturas e exportar arquivos SD. Os rótulos dos menus podem variar entre as versões.
Converter de forma repetível com Python e RDKit
O RDKit é adequado para conversões automatizadas ou de grande escala. Este exemplo espera um arquivo delimitado por vírgulas com uma coluna SMILES e, opcionalmente, uma coluna ID. Todas as outras colunas não vazias se tornam propriedades 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 o RDKit por meio do Conda, salve o código como csv_to_sdf.py e execute:
python csv_to_sdf.py input.csv output.sdf
O script analisa a conectividade e os atributos químicos a partir de SMILES, mas não gera coordenadas. Adicione a geração de coordenadas do RDKit, como coordenadas de representação 2D, ou use um editor químico se o aplicativo de destino exigir coordenadas 2D ou 3D. Altere a configuração do leitor quando a origem usar ponto e vírgula, tabulação ou outro delimitador.
Usar o Open Babel após o pré-processamento
O Open Babel converte formatos de texto químico reconhecidos, mas não é um importador de tabelas CSV de uso geral. Primeiro extraia a coluna de estrutura para um arquivo SMILES, mantendo os identificadores e as propriedades por meio de um script separado ou de uma ferramenta que ofereça suporte a eles. Em seguida, gere um SDF com:
obabel compounds.smi -O output.sdf --gen2D
Use --gen3D somente quando conformações calculadas forem aceitáveis; as coordenadas geradas não são medições experimentais e podem não representar a conformação preferencial.
Opções online para dados públicos
Conversores genéricos de arquivos online normalmente apenas renomeiam ou reempacotam texto e não conseguem validar SMILES, resolver identificadores ou preservar a estereoquímica química. Para uma pequena lista de compostos públicos não confidenciais, use um resolvedor químico, como o NIH Chemical Identifier Resolver ou o PubChem PUG REST, para recuperar registros SDF a partir de nomes, números CAS, CIDs ou outros identificadores compatíveis. Esses serviços são interfaces de consulta, e não conversores confiáveis de CSV para SDF em massa; geralmente é necessário um script para enviar cada linha, tratar correspondências malsucedidas e combinar os registros retornados. Não envie estruturas proprietárias, dados de ensaio ou registros regulamentados para um serviço online sem aprovação.
Verificações de qualidade e compatibilidade
- Contar registros: compare o número de estruturas de entrada válidas com o número de registros SDF e mantenha um relatório das linhas ignoradas ou não resolvidas.
- Verificar a interpretação química: SMILES malformados, estados de valência incompatíveis, cargas ausentes, diferenças de tautômeros e estereoquímica ambígua ou perdida podem alterar a molécula resultante.
- Verificar coordenadas: SMILES normalmente descreve a conectividade, não as coordenadas. Um destino que exibe ou calcula com posições 3D pode exigir a geração de coordenadas e a otimização por campo de força.
- Proteger os valores tabulares: as planilhas podem remover zeros à esquerda, converter identificadores longos em notação científica, alterar datas e modificar separadores decimais. Exporte um CSV UTF-8 e coloque entre aspas os campos que contenham vírgulas, quebras de linha ou aspas.
- Verificar a compatibilidade das propriedades: os nomes dos campos SDF não são completamente padronizados. Nomes duplicados, pontuação, espaços, comprimento dos campos, tipos de dados e compatibilidade com a versão do Molfile podem causar falhas na importação.
- Validar de forma independente: abra a saída em um segundo aplicativo químico e inspecione sais, misturas, isótopos, cargas, centros estereogênicos e registros representativos contendo propriedades longas ou com várias linhas.