RDKit原子和键的环性质

1. 引入所需库

#! /usr/bin/python
# coding: utf-8
# rdkit 操作分子对象

from rdkit import Chem

2. test 分子

smi='[C:0]1-[C:1]-[C:2]1-[C:3](-[CH2:4])(-[CH:5])'
mol = Chem.MolFromSmiles(smi)
atoms = mol.GetAtoms()
bonds = mol.GetBonds()

3. 获取分子中所有的环信息

atom.IsInRing() #是否在环中
atom.IsInRingSize() #是否在n元环中
bond.IsInRing() #是否在环中
bond.IsInRingSize() #是否在n元环中

查看所有最小环(smallest set of smallest rings, SSSR)的信息:GetSymmSSSR()

ssr = Chem.GetSymmSSSR(mol)
num_ring = len(ssr)
print("环的个数=", num_ring)   #环的个数= 3
for ring in ssr:
    print('ring consisted of atoms id:', list(ring))

环信息
ring consisted of atoms id: [14, 13, 17, 16, 15]
ring consisted of atoms id: [19, 20, 21, 23, 24, 18]
ring consisted of atoms id: [31, 32, 33, 34, 35, 30]
————————————————
版权声明:本文为CSDN博主「qq_36801966」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36801966/article/details/106432725

获取分子环信息用到的函数

直接获取环的信息:GetRingInfo()
查看一共有几个环:NumRings()
查看id为n的原子在几个环中:NumAtomRings(n)
查看id为n的键在几个环中:NumBondRings(n)
查看id为n的原子是否在n1元环中.IsAtomInRingOfSize(n, n1)
查看id为n的键是否在n1元环中.IsBondInRingOfSize(n , n1)


ri.NumAtomRings()
ri.NumBondRings(9)
ri = mol.GetRingInfo()
print('分子中环的个数=',ri.NumRings())  # 分子中环的个数= 3
print(ri.NumAtomRings(2))  # 0
print(ri.IsAtomInRingOfSize(3,3))  # False
print(ri.IsBondInRingOfSize(2,3))  # False

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值