1

私は、FASTQファイルを読み込んで、このファイルのシーケンスあたりの N の量を与えるプログラムに取り組んでいます。1行あたりのNの数をなんとか取得し、これらをリストに入れました。問題は、ファイル内の N の合計数を合計するために 1 つのリスト内のすべての数字が必要ですが、それらは独自のリストに出力されることです。

C:\Users\Zokids\Desktop>N_counting.py test.fastq
[4]
4
[3]
3
[5]
5 

これは私の出力、リストとリスト内の合計金額です。リストを手動で結合する方法を見てきましたが、何百ものシーケンスを持つことができるので、それはできません。

def Count_N(line):
    '''
    This function takes a line and counts the anmount of N´s in the line
    '''
    List = []
    Count = line.count("N") # Count the amount of N´s that are in the line returned by import_fastq_file
    List.append(int(Count))

    Total = sum(List)
    print(List)
    print(Total)

これは私がコードとして持っているもので、別の関数が行を選択します。

誰かがこれで私を助けてくれることを願っています。前もって感謝します。

4

2 に答える 2

1

List関数で定義している は複数のアイテムを取得することはないため、あまり役に立ちません。代わりに、おそらくreturn関数からカウントし、呼び出し元のコード (おそらくある種のループで実行されている)appendに独自のリストの値を渡す必要があります。もちろん、関数にはあまり意味がないので、その内容をループに移動することもできます!

例えば:

list_of_counts = []
for line in my_file:
    count = line.count("N")
    list_of_counts.append(count)
total = sum(list_of_counts)
于 2016-04-03T15:56:46.603 に答える