SDF(Structure-Data File,扩展名常用 .sdf)是在 Molfile(MDL MOL)连接表基础上扩展出的格式:每条分子记录可在 M END 之后附加任意多行键–值式数据,并用 $$$$ 作为记录结束符;同一文件内可串联多条分子。高通量化合物库、虚拟筛选命中表、酶学 IC50/Ki 与结构一并存档时极其常见。底层「坐标 + 拓扑」仍是一段 Molfile CTAB,详见 fileformat-molfile.md;需要原子类型分段表达时另见 fileformat-mol2.md。
段末注释:IC50 为半数抑制浓度;Ki 为抑制常数。
插图约定:示意图见 ./fileformat-sdf/文件名.png。
1. SDF 记录如何拼接
典型结构为:
- 一段完整 Molfile(至
M END); - 可选:若干
> <字段名>下一行写字段内容(实现细节依导出软件); - 一行
$$$$:本条分子记录结束; - 可紧接下一条 Molfile,重复以上。

2. 酶改造与注释场景
- 批量抑制剂/底物类似物:每条对应一个化合物 ID + Ki、筛选批次等,便于与突变体酶活性表 join。
- 立体化学:相对 SMILES,三维 SDF 常更适合保留导出时的构象与手性展示(仍以具体流水线为准)。
- 对接:常见组合为「受体 PDB/mmCIF + 配体 SDF」批量对接。
3. 极简虚构示例(概念)
1 | (此处为一个完整 Molfile 块 … 至 M END) |
具体 > < 语法与是否允许多行数值以实现为准。
4. 解析工具
RDKit 对 SDF 多记录遍历支持成熟;Open Babel 亦可互转 Molfile/MOL2/PDB 等。
5. 小结 Checklist
- SDF = Molfile + 可选数据块 +
$$$$;一条记录至少含一个 Mol 块。 - 单分子、无附加字段时,用裸
.mol即可(见fileformat-molfile.md)。 - 需要 sybyl 类型/电荷列 时考虑 MOL2(
fileformat-mol2.md)。
参考与延伸阅读
- BIOVIA CTfile/SDF 相关说明
- RDKit(
SDMolSupplier等) - Open Babel