一种新的、更好的生成相识度图的方法

一种新的、更好的生成相识度图的方法

本文会比较用经典的方法和新的方法分别得到的相似度图,看看两者的区别。

这里使用阿托伐他汀(立普妥)和罗苏伐他汀(Crestor)这两种药物的摩根指纹为例。

1、经典方法

atorvastatin = Chem.MolFromSmiles('O=C(O)C[C@H](O)C[C@H](O)CCn2c(c(c(c2c1ccc(F)cc1)c3ccccc3)C(=O)Nc4ccccc4)C(C)C')

rosuvastatin = Chem.MolFromSmiles('OC(=O)C[C@H](O)C[C@H](O)\C=C\c1c(C(C)C)nc(N(C)S(=O)(=O)C)nc1c2ccc(F)cc2')

Draw.MolsToGridImage((atorvastatin,rosuvastatin))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述图1

                                        图1

2、新的绘图方法

我们创建一个Draw2D对象并将其传递给SimilarityMaps.GetSimilarityMapForFingerprint方法,详细代码如下:

def show_png(data):

  bio = io.BytesIO(data)

  img = Image.open(bio)

  return img

d = Draw.MolDraw2DCairo(400, 400)

_, maxWeight = SimilarityMaps.GetSimilarityMapForFingerprint(atorvastatin, rosuvastatin,lambda m, i: SimilarityMaps.GetMorganFingerprint(m, i, radius=2, fpType='bv'), 

​                    draw2d=d)

d.FinishDrawing()

show_png(d.GetDrawingText())

在这里插入图片描述

图2

我们可以对基于技术的指纹做同样的事情:

只要将上述代码fpType='bv’改成fpType=‘count’
在这里插入图片描述

图3

另外,其他的GetSimilarityMaoriFrom…函数也可以接受可选的draw2d参数。这是阿托伐他汀中的原子对其计算的logp值得贡献的可视化:

from rdkit.Chem import rdMolDescriptors

ator_contribs = rdMolDescriptors._CalcCrippenContribs(atorvastatin)

d = Draw.MolDraw2DCairo(400, 400)

SimilarityMaps.GetSimilarityMapFromWeights(atorvastatin,[x[0] for x in ator_contribs],draw2d=d)

d.FinishDrawing()

show_png(d.GetDrawingText())

在这里插入图片描述

图4

以及各种部分收费方案的更多可视化,这里以Gasteiger-Marsilli1为例:

from rdkit.Chem import rdPartialCharges

rdPartialCharges.ComputeGasteigerCharges(atorvastatin)

chgs = [x.GetDoubleProp("_GasteigerCharge") for x in atorvastatin.GetAtoms()]

d = Draw.MolDraw2DCairo(400, 400)

SimilarityMaps.GetSimilarityMapFromWeights(atorvastatin,chgs,draw2d=d)

d.FinishDrawing()

show_png(d.GetDrawingText())

在这里插入图片描述

图5

参考文献:

  1. https://www.sciencedirect.com/science/article/abs/pii/S0040403901949779
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIDD Learning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值