RDKit是面向化学信息学的工具包,提供Python API,用于分子结构读写、描述符计算、指纹与相似性、子结构检索、化学反应、2D/3D坐标生成以及分子可视化,主要服务于药物发现、计算化学和化学信息学研究。
主要能力:分子I/O可从SMILES、MOL文件、MOL block、InChI等格式读取和写出,批量处理支持SDMolSupplier、SmilesMolSupplier、ForwardSDMolSupplier、MultithreadedSDMolSupplier和SDWriter。分子解析时自动执行价态校验、芳香性感知和手性指派等清理步骤,也可通过sanitize=False关闭并手动调用Chem.SanitizeMol。属性与描述符包括分子量、精确分子量、LogP、TPSA、氢键供体/受体数、可旋转键数、芳香环数,可用CalcMolDescriptors一次性计算全部描述符,并据此检查Lipinski五规则。指纹与相似性支持RDKFingerprint、Morgan指纹(类似ECFP)、MACCS键、原子对和拓扑扭转指纹,可用Tanimoto、Dice、Cosine度量相似度,并支持Butina聚类。子结构检索使用SMARTS查询,如苯环、羧酸、酰胺、芳香氮、大环等模式,可判断是否存在匹配并获取原子索引。化学反应使用SMARTS定义反应物>>产物,RunReactants生成产物并需清理。3D与2D坐标支持Compute2DCoords、ETKDG嵌入、多构象生成、UFF/MMFF优化、构象RMSD和分子对齐。可视化支持MolToImage、MolsToGridImage、子结构高亮、rdMolDraw2D自定义绘制及Jupyter内联显示。
使用方式:通过RDKit的Python API在脚本、Jupyter Notebook或数据处理流程中调用;读取分子后先检查返回是否为None再处理;批量处理用Supplier/Writer迭代。
适用场景:药物发现中的类药性筛选、相似性搜索、子结构过滤,计算化学中的构象生成与优化,以及化学信息学数据整理和可视化。
限制:所有MolFrom*函数失败时返回None,需检查;清理异常常见于价态超限、芳香环kekulize失败、自由基未明确指定等情况;不提供官方性能、收费或平台信息,资料中未说明。