README.md 5.66 KB
Newer Older
zhuwenwen's avatar
zhuwenwen committed
1
2
3
4
<!--
 * @Author: zhuww
 * @email: zhuww@sugon.com
 * @Date: 2023-06-14 17:07:00
zhuwenwen's avatar
zhuwenwen committed
5
 * @LastEditTime: 2023-10-20 10:30:00
zhuwenwen's avatar
zhuwenwen committed
6
-->
zhuwenwen's avatar
zhuwenwen committed
7
# RFDESIGN
zhuwenwen's avatar
zhuwenwen committed
8
9
10
## 论文
- [https://www.biorxiv.org/content/10.1101/2021.11.10.468128v2](https://www.biorxiv.org/content/10.1101/2021.11.10.468128v2)

zhuwenwen's avatar
zhuwenwen committed
11
12
13
## 模型结构
RFDesign是一个使用Rosetta软件实现的蛋白质设计方法,模型结构包括特征提取器,用于从蛋白质序列和结构中提取特征的;序列-结构耦合模型,用于将蛋白质的序列信息和结构信息进行耦合,以捕捉它们之间的关联性;功能评估器,用于评估蛋白质的功能性;优化器用于对蛋白质进行优化,以改善其稳定性和功能。

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

zhuwenwen's avatar
zhuwenwen committed
16
17
## 算法原理
RFDesign基于Rosetta(一个广泛应用于蛋白质结构预测和蛋白质设计的开源软件包)开发,支持蛋白质分子设计任务,使用预先训练的蛋白质模型来预测和优化蛋白质的稳定性和功能。
zhuwenwen's avatar
zhuwenwen committed
18

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

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:rfdesign-dtk22.10-patch4-py39-latest
zhuwenwen's avatar
zhuwenwen committed
25
26
27
28
# <Image ID>用上面拉取docker镜像的ID替换
# <Host Path>主机端路径
# <Container Path>容器映射路径
docker run -it --name rfdesign --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
37
```

镜像版本依赖:
* DTK驱动:dtk22.10
* Pytorch: 1.10
* Tensorflow: 2.7
* Jax: 0.2.21
* dgl: 0.9.1
* python: python3.9
zhuwenwen's avatar
zhuwenwen committed
38
39
40
41
42
43
44

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

测试目录:
`/opt/RFDesign`

zhuwenwen's avatar
zhuwenwen committed
45
## 数据集
zhuwenwen's avatar
zhuwenwen committed
46

zhuwenwen's avatar
zhuwenwen committed
47

zhuwenwen's avatar
zhuwenwen committed
48
49
## 推理
### 下载权重
zhuwenwen's avatar
zhuwenwen committed
50

zhuwenwen's avatar
zhuwenwen committed
51
52
    cd /opt/RFDesign/hallucination/weights/rf_Nov05
    wget http://files.ipd.uw.edu/pub/rfdesign/weights/BFF_last.pt
zhuwenwen's avatar
zhuwenwen committed
53

zhuwenwen's avatar
zhuwenwen committed
54
55
    cd /opt/RFDesign/inpainting/weights/
    wget http://files.ipd.uw.edu/pub/rfdesign/weights/BFF_mix_epoch25.pt
zhuwenwen's avatar
zhuwenwen committed
56

zhuwenwen's avatar
zhuwenwen committed
57

zhuwenwen's avatar
zhuwenwen committed
58
### hallucination
zhuwenwen's avatar
zhuwenwen committed
59
60
61
62
63
基于hallucination的测试命令:

    cd /opt/RFDesign/hallucination/tests/
    ./run_tests.sh  # 结果默认保存在/opt/RFDesign/hallucination/tests/output

zhuwenwen's avatar
zhuwenwen committed
64
参数说明:--pdb是模板pdb结构,--out是结果保存路径的前缀,--len是hallucination蛋白的长度范围, --contigs是以逗号分隔的pdb范围列表来参考pdb,--steps是逗号分隔的优化步骤数列表,--num是是设计数量
zhuwenwen's avatar
zhuwenwen committed
65

zhuwenwen's avatar
zhuwenwen committed
66
### inpainting
zhuwenwen's avatar
zhuwenwen committed
67
68
69
基于inpainting的测试命令:

    cd /opt/RFDesign/inpainting/tests/
zhuwenwen's avatar
zhuwenwen committed
70
    ./run_tests.sh  # 结果默认保存在/opt/RFDesign/inpainting/tests/out
zhuwenwen's avatar
zhuwenwen committed
71

zhuwenwen's avatar
zhuwenwen committed
72
参数说明:--pdb是模板蛋白质结构(序列)的pdb文件,--out 是结果保存路径的前缀,--contigs是指定保留、移除和修复蛋白质的部分,--num_designs是生成的设计数量
zhuwenwen's avatar
zhuwenwen committed
73

zhuwenwen's avatar
zhuwenwen committed
74
### 准备输入和后处理以及hallucination评分结果
zhuwenwen's avatar
zhuwenwen committed
75
76
77
78
79
80
运行hallucination或inpainting后,首先生成一个带侧链的松弛模型(.fas、.pdb、.npz、.trb 文件),该步骤需要.pdb和.npz文件,完成后,会生成一个FOLDER/trf_relax文件夹(包含松弛结构的pdb)

    cd /opt/RFDesign/scripts
    ./trf_relax.sh FOLDER  # FOLDER包含hallucination或inpainting的结果
    

zhuwenwen's avatar
zhuwenwen committed
81
#### AlphaFold2
zhuwenwen's avatar
zhuwenwen committed
82
83
根据hallucination设计模型和模板结构,进行AlphaFold2预测和计算RMSD:

zhuwenwen's avatar
zhuwenwen committed
84
    ./af2_metrics.py FOLDER/trf_relax # 修改第241行的data_dir为自己的alphafold2数据集路径
zhuwenwen's avatar
zhuwenwen committed
85
86
87

该步骤会将AF2模型输出到FOLDER/trf_relax/af2/,并将指标输出到FOLDER/af2_metrics.csv

zhuwenwen's avatar
zhuwenwen committed
88
#### Pyrosetta指标
zhuwenwen's avatar
zhuwenwen committed
89
90
91
92
93

    ./pyrosetta_metrics.py FOLDER/trf_relax

该步骤会计算hallucination(RoseTTAFold)设计模型和参考结构之间的RMSD,以及回转半径、二级结构、拓扑结构(即HHH或HEEH)

zhuwenwen's avatar
zhuwenwen committed
94
#### 在PyMOL中对齐模型
zhuwenwen's avatar
zhuwenwen committed
95
96
97
98
99
100
使设计与受限区域上的参考结构对齐的pymol会话:

    ./pymol_align.py -- -o OUTPUT.pse FOLDER/*pdb

该步骤会在当前文件夹中创建一个名为OUTPUT.pse的会话,其中包含来自REFERENCE.pdb的原始结构,所有设计都与FOLDER/*.pdb对齐

zhuwenwen's avatar
zhuwenwen committed
101
## result
zhuwenwen's avatar
zhuwenwen committed
102
103

```
zhuwenwen's avatar
zhuwenwen committed
104
105
/opt/RFDesign/
    hallucination/
zhuwenwen's avatar
zhuwenwen committed
106
107
108
109
110
111
112
113
114
115
116
117
118
119
        tests/output/
                trf_relax/
                    af2/
                        test1_0.npz
                        test1_0.pdb
                        ...
                    af2_metrics.csv
                    pyrosetta_metrics.csv
                    test1_0.pdb
                    ...
                test1_0.fas
                test1_0.pdb
                ...

zhuwenwen's avatar
zhuwenwen committed
120
    inpainting/
zhuwenwen's avatar
zhuwenwen committed
121
122
123
124
125
126
127
128
129
130
131
132
133
        tests/out/
            trf_relax/
                af2/
                    2KL8_test_0.npz
                    2KL8_test_0.pdb
                    ...
                af2_metrics.csv
                pyrosetta_metrics.csv
                2KL8_test_0.pdb
                ...
            2KL8_test_0.npz
            2KL8_test_0.pdb
            ...
zhuwenwen's avatar
zhuwenwen committed
134
```
zhuwenwen's avatar
zhuwenwen committed
135
136

## 精度
zhuwenwen's avatar
zhuwenwen committed
137
138
测试数据:`/opt/RFDesign/hallucination/tests``/opt/RFDesign/inpainting/tests/2KL8.pdb`,使用的加速卡:1张 DCU Z100L-32G

zhuwenwen's avatar
zhuwenwen committed
139
准确率数据:
zhuwenwen's avatar
zhuwenwen committed
140
141
142
143
144
145
146
| pdb | af2_lddt | rmsd_af2_des | contig_rmsd_af2_des | contig_rmsd_af2 |
| :------: | :------: | :------: | :------: | :------: |
| C3d_relaxed | 63.826 | 18.537 | 16.375 | 16.435 | 
| pd1 | 48.188 | 5.731 | 3.110 | 3.527 | 
| rsvf-v_5tpn | 75.460 | 2.685 | 1.536 | 3.917 |  
| 2KL8 | 89.197 | 0.813 | 0.824 | 0.865 |

zhuwenwen's avatar
zhuwenwen committed
147
148
149
## 应用场景

### 算法类别
zhuwenwen's avatar
zhuwenwen committed
150
蛋白质结构预测
zhuwenwen's avatar
zhuwenwen committed
151
152
153
154

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

zhuwenwen's avatar
zhuwenwen committed
155
156
157
## 源码仓库及问题反馈
* [https://developer.hpccube.com/codes/modelzoo/rfdesign_rosetta](https://developer.hpccube.com/codes/modelzoo/rfdesign_rosetta) 

zhuwenwen's avatar
zhuwenwen committed
158
## 参考资料
zhuwenwen's avatar
zhuwenwen committed
159
* [https://github.com/RosettaCommons/RFDesign](https://github.com/RosettaCommons/RFDesign)