用途:datamol 是构建在 RDKit 之上的轻量 Python 化学信息学库,面向标准药物发现流程,提供更简洁的接口与合理默认值。所有分子对象均为原生 rdkit.Chem.Mol,与 RDKit 生态完全兼容。
主要能力:分子格式转换(SMILES、SELFIES、InChI);结构标准化与净化;分子描述符与指纹(默认 ECFP6,可指定 ECFP4);3D 构象生成与分析;聚类与多样性选择;骨架与片段分析;化学反应应用;可视化与对齐;并行批处理;通过 fsspec 支持云存储。
使用方式:安装 uv pip install datamol,RDKit 会自动安装;远程路径需装对应 fsspec 后端(s3fs、gcsfs)。导入约定 import datamol as dm。常用操作包括 dm.to_mol、dm.to_smiles、dm.standardize_mol、dm.read_sdf、dm.descriptors.batch_compute_many_descriptors、dm.to_fp、dm.pdist、dm.cluster_mols、dm.pick_diverse、dm.to_scaffold_murcko、dm.fragment.brics、dm.conformers.generate、dm.viz.to_image 等。多数批处理支持 n_jobs(-1 为全部核心)与 progress 参数。
适用场景:化合物库标准化与过滤、描述符计算、相似性筛选、聚类与多样性挑选、骨架分析、SAR 分析、虚拟筛选、3D 构象分析。
限制:Butina 聚类构建完整距离矩阵,适合约 1000 个分子,不适合 10000 以上;云路径仅在用户明确要求时使用,写入前需确认目标;云凭据从标准环境变量读取,datamol 不会向第三方端点收集或传输环境变量。版本说明:示例针对 datamol 0.12.x(PyPI 稳定版 0.12.5,2024 年 6 月);自 0.10.0 起模块默认惰性加载(可设 DATAMOL_DISABLE_LAZY_LOADING=1 禁用);自 0.12.2 起 RDKit 为直接 PyPI 依赖;指纹使用 RDKit 的 rdFingerprintGenerator API(0.12.5+)。