README.md 3.32 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
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
16
17
## 算法原理
ProteinMPNN是一种使用MPNN进行蛋白质预测的模型,该模型输入蛋白质序列和结构信息,输出蛋白质的三维结构

## 环境配置
zhuwenwen's avatar
zhuwenwen committed
18
提供[光源](https://www.sourcefind.cn/#/service-details)拉取推理的docker镜像:
zhuwenwen's avatar
zhuwenwen committed
19
20
21
22
23
24
25
26
27
28
29
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:proteinmpnn-dtk-22.10-patch4-py37
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 image.sourcefind.cn:5000/dcu/admin/base/custom:proteinmpnn-dtk-22.10-patch4-py37 /bin/bash
```

镜像版本依赖:
* DTK驱动:dtk22.10
* Pytorch: 1.10
* Torchvision >= 1.10.0
* Torchaudio >= 1.10.0
* python: python3.7
zhuwenwen's avatar
zhuwenwen committed
30
31
32
33
34
35
36

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

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

zhuwenwen's avatar
zhuwenwen committed
37
38
39
40
41
42
## 数据集
模型数据集[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
43
44
45
46
47
48
49
50

    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
51
52
53
## 推理
分别提供了基于Pytorch的单体和多体的推理脚本。
### 单体
zhuwenwen's avatar
zhuwenwen committed
54
55
56
57

    cd examples
    ./submit_example_1.sh

zhuwenwen's avatar
zhuwenwen committed
58
### 多体
zhuwenwen's avatar
zhuwenwen committed
59
60
61
62

    cd examples
    ./submit_example_2.sh

zhuwenwen's avatar
zhuwenwen committed
63
## result
zhuwenwen's avatar
zhuwenwen committed
64
65
\```

zhuwenwen's avatar
zhuwenwen committed
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
84
85
\```

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

准确率数据:
zhuwenwen's avatar
zhuwenwen committed
90
| batch size | 数据类型 | 序列类型 | 序列标签 | 序列长度 | Sequence recovery(%) |
zhuwenwen's avatar
zhuwenwen committed
91
| :------: | :------: | :------: |:------: |:------: |:------: |
zhuwenwen's avatar
zhuwenwen committed
92
| 1 | fp32 | 单体 | 5L33 | 106 | 39.6 |
zhuwenwen's avatar
zhuwenwen committed
93
94
95
96
| 1 | fp32 | 单体 | 6MRR | 68  | 39.7 |
| 1 | fp32 | 多体 | 3HTN | 429 | 55.7 |
| 1 | fp32 | 多体 | 4YOW | 693 | 57.7 |

zhuwenwen's avatar
zhuwenwen committed
97
98
99
100
101
102
103
104
## 应用场景

### 算法类别
MPNN

### 热点应用行业
医疗,科研,教育

zhuwenwen's avatar
zhuwenwen committed
105

zhuwenwen's avatar
zhuwenwen committed
106
## 源码仓库及问题反馈
zhuwenwen's avatar
zhuwenwen committed
107
108
109
110
* https://developer.hpccube.com/codes/modelzoo/ProteinMPNN_Pytorch
## 参考
* [https://github.com/dauparas/ProteinMPNN](https://github.com/dauparas/ProteinMPNN)