美文网首页文献学习(分子模拟)
[原创-文献阅读]: 1001种运行AutoDock Vina进

[原创-文献阅读]: 1001种运行AutoDock Vina进

作者: 爱折腾的大懒猪 | 来源:发表于2019-01-14 00:29 被阅读11次

1001 Ways to run AutoDock Vina for virtual screening
Mendeley文献分享

该文献集中研究高性能运算(HPC)在基于分子对接的高通量筛选上的影响, 针对AutoDock Vina进行研究. 选择Vina的原因是其对于多核平行计算的加速效果.

  • 个人电脑 : 数核
  • GPU: 数百核
  • 超算: 超多核
  • 集群 cluster : 位置在一起的电脑网络
  • grid : 分散在各处的电脑/集群的网络.
  • 中间设备(Middleware), 伺服器: 例如PBS系统, Hadoop.
  • 云计算 Cloud: 使用虚拟系统, 而不需要购置硬件.

方法

这篇文章使用了四种架构进行计算:

  • 8核虚拟机,在HPC上使用。
  • 128核本地PBS集群
  • Hadoop集群,90节点1400核
  • 基于gLite的grid分布式计算,节点是pbs集群

研究集中在两个靶点:FTO(3lfm)与NUR77(3v3m), 后者分大口袋和小口袋进行处理和对接. 使用pymol处理结构,ADT生成pdbqt文件。

测试分子数据集大小约为10万分子。包含以下四个库:

  • Nutraceuticals(Nutra) : 78个食物补充剂,来源Drugbank
  • 人类代谢物数据库(HMDB) : 含有2462个化合物
  • FDA批准药物库,含有3358个药物。
  • ZINC天然产物库(ZNP),含有89398个化合物。

作者分析了这四个集的旋转键以及重原子的分布。作者也提到进行大批量对接可以用脚本或者Racoon2和Pyrx, 还可以改进。

多核处理器

Vina实际有并行计算能力 (内在并行, internal parallelism), 但实际多核并行主要是处理对接过程, 预处理和后处理并没并行, 如预处理计算格点map, 读写文件等. 尽管过程时间不长, 但如果连续地逐个对接, 就会产生严重的核的浪费.

Vina四核运算时CPU占用情况,X是预处理阶段, +是后处理阶段

作者提出, 多个配体进行对接时可以使用external parallelism, 使用进程池(process pool, python) 来运行固定N个并发的进程, 每一个进程都会运行一个Vina实例. 每个Vina运行M线程(内在并行), 总平行级别是N*M.

四核CPU使用情况对比by XRG工具, 左是两个配体一起并行处理, 右边是逐个配体进行对接

Hadoop集群

使用映射器(mapper)处理输入, 产生一系列的键值对, 系统最后将排序的键值对传给还原器?(reducer)整合结果. 每一个配体对应一个mapper任务输入运行一个Vina实例, 亲合力作为键名, 配体名作为键值, 使用一个reducer来收集结果.

集群和grid

使用WS-PGRADE流程管理系统. 在集群系统里面, 管理任务会造成计算负荷, 因此不适宜大量小任务进行计算, 更合适将工作分成更大的任务 (每个任务配体多于1个). 作者使用了DIRAC pilot-job框架, 可以更好地利用闲置资源进行计算而减少排队.

结果和讨论

内在并行vs外在并行

测试在8核电脑上. 可知在M=4, N=5时最快 (其实M>=2,N>=5都差不多...)

内在并行vs外在并行

重现性

作者发现, 在不同的操作系统, 甚至不同版本的系统, 使用同一随机种子和输入参数也会产生不同的对接结果.

口袋大小和Exhaustiveness的影响

作者发现, 使用大口袋和小口袋进行对接其运行时间其实差不多. 要有更好的对接质量, 就要提高Exhaustiveness项.
提高Exhaustiveness会线性增加运算时间. 因此, 多次用不同随机种子进行运行(例如运行4次, Exhaustiveness=10)会比Exhaustiveness=40要好(时间差不多), 因为使用更多随机状况, 所以更容易获得正确解.

配体属性的影响

可旋转键以及重原子越多, 计算时间就越多. 因此可以以此为准则, 将计算花费时间较多的分在不同的组进行处理. 另外, 将计算耗时较多的分子优先进行计算能减少资源的浪费. 作者也提到Zhang等利用分子相似性来将分子分到不同组后进行优化性能.

架构的选择

在集群或grid上,由于计算资源共享, 平均并行数可能远达不到定义的最大并行数. 在多核电脑上, 运算最稳定; 随着使用电脑资源增加, 出错率会递增. Hadoop在处理错误修复上性能要比grid好, 平均并行数最接近于最大并行数, grid则更多并行时间用于错误处理. 整体而言, Hadoop进行大规模运算是最佳的架构.

  • 容错率 ( Fault Tolerance): 多核<集群<grid(DIRAC) < Hadoop;
  • 出错率 : 多核<<集群~Hadoop << Grid

Jaghoori, Mohammad Mahdi, Boris Bleijlevens, and Silvia D. Olabarriaga. 2016. “1001 Ways to Run AutoDock Vina for Virtual Screening.” Journal of Computer-Aided Molecular Design 30 (3):237–249. DOI: 10.1007/s10822-016-9900-9.

相关文章

网友评论

    本文标题:[原创-文献阅读]: 1001种运行AutoDock Vina进

    本文链接:https://www.haomeiwen.com/subject/gtmrdqtx.html