本家様 https://github.com/RosettaCommons/RoseTTAFold

蛋白質立体構造予測プログラム

[root@rockylinux9 ~]# cat /etc/redhat-release
Rocky Linux release 9.1 (Blue Onyx)
[root@rockylinux9 ~]# getenforce
Enforcing
[root@rockylinux9 ~]#
 
[root@rockylinux9 ~]# cd /apps/
[root@rockylinux9 apps]# git clone https://github.com/RosettaCommons/RoseTTAFold

RoseTTAFold/folding python実行環境

まずは RoseTTAFold と folding のpython実行環境を用意します.

RoseTTAFold の実行にcuda11を使うなら「RoseTTAFold-linux.yml」を、cuda10なら「RoseTTAFold-linux-cu101.yml」を使用します
cuda11、cuda10の分かれ目ですが、AmpreチップなGPUならcuda11が必須、それ以外のGPUチップならcuda10でも可って感じかな.

ここではA2000(Ampre)を使っているので cuda11 版を使います.

環境を確認してみると

[root@rockylinux9 ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  525.89.02  Wed Feb  1 23:23:25 UTC 2023
GCC version:  gcc version 11.3.1 20220421 (Red Hat 11.3.1-2) (GCC)
 
[root@rockylinux9 ~]#

python実行環境はpyenv/anacondaでここでは用意していて、まずは下準備

pyenv/anaconda環境が用意されていなければ、crYOLOのように下記を実行します

git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
pyenv install anaconda3-2022.10
pyenv global anaconda3-2022.10
export PATH=$PYENV_ROOT/versions/anaconda3-2022.10/bin:$PATH

もしcrYOLOとかでpyenv/anaconda環境を既に作ってるなら

export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
export PATH=$PYENV_ROOT/versions/anaconda3-2022.10/bin:$PATH

と環境を整えておく. その後に「RoseTTAFold-linux.yml」を下記のように実行.

[root@rockylinux9 ~]# conda env create -f /apps/RoseTTAFold/RoseTTAFold-linux.yml

そしてもう一つ folding 向けに

[root@rockylinux9 ~]# conda env create -f /apps/RoseTTAFold/folding-linux.yml

とします.
環境が作られたかは「conda env list」で確認します

[root@rockylinux9 ~]# conda env list |grep -e RoseTTAFold -e folding
RoseTTAFold              /apps/pyenv/versions/anaconda3-2022.10/envs/RoseTTAFold
folding                  /apps/pyenv/versions/anaconda3-2022.10/envs/folding
[root@rockylinux9 ~]#

trained weights and data

既にトレーニングされたweightsデータを展開します. 展開場所はRoseTTAFoldの直下です.

[root@rockylinux9 ~]# cd /apps/RoseTTAFold
[root@rockylinux9 RoseTTAFold]# wget https://files.ipd.uw.edu/pub/RoseTTAFold/weights.tar.gz
[root@rockylinux9 RoseTTAFold]# tar xvf weights.tar.gz
weights/
weights/RoseTTAFold_e2e.pt
weights/RoseTTAFold_pyrosetta.pt
weights/RF2t.pt
weights/Rosetta-DL_LICENSE.txt
[root@rockylinux9 RoseTTAFold]#

install third-party software

必要なアプリを追加します. 「install_dependencies.sh」を実行すればインストールされます.
lddt(Local Distance Difference Test, https://swissmodel.expasy.org/lddt)とcs-blast(Context-specific mutation probabilities for protein sequencing searching, https://github.com/soedinglab/csblast)

[root@rockylinux9 RoseTTAFold]# ./install_dependencies.sh
installing for linux
downloading lddt . . .
 :
Archive:  lddt.zip
  inflating: lddt/stereo_chemical_props.txt
  inflating: lddt/lddt
downloading cs-blast . . .
 :
[root@rockylinux9 RoseTTAFold]# ls -l
 :
drwxr-xr-x. 4 root root         58 Mar  7 16:53 csblast-2.2.3
drwxr-xr-x. 2 root root         51 Mar  7 16:53 lddt
 :
[root@rockylinux9 RoseTTAFold]#

実際にはこのほかに「GNU parallel」が必要で epelリポジトリにある「parallel.noarch」でもいいのかもしれないが、ここでは最新版をソースから持ってきて入れている

wget https://ftp.jaist.ac.jp/pub/GNU/parallel/parallel-20210722.tar.bz2
tar xf parallel-20210722.tar.bz2
cd parallel-20210722
./configure; make ; make install

これで「/usr/local/bin」に「parallel」がインストールされます. 最新版にする理由ですが、他のアプリ(I-TASSER)で問題があり、最新版を使っていたため. なのでepelリポジトリ提供の「GNU parallel」が RoseTTAFold が動かないとかは不明です

sequence and structure databases

データセットを用意します
必要なデータセットは3種. BFDuniref30structure templates

それぞれの取得先は下記参照

BFD_ttps://storage.googleapis.com/alphafold-databases/casp14_versions/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt.tar.gz
uniref30_ttp://wwwuser.gwdg.de/~compbiol/uniclust/2020_06/UniRef30_2020_06_hhsuite.tar.gz
structure templates_ttps://files.ipd.uw.edu/pub/RoseTTAFold/pdb100_2021Mar03.tar.gz

この内BFDは、Alphafoldの構築で bfd として取得済み、uniref30 はRaptorX-3DModelingで取得済みなので流用します

ここではこれらを「/Public/alphafold」の中に展開していて、それをRoseTTAFoldにシンボリックリンクで配置させてます

[root@rockylinux9 RoseTTAFold]# ln -s /Public/alphafold/bfd bfd
[root@rockylinux9 RoseTTAFold]# ln -s /Public/alphafold/HH-suite UniRef30_2020_06
[root@rockylinux9 RoseTTAFold]# ln -s /Public/alphafold/pdb100_2021Mar03 pdb100_2021Mar03
 
[root@rockylinux9 RoseTTAFold]# ls -l bfd pdb100_2021Mar03 UniRef30_2020_06
lrwxrwxrwx. 1 root root 21 Mar  7 16:55 bfd -> /Public/alphafold/bfd
lrwxrwxrwx. 1 root root 34 Mar  7 16:56 pdb100_2021Mar03 -> /Public/alphafold/pdb100_2021Mar03
lrwxrwxrwx. 1 root root 26 Mar  7 16:56 UniRef30_2020_06 -> /Public/alphafold/HH-suite
[root@rockylinux9 RoseTTAFold]#

PyRosetta licence and install the package

PyRosettaを「folding」実行環境に組み込みます.
PyRosettaは python バージョンで複数用意されているのでまずは「folding」実行環境のpythonバージョンを調べます.

[root@rockylinux9 ~]# source activate folding
(folding) [root@rockylinux9 ~]#
(folding) [root@rockylinux9 ~]# conda list | grep python
python                    3.7.16               h7a1cb2a_0
python-dateutil           2.8.2              pyhd3eb1b0_0
(folding) [root@rockylinux9 ~]#

っとどうやら「python-3.7」みたい. なので 取得すべき PyRosetta は python-3.7 系となる.

そしてPyRosettaにはインストール方式が複数あって、.tar.gzのsetupコマンドで入れるか、.whlのpipを使うかのどちらか.

ここではcondaで環境整備しているので whl 形式のファイルを使うことにしました.

実際のPyRosettaの入手ですが、ライセンス品で手続きが必要です. https://els2.comotion.uw.edu/product/pyrosettaから入手してください.

ここでは「PyRosetta4.Release.python37.linux.wheel」の「pyrosetta-2023.9+release.4388618-cp37-cp37m-linux_x86_64.whl」を取得しました.
ファイルを取得後に、下記のようにして「folding」実行環境に組み込みます.

(folding) [root@rockylinux9 ~]# which pip
/apps/pyenv/versions/anaconda3-2022.10/envs/folding/bin/pip
 
(folding) [root@rockylinux9 ~]#
/apps/pyenv/versions/anaconda3-5.3.1/envs/folding/bin/pip
 
(folding) [root@rockylinux9 ~]# pip install ./pyrosetta-2021.29+release.d8f5566-cp37-cp37m-linux_x86_64.whl
 
(確認)
(folding) [root@rockylinux9 ~]# conda list
 :
cudatoolkit               10.1.243             h6bb024c_0
 :
numpy                     1.21.5           py37h6c91a56_3
numpy-base                1.21.5           py37ha15fc14_3
 :
pyrosetta                 2023.9+release.4388618          pypi_0    pypi
 :
(folding) [root@c ~]#

となる.
....A2000なので「cudatoolkit 10.1.243」は微妙...

EnvironmentModules

「/apps/modulefiles/RoseTTAFold 」

#%Module1.0
prepend-path PATH /apps/pyenv/versions/anaconda3-2022.10/envs/RoseTTAFold/bin:/apps/RoseTTAFold

使い方

同封されている「run_pyrosetta_ver.sh」を使用するが一部修正

--- run_pyrosetta_ver.sh.orig   2023-03-07 17:07:27.138282772 +0900
+++ run_pyrosetta_ver.sh        2023-03-07 17:08:32.516866293 +0900
@@ -1,4 +1,8 @@
 #!/bin/bash
+if [ $# != 2 ]; then
+   echo "   useage: $0 <input fasta> <workdir>"
+   exit 1
+fi
 
 # make the script stop when error (non-true exit code) is occured
 set -e
@@ -6,7 +10,7 @@
 ############################################################
 # >>> conda initialize >>>
 # !! Contents within this block are managed by 'conda init' !!
-__conda_setup="$('conda' 'shell.bash' 'hook' 2> /dev/null)"
+__conda_setup="$('/apps/pyenv/versions/anaconda3-2022.10/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
 eval "$__conda_setup"
 unset __conda_setup
 # <<< conda initialize <<<

同じく「run_e2e_ver.sh」も一部修正

--- run_e2e_ver.sh.orig 2023-03-07 17:09:07.799180861 +0900
+++ run_e2e_ver.sh      2023-03-07 17:09:37.870447731 +0900
@@ -1,4 +1,8 @@
 #!/bin/bash
+if [ $# != 2 ]; then
+   echo "   useage: $0 <input fasta> <workdir>"
+   exit 1
+fi
 
 # make the script stop when error (non-true exit code) is occured
 set -e
@@ -6,7 +10,7 @@
 ############################################################
 # >>> conda initialize >>>
 # !! Contents within this block are managed by 'conda init' !!
-__conda_setup="$('conda' 'shell.bash' 'hook' 2> /dev/null)"
+__conda_setup="$('/apps/pyenv/versions/anaconda3-2022.10/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
 eval "$__conda_setup"
 unset __conda_setup
 # <<< conda initialize <<<

共に引数のエラーハンドルとcondaへの絶対PATH指定を入れた.

その上で

[saber@rockylinux9 ~]$ module use --prepend /apps/modulefiles/
[saber@rockylinux9 ~]$ module load RoseTTAFold
 
[saber@rockylinux9 ~]$ mkdir -p test/RoseTTAFold
[saber@rockylinux9 ~]$ cd test/RoseTTAFold
 
[saber@rockylinux9 RoseTTAFold]$ vi input.fa
>T1078 Tsp1, Trichoderma virens, 138 residues|
MAAPTPADKSMMAAVPEWTITNLKRVCNAGNTSCTWTFGVDTHLATATSCTYVVKANANASQASGGPVTCGPYTITSSWSGQFGPNNGFTTFAVTDFSKKLIVWPAYTDVQVQAGKVVSPNQSYAPANLPLEHHHHHH
 
[saber@rockylinux9 RoseTTAFold]$
[saber@rockylinux9 RoseTTAFold]$ run_pyrosetta_ver.sh input.fa out

メモ

  • DAN_msa.stderr
    dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, ...」が表示される
    folding環境のnumpyが最新すぎる. 「numpy=1.16」位にする
    [root@rockylinux9 ~]# source activate folding
    (folding) [root@rockylinux9 ~]# conda install numpy=1.16
     
     
     
     
    実行中でファイルに書き込み出来ないとしてエラーが発生した. 恐らく個人個人でRoseTTAFoldを構築する際には所有者も実行者はも同じなのでエラーが起こらなかったのだろうが、ここはrootが整備して、複数の方々が利用する環境を想定して作っているため難しい所がある.
    なので下記のように調整してます.
    #code(nonumber){{
    chmod 666 /apps/RoseTTAFold/network/equivariant_attention/from_se3cnn/cache/trans_Q/mutex
    ただ、これって複数人が同時に使用したらアウトっぽい気がする...

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2023-03-07 (火) 20:47:48 (86d)