CN114373509A - 一种基于GPU加速AutoDock Vina的方法 - Google Patents
一种基于GPU加速AutoDock Vina的方法 Download PDFInfo
- Publication number
- CN114373509A CN114373509A CN202111569787.XA CN202111569787A CN114373509A CN 114373509 A CN114373509 A CN 114373509A CN 202111569787 A CN202111569787 A CN 202111569787A CN 114373509 A CN114373509 A CN 114373509A
- Authority
- CN
- China
- Prior art keywords
- conformation
- molecular
- conformations
- opencl
- gpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16B—BIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
- G16B35/00—ICT specially adapted for in silico combinatorial libraries of nucleic acids, proteins or peptides
- G16B35/10—Design of libraries
Landscapes
- Engineering & Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Chemical & Material Sciences (AREA)
- Biochemistry (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biotechnology (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于GPU加速AutoDock Vina的方法及实现,该方法通过增加初始随机配体构象的数目来扩展蒙特卡罗的迭代局部搜索方法中对接线程的并行规模,减少蒙特卡罗的迭代局部搜索方法中的搜索步数,利用OpenCL实现AutoDock Vina中CPU和GPU异构并行结构以此达到更高水平的并行和加速能力。现代药物筛选需要面对海量的化合物数据,目前的分子对接技术无法满足现实需求。采用本发明的方法,可以在保证不损失对接精度的同时大幅加快分子对接和虚拟筛选的速度,满足大型化合物数据库分子对接的实际需求。
Description
技术领域
本发明涉及一种基于GPU加速AutoDock Vina的方法,属于硬件加速药物设计技术领域。
背景技术
分子对接是药物研发早期的重要过程,它利用分子对接软件对分子化合物与药物靶标进行分子对接运算,再进行活性化合物筛选。分子对接可快速从几十至上百万分子中,选出具有可能成药的活性化合物,大大降低实际筛选化合物数目,缩短研究周期,降低药物研发的成本。
目前常用的一些分子对接软件有AutoDock4、AutoDock Vina、AutoDock Vina1.2.0、AutoDock FR、AutoDock Crank Pep、AutoDock-GPU等,其中 AutoDock Vina使用最为广泛。在CASF-2016的评分函数对比评测中,AutoDock Vina是所有分子对接工具中对接能力最高的软件,它使用了基于蒙特卡罗的局部迭代搜索方法和CPU的多线程性来提高分子对接的速度和精度,AutoDock Vina算法从整体上是串行设计,后面代码运行依赖于前面的输出。
目前药物虚拟筛选的化合物数量通常在107以下,这种有限的化学搜索空间将严重影响先导化合物筛选的成功率。幸运的是,据估计类药小分子化合物的整个化学空间可望达到1060。在虚拟筛选时,化合物的规模非常重要,筛选的候选化合物越多,则假阳性率越低,先导化合物质量越好。目前,AutoDock Vina并行能力主要依靠算力堆叠以及资源和任务的优化配置。例如VirtualFlow 平台,它利用CPU以并行的方式在计算集群上完成超大规模数据库的虚拟筛选任务。但是,这么巨大的资源投入和开销,还有用户的高门槛,将严重限制 AutoDock Vina在现代药物设计中面临巨大化合物数据时的广泛使用。因此,为了满足现代药物筛选的迫切需求,我们需要大幅加快AutoDock Vina在大型化合物数据库上的筛选速度。
GPU(Graphics Processing Unit)是并行可编程处理器,具有数千个计算核心,可提供强大的计算性能。GPU性价比较高且易于开发,并且有完善的开发标准,例如并行计算架构(CUDA)和开放运算语言(OpenCL)。目前AutoDock Vina 在GPU上加速面临着两大困难。第一,AutoDock Vina算法是基于局部扰动的蒙特卡罗搜索算法,即强依赖迭代算法,在整体上为串行性设计;第二,每个配体文件格式化为异构树结构,每个节点通过递归遍历树状结构。设计新的算法并实现AutoDock Vina在GPU上的加速具有非常重要的应用价值,可以大幅降低投入与开销,开发简单方便,有望解决AutoDock Vina在现代药物设计面临巨大化合物数据的巨大挑战。
发明内容
鉴于现有技术中存在的上述问题,本发明提供一种基于GPU加速AutoDock Vina的方法,能够实现AutoDock Vina的算法上大规模并行,减少大型数据库虚拟筛选的成本,能广泛应用于个人计算机、服务器或云计算上的大规模药物虚拟筛选。
为达成上述目的,本发明所采用的技术方案如下:一种基于GPU加速 AutoDockVina的方法,包括如下步骤:
步骤1,利用开放运算语言OpenCL实现AutoDock Vina中CPU与GPU 的异构并行结构,将AutoDock Vina中所有线程映射到GPU计算核心;所述异构并行结构由主机端和设备端组成,二者分别在CPU和GPU中运行;主机端首先进行运行,其运行产生的数据传送至设备端,再经设备端运行后得到最终构象,并将所述最终构象传回主机端进行操作;
步骤2,所述主机端的运行过程分为两部分,分别为设备端运行前部分和设备端运行后部分,并且在设备端运行前,主机端需先进行数据准备等任务;
步骤3,运行设备端,在设备端中,通过增加初始随机构象的数目来减少 AutoDockVina中每个线程的搜索步数,通过蒙特卡罗迭代局部搜索方法对每个线程中的构象不断进行优化,并输出最后优化的构象结果;
步骤4,将设备端运行后的数据回传至主机端,并在主机端进行步骤2中设备端运行后的操作,包括根据构象的分数对其进行排序,并利用BFGS对构象进行更精细的优化,输出最终排名较前的几个构象。
进一步的,所述步骤2中,主机端在设备端运行前的阶段,包括以下具体步骤:
步骤2.1,读取文件,由主机端读取配体和受体的.pdbqt文件,以及对接盒子参数的config.txt文件;
步骤2.2,设置OpenCL环境,包括识别并选择平台、设备、创建OpenCL 上下文、创建命令队列、创建程序对象和内核对象;
选择OpenCL平台:使用时需要利用OpenCL中clGetPaltformIDS函数查询、初始化计算机中所有可用的OpenCL平台,并选择其中一个可用平台进行使用,该可用平台是通过OpenCL中clGetPaltformIDS函数获取并初始化平台;
选择OpenCL设备:利用OpenCL中clGetDeviceIDs函数指定执行内核代码的计算设备;
创建OpenCL上下文:通过上下文管理来自同一平台的计算设备;
创建命令队列:通过命令队列以用于操作OpenCL上下文中的内存、程序和内核对象;
创建程序对象:利用OpenCL C源代码或二进制文件来创建程序对象;
创建内核对象:使用cl_kernel数据结构表示内核对象;
步骤2.3,生成网格缓存,用于通过三线插值法计算分子构象与受体的分子间能量;
步骤2.4,生成分子内能量表,用于计算构象的分子内能量;
步骤2.5,生成随机数生成表,用于生成随机数值;
步骤2.6,生成随机分子构象,用于蒙特卡罗算法的初始构象。网格缓存、随机数生成表、分子内能量表、随机分子构象分配在只读内存的设备存储器中;
步骤2.7,将前述步骤中产生的数据传递至设备端。
进一步的,所述步骤2中,主机端在设备端运行后的阶段,包括以下具体步骤:
步骤2.8,将设备端中每个线程得到的最优构象均传到主机端的内存中,对主机端得到的分子构象进行排序;按照分子构象的分数高低,利用C++中内置函数sort对其进行排序操作,其中分数越低,排名越靠前;
步骤2.9,保留排名较前的多个构象;AutoDock Vina中设定的保留构象数目是20,因此保留排名在前的20个分子构象;
步骤2.10,对构象进行更具体的优化;即利用BFGS对步骤2.7中的20个构象进行优化,利用评分函数计算优化后的构象的分数,根据分子构象在搜索空间中的位置x、y、z,计算两个构象之间的均方根误差,当均方根误差的数值小于等于1时,只输出两个构象中能量较低的构象最终输出的构象数目不超过9 个。
进一步的,所述步骤2中,由于通过AutoDock Vina计算分子构象能量,它将每个构象视为一个异构树结构,其节点与其结构信息和指向其子节点的指针一起存储,每个节点都通过深度优先搜索方法遍历,这种遍历方式是通过递归实现的,而OpenCL不支持任何递归方法,此外,不同的配体会产生完全不同的异构树结构,导致无法通过OpenCL实现,因此将异构树重新构建为一个列表,其中每个节点都按其遍历顺序存储,遍历列表即可得到所有节点信息;再创建一个子节点查找表来表示异构树中节点之间的关系;如果在异构树两个节点是相连的,两个节点分别为父节点与子节点,则在查找表中父节点所在行与子节点所在列重合的位置上标注为T;反之,如果不相连,则在查找表中两个节点所在行列重合的位置上标注为F。
进一步的,所述步骤3中,设备端运行的具体步骤如下:
步骤3.1,将主机端生成的随机分子构象分配到设备端的线程中,每一个构象对应一个线程,其中总的线程数由GPU的计算性能决定。随机分子构象通过其位置、方向、所有可旋转键的扭转角度表示,即POT;
步骤3.2,确定每个线程的搜索步数;
步骤3.3,采用BFGS算法对分子构象进行优化,利用接受准则确定是否接受优化后的构象。
进一步的,所述步骤3.3的具体步骤为:
步骤3.3.1,首先对分子构象进行随机扰动;所述随机扰动为随机改变表示分子构象的三组数值中的一组,分别为:
对分子构象在搜索空间中的三维坐标进行基于均匀分布随机数产生的扰动;
对分子构象的四元数进行基于正态分布随机数产生的扰动;
对分子构象中可旋转键的扭转角度中某一具体维度值替换为一个符合均匀分布的随机数;
步骤3.3.2,初始化海森矩阵:将海森矩阵初始化为单位矩阵;
对配体进行三维空间的转换:即根据分子构象的位置、方向、所有可旋转键的扭转角度以得到分子构象中每个原子的空间坐标;
步骤3.3.3,通过评分函数对分子构象与受体结合后的自由能进行评估,包括:
分子间能量:根据构象中每个原子的空间坐标,利用三线性插值方法查找网格缓存得到每个配体与受体之间的原子对的能量;
分子内能量:根据查找分子内能量表得到配体自身的能量;
将分子间能量与分子内能量相加得到总能量;
步骤3.3.4,计算构象中每个原子的空间坐标的导数,将其转成构象的POT 的导数;
步骤3.3.5,利用Armijo-Goldstein准则判断经过一维搜索后的步长是否满足条件,若满足条件则更新海森矩阵,再判断循环次数是否达到条件,不满足则继续更新步长;如果满足条件则得到优化后的构象;其中更新步长的条件为 ||导数||≥1e-5,循环次数为10;
步骤3.3.6,利用接受准则比较扰动前和优化后构象的能量大小,来确定是否接受优化后的构象;如果优化后的构象被接受,对构象进行进一步比较能量并优化,记录更好的构象,再判断搜索步数是否达到设定值;如果优化后的构象不被接受,直接判断搜索步数是否达到设定值;如果搜索步数未达到设定值则对分子构象再进行扰动,如果搜索步数达到设定值则输出该线程中的最佳分子构象。
进一步的,计算每个线程搜索步骤的合适数值,公式为:0.24*Natom+ 0.29*Nrot-5.74,若该公式得到的数值为小数,则向下取整,最终得到的整数为搜索步数,其中Natom为配体的原子数目,Nrot为配体中可旋转键的数目。
与现有技术相比,本发明的有益效果是:当进行大型化合物数据库筛选时,使用AutoDock Vina需要花费大量的时间。由于AutoDock Vina的算法难以实现并行化,现有的分子对接软件的加速方法不适用于AutoDock Vina,无法达到理想的加速效果;如果使用多CPU进行AutoDock Vina加速,会大大增加药物研发的成本,造成不必要的开销。
利用本方法后可以大大降低大型化合物数据筛选所需时间,缩短研究周期,更快得到先导化合物。本方法中使用的GPU具有性价比高、计算性能好和易于开发的特点,使得本方法能广泛应用于个人计算机、服务器或云计算上的大规模药物虚拟筛选。本方法降低了药物研发的成本、时间,以及用户的使用门槛。
附图说明
图1为本发明的整体流程图。
图2为本发明中步骤102的流程图。
图3为本发明中步骤103的流程图。
图4为本发明中步骤203的构象的异构树结构。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
需要说明的是,以下实施例所用GPU型号为NVIDIA GeForce GTX 1060 6GB,CPU型号为Intel(R)Core(TM)i7-8700 CPU@3.21GHz,本发明对此不进行限定。
如图1所示,本申请的一种基于GPU加速AutoDock Vina的方法流程示意图,包括以下步骤:
步骤101:利用OpenCL在AutoDock Vina中实现CPU、GPU的异构并行结构,该结构分为主机端和设备端。
步骤102:在设备端运行前,主机端进行数据准备等任务。
设备端运行前,主机端具体工作如图2所示,具体包括:
步骤201:读取文件,文件内容如表1、表2所示,为2bm2的配体文件:
表1
表2
表3所示为2bm2的受体部分文件:
表3
表4所示为对接盒子参数的文件:
表4
表4中参数包括:receptor:2bm2的受体文件所在路径;
ligand:2bm2的配体文件所在路径;
center_x、center_y、center_z:对接盒子的中心位置;
size_x、size_y、size_z:对接盒子的大小;
thread:线程数;
search_depth:每个线程的搜索步数,由0.24*Natom+0.29*Nrot-5.74得到,若数值为小数,则向下取整,最终得到的整数为搜索步数。
以下实施例中所用线程数为1000,搜索步数为4。
步骤202:设置OpenCL环境;
以下实施例中所用OpenCL平台为NVIDIA
步骤203:随机构象数据准备;
将构象的异构树结构转换为列表以及子节点查找表,如图4所示;
对异构树按从上到下、从左到右的顺序进行遍历,得到表6所示的列表,列表有33行:
0 | 节点0 |
1 | 节点1 |
2 | 节点2 |
3 | 节点3 |
4 | 节点4 |
5 | 节点5 |
6 | 节点6 |
7 | 节点7 |
… | … |
32 | … |
表6
表示节点之间关系的子节点查找表如表7所示:
表7
由图4可知,节点0为节点1的父节点,则表7的第二行第三列中值为T;节点1与节点4没有相连,则表7中第三行第六列中值为F。
步骤204:将数据传到设备端。
C:分子构象,
x、y、z:分子构象在搜索空间中的位置,
a、b、c、d:分子构象的四元数,
Nrot:可旋转键的个数。
步骤103:设备端运行,
图3为设备端中一个线程的具体工作,步骤103中多个线程同时完成图3所示
工作,本步骤103中一个线程的具体工作包括:
步骤301:对分子构象加入随机扰动;
随机改变表示分子构象的三组数值中的一组,分别为:
分子构象在搜索空间中的三维坐标:x、y、z,对该组数值进行基于均匀分布随机数产生的扰动;
分子构象的四元数:a、b、c、d,对该组数值进行基于正态分布随机数产生的扰动;
步骤302:利用评分函数对分子构象与其受体结合后的自由能进行评估;
分子构象与其受体结合后的自由能公式为:e=einter+eintra,
e:分子构象与其受体结合后的自由能,
einter:分子构象和受体之间的相互作用力,
eintra:分子构象内原子之间的相互作用力。
步骤303:利用BFGS方法对构象进行优化,通过计算F的梯度迭代到自由能更低的分子构象。计算构象中每个原子的空间坐标的导数,将其转成构象的POT 的导数;
利用Armijo-Goldstein准则判断经过一维搜索后的步长是否满足条件,满足条件则更新海森矩阵,再判断循环次数是否达到条件,不满足则继续更新步长。如果满足条件则得到优化后的构象。其中更新步长的条件为||导数||≥1e-5,循环次数为10。
步骤304:判断优化后的构象是否满足接受准则,
P:接受优化后构象的概率,
e0:扰动前分子构象与其受体结合后的自由能,
eopt:分子构象优化后与其受体结合的自由能,
当优化后的分子构象不满足接受准则,继续步骤305,
当优化后的分子构象满足接受准则,更新分子构象,继续步骤302、303,记录自由能更低的分子构象,并继续步骤305,
步骤305:判断是否达到搜索步数的要求,
当搜索步数未达到要求,继续步骤301,
当搜索步数达到要求,输出该线程最佳分子构象。
每个线程得到的最佳构象存放于GPU的全局内存中。
表8为本实施例运行后出现结果:
表8
mode为分子构象的模型,表8中最终输出9个较好的分子构象,
affinity为分子构象与受体结合后的亲和力,
dist from rmsdl.b.为相对于最佳分子构象模型计算得到的均方根误差的下限,best mode rmsdu.b.为相对于最佳分子构象模型计算得到的均方根误差的上限。
表9、表10为2bm2输出的最好的分子构象数据,
以下数据由表8中2bm2_ligand_out.pdbqt文件得到,
表9
表10
REMARK VINA RESULT:-8.3 0.000 0.000中-8.6为该分子构象的结合亲和力。
以上对本申请所提供的一种基于GPU加速AutoDock Vina的方法及实现进行了具体的介绍,本文应用了具体个例对本申请的原理及实施方式进行了详细阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对本领域的一般技术人员,依据本申请的方法,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种基于GPU加速AutoDock Vina的方法,其特征在于:
所述方法包括如下步骤:
步骤1,利用开放运算语言OpenCL实现AutoDock Vina中CPU与GPU的异构并行结构,将AutoDock Vina中所有线程映射到GPU计算核心;所述异构并行结构由主机端和设备端组成,二者分别在CPU和GPU中运行;主机端首先进行运行,其运行产生的数据传送至设备端,再经设备端运行后得到最终构象,并将所述最终构象传回主机端进行操作;
步骤2,所述主机端的运行过程分为两部分,分别为设备端运行前部分和设备端运行后部分,并且在设备端运行前,主机端需先进行数据准备等任务;
步骤3,运行设备端,在设备端中,通过增加初始随机构象的数目来减少AutoDock Vina中每个线程的搜索步数,通过蒙特卡罗迭代局部搜索方法对每个线程中的构象不断进行优化,并输出最后优化的构象结果;
步骤4,将设备端运行后的数据回传至主机端,并在主机端进行步骤2中设备端运行后的操作,包括根据构象的分数对其进行排序,并利用BFGS对构象进行更精细的优化,输出最终排名较前的几个构象。
2.根据权利要求1所述的基于GPU加速AutoDock Vina的方法,其特征在于:所述步骤2中,主机端在设备端运行前的阶段,包括以下具体步骤:
步骤2.1,读取文件,由主机端读取配体和受体的.pdbqt文件,以及对接盒子参数的config.txt文件;
步骤2.2,设置OpenCL环境,包括识别并选择平台、设备、创建OpenCL上下文、创建命令队列、创建程序对象和内核对象;
选择OpenCL平台:使用时需要利用OpenCL中clGetPlatFormIDs函数查询、初始化计算机中所有可用的OpenCL平台,并选择其中一个可用平台进行使用,该可用平台是通过OpenCL中clGetPlatFormIDs函数获取并初始化平台;
选择OpenCL设备:利用OpenCL中clGetDeviceIDs函数指定执行内核代码的计算设备;
创建OpenCL上下文:通过上下文管理来自同一平台的计算设备;
创建命令队列:通过命令队列以用于操作OpenCL上下文中的内存、程序和内核对象;
创建程序对象:利用OpenCL C源代码或二进制文件来创建程序对象;
创建内核对象:使用cl_kernel数据结构表示内核对象;
步骤2.3,生成网格缓存,用于通过三线插值法计算分子构象与受体的分子间能量;
步骤2.4,生成分子内能量表,用于计算构象的分子内能量;
步骤2.5,生成随机数生成表,用于生成随机数值;
步骤2.6,生成随机分子构象,用于蒙特卡罗算法的初始构象。网格缓存、随机数生成表、分子内能量表、随机分子构象分配在只读内存的设备存储器中;
步骤2.7,将前述步骤中产生的数据传递至设备端。
3.根据权利要求1所述的基于GPU加速AutoDock Vina的方法,其特征在于:所述步骤2中,主机端在设备端运行后的阶段,包括以下具体步骤:
步骤2.8,将设备端中每个线程得到的最优构象均传到主机端的内存中,对主机端得到的分子构象进行排序;按照分子构象的分数高低,利用C++中内置函数sort对其进行排序操作,其中分数越低,排名越靠前;
步骤2.9,保留排名较前的多个构象;AutoDock Vina中设定的保留构象数目是20,因此保留排名在前的20个分子构象;
步骤2.10,对构象进行更具体的优化;即利用BFGS对步骤2.7中的20个构象进行优化,利用评分函数计算优化后的构象的分数,根据分子构象在搜索空间中的位置x、y、z,计算两个构象之间的均方根误差,当均方根误差的数值小于等于1时,只输出两个构象中能量较低的构象,最终输出的构象数目不超过9个。
4.根据权利要求2所述的基于GPU加速AutoDock Vina的方法,其特征在于:所述步骤2中,由于通过AutoDock Vina计算分子构象能量,它将每个构象视为一个异构树结构,其节点与其结构信息和指向其子节点的指针一起存储,每个节点都通过深度优先搜索方法遍历,这种遍历方式是通过递归实现的,而OpenCL不支持任何递归方法,此外,不同的配体会产生完全不同的异构树结构,导致无法通过OpenCL实现,因此将异构树重新构建为一个列表,其中每个节点都按其遍历顺序存储,遍历列表即可得到所有节点信息;再创建一个子节点查找表来表示异构树中节点之间的关系;如果在异构树两个节点是相连的,两个节点分别为父节点与子节点,则在查找表中父节点所在行与子节点所在列重合的位置上标注为T;反之,如果不相连,则在查找表中两个节点所在行列重合的位置上标注为F。
5.根据权利要求1所述的基于GPU加速AutoDock Vina的方法,其特征在于:所述步骤3中,设备端运行的具体步骤如下:
步骤3.1,将主机端生成的随机分子构象分配到设备端的线程中,每一个构象对应一个线程,其中总的线程数由GPU的计算性能决定。随机分子构象通过其位置、方向、所有可旋转键的扭转角度表示,即POT;
步骤3.2,确定每个线程的搜索步数;
步骤3.3,采用BFGS算法对分子构象进行优化,利用接受准则确定是否接受优化后的构象。
6.根据权利要求5所述的基于GPU加速AutoDock Vina的方法,其特征在于:所述步骤3.3的具体步骤为:
步骤3.3.1,首先对分子构象进行随机扰动;所述随机扰动为随机改变表示分子构象的三组数值中的一组,分别为:
对分子构象在搜索空间中的三维坐标进行基于均匀分布随机数产生的扰动;
对分子构象的四元数进行基于正态分布随机数产生的扰动;
对分子构象中可旋转键的扭转角度中某一具体维度值替换为一个符合均匀分布的随机数;
步骤3.3.2,初始化海森矩阵:将海森矩阵初始化为单位矩阵;
对配体进行三维空间的转换:即根据分子构象的位置、方向、所有可旋转键的扭转角度以得到分子构象中每个原子的空间坐标;
步骤3.3.3,通过评分函数对分子构象与受体结合后的自由能进行评估,包括:
分子间能量:根据构象中每个原子的空间坐标,利用三线性插值方法查找网格缓存得到每个配体与受体之间的原子对的能量;
分子内能量:根据查找分子内能量表得到配体自身的能量;
将分子间能量与分子内能量相加得到总能量;
步骤3.3.4,计算构象中每个原子的空间坐标的导数,将其转成构象的POT的导数;
步骤3.3.5,利用Armijo-Goldstein准则判断经过一维搜索后的步长是否满足条件,若满足条件则更新海森矩阵,再判断循环次数是否达到条件,不满足则继续更新步长;如果满足条件则得到优化后的构象;其中更新步长的条件为||导数||≥1e-5,循环次数为10;
步骤3.3.6,利用接受准则比较扰动前和优化后构象的能量大小,来确定是否接受优化后的构象;如果优化后的构象被接受,对构象进行进一步比较能量并优化,记录更好的构象,再判断搜索步数是否达到设定值;如果优化后的构象不被接受,直接判断搜索步数是否达到设定值;如果搜索步数未达到设定值则对分子构象再进行扰动,如果搜索步数达到设定值则输出该线程中的最佳分子构象。
7.根据权利要求5所述的基于GPU加速AutoDock Vina的方法,其特征在于:计算每个线程搜索步骤的合适数值,公式为:0.24*Natom+0.29*Nrot-5.74,若该公式得到的数值为小数,则向下取整,最终得到的整数为搜索步数,其中Natom为配体的原子数目,Nrot为配体中可旋转键的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111569787.XA CN114373509A (zh) | 2021-12-21 | 2021-12-21 | 一种基于GPU加速AutoDock Vina的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111569787.XA CN114373509A (zh) | 2021-12-21 | 2021-12-21 | 一种基于GPU加速AutoDock Vina的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114373509A true CN114373509A (zh) | 2022-04-19 |
Family
ID=81140902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111569787.XA Pending CN114373509A (zh) | 2021-12-21 | 2021-12-21 | 一种基于GPU加速AutoDock Vina的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114373509A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114783545A (zh) * | 2022-04-26 | 2022-07-22 | 南京邮电大学 | 基于gpu加速的分子对接方法和装置 |
-
2021
- 2021-12-21 CN CN202111569787.XA patent/CN114373509A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114783545A (zh) * | 2022-04-26 | 2022-07-22 | 南京邮电大学 | 基于gpu加速的分子对接方法和装置 |
CN114783545B (zh) * | 2022-04-26 | 2024-03-15 | 南京邮电大学 | 基于gpu加速的分子对接方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Browning et al. | A one-penny imputed genome from next-generation reference panels | |
Chakaravarthy et al. | Scalable single source shortest path algorithms for massively parallel systems | |
US10381106B2 (en) | Efficient genomic read alignment in an in-memory database | |
Qiao et al. | A fast parallel community discovery model on complex networks through approximate optimization | |
Lin et al. | Shentu: processing multi-trillion edge graphs on millions of cores in seconds | |
Curino et al. | Schism: a workload-driven approach to database replication and partitioning | |
Liu et al. | IMGPU: GPU-accelerated influence maximization in large-scale social networks | |
US8874547B2 (en) | Parameter-sensitive plans | |
EP2759952A1 (en) | Efficient genomic read alignment in an in-memory database | |
Ou et al. | Architecture-independent locality-improving transformations of computational graphs embedded in k-dimensions | |
El Zein et al. | Generating optimal CUDA sparse matrix–vector product implementations for evolving GPU hardware | |
Xu et al. | Efficient distributed smith-waterman algorithm based on apache spark | |
CN114860441A (zh) | 一种面向药物虚拟筛选的多线程协作的gpu加速方法 | |
Kässens et al. | UPC++ for bioinformatics: A case study using genome-wide association studies | |
Liao et al. | Prefetching on storage servers through mining access patterns on blocks | |
Jiang et al. | Hpc ai500 v2. 0: The methodology, tools, and metrics for benchmarking hpc ai systems | |
Shahroodi et al. | KrakenOnMem: a memristor-augmented HW/SW framework for taxonomic profiling | |
CN114373509A (zh) | 一种基于GPU加速AutoDock Vina的方法 | |
Fan et al. | An evaluation model and benchmark for parallel computing frameworks | |
Schäfer et al. | Libgeodecomp: A grid-enabled library for geometric decomposition codes | |
CN114783545B (zh) | 基于gpu加速的分子对接方法和装置 | |
CN112131244A (zh) | 一种化学反应搜索方法、装置及系统、图形处理器 | |
CN110048886A (zh) | 一种大数据分析任务的高效云配置选择算法 | |
Huang et al. | PFPMine: A parallel approach for discovering interacting data entities in data-intensive cloud workflows | |
Wang et al. | SaAlign: Multiple DNA/RNA sequence alignment and phylogenetic tree construction tool for ultra-large datasets and ultra-long sequences based on suffix array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |