SDF/MOL¶
| Item | Value |
|---|---|
| Format ID | sdf |
| Extensions | .sdf, .sd, .mol |
| Read | Yes |
| Write | Yes |
| Registry role | Reader, file writer, frame writer |
| Data level | Coordinates on read; graph required on write |
SDF/MOL structure IO backed by RDKit graph extraction and strict graph writer semantics.
Python
from molop import AutoParser
frame = AutoParser("molecule.sdf")[0][0]
print(frame.rdmol.GetNumAtoms(), frame.rdmol.GetNumBonds())
Output
Output is atom and bond counts, for example 3 2 for water.
Arbitrary SD data fields are not guaranteed to round-trip.
| Feature | Support | Scope | Limits |
|---|---|---|---|
| Reader | Supported | SDF/MOL blocks parsed into atom, coordinate, bond, formal charge, radical, total charge, and multiplicity fields. | Arbitrary SD data-field round-trip is not advertised by the tested contract. |
| Writer graph policy | Supported | SDF file/frame writer requires graph-capable input, defaults to strict graph semantics, and supports RDKit/OpenBabel rendering engines. | Coords-only override is rejected when no coords-only SDF writer exists. |
| Registry conversion | Supported | Parsed structures can be converted to SDF through the codec registry. | Conversion quality depends on recovered or transformed graph data. |