「RELIONのMacへの導入」の版間の差分

提供: Eospedia
移動: 案内検索
(Relion のインストール)
(Relion のインストール)
 
行46: 行46:
 
2016/04/13日現在のバージョンは、relion-1.4です。<br>
 
2016/04/13日現在のバージョンは、relion-1.4です。<br>
 
ファイルを解凍します。<br>
 
ファイルを解凍します。<br>
とにかく、インストールしてみます。
+
とにかく、インストールしてみましょう。
 
  ./INSTALL.sh -j 4
 
  ./INSTALL.sh -j 4
 
"-j"オプションは、コンパイル時に並列に扱われるスレッド数を表しています。<br>
 
"-j"オプションは、コンパイル時に並列に扱われるスレッド数を表しています。<br>
 +
エラーが出た場合は、下記の方法で解決してください。<br>
 +
そして、もう一度インストールを試みましょう。<br>
 +
./INSTALL.sh -j 4
 
エラーが出なければ、無事、インストール完了です。<br>
 
エラーが出なければ、無事、インストール完了です。<br>
エラーが出た場合は、以下の方法で解決してください。<br><br>
+
最後に環境設定を行います。<br>
 +
export LD_LIBRARY_PATH=/***/relion-1.4/lib:$LD_LIBRARY_PATH
 +
export PATH=/***/relion-1.4/bin:$PATH
 +
export RELION_QSUB_TEMPLATE="/***/relion-1.4/bin/qsub.csh"
 +
"***"には、relion-1.4までのパスを書き込んでください。
 +
$relion
 +
でRelionが起動するはずです。
 +
 
 +
 
 
====fltk-1.3.0のエラー====
 
====fltk-1.3.0のエラー====
 +
<B>その1</B>
 
  fl_line_style.cxx:47:13 error: elaborated type refers to a typedef
 
  fl_line_style.cxx:47:13 error: elaborated type refers to a typedef
 
  static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
 
  static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
行71: 行83:
 
また、fltk-1.3.0.tar.gzを別の名前、例えば、fltk-1.3.0.tar.gz.orgなどに変更しておきます。<br>
 
また、fltk-1.3.0.tar.gzを別の名前、例えば、fltk-1.3.0.tar.gz.orgなどに変更しておきます。<br>
 
(fltk-1.3.0.tar.gzの削除/名前変更をしないと、relionをインストールする度に、fl_line_style.cxxが前のファイルに書き換えられてしまいます。)<br><br>
 
(fltk-1.3.0.tar.gzの削除/名前変更をしないと、relionをインストールする度に、fl_line_style.cxxが前のファイルに書き換えられてしまいます。)<br><br>
 +
<B>その2</B>
 +
./FL_Type.h:48:21: error: friend declaration specifying a default argument must be a definition
 +
  frind FL_Widget *make_type_browser(int,int,int,int,const char *l=0);
 +
のうよなエラーが出た場合、Fl_Type.h内を書き換えます。 <br>
 +
relion-1.4/external/fltk-1.3.0/fluid/の下にFl_Type.hが存在するので、以下のように1行を編集します。<br>
 +
-  frind FL_Widget *make_type_browser(int,int,int,int,const char *l=0);
 +
+  frind FL_Widget *make_type_browser(int,int,int,int,const char *);
  
先に、Open MPIをインストールしましたが、Mac上ではMPIに対応してRelionをインストールできませんでした(2016/04/13現在)。<br>
+
====relion-1.4のエラー====
そこで、 relion-1.4/INSTALL.sh内を書き換えて、mpi対応しないようにします。<br>
+
  src/mpi.cpp:98:30: error: cannot initialize a parameter of type 'int (*(*)())' with an lvalue of type 'int'
-HAVE_MPI=true
+
            report_MPI_ERROR(result);
  +HAVE_MPI=false
+
のうよなエラーが出た場合、mpi.h内を書き換えます。 <br>
これで準備完了です。(まだCTFFIND, ResMapには対応していませんが、)
+
relion-1.4/src/の下にmpi.hが存在するので、以下のように1行を編集します。<br>
$./INSTAL.sh
+
  - void report_MPI_ERROR(int errno);
これで、Relionがインストールできます。<br>
+
  +  void report_MPI_ERROR(int _errno);
最後に環境設定を行います。<br>
+
export LD_LIBRARY_PATH=/???/relion-1.4/lib:$LD_LIBRARY_PATH
+
export PATH=/???/relion-1.4/bin:$PATH
+
  export RELION_QSUB_TEMPLATE="/???/relion-1.4/bin/qsub.csh"
+
"???"には、relion-1.4までのパスを書き込んでください。
+
  $relion
+
でRelionが起動するはずです。
+

2016年4月19日 (火) 03:00時点における最新版

XQuartz のインストール

"http://www.xquartz.org/"からファイルをダウンロードし、インストールします。
2016/04/13日現在のバージョンは、XQuartz-2.7.8です。

Apple/Command Line Tools のインストール

"https://developer.apple.com/downloads/"からファイルをダウンロードし、インストールします。
ダウンロードにはApple IDが必要です。
今回は、Mac OSX El Capitant 10.11.4のために、Command Line Tools (OS X 10.11) for Xcode 7.3を使用しました。

GFortranのインストール

Open MPIのインストールには、GFortranが必要です。
Macには、デフォルトではGFortranが入っていないようなので、入れる必要があります。
今回は、Homebrewを使い、gcc-4.9と一緒にgfortran-4.9をインストールします。

$ brew install homebrew/version/gcc49 --with-fortran

"gfortran"で実行できるように、リンクをはります。

$ sudo ln -sf /usr/local/bin/gfortran-4.9 /usr/bin/gfortran

インストールできているか確認します。

$ gfortran -v

バージョン情報が表示されば、無事、インストール完了です。

Open MPI のインストール

"https://www.open-mpi.org/software/ompi/v1.10/"からファイルをダウンロードし、解凍します。
2016/04/13日現在、openmpi-1.10.21が最新版です。
Open MPIをインストールします。

$ cd openmpi-1.10.2
$ ./configure --prefix=/usr/local/openmpi-1.10-2
$ make && make check && sudo make install

次に、環境設定を行います。
.bash_profileに以下を追加しておきましょう。

export PATH=/usr/local/openmpi-1.10.2/bin:$PATH
export LD_RIBRARY_PATH=/usr/local/openmpi-1.10.2/lib:$LD_LIBRARY_PATH
export MANPATH=/usr/local/openmpi-1.10.2/share/man:$MANPATH
export MAC_OSX=1   ・・・この行は、次のRelionインストールのため

Open MPIが動くかどうか、テストします。

$ cd examples
$ make
$ mpirun -np 2 ./connectivity_c

結果、

Connectivity test on 2 processes PASSED.

と出力されるはずです。

Relion のインストール

"http://www2.mrc-lmb.cam.ac.uk/groups/scheres/download_relion.html"からファイルをダウンロードします。
名前、所属、メールアドレスの記入が必要です。
2016/04/13日現在のバージョンは、relion-1.4です。
ファイルを解凍します。
とにかく、インストールしてみましょう。

./INSTALL.sh -j 4

"-j"オプションは、コンパイル時に並列に扱われるスレッド数を表しています。
エラーが出た場合は、下記の方法で解決してください。
そして、もう一度インストールを試みましょう。

./INSTALL.sh -j 4

エラーが出なければ、無事、インストール完了です。
最後に環境設定を行います。

export LD_LIBRARY_PATH=/***/relion-1.4/lib:$LD_LIBRARY_PATH
export PATH=/***/relion-1.4/bin:$PATH
export RELION_QSUB_TEMPLATE="/***/relion-1.4/bin/qsub.csh"

"***"には、relion-1.4までのパスを書き込んでください。

$relion

でRelionが起動するはずです。


fltk-1.3.0のエラー

その1

fl_line_style.cxx:47:13 error: elaborated type refers to a typedef
static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;

のうよなエラーが出た場合、fl_line_style.cxx内を書き換えます。
relion-1.4/external/fltk-1.3.0/src/の下にfl_line_style.cxxが存在するので、以下のように4つの行を編集します。

-static enum CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
+static CGLineCap fl_quartz_line_cap_ = kCGLineCapButt;
-static enum CGLineJoin fl_quartz_line_join_ = kCGLineJoinMiter;
+static CGLineJoin fl_quartz_line_join_ = kCGLineJoinMiter;
-  static enum CGLineCap Cap[4] = { kCGLineCapButt, kCGLineCapButt,
+  static CGLineCap Cap[4] = { kCGLineCapButt, kCGLineCapButt,
-  static enum CGLineJoin Join[4] = { kCGLineJoinMiter, kCGLineJoinMiter,
+  static CGLineJoin Join[4] = { kCGLineJoinMiter, kCGLineJoinMiter,

ファイル内の4つの"enum"を消すことになります。
また、fltk-1.3.0.tar.gzを別の名前、例えば、fltk-1.3.0.tar.gz.orgなどに変更しておきます。
(fltk-1.3.0.tar.gzの削除/名前変更をしないと、relionをインストールする度に、fl_line_style.cxxが前のファイルに書き換えられてしまいます。)

その2

./FL_Type.h:48:21: error: friend declaration specifying a default argument must be a definition
  frind FL_Widget *make_type_browser(int,int,int,int,const char *l=0);

のうよなエラーが出た場合、Fl_Type.h内を書き換えます。
relion-1.4/external/fltk-1.3.0/fluid/の下にFl_Type.hが存在するので、以下のように1行を編集します。

-  frind FL_Widget *make_type_browser(int,int,int,int,const char *l=0);
+  frind FL_Widget *make_type_browser(int,int,int,int,const char *);

relion-1.4のエラー

src/mpi.cpp:98:30: error: cannot initialize a parameter of type 'int (*(*)())' with an lvalue of type 'int'
            report_MPI_ERROR(result);

のうよなエラーが出た場合、mpi.h内を書き換えます。
relion-1.4/src/の下にmpi.hが存在するので、以下のように1行を編集します。

-  void report_MPI_ERROR(int errno);
+  void report_MPI_ERROR(int _errno);