RDKit 是一个综合性化学信息学库,通过 Python API 提供分子分析与操作能力。主要能力包括:
一、分子输入输出:支持从 SMILES、MOL 文件/MOL 块、InChI 读取分子(如 Chem.MolFromSmiles、Chem.MolFromMolFile、Chem.MolFromInchi),并可写出为规范 SMILES、MOL 块或 InChI。批量处理可用 SDMolSupplier、SmilesMolSupplier、ForwardSDMolSupplier、MultithreadedSDMolSupplier 等,写出用 SDWriter。所有 MolFrom* 函数失败时返回 None,处理前需判空;导入时默认自动净化(校验价态、感知芳香性等),可用 sanitize=False 关闭并用 Chem.SanitizeMol 手动执行,Chem.DetectChemistryProblems 检测问题。
二、分子分析与性质:可遍历原子和键、查询环信息、SSSR,查找手性中心与键立体化学;计算分子量、精确分子量、LogP、TPSA、氢键供体/受体数、可旋转键数、芳香环数等描述符,可用 Descriptors.CalcMolDescriptors 一次计算全部描述符,并支持 Lipinski 五规则判断。
三、指纹与相似性:支持 RDKit 拓扑指纹、Morgan 指纹(含计数版)、MACCS keys、原子对、拓扑扭转、Avalon 等;提供 Tanimoto、Dice、Cosine 相似度及批量计算,可结合 Butina 进行聚类与多样性分析。
四、子结构检索:用 SMARTS 定义查询,通过 HasSubstructMatch、GetSubstructMatch(es) 匹配,附常见模式示例(羧酸、酰胺、芳香氮、大环等)及匹配规则说明。
五、化学反应:以反应 SMARTS(反应物>>产物)定义反应,RunReactants 生成产物,需对产物净化;支持原子映射保留、反应指纹比较。
六、坐标与可视化:Compute2DCoords 生成二维坐标,EmbedMolecule/EmbedMultipleConfs 基于 ETKDG 生成三维构象,UFF/MMFF 优化几何,计算 RMSD 与分子对齐;Draw 模块可输出单分子或多分子网格图,支持子结构高亮、自定义绘图选项和 Jupyter 内联显示,并可可视化指纹位对应片段。
七、其他:加/去氢、Kekulize、SetAromaticity、ReplaceSubstructs、Uncharger 中和电荷、MolHash 分子哈希、随机 SMILES、基于特征工厂的药效团特征提取等。
使用方式为在 Python 环境导入 rdkit 包并调用上述 API;资料未提供官方安装命令、收费模式、价格或平台支持信息,暂未提供。