本家様 https://www3.mrc-lmb.cam.ac.uk/relion//index.php?title=Main_Page

191015に relion-3.1-beta がリリースされました
同じくrelion-3.0.8もリリースされました. 重大なバグ以外は今後3.0.x系のリリースはない模様

ここではこの relion-3.1-betaを CentOS 8 にインストールしてみます

GPU-acceleration版 Relion/GPU
CPU-acceleration版 Relion/icc
Relion/qsub, Relion/relion_it.py
Relion/macOS, Relion/ubuntu

過去ページ Relion2.180803

Gautomarchの結果をRelionで利用するにはRelion/Gautomatch

日本語訳チュートリアル
九州工業大学 生命情報工学科 情報工学部 安永研究室様にて公開されております。
http://www.yasunaga-lab.bio.kyutech.ac.jp/ja/
RELION3チュートリアル

入手方法

gitでソースコードは提供されていて、下記から入手可能
https://github.com/3dem/relion

mkdir -p /apps/src
cd /apps/src/
git clone https://github.com/3dem/relion

*開発環境をインストールする(yum groupinstall "Development Tools")とgitもインストールされます

gitの操作

少々難しいかな..
gitで取得した直後の内容は vers3.0.8 です。

[root@c src]# grep RELION_VERSION relion/src/macros.h
#define RELION_VERSION "3.0.8"
        std::cout << "RELION version: " << RELION_VERSION << " "
[root@c src]#

なのでこのままbuildフォルダを作って、コンパイルすると version 3.0.8 のバイナリが用意されます。

これはこれで必要ですが、version 3.1-beta をコンパイルするにはひと手間必要.

[root@c relion]# git branch
* master
[root@c relion]# git branch -a           (すべてのブランチを確認する)
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/ver2.1
  remotes/origin/ver3.0
  remotes/origin/ver3.1
[root@c relion]#

っと取得したクローンには各種ブランチが含まれている.

目的の ver3.1 に移るために下記コマンドを実行します。するとソースコードの内容が ver3.1 に変わります.
*ある種不思議ですが、そうゆうものです.

  1
  2
  3
[root@c relion]# git checkout ver3.1
もしくは
[root@c relion]# git checkout -b ver3.1-c remotes/origin/ver3.1

として「ver3.1」のbranchに移動する
移動すると「*」のマークも移る

[root@c relion]# git branch
  master
* ver3.1-c
[root@c relion]#

この内容が「ver3.1」の状態でコンパイルします。

コンパイル環境の準備

https://github.com/3dem/relionを拝読すると
ubuntuなら

sudo apt install cmake build-essential mpi-default-bin mpi-default-dev libfftw3-dev

として追加パッケージをインストールせよとなっているが、ここではCentOS 8でコンパイルするので
関連アプリも合わせて下記をインストールします。

[root@c ~]# yum groupinstall "Development Tools"
 
[root@c ~]# yum  install \
              cmake \
              openmpi-devel \
              libX11-devel \
              fftw-devel \
              libtiff-devel \
              texlive-latex-bin \
              texlive-cm \
              texlive-dvips \
              ghostscript \
              evince \
              qpdfview
(CentOS7では追加で「fltk-fluid」パッケージも追加します)
[root@c ~]#
*細目
cmake           : ビルド自動化に必須。昔の「configure」っぽいもの
openmpi-devel   : 並列計算向け
libX11-devel    : GUIを利用するなら
fftw-devel      : fftライブラリ
libtiff-devel   : tiffライブラリ
evince          : pdf ビューア
qpdfview        : pdf ビューア(evinceが使えないなら)
texlive-latex-bin : 出力にlatexを使っているから
texlive-cm      : latex向けフォント
texlive-dvips   : latexをpsへ
ghostscript     : pdfに変換するために

コンパイル

GPUを使ったacceleration版とCPUに含まれている拡張命令を使ったacceleration版が用意できる。

  • GPU-acceleration版
    速くなるのは relion_refine と relion_autopick
  • CPU-acceleration版
    速くなるのは relion_refine のみ

またこれら高速機能を使わない版も用意できる。

ここでは 高速機能を使わない版 の作り方を示します。
それ以外のコンパイル方法はリンク先を参照のこと
GPU-acceleration版
CPU-acceleration版

インストール先は「/apps/relion-3.1」とします
留意 CentOS8では「fltk-fluid」パッケージを提供していないので、RelionのCMAKEフラグ「-DFORCE_OWN_FLTK=ON」を利用します

[root@c ~]# cd /apps/src/relion
[root@c relion]# git branch
  master
* ver3.1-c
[root@c relion]# mkdir build && cd build   (コンパイルする場所を作ってそこに移動します)
 
(mpi環境をロードします)
[root@c build]# module load mpi
 
[root@c build]# cmake  -DCUDA=OFF -DFORCE_OWN_FLTK=ON -DCMAKE_INSTALL_PREFIX=/apps/relion-3.1 ..
 
[root@c build]# make; make install

これでインストールは完了です。

Relion-3.0.8を作るには

ほぼほぼ同じなのですが、git操作で v3.0.8 を引き出します。

[root@c ~]# cd /apps/src/relion
 
(git操作です)
[root@c relion]# git checkout -b v3.0.8 refs/tag/3.0.8
[root@c relion]# git branch
  master
* v3.0.8
  ver3.1-c
 
[root@c relion]#

これで「/apps/src/relion」の中身はRelion-3.0.8の内容になります。
繰り返しますが、ある種不思議ですが、そうゆうものです.

次にbuildする場所を用意しますが、3.1の時に使った場所を再利用します。

[root@c relion]# cd build && rm -rf ./*

インストール先を「/apps/relion-3.0.8」としてcmakeを実行してmakeします。

[root@c build]# module load mpi
 
[root@c build]# cmake -DCUDA=OFF -DFORCE_OWN_FLTK=ON -DCMAKE_INSTALL_PREFIX=/apps/relion-3.0.8 ..
-- The C compiler identification is GNU 8.2.1
-- The CXX compiler identification is GNU 8.2.1
 :
-- Setting cpu precision to double
-- Setting accelerated code precision to single
-- Using non-cuda compilation...
-- Found MPI_C: /usr/lib64/openmpi/lib/libmpi.so (found version "3.1")       <--  openmpiのバージョンが3.1という意味
-- Found MPI_CXX: /usr/lib64/openmpi/lib/libmpi_cxx.so (found version "3.1")
-- Found MPI: TRUE (found version "3.1")
 :
-- Found previously built non-system FLTK libraries that will be used.
-- FLTK_INCLUDE_DIR: /apps/src/relion/external/fltk/include
-- FLTK_LIBRARIES:   /apps/src/relion/external/fltk/lib/libfltk.so
-- Found FFTW
-- FFTW_PATH: /usr/include
-- FFTW_INCLUDES: /usr/include
-- FFTW_LIBRARIES: /usr/lib64/libfftw3f.so;/usr/lib64/libfftw3.so
 :
-- Found TIFF: /usr/lib64/libtiff.so (found version "4.0.9")
 :
[root@c build]# make && make install

makeの途中でFLTKのソースコードがダウンロードされインストールされます。

.bashrc/.cshrc

各自の.bashrc/.cshrcにPATH環境変数とLD_LIBRARY_PATH環境変数を加えておきます
またrelionから外部アプリをコールするときがあり、そのパス(RELION_MOTIONCOR2_EXECUTABLEとか)も登録します

(bash)
module load mpi
export PATH=/apps/relion-3.1/bin:$PATH
export RELION_MOTIONCOR2_EXECUTABLE=/apps/MotionCor2/MotionCor2_1.2.1-Cuda92
export RELION_CTFFIND_EXECUTABLE=/apps/ctffind-4.1.13-linux64-compat/ctffind
export RELION_GCTF_EXECUTABLE=/apps/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
export RELION_RESMAP_EXECUTABLE=/apps/ResMap/ResMap-1.1.4-linux64
export RELION_PDFVIEWER_EXECUTABLE=evince
 
(csh/tcsh)
module load mpi
setenv PATH /apps/relion-3.1/bin:$PATH
setenv RELION_MOTIONCOR2_EXECUTABLE /apps/MotionCor2/MotionCor2_1.2.1-Cuda92
setenv RELION_CTFFIND_EXECUTABLE /apps/ctffind-4.1.13-linux64-compat/ctffind
setenv RELION_GCTF_EXECUTABLE /apps/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
setenv RELION_RESMAP_EXECUTABLE /apps/ResMap/ResMap-1.1.4-linux64
setenv RELION_PDFVIEWER_EXECUTABLE evince

EnvironmentModules

EnvironmentModulesを使用するなら下記のような「/etc/modulefiles/relion/3.1」を作成します.

#%Module1.0
 
conflict relion eman2
module load mpi
set RELION /apps/relion-3.1
prepend-path PATH            $RELION/bin
 
setenv RELION_QSUB_TEMPLATE  $RELION/bin/qsub.sh
setenv RELION_QUEUE_NAME     s3
setenv RELION_QUEUE_USE      false
 
setenv RELION_CTFFIND_EXECUTABLE     /apps/ctffind-4.1.13/ctffind
setenv RELION_MOTIONCOR2_EXECUTABLE  /apps/MotionCor2/MotionCor2_1.3.0-Cuda101
setenv RELION_GCTF_EXECUTABLE        /apps/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
setenv RELION_RESMAP_EXECUTABLE      /apps/ResMap/ResMap-1.1.4-linux64
setenv RELION_PDFVIEWER_EXECUTABLE   evince

そして各自の.bashrc/.cshrcの末尾に
「module load relion/3.1」
を追記します。
これで新しいターミナルで「relion」と打てばrelionの場面が表示されます。

Relion-3.0.8のmodulefileは、上記の
「set RELION /apps/relion-3.1」

「set RELION /apps/relion-3.0.8」
にした「/etc/modulefiles/relion/3.0.8」を作成します。

Relion起動

ターミナルを立ち上げて、「relion」と入力します

2019y12m07d_045436403.png

メモ1

(削除)

メモ2

2D classificationで「-K」の値を大きく取るとmpi当たりのメモリー要求が高くなります。
っで落ちることがあります。

メモ3

relionを起動して、何も操作しないと1時間後に自動的に落ちる。
それを避けるには起動時に下記引数を付ける

relion --idle 36000  (10時間)

既定は3600(1時間)。
*「0」が使えないみたい

メモ4

粒子データをより高速なストーレジ(scratch)に移して計算することが出来ます。
(計算が速くなる可能性があります)
方法は、Relionの「Copy particles to scratch directory:」欄をその高速なストレージに割り当てます。
例: 「/scratch/<ユーザ名>」 とか

計算が始まると、この指定した場所に粒子データが書き込まれます。(/scratch/<ユーザ名>/relion_volatile/particles.mrcs)
正常終了すれば自動的にこのファイルは削除されます。
ですが、計算が途中でこけると残ったまま。

っで、それを「systemd-tmpfiles-clean」で自動削除するには下記のようにします。

[root@c ~]# cat /etc/tmpfiles.d/scratch.conf
v /scratch 1777 root root 1d
[root@c ~]# reboot

これで再起動後には /scratch が 1777 で用意され、その中のファイル/ディレクトリは
atime(アクセス時間)/mtime(修正時間)/ctime(作成時間)共に 1day 以上空きがあるものが削除されます。
なので途中で止まったrelionで作られた「particles.mrcs」を一日以内に削除されるようになります。
当然計算中のファイルは、atime(アクセス時間)が1dayより短いので削除対象にはなりません。

実際には1day(1d)でなく、30min(30m)でもいいような気がするけど。そうなると
「systemd-tmpfiles-clean.timer」の「OnUnitActiveSec=1d」の値を修正する必要がある。
注意
/scratchのファイルシステムが noatime だとatime(アクセス時間)の更新がされないので注意

メモ5

普段既定のopenmpi(/usr/lib64/openmpi/bin/)を使うが、珠にintel ccでコンパイルされた
openmpi(/Appl/local/openmpi-1.10.7_intel-18.0.2/bin/)とかを使う場合、「mpirun」は
絶対指定で行うこと。そうしないと「ORTE_ERROR_LOG」が発生する。

メモ6

関連アプリ

品目入手先1903時点の最新備考
ctffind-4http://grigoriefflab.janelia.org/ctffind4ctffind-4.1.13
MotionCor2http://msg.ucsf.edu/em/software/motioncor2.htmlMotionCor2 v1.2.2cuda-8.0, 9.1, 10.0に対応
Gctfhttps://www.mrc-lmb.cam.ac.uk/kzhang/Gctf_v1.18cuda-8.0, 9.0, 9.1, 9.2 に対応
ResMaphttp://resmap.sourceforge.net/ResMap-1.1.4
Gautomatchhttps://www.mrc-lmb.cam.ac.uk/kzhang/Gautomatch_v0.56cuda-7.0, 7.5, 8.0に対応

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2019-12-07 (土) 04:56:25 (4d)