ぶぅちゃんズ Advent Calendar 2019担当3日目。
Open Babel Warning in ReadMolecule
修士研究でscPDBのmol2ファイルをpdbファイルにOpen Babelを使って変換するとたまに以下の警告が出力される。
==============================
*** Open Babel Warning in ReadMolecule
This Mol2 file is non-standard. Problem with molecule: 1a4z_NAD_4_protein Cannot interpret atom types correctly, instead attempting to interpret atom type: SM as elements instead.
==============================
*** Open Babel Warning in Translate
Cannot perform atom type translation: table cannot find requested types.
どうやらmol2にはあってpdbにはないアトムタイプがあるっぽいが、それが何かまでは示してくれてない。
面倒だけど、コードを書いてどの原子か該当するのか検出しよう。その前にmol2とpdbフォーマットの概要を述べる。
PDB形式
PDBファイルはProtein Data Bankが提供するタンパク質の全原子の三次元構造などが書かれたデータベースに使用される形式である。例えば、先ほどのタンパク質PDB ID=1A4Zを例に見てみよう。
COMPND 1a4z_NAD_4_protein
AUTHOR GENERATED BY OPEN BABEL 2.4.1
ATOM 1 C VAL A 1 69.260 105.787 -14.273 1.00 0.00 C
ATOM 2 O VAL A 1 69.100 105.538 -15.469 1.00 0.00 O
ATOM 3 CA VAL A 1 68.866 107.142 -13.689 1.00 0.00 C
...
ATOM 30437 SM SM5 A1978 103.664 131.366 21.601 1.00 0.00 Sm
ATOM 30438 SM SM5 A1979 80.008 162.014 22.868 1.00 0.00 Sm
CONECT 1 3 2 20
CONECT 2 1
...
CONECT3043330407
CONECT3043430408
MASTER 0 0 0 0 0 0 0 0 30438 0 30438 0
END
これは、Open Babelがはいたpdbファイルである。PDBで検索するとヘッダーにもっと情報が追加されている。
ATOMフィールドには原子の通し番号、原子名、アミノ酸や核酸の種類、アミノ酸/核酸の通し番号、座標、占有率、温度因子、元素記号が書かれ、CONECTフィールドには原子の通し番号、結合原子の通し番号が記載されている。
立体構造はこんな感じ。(あんま関係ないけど)
MOL2形式
正直なんでこんなにタンパク質立体構造のファイル形式あんねんって感じだ。mol2形式だとタンパク質PDB ID=1A4Zはこんな感じ。
@<TRIPOS>MOLECULE
1a4z_NAD_4_protein
30438 30786 1979 0 0
PROTEIN
NO_CHARGES
@<TRIPOS>ATOM
1 C 69.2600 105.7870 -14.2730 C.2 1 VAL8 0.0000
2 O 69.1000 105.5380 -15.4690 O.2 1 VAL8 0.0000
3 CA 68.8660 107.1420 -13.6890 C.3 1 VAL8 0.0000
...
30437 SM 103.6640 131.3660 21.6010 Du 1978 SM502 3.0000
30438 SM 80.0080 162.0140 22.8680 Du 1979 SM502 3.0000
@<TRIPOS>BOND
1 3 1 1
2 1 2 2
...
30785 30407 30433 1
30786 30408 30434 1
@<TRIPOS>SUBSTRUCTURE
1 VAL8 1 RESIDUE 4 A VAL 0 **** VAL A 8
2 PRO9 17 RESIDUE 4 A PRO 0 **** PRO A 9
...
1978 SM502 30437 GROUP 4 C SM 0 **** SM C 502
1979 SM502 30438 GROUP 4 D SM 0 **** SM D 502
@<TRIPOS>SET
ATOM$GREEN STATIC ATOMS COLORGROUP SYSTEM
265 25147 25149 25151 25152 25153 25154 25166 25168 25170 25171 25172 25173 25185 25187 25189 25190 25191 \
25199 25201 25203 25204 25205 25206 25208 25209 25210 25211 25212 25223 25225 25227 25228 25237 25239 25241 \
...
30369 30370 30372 30374 30376 30378 30380 30381 30384 30386 30392 30393 30395 30397 30399 30401 30402 30403 \
30406 30407 30408
各フィールドの詳細はこちらを参照。ATOMフィールドの原子名がPDBのATOMフィールド原子名に対応していることがわかる。警告が出ているのはここの変換だ。
原子名の比較
エラー通りOpen Babelにより出力されたpdbファイルの原子名がSMとなっているところのmol2原子を取り出す。
Du SM
Du SM
Du SM
Du SM
どうやら、mol2形式ではDuと表記されるアトムタイプがpdbには対応していないようだ。同様の警告が出る他のタンパク質もこのDuが原因っぽい。mol2形式でDuはダミー原子を表す(参考)らしく、Open Babelが適当に代替原子を選んで出力してるらしい。
結論
無視しても良さそうだ。
というか、そもそもなんでPDBに変換しないといけないんだっけ...