RDKit:化學指紋(Chemical Fingerprinting)

化學指紋識別是一種將繪制的分子轉(zhuǎn)換為0和1位的流的方法。舊指紋類型是MACCS密鑰,由前MDL開發(fā),作為在分子數(shù)據(jù)庫中進行子結(jié)構篩選的快速方法。公共版本包含166個鍵,即166 0和1,其中每個鍵對應于特定的分子特征,例如存在羰基(鍵154:('[#6] = [#8]',0),RDkit中的#C = O.實現(xiàn)).RDkit中可用的另一種指紋是摩根型指紋,它是一種圓形指紋。每個原子的環(huán)境和連通性被分析到給定的半徑,并且每種可能性都被編碼。通常使用散列算法將很多可能性壓縮到預定長度,例如1024。因此,圓形指紋是原子類型和分子連通性的系統(tǒng)探索,而MACCS鍵依賴于要匹配的預定義分子特征。

#!/usr/bin/python3
# In[1]:
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import MACCSkeys
from rdkit.Chem import DataStructs
# In[2]:
mol = Chem.MolFromSmiles('CCCN')
mol2 = Chem.MolFromSmiles('CCCO')
# In[3]:
fp1 = MACCSkeys.GenMACCSKeys(mol)
# In[4]:
print (fp1.ToBitString())
# out[4]:
00000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000000000001000100000010011001000000000000000000000000000010001010100101100000
# In[5]:
fp1_morgan = AllChem.GetMorganFingerprint(mol,2)
# In[6]:
print (fp1_morgan.GetLength())
# out[6]:
4294967295
# In[7]:
fp1_morgan_hashed = AllChem.GetMorganFingerprintAsBitVect(mol,2,nBits=1024)
# In[8]:
fp1_morgan_hashed.ToBitString()
# out[8]:
'0000000000000000000000100000000001000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000'
# In[9]:
fp2 = MACCSkeys.GenMACCSKeys(mol2)
# In[10]:
print (fp2.ToBitString())
# out[10]:
00000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000100001000011001000000000000010000001000000010000010101001000100
# In[11]:
fp2_morgan = AllChem.GetMorganFingerprint(mol2,2)
# In[12]:
print (fp2_morgan.GetLength())
# out[12]:
4294967295
# In[13]:
fp2_morgan_hashed = AllChem.GetMorganFingerprintAsBitVect(mol2,2,nBits=1024)
# out[13]:
'0000000000000000000000000000000001000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
# In[14]:
fp2_morgan_hashed.ToBitString()
# In[15]:
DataStructs.FingerprintSimilarity(fp1,fp2)
# out[15]:
0.45
# In[16]:
DataStructs.FingerprintSimilarity(fp1_morgan_hashed,fp2_morgan_hashed)
# out[16]:
0.3333333333333333

https://blog.csdn.net/u012325865/article/details/81784517


DrugAI
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容