使用AutoDock Vina软件进行药物筛选

本文以AutoDock Vina软件为例,介绍如何在E-HPC上进行高性能计算实现虚拟药物筛选。

背景信息

分子对接(Molecular docking)是虚拟药物筛选中的关键环节。AutoDock Vina作为一款开源的分子对接软件,具有速度快、算法准确等优点,特别适用于搭建基于分子对接的虚拟筛选,它基于MGLTools工具包进行使用。MGLTools包括AutoDock Tools(ADT)和Python Molecular Viewer(PMV)。ADT用来为Vina生成输入文件,PMV用来查看结果。更多信息,请参见AutoDock VinaMGLTools

本文通过模拟小分子配体和生物大分子受体相互作用的过程,预测配体与受体的结合模式和亲和力,模拟实现对药物的筛选。目前商业应用较广泛的Specs、Enamine和ChemDiv化合物库,均可提供大量配体模拟计算配体和给定受体的相互作用。由于不同配体之间没有依赖,因此可以大规模并行处理。本文同样适用于其它大批量、高并发处理需求的生物、医药等场景。

准备工作

  1. 创建E-HPC集群。

    具体操作,请参见使用向导创建集群。您需要注意以下配置参数:

    参数

    说明

    硬件参数

    部署方式为标准,包含2个管控节点,1个计算节点和1个登录节点。

    节点均采用ecs.c7.large实例规格,配置为2 vCPU,4 GiB内存,Ice Lake处理器,2.7 GHz。

    软件配置

    镜像选择CentOS 7.6公共镜像,调度器选择pbs,开启VNC。

  2. 创建集群用户。具体操作,请参见创建用户

    集群用户用于登录集群,进行编译软件、提交作业等操作。本文创建的用户示例如下:

    • 用户名:vinatest

    • 用户组:sudo权限组

  3. 安装软件。具体操作,请参见安装软件

    需安装的软件如下:

    • vina,版本为1.1.2。

    • AutoDockTools,版本为1.5.7。

    • intel-mpi,版本为2018。

步骤一:连接集群

选择以下一种方式连接集群。本文使用的用户名为vinatest,连接集群后会默认登录到/home/vinatest

  • 通过客户端

    该方式仅支持使用PBS调度器的集群。操作前,请确保您已下载安装E-HPC客户端,且已配置客户端所需环境。具体操作,请参见配置客户端所需环境

    1. 打开并登录E-HPC客户端。

    2. 在客户端左侧导航栏,单击会话管理

    3. 会话管理页面的右上角,单击terminal,打开Terminal窗口。

  • 通过控制台

    1. 登录弹性高性能计算控制台

    2. 在顶部菜单栏左上角处,选择地域。

    3. 在左侧导航栏,单击集群

    4. 集群页面,找到目标集群,单击远程连接

    5. 远程连接页面,输入集群用户名、登录密码和端口,单击ssh连接

步骤二:提交作业

  1. 下载并解压作业文件。

    1. 下载作业文件。

      说明

      如果集群中没有安装git,请先执行sudo yum install -y git安装git。

      git clone https://code.aliyun.com/best-practice/022.git
    2. 解压作业文件。

      cd 022
      tar xzvf vina-ehpcarrayjob.tar.gz
  2. 修改配置文件。

    cd vina-ehpcarrayjob
    vim conf.txt

    在conf.txt中,删除以下两行内容:

    receptor = 1fkn_rgd.pdbqt
    ligand = $file
  3. 创建作业脚本,命名为vina.sh。

    cd /home/vinatest
    vim vina.sh

    脚本内容如下:

    #!/bin/bash
    
    #PBS -N vina_job
    #PBS -l nodes=1:ppn=2
    #PBS -l walltime=00:10:00
    #PBS -j oe
    #PBS -v receptor="022/vina-ehpcarrayjob/1fkn_rgd.pdbqt",ligand="022/vina-ehpcarrayjob/test/ligand_1.pdbqt",config="022/vina-ehpcarrayjob/conf.txt"
    
    
    cd $PBS_O_WORKDIR
    
    ppn="$NCPUS"
    cd $PBS_O_WORKDIR
    
    
    vina --receptor $receptor --config $config  --ligand $ligand --out out.pdbqt --cpu $ppn
  4. 提交作业。

    qsub vina.sh

    预期返回如下,表示生成的作业ID为0.scheduler。

    0.scheduler

步骤三:查看结果

  1. 查看作业运行情况。

    qstat -x 0.scheduler

    预期返回如下,当返回信息中SR时,表示作业正在运行中;当返回信息中SF时,表示作业已经运行结束。

    Job id            Name             User              Time Use S Queue
    ----------------  ---------------- ----------------  -------- - -----
    0.scheduler       vina_job         vinatest          00:01:56 F workq 
    说明

    作业运行结束后会生成结果文件out.pdbqt,保存在提交作业时的路径下,本文示例为/home/vinatest/out.pdbqt

  2. 使用VNC可视化查看作业结果。

    1. 打开VNC。

      说明

      请确保集群所属安全组已打开VNC所需端口。控制台操作时系统会自动打开12016端口,客户端操作时,请您自行打开端口,首个VNC窗口使用12017端口,如果有多个用户使用VNC,则端口号按顺序递增。

      • 通过客户端

        1. 在客户端的左侧导航栏,单击会话管理

        2. 在会话管理页面的右上角,单击VNC,打开VNC窗口。

      • 通过控制台

        1. 弹性高性能计算控制台的左侧导航栏,单击集群

        2. 集群页面,找到目标集群,单击更多 > VNC

        3. 使用VNC远程连接可视化服务。具体操作,请参见连接可视化服务

    2. 在VNC窗口中,选择Application>System Tools>Terminal

    3. 在Terminnal中执行以下命令,打开AutoDock Tools并加载作业结果。

      /usr/local/bin/adt /home/vinatest/022/vina-ehpcarrayjob/1fkn_rgd.pdbqt /home/vinatest/out.pdbqt

      在弹出的AutoDock Tools窗口中加载模型后,显示结果如下:

      vina结果..png