

需要加入以下项目:bohrium.dp.tech/projects/share/455831
镜像:自定义镜像->leiz-dlut:chem
这段代码展示了使用 RDKit(一个用于化学信息学和分子建模的开源工具包)进行分子操作的常见功能,包括 SMILES 正则化、指纹计算、相似性分析、结构读写、结构信息提取、子结构搜索、子结构操作和分子性质计算。
安装RDKit(注释掉了)
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: rdkit in /opt/mamba/lib/python3.10/site-packages (2024.9.6) Requirement already satisfied: numpy in /opt/mamba/lib/python3.10/site-packages (from rdkit) (1.24.2) Requirement already satisfied: Pillow in /opt/mamba/lib/python3.10/site-packages (from rdkit) (10.4.0) WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
1. 对分子SMILES正则化
功能:将分子结构转换为规范的SMILES字符串
输出SMILES:MolToSmiles(mol, isomericSmiles, kekuleSmiles, canonical, ...)
- kekuleSmiles:默认False,不使用kekule时:脂肪族碳用"C"表示,芳香族用"c"表示
- isomericSmiles:默认True,区分同分异构体("@"表示手性,""和"/"表示顺反异构)
- canonical:默认True,输出正则化SMILES
OCc1ccccc1
2. 计算分子指纹
分子指纹用于将分子结构转换为数值向量,便于后续的相似性计算或机器学习建模。
(1)RDKit (Topological) Fingerprints
特点:基于分子的拓扑结构(原子类型、键类型、环等)生成二进制指纹。
[<rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d2f8cac0>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d2f8cb30>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d2f8cba0>]
(2)MACCS Fingerprints
特点:预定义的 166 个特征,用于标记特定子结构的存在(如苯环、羟基等)。
[<rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d2f8f840>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d0033370>, <rdkit.DataStructs.cDataStructs.ExplicitBitVect object at 0x7f50d0031700>]
(3) Morgan Fingerprints
特点:基于原子周围的局部结构(半径控制范围),常用于分子相似性分析。
<rdkit.DataStructs.cDataStructs.UIntSparseIntVect object at 0x7f50d0031850> [12:56:16] DEPRECATION WARNING: please use MorganGenerator
3. 计算分子相似性
使用 谷本系数(Tanimoto Similarity)衡量两个指纹的相似性(范围0-1,1表示完全相同)。
谷本相似度(参考https://blog.csdn.net/weixin_52812620/article/details/126692248)
0.6 0.4 0.25
可视化两个分子中对相似性贡献最大的子结构(颜色越深表示贡献越大)。
[12:56:16] DEPRECATION WARNING: please use MorganGenerator [12:56:16] DEPRECATION WARNING: please use MorganGenerator
4. 分子的读写操作及绘制
CC(=O)Oc1ccccc1C(=O)O
InChI=1S/C22H29FN3O9P/c1-13(2)33-19(29)14(3)25-36(31,35-15-8-6-5-7-9-15)32-12-16-18(28)22(4,23)20(34-16)26-11-10-17(27)24-21(26)30/h5-11,13-14,16,18,20,28H,12H2,1-4H3,(H,25,31)(H,24,27,30) [12:56:16] WARNING: Omitted undefined stereo
5. 获得分子结构信息
功能:遍历分子中的原子和键,获取基本结构信息(用于结构分析或自定义算法)。
6. 子结构搜索
7. 子结构操作
删除子结构
替换子结构
8. 计算分子性质
常用描述符:用于 ADMET 预测、QSAR 建模等,帮助理解分子的物理化学性质。
总结
这段代码涵盖了 RDKit 的核心功能,从分子表示(SMILES/InChI)到结构分析(指纹、子结构搜索)、性质计算,适用于化学信息学中的基础任务(如分子相似性筛选、结构修饰、性质预测)。RDKit 的灵活性和丰富的 API 使其成为计算化学和药物发现的重要工具。

