RDKit(v2023+)提供分子结构操作、性质计算与化学信息学的 Python API,依赖 Python 3 与 NumPy,包含分子解析、描述符、指纹、子结构搜索、构象生成与反应处理等模块。
用途:分子 I/O(解析与写出 SMILES、MOL、SDF、InChI);性质计算(分子量、LogP、TPSA、氢键供体/受体数);指纹生成(Morgan/ECFP、MACCS、原子对、拓扑);相似性分析(Tanimoto、Dice、聚类);子结构检索(SMARTS 模式、官能团检测);3D 构象生成优化与对齐;化学反应定义与执行;类药性评估(Lipinski、QED);可视化(2D 描绘、高亮、网格图)。
主要模块:rdkit.Chem(核心解析、序列化、子结构)、rdkit.Chem.Descriptors(性质)、rdkit.Chem.rdFingerprintGenerator(指纹 API)、rdkit.DataStructs(相似度与批量操作)、rdkit.Chem.AllChem(3D 坐标、反应、优化)、rdkit.Chem.Draw(可视化)。
安装:conda install -c conda-forge rdkit 或 pip install rdkit-pypi。常用导入:from rdkit import Chem;from rdkit.Chem import AllChem, Descriptors, Draw;from rdkit import DataStructs。
典型用法:用 Chem.MolFromSmiles 解析并判空验证;用 Descriptors.MolWt/MolLogP/TPSA 算性质;用 rdFingerprintGenerator 生成指纹;用 DataStructs.TanimotoSimilarity 或 BulkTanimotoSimilarity 做相似度;用 Chem.MolFromSmarts 与 HasSubstructMatch 做子结构匹配;3D 前先 Chem.AddHs,再 AllChem.EmbedMolecule 与 MMFFOptimizeMolecule。大文件用 Chem.ForwardSDMolSupplier 流式处理,批量比较用 Bulk 操作。
限制:MolFromSmiles 可能返回 None,需处理无效输入;3D 几何异常多因未先加氢;指纹比较需统一 fpSize;SMARTS 需区分芳香 c 与脂肪 C;MolSupplier 对象并发访问非线程安全。除已列内容外,具体收费、价格与平台支持信息暂未提供。