本家様 https://github.com/deepmind/alphafold
AIを使った蛋白質立体構造予測プログラム.
[root@c ~]# cd /apps
[root@c apps]# git clone https://github.com/deepmind/alphafold
(確認)
[root@c apps]# ls -l alphafold/
total 56
drwxr-xr-x 6 root root 77 Jul 20 02:49 alphafold/
-rw-r--r-- 1 root root 973 Jul 20 02:49 CONTRIBUTING.md
drwxr-xr-x 2 root root 89 Jul 20 02:49 docker/
drwxr-xr-x 2 root root 54 Jul 20 02:49 imgs/
-rw-r--r-- 1 root root 11358 Jul 20 02:49 LICENSE
-rw-r--r-- 1 root root 15665 Jul 20 02:49 README.md
-rw-r--r-- 1 root root 189 Jul 20 02:49 requirements.txt
-rw-r--r-- 1 root root 11065 Jul 20 02:49 run_alphafold.py
-rw-r--r-- 1 root root 2433 Jul 20 02:49 run_alphafold_test.py
drwxr-xr-x 2 root root 231 Jul 20 02:49 scripts/
-rw-r--r-- 1 root root 1829 Jul 20 02:49 setup.py
[root@c apps]#遺伝子配列データセットと蛋白質立体構造データセットが必要. 取得用のスクリプトが用意されている.
そのスクリプトの実行には rsync や aris2 コマンドが必要で事前に入れておく.
[root@c ~]# yum --enablerepo=epel install rsync aria2っでデータセットを入れておく場所を用意して、取得用スクリプトを実行する.
[root@c ~]# mkdir /apps/AlphafoldData
[root@c ~]# /apps/alphafold/scripts/download_all_data.sh /apps/AlphafoldData*注意. 「download_all_data.sh」を途中で止めて、再度実行するとまた初めからダウンロードします. 既に取得したにも関わらす再度ダウンロードを行うので注意.
「download_all_data.sh」の中身を見ると、各データセットごとのスクリプトを連続して実行しているだけなので、
もし途中で止まったら、既にダウンロード完了したスクリプトを除いて続ければ幸せになるのかと.
下記ファイルがダウンロードされる
| AlphaFold parameters | download_alphafold_params.sh | _ttps://storage.googleapis.com/alphafold/alphafold_params_2021-07-14.tar |
| BFD | download_bfd.sh | _ttps://storage.googleapis.com/alphafold-databases/casp14_versions/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt.tar.gz |
| MGnify | download_mgnify.sh | _tp://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2018_12/mgy_clusters.fa.gz |
| PDB70 | download_pdb70.sh | _ttp://wwwuser.gwdg.de/~compbiol/data/hhsuite/databases/hhsuite_dbs/old-releases/pdb70_from_mmcif_200401.tar.gz |
| PDB mmCIF files | download_pdb_mmcif.sh | rsync.rcsb.org::ftp_data/structures/divided/mmCIF/ |
| Uniclust30 | download_uniclust30.sh | _ttp://wwwuser.gwdg.de/~compbiol/uniclust/2018_08/uniclust30_2018_08_hhsuite.tar.gz |
| Uniref90 | download_uniref90.sh | _tp://ftp.uniprot.org/pub/databases/uniprot/uniref/uniref90/uniref90.fasta.gz |
ダウンロードが遅ければミラーサイトを使用するのもありかと.
|
最終的な各フォルダのサイズは下記のようになる
[root@c AlphafoldData]# du -hs ./*
1.8T ./bfd
64G ./mgnify
3.5G ./params
56G ./pdb70
206G ./pdb_mmcif
87G ./uniclust30
59G ./uniref90
[root@c AlphafoldData]#あとファイル所有者が 600 とかもあるので適時修正. bfd とか uniclust30 とか pdb70 とかにあった
「find . ! -perm -o=r」で検索かな. othersが読めないファイルを探す
*メモ
rsyncでダウンロードするdownload_pdb_mmcif.shですが、自分のサイトから実行する際に下記のように言われる時がある
rsync: failed to connect to ftp.pdbj.org (133.1.158.161): Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(125) [Receiver=3.1.2]これはPROXYの設定で回避可能かもしれません。
「export RSYNC_PROXY=<proxyサーバ>:<port>」と設定してください.
本家様では docker の利用を提案している.
そのままなぞれば実行できるみたい. ここでは https://github.com/kalininalab/alphafold_non_docker
にある docker を使わない方法を採用してみる.
ただ、https://github.com/kalininalab/alphafold_non_docker
はminicondaを使っている. それもいいのだが、crYOLOとかtopazでここではanacondaを使っているのでそれに合わせて.
git clone https://github.com/yyuu/pyenv.git /apps/pyenv
export PYENV_ROOT=/apps/pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init - --no-rehash)"
pyenv install anaconda3-5.3.1
pyenv global anaconda3-5.3.1
export PATH=$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH
conda update --allAlphafold 実行環境を作ります
[root@c ~]# conda create -n alphafold python==3.8
[root@c ~]# source activate alphafold
(alphafold) [root@c ~]# conda install -y -c conda-forge openmm==7.5.1 cudnn==8.2.1.32 cudatoolkit==11.0.3 pdbfixer==1.7
(alphafold) [root@c ~]# conda install -y -c bioconda hmmer==3.3.2 hhsuite==3.3.0 kalign2==2.04
(alphafold) [root@c ~]# cd /apps
(alphafold) [root@c apps]# wget -q -P alphafold/alphafold/common/ \
https://git.scicore.unibas.ch/schwede/openstructure/-/raw/7102c63615b64735c4941278d92b554ec94415f8/modules/mol/alg/src/stereo_chemical_props.txt
(alphafold) [root@c apps]# ls -CF alphafold/alphafold/common/
__init__.py protein_test.py stereo_chemical_props.txt
confidence.py residue_constants.py testdata/
protein.py residue_constants_test.py
(alphafold) [root@c apps]# pip install absl-py==0.13.0 biopython==1.79 chex==0.0.7 dm-haiku==0.0.4 dm-tree==0.1.6 \
immutabledict==2.0.0 jax==0.2.14 ml-collections==0.1.0 numpy==1.19.5 scipy==1.7.0 tensorflow==2.5.0
[この段階で jax と jaxlib は 0.2.14/0.1.69 となっている]
(alphafold) [root@c apps]# pip install --upgrade jax jaxlib==0.1.69+cuda111 -f https://storage.googleapis.com/jax-releases/jax_releases.html
[この更新で jax は 0.2.18に jaxlibは 0.1.69+cuda111 となる]
(alphafold) [root@c apps]# cd /apps/pyenv/versions/anaconda3-5.3.1/envs/alphafold/lib/python3.8/site-packages/
(alphafold) [root@c site-packages]# patch -p0 < /apps/alphafold/docker/openmm.patch
[このpatchで変更されるのは ./simtk/openmm/app/topology.py ]
(alphafold) [root@c site-packages]# source deactivate
[root@c site-packages]#スクリプトの準備
[root@c ~]# cd /apps/src
[root@c src]# git clone https://github.com/kalininalab/alphafold_non_docker
[root@c src]# cp alphafold_non_docker/run_alphafold.sh /apps/alphafold/
[root@c src]# vi /apps/alphafold/run_alphafold.sh
:
-current_working_dir=$(pwd)
+current_working_dir=$alphafold_path
alphafold_script="$current_working_dir/run_alphafold.py"
:
[root@c src]# |
「/etc/modulefiles/Alphafold」
#%Module1.0
set alphafold_path /apps/alphafold
set root /apps/pyenv/versions/anaconda3-5.3.1/envs/alphafold
setenv alphafold_path $alphafold_path
prepend-path PATH $root/bin:$alphafold_path環境変数「CUDA_VISIBLE_DEVICES」が正しく設定されていないとGPUで計算をしてくれない
module load Alphafold
run_alphafold.sh -d /apps/AlphafoldData -o . -m model_1 -f ./query.fasta -t 2020-05-14 -g true -a 0各引数は「run_alphafold.sh」を実行すると説明が表示される.
「-f」は入力ファイル. fasta形式のファイル.
「-g」はGPUを使うなら「-g true」、使わないなら「-g 0」とかにする. 初回リリースから変更されたみたい
「-a」の値はGPUIDの番号. 1枚目のGPUを使うなら「-a 0」. 二枚目なら「-a 1」.
「-o」は出力先. 「-o .」で実行場所に結果が展開される
「-g」を有効にする値は「-g true」のみ. それ以外は無効みたい.
「Unable to initialize backend 'tpu_driver': Not found: Unable to find driver in registry given worker: local://」は気にしない.
「Unable to initialize backend 'tpu': Invalid argument: TpuPlatform is not available.」も気にしない.
gpuは1枚で十分?
インストールされるtensorflowがcuda-11を要求するみたい.