私は単純に、このようなパターンを含むHUGEファイル内の単一ヌクレオチド頻度(A、T、C、G)を計算しようとしています:TTTGTATAAGAAAAAATAGG。私のようなファイル全体の出力の1行与えるだろうゲノムファイル全体から1つの周波数行列を計算するには?
:ここ
The single nucleotide frequency matrix of T.volcanium Genome is: {'A': [234235], 'C': [234290], 'G': [32456], 'T': [346875]}
は私の(ファイルパスのない、オープン、クローズおよびメイン)コードである
def freq_dict_of_lists_v1(dna_list):
n = max([len(dna) for dna in dna_list])
frequency_matrix = {
'A': [0] * n,
'C': [0] * n,
'G': [0] * n,
'T': [0] * n,
}
for dna in dna_list:
for index, base in enumerate(dna):
frequency_matrix[base][index] += 1
return frequency_matrix
for line in file:
dna_list = file.readline().rstrip("\n")
frequency_matrix = freq_dict_of_lists_v1(dna_list)
print("The single nucleotide frequency matrix of T.volcanium Genome is: ")
pprint.pprint(frequency_matrix)
これは私の出力です。
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [21], 'C': [10], 'G': [11], 'T': [18]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [31], 'C': [6], 'G': [4], 'T': [19]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [23], 'C': [9], 'G': [10], 'T': [18]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [17], 'C': [8], 'G': [9], 'T': [26]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [15], 'C': [13], 'G': [9], 'T': [23]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [21], 'C': [12], 'G': [10], 'T': [17]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [20], 'C': [9], 'G': [12], 'T': [19]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [15], 'C': [15], 'G': [10], 'T': [20]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [20], 'C': [11], 'G': [10], 'T': [19]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [26], 'C': [13], 'G': [7], 'T': [14]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [12], 'C': [13], 'G': [13], 'T': [22]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [20], 'C': [16], 'G': [9], 'T': [15]}
The single nucleotide frequency matrix of T.volcanium Genome is:
{'A': [22], 'C': [12], 'G': [6], 'T': [20]}
したがって、1行に1行ずつ計算しています。 私はforループを取り出すか、readlinesを離そうとしましたが、ファイル内の1行だけの出力が1行しか得られません。ファイル全体ではありません。
私はこれを考え直しているように感じます。私は、ファイル全体を読んで、1つの出力を合計周波数で出力する簡単な方法があると確信しています...どんな洞察も感謝しています。
実際に各行を繰り返し処理していることを確認してください。毎回 'line'を出力します。 – TankorSmash