本家様 http://scipion.i2pc.es/
scipionがver3になりました
ここではCentOS7にscipion3を入れてます
下準備 †
[root@s ~]# yum groupinstall "Development Tools"
[root@s ~]# yum install epel-release
[root@s ~]# yum install libzstd-devel hdf5-devel
[root@s ~]# yum install python3-devel python3-tkinter openmpi-devel \
wget fftw-devel libtiff-devel java-1.8.0-openjdk-devel libjpeg-turbo-devel sqlite-devel
[root@s ~]#
(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
本家様のドキュメントでは
Conda (optional, recommended if you are not admin)
Although conda is not a requirement, it provides most of the dependencies Scipion and Xmipp needs and can be installed without being admin/root.
Miniconda would be enough.
とあり、condaは必要ないけど、管理者権限がないならあったほうがいい. その場合、自分のホームディレクトリ配下にcondaの環境を作ります
Minicondaで十分かもよとある. anacondaをライセンス的に使えないならminicondaでって感じですね.
あとcudaに関してはCUDA 10.1を推奨している. RTX 30x0はCUDA 11以上がサポートなのだが、、
ここではcuda-11.4を入れてnvidaのドライバーは11.4にしますが、同時にcuda-10.2、cuda-10.1も入れてます.
[root@s ~]# nvidia-smi
Thu Jul 8 20:38:35 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.42.01 Driver Version: 470.42.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
:
:
[root@s ~]# ls -ld /usr/local/cuda*
lrwxrwxrwx 1 root root 22 Jul 8 20:42 /usr/local/cuda -> /etc/alternatives/cuda
drwxr-xr-x 15 root root 4096 Jul 8 20:42 /usr/local/cuda-10.1
drwxr-xr-x 16 root root 4096 Jul 8 20:41 /usr/local/cuda-10.2
lrwxrwxrwx 1 root root 25 Jul 8 20:14 /usr/local/cuda-11 -> /etc/alternatives/cuda-11
drwxr-xr-x 17 root root 4096 Jul 8 20:14 /usr/local/cuda-11.4
[root@s ~]# alternatives --list | grep cuda
cuda manual /usr/local/cuda-11.4
cuda-11 auto /usr/local/cuda-11.4
[root@s ~]#
インストール †
まずはconda環境を準備します. ここではcrYOLOとかでconda環境があるので、それを使い回します
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経由で提供しているpython実行環境は下記になる.
[root@s ~]# conda env list
# conda environments:
#
base * /apps/pyenv/versions/anaconda3-5.3.1
deepfinder /apps/pyenv/versions/anaconda3-5.3.1/envs/deepfinder
:
:
[root@s ~]#
この環境リストにscipion実行環境を増やす形なのだが、まず「scipion-installer」を入れます
[root@s ~]# which pip3
/usr/bin/pip3
[root@s ~]# which pip
/apps/pyenv/versions/anaconda3-5.3.1/bin/pip
[root@s ~]#
[root@s ~]# pip install scipion-installer
そしてコンパイル環境を整備してscipionを入れます
cudaの指定ですが、ドキュメントは 10.1 を推奨している. だけど実際 10.1 を指定したら 10.2 が推奨としている. ここでは 10.2 を指定します
[root@s ~]# module load mpi/openmpi-x86_64
[root@s ~]# CXX_CUDA=g++ CUDA_BIN=/usr/local/cuda-10.2/bin CUDA_LIB=/usr/local/cuda-10.2/lib64 python3 -m scipioninstaller /apps/scipion -j 4 -n scipion3
「-n」はcondaで作るpython実行環境名となります. 既定は「scipion3」
一応以上でインストールは完了. ここで「conda env list」を実行すると下記になる
[root@s ~]# conda env list
# conda environments:
#
base * /apps/pyenv/versions/anaconda3-5.3.1
deepfinder /apps/pyenv/versions/anaconda3-5.3.1/envs/deepfinder
scipion3 /apps/pyenv/versions/anaconda3-5.3.1/envs/scipion3
:
:
[root@s ~]#
EnvironmentModules †
EnvironmentModules 向けに「/etc/modulefiles/scipion」を下記のようにする
#%Module1.0
set-alias scipion3 /apps/scipion/scipion3
set-alias scipion /apps/scipion/scipion3
plug-in †
scipionを起動して、「create project」でプロジェクトを作り、それが開くと下記のようになる

使用できるツールはインストール直後は「Xmipp3」由来のみです.
この他にもツールが搭載できる.
いったいどんなツールがこのscipionに追加できるかは scipion を起動して、[Others]->[Plugin manager]を開くと一覧できる.
あるいはコマンドラインで「scipion3 installp --help」でも一覧できる
[root@s ~]# module load scipion
[root@s ~]# scipion3 installp --checkUpdates
Scipion v3.0.8 - 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-eman2 [ ]
scipion-em-empiar [ ]
scipion-em-emxlib [ ]
scipion-em-facilities [ ]
scipion-em-fsc3d [ ]
scipion-em-gautomatch [ ]
scipion-em-gctf [ ]
scipion-em-imagic [ ]
scipion-em-localrec [ ]
scipion-em-locscale [ ]
scipion-em-motioncorr [ ]
scipion-em-phenix [ ]
scipion-em-relion [ ]
scipion-em-resmap [ ]
scipion-em-sidesplitter [ ]
scipion-em-sphire [ ]
scipion-em-spider [ ]
scipion-em-topaz [ ]
scipion-em-xmipp 21.6.1 [X]
scipion-em-xmipp2 [ ]
[root@s ~]#
*これ以外にもbeta版とかがあり、それらはhttps://github.com/scipion-em
で確認できます
例えば、scipionからrelionを実行したいなら、relionのplug-inをインストールします.
しかし既にインストール済みのrelionがあって、そのバイナリーをそのまま使用したいなら 「scipion3 installp -p scipion-em-relion --noBin」と実行する
[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 <プログラム名>」で提示されます.
[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 ~]#
この場合、「RELION_HOME」と「RELION_CUDA_LIB」の定義が必要で、
それは「/apps/scipion/config/scipion.conf」で明記される必要があるようです.
これで既にインストールされているrelionプログラムを使い回しできる.
その前に「scipion3 installb」でrelionのどのバージョンが対応なのか調べておく必要があるかも
なので、
[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 ~]#
実際には「RELION_CUDA_BIN」の塚も要求された
その後scipionを再起動するとrelionの機能が追加されます

plug-in Gautomatch †
次がGautomatchを入れてみる. これも既に手元にあって使えるならさらにバイナリーを入れる必要はなく、そのバイナリーを拝借する事にする.
[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を起動します

plug-in Sphire †
このSphire Plug-inの中にcrYOLOが入ってます.
っで
[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の環境名を確認します
[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」は下記のようにします
[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
*「CRYOLO_ENV_ACTIVATION_CPU 」はCPU版のcrYOLOがあるなら
plug-in Topaz †
次にpickツールのTopazを入れてみる. 同じくバイナリーは既にインストール済みのものを使うtopaz
[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」として環境を作っているので、
それを借用してみる
[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 ~]#
*「module load topaz」とかでもいいかなと思ったが、CONDA_ACTIVATION_CMDの変更が必要なので「conda activate」のままにしてみた

deepfinder †
https://github.com/scipion-em/scipion-em-deepfinder
「scipion3 installp --checkUpdates」には表示されていないアプリでhttps://github.com/scipion-em
に表示されているアプリを使う場合は「--devel」を付けて導入する
バイナリーも一緒に入れるので、「--noBin」は付けない.
[root@s ~]# scipion3 installp -p https://github.com/scipion-em/scipion-em-deepfinder.git --devel
これでdeepfinderのplug-inとバイナリー(プログラム)がインストールされる.
次に、環境設定. 必要な環境変数を調べる
[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の環境リストを調べると
[root@s ~]# conda env list | grep deepfinder
deepfinder-0.1 /apps/pyenv/versions/anaconda3-5.3.1/envs/deepfinder-0.1
[root@s ~]#
そして、バイナリーの存在を確認すると下記のようになっている.
[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」の通りにする
[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 †
[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 ~]#
なので
[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 †
[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 ~]#
なので
[root@s ~]# vi /apps/scipion/config/scipion.conf
:
CHIMERA_HOME = /usr/libexec/UCSF-ChimeraX
[root@s ~]#
plug-in cisTEM †
[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 ~]#
なので
[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 ~]#
メモ †
cuda-11.3とかを絡めたい場合、centos7ではエラーになる. gccが古いから.
CentOS/devtoolsetでGCC-9とかにして行うと回避される
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 †
scipion3を起動すると下記メッセージが表示される
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を古いものに置き換えれば解消されますが、、、開発側の対処が必要な事案かなと思う.