構造解析ことはじめ/03 プログラムのインストール

CCP4をインストールする  

2010-02-22 : この情報はCCP4 6.1.2および6.1.3について記述されています

aptでインストール  

CCP4 6.1.3のインストール Vine5  

2010-02-22 : 6.1.3のインストールを確認

ccp4-6.1.3/ccp4i/src/fileviewer.tcl
656 #---------------------------------------------------------------------
657 proc RunPyMol { $args } {
658 #---------------------------------------------------------------------
657行目の$argsfilenameに修正します。PHPあたりの言語と勘違いしたのかな?
656 #---------------------------------------------------------------------
657 proc RunPyMol { filename } {  <-- この行
658 #---------------------------------------------------------------------
修正した後、CCP4iを再起動すればPyMOLでPDBファイルを開けるようになります。

CCP4 6.1.2のインストール Vine5  

CCP4アーカイブの取得  

CCP4のサイトから取得します。2009年11月現在では以前のように細かく分かれていません。Linux -> generic linux (x86)を取得します。現時点ではBALBESCOOTは新バージョンをインストールする必要があるのでCustomized InstallationでBALBESCOOTを除いたバイナリパッケージを選択するといいかもしれません(ダウンロード容量が半分以下になります)。選択が面倒ならTypicalで。なお、Typicalでは以下のパッケージがインストールされます。

プログラム展開後容量Custom
Database for Balbes (Data Files)1653.2 MB
CCP4 Program Suite v6.1.2 (Executables)928.5 MB
Phaser v2.1.4 and CCTBX (Executables)228.7 MB
COOT v0.5.2 (Executables)290.8 MB
CHOOCH v5.02 (Executables)15.8 MB
TclTk v8.4.14 + blt-itcl-itk-tkimg-tdom-treectrl (Executables)20.7 MB
Python scripting language v2.4.2 (Executables)44.5 MB
Clustalw v2.0.9 (Executables)10.5 MB
Fasta v35.4.1 (Executables)13.9 MB
Graphviz v2.20.2 (Executables)11.6 MB
Total estimated unpacked size :3218.3 MB
Estimated size of compressed download file :1044.1 MB約400MB

Typicalパッケージの場合圧縮ファイルで1GB程度になり、CustomでBALBESCOOTを除いた場合、ダウンロードサイズは400MB程度です。ファイル名はCCP4-Linux.tarになります。

インストール  

6.1.1以前のバージョンよりも格段にインストールしやすくなりました。
最近XIA2の0.3.0.3をインストールしてみて気づいたのですが、CCTBX(Computational Crystallography Toolbox;PHASERなどから利用されているライブラリパッケージ。XIA2も使う)の問題があるのでPythonまわりでちょっとした手順が必要になります。

# mkdir /usr/local/ccp4-6.1.2
# cd /usr/local/ccp4-6.1.2
# tar xvf CCP4-Linux.tar
# patch -p0 < ccp4-6.1.2.install.patch   <-- CCTBX問題回避用パッチ(install.sh用)
# ./install.sh

出力例:

 #############################
 # INSTALLER FOR CCP4 v6.1.2 #
 #############################

Installing the following packages:
 (選択されたパッケージが表示されます)

Do you want to keep all default parameters for installation (yes/no):
 Currently [yes]
 NB: By default, the crystallographic packages will be extracted and built here.
(通常はこのまま/usr/local/ccp4-6.1.2にインストールするのでEnter)

  We are now ready to install :
  (インストールされるパッケージ)
 NB: The remaining usually does not require your intervention.
If it is your first installation of CCP4 you might be prompted to agree licence first.
Press any key to start.
(Enter)

unpacking program packages...
...各プログラムのインストール表示
Do you want to have your environment set up through
 your terminal resource file, so each time you open a terminal
it is ready to go (y/n):
 Currently [y]
(n; 現在の環境にsourceを追加するかということ。rootユーザーに追加する必要はないので"n"を入力してEnter)

6.1.1以前とは異なり一度だけでPHASERも問題なくインストールされるようです。

CCTBXの問題
CCP4インストール時のPHASER/CCTBXセットアップはPythonを使いますが、この時標準の/usr/bin/pythonが使われてしまうとUCS2/4コード体系の問題で、使用するプログラムによっては、

undefined symbol: PyUnicodeUCS2_FromUnicode

というようなエラーが出ることがあります(Vine 5.0環境下;XIA2 0.3.0.3以上)。
これはPython内部でのUnicodeの扱い方が異なるためのようです。具体的にはPythonが--enable-unicode=ucs2でビルドされているのか、または--enable-unicode=ucs4でビルドされているのかによります(CCP4付属のPythonはUCS2)。
この問題を解決するためにはPHASER/CCTBXセットアップ時に使用されるPythonをCCP4付属のものにすればよいのですが、標準のインストーラでは適切に処理されない(パスが通されない)ようです。従って、インストール途中にパスを通すように修正したinstall.shを使います。
問題のない環境でもCCP4iは付属のPython、CCTBXはシステムのPythonを使う、といった不整合を防ぐためにも修正版のinstall.shの使用をおすすめします。6.1.1以前のバージョンではシステムのPythonがターゲットになっていた場合、PHASERがうまくインストールできず、2回インストールを行っていたため問題が回避されていたのだと思われます。

環境設定  

ユーザーごとの環境設定をすれば完了です。

.cshrcに追加
source /usr/local/ccp4-6.1.2/setup-scripts/csh/ccp4.setup
source /usr/local/ccp4-6.1.2/setup-scripts/csh/ccp4-others.setup
.bashrcに追加
source /usr/local/ccp4-6.1.2/setup-scripts/sh/ccp4.setup
source /usr/local/ccp4-6.1.2/setup-scripts/sh/ccp4-others.setup

最後の処理  

インストール時に使用したファイルを削除します

ファイルの所有者をrootにしておきます。

# chown -R root:root /usr/local/ccp4-6.1.2

メジャーなプログラムのインストール  

付属しているプログラムで古いものを新しいバージョンに入れ替えます。

インストール時のトラブル  

CCP4を使用する上で気づいたトラブルをメモしておきます

PyMOLのExternal GUIが起動しない  

Vine 4.2ではCCP4 6.1環境ではPyMOLのExternal GUIが起動しなくなりました。これは、PymolのTkインタフェースへのパスの問題のようです。

Tclライブラリの問題 -- Ver.6.1.0、6.1.1共通 Vine4  

MAPSLICERが起動しませんでした(6.0.2では確認してません)。以下のエラーで停止しました。

Application initialization failed: Can't find a usable init.tcl in the following directories:
    /home/fr45/tcltk++/Linux/lib/tcl8.4 /usr/local/ccp4-6.1.1/ccp4-6.1.1/lib/tcl8.4 /usr/local/ccp4-6.1.1/lib/tcl8.4 /usr/local/ccp4-6.1.1/ccp4-6.1.1/library /usr/local/ccp4-6.1.1/library /usr/local/ccp4-6.1.1/tcl8.4.18/library /usr/local/tcl8.4.18/library /home/fr45/tcltk++/Linux/lib/tcl8.4

This probably means that Tcl wasn't installed properly.

Error in startup script: invalid command name "wm"
    while executing
"wm withdraw ."
    (file "/usr/local/ccp4-6.1.1/ccp4-6.1.1/ccp4i/bin/mapslicer.tcl" line 12)
    invoked from within
"source [file join $env(CCP4I_TOP) bin mapslicer.tcl]"
    (file "/usr/local/ccp4-6.1.1/ccp4-6.1.1/ccp4i/bin/mapslicer" line 40)
解決方法
PyMOLと同様にTclライブラリへのパスが通っていません。環境変数TCL_LIBRARYへのパスをセットします。
% setenv TCL_LIBRARY $CCP4I_TCLTK/../lib/tcl8.4
.cshrcにセットする場合はccp4.setupを読み込んだ後の行に追記して下さい。

libccp4mapの問題 -- Ver.6.1.1 Vine4  

TCL_LIBRARYが適切にセットされていても起動しませんでした。

Couldn't find (or load) the MapSlicer command library ("ccp4map" package)
Error: couldn't load file "/usr/local/ccp4-6.1.1/ccp4-6.1.1/lib/libccp4map.so": /usr/local/ccp4-6.1.1/ccp4-6.1.1/lib/libccp4map.so: undefined symbol: ccp4_file_itemsize
This should have been built as part of the main CCP4 installation, however
it is not available on all platforms.
Stopping
解決方法
libccp4map.soでccp4_file_itemsizeが解決されていないようです。$CCP4/ccp4i/bin/mapslicerスクリプトを確認してみるとlibccp4map.soが存在する場合、$CCP4/bin/ccp4mapwishを起動するようになっていますが、この時libccp4map.soを使うために起こっているのだと思われます。CCP4のProblemsに解決方法がありました。
  1. CCP4 Problems -- MAPSLICER libccp4map.so: undefined symbol: ccp4_file_itemsize
    ここにあるlibccp4map.soを適用します。またはlibccp4map.soを削除します。
  2. リビルドしたlibccp4map.soを使う
    Problemsにあると気づかなかったので自分でビルドしました [huh]。一応残しておきます。
    シンボルの問題を解決したlibccp4map.soを作成します。私の環境でビルド時にlibccp4cをリンクしたlibccp4map.soを作成しましたのでよかったらどうぞ。以下のファイルを$CCP4/lib/libccp4map.soに上書きコピーします。ccp4mapwishをビルドし直してもいいと思いますが。
    • &ref(): File not found: "libccp4map.so" at page "CCP4/インストール"; -- Vine 4.2(GCC 3.3.6)でコンパイル
      $CCP4/src/ccp4mapwish_以下のMakefileを以下のように修正してビルドしました。
      60 MAPSLICER_SHARE = gcc -fPIC -shared -Wl,-h -Wl,libccp4map.so -Wl,--whole-archive -o libccp4map.so libccp4map.a ../../lib/libccp4c.a -Wl,--no-whole-archive
      他のプログラムへの影響は不明です [huh]
添付ファイル: fileccp4-6.1.2.install.patch 1405件 [詳細]