DSSPの出力を整形するawkスクリプト

S. Fushinobu

DSSPの出力を、分かりやすいように整形して出力するawkスクリプト。まだ、バグが残っているかも。

  1. 以下の内容をdsspget.awkというファイルにする。
  2. nawk -f dsspget.awk foo.dssp > foo.sum という風にnawkまたはgawkを使う。
  3. foo.dsspは、dsspの出力ファイル。この例では、foo.sumというファイルにリダイレクトで出力している。

BEGIN {cln=0} !($NF=="."||$1=="#") { cln++; a[0,cln]=substr($0, 14, 1); a[1,cln]=substr($0, 17, 1); a[2,cln]=substr($0, 19, 1); a[3,cln]=substr($0, 20, 1); a[4,cln]=substr($0, 21, 1); a[5,cln]=substr($0, 22, 1); a[6,cln]=substr($0, 24, 1); a[7,cln]=substr($0, 25, 1); a[8,cln]=substr($0, 34, 1); } END { wid=70; large=cln/wid; middle=cln/10; for(i=0;i<large-1;i++) { printf("%d-%d\n", i*wid+1, (i+1)*wid); for(j=1;j<=wid;j++) { printf("%d",j%10); if (j%10==0) printf(" "); } printf("\n"); for(k=0;k<=8;k++) { for(j=1;j<=wid;j++) { printf("%s",a[k,i*wid+j]); if (j%10==0) printf(" "); } printf("\n"); } } printf("%d-%d\n", i*wid+1, cln); for(j=1;j<=cln%wid;j++) { printf("%d",j%10); if (j%10==0) printf(" "); } printf("\n"); for(k=0;k<=8;k++) { for(j=1;j<=cln%wid;j++) { printf("%s",a[k,i*wid+j]); if (j%10==0) printf(" "); } printf("\n"); } }


出力例

1-70
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
AGINYVQNYN GNLGDFTYDE SAGTFSMYWE DGVSSDFVVG LGWTTGSSNA ITYSAEYSAS GSSSYLAVYG
    EEEEES GGGSEEEEEG GGTEEEEEEE EEESS EEEE EEESS  S   EEEEEEEE T TSSEEEEEEE
         > >3<<    >> 3<<     >3 3<                            >3 3<
                   >4 44<
                   >5 555<
        SS  SSS     S SS       S S  SS         SS  S            S SSS
    AAAAA      HHHHH     HHHHH          AAA AA         JJJJ          CCCCCCC
                         IIIIII    I   BBBB BBB          KKKKKK       DDDDDD
    AAAAA      BBBBB     BBBBBB    B   AAAA AAA        BBBBBBBB      AAAAAAA
71-140
1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
WVNYPQAEYY IVEDYGDYNP aSSATSLGTV YSDGSTYQVa TDTRTNEPSI TGTSTFTQYF SVRESTRTSG
EETTTTEEEE EEEEESS  T TTTSEEEEEE EETTEEEEEE EEEEEEEEET TEEEEEEEEE EEESS  SEE
                   >3 3<          >33<              >3 3<
                    > 444<
 >5555<
  SSS        SS SS  S SSSS         SSS           S   S SSS           SS  SSS
 C    DDDD DD DD          FF FFF FF  FFFFFF F                eeee ee      JJ
DD    eeee ee                          GGGG GGGG  GGG   GGG GGGGG GGG
AA    AAAA AA AA          AA AAA AA  AAAAAA AAAA  AAA   AAA AAAAA AAA     BB
 
141-182
1234567890 1234567890 1234567890 1234567890 12
TVTVANHFNF WAQHGFGNSD FNYQVMAVEA WSGAGSASVT IS
EE HHHHHHH HGGGT   SS EEEEEEEEEE SSEEEEEEEE E
  >>3<<  > >><<<
  >>>>XX<< <<
           >5555<
   SSSSSSS SSSSS   SS            SSS
JJ                       BBBBBBB   I IIIIII
                      C  CCCCCCC      KKKKK K
BB                    A  AAAAAAA   B BBBBBB B

 

各行の意味は、以下の通り。

  1. 残基番号(N末端残基を1としたもの)の下1桁
  2. アミノ酸
  3. 二次構造(H: αヘリックス, B: β-ブリッジ (ストランド2本からなるβシート), E: β-ラダー (ストランド3本以上からなるβシート), G: 310ヘリックス, I: πヘリックス, T: 水素結合したターン, S: ベンド
  4. 3-ターンヘリックス(310ヘリックス)の水素結合パターン。
  5. 4-ターンヘリックス(αヘリックス)の水素結合パターン。
  6. 5-ターンヘリックス(πヘリックス)の水素結合パターン。
  7. Geometrical bend。屈曲している部分が"S"。
  8. βブリッジのラベル。小文字が平行βブリッジ、大文字が逆平行βブリッジ。
  9. 上に同じ
  10. βシートのラベル


Back