化合物相似性搜尋 RDKit 化合物相似性搜尋

2021-10-13 04:36:38 字數 1225 閱讀 7208

基於python3和rdkit的化合物結構相似性搜尋

化合物相似性在化學資訊學和藥物發現中具有悠久的歷史,許多計算方法採用相似度測定來鑑定研究的新化合物。

本例項通過計算分子的morgan指紋進行相似性比對。

匯入依賴包

#!/usr/bin/env python3

from rdkit.chem import allchem as ch

from rdkit.chem import draw as d

from rdkit import datastructs

載入分子庫

suppl = ch.sdmolsupplier('drugbank.sdf')

mols = [x for x in suppl if x is not none]

len(mols) #計算分子庫分子數目

讀入查詢分子,計算指紋

nicotine = ch.molfromsmiles('o=c(c)oc1ccccc1c(=o)o')

nicotine_fingerprint = ch.getmorganfingerprint(nicotine, 2)

計算分子庫每個分子指紋

mols_fps = [(m, ch.getmorganfingerprint(m, 2)) for m in mols]

計算相似度並排序,輸出最相似的的前20個分子

mols_nicotinesim = [(m, datastructs.tanimotosimilarity(fp, nicotine_fingerprint))

for m, fp in mols_fps]

sorted_mols_nicotinesim = sorted(mols_nicotinesim, key=lambda x: x[1], reverse=true)

result = sorted_mols_nicotinesim[:20]

輸出最相似的前20個結構

map(ch.compute2dcoords, (m for m, sim in result))

img = d.molstogridimage([m for m, sim in result], kekulize=false, subimgsize=(400,400),

legends=[mol.getprop("generic_name") + ': ' + str(sim)

for mol, sim in result])

img

RDKit 化合物相似性搜尋(基於Python3)

化合物相似性在化學資訊學和藥物發現中具有悠久的歷史,許多計算方法採用相似度測定來鑑定研究的新化合物。本例項通過計算分子的morgan指紋進行相似性比對。匯入依賴包 usr bin env python3 from rdkit.chem import allchem as ch from rdkit....

RDKit 化合物亞結構搜尋與結果輸出

假定搜尋目標化合物作為mol字串包含在稱為mols的列表中。可以在以下流程中執行部分結構搜尋,並突出顯示匹配化合物的匹配部分結構。導入庫from rdkit.chem import allchem from rdkit.chem import draw,descriptors from rdkit....

InChI InChi Key 國際化合物標識

inchi編碼是一串由斜槓 隔開的有層級關係的數字組成的。每個inchi編碼都是由inchi版本號開始,接著乙個主層號。主層下包括含化學分子式層 原子關係層和固定氫原子子層。基於分子結構的主層後往往接著乙個附加的層,如電荷層 立體化學層 和 或 同位素資訊層。國際化合物標識分為六個層,每個層之間以 ...