rdkit 修改分子

本文介绍了如何利用RDKit库在Python中对分子进行操作,包括添加和删除氢原子。详细解析了AddHs和RemoveHs函数的使用,并探讨了处理芳香键类型转换的问题,强调了在3D构象优化时使用显式H原子的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引入所需库

#! /usr/bin/python
# coding: utf-8
# rdkit 修改分子

from rdkit import Chem
from rdkit.Chem import Draw

二、增删H原子

mol = Chem.MolFromSmiles('OC1C2C1CC2')
# 画分子结构
Draw.MolToImageFile(
    mol,
    '/Users/zeoy/st/drug_development/st_rdcit/img/mol5.jpg'
)

分子结构图:
分子结构图

2.1 增加H原子函数解析

将氢添加到分子图上

rdkit.Chem.rdmolops.AddHs(
    (Mol)mol   # 要修饰的分子
    [,(bool) explicitOnly = False # (可选)如果设置了此切换,则仅将显式Hs添加到分子中。默认值为0(添加隐式和显式Hs)。
    [,(bool) addCoords = False # (可选) 如果设置了此开关,则Hs将设置3D坐标。默认值为0(无3D坐标)。
    [,(AtomPairsParameters) onlyOnAtoms = 
### 使用 RDKit 生成分子指纹的 Python 示例 为了使用 RDKit 生成分子指纹,可以采用如下方法: ```python from rdkit import Chem from rdkit.Chem import AllChem # 创建一个分子对象 mol = Chem.MolFromSmiles('c1ccccc1') # 计算 Morgan 圆形指纹 (ECFP),半径为2,默认长度为2048位 fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius=2, nBits=2048) # 将指纹转换成二进制字符串表示形式 binary_fp = fp.ToBinary() print(f"Morgan Fingerprint Binary Representation:\n{binary_fp}") ``` 上述代码展示了如何利用 `AllChem.GetMorganFingerprintAsBitVect` 函数来计算 Morgan 类型的圆形指纹(也称为 ECFP),其中指定了指纹向量的长度以及圆周环境的半径大小[^2]。 对于不同的应用场景,还可以调整参数以适应特定需求。比如改变 `radius` 参数可控制指纹描述符的空间范围;而修改 `nBits` 则能影响最终得到的比特向量维度。 除了 Morgan 指纹之外,RDKit 还支持多种其他类型的分子指纹算法,例如 MACCS 密钥、拓扑结构指纹等。这些都可以通过相应的 API 接口方便地调用实现。 #### 关于指纹相似度比较 当拥有两个或多个分子指纹之后,可以通过计算它们之间的相似性来进行定量分析。这里给出一段基于 Tanimoto 系数衡量两份指纹间距离的例子: ```python from rdkit.DataStructs.cDataStructs import TanimotoSimilarity similarity = TanimotoSimilarity(fp1, fp2) print(f"Tanimoto Similarity between fingerprints is {similarity:.3f}.") ``` 此部分操作有助于评估化合物间的结构性质差异程度,在药物研发等领域具有重要意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值