未完成
本家様 https://github.com/RosettaCommons/RoseTTAFold
蛋白質立体構造予測プログラム
[root@c ~]# cd /apps
[root@c apps]#
[root@c apps]# git clone https://github.com/RosettaCommons/RoseTTAFold
RoseTTAFold/folding python実行環境 †
まずは RoseTTAFold と folding 向けのpython実行環境を用意します.
RoseTTAFold に関しては使用する計算機にcuda11のnvidiaドライバーが入っているなら「RoseTTAFold-linux.yml」を、
cuda10なら「RoseTTAFold-linux-cu101.yml」を使用します
現状の環境を確認してみると
[root@c ~]# cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.42.01 Tue Jun 15 21:26:37 UTC 2021
GCC version: gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
[root@c ~]# /usr/local/cuda/bin/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0
[root@c ~]#
となっているので cuda11対応の「RoseTTAFold-linux.yml」を使ってRoseTTAFoldの実行環境を作ります
それではcondaで環境を作ります.
このサイトではcrYOLOとかで既にanaconda環境が準備されいます. なので下記のみを実行してanaconda環境に移る.
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init - --no-rehash)"
export PATH=$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH
(condaが古いと言われたら)
conda update -n base -c defaults conda
その後に「RoseTTAFold-linux.yml」を下記のように実行.
[root@c ~]# conda env create -f /apps/RoseTTAFold/RoseTTAFold-linux.yml
そしてもう一つ folding 向けに
[root@c ~]# conda env create -f /apps/RoseTTAFold/folding-linux.yml
とします.
環境が作られたかは「conda env list」で確認します
[root@c ~]# conda env list |grep -e RoseTTAFold -e folding
RoseTTAFold /apps/pyenv/versions/anaconda3-5.3.1/envs/RoseTTAFold
folding /apps/pyenv/versions/anaconda3-5.3.1/envs/folding
trained weights and data †
既にトレーニングされたweightsデータを展開します. 展開場所はRoseTTAFoldの直下です.
[root@c ~]# cd /apps/RoseTTAFold
[root@c RoseTTAFold]# wget https://files.ipd.uw.edu/pub/RoseTTAFold/weights.tar.gz
[root@c RoseTTAFold]# tar xvf weights.tar.gz
weights/
weights/RoseTTAFold_e2e.pt
weights/RoseTTAFold_pyrosetta.pt
weights/Rosetta-DL_LICENSE.txt
[root@c 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@c ~]# cd /apps/RoseTTAFold
[root@c 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@c RoseTTAFold]# ls -l
:
drwxr-xr-x 2 root root 61 7月 24 22:04 lddt
drwxr-xr-x 4 root root 74 7月 24 22:05 csblast-2.2.3
:
[root@c 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種. BFD と uniref30 と structure 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で取得済みなので流用します.
[root@c ~]# cd /apps/RoseTTAFold
[root@c RoseTTAFold]# ln -s /apps/AlphafoldData/bfd .
[root@c RoseTTAFold]# ln -s /data/database/HH-suite ./UniRef30_2020_06
配置する場所はAlphafoldDataの直下です. そしてそのフォルダ名は「bfd」「UniRef30_2020_06」とします
RoseTTAFold を実行するスクリプトのご指名です
そして構造テンプレートも用意します. これは指定の場所から入手して展開します
[root@c ~]# cd /apps/RoseTTAFold
[root@c RoseTTAFold]# wget https://files.ipd.uw.edu/pub/RoseTTAFold/pdb100_2021Mar03.tar.gz (114GB)
[root@c RoseTTAFold]# tar xfz pdb100_2021Mar03.tar.gz
フォルダ名は「pdb100_2021Mar03」となります.
PyRosetta licence and install the package †
PyRosettaを「folding」実行環境に組み込みます.
PyRosettaは python バージョンで複数用意されているのでまずは「folding」実行環境のpythonバージョンを調べます.
[root@c ~]# source activate folding
(folding) [root@c ~]# conda list | grep python
python 3.7.10 h12debd9_4
python-dateutil 2.8.2 pyhd3eb1b0_0
(folding) [root@c ~]#
っとどうやら「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-2021.29+release.d8f5566-cp37-cp37m-linux_x86_64.whl」を取得しました.
ファイルを取得後に、下記のようにして「folding」実行環境に組み込みます.
[root@c ~]# source activate folding
(folding) [root@c ~]# which pip
/apps/pyenv/versions/anaconda3-5.3.1/envs/folding/bin/pip
(folding) [root@c ~]# pip install ./pyrosetta-2021.29+release.d8f5566-cp37-cp37m-linux_x86_64.whl
(確認)
(folding) [root@c ~]# conda list
:
pyrosetta 2021.29+release.d8f5566 pypi_0 pypi
:
(folding) [root@c ~]#
EnvironmentModules †
「/etc/modulefiles/RoseTTAFold 」
#%Module1.0
prepend-path PATH /apps/pyenv/versions/anaconda3-5.3.1/envs/RoseTTAFold/bin:/apps/RoseTTAFold
使い方 †
同封されている「run_pyrosetta_ver.sh」を使用するが一部修正
| --- run_pyrosetta_ver.sh.orig 2021-07-23 11:07:48.818199240 +0900
+++ run_pyrosetta_ver.sh 2021-07-26 02:30:04.437208486 +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-5.3.1/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 2021-07-23 11:07:48.816199212 +0900
+++ run_e2e_ver.sh 2021-07-26 02:35:25.832803691 +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-5.3.1/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
eval "$__conda_setup"
unset __conda_setup
# <<< conda initialize <<<
|
共に引数のエラーハンドルとcondaへの絶対PATH指定を入れた.
その上で
[saber@c ~]$ module load RoseTTAFold
[saber@c ~]$ mkdir test_RoseTTAFold && cd test_RoseTTAFold
[saber@c test_RoseTTAFold]$ cat input.fa
>T1078 Tsp1, Trichoderma virens, 138 residues|
MAAPTPADKSMMAAVPEWTITNLKRVCNAGNTSCTWTFGVDTHLATATSCTYVVKANANASQASGGPVTCGPYTITSSWSGQFGPNNGFTTFAVTDFSKKLIVWPAYTDVQVQAGKVVSPNQSYAPANLPLEHHHHHH
[saber@c test_RoseTTAFold]$ run_pyrosetta_ver.sh input.fa .
メモ †
実行中でファイルに書き込み出来ないとしてエラーが発生した. 恐らく個人個人でRoseTTAFoldを構築する際には所有者も実行者はも同じなのでエラーが起こらなかったのだろうが、ここはrootが整備して、複数の方々が利用する環境を想定して作っているため難しい所がある.
なので下記のように調整してます.
chmod 666 /apps/RoseTTAFold/network/equivariant_attention/from_se3cnn/cache/trans_Q/mutex
ただ、これって複数人が同時に使用したらアウトっぽい気がする...