2018 ACS | Generating Focused Molecule Libraries for Drug Discovery with Recurrent Neural Networks
本文使用循环神经网络可以训练成生成模型的分子结构,类似于统计语言模型在自然语言处理。证明了所生成的分子的性质与用来训练模型的分子的性质密切相关。针对金黄色葡萄球菌,该模型重现了药物化学家设计6051个分子中的14%,而针对恶性疟原虫(疟疾),该模型重现了1240个测试分子中的28%。当与评分函数结合时,可以执行完整的从头开始药物设计周期,以生成用于药物发现的大量新分子集。
- i 创建分子: 一种策略是用预定义的原子或碎片组来构建分子。另一种确定的方法是基于专家编码规则进行虚拟化学反应,希望这些反应也可以应用到实践中,在实验室中制造分子。
- ii 评分和筛选他们: 对分子进行评分并过滤掉未生成的结构,可以与已有的方法(如对接或机器学习(ML)方法)结合,用子结构过滤器解决不良反应基团的问题。ML方法分为两个分支:目标预测将分子分为活性和非活性,定量构效关系(QSAR)寻求定量预测物质有效性的实值测度(作为一个回归问题)。
- iii 搜索更好的分子,建立在前面的步骤中获得的知识。:寻找具有正确的结合亲和力和最佳的分子性质的分子。
代表分子
自然语言处理的模型中,模型的输入和输出通常是单个字母,字符串或单词的序列。因此,我们采用了Smiles格式,该格式将分子图紧凑为人类可读字符串。Smiles是一种形式的语法,它描述了具有字符字母的分子,例如芳香和脂肪族碳原子的c和C,o氧,- =和#用于单,双键和三键(见图1)。
对于第
t
i
t_i
ti步的符号序列
S
S
S,语言模型分配的概率为:
抽象地说,RNN取一个输入向量序列
x
1
:
n
=
(
x
1
,
…
,
x
n
)
x_{1:n} = (x_1,…, x_n)
x1:n=(x1,…,xn)和一个初始状态向量
h
0
h_0
h0,并返回一个状态向量序列
h
1
:
n
=
(
h
1
,
…
,
h
n
)
h_{1:n} = (h_1,…, h_n)
h1:n=(h1,…,hn)和一个输出向量序列
y
1
:
n
=
(
y
1
,
…
y
n
)
y_{1:n} = (y_1,…y_n)
y1:n=(y1,…yn)。RNN由递归定义的函数R组成,它接受一个状态向量
h
i
h_i
hi,输入向量
x
i
+
1
x_{i+1}
xi+1,返回一个新的状态向量
h
i
+
1
h_{i+1}
hi+1。另一个函数
O
O
O将状态向量
h
i
h_i
hi映射到输出向量
y
i
y_i
yi。
状态向量
h
i
h_i
hi存储了到目前为止序列中所有符号的信息表示。作为递归定义的替代方案,递归网络也可以对有限序列展开(参见图2)。
符号生成和采样过程。我们从一个随机的种子符号
s
1
s_1
s1开始,这里是
c
c
c,它被转换成一个热点向量
x
1
x_1
x1并输入到模型中。然后,模型将其内部状态
h
0
h_0
h0更新为
h
1
h_1
h1,并输出
y
1
y_1
y1,这是下一个符号的概率分布。在这里,抽样结果为
s
2
=
1
s_2 =1
s2=1。将
s
2
s_2
s2转换为
x
2
x_2
x2,并将其提供给模型,会导致更新隐藏状态
h
2
h_2
h2和输出
y
2
y_2
y2,可以从它再次采样。只要需要,这种逐符号迭代过程就可以继续下去。在本例中,我们在观察到一个EOL (\n)符号后停止它,并获得:
概率分布
P
θ
(
s
t
+
1
∣
s
t
,
…
,
s
1
)
P_θ(s_{t+1}|s_t,…, s_1)
Pθ(st+1∣st,…,s1)的下一个符号给定已经看到的序列,因此是一个多项分布,该分布是利用递归神经网络的输出向量
y
t
y_t
yt在时间步长
t
t
t估计: