摘要:本文介绍了如何用Virtuaflow虚拟筛选Enamine的Advance、HTS与Real Diverse数据库。
作者:肖高铿/2020-10-29
前言
之前我们移值了开源高通量虚拟筛选系统VirtualFlow及其数据库Real Database到cloudam的云E算例平台上1,已经开始为广大用户服务。由于Real数据库需要定制,因而供货周期比现货更长、价格也更贵,不少用户反馈希望能有现货数据库可用。经过上海陶素许可,将Enamine的2020年5月份Adance与HTS两个现货数据库也准备成VirtulFlow可用的格式并与大家分享。
本文用了一个“不同于”云计算教程 | 在云端用VirtualFlow实现超高通量虚拟筛选的流程来完成虚拟筛选,但其本质是一样的:本文只是将前文脚本createworkflow.sh拆解为一行一行的命令分别执行罢了。这么拆解脚本的目的是让大家更方便的自定义参数进行虚拟筛选。
特别声明(2021-12-04)
今年发布的Vina 1.2支持多分子对接以及GIRD可重复利用,这样可以节省很多文件读取的时间并免于GRID重复生成,大幅提升计算的性能。因此我建议分割数据库为小库用Vina1.2进行虚拟筛选。此外,原始的VirtualFlow用Openbabel进行格式转化,存在柔性键错误定义的情况,这也是我不推荐继续用Virtualflow的理由。
ENAMINE数据库简介
经过更新之后,目前有三个ENAMINE数据库可以使用,分别介绍如下:
- Enamine REAL
- Enamine REAL-Diverse
- Enamine Advance
- Enamine HTS
2020/07/20从www.virtual-flow.org移值过来,包含了14.6亿化合物,供应商为enamine(上海陶素代理),需定制。
位置:$LIBRARY/enamine/ligand-library
todo.all生成与空间坐标:从www.virtual-flow.org在线获取。
包含了2100万的多样Real化合物,供应商为enamine(上海陶素代理),需定制。
位置:$LIBRARY/enamine-diverse-real-drug-like/ligand-library
todo.all生成与空间坐标:见数据库目录里的todo.all, 空间坐标解释见README。
2020年5月版本,包含了448388个化合物,供应商为enamine(上海陶素代理),现货。
位置:$LIBRARY/enamine-adv-202005/ligand-library
todo.all生成:见数据库目录里的todo.all,空间坐标解释见README。
2020年5月版本,包含了1756280个化合物,供应商为enamine(上海陶素代理),现货。
位置:$LIBRARY/enamine_hts_vfvs_202005/ligand-library
cloud
todo.all生成:见数据库目录里的todo.all, 空间坐标解释见README。
其中环境变量LIBRARY定义如下:
1 2 | export VFVS_ROOT=/public/software/.local/easybuild/software/virtualflow export LIBRARY=$VFVS_ROOT/libs |
虚拟筛选的准备
以BCR-ABL激酶抑制剂的虚拟筛选为例,假设你准备好了如下文件:
- Dokcing计算用蛋白文件:1iep_prot.pdbqt
- QVINA2用的Docking配置文件:config.txt
- VirtualFlow配置文件:ctrl.all
- 对接用的化合物列表:todo.all
该文件的设置主要与使用的计算节点核心数有关系,我这里准备了3各种情况:4核心(all.ctrl-c4)、8核心与16核心(all.ctrl-c16)节点的配置文件,这些配置文件已经配置好,适合于用qvina进行虚拟筛选。
在本算例中,用Enamine advance,todo.all文件在该数据库目录下。
Virtulflow的使用
1 设定项目文件目录
假设计划在HOME下的VFVS_ABL目录开始一个虚拟筛选计算,那么我们需要创建该目录做为管理该项目的目录。为了方便后续管理,并建立一个VFVS_DIR环境变量指向该目录:
1 2 3 | cd ~ mkdir VFVS_ABL export VFVS_DIR=/home/cloudam/VFVS_ABL |
2 准备input-files目录
2.1 创建input-files目录
首先,我们需要创建一个input-files,用于保存输入文件。
1 2 | cd $VFVS_DIR
mkdir input-files |
2.2 指定用于虚拟筛选的数据库
鉴于我们需要对Enamine advance进行虚拟筛选,所以将该该库放入input-files目录,用软链接即可:
1 | ln -sf $LIBRARY/enamine-adv-202005/ligand-library $VFVS_DIR/input-files |
2.3 创建受体文件目录并放置受体文件
1 2 | mkdir -p $VFVS_DIR/input-files/receptors
cp 1iep_prot.pdbqt $VFVS_DIR/input-files/receptors |
2.4 创建对接场景目录并放置对接参数文件
1 2 | mkdir -p $VFVS_DIR/input-files/qvina02_rigid_receptor1 cp config.txt $VFVS_DIR/input-files/qvina02_rigid_receptor1/config.txt |
3. 准备tools目录
先将Virtual flow的tools复制到项目目录
1 | cp -fr $VFVS_ROOT/vfvs/tools $VFVS_DIR |
复制todo.all到tools里:
1 | cp $VFVS_DIR/input-files/ligand-library/todo.all $VFVS_DIR/tools/templates/todo.all |
复制Virtualfollow配置文件
1 | cp all.ctrl-c4 $VFVS_DIR/tools/templates/all.ctrl |
其中all.ctrl-c4是我实先准备好的Virtual Flow配置文件,适合于4核心计算节点。相应的有8核心与16核心(all.ctrl-c16)的配置文件。
检查一下现在的项目文件里的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | [cloudam@master 1_input]$ tree . ├── input-files │ ├── ligand-library -> /public/software/.local/easybuild/software/virtualflow/libs/enamine-adv-202005/ligand-library │ ├── qvina02_rigid_receptor1 │ │ └── config.txt │ └── receptors │ └── 1iep_prot.pdbqt ├── output-files └── tools ├── bin │ ├── qvina02 │ ├── qvina_w │ ├── smina │ ├── sqs │ ├── time_bin │ ├── vina │ ├── vina_carb │ └── vina_xb ├── slave │ ├── continue-jobline.sh │ ├── copy-templates.sh │ ├── copy-templates.sh.clodam │ ├── copy-templates.sh.old │ ├── exchange-continue-jobline.sh │ ├── exchange-jobfile.sh │ ├── prepare-todolists-cloudam.sh │ ├── prepare-todolists.sh │ ├── prepare-todolists.sh.old.old │ ├── show_banner.sh │ ├── submit.sh │ └── sync-jobfile.sh ├── templates │ ├── all.ctrl │ ├── one-queue.sh │ ├── one-step.sh │ ├── template1.lsf.sh │ ├── template1.pbs.sh │ ├── template1.sge.sh │ ├── template1.slurm.sh │ ├── template1.slurm.sh.old │ ├── template1.torque.sh │ └── todo.all ├── tmp │ └── README.md ├── vf_continue_all.sh ├── vf_continue_jobline.sh ├── vf_prepare_folders.sh ├── vf_redistribute_collections_multiple.sh ├── vf_redistribute_collections_single.sh ├── vf_report.sh ├── vf_start_jobline.sh └── vf_start_jobline.sh.old 10 directories, 41 files |
4. 准备工作流目录(workflow)
1 2 | cd $VFVS_DIR/tools ./vf_prepare_folders.sh |
5. 开始虚拟筛选
假设我们用200个节点进行虚拟筛选,用vf_start_jobline.sh开始虚拟筛选:
1 2 3 | cd $VFVS_DIR/tools NODE_NUMBER=200 ./vf_start_jobline.sh 1 $NODE_NUMBER templates/template1.slurm.sh submit 1 |
6. 进度查看与对接结果统计
1 2 | cd $VFVS_DIR/tools ./vf_report.sh -c vs -d qvina02_rigid_receptor1 |
虚拟筛选的后处理:列出top化合物与pose提取
本部分内容需要openbabel支持,因此需要预先加载OpenBabel的虚拟环境。在cloudam,虚拟环境rdkit已经预先安装好了openbabel:
1 2 3 | module add Anaconda3/2020.02 source activate conda activate rdkit |
1. 复制VFTools
首先需要将VFTools复制一份到本地:
1 2 3 | cd $VFVS_DIR cp -r $VFVS_ROOT/vftools/VFTools . export PATH=$VFVS_DIR/VFTools/bin:$PATH |
2. 排序并获得top化合物列表
在VirtualFlow计算完毕,还可以对所有的化合物进行排序。创建专用的目录pp,键入命令:
1 2 3 | cd $VFVS_DIR mkdir -p pp/ranking cd pp/ranking |
对所有的化合物排序:
1 | vfvs_pp_ranking_all.sh ../../output-files/complete/ 2 meta_tranche |
如果不能正常使用,请键入:
1 | vfvs_pp_ranking_all.sh -h |
根据帮助,确保参数都是正确的。同时确认已将VFTools/bin加入到PATH环境变量。
给出打分最佳前100个化合物的列表,保存为compound:
1 | head -n 100 qvina02_rigid_receptor1/firstposes.all.minindex.sorted.clean > compounds |
3.提取打分最靠前100个化合物的对接结合模式(pose)
创建新的目录,用来保存pose
1 2 3 | cd $VFVS_DIR/pp mkdir -p docking_poses/qvina02_rigid_receptor1 cd docking_poses/qvina02_rigid_receptor1 |
根据第上一步的列表(componds),将top 100化合物的pose提取出来:
1 2 | cp ../../ranking/compounds . #复制列表到当前目录 vfvs_pp_prepare_dockingposes.sh ../../../output-files/complete/qvina02_rigid_receptor1/results/ meta_tranch compounds dockingsposes overwrite |
生成三个文件,两个目录:
1 | compounds compounds.energies compounds.energies.uniq.csv dockingsposes dockingsposes.plain |
每个打分最佳的pose已经按排名顺序以PDB格式保存在dockingsposes.plain目录里,可以直接用可视化软件对结果进行分析,推荐用FlareViewer(免费)做为可视化软件对结果进行分析。
致谢
Enamine 2020年5月份版本的HTS与Advance数据库由上海陶素提供,网站:https://www.tsbiochem.com
计算费用
以最近一个用户的虚拟筛选为例,说明费用情况,帮助大家做合理的预算.
- 硬件配置与单价
- 数据库
- 虚拟筛选软件与主要参数
- 总费用
16核心,每核心1GB内存, 机时费用为0.1元/核小时。
Enamine HTS(2020 May版本)共175万化合物。
用QVINA2进行虚拟筛选,exhaustiveness = 8,每个化合物仅进行一次计算。
最终结算费用为2300元。
文献
- 肖高铿,李青松. 云计算教程 | 在云端用VirtualFlow实现超高通量虚拟筛选. http://blog.molcalx.com.cn/2020/07/20/cloudam-virtualflow-htvs.html
使用咨询
Virtual Flow布署于云E算力平台,一款提供机时的云计算产品,注册即可使用。