私は、Python を少し学ぼうとする最初の一歩を踏み出したところです。現在、バイオインフォマティクスの Python スキルを教えることを目的とした Rosalind オンライン コースに取り組んでいます。(ちなみに非常に良いです。参照: rosalind.info)
私は1つの特定の問題に苦しんでいます。次の形式の FASTA 形式のファイルがあります。
>Sequence_Header_1
ACGTACGTACGTACGTACGT
ACGTACGTACGTACGTACGT
>Sequence_Header_2
ACGTACGTACGTACGTACGT
ACGTACGTACGTACGTACGT
ファイルの各エントリ (ヘッダーを除く) で G と C の割合を計算し、この数値を返す必要があります。例:
>Sequence_Header_1
48.75%
>Sequence_header_2
52.43%
これまでの私のコードは次のとおりです。
file = open("input.txt" , "r")
for line in file:
if line.startswith(">"):
print(line.rstrip())
else:
print ('%3.2f' % (line.count('G')+line.count('C')/len(line)*100))
file.close()
これは、私が必要とするほとんどのことを行っています。シーケンスデータが複数行にまたがる場所で問題が発生しています。現時点では、各エントリに対して単一の数値を返すのではなく、ファイル内のすべての行の % GC コンテンツを取得しています。例:
>Sequence_Header_1
48.75%
52.65%
>Sequence_header_2
52.43%
50.25%
複数の行にまたがるデータに数式を適用するにはどうすればよいですか?
前もって感謝します、