二、高階篇
正常情況下,分子在rdkit中儲存時,氫以隱式氫的形式儲存,即不會在中顯示出來。當需要加入氫原子時,例如要生成和優化立體結構,可以通過函式加上氫原子。
>>
>
from rdkit import chem
>>
> m = chem.molfromsmiles(
'cco'
)>>
>
print
(m.getnumatoms())
3>>
> m2 = chem.addhs(m)
>>
>
print
(m2.getnumatoms())
9>>
> m2 = chem.removehs(m2)
>>
>
print
(m2.getnumatoms())
3
>>
> m = chem.molfromsmiles(
'c1ccccc1'
)>>
>
print
(m.getbondwithidx(0)
.getbondtype())
aromatic
>>
> chem.kekulize(m)
>>
>
print
(m.getbondwithidx(0)
.getbondtype())
double
>>
>
print
(m.getbondwithidx(1)
.getbondtype())
single
轉化後,型別中雖然變為單鍵和雙鍵,但依然是芳香鍵
>>
>
print
(m.getbondwithidx(1)
.getisaromatic())
true
>>
> chem.kekulize(m, cleararomaticflags=
true
)>>
>
print
(m.getbondwithidx(0)
.getbondtype())
double
>>
>
print
(m.getbondwithidx(1)
.getisaromatic())
false
>>
> chem.sanitizemol(m)
>>
>
print
(m.getbondwithidx(0)
.getbondtype())
aromatic
在rdkit的atom物件中也提供了一系列功能,可以對分子進行原位編輯。
bond物件類似
不挨個說明了,感興趣可以試試各個函式及相關引數,舉幾個可能會遇到的例子
更複雜的操作可以使用rdkit.chem.rdchem.rwmol類(用於分子讀寫的類)。這個類在修改分子方面,效能更好,它可以提供乙個「活動的」分子,並且共享了mol物件的操作介面。修改完畢後,只需要用getmol()就可以獲得最終的分子
本文參考自rdkit官方文件。
**及原始檔在這裡。
rdkit 修改分子
三 芳香共軛鍵和庫里單雙鍵 usr bin python coding utf 8 rdkit 修改分子 from rdkit import chem from rdkit.chem import draw mol chem.molfromsmiles oc1c2c1cc2 畫分子結構 分子結構圖 ...
RDKit 生物大分子的HELM表示法
helm hierarchical editing language for macromolecules helm可以表示各種生物分子,例如蛋白質,核苷酸,抗體藥物偶聯物等,其大小和複雜性使現有的基於小分子和基於序列的資訊學方法學不可行或不可用。將helm字串替換為要視覺化的helm字串,還可以將...
RDKit 化合物亞結構搜尋與結果輸出
假定搜尋目標化合物作為mol字串包含在稱為mols的列表中。可以在以下流程中執行部分結構搜尋,並突出顯示匹配化合物的匹配部分結構。導入庫from rdkit.chem import allchem from rdkit.chem import draw,descriptors from rdkit....