#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 }} とお𠮟りを受けます. この辺は微妙...