"tests/int8_gemm/int8_gemm_test.cu" did not exist on "720fc533da804ac3f46ee938864403e51fcd9fa7"
README.md 3.52 KB
Newer Older
zhuwenwen's avatar
zhuwenwen committed
1
2
3
4
<!--
 * @Author: zhuww
 * @email: zhuww@sugon.com
 * @Date: 2023-04-15 14:34:07
zhuwenwen's avatar
zhuwenwen committed
5
 * @LastEditTime: 2023-08-24 10:06:01
zhuwenwen's avatar
zhuwenwen committed
6
-->
zhuwenwen's avatar
zhuwenwen committed
7
# PROTEINMPNN
zhuwenwen's avatar
zhuwenwen committed
8
9
10
## 论文
- [https://www.biorxiv.org/content/10.1101/2022.06.03.494563v1](https://www.biorxiv.org/content/10.1101/2022.06.03.494563v1)

zhuwenwen's avatar
zhuwenwen committed
11
12
13
## 模型结构
模型包括3个Encoder,3个Decoder和128个隐藏层的MPNN,使用蛋白质骨干网络特征(Cα-Cα原子之间的距离,相对Cα-Cα-Cα框架的方向和旋转,以及主干二面角)作为输入,以自回归方式从N到C端预测蛋白质序列。

zhuwenwen's avatar
zhuwenwen committed
14
15
![img](./docs/proteinmpnn.png)

zhuwenwen's avatar
zhuwenwen committed
16
17
18
## 算法原理
ProteinMPNN是一种使用MPNN进行蛋白质预测的模型,该模型输入蛋白质序列和结构信息,输出蛋白质的三维结构

zhuwenwen's avatar
zhuwenwen committed
19
20
![img](./docs/proteinmpnn_1.png)

zhuwenwen's avatar
zhuwenwen committed
21
## 环境配置
zhuwenwen's avatar
zhuwenwen committed
22
提供[光源](https://www.sourcefind.cn/#/service-details)拉取推理的docker镜像:
zhuwenwen's avatar
zhuwenwen committed
23
24
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:proteinmpnn-dtk-22.10-patch4-py37
zhuwenwen's avatar
zhuwenwen committed
25
26
27
28
# <Image ID>用上面拉取docker镜像的ID替换
# <Host Path>主机端路径
# <Container Path>容器映射路径
docker run -it --name proteinmpnn --shm-size=32G  --device=/dev/kfd --device=/dev/dri/ --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --ulimit memlock=-1:-1 --ipc=host --network host --group-add video -v <Host Path>:<Container Path> <Image ID> /bin/bash
zhuwenwen's avatar
zhuwenwen committed
29
30
31
32
33
34
35
36
```

镜像版本依赖:
* DTK驱动:dtk22.10
* Pytorch: 1.10
* Torchvision >= 1.10.0
* Torchaudio >= 1.10.0
* python: python3.7
zhuwenwen's avatar
zhuwenwen committed
37
38
39
40
41
42
43

激活镜像环境:
`source /opt/dtk-22.10/env.sh`

测试目录:
`/opt/ProteinMPNN-main`

zhuwenwen's avatar
zhuwenwen committed
44
45
46
47
48
49
## 数据集
模型数据集[PDB biunits 2021/08/02](https://files.ipd.uw.edu/pub/training_sets/pdb_2021aug02.tar.gz),数据集大小为16.5GB。
用于测试此数据集的小样本[PDB biunits sample 2021/08/02](https://files.ipd.uw.edu/pub/training_sets/pdb_2021aug02_sample.tar.gz),数据集大小为47MB。

## 训练
### 单机单卡
zhuwenwen's avatar
zhuwenwen committed
50
51
52
53
54
55
56
57

    cd /opt/ProteinMPNN-main/training
    python ./training.py \
           --path_for_outputs "模型保存路径" \
           --path_for_training_data "数据集下载并解压路径/pdb_2021aug02" \
           --num_examples_per_epoch 1个epoch加载的训练example数量 \
           --save_model_every_n_epochs 每几个epochs保存模型权重

zhuwenwen's avatar
zhuwenwen committed
58
59
60
## 推理
分别提供了基于Pytorch的单体和多体的推理脚本。
### 单体
zhuwenwen's avatar
zhuwenwen committed
61
62
63
64

    cd examples
    ./submit_example_1.sh

zhuwenwen's avatar
zhuwenwen committed
65
### 多体
zhuwenwen's avatar
zhuwenwen committed
66
67
68
69

    cd examples
    ./submit_example_2.sh

zhuwenwen's avatar
zhuwenwen committed
70
## result
zhuwenwen's avatar
zhuwenwen committed
71
```
zhuwenwen's avatar
zhuwenwen committed
72

zhuwenwen's avatar
zhuwenwen committed
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
training/
    exp_020/
        model_weights/
            epoch_last.pt
    log.txt
outputs/
    example_1_outputs/
        seqs/
            5L33.fa
            6MRR.fa
        parsed_pdbs.jsonl
    example_2_outputs/
        seqs/
            3HTN.fa
            4YOW.fa
        assigned_pdbs.jsonl
        parsed_pdbs.jsonl

zhuwenwen's avatar
zhuwenwen committed
91
```
zhuwenwen's avatar
zhuwenwen committed
92

zhuwenwen's avatar
zhuwenwen committed
93
## 精度
zhuwenwen's avatar
zhuwenwen committed
94
95
96
测试数据:`/opt/ProteinMPNN-main/inputs`,使用的加速卡:1张 DCU Z100L-32G

准确率数据:
zhuwenwen's avatar
zhuwenwen committed
97
| batch size | 数据类型 | 序列类型 | 序列标签 | 序列长度 | Sequence recovery(%) |
zhuwenwen's avatar
zhuwenwen committed
98
| :------: | :------: | :------: |:------: |:------: |:------: |
zhuwenwen's avatar
zhuwenwen committed
99
| 1 | fp32 | 单体 | 5L33 | 106 | 39.6 |
zhuwenwen's avatar
zhuwenwen committed
100
101
102
103
| 1 | fp32 | 单体 | 6MRR | 68  | 39.7 |
| 1 | fp32 | 多体 | 3HTN | 429 | 55.7 |
| 1 | fp32 | 多体 | 4YOW | 693 | 57.7 |

zhuwenwen's avatar
zhuwenwen committed
104
105
106
107
108
109
## 应用场景

### 算法类别
MPNN

### 热点应用行业
zhuwenwen's avatar
zhuwenwen committed
110
医疗,科研,教育
zhuwenwen's avatar
zhuwenwen committed
111

zhuwenwen's avatar
zhuwenwen committed
112

zhuwenwen's avatar
zhuwenwen committed
113
## 源码仓库及问题反馈
zhuwenwen's avatar
zhuwenwen committed
114
* [https://developer.hpccube.com/codes/modelzoo/proteinmpnn_pytorch](https://developer.hpccube.com/codes/modelzoo/proteinmpnn_pytorch)
zhuwenwen's avatar
zhuwenwen committed
115
116
117
## 参考
* [https://github.com/dauparas/ProteinMPNN](https://github.com/dauparas/ProteinMPNN)