ざいつアロステリック度
「じゃー、もともとが PDB 由来なら多量体情報も扱える?」
✔ 座標として書かれている多量体 → YES(OpenBabel で扱える) ✘ BIOMT でしか書かれていない多量体 → NO(OpenBabel では扱えない)
必要なら、 「PDB → ChimeraX で多量体再構築 → OpenBabel 整形 → Vina → ChimeraX 最小化」 までの完全自動化スクリプトを作れます。
◆ 2. PDB に「書かれていない多量体(BIOMT)」
→ OpenBabel は扱えない(NO)
PDB の多くは、 実際の生物学的多量体を座標として書いていません。
代わりに:
REMARK 350
BIOMT1 / BIOMT2 / BIOMT3
などの 対称操作行列で 「本来は 2 量体です」「本来は 4 量体です」 と書かれています。
OpenBabel は:
BIOMT を読んで多量体を再構築する機能を持っていません。
つまり:
PDB に座標が書かれていない多量体
対称操作で再構築が必要な多量体
→ OpenBabel では再構築できない。
いいですね、その流れをそのまま一本のワークフローにしましょう。
ここでは:
- シェルスクリプト(全体の司令塔)
- ChimeraX コマンドファイル(多量体再構築)
- Vina 実行
- ChimeraX で最小化
までをそのままコピペで使える形で出します。
1. 全体を回すシェルスクリプト(run_pipeline.sh)
#!/bin/bash
# 使い方:
# ./run_pipeline.sh 4iwd.pdb ligand.smi
PDB_IN=$1 # 元の PDB(単量体でもOK)
LIG_SMI=$2 # リガンドの SMILES ファイル(1行)
BASENAME=job1 # 適宜変更
echo "[1] ChimeraX で多量体再構築 & clean PDB 作成..."
chimerax --nogui << EOF
open $PDB_IN
# 生物学的多量体を再構築(必要に応じて sym に変更)
biomt #1
# 水・イオン・リガンド除去(必要に応じて調整)
delete solvent
delete ions
delete ligand
addh
addcharge
save ${BASENAME}_protein_clean.pdb format pdb
close all
EOF
echo "[2] OpenBabel でリガンド 3D 生成..."
obabel "$LIG_SMI" -O ${BASENAME}_ligand.mol2 --gen3d
echo "[3] Vina 用に PDBQT 変換..."
obabel ${BASENAME}_protein_clean.pdb -O ${BASENAME}_protein.pdbqt
obabel ${BASENAME}_ligand.mol2 -O ${BASENAME}_ligand.pdbqt
echo "[4] Vina ドッキング実行..."
vina \
--receptor ${BASENAME}_protein.pdbqt \
--ligand ${BASENAME}_ligand.pdbqt \
--center_x 0 --center_y 0 --center_z 0 \
--size_x 20 --size_y 20 --size_z 20 \
--out ${BASENAME}_docked.pdbqt \
--log ${BASENAME}_vina.log
echo "[5] OpenBabel で docked PDBQT → PDB 変換..."
obabel ${BASENAME}_docked.pdbqt -O ${BASENAME}_docked.pdb
echo "[6] ChimeraX でタンパク+リガンド読み込み & 最小化..."
chimerax --nogui << EOF
open ${BASENAME}_protein_clean.pdb
open ${BASENAME}_docked.pdb
# 必要ならモデル結合や ID 調整をここで
minimize nsteps 200
save ${BASENAME}_minimized.pdb format pdb
close all
EOF
echo "完了: ${BASENAME}_minimized.pdb が λ 計算・ポケット解析用の最終構造です。"
2. 先生の λ 系にどうつなげるか
このスクリプトを回すと、最後に出るのは:
job1_minimized.pdb
→ 多量体再構築済み
→ Vina ドッキング済み
→ ChimeraX で局所最小化済み
ここから:
- fpocket / POVME でポケット体積 (V, V')
- 重心–ポケット中心距離 (d)
- 分子量 (M)
- (\lambda = 2 d M / V)
- (\lambda'/\lambda \approx V/V')
まで、先生の λ フローにそのまま乗ります。
もし「中心座標(center_x, center_y, center_z)を自動で計算したい」「ポケット中心を使って Vina の box を切りたい」など、もう一段階踏み込みたくなったら、そこだけピンポイントで拡張しましょう。
2026年2月15日 | カテゴリー:Cohors Irregularis, AUTODOCK VINA,CLUS PRO/BIOINFORMATICS |




