#author("2023-09-30T08:57:25+00:00","default:sysosa","sysosa") #author("2023-12-11T16:07:37+00:00;2023-09-30T08:57:25+00:00","default:sysosa","sysosa") 本家様 [[http://scipion.i2pc.es/>+http://scipion.i2pc.es/]] scipionがver3になりました ここでは RockyLinux9 にscipion3を入れてます ***下準備 [#ea586f16] #code(nonumber){{ [root@rockylinux9 ~]# cat /etc/redhat-release Rocky Linux release 9.2 (Blue Onyx) [root@rockylinux9 ~]# cat /proc/driver/nvidia/version NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.54.03 Tue Jun 6 22:20:39 UTC 2023 GCC version: gcc version 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) [root@rockylinux9 ~]# ls -ld /usr/local/cuda* lrwxrwxrwx. 1 root root 22 Sep 30 16:06 /usr/local/cuda -> /etc/alternatives/cuda lrwxrwxrwx. 1 root root 25 Sep 30 16:06 /usr/local/cuda-12 -> /etc/alternatives/cuda-12 drwxr-xr-x. 15 root root 4096 Sep 30 16:06 /usr/local/cuda-12.2 [root@rockylinux9 ~]# alternatives --list | grep cuda cufile.json auto /usr/local/cuda-12.2/gds/cufile.json cuda auto /usr/local/cuda-12.2 cuda-12 auto /usr/local/cuda-12.2 [root@rockylinux9 ~]# dnf install libzstd-devel hdf5-devel python3-devel python3-tkinter openmpi-devel cmake \ wget fftw-devel libtiff-devel java-1.8.0-openjdk-devel libjpeg-turbo-devel sqlite-devel environment-modules -y [root@rockylinux9 ~]# (RHEL8系) dnf install libzstd-devel hdf5-devel python3-devel python3-tkinter openmpi-devel \ wget fftw-devel libtiff-devel java-1.8.0-openjdk-devel libjpeg-turbo-devel sqlite-devel }} #code(nonumber){{ [root@rockylinux9 ~]# nvidia-smi -L GPU 0: NVIDIA RTX A2000 (UUID: GPU-23cc3ee7-31d3-a068-2f61-5aa00052d084) [root@rockylinux9 ~]# }} ***インストール [#l9bfe37e] まずはconda環境を準備します. ここでは pyenv-anaconda3 環境を使ってます. #code(nonumber){{ git clone https://github.com/yyuu/pyenv.git /apps/pyenv export PYENV_ROOT=/apps/pyenv export PATH=$PYENV_ROOT/bin:$PATH pyenv install anaconda3-2023.07-2 pyenv global anaconda3-2023.07-2 export PATH=$PYENV_ROOT/versions/anaconda3-2023.07-2/bin:$PATH conda install conda-build=3.26.1 conda update conda -y (既にpyenv-anaconda3環境があれば) export PYENV_ROOT=/apps/pyenv export PATH=$PYENV_ROOT/bin:$PATH export PATH=$PYENV_ROOT/versions/anaconda3-2023.07-2/bin:$PATH }} 確認. 現在conda経由で提供しているpython実行環境は下記になる. #code(nonumber){{ [root@rockylinux9 ~]# conda env list # conda environments: # base /apps/pyenv/versions/anaconda3-2023.07-2 [root@rockylinux9 ~]# }} この環境リストにscipion実行環境を増やす形なのだが、まず「scipion-installer」を入れます #code(nonumber){{ [root@rockylinux9 ~]# which pip /apps/pyenv/versions/anaconda3-2023.07-2/bin/pip [root@rockylinux9 ~]# pip install scipion-installer }} そしてコンパイル環境を整備してscipionを入れます #code(nonumber){{ [root@rockylinux9 ~]# source /apps/pyenv/versions/anaconda3-2023.07-2/etc/profile.d/conda.sh [root@rockylinux9 ~]# which mpirun /apps/pyenv/versions/anaconda3-2023.07-2/bin/mpirun [root@rockylinux9 ~]# module load mpi/openmpi-x86_64 [root@rockylinux9 ~]# which mpirun /usr/lib64/openmpi/bin/mpirun [root@rockylinux9 ~]# python -m scipioninstaller -conda -noXmipp -noAsk /apps/scipion3 : : ------------------------------------ Scipion core successfully installed. ------------------------------------ _______________________________________________________________________ | | | Installation successfully finished!! Happy EM processing!! | _______________________________________________________________________ You can launch Scipion using the launcher at: /apps/scipion3/scipion3 _______________________________________________________________________ [root@rockylinux9 ~]# [root@rockylinux9 ~]# conda env list # conda environments: # base /apps/pyenv/versions/anaconda3-2023.07-2 scipion3 /apps/pyenv/versions/anaconda3-2023.07-2/envs/scipion3 [root@rockylinux9 ~]# [root@rockylinux9 ~]# /apps/scipion3/scipion3 config --overwrite : : Press <enter> to continue: <--- リターンキーを押下 /apps/scipion3/config/hosts.conf hosts * Creating configuration file: /apps/scipion3/config/hosts.conf Please edit it to reflect the configuration of your system. Checking paths in /apps/scipion3/config/scipion.conf ... All seems fine with /apps/scipion3/config/scipion.conf [root@rockylinux9 ~]# [root@rockylinux9 ~]# vi /apps/scipion3/config/scipion.conf }} 「/apps/scipion3/config/scipion.conf」の末尾に下記を追加 #code(nonumber){{ CUDA = True CUDA_BIN = /usr/local/cuda-12.2/bin CUDA_LIB = /usr/local/cuda-12.2/lib64 MPI_BINDIR = /usr/lib64/openmpi/bin MPI_LIBDIR = /usr/lib64/openmpi/lib MPI_INCLUDE = /usr/include/openmpi-x86_64 OPENCV = False }} っで続き #code(nonumber){{ [root@rockylinux9 ~]# conda activate scipion3 (scipion3) [root@rockylinux9 ~]# pip install scons (scipion3) [root@rockylinux9 ~]# conda deactivate [root@rockylinux9 ~]# [root@rockylinux9 ~]# /apps/scipion3/scipion3 installp -p scipion-em-xmipp -j 12 }} ***メモ [#efcf8d8f] scipionのパッケージ置き場所 [[http://scipion.cnb.csic.es/downloads/scipion/software/em>+http://scipion.cnb.csic.es/downloads/scipion/software/em]] ***EnvironmentModules [#acac77da] EnvironmentModules 向けに「/etc/modulefiles/scipion3」を下記のようにする #code(nonumber){{ #%Module1.0 set-alias scipion3 /apps/scipion3/scipion3 }} ***plug-in [#sff9a971] scipionを起動して、「create project」でプロジェクトを作り、それが開くと下記のようになる &ref(2023y09m30d_175609262.png,nolink); 使用できるツールはインストール直後は「Xmipp3」由来のみです. この他にもツールが搭載できる. いったいどんなツールがこのscipionに追加できるかは scipion を起動して、[Others]->[Plugin manager]を開くと一覧できる. あるいはコマンドラインで「scipion3 installp --help」でも一覧できる #code(nonumber){{ [root@rockylinux9 ~]# module load scipion3 [root@rockylinux9 ~]# scipion3 installp --checkUpdates Scipion v3.1.0 - Eugenius Available plugins: ([ ] not installed, [X] seems already installed) scipion-em-appion [ ] scipion-em-aretomo [ ] scipion-em-atomstructutils [ ] scipion-em-atsas [ ] scipion-em-bamfordlab [ ] scipion-em-bsoft [ ] scipion-em-ccp4 [ ] scipion-em-chimera [ ] scipion-em-cistem [ ] scipion-em-continuousflex [ ] scipion-em-cryoassess [ ] scipion-em-cryodrgn [ ] scipion-em-cryoef [ ] scipion-em-cryosparc2 [ ] scipion-em-dynamo [ ] scipion-em-eman2 [ ] scipion-em-emantomo [ ] scipion-em-embuild [ ] scipion-em-empiar [ ] scipion-em-emready [ ] scipion-em-emxlib [ ] scipion-em-facilities [ ] scipion-em-fsc3d [ ] scipion-em-gautomatch [ ] scipion-em-gctf [ ] scipion-em-imagic [ ] scipion-em-imod [ ] scipion-em-isonet [ ] scipion-em-localrec [ ] scipion-em-locscale [ ] scipion-em-modelangelo [ ] scipion-em-motioncorr [ ] scipion-em-novactf [ ] scipion-em-phenix [ ] scipion-em-prody [ ] scipion-em-relion [ ] scipion-em-reliontomo [ ] scipion-em-repic [ ] scipion-em-resmap [ ] scipion-em-sidesplitter [ ] scipion-em-sphire [ ] scipion-em-spider [ ] scipion-em-spoc [ ] scipion-em-susantomo [ ] scipion-em-tomo [ ] scipion-em-tomo3d [ ] scipion-em-tomotwin [ ] scipion-em-tomoviz [ ] scipion-em-topaz [ ] scipion-em-warp [ ] scipion-em-xmipp 23.7.0.0 [X] scipion-em-xmipp2 [ ] scipion-em-xmipptomo [ ] [root@rockylinux9 ~]# }} &color(red){*};&size(10){これ以外にもbeta版とかがあり、それらは[[https://github.com/scipion-em>+https://github.com/scipion-em]]で確認できます}; 例えば、scipionからrelionを実行したいなら、relionのplug-inをインストールします. しかし既にインストール済みのrelionがあって、そのバイナリーをそのまま使用したいなら 「&color(magenta){scipion3 installp -p scipion-em-relion ''--noBin''};」と実行する #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-relion --noBin (確認) [root@s ~]# scipion3 installp --checkUpdates | grep relion scipion-em-relion 3.1.2 [X] (加えたこのpluginを削除したければ) [root@s ~]# scipion3 uninstallp -p scipion-em-relion }} これでrelionへのpluginインターフェースは用意できました. 次にscipion3に環境変数でrelionプログラムへの接続を定義します. 定義すべき環境変数は「scipion3 config -p <プログラム名>」で提示されます. #code(nonumber){{ [root@s ~]# scipion3 config -p relion Scipion v3.0.8 - Eugenius Variables defined by plugin 'relion': RELION_HOME = /apps/scipion/software/em/relion-3.1.2 RELION_CUDA_LIB = /usr/local/cuda/lib64 These variables can be added/edited in '/apps/scipion/config/scipion.conf' [root@s ~]# }} この場合、「&color(orangered){RELION_HOME};」と「&color(orange){RELION_CUDA_LIB};」の定義が必要で、 それは「/apps/scipion/config/scipion.conf」で明記される必要があるようです. これで既にインストールされているrelionプログラムを使い回しできる. &size(10){その前に「scipion3 installb」でrelionのどのバージョンが対応なのか調べておく必要があるかも}; なので、 #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf [PYWORKFLOW] CONDA_ACTIVATION_CMD = eval "$(/apps/pyenv/versions/anaconda3-5.3.1/bin/conda shell.bash hook)" [PLUGINS] RELION_CUDA_LIB = /usr/local/cuda-11.2/lib64 RELION_CUDA_BIN = /usr/local/cuda-11.2/bin RELION_HOME = /apps/relion-3.1.2 [root@s ~]# }} &size(10){実際には「RELION_CUDA_BIN」の塚も要求された}; その後scipionを再起動するとrelionの機能が追加されます &ref(2021y07m08d_225847094.png,nolink); ***plug-in Gautomatch [#kb124d20] 次がGautomatchを入れてみる. これも既に手元にあって使えるならさらにバイナリーを入れる必要はなく、そのバイナリーを拝借する事にする. #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-gautomatch --noBin (確認) [root@s ~]# scipion3 installp --checkUpdates | grep gautomatch scipion-em-gautomatch 3.0.14 [X] (必要となる環境変数の確認) [root@s ~]# scipion3 config -p gautomatch Scipion v3.0.8 - Eugenius Variables defined by plugin 'gautomatch': GAUTOMATCH_HOME = /apps/scipion/software/em/gautomatch-0.56 GAUTOMATCH = Gautomatch_v0.56_sm30-75_cu10.1 GAUTOMATCH_CUDA_LIB = /usr/local/cuda/lib64 These variables can be added/edited in '/apps/scipion/config/scipion.conf' (なので) [root@s ~]# vi /apps/scipion/config/scipion.conf [PYWORKFLOW] CONDA_ACTIVATION_CMD = eval "$(/apps/pyenv/versions/anaconda3-5.3.1/bin/conda shell.bash hook)" [PLUGINS] (略 GAUTOMATCH_HOME = /apps/GCTF_Gautomatch_Cu10.1/ GAUTOMATCH = Gautomatch_v0.56_sm30-75_cu10.1 GAUTOMATCH_CUDA_LIB = /usr/local/cuda-10.2/lib64 [root@s ~]# }} これでscipionを起動します &ref(2021y07m08d_230737299.png,nolink); ***plug-in Sphire [#e3ff7c9f] このSphire Plug-inの中に[[crYOLO]]が入ってます. っで #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-sphire --noBin (必要となる環境変数の確認) [root@s ~]# scipion3 config -p sphire [root@s ~]# scipion3 config -p sphire Scipion v3.0.8 - Eugenius Variables defined by plugin 'sphire': CRYOLO_ENV_ACTIVATION_CPU = conda activate cryoloCPU-1.7.6 CRYOLO_ENV_ACTIVATION = conda activate cryolo-1.7.6 CRYOLO_GENERIC_MODEL = /apps/scipion/software/em/cryolo_model-202005_N63_c17/gmodel_phosnet_202005_N63_c17.h5 CRYOLO_GENERIC_DENOISED_MODEL = /apps/scipion/software/em/cryolo_model-202005_nn_N63_c17/gmodel_phosnet_202005_nn_N63_c17.h5 JANNI_GENERIC_MODEL = /apps/scipion/software/em/janni_model-20190703/gmodel_janni_20190703.h5 CRYOLO_NS_GENERIC_MODEL = /apps/scipion/software/em/cryolo_negstain_model-20190226/gmodel_phosnet_negstain_20190226.h5 CRYOLO_CUDA_LIB = /usr/local/cuda/lib64 These variables can be added/edited in '/apps/scipion/config/scipion.conf' [root@s ~]# }} どうやらモデルがいるの指定もここでするみたい. 加えて「conda activate」でpython実行環境に移行するようなので、事前に「conda env list」でcrYOLOの環境名を確認します #code(nonumber){{ [root@s ~]# conda env list |grep -i cryolo crYOLO /apps/pyenv/versions/anaconda3-5.3.1/envs/crYOLO [root@s ~]# }} なので「/apps/scipion/config/scipion.conf」は下記のようにします #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf [PYWORKFLOW] CONDA_ACTIVATION_CMD = eval "$(/apps/pyenv/versions/anaconda3-5.3.1/bin/conda shell.bash hook)" [PLUGINS] (略 CRYOLO_ENV_ACTIVATION = conda activate crYOLO CRYOLO_GENERIC_MODEL = /apps/crYOLO/gmodel_phosnet_202005_N63_c17.h5 CRYOLO_GENERIC_DENOISED_MODEL = /apps/crYOLO/gmodel_phosnet_202005_nn_N63_c17.h5 JANNI_GENERIC_MODEL = /apps/janni/gmodel_janni_20190703.h5 CRYOLO_NS_GENERIC_MODEL = /apps/crYOLO/gmodel_phosnet_negstain_20190226.h5 CRYOLO_CUDA_LIB = /usr/local/cuda/lib64 }} &color(red){*};&size(10){「CRYOLO_ENV_ACTIVATION_CPU 」はCPU版のcrYOLOがあるなら}; ***plug-in Topaz [#r0ff80c8] 次にpickツールのTopazを入れてみる. 同じくバイナリーは既にインストール済みのものを使う[[topaz]] #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-topaz --noBin [root@s ~]# scipion3 config -p topaz Scipion v3.0.8 - Eugenius Variables defined by plugin 'topaz': TOPAZ_ENV_ACTIVATION = conda activate topaz-0.2.4 These variables can be added/edited in '/apps/scipion/config/scipion.conf' [root@s ~]# }} condaで「topaz-0.2.4」なるpython実行環境をロードしているが、ここでは既に「topaz」として環境を作っているので、 それを借用してみる #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf [PYWORKFLOW] CONDA_ACTIVATION_CMD = eval "$(/apps/pyenv/versions/anaconda3-5.3.1/bin/conda shell.bash hook)" [PLUGINS] (略 TOPAZ_ENV_ACTIVATION = conda activate topaz [root@s ~]# }} &color(red){*};&size(10){「module load topaz」とかでもいいかなと思ったが、CONDA_ACTIVATION_CMDの変更が必要なので「conda activate」のままにしてみた}; &ref(2021y07m09d_005654817.png,nolink); ***deepfinder [#oa7ddd96] [[https://github.com/scipion-em/scipion-em-deepfinder>+https://github.com/scipion-em/scipion-em-deepfinder]] 「scipion3 installp --checkUpdates」には表示されていないアプリで[[https://github.com/scipion-em>+https://github.com/scipion-em]]に表示されているアプリを使う場合は「--devel」を付けて導入する バイナリーも一緒に入れるので、「--noBin」は付けない. #code(nonumber){{ [root@s ~]# scipion3 installp -p https://github.com/scipion-em/scipion-em-deepfinder.git --devel }} これでdeepfinderのplug-inとバイナリー(プログラム)がインストールされる. 次に、環境設定. 必要な環境変数を調べる #code(nonumber){{ [root@s ~]# scipion3 config -p deepfinder Scipion v3.0.8 - Eugenius Variables defined by plugin 'deepfinder': DF_HOME = /apps/scipion/software/em/deepfinder-0.1 DF_ENV_ACTIVATION = conda activate deepfinder-0.1 These variables can be added/edited in '/apps/scipion/config/scipion.conf' [root@s ~]# }} 環境変数として「DF_HOME」と「DF_ENV_ACTIVATION」が必要なのが分かる. plug-inの追加の際に、「--noBin」を付けないと、ここで提示された値がそのまま使える. 確認のために、condaの環境リストを調べると #code(nonumber){{ [root@s ~]# conda env list | grep deepfinder deepfinder-0.1 /apps/pyenv/versions/anaconda3-5.3.1/envs/deepfinder-0.1 [root@s ~]# }} そして、バイナリーの存在を確認すると下記のようになっている. #code(nonumber){{ [root@s ~]# ls -l /apps/scipion/software/em/deepfinder-0.1/bin/ total 24 -rwxrwxr-x 1 root root 1021 May 20 19:03 annotate -rwxrwxr-x 1 root root 1614 May 20 19:03 cluster -rwxrwxr-x 1 root root 842 May 20 19:03 display -rwxrwxr-x 1 root root 1554 May 20 19:03 generate_target -rwxrwxr-x 1 root root 2330 May 20 19:03 segment -rwxrwxr-x 1 root root 1925 May 20 19:03 train [root@s ~]# }} なので、「/apps/scipion/config/scipion.conf」への記載は「scipion3 config -p deepfinder」の通りにする #code(nonumber){{ [PYWORKFLOW] CONDA_ACTIVATION_CMD = eval "$(/apps/pyenv/versions/anaconda3-5.3.1/bin/conda shell.bash hook)" [PLUGINS] (略 DF_HOME = /apps/scipion/software/em/deepfinder-0.1 DF_ENV_ACTIVATION = conda activate deepfinder-0.1 }} ***plug-in Gctf [#nbae3731] #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-gctf --noBin [root@s ~]# scipion3 config -p gctf Scipion v3.0.8 - Eugenius Variables defined by plugin 'gctf': GCTF_HOME = /apps/scipion3/software/em/gctf-1.18 GCTF = Gctf_v1.18_sm30-75_cu10.1 GCTF_CUDA_LIB = /usr/local/cuda/lib64 These variables can be added/edited in '/apps/scipion3/config/scipion.conf' [root@s ~]# }} なので #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf : GCTF_HOME = /apps/GCTF_Gautomatch_Cu10.1/ GCTF = GCTF_v1.18_sm30-75_cu10.1 GCTF_CUDA_LIB = /usr/local/cuda-10.1/targets/x86_64-linux/lib [root@s ~]# }} ***plug-in chimeraX [#u6603198] #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-chimera --noBin [root@s ~]# scipion3 config -p chimera Scipion v3.0.8 - Eugenius Variables defined by plugin 'chimera': CHIMERA_HOME = /apps/scipion3/software/em/chimerax-1.1 These variables can be added/edited in '/apps/scipion3/config/scipion.conf' [root@s ~]# }} なので #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf : CHIMERA_HOME = /usr/libexec/UCSF-ChimeraX [root@s ~]# }} ***plug-in cisTEM [#uebaaa76] #code(nonumber){{ [root@s ~]# scipion3 installp -p scipion-em-cistem --noBin [root@s ~]# scipion3 config -p cistem Scipion v3.0.8 - Eugenius Variables defined by plugin 'cistem': CISTEM_HOME = /apps/scipion3/software/em/cistem-1.0.0-beta CTFFIND4_HOME = /apps/scipion3/software/em/ctffind4-4.1.14 These variables can be added/edited in '/apps/scipion3/config/scipion.conf' [root@s ~]# }} なので #code(nonumber){{ [root@s ~]# vi /apps/scipion/config/scipion.conf : CISTEM_HOME = /apps/cistem-1.0.0-beta CTFFIND4_HOME = /apps/ctffind-4.1.14 [root@s ~]# }} ***メモ [#waf08d5a] cuda-11.3とかを絡めたい場合、centos7ではエラーになる. gccが古いから. [[CentOS/devtoolset]]でGCC-9とかにして行うと回避される #code(nonumber){{ source scl_source enable devtoolset-9 module load mpi CXX_CUDA=g++ CUDA_BIN=/usr/local/cuda-11.3/bin CUDA_LIB=/usr/local/cuda-11.3/lib64 python3 -m scipioninstaller /apps/scipion3 -j 4 -n scipion3 }} ***メモ2 [#l04c29b2] scipion3を起動すると下記メッセージが表示される #code(nonumber){{ Scipion v3.0.12 - Eugenius /apps/pyenv/versions/anaconda3-2022.10/envs/scipion3/lib/python3.8/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. warnings.warn("Setuptools is replacing distutils.") }} これは 「conda install 'setuptools<60'」でsetuptoolsを古いものに置き換えれば解消されますが、、、開発側の対処が必要な事案かなと思う.