日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RDKit 记录

發布時間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDKit 记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RDKit Learning

1.SMILES和MOL之間的轉換常用函數:

  • MolFromSmiles(Smiles, (bool)sanitize=True , (dict)replacements={} ) -> None
    sanitize為TRUE執行合格性檢查,replacements為替換的字符串的dict

  • MolToSmiles(
    (Mol)mol ,
    (bool)isomericSmiles=True ,
    (bool)kekuleSmiles=False ,
    (int)rootedAtAtom=-1,
    (bool)canonical=True,
    (bool)allBondsExplicit=False,
    (bool)allHsExplicit=False ,
    (bool)doRandom=False) -> str

    isomericSmiles:包括SMILES的立體化學信息
    kekuleSmiles:使用kekule形式
    rootedAtAtom: 為非負時,設定原子開始的根節點
    canonical: 規范化分子
    allBondsExplicit:所有的鍵序將在輸出的SMILES中明確表示
    allHsExplicit:所有的H計數都將在輸出的smile中顯式顯示

2.原子操作

對原子進行遍歷:GetAtoms()
通過索引獲取原子:GetAtomWithIdx()
獲取原子索引:GetIdx()
獲取原子序號:GetAtomicNum()
獲取原子符號:GetSymbol()
獲取原子連接數(受H是否隱藏影響):GetDegree()
獲取原子總連接數(與H是否隱藏無關):GetTotalDegree()
獲取原子形式電荷:GetFormalCharge()
獲取原子雜化方式:GetHybridization()
獲取原子顯式化合價:GetExplicitValence()
獲取原子隱式化合價:GetImplicitValence()
獲取原子總的化合價:GetTotalValence()
獲取相連的原子:GetNeighbors()
顯示氫原子: AddHs() // 要生成和優化立體結構時可以將氫原子顯示出來
隱藏氫原子: RemoveHs()
上面的函數使用形式都如下:

from rdkit import Chem mol = Chem.MolFromSmiles(" ") mol.getAtoms()

對Atom對象編輯操作
修改形式電荷:atom.SetFormalCharge(int)
修改雜化方式為SP3:atom.HybridizationType(Chem.HybridizationType.SP3)
修改為芳香原子:atom.SetIsAromatic(True)
修改為同位素標記原子:atom.SetIsotope(int)
不帶隱式氫:atom.SetNoImplicit(True)
固定顯示氫:atom.SetNumExplicitHs(int)
使用形式:

mol = Chem.MolFromSmiles(" ") mol.getAtomsWithIdx(idx).SetFormalCharge(int) Chem.Sanitize(mol)

Example.為分子中每個原子加上編號

def mol_with_atomidx(mol,num=0):for atom in mol.GetAtoms():atom.SetAtomMapNum(num)return mol

當num=atom.GetIdx()時,可標記每個原子的標號(原子的序號是從0開始的,在圖中不會標出0),如下圖:

3.對化學鍵的操作

對鍵進行遍歷:GetBonds()
通過索引獲取鍵:GetBondWithIdx()
獲取鍵的索引:GetIdx()
獲取鍵的類型:GetBondType()
以數字形式顯示鍵的類型:GetBondTypeAsDouble()
是否為芳香鍵:GetIsAromatic()
是否為共軛鍵:GetIsConjugated()
是否在環中:IsInRing()
是否在n元環中:IsInRingSize(n)
獲取起始原子:GetBeginAtom()
獲取末尾原子:GetEndAtom()

對Bond對象的編輯操作:
修改鍵的顯示方式:SetBondDir(Chem.BondDir.BEGINDASH)
修改為芳香鍵:SetBondType(Chem.BondType.AROMATIC)
修改鍵芳香性的Flags:SetIsAromatic(bool)
是否共軛:SetIsConjugated(bool)

mol = Chem.MolFromSmiles(" ") for bond in mol.GetBonds():bond.GetBondType()

4.環

判斷atom對象是否在環中(最小的環):IsInRingSize()
查看所有最小環(smallest set of smallest rings, SSSR)的信息:GetSymmSSSR()
直接獲取環的信息:GetRingInfo()
查看一共有幾個環:NumRings()
查看原子在幾個環中:NumAtomRings()
查看id為n的原子是否在n1元環中:IsAtomInRingOfSize(n, n1)
查看id為n的鍵是否在n1元環中:IsAtomInRingOfSize(n , n1)

判斷是否為芳香環:

# To detect aromatic rings, I would loop over the bonds in each ring and flag the ring as aromatic if all bonds are aromatic:(來源:官方文檔) def isRingAromatic(mol, bondRing):for id in bondRing:if not mol.GetBondWithIdx(id).GetIsAromatic():return Falsereturn True ri = mol.GetRingInfo() print(isRingAromatic(m, ri.BondRings()[0]))

尋找不在環中的化學鍵:

cliques = [] for bond in mol.GetBond():a1 = bond.GetBeginAtom().Idx()a2 = bond.GetEndAtom().Idx()if not bond.IsInRing():cliques.append([a1, a2])

5.立體化學

Chem.EnumerateStereoisomers() 生成一個分子的所有可能異構體
Chem.FindMolChiralCenters() 尋找手性中心
Chem.FindPotentialStereo() 尋找可能手性中心(API都可在pycharm中看到)
SetChiralTag(Chem.ChiralType.CHI_TETRAHEDRAL_CCW) 修改手性碳 (當為CHI_TETRAHEDRAL_CCW時,為S型,CW為R型,CHI_OTHER、CHI_UNSPECIFIED不指定類型)

from rdkit.Chem.EnumerateStereoisomers import EnumerateStereoisomers,StereoEnumerationOptions from rdkit.Chem import Draw m = Chem.MolFromSmiles('BrC=CC1OC(C2)(F)C2(Cl)C1') isomers = tuple(EnumerateStereoisomers(m)) print(len(isomers)) # output: 16 Draw.MolsToGridImage(isomers)


前三個(貌似可以自動標記手性中心了)

m = Chem.MolFromSmiles('OC(N)C') m.GetAtomWithIdx(1).SetChiralTag(Chem.ChiralType.CHI_TETRAHEDRAL_CW) # 修改為R型手性碳

6.分子片段操作
(待更新)

部分摘自:
知乎專欄 https://zhuanlan.zhihu.com/p/143111689
官方cookbook https://www.rdkit.org/docs/Cookbook.html
官方文檔 http://www.rdkit.org/docs/GettingStartedInPython.html
向各位大佬學習

總結

以上是生活随笔為你收集整理的RDKit 记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成视频 | 日本体内she精高潮 男女视频在线免费观看 | 雪白的扔子视频大全在线观看 | av一级大片| 欧美一区二区三区免费看 | 性色AV无码久久一区二区三 | 麻豆传媒一区二区 | 国产精品一级片在线观看 | 91精品国产99久久久久久 | 波多野结衣一区二区三区高清av | 可以在线观看av的网站 | 激情综合五月婷婷 | 国产欧美三区 | 成年人在线免费观看 | 国产97色在线 | 国产 | 香蕉久久a毛片 | 东北少妇高潮抽搐 | 久久精品人人爽 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 欧美日韩亚洲视频 | 人妻少妇偷人精品无码 | 免费中文字幕视频 | 热久久影院 | 久久久噜噜噜 | 台湾一级视频 | 一线毛片 | 999一区二区三区 | 伊人日日夜夜 | 日韩成人免费在线视频 | 色窝| 奇米网在线观看 | 成人av中文字幕 | 黄色网址中文字幕 | 亚洲一区二区三区网站 | 久久久久xxxx | 国产黄色www | 欧美一区二区三区影视 | 小早川怜子一区二区三区 | 日韩亚洲欧美综合 | 日韩伦理一区 | 欧美区视频 | 日韩综合色 | 青娱乐最新地址 | 成年黄色片 | 主播一区二区 | 午夜777| 51妺嘿嘿午夜福利 | 久一国产 | 精品久久久在线观看 | 国产精品久久久久久在线观看 | 26uuu国产 | 91精品国产乱码久久久久久久久 | 色哟哟免费在线观看 | 国产av一区二区三区 | 韩国美女一区 | 少妇一级淫片aaaaaaa | 美妇湿透娇羞紧窄迎合 | 五月婷婷导航 | www.亚洲色图 | 国产精品久久在线 | 欧美亚洲国产另类 | 欧美精品h| 精品无码久久久久久国产 | 精品视频亚洲 | 亚洲精品一区二 | 日韩va视频 | 日韩精品av一区二区三区 | 天堂中文视频 | 天天射视频 | 日韩av免费在线看 | 免费看a级片 | 日韩欧美一级在线 | 激情五月视频 | 亚洲一区二区动漫 | 日本精品视频一区二区 | 先锋影音制服丝袜 | 91美女高潮出水 | 精品欧美一区二区久久久久 | 99热免费在线观看 | 麻豆网站在线观看 | 亚洲视频导航 | 天堂中文资源在线观看 | 天天摸天天干 | 自拍偷拍五月天 | 精品在线播放视频 | 不卡在线播放 | 亚洲巨乳av | 精品人妻伦一二三区久久 | 久久久麻豆 | 亚洲欧美bt | 国产亚洲一区二区三区在线观看 | 老湿机69福利 | 国产av电影一区 | 日日干天天操 | 秋霞三区 | 中文天堂在线视频 | 日韩av成人在线 | 国产a视频免费观看 | 中出一区二区 |