# <div align="center"><strong>OpenFold</strong></div>

## 1 简介

OpenFold是蛋白质结构预测模型训练和推理的库，主要提供以下功能：蛋白质单体和多体的训练和推理。

## 2 安装

组件支持组合

| PyTorch版本 | fastpt版本 | openflod 版本     | DTK版本  | Python版本      | 推荐编译方式 |
| ----------- | ---------- | ------------- | -------- | --------------- | ------------ |
| 2.5.1       | 2.1.0      | v2.2.0-fastpt | >= 25.04 | 3.8、3.10、3.11 | fastpt不转码 |
| 2.4.1       | 2.0.1      | v2.2.0-fastpt | >= 25.04 | 3.8、3.10、3.11 | fastpt不转码 |

+ pytorch 版本大于 2.4.1 && dtk 版本大于 25.04 推荐使用 fastpt 不转码编译。

### 2.1 使用pip方式安装

openflod whl 包下载目录：[光和开发者社区](https://download.sourcefind.cn:65024/4/main)，选择对应的 pytorch 版本和 python 版本下载对应 openflod 的 whl 包: 

```shell
pip install torch* # 下载torch的whl包
pip install fastpt* --no-deps # 下载fastpt的whl包
source  /usr/local/bin/fastpt -E
pip install openfold* # 下载的openfold-fastpt的whl包
```

### 2.2 使用源码编译方式安装

#### 2.2.1 编译环境准备

提供基于 fastpt 不转码编译：

1. 基于光源 pytorch 基础镜像环境：镜像下载地址：[光合开发者社区](https://sourcefind.cn/#/image/dcu/pytorch)，根据 pytorch、python、dtk 及系统下载对应的镜像版本。
2. 基于现有 python 环境：安装 pytorch，fastpt whl 包下载目录：[光合开发者社区](https://sourcefind.cn/#/image/dcu/pytorch)，根据 python、dtk 版本，下载对应 pytorch 的 whl 包。安装命令如下：

```shell
pip install torch* # 下载torch的whl包
pip install fastpt* --no-deps # 下载fastpt的whl包, 安装顺序，先安装torch，后安装fastpt
pip install setuptools==59.5.0 wheel pytest biopython dm-tree==0.1.6 ml-collections modelcif
```

#### 2.2.2 源码编译安装

- 代码下载

```shell
git clone http://developer.sourcefind.cn/codes/OpenDAS/openfold.git # 根据编译需要切换分支
```

- 提供2种源码编译方式（进入 openfold 目录）：
  - 源码编译安装：

    ```bash
    source /usr/local/bin/fastpt -C

    python setup.py build
    python setup.py install
    ```
  - whl 包构建安装：

    ```bash
    source /usr/local/bin/fastpt -C

    python setup.py bdist_wheel # 该指令用于编译 whl 包
    pip install dist/openfold-2.2.0-cp310-cp310-linux_x86_64.whl
    ```

#### 2.2.3 注意事项

+ ROCM_PATH 为 dtk 的路径，默认为 /opt/dtk；
+ 在 pytorch2.5.1 环境下编译需要支持 c++17 语法，打开setup.py文件，把文件中的 -std=c++14 修改为 -std=c++17。

## 3 验证
- 执行下面的命令测试组件：

```bash
source /usr/local/bin/fastpt -E

pytest-vs ./tests
```

## 4 Known Issue

- 无

## 5 参考资料

- [README_ORIGIN](README_ORIGIN.md)
- [https://github.com/aqlaboratory/openfold.git](https://github.com/aqlaboratory/openfold.git)
