rdkit 修改分子
生活随笔
收集整理的這篇文章主要介紹了
rdkit 修改分子
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 一、引入所需庫
- 二、增刪H原子
- 2.1 增加H原子函數(shù)解析
- 2.2 增加H原子
- 2.3 刪除H原子函數(shù)解析
- 2.4 刪除H原子
- 三、芳香共軛鍵和庫里單雙鍵
- 3.1 將芳香鍵的類型修改為單雙建的類型
一、引入所需庫
#! /usr/bin/python # coding: utf-8 # rdkit 修改分子from rdkit import Chem from rdkit.Chem import Draw二、增刪H原子
mol = Chem.MolFromSmiles('OC1C2C1CC2') # 畫分子結(jié)構(gòu) Draw.MolToImageFile(mol,'/Users/zeoy/st/drug_development/st_rdcit/img/mol5.jpg' )分子結(jié)構(gòu)圖:
2.1 增加H原子函數(shù)解析
將氫添加到分子圖上
rdkit.Chem.rdmolops.AddHs((Mol)mol # 要修飾的分子[,(bool) explicitOnly = False # (可選)如果設(shè)置了此切換,則僅將顯式Hs添加到分子中。默認值為0(添加隱式和顯式Hs)。[,(bool) addCoords = False # (可選) 如果設(shè)置了此開關(guān),則Hs將設(shè)置3D坐標。默認值為0(無3D坐標)。[,(AtomPairsParameters) onlyOnAtoms = None # (可選)如果提供了此序列,則僅將這些原子視為具有添加的Hs[,(bool)addResidueInfo = False # (可選)如果為true,則將殘基信息添加到氫原子(對PDB文件有用)。]]]] )2.2 增加H原子
注:3D構(gòu)象優(yōu)化的時候,需要采用顯式H原子
mol2 = Chem.AddHs(mol) # 畫分子結(jié)構(gòu) Draw.MolToImageFile(mol2,'/Users/zeoy/st/drug_development/st_rdcit/img/mol6.jpg' ) print('mol smiles:', Chem.MolToSmiles(mol)) # mol smiles: OC1C2CCC12 print('mol2 smiles:', Chem.MolToSmiles(mol2)) # mol2 smiles: [H]OC1([H])C2([H])C([H])([H])C([H])([H])C12[H] print('num ATOMs in mol:', mol.GetNumAtoms()) # num ATOMs in mol: 6 print('num ATOMs in mol:', mol2.GetNumAtoms()) # num ATOMs in mol: 14加氫后的分子結(jié)構(gòu)圖:
2.3 刪除H原子函數(shù)解析
從分子圖中除去所有氫。
rdkit.Chem.rdmolops.RemoveHs((Mol)mol # 要修飾的分子[,(bool)implicitOnly = False # hiddenOnly :(可選)如果設(shè)置了此切換,則只會從圖中刪除隱式Hs。默認值為0(刪除隱式和顯式Hs)。[,(bool)updateExplicitCount = False #(可選)如果設(shè)置了此切換,則將更新具有Hs的原子的顯式H計數(shù)。默認值為0(不更新顯式H計數(shù))。[,(bool)sanitize = True # (可選)如果設(shè)置了此切換開關(guān),則去除Hs后將對分子進行消毒。缺省值為1(進行消毒)。] ] ])筆記:
未與重原子連接的氫將不會被去除。這樣可防止分子[H] [H]除去所有原子。
標記的氫(例如原子序數(shù)= 1,但同位素> 1的原子)將不會被去除。
兩個坐標Hs,例如C [H-] C中的中心H,將不會被刪除
連接到虛擬原子的Hs將不會被移除
屬于雙鍵立體化學(xué)定義的Hs將不會被移除
未連接到其他任何對象的HS將不會被刪除
2.4 刪除H原子
mol3 = Chem.RemoveHs(mol2) print('mol3 smiles:', Chem.MolToSmiles(mol3)) # mol3 smiles: OC1C2CCC12 print('num ATOMs in mol3:', mol3.GetNumAtoms()) # num ATOMs in mol3: 6三、芳香共軛鍵和庫里單雙鍵
RDKit 默認把芳香體系的鍵的類型識別為芳香鍵。
# 以苯為例 mol4 = Chem.MolFromSmiles('c1ccccc1') # 畫分子結(jié)構(gòu) Draw.MolToImageFile(mol4,'/Users/zeoy/st/drug_development/st_rdcit/img/mol7.jpg' )
鍵類型
3.1 將芳香鍵的類型修改為單雙建的類型
Chem.Kekulize(mol4) # 畫分子結(jié)構(gòu) Draw.MolToImageFile(mol4,'/Users/zeoy/st/drug_development/st_rdcit/img/mol8.jpg' ) for bond in mol4.GetBonds():print(bond.GetBondType())# DOUBLE # SINGLE # DOUBLE # SINGLE # DOUBLE # SINGLE# bond 1 is aromatic True print('bond 1 is aromatic', mol4.GetBondWithIdx(1).GetIsAromatic()) # atom 1 is aromatic True print('atom 1 is aromatic', mol4.GetAtomWithIdx(1).GetIsAromatic())總結(jié)
以上是生活随笔為你收集整理的rdkit 修改分子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js读取本地excel到html,JS读
- 下一篇: httpUtils 工具类