#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を古いものに置き換えれば解消されますが、、、開発側の対処が必要な事案かなと思う.
1

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