RDKit 2025.03.1b1版本新特性解析:化学信息学工具的重大更新
RDKit项目简介
RDKit是一个开源的化学信息学工具包,广泛应用于药物发现、材料科学和化学信息学领域。它提供了丰富的功能来处理分子结构、化学反应、分子描述符计算和分子可视化等任务。作为化学信息学领域的标杆工具,RDKit持续推出新版本以满足科研和工业界的需求。
2025.03.1b1版本核心更新
1. 合成子空间搜索功能
本次更新的最显著特点是引入了实验性的合成子空间搜索功能。这项创新技术允许用户在大型组合化学空间中进行基于合成子的子结构搜索和相似性搜索(包括基于指纹和RASCAL算法的搜索)。虽然API和结果在后续版本中可能还会调整,但这已经为药物发现中的虚拟化合物库筛选提供了强大工具。
2. 分子相互作用场(MIF)支持
新增的分子相互作用场功能为分子对接和药效团建模提供了基础支持。MIF能够描述分子表面各种相互作用(如疏水、静电等)的分布情况,对于理解分子间识别机制具有重要意义。
3. 性能优化
开发团队对多个核心算法进行了性能优化:
- CIP标记算法获得了2倍的性能提升
- Morgan指纹计算效率显著提高
- Butina聚类算法优化后处理大规模数据集更加高效
- 构象生成过程现在支持超时控制和Ctrl-C中断
重要功能增强
化学信息处理方面
- 增强立体化学处理:改进了从反应产物模板到产物的增强立体化学基团传递
- 改进SMILES/SMARTS处理:优化了SP/TB/OH基团的排序处理
- 新增NumAmideBonds描述符:填补了原有描述符体系的空白
- 扩展MinimalLib功能:新增了分子压缩(molzip)、属性标志(propertyFlags)等功能的支持
可视化方面
- 独立控制原子和键注释颜色:通过新增的atomNoteColour和bondNoteColour选项实现
- 反应绘图增强:支持CX扩展写入、反应物索引跟踪和绘图布局优化
- 3D分子可视化:新增drawMols3D()函数,增强IPython控制台支持
兼容性变更说明
向后不兼容变更
- 组合顺序变化:Chem.Pharm2D.Utils.GetUniqueCombinations现在返回数值顺序的组合
- 错误处理强化:MaeWriter类在写入空分子或出错时将抛出异常而非静默失败
- 查询属性调整:AdjustQueryProperties不再忽略makeAtomsGeneric启用时的额外原子调整
- 原子属性处理:未关联分子的原子相关函数(getImplicitValence等)现在返回0而非抛出异常
- JSON解析器重构:SMILES和RGroupDecomp JSON解析器移至独立单元,需要相应头文件
已移除功能
- AtomPairs.Utils.NumPiElectrons:改用Chem.GetNumPiElectrons
- 部分力场贡献类:使用复数形式的替代类(如DistViolationContribs)
- MMFF::setMMFFAromaticity:改用MolOps::setMMFFAromaticity
关键问题修复
- 内存安全问题:修复了多个内存泄漏和越界访问问题,特别是在InChI转换和分子处理过程中
- 立体化学处理:修正了芳香性阻转异构体的CIP值计算错误
- 构象生成:解决了RMS裁剪中遗漏超过阈值构象的问题
- SMARTS模式:修正了O-苄基脱保护反应中的错误模式
- 分子操作:修复了线性分子加氢时零长度向量归一化错误
开发者工具改进
- 构建系统:更新了Python开发模块检测和PostgreSQL 16+的macOS支持
- 代码现代化:用智能指针替代原始指针,移除废弃宏和死代码
- 枚举处理:用Better Enums替代旧的枚举反射宏
- 错误处理:强化了零除保护和异常抛出机制
- 测试覆盖:新增和修复了多项功能测试
文档完善
- 新增贡献指南章节,包括KNIME集成说明
- 扩展了Chem和AllChem模块的API文档
- 添加了本地构建文档的详细说明
- 完善了SMARTS中氢原子处理的文档
- 更新了InChI相关链接和说明
总结
RDKit 2025.03.1b1版本在化学信息处理的深度和广度上都有显著提升,特别是合成子空间搜索和分子相互作用场等新功能为药物发现研究提供了新的工具。性能优化使大规模分子处理更加高效,而众多问题修复则提高了工具的稳定性和可靠性。虽然部分变更需要用户调整现有代码,但这些改进为RDKit的长期发展奠定了更坚实的基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



