Ubuntu22.04+GPU4090 的 esmfold+openfold 安装全流程

打印 上一主题 下一主题

主题 660|帖子 660|积分 1980

前言

  呆板学习的各种软件版本对应真的是深度学习初学者(我)的一生之敌啊,继上一次部署了一周的colabfold后,如今我又开始和esmfold的安装在掰头了,还好这次只花了两天就取得了阶段性胜利。本文重要纪录一下设置的全流程以及重要问题的解决。
关键词

esmfold安装全流程,GPU设置和部署,github克隆和安装
重要参考



  • esmfold 参考
    1. https://blog.csdn.net/weixin_40192882/article/details/136178381/
    2. https://github.com/facebookresearch/esm/
  • openfold 参考
    3. https://github.com/aqlaboratory/openfold/tree/f434a2786b5a6b39171f358fb3470ad9f4fd2a58/
    4. https://openfold.readthedocs.io/en/latest/Installation.html#%22https://github.com/conda-forge/miniforge/releases/latest/download/
一、conda设置esmfold基础环境

step1. 将以下内容保存为:conda_environment.yml

  1. name: esmfold
  2. channels:
  3. - conda-forge
  4. - bioconda
  5. - pytorch
  6. dependencies:
  7. - conda-forge::python=3.7
  8. - conda-forge::setuptools=59.5.0
  9. - conda-forge::pip
  10. - conda-forge::openmm=7.5.1
  11. - conda-forge::pdbfixer
  12. - conda-forge::cudatoolkit==11.3.*
  13. - conda-forge::cudatoolkit-dev==11.3.*
  14. - conda-forge::einops==0.6.1
  15. - conda-forge::fairscale
  16. - conda-forge::omegaconf
  17. - conda-forge::hydra-core
  18. - conda-forge::pandas
  19. - conda-forge::pytest
  20. - bioconda::hmmer==3.3.2
  21. - bioconda::hhsuite==3.3.0
  22. - bioconda::kalign2==2.04
  23. - pytorch::pytorch=1.12.*
复制代码
step2. 构建conda环境

  1. conda env create -f conda_environment.yml ##创建esmfold环境
复制代码
step3. 检查conda安装包的版本号

  1. conda env list ##查看刚构建的conda环境
  2. conda activate esmfold ##进入构建的conda环境
  3. conda list ##列出此conda环境的所有软件包
复制代码
step4. 将以下内容保存为:pip_requirements.txt

  1. biopython==1.79
  2. deepspeed==0.5.9
  3. dm-tree==0.1.6
  4. ml-collections==0.1.0
  5. numpy==1.21.2
  6. PyYAML==5.4.1
  7. requests==2.26.0
  8. scipy==1.7.1
  9. tqdm==4.62.2
  10. typing-extensions==3.10.0.2
  11. pytorch_lightning==1.5.10
  12. wandb==0.12.21
  13. biotite==0.39.0
  14. matplotlib
  15. joblib
复制代码
step5. pip更新安装包版本

  1. pip install -r pip_requirements.txt
复制代码
二、esmfold安装

按照官网教程,下一步就应该跑这几个pip,然后就完善收官了!BUT!以我半年来装带显卡的深度学习软件履向来看,设置可能还会和本机原有设置辩论,果不其然,openfold就是怎么也装不上。
  1. pip install fair-esm  # latest release,OR
  2. pip install git+https://github.com/facebookresearch/esm.git  # bleeding edge, current repo main branch
  3. pip install "fair-esm[esmfold]"
  4. # OpenFold and its remaining dependency
  5. pip install 'dllogger @ git+https://github.com/NVIDIA/dllogger.git'
  6. pip install 'openfold @ git+https://github.com/aqlaboratory/openfold.git@4b41059694619831a7db195b7e0988fc4ff3a307'
复制代码
如果有小伙伴在这一步就完善通关了,恭喜你,可以直接跳过第三部分openfold的曲折安装直接调用程序了!
三、openfold安装

> 由于实在不清楚git+https://github.com/aqlaboratory/openfold.git@4b41059694619831a7db195b7e0988fc4ff3a307是openfold的哪个版本号,所以下文安装的是现在最新的openfoldv.2.1.0
   更正:由于后续发现只有openfoldv.1才能正常使用esmfold模拟,下文重新介绍如何安装openfoldv.1
  (备注:使用openfoldv.2.1.0时模拟出现的问题:Keys ‘trunk.structure_module.ipa.linear_q_points.linear.weight, trunk.structure_module.ipa.linear_q_points.linear.bias, trunk.structure_module.ipa.linear_kv_points.linear.weight, trunk.structure_module.ipa.linear_kv_points.linear.bias’ are missing.)
(建议:step2-5是我安装时碰到的问题及解决办法,给大家提供个参考。建议大家运行完step1后根据自己安装的报错信息找相应的问题,无需按照我的序次安装)
step1:Github克隆特定版本openfold并安装

https://blog.csdn.net/qq_45961101/article/details/130384117
https://blog.csdn.net/weixin_44789022/article/details/138523343
重新再看这段信息,会发现救赎之道就在其中。所有pip install ‘git’ 失败的都可以尝试下以下方法。

  1. ## 下载最新版本的openfold(弃用)
  2. # git clone --depth=1 https://github.com/aqlaboratory/openfold.git
  3. ## 下载指定版本的openfold
  4. git clone --filter=blob:none --quiet https://github.com/aqlaboratory/openfold.git ./openfold
  5. cd ./openfold/
  6. git rev-parse -q --verify 'sha^4b41059694619831a7db195b7e0988fc4ff3a307'
  7. git fetch -q https://github.com/aqlaboratory/openfold.git 4b41059694619831a7db195b7e0988fc4ff3a307
  8. git checkout -q 4b41059694619831a7db195b7e0988fc4ff3a307
复制代码
运行完这几步,会发现在./openfold/setup.py里version由原来的2.0.0变成了1.0.0,阐明指定版本openfold下载成功。

  1. ## 安装
  2. pip install -e .
复制代码
step2:mkl版本问题



  • 报错:“undefined symbol: iJIT_NotifyEvent”

    解决方法:对mkl进行降级
    https://blog.csdn.net/mr_hore/article/details/138961434
  1. conda uninstall mkl
  2. conda install mkl=2018 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
复制代码
step3:pytorch+gcc+cuda对应问题

提供一下我多次尝试安装成功的设置(网上也有许多提到设置pytorch和cuda设置的问题,但很少会提到偶尔也会出现的gcc设置问题):pytorch1.12.1+cuda11.3+cudnn8.9+gcc7
(备注:偶尔候不改gcc版本也可安装成功)
  1. ##cuda和cudnn只能在nvidia下载,conda下载cuda环境对openfold不管用
  2. #https://blog.csdn.net/ksws0292756/article/details/80120561
复制代码
  1. ##conda下载gcc和gxx
  2. conda install -c moussi gcc_impl_linux-64=7.3.0
  3. conda install -c moussi gxx_impl_linux-64=7.3.0
  4. cd /home/line2/anaconda3/envs/esmfold_env/bin
  5. ##链接到gcc和gxx(进入自己的bin看叫gcc和gxx什么名字)
  6. ln -s ./x86_64-conda_cos6-linux-gnu-gcc ./gcc
  7. ln -s ./x86_64-conda_cos6-linux-gnu-g++ ./g++
复制代码
到此为止,在自己的conda环境下检查cuda和gcc应该都是对应新安装的版本
  1. nvcc -V ##cuda版本
  2. gcc -v ##gcc版本
复制代码

step4:torch-gpu未安装



  • 报错:“No CUDA runtime is found, using CUDA_HOME=‘/usr/local/cuda’”
    解决办法:安装对应的torch
    https://pytorch.org/get-started/previous-versions/
  1. pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 -f https://mirror.sjtu.edu.cn/pytorch-wheels/torch_stable.html
  2. conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
复制代码
step5: setup.py更改



  • 报错:“subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1”

    解决办法:https://blog.csdn.net/fq9200/article/details/125362088
    将setup.py中的"cmdclass={‘build_ext’: BuildExtension}”这一行改为“cmdclass={‘build_ext’: BuildExtension.with_options(use_ninja=False)}"

  • 报错:“nvcc fatal : Unsupported gpu architecture ‘compute_89’”

    解决办法:将setup.py中"f’arch=compute_{major}{minor},code=sm_{major}{minor}‘,"改为"f’arch=compute_70,code=sm_70’,"(备注:理论上替换成你的nvcc支持的compute构架就行,详见后文小TIPS-2)

step6:openfold成功安装


四、成功调用测试

将以下内容保存为:test.fasta
  1. >test
  2. MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG
复制代码
运行测试代码
  1. esm-fold -i test.fasta -o ./
复制代码

恭喜!完结撒花!
五、其他可行方案和小TIPS

小TIPS-1:miniforge的mamba

我发现用miniforge3构建esmfold的conda环境比用anaconda3构建的少许多报错(本来openfold官网保举的也是miniforge的mamba安装哈哈),保举大家尝试miniforge3安装。
  1. mkdir miniforge
  2. cd miniforge
  3. wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh
  4. bash Miniforge3-Linux-x86_64.sh
复制代码
小TIPS-2:如何查看自己显卡构架信息

网页搜索:NVIDIA Ada(替换成自己显卡架构名字) GPU Architecture Compatibility
  1. nvidia-smi -q | grep -i arch ##方法一:查看显卡构架名字
  2. nvcc --list-gpu-arch ##方法二:直接查看支持的compute构架
复制代码
其他可行方案

所有步骤运行下来会发现esmfold安装的焦点在于精确安装openfoldv.1.0.0,既然如此我们打蛇打七寸,直接先参考openfold安装步骤安装openfoldv.1.0.0,然后在openfoldv.1.0.0环境中补充安装esmfold即可(两者给出的environment.yml基本是一样的)
  1. cd openfold
  2. ## 安装完成openfold
  3. /home/line2/miniforge3/bin/mamba env create -n openfold_venv -f environment.yml
  4. #conda config --show envs_dirs
  5. #conda config --append envs_dirs /home/line2/miniforge3/envs
  6. conda activate openfold_venv
  7. bash scripts/install_third_party_dependencies.sh
  8. pip install -e .
  9. ## 安装完成esmfold
  10. pip install fair-esm  # latest release,OR
  11. pip install git+https://github.com/facebookresearch/esm.git  # bleeding edge, current repo main branch
  12. pip install "fair-esm[esmfold]"
  13. ## 成功
复制代码
六、更新信息

20240730 第一次更新:更正安装openfold版本,增加调用数据测试。

总结

世上无难事,只怕故意人。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表