BMutate

XYZ 形式,PDB 形式,あるいは独自形式である BCL 形式のファイルを開いて,ペプチドに変異を 1 回導入します.
配列上の位置とアミノ酸を指定,乱数を発生させて位置とアミノ酸を設定,乱数に BLOSUM62 で重み付けをして位置とアミノ酸を設定するというオプションがあります.
変異したペプチドは(複数のペプチドが含まれる場合は変異したペプチドのみ),libopenbabel でエネルギー極小化してから出力します.

GUI 版分子モデリングソフト Builcule と比べて,多様な条件で変異を導入できます.
例えば,BLOSUM62 を利用した重み付けは,手持ちの材料で完全にランダムな変異よりも現実を反映した処理ができないか考えてみた試論です.
これを第 1 版としておきます.

ビルドとインストール

ソースファイル

ビルドとインストール

ダウンロードした bmutate-1.2.0.tar.gz を解凍し,生成するディレクトリに移動します.
~$ tar -zxvf bmutate-1.2.0.tar.gz
~$ cd bmutate-1.2.0
Makefile 作成ツールには,Automake を使っています.Automake の常法どおり,
~/bmutate-1.2.0$ ./configure
~/bmutate-1.2.0$ make
~/bmutate-1.2.0$ sudo make install
とすれば,/usr/local/bin に bmutate がインストールされます.

アンインストール

実行ファイルがインストールされるだけなので,これを削除してください.
~/$ sudo rm /usr/local/bin/bmutate

不具合

入力ファイルに複数の分子が含まれており,これらが空間的に近い位置にある場合,嵩高いアミノ酸への変異により分子間の共有結合が生成する場合があります.
これは,原子間の距離で共有結合を検知しているためです.

改定履歴

2023 年 10 月 23 日 : 1.2.0 リリース.変異の位置を乱数で,アミノ酸の種類を引数で指定するオプションを追加しました.
2023 年 10 月 19 日 : 1.1.0 リリース.ファイルに複数の分子が含まれる場合に,変異した分子しか出力されないバグを修正しました.
2023 年 10 月 19 日 : 1.0.0 リリース.

マニュアル

分子ファイルを読んで,検知できたペプチド中のアミノ酸を,下記の方法で 1 個変異します.
アミノ酸は一文字記号しか使えません.大文字小文字の区別しません.
[1] オプションで分子,ペプチド,配列番号,アミノ酸を指定
[2] 乱数で,分子,ペプチド,配列番号,アミノ酸を設定
[3] 乱数で,分子,ペプチド,配列番号.オプションでアミノ酸を指定
[4] 乱数を BLOSUM62 で重み付けし,分子,ペプチド,配列番号,アミノ酸を設定

ファイル形式

オプション

ショートオプション(1 ハイフン + 1 文字)のみ使えます.
bpeptgen i:o:sm:p:a:c:rbhv

生成するペプチドについて

生成するペプチドは,OpenBabel でエネルギー極小化しています.
これは,側鎖どうしの空間的な重なり合いを排除するためです.

使用例

[1] オプションで分子,ペプチド,配列番号,アミノ酸を指定

bmutate -i 入力ファイル -o 出力力ファイル -s -m 分子番号 -p ペプチド番号 -a 配列番号 -c 変異後のアミノ酸(一文字記号)

例:
~$ bmutate -i/home/User/wk/input.pdb -o/home/User/wk/output.pdb -s -m0 -p0 -a1 -cq
とすると,/home/User/wk/input.pdb の第 0 番めの分子の第 0 番めのペプチドの第一番めのアミノ酸を Q に変異した /home/User/wk/output.pdb というファイルが生成します.

[2] 乱数で,分子,ペプチド,配列番号,アミノ酸を設定

bmutate -i 入力ファイル -o 出力力ファイル -r

例:
~$ bmutate -i/home/User/wk/input.pdb -o/home/User/wk/output.pdb -r
とすると,/home/User/wk/input.pdb のどれかのアミノ酸が変異した /home/User/wk/output.pdb というファイルが生成します.

[3] 乱数で,分子,ペプチド,配列番号.オプションでアミノ酸を指定

bmutate -i 入力ファイル -o 出力力ファイル -r -c 変異後のアミノ酸

例:
~$ bmutate -i/home/User/wk/input.pdb -o/home/User/wk/output.pdb -r -cq とすると,/home/User/wk/input.pdb のどれかのアミノ酸が Q に変異した /home/User/wk/output.pdb というファイルが生成します.
入力されるペプチドがすべて c オプションで指定されるアミノ酸である場合は,エラーとしています.

[4] 乱数を BLOSUM62 で重み付けし,分子,ペプチド,配列番号,アミノ酸を設定

bmutate -i 入力ファイル -o 出力力ファイル -r -c 変異後のアミノ酸

例:
~$ bmutate -i/home/User/wk/input.pdb -o/home/User/wk/output.pdb -b とすると,/home/User/wk/input.pdb のどれかのアミノ酸が変異した /home/User/wk/output.pdb というファイルが生成します.
変異は,乱数を BLOSUM62 で重み付けして決定されます.

BLOSUM62 を利用した重み付け

考え方

乱数で変異を起こすよりも多少なりとも現実を反映するように,BLOSUM62 行列を次のように変形してみました.
これを第 1 版としておきます.

  1. 行列の各スコアについて,2(スコア - 1)を計算してスコアをオッズ比に戻す
  2. オッズ比を,「アミノ酸 X」 から「アミノ酸 Y」 への変異しやすさ(変異性向)と解釈する.なお,コーディング上の都合,オッズ比を 100000 倍している.
  3. 同じアミノ酸どうしの変異性向は 0 とする.これはプログラム上の無駄を省くため
  4. 行の合計を,あるアミノ酸が他のアミノ酸に変異する変異性向と解釈する
  5. 行の合計の合計(== 行列の総計 == オッズ比の総計)を,アミノ酸全体の変異性向と解釈する

計算結果 1.あるアミノ酸の変異確率

行の合計を行列の総計で割った値を,あるアミノ酸の変異確率と解釈します.
言い換えると,ペプチドに一回変異が起こるとしたら,各アミノ酸が何 % の確率で変異するかということです.
その値を表に示します(数値は %).
Cys や Pro は低い値となりました.

CSTPAGNDEQHRKMILVFYW
2.25.64.22.14.32.35.14.56.46.14.94.85.45.76.95.66.66.07.83.4

計算結果 2.Cys が他のアミノ酸に変異する際の変異確率

Cys を例にして考えてみます.

Cys 行の各変異性向を行の総和で割った値を,Cys の変異確率と解釈します.
これは,Cys が変異するとしたら,何 % の確率でそれぞれのアミノ酸に変異するかということです.
その値を表に示します(数値は %).
Cys が変異するとすれば,Ala に変異する確率が最大で,続いて Met,Ile,Leu,Val となりました.

CSTPAGNDEQHRKMILVFYW
0.08.68.62.217.22.22.22.21.12.22.22.22.28.68.68.68.64.34.34.3

すべてのアミノ酸について計算してみると…

F → Y が 50.2% だとか,V → I が 45.7% だとか,なんとなくそれらしい確率になりました.
ただし,逆方向の変異は異なる値になっています.

-CSTPAGNDEQHRKMILVFYW
C0.08.68.62.217.22.22.22.21.12.22.22.22.28.68.68.68.64.34.34.3
S3.40.013.43.413.46.713.46.76.76.73.43.46.73.41.71.71.71.71.70.8
T4.417.80.04.48.92.28.94.44.44.42.24.44.44.44.44.48.92.22.22.2
P2.28.98.90.08.94.44.48.98.98.94.44.48.94.42.22.24.41.12.21.1
A8.817.68.84.40.08.82.22.24.44.42.24.44.44.44.44.48.82.22.21.1
G2.016.04.04.016.00.016.08.04.04.04.04.04.02.01.01.02.02.02.04.0
N0.914.67.31.81.87.30.014.67.37.314.67.37.31.80.90.90.90.91.80.5
D1.18.44.24.22.14.216.80.033.78.44.22.14.21.11.10.51.11.11.10.5
E0.45.92.92.92.91.55.923.40.023.45.95.911.71.50.70.71.50.71.50.7
Q0.86.13.13.13.11.56.16.124.40.06.112.212.26.10.81.51.50.83.11.5
H1.03.81.91.91.91.915.43.87.77.70.07.73.81.91.01.01.03.830.81.9
R1.03.93.91.93.91.97.81.97.815.57.80.031.13.91.01.91.01.01.91.0
K0.96.93.43.43.41.76.93.413.813.83.427.60.03.40.91.71.70.91.70.9
M3.33.33.31.63.30.81.60.81.66.61.63.33.30.013.126.213.16.63.33.3
I2.71.42.70.72.70.30.70.70.70.70.70.70.710.80.021.743.45.42.70.7
L3.41.73.40.83.40.40.80.40.81.70.81.71.726.926.90.013.46.73.41.7
V2.91.45.71.45.70.70.70.71.41.40.70.71.411.445.711.40.02.92.90.7
F1.61.61.60.41.60.80.80.80.80.83.10.80.86.36.36.33.10.050.212.5
Y1.21.21.20.61.20.61.20.61.22.419.21.21.22.42.42.42.438.30.019.2
W2.81.42.80.71.42.80.70.71.42.82.81.41.45.51.42.81.422.144.10.0