(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210449861.2
(22)申请日 2022.04.26
(71)申请人 南京邮电大 学
地址 210023 江苏省南京市 鼓楼区新模范
马路66号
(72)发明人 吴建盛 朱翔宇 丁季 唐诗迪
胡海峰
(74)专利代理 机构 南京苏科专利代理有限责任
公司 32102
专利代理师 姚姣阳
(51)Int.Cl.
G16C 20/50(2019.01)
G16C 20/90(2019.01)
G16C 20/70(2019.01)
G16C 10/00(2019.01)G06F 9/50(2006.01)
(54)发明名称
基于GPU加速的分子对接方法和装置
(57)摘要
本发明公开了一种基于GPU加速的分子对接
方法及装置, 包括: CP U端进行数据准备以及设置
OpenCL环境, 其中数据准备包括对接盒子及对接
盒子的参数准备, 随后将数据传输到GPU端; GPU
端计算对接盒子中格点处原子和受体的原子的
相互作用力并生成网格缓存表; CPU端生成配体
的多个随机分子构象并传到GP U端, GPU端利用蒙
特卡罗的迭代局部搜索算法优化随机分子构象
并打分, 得到构象并传输至回CPU端; CPU端将构
象进行优化和排序; 依次对配体库中所有配体进
行上述优化步骤; 使用打分函数ΔvinaRF20对CPU
端中的分子构象进行打分并排序。 本发明通过
ΔvinaRF20对构象重新 打分并排序, 提高了输 出构
象的准确性; 提出了一种基于OpenCL的AutoDock
Vina异构并行加速 结构, 降低了对接时间和药物
研发成本。
权利要求书3页 说明书17页 附图4页
CN 114783545 A
2022.07.22
CN 114783545 A
1.一种基于GPU加速的分子对接方法, 用于将受体和配体库中的配体进行分子对接, 其
特征在于, 包括如下步骤:
S1、 CPU端进行数据准备以及设置OpenCL环境, 其中, 数据准备包括对接盒子及对接盒
子的参数准备, 并将准备完成的数据传输 到GPU端;
S2、 所述对接盒子中包括若干个格点, GPU端的内核函数一用于计算所述格点和所述受
体中的原子之间的相互作用力, 并生成网格缓存表;
S3、 CPU端生成配体的多个随机分子构象并传到GPU端, GPU端的内核函数二利用蒙特卡
罗的迭代局部搜索算法优化随机 分子构象并打分, 得到多个构象, 并将多个构象传输至CPU
端;
S4、 CPU端将S3输出的多个构象进行优化和排序, 得到分子构象;
S5、 重复S3和S4, 直至所述配 体库中所有配 体均完成S3和S4;
S6、 使用ΔvinaRF20对CPU端中的所有分子构象进行打分并排序, 保留排名靠前的若干个
分子构象, 实现药物的虚拟筛 选。
2.根据权利要求1所述的基于GPU加速的分子对接方法, 其特征在于, S1中数据准备包
括:
S11、 读取文件, 包括:
读取受体文件, 所述受体文件的格式为.pdbqt;
读取对接盒子参数文件, 所述对接盒子参数文件 包括:
所述受体文件的路径;
所述配体库的路径, 所述配 体库包括若干个所述配 体;
所述对接盒子的大小, 分别为size_x、 size_y、 size_z;
所述对接盒子的中心位 点的三维坐标,分别为center_x、 center_y、 center_z;
线程数的大小为thread;
S12、 所述OpenCL环境的设置, 包括:
查询平台, 使用所述OpenCL中的clGetPaltformIDs()函数获取可用的OpenCL环境的数
量, 并初始化 一个可用的OpenCL环境;
查询设备, 使用所述OpenCL中的clGetDeviceIDs()函数获取平台中设备的数量, 并初
始化一个可用的设备;
创建上下文, 所述上下文中包括内存、 程序以及内核对象, 使用clCreateContext()函
数对初始化后的设备创建上 下文, 用于设备与程序以及设备与设备之间的通信;
创建命令队列, 使用cl_queue_pr operties()的属性值创建命令队列, 所述命令队列能
够操作所述上 下文中的多个对象;
创建程序对象, 使用clCreateProgramWithSource()函数对OpenCL环境中的源代码创
建程序对象, 使用clBui ldProgram()函数为指定的设备创建程序对象;
创建内核对象, 使用clCreate Kernel()函数创建两个内核对象;
设置内核参数, 使用clSetKernelArg()函数对所述内核对象设置内核参数, 便于执行
所述内核对象;
执行内核, 使用clEnqueueNDRangeKernel()函数调用所述命令队列, 使得所述内核对
象在设备进行排队;权 利 要 求 书 1/3 页
2
CN 114783545 A
2S13、 生成分子内能量表, 用于计算所述分子构象的分子内能量;
S14、 根据随机数种子生成随机数查找 表。
3.根据权利要求1所述的基于GPU加速的分子对接方法, 其特 征在于, S2具体包括:
将所述对接盒子划分成多个格子, 所述格点位于所述格子的顶角处, 划分后所述格子
的大小为l* m*n, 得到所述格点的量化坐标, 所述内核函数一中包括与若干个所述格点相对
应的若干个线程;
将所述量化坐标转换为受体中的真实坐标;
以所述格点为中心建立正方体, 所述正方体内包含所述受体的原子, 假设所述格点处
存在原子, 计算所述格点处原子与受体原子的相互作用力, 将所述相互作用力进 行存储, 得
到所述网格缓存表, 并将所述网格缓存表存放在全局内存中, 供 所述GPU线程共享。
4.根据权利要求3所述的基于GPU加速的分子对接方法, 其特征在于: 所述正方体的大
小为
所述格点与所述配体原子之间的距离小于
时, 计算所述格点 处
原子与所述受体原子的相互作用力, 所述格点处原子的类型共有17种。
5.根据权利要求2所述的基于GPU加速的分子对接方法, 其特 征在于, S3具体包括:
S31、 随机分子构象的表示方式如下:
随机分子构象在搜索空间中的三维坐标, Positi on=(a,b,c);
分子构象的四元 数, orientati on=(R0,R1,R2,R3);
分子构象中可旋转键的扭转角度, torsi on=(t0,t1,t2);
S32、 每个随机分子构象对应一个线程, 每个线程中均进行蒙特卡罗的迭代局部搜索算
法, 线程数为80 00;
S33、 将内核函数二中每 个线程得到的分子构象均传到 CPU端。
6.根据权利要求5所述的基于GPU加速的分子对接方法, 其特 征在于, S32包括:
S321、 对随机分子构象进行扰动;
S322、 对随机分子构象进行BFGS, 包括:
a、 将海森矩阵初始化 为单位矩阵;
b、 对随机分子构象进行三维空间的转换, 得到随机分子构象中每 个原子的空间坐标;
c、 使用打分函数计算随机分子构象的能量, 随机分子构象的能量包含分子间能量与分
子内能量, 通过 所述网格缓存表计算分子间能量, 通过分子内能量表计算分子内能量;
d、 计算构象中每个原子的空间坐标的导数, 将其转换成随机分子构象在搜索空间中的
三维坐标、 四元 数、 所有可旋转键的扭转角度的导数;
e、 使用Armijo ‑Goldstein准则进行黄金搜索得到新的分子构象, 初始化步长alpha=
1, 计算新的分子构象能量并计算分子构象在搜索空间中的三维坐标、 四元数、 所有可旋转
键的扭转角度的导数, 使用更新前后的分子构象的能量判断步长是否需要更新, 若需要更
新则alpha=alpha/2, 继续进行 下一轮黄金搜索, 否则结束搜索;
f、 判断更新后分子构象的导数 是否满足‖ 导数‖ ≥1e‑5,若满足条件则更新海 森矩阵;
g、 判断e、 f循环次数 是否达到10次, 若满足则输出为BFGS最终得到的分子构象;
S323、 使用接受准则判断是否 接收所述S32 2得到的分子构象;
S324、 判断S322和S323 的循环次数是否达到设定值, 循环次数达到设定值后输出本线
程的分子构象。权 利 要 求 书 2/3 页
3
CN 114783545 A
3
专利 基于GPU加速的分子对接方法和装置
文档预览
中文文档
25 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共25页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 07:15:20上传分享