Toolkit to prepare AMBER files for MD simulations.
BILABのチュートリアルに沿って、入力とするpdbファイルからAMBERでのMDシミュレーション実行のために必要なファイルを自動生成するPythonスクリプト(※Gromacs用は現在開発中)。 現在はリガンドがあるMDシミュレーションの系については未対応。
このパッケージの特長
- BILABチュートリアルに沿ってトポロジーファイルを含むディレクトリ
top
とMDの実行ファイルを含むディレクトリamber/{minimize,heat,pr}
を自動的に生成する。 - MDシミュレーションをminimize, heat, prと一気に実行可能な
totalrun.sh
をproduction runのディレクトリamber/pr
内に自動生成する。 - production runのディレクトリ
amber/pr
内に生成するサブディレクトリの数を引数--num_mddir
と--ns_per_box
調節可能。 - SS結合のペアを入力pdbファイルの構造情報から推定して自動的に適切に設定する。
- 上に加え、SS結合ペア情報を外部ファイル
sslink
から上書き可能。AlphaFoldで出てきた構造では想定と異なるSS結合になっている場合が時々あるため、このケースに対応した機能である。 - ボックスサイズを引数
--boxsize
から指定可能。 - ボックスサイズに応じてイオン濃度を引数
--ion_conc
から調節可能。 - MDトラジェクトリを解析するための
trajfix.in
を自動生成。
以下のソフトウェアが必要。
- お使いのPC/macにAMBER22に含まれるAmberTools22がインストールされている。
- Python3(> 3.6)以上で、Pythonライブラリの依存を解決しておく。
python3.10 -m pip install absl-py biopython
GitHubからこのコードを適当なディレクトリにダウンロードする。
mkdir -p ~/apps
cd ~/apps
git clone https://github.com/YoshitakaMo/preparemd.git
このパッケージが更新されたらgit pull origin main
コマンドで時々更新差分をダウンロードする。
cd ~/apps/preparemd
git pull origin main
仕様上、指定可能な引数が多く設定されていますので1つ1つ確認していってください。
python3.10 ~/apps/preparemd/run_preparemd.py \
--file=/path/to/your/foo.pdb \
--distdir=/path/to/your/targetdirectory \
--fftype="ff19SB"
--num_mddir=3 \
--ns_per_mddir=50 \
--boxsize="120 120 120" \
--ion_conc=150 \
--strip=":793-807,864-878" \
--sslink=/path/to/pre_sslink \
--rotate="rotate z 45" \
--machineenv="yayoi" \
--trajprefix="foo" \
--frcmod="/path/to/frcmod.lig1 /path/to/frcmod.lig2" \
--prep="/path/to/prep1.prep /path/to/prep2.prep" \
--mol2="ACA = loadMol2 Acetyl_CoA.mol2" \
--mol2="DON = loadMol2 DON.mol2"
--file
は入力とするPDBファイルパス。実行に必須。AlphaFoldで出力されてきたPDBフォーマットにも対応している。--distdir
は出力先のディレクトリ名。実行に必須。この中にトポロジーファイルを含むtop
ディレクトリとMDの実行ファイルamber/{minimize,heat,pr}
を生成する。--fftype
はff14SB
とff19SB
のいずれかを指定する。力場の指定。デフォルトは最新のff19SB
だが、以前の結果と合わせる場合にはff14SB
を使うと良い。--num_mddir
はamber/pr
ディレクトリ内に指定した数分だけのprodution run実行サブディレクトリを生成する。ナンバリングは3桁になるよう0埋めされる(例:001
,002
,003
,...)。デフォルトは3
。--ns_per_mddir
は各production runサブディレクトリあたりで実行されるMDシミュレーションの上限時間(ns)。デフォルトは50
。--boxsize
はMDシミュレーションを実行するときの周期境界ボックスのサイズ。 必ず"x y z"
のように3つ組の整数値を入れる。指定しない場合は、溶質の大きさに応じてその周囲10Åを余分にとった大きさになる。異方性の大きい溶質の場合(例:SRK, SP11複合体)のときなどは、立方体になるよう明示的に指定したほうが良い。--ion_conc
は周期境界ボックス内に配置するイオンの濃度(mM)を指定する。デフォルトは150 mM。--strip
はAMBER MASK文法でMDシミュレーションに含めない領域を指定する。例えばAlphaFoldで予測された構造にシグナルペプチドなどの余分な長い領域がついている場合があって、それを除いてシミュレーションさせたいときなどに使う。仕様上、この残基ナンバリングは入力とするpdbファイルのN末端からの通し番号となることに注意。言い換えれば、leapを通った後に1番から再ナンバリングされたときの番号である。例えば--strip=":793-807,864-878"
を指定したとすると、入力pdbファイルのN末端から数えて793-807と864-878番目の残基を取り除いてからleapを通してMDのインプットファイルを生成することになる。--sslink
は正しいSS結合を形成するCYS残基の残基番号ペアの情報を含むsslinkファイルへのパスを指定する。フォーマットは後述。このオプションが指定されない場合は、入力とするpdbファイルの構造から自動的に適切と思われるSS結合情報を取得し、SS結合を形成する。--rotate
を指定すると、AmberToolsのcpptraj
内で使われるrotateコマンドを使って指定した軸回りに入力pdbの構造を回転させてからleap処理を実行する。例えば--rotate "rotate z 45"
はz軸回りに45°回転させるというもの。--machineenv
は計算機環境を指定する。これはMDを動かすrun.sh
のヘッダー部分を変化させる。現在のところbrillantegw3
,yayoi
,wisteria
,flow
を用意している。デフォルトはyayoi
。--trajprefix
はtrajfix.in
の中で出力される予定のinit.pdb
とtraj.trr
のファイルの先頭につけるプレフィックス文字。--frcmod
,--prep
はそれぞれ追加の力場パラメータ、小分子パラメータ(prep形式)へのファイルパスを指定。スペース区切りで複数入力可能。これらのファイルはすべてtop
ディレクトリにコピーされる。--mol2
ファイルはmol2形式の追加の小分子パラメータへのファイルパス。これはAMBERのleap.in
に書く方法と同じ。複数回指定可能。--norun_leap
を指定すると、leap.parm7
やleap.rst7
ファイルを生成しないがその他のファイルを生成する。leap処理を機械的に行うことが難しいために、手動でleap部分だけ調整しておきたいという人向け。
sslinkファイルのフォーマットは以下の通り。これはpdb4amberコマンドで生成されるフォーマットと同じ。各番号は入力とするpdbファイルのN末端から通して数えたときの残基番号。またこの残基番号がCYSでない場合はエラーとなる。
262 274
268 282
284 305
313 351
343 368
347 353
amber/md
またはamber/top
にあるファイルが出力テンプレートとなっているので、それらを適当にいじってください。