Els fitxers **SDF** contenen informació estructural d’una o més molècules químiques.
- Introducció
- Tipus de fitxers: SDFs i Molfiles
- Exemple Molfile des d’NCI
- Cerca fitxers molfile i SDF.
- Exemple Molfile des d’URL
- Llegir fitxers sdf amb RDKIT
- Escriure fitxers sdf amb RDKIT
- Referències
Introducció
Els Structured Data Format, que solen tenir la extensió .sdf, són els fitxers que els programes utilitzen habitualment per processar informació estructural química. També poden incloure informació addicional, com ara espectres moleculars.
En principi, qualsevol fitxer de dades estructurals té dos components principals:
- La taula de connexions simplificada (simplified connection table)
- La informació addicional
La notació SMILES descriu la connectivitat atòmica en text, mentre que els fitxers SDF contenen informació estructural més detallada. En SMILES els hidrogens solen ser implícits (per exemple l’aigua es representa com a O en Smiles); en SDF poden ser implícits o explícits (habitualment són explícits).
Tots els fitxers de dades estructurals tenen una taula d’àtoms i una taula d’enllaços.
La taula d’àtoms inclou informació com les definicions isotòpiques i, si està disponible, les coordenades 2D o 3D de l’entorn de cada àtom. Si aquestes coordenades falten, els programes poden calcular-les mitjançant una minimització d’energia per obtenir l’estructura 3D d’un àtom aïllat.
Tipus de fitxers: SDFs i Molfiles
- Molfiles: fitxers de text que contenen informació estructural d’una sola mol·lecula. Solen tenir la extensió
.mol. - SDFs (Structure Data Files): són fitxers que combinen diversos molfiles amb informació addicional sobre els compostos. S’utilitzen molt sovint per compartir biblioteques de dades de compostos.
Què tenen en comú ?
- Tant els Molfiles com els SDFs (Structure Data Files) són fitxers de text que descriuen l’estructura química de molècules:
- àtoms, enllaços, coordenades, càrregues, etc.
- Tots dos segueixen el format desenvolupat per MDL (Molecular Design Limited), de manera que la seva estructura interna és gairebé la mateixa.
- Són formats llegibles per humans i per ordinador, i compatibles amb molts programes de química computacional (com RDKit, PyMol, Avogadro, etc.).
En resum, els Molfiles descriuen una sola molècula; els SDFs amplien aquest format per incloure moltes molècules i dades associades, mantenint la mateixa base estructural.
Exemple Molfile des d’NCI
L’NCI Chemical Resolver és un servei en línia del National Cancer Institutre que permet buscar i obtenir informació química de compostos des de diverses bases de dades obertes (per exemple Pubchem) a partir del seu nom, fórmula o identificador.
El següent text és un fitxer molfile de l’etanol obtingut del NCI Chemical Resolver.
C2H6OAPtclcactv10282509333D 0 0.00000 0.00000
9 8 0 0 0 0 0 0 0 0999 V2000 1.2854 -0.2499 -0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0072 0.5687 -0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1304 -0.3147 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 1.3175 -0.8784 0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0 1.3175 -0.8784 -0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0 2.1422 0.4239 -0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 -0.0392 1.1972 0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0 -0.0392 1.1972 -0.8900 H 0 0 0 0 0 0 0 0 0 0 0 0 -1.9857 0.1365 -0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 2 3 1 0 0 0 0 1 4 1 0 0 0 0 1 5 1 0 0 0 0 1 6 1 0 0 0 0 2 7 1 0 0 0 0 2 8 1 0 0 0 0 3 9 1 0 0 0 0M END$$$$Tots els molfiles tenen un encapçalament i una taula de connexions (CTAB) amb dos blocs principals: Atom Block i Bond Block.
- L’encapçalament té dues o tres línies: la primera indica el nom o fórmula i la segona el programa que el va generar, la data i hora, i si hi ha coordenades 2D o 3D. Opcionalment, pot tenir una linia 3 amb comentaris.
- La línia de recompte (
Count line block) mostra que l’acetona té 10 àtoms i 9 enllaços, i inclou la versió del molfile. - Després del
Bond Block, hi ha opcionalment una descripció addicional i camps opcionals que poden incloure propietats físiques, dades experimentals o anotacions de la molècula.
A l’exemple de sota, la fórmula que identifica la mol·lecula és “C2H6O”, ha estat generat per “APtclcactv10282509333D”, i el camp de comentaris està en blanc.
Veiem un altre exemple de molfile, de l’acetona, en format imatge per tenir l’esquema complet més clar:

Cerca fitxers molfile i SDF.
Pots obtenir altres compostos des de la web pública de l’NCI Chemical Resolver, amb aquestes opcions de menú:

Encara que posi sdf, com que sabem que l’acetona només consta d’una mol·lecula ens serveix com a molfile, coiniceixen.
Exemple Molfile des d’URL
També pots obtenir l’acetona amb aquesta URL, la qual cosa és encara més interessant.
Fixa’t que la notació general és
https://cactus.nci.nih.gov/chemical/structure/{NOTACIO_SMILES}/file?format=sdf
On pots reemplaçar {NOTACIO_SMILES} per la notació SMILES de la mol·lecula que vols.
TODO, provar codi Python (i uv per a requests)
import requestsurl = "https://cactus.nci.nih.gov/chemical/structure/CCO/file?format=sdf"r = requests.get(url)with open("etanol.sdf", "w") as f: f.write(r.text)Llegir fitxers sdf amb RDKIT
TODO
Escriure fitxers sdf amb RDKIT
TODO