rdkit 修改分子

2021-10-06 17:57:37 字數 3895 閱讀 3478

三、芳香共軛鍵和庫里單雙鍵

#! /usr/bin/python

# coding: utf-8

# rdkit 修改分子

from rdkit import chem

from rdkit.chem import draw

mol = chem.molfromsmiles(

'oc1c2c1cc2'

)# 畫分子結構

)

分子結構圖:

將氫新增到分子圖上

rdkit.chem.rdmolops.addhs(

(mol)mol # 要修飾的分子[,

(bool

) explicitonly =

false

# (可選)如果設定了此切換,則僅將顯式hs新增到分子中。預設值為0(新增隱式和顯式hs)。[,

(bool

) addcoords =

false

# (可選) 如果設定了此開關,則hs將設定3d座標。預設值為0(無3d座標)。[,

(atompairsparameters) onlyonatoms =

none

# (可選)如果提供了此序列,則僅將這些原子視為具有新增的hs[,

(bool

)addresidueinfo =

false

# (可選)如果為true,則將殘基資訊新增到氫原子(對pdb檔案有用)。]]]])

注:3d構象優化的時候,需要採用顯式h原子

mol2 = chem.addhs(mol)

# 畫分子結構

加氫後的分子結構圖:

從分子圖中除去所有氫。

rdkit.chem.rdmolops.removehs(

(mol)mol # 要修飾的分子

[,(bool)implicitonly =

false

# hiddenonly :(可選)如果設定了此切換,則只會從圖中刪除隱式hs。預設值為0(刪除隱式和顯式hs)。

[,(bool)updateexplicitcount =

false

#(可選)如果設定了此切換,則將更新具有hs的原子的顯式h計數。預設值為0(不更新顯式h計數)。

[,(bool)sanitize =

true

# (可選)如果設定了此切換開關,則去除hs後將對分子進行消毒。預設值為1(進行消毒)。]]

])

筆記:

未與重原子連線的氫將不會被去除。這樣可防止分子[h] [h]除去所有原子。

標記的氫(例如原子序數= 1,但同位素》 1的原子)將不會被去除。

兩個座標hs,例如c [h-] c中的中心h,將不會被刪除

連線到虛擬原子的hs將不會被移除

屬於雙鍵立體化學定義的hs將不會被移除

未連線到其他任何物件的hs將不會被刪除

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'

)# 畫分子結構

鍵型別

for bond in mol4.getbonds():

print

(bond.getbondtype())

# aromatic

# aromatic

# aromatic

# aromatic

# aromatic

# aromatic

chem.kekulize(mol4)

# 畫分子結構

RDKit 分子修改與編輯

二 高階篇 正常情況下,分子在rdkit中儲存時,氫以隱式氫的形式儲存,即不會在中顯示出來。當需要加入氫原子時,例如要生成和優化立體結構,可以通過函式加上氫原子。from rdkit import chem m chem.molfromsmiles cco print m.getnumatoms 3...

RDKit 生物大分子的HELM表示法

helm hierarchical editing language for macromolecules helm可以表示各種生物分子,例如蛋白質,核苷酸,抗體藥物偶聯物等,其大小和複雜性使現有的基於小分子和基於序列的資訊學方法學不可行或不可用。將helm字串替換為要視覺化的helm字串,還可以將...

rdkit 子結構搜尋

三 smarts usr bin python coding utf 8 rdkit 子結構搜尋 from rdkit import chem子結構搜尋可以通過smarts匹配符完成。首先建立分子物件,然後定義匹配模式,最後判斷是否有子結構。匹配模式 支援chem.molfromsmarts 和 c...