1、化合物分子可合成性打分 SA_Score

参考:

https://github.com/rdkit/rdkit/tree/master/Contrib/SA_Score
https://cloud.tencent.com/developer/article/1817199

这SA_Score计算基本算rdkit的一个插件功能,需要单独下载,特别fpscores.pkl.gz压缩包下载下来

化合物分子可合成性打分 SA_Score

SAscore 简单介绍(文章地址:https://jcheminf.biomedcentral.com/articles/10.1186/1758-2946-1-8):

2009年诺华公司的研究员Ertl和Schuffenhauer在化学信息学杂志上发表了名为SAscore的Rdkit插件用于快速评估药物分子的合成难易程度,其将小分子合成难易程度用1到10区间数值进行评价,越靠近1表明越容易合成,越靠近10表明合成越困难。其计算权重为化合物的片段贡献减去复杂程度(SAscore =fragmentScore − complexityPenalty),其中片段贡献值根据PubChem数据库中上百万分子计算共性进行计算,复杂度则考虑分子中非标准结构特征的占比,例如大环、非标准环的合并、立体异构和分子量大小等方面。研究员将40个化合物给化学家进行经验性评估其合成难易程度,并与SAscore得分进行比较发现与化学家给出的合成难易程度评分的相关性R2高达0.89

import math
import picklefrom rdkit import Chem
from rdkit.Chem import rdMolDescriptorsimport os
import os.path as op_fscores = Nonedef readFragmentScores(name='fpscores'):import gzipglobal _fscores# generate the full path filename:if name == "fpscores":name = op.join(os.getcwd(), name)# name = op.join(op.dirname(__file__), name)data = pickle.load(gzip.open('%s.pkl.gz' % name))outDict = {}for i in data:for j in range(1, len(i)):outDict[i[j]] = float(i[0])_fscores = outDictdef numBridgeheadsAndSpiro(mol, ri=None):nSpiro = rdMolDescriptors.CalcNumSpiroAtoms(mol)nBridgehead = rdMolDescriptors.CalcNumBridgeheadAtoms(mol)return nBridgehead, nSpirodef calculateScore(m):if _fscores is None:readFragmentScores()# fragment scorefp = rdMolDescriptors.GetMorganFingerprint(m,2)  # <- 2 is the *radius* of the circular fingerprintfps = fp.GetNonzeroElements()score1 = 0.nf = 0for bitId, v in fps.items():nf += vsfp = bitIdscore1 += _fscores.get(sfp, -4) * vscore1 /= nf# features scorenAtoms = m.GetNumAtoms()nChiralCenters = len(Chem.FindMolChiralCenters(m, includeUnassigned=True))ri = m.GetRingInfo()nBridgeheads, nSpiro = numBridgeheadsAndSpiro(m, ri)nMacrocycles = 0for x in ri.AtomRings():if len(x) > 8:nMacrocycles += 1sizePenalty = nAtoms**1.005 - nAtomsstereoPenalty = math.log10(nChiralCenters + 1)spiroPenalty = math.log10(nSpiro + 1)bridgePenalty = math.log10(nBridgeheads + 1)macrocyclePenalty = 0.# ---------------------------------------# This differs from the paper, which defines:# macrocyclePenalty = math.log10(nMacrocycles+1)# This form generates better results when 2 or more macrocycles are presentif nMacrocycles > 0:macrocyclePenalty = math.log10(2)score2 = 0. - sizePenalty - stereoPenalty - spiroPenalty - bridgePenalty - macrocyclePenalty# correction for the fingerprint density# not in the original publication, added in version 1.1# to make highly symmetrical molecules easier to synthetisescore3 = 0.if nAtoms > len(fps):score3 = math.log(float(nAtoms) / len(fps)) * .5sascore = score1 + score2 + score3# need to transform "raw" value into scale between 1 and 10min = -4.0max = 2.5sascore = 11. - (sascore - min + 1) / (max - min) * 9.# smooth the 10-endif sascore > 8.:sascore = 8. + math.log(sascore + 1. - 9.)if sascore > 10.:sascore = 10.0elif sascore < 1.:sascore = 1.0return sascoredef my_score(mols:list):readFragmentScores("fpscores")print('smiles\tsa_score')for m in mols:s = calculateScore(m)smiles = Chem.MolToSmiles(m)print(smiles + "\t" + "\t%3f" % s)##测试m = Chem.MolFromSmiles('*c1nc(=O)c2cc(C(F)(F)F)cc([N+](=O)[O-])c2s1')
x = [m,m]
my_score(x)

2、rdkit QED定量评估类药性

QED代表类药分子的定量估计,这一概念由Richard Bickerton及其同事首次提出的。QED测量的经验基本原理反映了分子性质的基本分布,包括分子量,logP,拓扑极性表面积,氢键供体和受体的数量,芳环和可旋转键的数量,以及有害化学官能团分布。

from rdkit.Chem import QEDkkkk = Chem.MolFromSmiles("O=C1[C@@H](CC)N(CC2=CC(C)=CS2)C3=C(N1C)C=NC(NC4=C(OCC)C=C(C5CCN(C)CC5)C=C4)=N3")QED.properties(kkkk)QED.qed(kkkk)

化合物分子可合成性打分 SA_Score;rdkit QED定量评估类药性相关推荐

  1. RDKit | 定量评估类药性(QED)

    QED(quantitative estimate of drug-likeness)是一种将药物相似性量化为介于0和1之间的数值的方法. 药物相似性 如Lippinsky规则所示,获批药物的理化参数 ...

  2. 寻找新冠“解药”:在 10^60 化合物分子空间,他们用 AI 挖掘潜在药物

    作者 | Just 出品 | CSDN(ID:CSDNnews) 医药研发行业有一个"三个十"的说法,即一种药物的发现需要投入十年以上的时间,花费十多亿美元,最后获得10%的成功率 ...

  3. 化合物分子 ogb、dgl生成图网络及GNN模型训练;pgl图框架

    参考:https://towardsdatascience.com/learn-to-smell-molecules-with-graph-convolutional-neural-networks- ...

  4. 2022-2028年中国塑料合成革的制造行业市场全景评估及发展趋势研究报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了塑料合成革的制造行业相关概述.中国塑料合成革的制造行业运行环境.分析 ...

  5. DrugAI资料汇总

    DrugAI资料汇总 CADD学习汇总 CADD课程学习(1)-- 药物设计基础知识(不对外开放) 分子式基础 SMILIES基础 CADD课程学习(2)-- 靶点晶体结构信息(不对外开放) 数据集 ...

  6. AI用于COVID-19的药物发现和疫苗开发

    SARS-COV-2号召科学界采取行动,以对抗日益增长的大流行病.撰写本文时,还没有新型抗病毒药或批准的疫苗可用于部署作为一线防御.了解COVID-19的病理生物学特性可通过阐明未探索的病毒途径来帮助 ...

  7. JCIM | 一种考虑受体结构的从头药物生成方法-SBMolGen

    2021年,Biao Ma等人在JCIM期刊上发表了一篇名为**"Structure-Based de Novo Molecular Generator Combined with Arti ...

  8. RDKit | 通过评估合成难度(SA Score)筛选化合物

    无论如何获得先导化合物,评估候选先导化合物的合成难度都很重要.无论该化合物在计算机上的应用前景如何,实际上并未对其进行合成和评估. 介绍SA score(Synthetic Accessibility ...

  9. 用于分子生成的数据高效性图语法学习

    近年来分子生成问题收到了很多关注.但是现有的方法都是基于深度神经网络,需要在很大的数据集上训练.在实践中,由于劳动密集型实验和数据收集,特定类别化学数据集的规模通常是有限的(例如,几十个样本).这对深 ...

最新文章

  1. 服务化的未来--ServiceMesh?
  2. bzoj1597[Usaco2008 Mar]土地购买
  3. cogs2109 [NOIP2015] 运输计划
  4. LeetCode 314. 二叉树的垂直遍历(BFS/DFS)
  5. 电脑计算机d盘有用吗,d盘不见了,教您电脑d盘不见了怎么解决
  6. 父亲节,来认识一下这几位“爸爸”
  7. 【Webpack】TypeError: Cannot read property ‘tap‘ of undefined at HtmlWebpackPlugin.
  8. 和发光的人在一起,慢慢地你也会发光
  9. 基于Java swing实现的学生选课管理系统
  10. 海康摄像头如何查看IP,重置密码
  11. Win10系统自带的备份,恢复功能
  12. Photoshop调色教程
  13. 改变世界的五位程序员
  14. 回溯法 n皇后 python 解法一
  15. php生成个性签名,怎么巧妙添加个性签名
  16. 常用英语翻译与技巧总结
  17. autojs编写的网易云音乐和视频搜索脚本源代码免费分享开源
  18. 手柄映射软件_生化危机3该用哪款游戏手柄?北通宙斯给你四维游戏体验
  19. python简单体育竞技模拟_【python】羽毛球竞技模拟
  20. 解决4G路由器内网无法ping通外网问题总结

热门文章

  1. 移动测试领域遇到的MCC是什么意思?
  2. html布局之发展流程图
  3. oracle用户密码已过期,oracle提示登录密码过期完美解决方法
  4. 自学Android开发(一)
  5. squid的基本概念
  6. SSM实战系列之商城系统(前端+后台)《一》项目需求分析
  7. otter 带表情包同步踩坑及解决方案
  8. 总压-静压及总温-静温的换算
  9. ACL2023:LLM相关论文总结
  10. php 导出Excel 字符过长科学计数法