用途:RDKit 是化学信息学库,提供 Python API 进行分子分析与操作,面向药物发现、计算化学和化学信息学研究。
主要能力:支持从 SMILES、MOL 文件、MOL 块、InChI 读取分子,并输出规范 SMILES、MOL 块、InChI;可用 Supplier/Writer 批量处理 SDF、SMILES 及压缩文件,支持多线程读取。解析时自动执行价键检查、芳香性感知等 sanitization,失败返回 None。可计算分子量、ExactMolWt、LogP、TPSA、氢键供受体数、可旋转键、芳香环数等描述符,并支持 Lipinski 五规则判断。提供 RDKit、Morgan(类 ECFP)、MACCS、原子对、拓扑扭转等指纹,以及 Tanimoto、Dice、Cosine 相似性和 Butina 聚类。支持 SMARTS 子结构匹配与常见模式检索。可定义反应 SMARTS 并运行反应,生成反应指纹。支持 2D 坐标、ETKDG 3D 构象生成、UFF/MMFF 优化、RMSD 与分子对齐。可视化支持单分子、网格图、子结构高亮、自定义绘图选项及 Jupyter 内联显示。还支持加/删氢、Kekulize、子结构替换、去电荷、分子哈希、随机 SMILES、药效团特征提取。
使用方式:通过 pip 或 conda 安装 RDKit 后,在 Python 中导入 rdkit.Chem 等模块调用。常用入口包括 Chem.MolFromSmiles、Chem.SDMolSupplier、Descriptors.CalcMolDescriptors、AllChem.GetMorganFingerprintAsBitVect、DataStructs.TanimotoSimilarity、AllChem.EmbedMolecule、Draw.MolToImage 等。
适用场景:药物相似性筛选、相似性搜索、子结构过滤、分子聚类、构象分析与分子图像生成。
限制:MolFrom* 失败时返回 None,需先判空;sanitization 可能因价键或芳香环问题报错;部分功能依赖可选组件(如 Avalon);资料未提供具体安装命令、版本、收费与平台信息。