文献总结|在大数据集中有效识别匹配分子对(MMPs)的算法

Category 碎碎念

doi.org/10.1021/ci900450m

本文介绍于 2010 年发表在 Journal of Chemical Information and Modeling 上的一篇文章,文章原标题为 Computationally Efficient Algorithm to Identify Matched Molecular Pairs (MMPs) in Large Data Sets,文章介绍了一种在大规模数据中识别匹配分子对的算法,这种算法也就是目前用于生成匹配分子对的最常用方法。

匹配分子对(Matched Molecular Pairs, MMP)是指化合物 A 与化合物 B 之间只在单一位置具有结构差异的一对分子,所以 MMP 中的分子可以很容易地从一个化合物改变为另一个化合物。

n

在面对先导化合物优化等问题时,传统且主流的做法仍然是依靠化学团队的经验。然而目前已经拥有化合物优化的海量数据,如果能得到其中蕴藏的经验和知识,将给予化学家很大的帮助并加快化合物优化的效率。MMP 就提供了从一批分子中获取化合物优化知识的一种方法,所以针对于识别分子数据集中 MMP 的算法,文章提出了两个要求:

  1. 应当能识别数据集中所有的 MMP;
  2. 计算效率高,能够适用于具有大量分子的数据集。

方法

文章中提出的识别 MMP 算法可以归纳为以下几步:

  1. 每次在一个化合中一处两个非氢原子间的非环单键处切断,在每个切断位点执行该操作,直至将数据集中所有分子分割为所有可能的片段。
  2. 每次切断后,都要索引两个片段。具体来说,分子 \(\rm{A—B}\) 切断为 \(\rm{A*}\)\(\rm{* B}\) 后,需要建立 \(\{\rm{key:value}\}\) 的索引,即 \(\{\rm{A*:* B}\}\)\(\{\rm{* B:A*}\}\)
  3. 下一次切断得到的片段若与已建立索引的 \(\rm{key}\) 相同,就更新到相应的字典中。例如又得到了 \(\rm{A* }\)\(\rm{* C}\),那么索引就会更新为 \(\{\rm{A*:* B,* C}\}\),新增 \(\{\rm{* C: A*}\}\),保留 \(\{\rm{* B: A*}\}\)
  4. 在处理完所有分子后,相同 \(\rm{key}\) 索引中的片段就揭示了 MMP 的化学转化,例如 \(\rm{*B\rightarrow*C}\),将键值对重新组合后同时也得到了目标的 MMP,例如 \([\rm{A—B,A—C}]\)

这种方法还可以推广到在同一分子中多次切断,识别单次切断可能会遗漏的 MMP。

n

对于化学家而言,例如 \(\rm{*B\rightarrow*C}\) 的转化规则,若该结构太大,那么通过这种转化得到的 MMP 也是没有实际意义的。所以为了避免用于替换的子结构过大,还可以设定只切断不超过 n 个非氢原子的子结构。

结果与讨论

文章所使用的分子数据库包含有 333332 个化合物,通过该算法使用单核 CPU 经过约 850 min 后,得到了 5310964 对 MMP。

在得到的 MMP 中也存在一些问题,例如羧酸到酰胺是一类常见的结构转化,但在得到的结果中,羧酸到酰胺的转化的结果也会混入到醇到胺的转化中,因为这两种结构转化从分子表示上来看都是将羟基替换为氨基,而这两种结构转化的性质截然不同,就会导致下游的分子性质预测、结构改造任务出现问题。

一种妥善的解决方法就是在切断步骤中,不切断官能团间的单键,保证 MMP 中的分子都具有相同的官能团,不互相混淆。

n

另一个问题是一些化学转化是在环结构上进行结构改造,由于切断的操作只会在单键之间执行,所以对于这一类的化学转化,MMP 必须找到单键切下整个环结构。而对于一些稠环结构,很容易就超出了设定的 n 个非氢原子的约束,无法获得这一类化学转化。

一个改进的方向就是设定若切下的子结构为纯粹的环结构,那么不计算原子数量直接建立索引,这样既获得到环结构上的化学转化,又避免了混入超过 n 原子的无意义转化。

n

最后,文章只将在一个分子中切断 1 次的操作推广到了 3 次。实验结果发现,在一个分子中切断 3 次后,就可以找到数据集中几乎全部的 MMP,切断次数越多,效果提升越少,计算开销越大,所以在实际使用中,3 次切断就已经是可行的。

n

结论

文章提出了一种适用于在较大的分子数据集中识别 MMP 的算法,这种算法能够帮助人们从过去所累积的分子改造数据中获取化学改造的知识,结合分子的各种实际评估数据,这种方法能够更全面地构建出药物分子的构效关系,解决实际中先导化物优化方面的问题。