mm-parm(Amber トポロジーの作成)¶
mm-parm は、酵素–基質複合体の全系の PDB から、AmberTools の tleap で Amber のトポロジー(parm7)・座標(rst7)と、それに対応する PDB を作ります。基質や補因子のように力場が知らない残基には、GAFF2 のパラメータと AM1-BCC 電荷を付けます。ML/MM の計算コマンドは、どれもこの parm7 を --parm7 で読みます。
主な用途¶
MM のトポロジーを作る: 全系の
parm7・rst7・PDB を書き出します。リガンドのパラメータを作る: 未知の残基に、
-lと--ligand-multの形式電荷と多重度で GAFF2 のパラメータを付けます。モデルを手で組む:
mm-parmが書く PDB をextractとdefine-layerに渡します。この PDB の原子はparm7と同じ順に並んでいます。
基本的な実行例¶
1. リガンドの電荷と多重度を渡す¶
リガンドごとの形式電荷とスピン多重度を残基名で渡します。
mlmm mm-parm -i input.pdb --out-prefix complex \
-l 'GPP:-3,MMT:-1' --ligand-mult 'GPP:1,MMT:1'
端末に complex.pdb・complex.parm7・complex.rst7 の [mm-parm] Wrote: が出れば成功です。
2. pH 7.0 で水素を付ける¶
作成の前に PDBFixer で水素を付けます。
mlmm mm-parm -i input.pdb --out-prefix complex \
-l 'GPP:-3,MMT:-1' --ligand-mult 'GPP:1,MMT:1' \
--add-ter --ff-set ff19SB --add-h --ph 7.0
3. 水素が付いている入力¶
入力をそのまま使います。
mlmm mm-parm -i input.pdb --out-prefix complex \
-l 'GPP:-3' --no-add-h
4. モデルを手で組む¶
トポロジーを作り、mm-parm が書いた PDB から ML 領域を切り出し、同じ PDB に層を付けます。
mlmm mm-parm -i input.pdb -l 'LIG:0' --out-prefix system
mlmm extract -i system.pdb -c LIG -l 'LIG:0' -o model.pdb
mlmm define-layer -i system.pdb --model-pdb model.pdb -o system_layered.pdb
計算コマンドには system_layered.pdb と --parm7 system.parm7 を渡します。
5. mmCIF の入力に使うトポロジー¶
mm-parm が読むのは PDB だけです。mmCIF の入力では、全系を原子の並びと元素を変えずに PDB に書き出し、そこからトポロジーを作って、その parm7 を mmCIF の構造と一緒に all に渡します。
mlmm mm-parm -i reactant_topology.pdb -l 'SAM:1,GPP:-3' \
--out-prefix full_system
mlmm all -i reactant.cif product.cif --parm7 full_system.parm7 \
-c 'enzyme_A:SAM:10001,enzyme_A:GPP:10002' \
-l 'SAM:1,GPP:-3' --tsopt --thermo -o result
処理の仕組みと計算仕様¶
入力: PDB をそのまま使います。
--add-hでは、PDBFixer が--phで水素を付けます。欠けた重原子や残基は足しません。TER レコード:
--add-ter(デフォルト)では、-lに書いた残基・水・イオンのまとまりの前後にTERを入れます。こうした残基が続く所は分けません。ペプチドの C–N 結合でつながっていない隣のアミノ酸の間(別の chain か、C–N > 1.9 Å)にもTERを入れます。ジスルフィド結合: SG 原子どうしが 2.5 Å 以内の CYS/CYX の組を結合し、結合した CYS の名前を CYX に変えて、tleap が HG を外すようにします。
--no-auto-disulfideでは、もとから CYX という名前の残基だけを結合します。未知の残基: まず力場だけで tleap を実行します。tleap が未知と報告した残基名ごとに、ファイルの中でその名前の最初の残基から、antechamber(GAFF2、AM1-BCC)と parmchk2 でパラメータを作ります。電荷は
-l(無ければ 0)、多重度は--ligand-mult(無ければ 1)です。antechamber の前に、残基の電子数がこの電荷・多重度と合うかを確かめます。トポロジー: 新しいパラメータを読んで tleap をもう一度実行し、トポロジー・座標・PDB を書きます。
mm-parmは PDB の空の元素の欄をparm7から埋め、ほかのレコードと原子の順は変えません。
主な出力ファイル¶
./
├─ <prefix>.parm7 # Amber のトポロジー
├─ <prefix>.rst7 # Amber の座標(ASCII)
└─ <prefix>.pdb # 元素の欄を埋めた tleap の PDB。原子と順序は parm7 と同じ
<prefix> のデフォルト値は入力のファイル名から拡張子を除いたもので、現在のディレクトリに書かれます。PDB は --out-prefix を指定したときに書かれ、--out-prefix なしで --add-h を指定したときは <入力の名前>_parm.pdb になります。どちらでもなければ parm7 と rst7 だけです。<prefix>.pdb が入力を置き換えないよう、接頭辞には入力と違う名前を指定してください。--add-h の後で作成が失敗したときは、その PDB のパスにまだファイルが無ければ、水素を付けた構造をそこに書きます。--keep-temp では、tleap のログを含む作業ディレクトリ parm7build_* が現在のディレクトリに残ります。
主な CLI オプション¶
オプション |
引数の型 |
デフォルト |
説明 |
|---|---|---|---|
|
パス |
(必須) |
入力 PDB。 |
|
文字列 |
入力の名前(拡張子なし) |
出力ファイルの接頭辞 |
|
文字列 |
|
残基名ごとの形式電荷(例: |
|
文字列 |
|
残基名ごとのスピン多重度(例: |
|
フラグ |
|
作業ディレクトリと tleap のログを残す |
|
フラグ |
|
リガンド・水・イオンのまとまりの前後と、ペプチド結合でつながらないアミノ酸の間に |
|
フラグ |
|
SG–SG ≤ 2.5 Å の CYS/CYX の組を結合し、結合した CYS の名前を CYX に変える。オフでは、もとから CYX の残基だけを結合する |
|
フラグ |
|
PDBFixer で、 |
|
浮動小数点数 |
|
|
|
|
|
全オプションは 自動生成のオプションの一覧(英語のみ) を参照してください。
oniom-export 用の CMAP を含まないトポロジー¶
ff14SB で作成し、CMAP 項がないことを確認します。
mlmm mm-parm -i input.pdb -l 'LIG:0' --ff-set ff14SB --out-prefix system
python -c "import parmed as pmd; p=pmd.load_file('system.parm7'); assert not p.cmaps"
使用上の注意点¶
トポロジーを自分で作る系:
mm-parmは、基質が典型的な有機分子のときに向いています。次の系では、トポロジーを自分で作り、--parm7で渡してください。金属酵素: 金属中心には専用の結合・非結合パラメータ(MCPB.py、bonded model、ZAFF)が要ります。GAFF2 では金属–配位子の配位を表せません。
糖鎖: 力場の組は GLYCAM_06j-1 を読み込みますが、
mm-parmはジスルフィド以外の結合を作りません。グリコシド結合など残基の間の共有結合には、tleap のbondコマンドを自分で書く必要があります。非標準アミノ酸・翻訳後修飾: 修飾残基には専用の
frcmod/libファイルが要ることがあります。MD から取った構造: MD の
parm7を使い回してください。そうすれば、ML/MM の計算は MD と同じ MM のエネルギー面を使い、部分電荷や原子タイプも変わりません。
# MD で作ったトポロジーを使う mlmm opt -i snapshot_layered.pdb --parm7 md_system.parm7 -q -1 -m 1 \ --opt-mode grad --out-dir result
parm7は原子の順で対応づける: どの座標の入力も、全系の原子をparm7と同じ順に持っている必要があります。ML/MM 計算機は計算の前に、原子数と、原子ごとの元素・原子名(1HBとHB1は同じ)・残基名・残基の順番を比べ、最初に食い違った所で止まります。反応物・中間体・生成物の構造を作るときは、原子名・残基名・原子の順を保ってください。--model-pdbのファイルは、全系から変えずに取り出した部分集合で、ML 領域の原子を選ぶためだけに使います。出力 PDB の残基番号: tleap は残基を出てくる順に 1, 2, … と数えるので、
mm-parmが書く PDB の残基番号は入力と違うことがあります。examples/beza/1.R.pdbでは、ARG 38 が 1 番目、SAM 320 が 283 番目の残基です。この PDB を手で切るときは、残基を名前で選ぶか、番号をファイルで確かめてください。allは元の入力を切るので、元の番号のまま指定できます。力場が知らないアミノ酸:
extractがアミノ酸として扱う残基(extractの付録)を tleap が知らないと、作成は止まります。メッセージは 3 つの対処を示します。-lに書いて GAFF2 のパラメータを付ける、入力の残基を変える、tleap でトポロジーを自分で作る、です。リガンドの電荷と水素: 残基の水素の数が電荷・多重度と合わないと、電子数の確認で止まります(SAM では水素 22 個が電荷 0、23 個が +1)。tleap がもう知っている残基への
-l・--ligand-multは使われず、警告が出ます。力場の組:
ff19SBは ff19SB と phosaa19SB・ff19SB_modAA、OPC3 の水とそのイオンのパラメータを読み込みます。ff14SBは ff14SB と phosaa14SB・ff14SB_modAA、TIP3P の水とそのイオンのパラメータを読み込みます。どちらも lipid21・RNA.OL3・DNA.OL21・GLYCAM_06j-1・GAFF2 を読み込みます。仮想サイトを持つ水: デフォルトの MM バックエンド
hessian_ffは、質量の無い仮想サイトを持つ水(OPC・TIP4P/-Ew・TIP5P)のトポロジーを拒み、その数と原子番号を表示します。3 点の水を使うか、計算を--mm-backend openmmで実行してください。必要なもの: AmberTools の tleap・antechamber・parmchk2 が
PATHにあることが必要で、--add-hには PDBFixer も要ります。
関連ドキュメント¶
ML 領域と層の組み方 —
mm-parmが書く PDB で ML 領域と MM の層を決めるall — 一気通貫のワークフロー。
--parm7が無いとmm-parmを実行するextract — トポロジーと対応した PDB から ML 領域を切り出す
define-layer — トポロジーと対応した PDB に ML・可動 MM・固定 MM の層を付ける
oniom-export — Gaussian ONIOM・ORCA QM/MM の入力を書き出す。上の CMAP を含まないトポロジーが要る
トラブルシューティング — トポロジーと原子の順のエラー