超並列計算によるタンパク質ドッキングソフトウェア
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
-tb [ジョブリストファイル名]オプション
-lg [logファイル名] (デフォルト: master.log)
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) の順にタブ区切りで入力します.)
PARAM
行および,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 : ヘルプを表示
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 # ワンライナーです.
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に書き換えるスクリプトです.$OMP_NUM_THREADS
にスレッド数を指定することでドッキング計算を並列化することができます.環境によって異なりますが搭載されているCPUコア数(ハイパースレッディングが利用できる場合はコア数の2倍)を指定するのが良いでしょう.
export OMP_NUM_THREADS=8