D3pocket架构

已有架构:85.23/software/D3Pockets_WEB_UCB
新架构:
目标继续:将Pypocketsdescriptor纳入到D3pockets架构中
环境依赖:D3Pockets(conda),具体参见周丽萍师姐:D3pockets移植及测试
requirement:
D3pockets.2.0 (忽略版本号)参考75.4环境D3pockets
75.4:D3pockets(
预期输出:
1.stability
->录入数据库D3pockets.pockets表
->数据存储目录/格式
2.continuity
3.correlations
4.增加体积、表面积、深度、疏水性、静电势的计算,然后就能绘制口袋的变化曲线
5.把pocket2mol也拉进去
工作管线:(pdbdynamic数据集利用的)
1.预处理
路径:/home/databank/gxxu/Backup/Moleculardynamics/4D3pocket_input/shs
脚本:2xtc.py:产生轨迹文件
importmysql.py:信息录入数据库
2.跨服务器的数据库流
get_files():遍历所有数据库中所有pdbid的,传过来。
send_files():传过来的文件分析完,然后传回去。
D3Pocket_MD_Batch.sh是批量实现D3Pocket_MD_Script.sh的版本。
3.D3pockets 原版
以上旧版,未重构
重构版本:test_re_1:继承自python3版本的d3pocket,统一了matrix2heatmap过程。
~test_re_11:初具雏形的D3pockets加速版本,与2.01近似。
D3pockets2.01的架构:参考75.4~/D3pockets.2.01
不写了,重点是实现了GPU隔离和CUDAManager的统一管理,但是存在多GPU资源利用不足的限制及并行不足的限制。
D3pockets2.1的架构分析:
(以下是D3pockets2.x的完整架构,其中包含一些预期的目标)
输入组合:frames/(pdbfile&xtcfile)
cluster_pdb,输入帧文件(轨迹也算帧文件),产生代表帧,这一步无可动摇了
detect_pockets,关键的一个步骤
任务类型:矩阵的fill,surf,substract,label*,scan*,*grid*,cluster*,*buffer
每个pdbfile都要经过以上任务,并且要利用cuda进行加速,这里就涉及到加速计算的过程设计:
任务队列:cpu代码运行->Task*n->queue->taskm->GPU
简单说来CUDAManager要持续接受CPU主进程的任务,然后根据GPU的情况,派发任务。完成一个扔给一个,完成一个扔给一个。主要还是CUDAManager和worker之间的配合还有上下文切换和流的控制比较麻烦。另外,感觉会产生很多的内存占有?
series往后的略,or后续补充。
### 参数配置
先明确一下必需的参数:
-pdb_file
-xtc_file
-ouput_dir
-log_dir
-frames_dir:新增的参数,增加一种输入方式,采用输入帧文件的方式
-ligand:配体口袋比较的参数,虽然现在我也还不知道到底输入文件是什么格式,等后面看看代码。
-bradius
-sradius
-stepsize
-gpu_ids
-compute_capability:除了兼容计算能力外,其他的参数没什么必要了,因为本身新的代码默认使用GPU进行计算。
备选:
-cluster_method:暂时没什么用处。
-test:我一直不知道这是一个什么类型的参数。
### 日志内容组成
-输出目录检查
-口袋检测配置
-程序的运行时间
### 输出路径组成