Posted at

MEGADOCKでタンパク質ドッキングをやってみる

More than 3 years have passed since last update.


概要

タンパク質ドッキングとは,2つのタンパク質の構造情報をもとに複合体の構造を推定することです.

この記事ではMEGADOCKというツールを使ってタンパク質ドッキングをやってみるところまで解説します.


インストール


必要なもの

今回は普通のPCで動かす場合の説明をします.

GPUとかスパコンとか使いたい人はhttp://www.bi.cs.titech.ac.jp/megadock/install_ja.html を参照して下さい.


FFTW3のインストール

FFTWのサイト http://www.fftw.org からFFTW3系のtarballを取ってきます.その後,以下のようにインストールして下さい.


FFTW3のインストール

$ tar xzf fftw-3.X.X.tar.gz

$ cd fftw-3.X.X
$ ./configure --enable-float --enable-sse2 --prefix=/as/you/like
(SIMD化が効く場合,--enable-sse または --enable-sse2 オプションによってSSEまたはSSE2を有効にすると性能向上が見込めます.)
$ make
$ make check
$ make install


MEGADOCKのインストール

MEGADOCKのサイト http://www.bi.cs.titech.ac.jp/megadock/ からmegadock-4.0.tgzをダウンロードします.その後以下の操作で解凍します.


tarの解凍

$ tar xzf megadock-4.0.tgz

$ cd megadock-4.0

次にMakefileを編集します.Makefileの該当箇所を以下に沿って編集して下さい.(FFTWのパスはインストール時に設定したものを入力して下さい.)


Makefile

FFTW_INSTALL_PATH ?= your/fftw/library/install/path

(デフォルト: /usr/local )
CPPCOMPILER ?= icpc, g++ など
OPTIMIZATION ?= -O3
OMPFLAG ?= -openmp (intel) または -fopenmp (g++)

USE_GPU := 0
USE_MPI := 0


そしてmakeします.

$ make

すると,megadockという名前のバイナリファイルが生成されます.


MEGADOCKを使う

MEGADOCKに2つのPDBファイルを入力すると,ドッキング計算をしてくれます.


MEGADOCKの実行

$ ./megadock -R A.pdb -L B.pdb -o docking.out



MEGADOCKのオプション

-o [filename]    : 出力ファイルの名前 (デフォルト:"$R-$L.out")

-O : 詳細な出力ファイルを生成します
-N [integer] : 生成する候補構造の数 (デフォルト:2000)
-t [integer] : リガンド回転角ごとに出力する候補構造の数 (デフォルト:1)
-D [integer] : リガンド回転角の刻み幅を6°刻みにします(-Dを付けない場合は15°刻み)
6°刻みの場合54000通りの角度,15°刻みの場合3600通りの角度で計算します.
(例えば -t 2 -D とした場合,-Nは最大108000まで設定可能です.)
-e [float] : 静電相互作用の項の重み倍率 (デフォルト:1.0)
-d [float] : 脱溶媒和項の重み倍率 (デフォルト:1.0)
-a [float] : rPSC形状相補性のレセプターコアの値 (デフォルト:-45.0)
-b [float] : rPSC形状相補性のリガンドコアの値 (デフォルト:1.0)
-f [1/2/3] : スコア関数の設定
(1: rPSC形状相補性のみ, 2: rPSC+静電, 3: rPSC+静電+脱溶媒和, デフォルト:3)
-h : ヘルプを表示

予測した複合体の構造の情報はdocking.outというファイルに書き込まれます(デフォルトではスコアの良いものから2000個分).正確にはこのファイルにはリガンドの相対的な移動情報しか書かれていないので,PDBファイルにするには以下の操作を行います.


複合体PDBの生成

$ ./decoygen 1.pdb B.pdb docking.out 1

(./decoygen [候補構造のファイル名] [使用したリガンドPDB] [ドッキング出力ファイル] [出力する候補構造の順位])

これで複合体の(1位の)構造1.pdbができました.

PyMOL (http://pymol.org) などのビューワで実際に見てみましょう.


PyMOL

$ pymol 1.pdb


20130909235624.png


スレッド並列

MEGADOCKはOpenMPでスレッド並列化されています.


スレッド並列

$ export OMP_NUM_THREADS=2


などで適当なスレッド数を指定してあげると速く実行できます.


GPUで動かす

Makefileの編集のときに USE_GPU := 1 とするとGPUで計算するバイナリを生成できます.

かなり高速に計算できますので,是非GPUを使ってやってみてください.


参考情報