RDKit:化学指紋(Chemical Fingerprinting)
1006 ワード
化学指紋認識は,描画した分子を0と1ビットの流れに変換する方法である.旧指紋型はMACCS鍵であり,分子データベースにおけるサブ構造スクリーニングの迅速な方法として前MDLによって開発された.共通バージョンは166個の結合、すなわち1660と1を含み、各結合は特定の分子特性に対応する、例えばカルボニル基(結合154:('[#6]=[#8]',0)、RDkit中の#C=O.が実現される)が存在する.RDkitで使用可能なもう一つの指紋は、モルガン型指紋であり、円形指紋である.各原子の環境と連通性を所与の半径に解析し,各可能性を符号化した.一般に、ハッシュアルゴリズムは、多くの可能性を所定の長さ、例えば1024に圧縮するために使用される.従って,円形指紋は原子型と分子連通性の系統的探索であり,一方,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