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 "."
という感じになると思います。
おわり
コメント
コメントを投稿