fix-altloc(PDB の代替位置の解決)¶
fix-altloc サブコマンドは、PDB ファイルから代替位置(altLoc)を取り除きます。残基ごとに平均占有率が最も高い altLoc ラベルを 1 つ選ぶので、各残基は実際に登録された 1 つの配座になります。PDB を読むほかのコマンドも、読み込むときに同じ規則を自動で適用します。整理した PDB ファイルそのものが必要なときに fix-altloc を使ってください。
主な用途¶
保存用の整理した PDB: 残基ごとに 1 つの配座にしたファイルを、ほかのプログラムや記録に使う
多数のファイルの一括処理: ディレクトリ内のすべての
.pdb(必要ならサブディレクトリも)選択の確認: 計算の前に、整理したファイルを入力と並べて構造ビューアで開き、各残基にどの配座が残るかを確かめる
基本的な実行例¶
1. 1 つのファイル¶
1 つのファイルを整理し、1abc_clean.pdb に書き出します。
pdb2reaction fix-altloc -i 1abc.pdb
端末に [fix-altloc] Fixed altLoc → 1abc_clean.pdb が出れば成功です。
2. 出力ファイルを指定する¶
pdb2reaction fix-altloc -i 1abc.pdb -o 1abc_fixed.pdb
3. ディレクトリを再帰的に処理する¶
./structures 以下のすべての .pdb を整理し、同じサブディレクトリ構成で ./cleaned に書き出します。
pdb2reaction fix-altloc -i ./structures -o ./cleaned --recursive
4. バックアップを残して上書きする¶
pdb2reaction fix-altloc -i ./structures --inplace --recursive
処理の仕組みと計算仕様¶
altLoc の検出: 各ファイルで、空白でない altLoc の文字(17 列目)を探します。
残基ごとのまとめ: ラベルの付いた ATOM・HETATM レコードを、chain ID・残基番号・挿入コード・segID で残基ごとにまとめます。残基名はキーに含めません。
残基ごとに 1 つのラベルを選ぶ: 原子の平均占有率(55–60 列)が最も高いラベルを選びます。同点ならファイル内で先に出たラベルを選びます。
書き出し: 空白(共通)の原子と、選んだラベルの原子を残し、17 列目を空白にします。
ANISOU レコードは、残った原子(同じシリアル番号)の分だけを残し、そのほかのレコードはそのまま書き出します。
altLoc の間で原子数が違う場合¶
altLoc の状態ごとに原子が違う場合も、選んだラベルの原子だけを残し、選ばなかったラベルにしか無い原子は削除します。
入力:
ATOM 1 N ALYS A 1... 0.50 # altLoc A
ATOM 2 CA ALYS A 1... 0.50 # altLoc A
ATOM 3 CB ALYS A 1... 0.50 # altLoc A
ATOM 4 CG ALYS A 1... 0.50 # altLoc A
ATOM 5 N BLYS A 1... 0.40 # altLoc B
ATOM 6 CA BLYS A 1... 0.40 # altLoc B
ATOM 7 CB BLYS A 1... 0.40 # altLoc B
ATOM 8 CG BLYS A 1... 0.40 # altLoc B
ATOM 9 CD BLYS A 1... 0.40 # altLoc B のみ
出力:
ATOM 1 N LYS A 1... 0.50 # A から(占有率が高い)
ATOM 2 CA LYS A 1... 0.50 # A から
ATOM 3 CB LYS A 1... 0.50 # A から
ATOM 4 CG LYS A 1... 0.50 # A から
(altLoc B にしか無い CD は削除)
主な出力ファイル¶
ファイル入力: デフォルトは
<input>_clean.pdb。-oを指定するとそのパスです。ディレクトリ入力: デフォルトは
<input>_clean/。-oを指定するとそのディレクトリで、入力と同じ相対パスに書き出します。端末に[fix-altloc] Processed N file(s) → …と、altLoc の無いファイルについてSkipped N file(s)が出ます。--inplace: 入力ファイルを上書きし、元のファイルを<name>.pdb.bakとして保存します。
主な CLI オプション¶
オプション |
引数の型 |
デフォルト |
説明 |
|---|---|---|---|
|
パス |
(必須) |
入力 PDB ファイルまたはディレクトリ |
|
パス |
|
出力ファイル(ファイル入力)またはディレクトリ(ディレクトリ入力)。省略時は |
|
フラグ |
|
ディレクトリ入力で、サブディレクトリの |
|
フラグ |
|
入力ファイルを上書き( |
|
フラグ |
|
既存の出力ファイルの上書きを許可。無いときに出力がすでにあると |
|
フラグ |
|
altLoc が見つからないファイルも処理 |
全オプションは 自動生成のオプションの一覧(英語のみ) を参照してください。
使用上の注意点¶
altLoc の無いファイル: 17 列目がすべて空白のファイルはスキップし、何も書き出しません。
--forceを付けると処理します。--inplaceと-oは併用できません。.bakがすでにあれば置き換えないので、最初に上書きする前のファイルが残ります。シリアル番号は振り直さないので、原子を削除した箇所に欠番が残ることがあります。
CONECTなどの結合・注釈のレコードも更新しません。残したレコードは、座標・占有率・B-factor・電荷・挿入コード・並び順をそのまま保ちます。
MODEL/ENDMDL ブロックはブロックごとに別々に処理します。
占有率の規則は経験則です: 活性部位の配座を、周りとの化学的な接触や、PDB エントリにある複数の配座の読み方から選ぶ必要があるときは、構造エディタで自分で選び、目で確かめてください。
終了コード: 終了コードを参照してください。
関連ドキュメント¶
extract — PDB の読み込み時に同じ altLoc の規則を適用する活性部位モデルの抽出
add-elem-info — PDB の元素欄の修復
複合体の構造を用意する — 計算の前の水素原子の付加
all — 全工程のワークフロー
トラブルシューティング — 実行に失敗したときの対処