PyMOL
PyMOLは有料サポートになってしまったので、実行ファイルは自分でビルドする必要があります。しかも新版のソースコードは通常ファイルの形式ではダウンロードできなくなってしまったので少々複雑な手順が必要になります(ろくなドキュメントもありません)。最近ますますフリーのダウンロードはわかりにくくなってます…
が、Fedora (10以降) ユーザは
# yum install pymol
で、CentOS 5ユーザは
# rpm -i http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
で、EPELリポジトリを追加した後、
# yum install pymol
で、簡単にインストールできます。
バイナリが入手できない方は、以下の手順に従ってソースコードの取得、ビルド、インストールに挑戦してみて下さい。
- 0.99rc6はLegacyとしてバイナリが配布されています(2010-12-09確認) -- http://sourceforge.net/projects/pymol/
Windows版のインストール(Ver.1.5)
2012-04-05
Python 2.6または2.7インストール環境で使用可能なPyMOLのWindows版バイナリを公開しているサイトがあります。2012年3月現在で1.5.0も公開されています。
- Unofficial Windows Binaries for Python Extension Packages -- http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol
インストールは簡単。
- PyJUGのダウンロードページからPython 2.7.xを取得
- ダウンロードしたpython-2.7.x.msiを実行してインストール
- このとき、インストールオプションのTcl/Tkは最低限インストールすること(他はインストールしなくてもよい)
- 上記のページからpymol-1.4.1.win32-py2.7.exeをダウンロード
- ダウンロードしたファイルを実行するとインストールが完了します
PyMOL実行ファイルはPythonインストールディレクトリ\PyMOL\PyMOL.exeです。
お試し下さい。
ひょっとしたら以下も必要かも
Many binaries depend on Numpy-MKL 1.6.1 and the Microsoft Visual C++ 2008 redistributable package, which may need to be installed separately for x64 and x86 architectures.
ということですので以下のモジュールのインストールが必要かも
- NumPy -- http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
- Microsoft Visual C++ 2008再配布可能パッケージ(MS社ページ内) -- 32bit版, 64bit版
ソースコードの取得とビルド(Ver.1.4.1)
Ver.1.4.1からtar.bz2アーカイブで取得できるようになったみたいです。PyMOLのサイトから取得します。
1.3以前のようにSubversionなどでの取得は不要になりました。pymol-v1.4.1.tar.bz2ファイルを取得したらビルドを行います。
続いてPyMOLをビルドします。ビルドは取得したディレクトリに入ってから作業します。
ビルドに必要になるパッケージをapt(Vine)またはyum(CentOS5)でインストールしておいてください。freetype2-devel以外は共通のパッケージ名です。
aptでインストール
-
- freetype2-devel
- python-devel
- tkinter -- PythonのTkモジュール
- glut-devel
- glew-devel -- PyMOL 1.4.1で必要
- libpng-devel
- mesa-libGLU-devel
- mesa-libGL-devel
-
- freetype2-devel
- python-devel
- tkinter -- PythonのTkモジュール
- XOrg-gl-devel
- glut-devel
- libpng-devel
yumでインストール
- freetype-devel <-- Vineのfreetype2-develに相当します
- python-devel
- tkinter
- XOrg-gl-devel
- glut-devel
- libpng-devel
PyMOLのインストール
必要なプログラムをインストールした後、コマンドを実行します。ビルド以降はrootで行います。
CCP4 6.0を使っている場合は後述の理由(distutils.coreがない)があるためpythonは/usr/bin/pythonを明示しましょう。
% cd pymol-1.2r2 % /usr/bin/python setup.py build # /usr/bin/python setup.py install # /usr/bin/python setup2.py install # cp pymol /usr/local/bin
でPyMOL本体のインストールは完了です。必要なファイルはpymolだけなので、インストールが完了したら使用したpymol-1.2r2ディレクトリごと削除しても問題ないようです。続いて必要なツールキットをインストールします。
Python Megawidgetsのインストール
通常はPython Megawidgets(Pmw)というツールキットがインストールされてませんのでPmwをインストールします。
このサイトからPmw.1.3.2.tar.gzを取得します。
% tar zxvf Pmw.1.3.2.tar.gz % cd Pmw.1.3.2/src # /usr/bin/python setup.py install
以上でPmwがインストールされ、利用可能になります。
APBSおよびPDB2PQRのインストール
表面電荷の図を書きたい場合はAPBSおよびPDB2PQRをインストールします。
CAVERのインストール
必要ならキャビティの表示プラグインのCAVERをインストールします。
PyMOLのアンインストール
PyMOLをアンインストールしたい場合はスクリプトを使って行います。インストール時のディレクトリが残っていればそこで、存在しない場合はもう一度アーカイブを展開します。
% cd pymol-1.2r2 # /usr/bin/python setup2.py uninstall
これでアンインストールされます。
Column:PyMOL本体はどこに?
インストール時に/usr/local/binディレクトリにコピーするのはpymolという名前のファイルですが、これは
#!/bin/sh /usr/bin/python /usr/lib/python2.5/site-packages/pymol/__init__.py "$@"
という起動スクリプトに過ぎません。一体、本体はどこにあるのでしょうか?
起動スクリプトをよく見てみると/usr/lib/python2.5/site-packages/pymol/__init__.pyというファイルを読み込んでいます。結局のところ、PyMOLはPythonモジュールとしてインストールされているわけですね。1.2r2の場合、関連しているディレクトリは以下のようです。
- /usr/lib/python2.5/site-packages/pymol -- PyMOL本体
- /usr/lib/python2.5/site-packages/pmg_tk -- PyMOLスキンとプラグインモジュール
- /usr/lib/python2.5/site-packages/pmg_wx -- 今のところ使ってない?(将来的にはwxPythonを使うってことでしょう)
- /usr/lib/python2.5/site-packages/chempy -- AMBERなどが使えるのか?(調べてないです)
プラグインを一般ユーザーでインストールしたい場合はpmg_tk/startup/ディレクトリに書き込み属性を付ければOKです。
起動
/usr/local/binへのパスが通っていれば
% pymol
で起動するはずです。
トラブル
インストール時に遭遇したトラブルをメモしておきます。
distutils.coreがない(CCP4 6.0)
インストール時のpython setup.py installを実行したときに以下のメッセージが出て停止しました。
'import site' failed; use -v for traceback Traceback (most recent call last): File "setup.py", line 8, in ? from distutils.core import setup, Extension ImportError: No module named distutils.core
これはCCP4 6.0(CCP4 6.1以降なら多分問題なし)と一緒にインストールされたpythonが使用されたため起こると考えられます*1。
% which python
で、/usr/bin/python以外のファイル名が表示されたら(私の場合は/usr/local/ccp4/ccp4mg-1.1.1/bin/pythonでした)、それが原因です。使用するpythonを指定することで解決します。
% /usr/bin/python setup.py build
で実行されます。これ以降の操作も/usr/bin/pythonを使用します。
セグメンテーション違反が発生して起動しない
セグメンテーション違反(Segmentation fault)が発生するのにはさまざまな要因が絡みますが、nVidiaのグラフィックカードを使用している場合はドライバに問題があるのかもしれません。
わたしの環境(たぶんGeForce7600GSあたり)ではバージョン173.14.12では起動しませんでしたが、バージョン169.12をインストールしなおしたところ解消しました。その時の手順を以下に示します。
- インストールしたPyMOLを削除します
# cd <PyMOLをビルドしたディレクトリ> # /usr/bin/python setup2.py uninstall
- nVidiaのサイトのArchived driversの中から必要なバージョンを取得します。
- そのドライバをインストールします。
- もう一度PyMOLのビルドからやり直してインストールします
ドライバを入れ替えるだけでなく、PyMOLをビルドし直さなければ適切なバージョンでも解決しません。苦労した〜・・・
なお、そのドライバが使用可能かそうでないかは、起動した瞬間にセグメンテーション違反がでるか、一瞬ウィンドウが表示されるかで判断できます。一瞬ウィンドウが表示された後のセグメンテーション違反ならおそらく大丈夫です。PyMOLを再構築しましょう。
nVidiaのドライバはこのような問題(OpenGLがらみ)が発生することがあるので覚えておくと、はまらなくていいかもしれませんね(nVidiaのドライババージョン17xを使ったとき、COOTでも同様の事象が発生しました) 。
ただ、カーネルバージョンが新しいと(2.6.27とか)、nVidiaの古いドライバはコンパイルできないので悩ましいところかも・・・
TclError: Can't find a usable init.tcl
CCP4 6.1.0をインストールした後、以下のようなエラーが出てExternal GUIが表示されなくなった。
TclError: Can't find a usable init.tcl in the following directories: /home/fr45/tcltk++/Linux/lib/tcl8.4 /usr/lib/tcl8.4 /lib/tcl8.4 /usr/library /library /tcl8.4.18/library /home/fr45/tcltk++/Linux/lib/tcl8.4
これは、init.tclファイルをPyMOLが見付けられなかったことが原因のようです。これを解決するには環境変数TCL_LIBRARYをセットします。方法は二つあり1)環境変数としてセットしてしまう、2)PyMOL起動ファイルを書き換える、ということです。
- 環境変数としてセットしてしまう
tcshでは、setenv TCL_LIBRARY $CCP4I_TCLTK/../lib/tcl8.4 -- CCP4の付属ライブラリを使う場合
またはsetenv TCL_LIBRARY /usr/share/tcl8.4 -- Vine 4.2標準
のように指定します(shならexport TCL_LIBRARY=/usr/share/tcl8.4など)。.cshrcファイルに記述してしまえばいいと思います。
CCP4環境ではTclがCCP4パッケージに付属していたものが使われますのでバージョンをあわせるために$CCP4I_TCLTK付属のライブラリにしたほうがいい気がします。 - PyMOL起動ファイルを書き換える
もし環境変数でいちいち影響されるのがイヤな場合は、起動ファイルである/usr/local/bin/pymolを修正してしまうのも手です。#!/bin/sh export TCL_LIBRARY=/usr/share/tcl8.4 <-- これを追加 /usr/bin/python /usr/lib/python2.4/site-packages/pymol/__init__.py $*
こんな感じですね。これならCCP4の環境に影響されないと思います。/usr/share/tcl8.4の場所はシステムによって異なるかもしれませんので確認してください。