简介
无论如何获得先导化合物,评估候选先导化合物的合成难度都很重要。无论该化合物在计算机上的应用前景如何,实际上并未对其进行合成和评估。
介绍SA score(Synthetic Accessibility score)作为评估化合物合成难易程度的一种方法。
药物研发中合成难度评估的重要性
药物发现研究中的主要候选化合物
如果化合物是从商业产品或内部数据库获得,则“合成潜力”得到保证。另一方面,尚不清楚是否可以实际合成复杂的天然化合物或从头设计的化合物。
无论如何,在研究的某个阶段都必须考虑化合物的“易于合成”。在这种情况下,如果优先考虑其他指标(例如活性)并在最后考虑“合成的难易程度”,则倾向于选择具有相似化学型和骨架的化合物。为了防止这种情况,期望从筛选的初期就通过均等地处理“合成可及性”来评价化合物。换句话说,用一种简单的方法来评估大量化合物的“合成容易性”很重要。
经验丰富的合成化学家可以通过查看化合物的结构来确定合成的难度,但是它不能解决数百万种化合物的筛选问题。因此,有必要使用计算机来评估“合成的容易性”。
计算机辅助合成难度评估方法
前者基于一种分子结构复杂性方法,其中当存在难以合成的部分结构(例如中环,螺骨架和许多不对称中心)时,判断难度级别较高。这是一种判断合成难度的技术。后者可以说是更可靠的指标,但是计算量很大,并且反应数据库的维护也很困难。
SA Score
SA Score是根据简洁的规则设计的,可以快速评估大量化合物。该方法基于分子的“复杂性”,但是为了结合试剂和反应的作用,可以立即构建复杂的结构,因此使用了“经常出现的子结构易于合成”的假设。
具体地,基于从PubChem获得的100万种化合物的ECFP4指纹的频率进行加权。由出现频率加权然后相加的子结构为下式中的“ fragmentScore”
“ ComplexityPenalty”仅考虑了诸如循大环和分子量之类的因素。将值标准化为1(简单)到10(困难)。
导入库
from rdkit import rdBase, Chem
from rdkit.Chem import AllChem, Draw, PandasTools
from rdkit.Chem.Draw import IPythonConsole
import sascorer
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
载入数据
df = pd.read_csv('zim.100.txt', sep='\t')
df.head()
将smiles转换为RDKit 的Mol对象
PandasTools.AddMoleculeColumnToFrame(frame=df, smilesCol='smiles')
df.head()
df['calc_SA_score'] = df.ROMol.map(sascorer.calculateScore)
x = df.sa_score
y = df.calc_SA_score
with mpl.style.context('seaborn'):
plt.plot(x, y, 'o')
plt.xlabel('given SA scores')
plt.ylabel('calculated SA scores')
plt.title('SA scores for model compounds')
(id_max, id_min) = (df.sa_score.idxmax(), df.sa_score.idxmin())
sa_mols = [df.ROMol[id_max], df.ROMol[id_min]]
Draw.MolsToGridImage(sa_mols, subImgSize=(340,200),
legends=['SA-score: {:.2f}'.format(df.sa_score[i]) for i in [id_max, id_min]])
作者丨王建民
单位丨湖南大学
研究方向丨药物设计、生物医药大数据
DrugAI
本文为DrugAI原创编译整理,如需转载,请在公众号后台留言。