2015/11/08

Protein Data Bank ファイルの vim 用 syntax ファイルを作ったよとか

仕事で分子情報を扱っている無銘闇人です。

さて、今回は誰の役に立つか分かりませんが、タイトルの通り、Protein Data Bank 形式 (*.pdb) の syntax をハイライトする vim ファイルを作ったので公開しました。
ダウンロードはこちらから。

Protein Data Bank (PDB) 形式のファイルは、タンパク質や DNA の構造を記述したテキストファイルです。中身は、"ATOM" か "HETATM" が行頭に記述された行では 1 行 1 原子で、文字数単位で区切られたフィールドで座標やら原子名やらが記述されています。

よく分子シミュレーションのテストに使われる TrpCage (PDB code: 1L2Y) を例にとると、
ATOM      1  N   ASN A   1      -8.901   4.127  -0.555  1.00  0.00           N  
ATOM      2  CA  ASN A   1      -8.608   3.135  -1.618  1.00  0.00           C  
ATOM      3  C   ASN A   1      -7.117   2.964  -1.897  1.00  0.00           C  
ATOM      4  O   ASN A   1      -6.634   1.849  -1.758  1.00  0.00           O  
ATOM      5  CB  ASN A   1      -9.437   3.396  -2.889  1.00  0.00           C  
ATOM      6  CG  ASN A   1     -10.915   3.130  -2.611  1.00  0.00           C
 :
 :
1 行目が、1 番目の原子が 1 番目の残基であるアスパラギンの N 原子で、座標が (-8.901, 4.127, -0.555) にある原子を示しています。
詳しい仕様は以下のページを参照してください。
wwPDB Format version 3.3: Coordinate Section

これをシミュレーションで扱い、その結果をサーバ上の vim で開くことが多いのですが、vim ではデフォルトで、prolog 形式と誤認してしまっているようで、右の画像のように syntax の色が見づらくなってしまいます。

ただ、すべてが全てこうなるわけではなく、原子タイプに「'」が含まれると、色がまだらになってしまうようです (画像は DNA の構造を示した 1BNA という構造)。


PDB 自体は文字数で区切っているだけのファイルなので、誰かが vim 用の syntax ファイルを作っているかと思ったのですが、「Vim - General - Syntax highlight: keywords and columns in PDB」や「Vim syntax highlighting file for the NWCHEM GitHub」で紹介されている pdb.vim は機能せず…。

ということで、作成してみました。

使い方は、ここからダウンロードして、ホームディレクトリの vim 設定ディレクトリ ($HOME/.vim/syntax) に入れます。

そして、vim 設定ファイル ($HOME/.vimrc) に以下の行を追加します。
au BufRead,BufNewFile *.pdb set filetype=pdb

これで、PDB が右の画像のように綺麗に色分けされるはずです。


2 件のコメント:

  1. pdbファイルですかー。懐かしいですね。
    学生時代に.NETでオブジェクトモデルを設計しようとして断念した思い出が...

    返信削除
    返信
    1. 製薬会社などでは .sdf ファイルなどで構造を扱っているところもあるようですが、.pdb はまだまだ現役ですね。結合様式 (二重結合など) も記述できる .sdf の方がソフト依存にならなくていいんですけどね。

      削除