(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210479528.6
(22)申请日 2022.05.05
(71)申请人 南京邮电大 学
地址 210003 江苏省南京市 鼓楼区新模范
马路66号
(72)发明人 胡海峰 黄琴琴 吴建盛
(74)专利代理 机构 南京苏科专利代理有限责任
公司 32102
专利代理师 杜春秋
(51)Int.Cl.
G06F 9/50(2006.01)
(54)发明名称
一种面向药物虚拟筛选的多线程协作的GPU
加速方法
(57)摘要
本发明涉及一种面向药物虚拟筛选的多线
程协作的GPU加速方法及实现, 该方法通过增加
初始随机配体构象的数目来减少蒙特卡罗的迭
代局部搜索方法中的搜索步数。 利用OpenCL实现
CPU和GPU异构并行结构以此达到更高水平 的并
行和加速能力。 该方法还通过构造GPU中全局内
存的结构来解决OpenCL中无法实现八叉树的问
题。 现代药物筛选需要面对海量的化合物数据,
在实际分子对接过程中, 有可能在对接之前事先
不知道靶区, 此时要将配体对接到蛋白质靶 标的
整个表面, 找到配体和受体最佳结合模式, 这个
过程称为盲对接, 常用的的对接软件很难满足盲
对接的要求。 采用本发明的方法, 可以在保证在
盲对接的情况下, 不损失对接精度的同时大幅加
快分子对接和虚拟筛选的速度, 满足大型化合物
数据库分子对接的实际需求。
权利要求书3页 说明书11页 附图5页
CN 114860441 A
2022.08.05
CN 114860441 A
1.一种面向药物 虚拟筛选的多线程协作的GPU加速方法, 其特 征在于, 包括以下步骤:
步骤1: 主机端 进行包含数据准备、 OpenCL配置在内的任务;
步骤2: 设备端运行——在设备端中, 每个线程执行多线程协作的蒙特卡罗迭代优化算
法, 输出每 个线程的最优分子构象; 设备端运行的具体步骤如下:
步骤2.1: 将主机端生成的随机分子构象分配到设备端的每一个线程中, 每一个构象对
应一个线程, 其中总的线程数thread在co nfig.txt文件中设置好;
步骤2.2: 将每 个线程的搜索步数searc h_depth设置为5;
步骤2.3: 采用多线程协作的蒙特卡罗迭代局部算法对分子构象进行优化; 具体操作如
下:
步骤2.3.1: 对分子构象进行随机扰动;
步骤2.3.2: 对扰动 后的分子构象进行G Check和I Check判断; 具体表现为:
G Check: 计算扰动后的分子构象与全局内存中构象的空间距离, 全局内存存储的是所
有线程进行两次拟牛顿算法BFGS优化后的最终构象, 然后筛选出空间距离小于截止半径R
的构象, 再计算待检测构象与截止半径R内的构象的N维度的欧式距离, 并按照欧氏距离由
近到远排序, 找到前N个最近的邻点构象, 若N个邻点构象中有一个满足启发 式条件, 则进 行
步骤2.3.3, 否则进行I Check;
I Check: 搜索 该线程的局部缓存中的分子构象, 局部缓存中存储的是该线程B FGS优化
过程中得到的所有构象, 计算扰动后的分子构象与局部缓存中构象的N 维度欧氏距离, 按照
N维度的欧式距离由近到远进 行排序, 找出前3N个最近的邻点构象, 若3N个邻点构象中有一
个满足启发式条件, 则进行步骤2.3.3; 若不满足则退出该次搜索, 从步骤2.3.1处重新开
始;
G Check中寻找空间最近邻构 象的方法是: 将每次BFGS优化的最终构 象存储在八叉树
的结构中, 八叉树的结构是递归实现的, 八叉树的内存空间是动态分配的;
步骤2.3.3: 使用BFGS方法对构象进行优化, 将BFGS优化过程 中得到的所有构象存储在
局部缓存中;
步骤2.3.4: 比较扰动前和优化后构象的能量大小, 来确定是否接受优化后的构象; 如
果优化后的构象被接受, 进行步骤2.3.2和2.3.3, 将BFGS优化得到的最终构象存储在全局
内存中; 如果优化后的构象不被接受, 进行步骤2.3.5;
步骤2.3.5: 判断搜索步数是否达到设定值, 如果搜索步数未达到设定值则进行步骤
2.3.1, 如果搜索步数达 到设定值则输出 该线程中的最佳分子构象;
步骤3: 将设备端运行出的结果回传至主机端, 根据构象的分数对其进行排序, 并利用
BFGS方法对构象进行 更精细的优化, 输出最终排名较前的几个构象。
2.根据权利要求1所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤1中, 主机端在设备端运行 前的阶段, 包括以下 具体步骤:
步骤1.1: 读取文件, 由主机端读取配体分子和受体分子的.pdbqt文件, 以及对接参数
的config.txt文件;
步骤1.2: 配置OpenCL环境, 包括识别并选择平台、 设备、 创建OpenCL上下文、 创建命令
队列、 创建内存 对象、 创建程序对象、 创建内核对象、 设置内核参数;
步骤1.3: 生成网格缓存, 用于通过三线插值法计算分子构象与受体的分子间能量;权 利 要 求 书 1/3 页
2
CN 114860441 A
2步骤1.4: 生成分子内能量表, 用于计算构象的分子内能量;
步骤1.5: 生成随机数表, 用于生成随机数值;
步骤1.6: 生成随机分子构象, 用于作为设备端多线程协作的蒙特卡罗算法的初始构
象;
步骤1.7: 将前述 步骤中产生的数据传递至设备端。
3.根据权利要求2所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤2.3.1中, 对分子构象的po sition、 orientation、 torsion其中一个进行随机扰
动, 表示为:
对分子构象在搜索空间中的三维坐标positi on进行基于均匀分布随机数产生的扰动;
对分子构象orientati on的四元数进行基于正态分布随机数产生的扰动;
对分子构象中可旋转键的扭转角度中某一具体维度值替换为一个符合均匀分布的随
机数。
4.根据权利要求3所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤2.3.2中, 构建GPU中全局内存的结构, 其中全局内存是每个线程都可 以访问
的, 具体操作如下:
首先根据线程数和搜索步数的大小给GPU分配确定大小的内存;
然后根据分子构象的三维位置信 息给每个构象确定一个二进制编码, 表示其所存储的
三维空间位置;
最后根据该二进制编码存 储到相应的全局内存中。
5.根据权利要求4所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤2.3.3中, 使用BFGS方法对构象进行优化的具体步骤如下:
步骤Ⅰ: 初始化海 森矩阵, 将海 森矩阵初始化 为单位矩阵;
步骤Ⅱ: 通过打分函数对分子构象与受体结合后的自由能进行评估, 包括:
分子间能量: 根据构象中每个原子的空间坐标, 利用三线性插值方法查找网格缓存得
到每个配体与受体之间的原子对的能量;
分子内能量: 根据查找分子内能量表得到配 体自身的能量;
将分子间能量与分子内能量相加得到总能量;
步骤Ⅲ: 计算分子构象中每 个原子的空间坐标的导数;
步骤Ⅳ: 利用Armijo ‑Goldstein准则进 行不精确搜索, 若||导数||<1e‑5, 则BFGS结束,
将搜索过程中遍历的所有构象存 储在局部缓存中。
6.根据权利要求5所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤3中, 主机端在设备端运行后的阶段, 具体步骤为:
步骤3.1: 将设备端中每个线程得到的最优构象全部传给主机端, 对主机端得到的分子
构象按照分数高低进行排序, 其中分数越低, 排名越靠前, 表示打 分结果越好;
步骤3.2: 保留排名较前的多个构象, 对构象进行更精确的优化; 即利用BFGS对保留的
构象进行优化, 利用打分函数计算优化后的分子构象的分数, 最后输出最终排名较前 的几
个构象。
7.根据权利要求1所述一种面向药物虚拟筛选的多线程协作的GPU加速方法, 其特征在
于, 所述步骤2.3中, 分子构象由position, orientation, torsion组成, 维度N为7+Nrot, 其权 利 要 求 书 2/3 页
3
CN 114860441 A
3
专利 一种面向药物虚拟筛选的多线程协作的GPU加速方法
文档预览
中文文档
20 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 07:14:20上传分享