DISOPRED の結果を FASTA に変換する

DISOPREDを使って Disorder 領域を予測するとそれらしいグラフとテキストファイルが作成されます。可用性を考えて FASATA 形式に変換してみました。

環境

Python 3.x ( csv モジュールは組み込みなので import だけで大丈夫)


形式

DISOPRED の .comb ファイルのフォーマットは以下の通り。

#で始まるヘッダ行に続いて残基ごとの「残基番号」「アミノ酸残基」「1文字表記」「スコア」が記載されています。

#         ----- DISOPRED version 3.1 -----
# Disordered residues are marked with asterisks (*)
#    Ordered residues are marked with dots (.)
    1 M * 0.97
    2 E * 0.98
    3 E * 0.97
    4 P * 0.98
    5 Q * 0.97
    6 S * 0.97
 

ソースコード

import csv

protein_id = sys.argv[1]

sequence = f">{protein_id}\n"

with open(f"{protein_id}.comb") as f:
    reader = csv.reader(f, delimiter=" ", skipinitialspace=True)
    for line in reader:
        if line[0] == "#":
            continue
        sequence += line[2]

with open(f"{protein_id}_diso.fa", mode="w") as f:
    f.write(sequence)

解説

#で始まる行を読み飛ばしながら、1文字表記をストックしていってファイルに書き込むだけ。

もし、判定の閾値を変更したいのであれば、、、

      #sequence += line[2]
      sequence += "*" if float(line[2]) > 0.8 else "."

という感じになると思います。

おわり

コメント

このブログの人気の投稿

Excelで近似直線の傾きと切片を得る

塩基配列のデータを扱うときは専用エディタ ApE を使おう

Illustrator で稲妻マークを描く