超並列計算によるタンパク質ドッキングソフトウェア

使い方

MEGADOCK 4.0は利用する環境によって使い方が異なります.(a) GPUクラスタ, (b) CPUクラスタ, (c) 単一GPUノード, (d) 単一CPUノードのうち該当する箇所を参照して下さい.

● 使用例

(a) GPU & MPI (例:4プロセス並列.HOSTSはノードリストが記述されたファイルです.)
$ mpirun -n 4 ./megadock-gpu-dp -tb data/SAMPLE.table

# for using `HOSTS` file (HOSTS is node list file)
# mpirun -n 4 -hostfile HOSTS ./megadock-gpu-dp -tb data/SAMPLE.table
(b) CPU & MPI (例:4プロセス並列.HOSTSはノードリストが記述されたファイルです.)
$ mpirun -n 4 ./megadock-dp -tb data/SAMPLE.table

# for using `HOSTS` file (HOSTS is node list file)
# mpirun -n 4 -hostfile HOSTS ./megadock-dp -tb data/SAMPLE.table
(c) GPU単一ノード
$ ./megadock-gpu -R data/receptor.pdb -L data/ligand.pdb
(d) CPU単一ノード
$ ./megadock -R data/receptor.pdb -L data/ligand.pdb


● MPIプロセス並列実行時の引数

必須のもの
-tb [ジョブリストファイル名]
オプション
-lg [logファイル名] (デフォルト: master.log)


● ジョブリストファイル

ドッキングを実行するときのパラメータと対象のPDBファイルを記述したテキストファイルです.ジョブリストはTITLE行,PARAM行と,それに続く引数リストから構成されます.例として同梱しているSAMPLE.tableを以下に示します.

SAMPLE.table
TITLE=sample jobs
PARAM=-R $1 -L $2
data/1gcq_r.pdb	data/1gcq_r.pdb
data/1gcq_r.pdb	data/1gcq_l.pdb
data/1gcq_l.pdb	data/1gcq_r.pdb
data/1gcq_l.pdb	data/1gcq_l.pdb
(Note: 3行目以降は各引数 (ここでは$1 $2) の順にタブ区切りで入力します.)


● ドッキングパラメータ

(このパラメータはMPIで使うジョブリストファイルのPARAM行および,MPIを用いない場合で共通です.)

MEGADOCK 4.0でMPIを用いる場合 (megadock-gpu-dpまたはmegadock-dp),のドッキング計算時のパラメータは,ジョブリストファイルのPARAM行に記述します.MPIを用いない場合 (megadock-gpuまたはmegadock) は実行時にこれらのパラメータを直接指定します.

必須のもの
-R [レセプターPDBファイル]
-L [リガンドPDBファイル]
オプション
-o [filename]    : 出力ファイルの名前 (デフォルト:"$R-$L.out")
-O               : 詳細な出力ファイルを生成します
-N [integer]     : 生成する候補構造の数 (デフォルト:2000)
-t [integer]     : リガンド回転角ごとに出力する候補構造の数 (デフォルト:1)
-D               : リガンド回転角の刻み幅を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               : ヘルプを表示


● ドッキングの出力ファイル

ドッキングの出力は-oオプションで指定したファイルに書き出されます.4行目までは実行時情報,5行目以降がドッキング計算結果で,1行につき1つの候補構造を示しています.記載されている数値はリガンドの初期位置からの回転角(x, y, z)と,グリッド上での平行移動(t1, t2, t3),ドッキングスコア,の7つの値です. 実際に候補構造のPDBファイルを生成する場合は,decoygenというツールを使います. (MEGADOCKのコンパイル時に同時にコンパイルされます.)
 $ ./decoygen [候補構造のファイル名] [使用したリガンドPDB] [ドッキング出力ファイル] [出力する候補構造の順位]
ex) ( megadock -R rec.pdb -L lig.pdb -o dock.outを実行した後,1位の候補構造を出力する場合)
 $ ./decoygen lig.1.pdb lig.pdb dock.out 1 (lig.pdbを回転・平行移動させたリガンドPDB "lig.1.pdb" を生成)
 $ cat rec.pdb lig.1.pdb > decoy.1.pdb (rec.pdbとlig.1.pdbの複合体 "decoy.1.pdb" を生成)
ex) ( megadock -R rec.pdb -L lig.pdb -o dock.outを実行した後,全ての候補構造を出力する場合)
 $ for i in `seq 1 2000`; do ./decoygen lig.${i}.pdb lig.pdb dock.out $i; cat rec.pdb lig.${i}.pdb > decoy.${i}.pdb; done
    # ワンライナーです.


●レセプター残基のブロック機能

MEGADOCK 4.0.1からレセプター残基のブロック機能が追加されました.同梱されているblockツールを利用して,特定の残基と接触しない候補構造を生成させることができます.
 $ ./block [pdbfile] [chain] [target residue list]
例:1gcq_r.pdbのBチェインの182~186, 189, 195~198, 204番残基をブロック対象にします.
 $ ./block data/1gcq_r.pdb B 182-186,189,195-198,204 > 1gcq_r_blocked.pdb
 $ ./megadock -R 1gcq_r_blocked.pdb -L data/1gcq_l.pdb
・[target residue list]にはハイフンとカンマが使えます.スペースを入れずに指定してください.
・レセプターのみの機能となります.
blockはpythonスクリプトです.python環境が必要です.
blockは指定された残基の残基名をBLKに書き換えるスクリプトです.
 MEGADOCK内部でBLK残基を認識して結合部位にこないように配置します.

● スレッド並列

MEGADOCKはドッキング計算をOpenMPによって並列化しています.環境変数$OMP_NUM_THREADSにスレッド数を指定することでドッキング計算を並列化することができます.環境によって異なりますが搭載されているCPUコア数(ハイパースレッディングが利用できる場合はコア数の2倍)を指定するのが良いでしょう.
export OMP_NUM_THREADS=8
Copyright © 2014-2019 Akiyama Laboratory, Tokyo Institute of Technology, All Rights Reserved.
Email: megadock @ bi.cs.* (please replace * with titech.ac.jp)
Last update: April 17, 2019