diff --git a/MindSPONGE/applications/structure_prediction/README_CN.md b/MindSPONGE/applications/structure_prediction/README_CN.md new file mode 100644 index 0000000000000000000000000000000000000000..2d87010423fa9bb60dd262fbcba81682e7772cac --- /dev/null +++ b/MindSPONGE/applications/structure_prediction/README_CN.md @@ -0,0 +1,199 @@ +# 目录 + + + +- [目录](#目录) + - [模型描述](#模型描述) + - [环境要求](#环境要求) + - [硬件环境与框架](#硬件环境与框架) + - [Serving模式](#Serving模式) + - [配置数据库检索](#配置数据库检索) + - [配置MSA检索](#配置MSA检索) + - [配置模板检索](#配置模板检索) + - [脚本说明](#脚本说明) + - [脚本及样例代码](#脚本及样例代码) + - [推理示例](#推理示例) + - [推理过程](#推理过程) + - [推理结果](#推理结果) + - [推理性能](#推理性能) + - [TMscore对比图](#tmscore对比图) + - [预测结果对比图](#预测结果对比图) + - [引用](#引用) + + + +## 模型描述 + +使用计算机高效计算获取蛋白质空间结构的过程被称为蛋白质结构预测,传统的结构预测工具一直存在精度不足的问题,直至2020年谷歌DeepMind团队提出[AlphaFold2](https://www.nature.com/articles/s41586-021-03819-2)[1,2],该模型的预测误差与实验方法接近,同时也取得了CASP14蛋白质3D结构预测比赛的冠军。本工具网络模型部分与AlphaFold2相同,在数据预处理的多序列对比环节采用了[MMseqs2](https://www.biorxiv.org/content/10.1101/2021.08.15.456425v1.full.pdf)[3]进行序列检索,相比于原版端到端速度提升2-3倍。 + +## 环境要求 + +### 硬件环境与框架 + +本工具基于[MindSpore](https://www.mindspore.cn/) AI框架开发,MindSpore 1.8及以后的版本均可运行,MindSpore安装和配置可以参考[MindSpore安装页面](https://www.mindspore.cn/install),其余python依赖请参见[requirements.txt](to_add)。 + +本工具可以Ascend910或GPU上运行:基于Ascend910运行时需配置环境变量`export MS_DEV_ENABLE_CLOSURE=0`,运行时默认调用混合精度推理;基于GPU运行时默认使用全精度推理。 + +本工具依赖多序列比对(MSA,multiple sequence alignments)与模板检索生成等传统数据库搜索工具提供的共进化与模板信息,配置数据库搜索需**2.5T硬盘**(推荐SSD)和与Kunpeng920性能持平的CPU。 + +### Serving模式 + +我们提供以服务模式运行推理,该模式使用MindSpore Serving提供高效推理服务,多条序列推理时避免重复编译,大幅提高推理效率,MindSpore Serving安装和配置可以参考[MindSpore Serving安装页面](https://www.mindspore.cn/serving/docs/zh-CN/r1.5/serving_install.html)。 + +## 配置数据库检索 + +### 配置MSA检索 + +首先安装MSA搜索工具**MMseqs2**,该工具的安装和使用可以参考[MMseqs2 User Guide](https://mmseqs.com/latest/userguide.pdf),安装完成后运行以下命令配置环境变量: + +``` shell +export PATH=$(pwd)/mmseqs/bin/:$PATH +``` + +然后下载MSA所需数据库: + +- [uniref30_2103](http://wwwuser.gwdg.de/~compbiol/colabfold/uniref30_2103.tar.gz):压缩包68G,解压后375G +- [colabfold_envdb_202108](http://wwwuser.gwdg.de/~compbiol/colabfold/colabfold_envdb_202108.tar.gz):压缩包110G,解压后949G + +下载完成后需解压并使用MMseqs2处理数据库,数据处理参考[colabfold](http://colabfold.mmseqs.com),主要命令如下: + +``` bash +tar xzvf "uniref30_2103.tar.gz" +mmseqs tsv2exprofiledb "uniref30_2103" "uniref30_2103_db" +mmseqs createindex "uniref30_2103_db" tmp1 --remove-tmp-files 1 + +tar xzvf "colabfold_envdb_202108.tar.gz" +mmseqs tsv2exprofiledb "colabfold_envdb_202108" "colabfold_envdb_202108_db" +mmseqs createindex "colabfold_envdb_202108_db" tmp2 --remove-tmp-files 1 +``` + +### 配置模板检索 + +首先安装模板搜索工具[**HHsearch**](https://github.com/soedinglab/hh-suite) +与[**kalign**](https://msa.sbc.su.se/downloads/kalign/current.tar.gz),然后下载模板检索所需数据库: + +- [pdb70](http://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/old-releases/pdb70_from_mmcif_200401.tar.gz):压缩包19G,解压后56G +- [mmcif database](https://ftp.rcsb.org/pub/pdb/data/structures/divided/mmCIF/): 零散压缩文件~50G,解压后~200G,需使用爬虫脚本下载,下载后需解压所有mmcif文件放在同一个文件夹内。 +- [obsolete_pdbs](http://ftp.wwpdb.org/pub/pdb/data/status/obsolete.dat):140K + +*数据库下载网站均为国外网站,下载速度可能较慢,需要自行配置VPN*。 + +## 脚本说明 + +### 脚本及样例代码 + +```bash +├── structure_prediction + ├── README_CN.md // structure_prediction 相关中文说明 + ├── eval.py // 推理脚本 + ├── model.py // 主模型脚本 + ├── data.py // 数据预处理脚本 + ├── dataset.py // 异步数据读取脚本 + ├── evoformer.py // evoformer特征提取模块 + ├── structure.py // 3D结构生成模块 + ├── template_embedding.py // 模板信息提取模块 + ├── requirements.txt // 依赖 + ├── data + ├── hhsearch.py // python封装的HHsearch工具 + ├── kalign.py // python封装的Kalign工具 + ├── msa_query.py // python封装的MSA搜索及处理工具 + ├── msa_search.sh // 调用MMseqs2搜索MSA的shell脚本 + ├── protein_feature.py // MSA与template特征搜索与整合脚本 + ├── templates.py // 模板搜索脚本 + + ├── config + ├── data.yaml //数据处理参数配置 + ├── model //模型参数配置 +``` + +### 推理示例 + +```bash +用法:run.py [--seq_length PADDING_SEQENCE_LENGTH] + [--input_fasta_path INPUT_PATH][--msa_result_path MSA_RESULT_PATH] + [--database_dir DATABASE_PATH][--database_envdb_dir DATABASE_ENVDB_PATH] + [--hhsearch_binary_path HHSEARCH_PATH][--pdb70_database_path PDB70_PATH] + [--template_mmcif_dir TEMPLATE_PATH][--max_template_date TRMPLATE_DATE] + [--kalign_binary_path KALIGN_PATH][--obsolete_pdbs_path OBSOLETE_PATH] + + +选项: + --seq_length 补零后序列长度,目前支持256/512/1024/2048 + --input_fasta_path FASTA文件,用于预测蛋白质结构的蛋白质序列 + --msa_result_path 保存mmseqs2检索得到的msa结果路径 + --database_dir uniref30文件夹路径 + --database_envdb_dir colabfold_envdb_202108文件夹路径 + --hhsearch_binary_path HHsearch可执行文件路径 + --pdb70_database_path pdb70文件夹路径 + --template_mmcif_dir mmcif文件夹路径 + --max_template_date 模板最新发布的时间 + --kalign_binary_path kalign可执行文件路径 + --obsolete_pdbs_path PDB IDs的映射文件路径 +``` + +### 推理过程(待代码合入) + + 加载已经训好的checkpoint,下载地址[点击这里](https://download.mindspore.cn/model_zoo/research/hpc/molecular_dynamics/MFold_1.ckpt),根据自身需求选择合适蛋白质序列配置,当前提供256/512/1024/2048四个标准配置,推理过程如下: + +1. 输入参数需要通过`fold_service/config.py`配置,参数含义参见[推理示例](#推理示例) + +2. 参数配置好后,先使用`serving_server.py`启动服务端进程,进程成功启动时log显示如下: + + ``` log + Serving: Serving gRPC server start success, listening on 127.0.0.1:5500 + Serving: Serving RESTful server start success, listening on 127.0.0.1:1500 + ``` + +3. 服务端进程成功启动后运行`serving_client.py`即可进行推理,第一次推理需要编译 + +#### 推理结果 + +推理结果保存在 `./result` 中,共有两个文件,其中的pdb文件即为蛋白质结构预测结果,timings文件保存了运行过程中的时间信息和confidence信息。 + +```bash +{"pre_process_time": 418.57, "model_time": 122.86, "pos_process_time": 0.14, "all_time ": 541.56, "confidence ": 94.61789646019058} +``` + +## 推理性能 + +| 参数 | MEGA-Fold(Ascend) | +| ------------------- | --------------------------- | +| 模型版本 | MFold_1 | +| 资源 | Ascend 910 | +| 上传日期 | 2021-11-05 | +| MindSpore版本 | master | +| 数据集 | CASP14 T1079 | +| seq_length | 505 | +| confidence | 94.62 | +| TM-score | 98.01% | +|运行时间|541.56s| + +### TMscore对比图 + +- 34条CASP14序列MEGA-Fold与AlphaFold2预测TMscore对比: + +
+all_data +
+ +### 预测结果对比图 + +- T1079(长度505): + +
+T1079 +
+ +- T1044(长度2180): + +
+T1044 +
+ +## 引用 + +[1] Jumper J, Evans R, Pritzel A, et al. Applying and improving AlphaFold at CASP14[J]. Proteins: Structure, Function, and Bioinformatics, 2021. + +[2] Jumper J, Evans R, Pritzel A, et al. Highly accurate protein structure prediction with AlphaFold[J]. Nature, 2021, 596(7873): 583-589. + +[3] Mirdita M, Ovchinnikov S, Steinegger M. ColabFold-Making protein folding accessible to all[J]. BioRxiv, 2021.