首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >RDKit | 基于Murcko骨架聚类化合物库

RDKit | 基于Murcko骨架聚类化合物库

作者头像
DrugOne
发布2021-02-01 10:07:15
发布2021-02-01 10:07:15
2.9K0
举报
文章被收录于专栏:DrugOneDrugOne

化合物多样性评估

一种方法是使用合适的指纹技术将化合物矢量化并评估他们之间的距离。这种方法经常被使用,但是对于人类很难直观地理解化合物之间的距离。

基于Murcko骨架,分子大致聚集在化合物骨架中,并且每个簇中的顶部化合物都作为候选化合物。此方法非常符合人类的直觉,因此可以预期人将通过查看候选化合物列表来自动缩小化合物的范围。

Murcko骨架

Murcko骨架通过从化合物中去除多余的侧链并仅表达连接它们的“环结构”和“连接子”,可以执行更简单的化合物表达。

Murcko骨架生成

基于Murcko骨架聚类化合物库

导入库

代码语言:javascript
复制
import numpy as np
from rdkit import Chem
from rdkit.Chem import Draw
from rdkit.Chem.Scaffolds import MurckoScaffold
from rdkit.Chem.Draw import IPythonConsole

载入数据

代码语言:javascript
复制
sdfloader = Chem.SDMolSupplier("Enamine_Premium_processed.sdf")  ### load from multisdfile 
mol_list = [ mol for mol in [sdfloader[i] for i in range(len(sdfloader))] if mol is not None]
 
smi_scaffolds = [  MurckoScaffold.MurckoScaffoldSmiles(mol=mol, includeChirality=False) for mol in mol_list]
mol_scaffolds = [Chem.MolFromSmiles(smi_scaffold) for smi_scaffold in smi_scaffolds]

可视化原始化合物

代码语言:javascript
复制
Draw.MolsToGridImage(mol_list[:9], molsPerRow=3, subImgSize=(300,300))

可视化骨架化合物

代码语言:javascript
复制
Draw.MolsToGridImage(mol_scaffolds[:9], molsPerRow=3, subImgSize=(300,300))

基于Murcko骨架聚类

代码语言:javascript
复制
scaffolds = {}
clusters_list =[]
 
 
idx = 1
for mol in mol_list:
    scaffold_smi =  MurckoScaffold.MurckoScaffoldSmiles(mol=mol, includeChirality=False)
    if scaffold_smi not in scaffolds.keys():
        scaffolds[scaffold_smi] = idx
        idx+=1
        
    cluster_id = scaffolds[scaffold_smi]
    clusters_list.append(cluster_id)
代码语言:javascript
复制
print("Num of dataset:",len(mol_list))

Num of dataset: 128816

代码语言:javascript
复制
print("Num of Murcko scaffolds in dataset:",len(scaffolds.keys()))

Num of Murcko scaffolds in dataset: 70843

聚类11个簇,查看其化合物

代码语言:javascript
复制
clusters_list = np.array(clusters_list)
idx_c15 = np.where(clusters_list==11)[0]
mol_list_c15 = [ mol_list[i] for i in idx_c15]
 
Draw.MolsToGridImage(mol_list_c15, molsPerRow=3, subImgSize=(300,300))

参考资料

1. https://docs.chemaxon.com/display/docs/Bemis-Murcko+clustering

2.http://www.rdkit.org/docs/source/rdkit.Chem.Scaffolds.MurckoScaffold.html?highlight=murcko#module-rdkit.Chem.Scaffolds.MurckoScaffold

文 / 编辑:王建民

DrugAI

本文为DrugAI原创编译整理,如需转载,请在公众号后台留言。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrugAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档