datamol
基于RDKit的Pythonic封装,提供简化接口与合理默认配置。专为标准药物发现流程优化,涵盖SMILES解析、结构标准化、分子描述符计算、指纹生成、聚类分析、3D构象生成及并行处理。始终返回原生rdkit.Chem.Mol对象。如需高级控制或自定义参数,请直接调用RDKit底层接口。
分类
开发工具安装
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
Datamol - 分子化学信息学处理技能
技能概述
Datamol 是一个专为药物发现和化学信息学设计的 Python 工具,提供简化的 RDKit 接口,让分子数据处理变得更加简单高效。它能读取化学结构文件、计算分子描述符、生成化学指纹、进行分子聚类和 3D 构象分析,支持并行处理和云存储,是计算化学和药物研发的理想选择。
适用场景
虚拟筛选和化合物库筛选
适用于药物发现初筛阶段,快速筛选大规模化合物库。可以读取 SDF、SMILES 等格式的化学文件,批量计算分子指纹和描述符,根据 Lipinski 规则筛选类药性化合物,或基于相似性搜索找到与先导化合物相似的结构。
SAR 分析和可视化
适合药物化学研究人员分析结构-活性关系。通过提取 Murcko 支架、对相似分子进行聚类和对齐可视化,帮助识别活性关键的官能团和取代基,优化先导化合物。
机器学习特征工程
为 AI 辅助药物设计生成分子特征。可以批量计算数百种分子描述符或 ECFP 指纹作为机器学习模型的输入,用于预测活性、毒性或 ADMET 性质。
核心功能
分子文件读写与格式转换
支持 SDF、SMILES、CSV、Excel 等多种化学文件的读写,可直接读取云存储(如 S3)中的数据。能够自动解析和标准化分子结构,转换为 SMILES、InChI、SELFIES 等多种格式,处理外部数据更便捷。
分子描述符和指纹计算
一键计算分子量、LogP、氢键供体/受体数量、TPSA、芳香环数量等关键描述符,支持并行处理大规模化合物库。生成 ECFP、MACCS 等分子指纹,用于相似性搜索和机器学习。
分子聚类和多样性选择
使用 Butina 聚类算法对化合物按结构相似性分组,或进行多样性采样选择代表性分子。支持基于支架的拆分,确保训练集和测试集的支架不重叠,提高机器学习模型的泛化能力。
常见问题
Datamol 和 RDKit 有什么区别?应该选哪个?
Datamol 是 RDKit 的 Python 封装,提供了更简洁易用的 API 和合理默认参数。它返回的是原生 RDKit 分子对象,完全兼容 RDKit 生态,但操作更简洁。如果你需要处理分子数据、做批量计算和可视化,Datamol 更高效。如果需要高级定制或调用 RDKit 底层 C++ 功能,可直接使用 RDKit。
如何用 Datamol 读取和处理 SDF 文件?
使用 dm.read_sdf("compounds.sdf") 即可将 SDF 文件读取为包含分子对象的 DataFrame。处理时建议先用 dm.standardize_mol() 标准化结构,过滤掉解析失败的分子,然后用 dm.descriptors.batch_compute_many_descriptors() 批量计算性质。
Datamol 能处理多大规模的化合物库?
Datamol 支持并行处理(n_jobs=-1),可高效处理数千到数万分子的数据集。但对于超过 10,000 个分子的聚类分析,建议使用多样性选择而非全量聚类。计算指纹和描述符可以轻松处理百万级分子,并支持进度条显示。