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

190215に relion-3.0 stable release がでました
https://www.jiscmail.ac.uk/cgi-bin/webadmin?A2=CCPEM;750e1194.1902

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

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

過去ページ Relion2.180803

入手方法

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

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

*gitがインストールされていないなら「yum install git」を事前に実行します

コンパイル環境の準備

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

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

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

[root@c ~]# yum groupinstall "Development Tools"
[root@c ~]# yum  install \
              cmake \
              openmpi-devel \
              libX11-devel \
              fltk-fluid \
              fftw-devel \
              libtiff-devel \
              texlive-latex-bin \
              texlive-cm \
              texlive-dvips \
              ghostscript \
              evince \
              qpdfview
[root@c ~]#
*細目
cmake           : ビルド自動化に必須。昔の「configure」っぽいもの
openmpi-devel   : 並列計算向け
libX11-devel    : GUIを利用するなら
fltk-fluid      : relion 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に変換するために

コンパイル

nvidiaカードを使ったGPU-acceleration版(速くなるのは relion_refine と relion_autopick)

CPU-acceleration版(速くなるのは relion_refine のみ)
あとこれらのaccelerationが有効になっていない版が用意可能です。

どちらも全てのコマンドが実行できるが、GPU-acceleration版はnvidiaのカードを利用して
relion_refine と relion_autopick が高速にななる。
一方、CPU-acceleration版はcpuのベクトル演算ユニットを利用して relion_refine をより高速にします。

ここでは単純に「acceleration機能なし版」を用意してみた。
*それぞれのacceleration版はリンク先を参照してください

インストール先は「/Appl/relion-3.0」とします

[root@c ~]# cd /Appl/src/relion
 
[root@c relion]# mkdir b-190226
[root@c relion]# cd b-190226
 
[root@c b-190226]# export PATH=/usr/lib64/openmpi/bin:$PATH
[root@c b-190226]# export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib
 
[root@c b-190226]# cmake -DCUDA=OFF -DCMAKE_INSTALL_PREFIX=/Appl/relion-3.0 ..
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
 :
-- Setting cpu precision to double
-- Setting accelerated code precision to single
-- Using non-cuda compilation....
 :
-- MPI_C_COMPILER : /usr/lib64/openmpi/bin/mpicc
-- MPI_CXX_COMPILER : /usr/lib64/openmpi/bin/mpicxx
-- CMAKE_CXX_COMPILER_ID : GNU
 :
-- Found X11: /usr/lib64/libX11.so
-- Found FLTK: /usr/lib64/libfltk_images.so;/usr/lib64/libfltk_forms.so;/usr/lib64/libfltk.so
-- X11 and FLTK were found
 :
-- 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.3")
 :
[root@c b-190226]# make && make install

起動

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

(bash)
export PATH=/Appl/relion-3.0/bin:/usr/lib64/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/openmpi/bin
export RELION_MOTIONCOR2_EXECUTABLE=/Appl/MotionCor2/MotionCor2_1.2.1-Cuda92
export RELION_CTFFIND_EXECUTABLE=/Appl/ctffind-4.1.13-linux64-compat/ctffind
export RELION_GCTF_EXECUTABLE=/Appl/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
export RELION_RESMAP_EXECUTABLE=/Appl/ResMap/ResMap-1.1.4-linux64
export RELION_PDFVIEWER_EXECUTABLE=evince
 
(csh/tcsh)
setenv PATH /Appl/relion-3.0/bin:/usr/lib64/openmpi/bin:$PATH
setenv LD_LIBRARY_PATH /usr/lib64/openmpi/bin
setenv RELION_MOTIONCOR2_EXECUTABLE /Appl/MotionCor2/MotionCor2_1.2.1-Cuda92
setenv RELION_CTFFIND_EXECUTABLE /Appl/ctffind-4.1.13-linux64-compat/ctffind
setenv RELION_GCTF_EXECUTABLE /Appl/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
setenv RELION_RESMAP_EXECUTABLE /Appl/ResMap/ResMap-1.1.4-linux64
setenv RELION_PDFVIEWER_EXECUTABLE evince
 
 
(Environment Modules)
set RELION /Appl/relion-3.0
set mpi    /usr/lib64/openmpi
 
prepend-path PATH            $RELION/bin:$mpi/bin
prepend-path LD_LIBRARY_PATH $mpi/lib
 
setenv RELION_QSUB_TEMPLATE  $RELION/bin/qsub.sh
setenv RELION_QUEUE_NAME     s3
setenv RELION_QUEUE_USE      false
setenv RELION_QSUB_COMMAND   "qsub -W umask=0022"
 
setenv RELION_MOTIONCOR2_EXECUTABLE     /Appl/MotionCor2/MotionCor2_1.2.1-Cuda92
setenv RELION_CTFFIND_EXECUTABLE        /Appl/ctffind-4.1.13-linux64-compat/ctffind
setenv RELION_GCTF_EXECUTABLE           /Appl/Gctf/Gctf-v1.06_sm_30_cu8.0_x86_64
setenv RELION_RESMAP_EXECUTABLE         /Appl/ResMap/ResMap-1.1.4-linux64
setenv RELION_PDFVIEWER_EXECUTABLE      evince

そうした上で relion とターミナルに入力させて起動する

relion

2019y02m26d_225929756.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-03-17 (日) 00:24:44 (93d)