#author("2019-07-08T17:37:22+00:00","default:sysosa","sysosa")
#author("2019-07-10T16:08:10+00:00","default:sysosa","sysosa")
本家様 [[http://scipion.cnb.csic.es/m/home/>+http://scipion.cnb.csic.es/m/home/]]

***Step 1: Download [#e6e846a3]
CentOS7でソースコードから作ります

ファイル名は「&color(magenta){scipion_v2.0_2019-04-23_source.tgz};」
それを展開すると、「scipion」というディレクトリが作られる
#code(nonumber){{
[root@c ~]# cd /Appl/
[root@c Appl]# gzip -cd scipion_v2.0_2019-04-23_source.tgz | tar xf -
}}

***Step 2: Dependencies [#se815487]

[[https://scipion-em.github.io/docs/release-2.0.0/docs/scipion-modes/dependencies>+https://scipion-em.github.io/docs/release-2.0.0/docs/scipion-modes/dependencies]]に書かれているような追加パッケージが必要
#code(nonumber){{
  sudo yum install gcc gcc-c++ cmake java-1.8.0-openjdk-devel libXft-devel openssl-devel libXext-devel \
   libxml2-devel readline-devel libquadmath libxslt-devel openmpi-devel libX11-devel libgfortran \
   freetype-devel scons fftw-devel opencv-devel curl centos-release-scl devtoolset-4 python27 git
}}
一応、上記は「For Centos 6 and Centos 7」とされているので、パッケージの「centos-release-scl devtoolset-4 python27」は
CentOS6の標準pythonが2.6なので、それを2.7で動かすためかと思う。
故、CentOS7ではこれら不要では?って思う。
一応、上記は「For Centos 6 and Centos 7」とされている。
インストールするパッケージの「centos-release-scl devtoolset-4 python27」はCentOS6のpythonが2.6なので、それを2.7で動かすためにあるかと思う。
故、CentOS7ではこれら不要かな?

こちらではCentOS7で稼働させるので、
なので、CentOS7で稼働させるので、
#code(nonumber){{
[root@c ~]#  yum install gcc gcc-c++ cmake java-1.8.0-openjdk-devel libXft-devel openssl-devel libXext-devel \
   libxml2-devel readline-devel libquadmath libxslt-devel openmpi-devel libX11-devel libgfortran \
   freetype-devel scons fftw-devel opencv-devel curl
}}
としている、
としみた。


***Step3: Configure [#gef2c862]

#code(nonumber){{
[root@c ~]# chown -R root:root /Appl/scipion
[root@c ~]# cd /Appl/scipion/

[root@c scipion]# ./scipion config

Scipion v2.0 (2019-04-23) Diocletian

>>>>> python  /Appl/scipion/pyworkflow/apps/pw_config.py
* Creating configuration file: /Appl/scipion/config/scipion.conf
Please edit it to reflect the configuration of your system.

* Creating configuration file: /Appl/scipion/config/protocols.conf
Please edit it to reflect the configuration of your system.

* Creating configuration file: /Appl/scipion/config/hosts.conf
Please edit it to reflect the configuration of your system.

Found differences between the configuration file
  /root/.config/scipion/scipion.conf
and the template file
  /Appl/scipion/pyworkflow/templates/scipion.template
In section VARIABLES, option VIEWERS exists in the template but not in the configuration file. Use --update parameter to update local config files.
In section PACKAGES, option RELION_HOME exists in the configuration file but not in the template.

(略

In section PACKAGES, option MOTIONCOR2_CUDA_LIB exists in the configuration file but not in the template.
Checking paths in /Appl/scipion/config/scipion.conf ...
  Path to MPI_LIBDIR (/usr/lib64/mpi/gcc/openmpi/lib) should exist but it doesn't.
  Path to MPI_INCLUDE (/usr/lib64/mpi/gcc/openmpi/include) should exist but it doesn't.
  Path to MPI_BINDIR (/usr/lib64/mpi/gcc/openmpi/bin) should exist but it doesn't.
  Cannot find file: /usr/lib64/mpi/gcc/openmpi/bin/mpicc
  Cannot find file: /usr/lib64/mpi/gcc/openmpi/bin/mpiCC
  Cannot find file: /usr/lib64/mpi/gcc/openmpi/bin/mpiCC
  Cannot find file: /usr/lib64/mpi/gcc/openmpi/include/mpi.h
Errors found.
Please edit /Appl/scipion/config/scipion.conf and check again.
To regenerate the config files trying to guess the paths, you can run: scipion config --overwrite

[root@c scipion]#
}}
Scipionなので使用するアプリのPATHがないとかの表示がされますが、今のとこは無視でいいです。あとで入れますので。
Scipionから呼び出されるアプリのPATHがないとかのエラー表示がされますが、今のとこは無視でいいです。あとで入れますので。

それ以外にMPI_LIBDIRとかMPI_INCLUDEの場所を修正しておきます。
その前に&color(magenta){MPI_LIBDIR};とか&color(magenta){MPI_INCLUDE};の場所を修正しておきます。
修正対象は「&color(orangered){/Appl/scipion/config/scipion.conf};」です。

#code(nonumber){{
--- config/scipion.conf.orig    2018-04-02 15:26:37.868491800 +0900
+++ config/scipion.conf 2018-04-02 15:31:08.319331412 +0900
@@ -18,11 +18,11 @@
 MPI_CXX = mpiCC
 MPI_LINKERFORPROGRAMS = mpiCC
 MPI_LIB = mpi
-MPI_LIBDIR = /usr/lib64/mpi/gcc/openmpi/lib
-MPI_INCLUDE = /usr/lib64/mpi/gcc/openmpi/include
-MPI_BINDIR = /usr/lib64/mpi/gcc/openmpi/bin
-CUDA_LIB = /usr/local/cuda-7.5/lib64
-CUDA_BIN = /usr/local/cuda-7.5/bin
+MPI_LIBDIR = /usr/lib64/openmpi/lib
+MPI_INCLUDE = /usr/include/openmpi-x86_64
+MPI_BINDIR = /usr/lib64/openmpi/bin
+CUDA_LIB = /usr/local/cuda-8.0/lib64
+CUDA_BIN = /usr/local/cuda-8.0/bin
 MATLAB_DIR = /usr/local/MATLAB/R2011a
 JAVA_HOME = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-3.b14.el6_9.x86_64
 JAVA_BINDIR = %(JAVA_HOME)s/bin
@@ -30,9 +30,9 @@
 JAR = %(JAVA_BINDIR)s/jar
 JNI_CPPPATH = %(JAVA_HOME)s/include:%(JAVA_HOME)s/include/linux
 GTEST = False
-CUDA = False
+CUDA = True
 DEBUG = False
 MATLAB = False
-OPENCV = True
+OPENCV = False
 REMOTE_MESA_LIB = /services/guacamole/usr/mesa/lib/
}}
その後に再度実施する
その後に下記を実行します。
#code(nonumber){{
[root@c scipion]# ./scipion config

Scipion v2.0 (2019-04-23) Diocletian

>>>>> python  /Appl/scipion/pyworkflow/apps/pw_config.py
All the expected sections and options found in /Appl/scipion/config/scipion.conf
All the expected sections and options found in /Appl/scipion/config/protocols.conf
All the expected sections and options found in /Appl/scipion/config/hosts.conf
Found differences between the configuration file
  /root/.config/scipion/scipion.conf
and the template file

(略
[root@c scipion]#
}}

***Step4: Scipion Compile [#s526ec01]
次に、scipionをコンパイルします。
「-j」は複数同時並列にコンパイルしたい場合に幾つ並列でコンパイルするかのパラメータ。
こちらは貧弱なマシンなので「-j 2」にしてます
#code(nonumber){{
[root@c scipion]# ./scipion install -j 2
}}

***Step5: Package Install [#p646b3dc]
使いたいアプリをインストールします
これで土台は完成。次に、Scipionから呼びされるアプリ群をインストールします。

ここで重要なお話。
「プラグイン」と「プログラム」の2項目があると思ってください。
例えば、RELIONを動かすための「プライグイン」が「scipion-em-relion」としてあるのですが、
それをインストールしたら、次にその実態というかプログラム自体を「プログラム」からインストールする必要があります。
「プログラム」のバージョンを選べるようになっているためかな。
大抵は使用するアプリの「ブラグイン」をインストールすると、その「プログラム」の最新版が同時にインストールされます。
(あくまでもSipion側で定義している最新版の「プログラム」なので本当に最新なのかは別です)

「プラグイン」の一覧は「./scipion installp --help」で見れます。
用途が微妙だけど、古いバージョンの「プログラム」もインストール可能です。


「プラグイン」の一覧は「./scipion installp --checkUpdates」で見れます。

#code(nonumber){{
[root@c scipion]# ./scipion installp --help
[root@c scipion]# ./scipion installp --checkUpdates

Scipion v2.0 (2019-04-23) Diocletian

>>>>> python  /Appl/scipion/pyworkflow/install/install-plugin.py ./scipion installp --help
usage: ./scipion installp  [-h] [--noBin] [-p pluginName [pipVersion ...]]

optional arguments:
  -h, --help            show help
  --noBin               Optional flag to install plugins only as a python module,
                        without installing the plugin binaries. This will affect
                        all plugins specified in the command.
  --checkUpdates        Optional flag to check which plugins have new releases.
  -p pluginName [pluginVersion ...], --plugin pluginName [pluginVersion ...]
                        - pluginName:     the name of the plugin to install from the list
                                         of available plugins shown below.
                        - pluginVersion: (optional) pip version to install. If not specified,
                                         will install the latest compatible with current Scipion.
  --devel               Optional flag to indicate that we will pass install sources instead
                        of pip names. Sources might be local paths or git urls. With local
                        paths, will do pip install -e (editable mode). It is expected to find
                        the plugin name in the basename of the path or in the repo name.
                        (i.e. it needs to match the one specified in setup.py). E.g:
                        scipion installp -p path/to/pluginName --devel
                        scipion installp -p https://github.com/someOrg/pluginName.git --devel
  -j j                  Number of CPUs to use for compilation

Example: ./scipion installp -p scipion-em-grigoriefflab 1.0.1 -p scipion-em-relion -p scipion-em-eman2

>>>>> python  /Appl/scipion/pyworkflow/install/install-plugin.py ./scipion installp --checkUpdates
Available plugins: ([ ] not installed, [X] seems already installed)

scipion-em-appion            [ ]
scipion-em-atomstructutils            [ ]
scipion-em-atsas            [ ]
scipion-em-bamfordlab            [ ]

(略

scipion-em-powerfit            [ ]
scipion-em-relion            [ ]
scipion-em-resmap            [ ]
scipion-em-simple            [ ]
scipion-em-sphire            [ ]
scipion-em-spider            [ ]
scipion-em-xmipp            [ ]
[root@c scipion]#
}}

手始めに「scipion-em-xmipp」をインストールします。

コマンドラインから
#code(nonumber){{
[root@c scipion]# ./scipion installp -p scipion-em-xmipp -j 5

Scipion v2.0 (2019-04-23) Diocletian

>>>>> python  /Appl/scipion/pyworkflow/install/install-plugin.py ./scipion installp -p scipion-em-xmipp -j 5
Building scipion-em-xmipp ...
/Appl/scipion/software/bin/python /Appl/scipion/software/lib/python2.7/site-packages/pip install scipion-em-xmipp==19.4.3
 :
 :
[root@c scipion]#
}}
ヘルプは「./scipion installp --help」で表記されます。

&color(red){*};&size(10){うまくいかない場合は初めに「./scipion installp --checkUpdates」を実行してください};

次に「プログラム」をインストールします。まずはhelpを眺めると

#code(nonumber){{
[root@c scipion]# ./scipion installb --help

Scipion v2.0 (2019-04-23) Diocletian

>>>>> python  /Appl/scipion/pyworkflow/install/install-plugin.py ./scipion installb --help
 :
 :
usage: ./scipion installb  [-h] binName1 binName2-1.2.3 binName3 ...
(略

positional arguments:
  binName(s)  The name(s) of the bins we want install, optionally with
              version in the form name-version. If no version is specified,
              will install the last one.

optional arguments:
  -h, --help  show help
  -j j        Number of CPUs to use for compilation

Example: ./scipion installb ctffind4 unblur-1.0.15

Available binaries: ([ ] not installed, [X] seems already installed)
        deepLearningToolkit       0.1 [ ]
                    nma       1.2 [ ]
        xmippBin_Centos   3.19.04 [ ]
        xmippBin_Debian   3.19.04 [ ]
               xmippSrc   3.19.04 [ ]
[root@c scipion]#
}}
のように、「プラグイン」を入れたことで適用できるプラグラムが列挙されました。ここでは「xmippBin_Centos」を入れます。

#code(nonumber){{
[root@c scipion]# ./scipion installb xmippBin_Centos

Scipion v2.0 (2019-04-23) Diocletian
 :
 :
cd /Appl/scipion/software/em
tar -xzf xmippBin_Centos-3.19.04.tgz
cd /Appl/scipion/software/em/xmippBin_Centos-3.19.04
rm -rf /Appl/scipion/software/em/xmipp 2>/dev/null; cd .. ; ln -sf xmippBin_Centos-3.19.04 /Appl/scipion/software/em/xmipp
  Skipping command: Link 'xmippBin_Centos-3.19.04 -> xmippBin_Centos-3.19.04'
  All targets exist.
Done (6.30 seconds)
[root@c scipion]#
}}
「scipion-em-xmipp」は「プラグイン」のインストール後に使用する「プログラム」を指定していしますが、それ以外の
「プラグイン(relionとか)」は「プラグイン」のインストールとともに「プログラム」もインストールされるみたい。




***起動 [#d6333184]
「.bashrc」とかに
#code(nonumber){{
alias scipion ='/Appl/scipion/scipion'
}}
とかと定義して、
#code(nonumber){{
[saber@c ~]$ scipion
}}
と起動する。
ただし初回のみ下記のようなメッセージが表示されるので、
#code(nonumber){{
Missing file /home/saber/.config/scipion/scipion.conf
Please run
  /Appl/scipion/scipion config
to fix your configuration
}}
メッセージに従い、
#code(nonumber){{
[saber@c ~]$ /Appl/scipion/scipion config
}}
を実行してから、「scipion」を起動します

メモ:
#code(nonumber){{
[saber@c ~]$ scipion 

Scipion v1.2 (2018-04-02) Caligula

>>>>> python  /Appl/scipion/pyworkflow/apps/pw_manager.py 
/Appl/scipion/software/lib/python2.7/site-packages/setuptools-5.4.1-py2.7.egg/pkg_resources.py:1049: 
UserWarning: /home/saber/.python-eggs is writable by group/others and vulnerable to attack 
when used with get_resource_filename. Consider a more secure location 
(set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
}}
のようなメッセージが出るなら、単に
#code(nonumber){{
[saber@c ~]$ chmod 755 /home/saber/.python-eggs
}}
とすれば収まります。


***queue [#rd72e83b]
Scipionの中で実行されるジョブは PBS/Torque らのジョブ管理システムに渡すことが出来る。
設定は config/hosts.conf で行い、&color(magenta){QUEUES};で定義する。ここでは queue名「bio」と「chem」を
選択可能にしている。
#code(diff){{
--- hosts.conf.orig     2018-04-03 03:48:38.823563712 +0900
+++ hosts.conf  2018-04-03 04:25:49.472759374 +0900
@@ -9,7 +9,7 @@
        ### Job name
        #PBS -N %_(JOB_NAME)s
        ### Queue name
-       ###PBS -q %_(JOB_QUEUE)s
+       #PBS -q %_(JOB_QUEUE)s
        ### Standard output and standard error messages
        #PBS -k eo
        ### Specify the number of nodes and thread (ppn) for your job.
@@ -40,5 +40,15 @@
        %_(JOB_COMMAND)s
 CANCEL_COMMAND = canceljob %_(JOB_ID)s
 CHECK_COMMAND = qstat %_(JOB_ID)s
-QUEUES = { "default": {} }
-
+QUEUES = {
+        "bio": [["JOB_QUEUE", "bio", "queue name", "Select queue name"],
+                ["JOB_NODES",   "1", "node", "Do not change"],
+                ["JOB_THREADS", "4", "core", "Number of cores par node to use."],
+                ["JOB_HOURS",  "24", "walltime", "Request time"]
+                ],
+        "chem": [["JOB_QUEUE","chem", "queue name", "Select queue name"],
+                ["JOB_NODES",    "1", "node", "Do not change"],
+                ["JOB_THREADS", "16", "core", "Number of cores par node."],
+                ["JOB_HOURS",   "12", "walltime", "Request time"]
+                ]
+        }
}}
実際の画面では、計算設定画面で「Use queue?」で「Yes」を選ぶ
&ref(2018y04m03d_043020238.png,nolink);
そして、画面下部の「Execute」を押下します。
すると新たな子画面が表示されます。
&ref(2018y04m03d_043250612.png,nolink);
子画面の「Submit to queue」のプルダウンには定義した「bio」と「chem」が存在して、実行queueを選びます。
もし「bio」を選ぶと画面サイズが変更して、使用するノードの数、coreの数(ppn)、実行時間(walltime)が編集可能となる
&ref(2018y04m03d_043436860.png,nolink);
&color(red){*};&size(10){ここでqueue名も変更できてしまうのだが...};
定義した値で宜しければ、そのまま「OK」ボタンを押下して、計算を開始させる。

ここで「Use queue?」で「No」を選ぶと Scipion を起動したマシンで計算が実施される

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS