#author("2022-05-09T15:22:42+00:00","default:sysosa","sysosa")
#author("2022-05-09T15:31:21+00:00","default:sysosa","sysosa")
本家様[[https://3dfsc.salk.edu/>+https://3dfsc.salk.edu/]]
GitHub[[https://github.com/LyumkisLab/3DFSC>+https://github.com/LyumkisLab/3DFSC]]
「This is an application for remotely processing the 3D Fourier shell correlation of cryoEM maps.」

***構築 [#v0074dae]
condaで実行環境ができるの下地が必要なようで、ここではpyenv/anacondaで用意している. [[crYOLO]]とかのように

既にpyenv/anaconda環境があるのなら
#code(nonumber){{
[root@rockylinux ~]# export PYENV_ROOT=/apps/pyenv
[root@rockylinux ~]# export PATH=$PYENV_ROOT/bin:$PATH
[root@rockylinux ~]# eval "$(pyenv init - --no-rehash)"

[root@rockylinux ~]# export PATH=$PYENV_ROOT/versions/anaconda3-5.3.1/bin/:$PATH
}}
とconda環境を準備する.
もしconda環境がないのなら[[crYOLO]]を参照にpyenv/anacondaを用意します.

っで本題


#code(nonumber){{
[root@rockylinux ~]# cd /apps/
[root@rockylinux apps]#
[root@rockylinux apps]# git clone https://github.com/LyumkisLab/3DFSC

[root@rockylinux apps]# cd 3DFSC

[root@rockylinux 3DFSC]# ls -CF
environment.yml*  Example/  __init__.py*  init.sh*  LICENSE*  README.md*  requirements.txt*  ThreeDFSC/

[root@rockylinux3DFSC]#
}}
「init.sh」がインストーラーの役目.
中身を読むと7行目「conda env create -f environment.yml」にて3DFSC の実行環境を用意しているみたい.
ただ、「environment.yml」は「conda export」で得られたファイルのようで git log を見ると 2019年のexportである.
恐らくエラー続出かなぁ...なので「init.sh」の実行ではなく、その中を個別に実行していくことにする.

#code(nonumber){{
[root@rockylinux 3DFSC]# less environment.yml
name: 3DFSC
channels:
- lukepfister
- defaults
dependencies:
- appdirs=1.4.3=py36_0
 :
[root@rockylinux 3DFSC]#
}}
どうやら作られる環境名は「3DFSC」みたい. 「conda env list」で同じ名前がないかを確認して進めます
#code(nonumber){{
[root@rockylinux 3DFSC]# conda env list
# conda environments:
#
base                  *  /apps/pyenv/versions/anaconda3-5.3.1

[root@rockylinux 3DFSC]#

[root@rockylinux 3DFSC]# conda env create -f environment.yml
}}
っで期待した通りのエラー..
#code(nonumber){{
[root@rockylinux 3DFSC]# conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: failed

ResolvePackageNotFound:
  - cudatoolkit==8.0=3
 :
}}
なのでconda環境は「environment.yml」を参考に独自で作って、
#code(nonumber){{
[root@rockylinux 3DFSC]# conda create -n 3DFSC python=3.6 hdf5 pycuda scipy cudatoolkit setuptools=57.4.0 pytools=2016.2.6 mkl=2017 -c anaconda -c conda-forge
[root@rockylinux 3DFSC]# conda create -n 3DFSC python=3.6 hdf5 pycuda scipy cudatoolkit=10 setuptools=57.4.0 pytools=2016.2.6 mkl=2017 -c anaconda -c conda-forge

[root@rockylinux 3DFSC]# source activate 3DFSC
(3DFSC) [root@rockylinux 3DFSC]#
}}
使用する「requirements.txt」も修正を加えます
#code(diff,nonumber){{
--- requirements.txt.orig       2022-05-09 23:56:54.878273808 +0900
+++ requirements.txt    2022-05-10 00:06:55.449449117 +0900
+++ requirements.txt    2022-05-10 00:26:16.321457290 +0900
@@ -1,11 +1,11 @@
 cycler==0.10.0
 decorator==4.1.2
 h5py==2.7.0
-llvmlite==0.19.0
+llvmlite==0.20.0
+llvmlite==0.26.0
 matplotlib==2.0.2
 mrcfile==1.0.0
 networkx==1.11
-numba==0.34.0
+numba==0.35.0
+numba==0.38.1
 numpy==1.13.1
 olefile==0.44
 Pillow==4.2.1
}}
これを「3DFSC」環境に組み込みます
#code(nonumber){{
(3DFSC) [root@rockylinux 3DFSC]# pip install -r requirements.txt
}}
これで一応環境作成は完了みたい.



次にコマンドの用意となる. init.shを実行すると使用するコマンド「run3DFSC.bash」「run3DFSC.sh」「run3DFSC.csh」が用意されるみたいだが、
ここでは[[EnvironmentModules]]と融合させたいので

#code(nonumber){{
[root@rockylinux ~]# vi /apps/modulefiles/3DFSC
#%Module 1.0

set          root       /apps/pyenv/versions/anaconda3-5.3.1/envs/3DFSC
prepend-path PATH       $root/bin
set-alias    run3DFSC   "python /apps/3DFSC/ThreeDFSC/ThreeDFSC_Start.py"

[root@rockylinux ~]#
}}
としてみた


***Example [#i54e4a76]
gitにテストrunの方法が記載されているのでやってみた

#code(nonumber){{
[saber@rockylinux ~]$ module load 3DFSC

[saber@rockylinux ~]$ run3DFSC -h
Usage: ThreeDFSC_Start.py [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  --halfmap1=HALFMAP1.MRC
                        First half map of 3D reconstruction. MRC format. Can
                        be masked or unmasked. Required
  --halfmap2=HALFMAP2.MRC
 :
 :
[saber@rockylinux ~]$
}}

とプログラム「run3DFSC」は動いている模様
っでテストを実行してみる
#code(nonumber){{
[saber@rockylinux ~]$ cp -r /apps/3DFSC/Example .
[saber@rockylinux ~]$ cd Example/

[saber@rockylinux Example]$ mv Results_T40-3DFSC Results_T40-3DFSC.orig

[saber@rockylinux Example]$ run3DFSC --halfmap1=T40_map1_Masked_144.mrc --halfmap2=T40_map2_Masked_144.mrc \
                           --fullmap=130K-T40.mrc --apix=1.31 --ThreeDFSC=T40-3DFSC
[saber@rockylinux Example]$
}}


***memo [#jb1ecd68]
GPUを使おうとすると
#code(nonumber){{
  File "/apps/pyenv/versions/anaconda3-5.3.1/envs/3DFSC/lib/python3.6/site-packages/numba/cuda/cudadrv/nvvm.py", line 340, in __init__
    raise RuntimeError(MISSING_LIBDEVICE_FILE_MSG.format(arch=arch))
RuntimeError: Missing libdevice file for compute_50.
Please ensure you have package cudatoolkit 7.5.
Install package by:

    conda install cudatoolkit=7.5
}}
とお𠮟りを受けます. この辺は微妙...

1

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS