在txt文件中添加唯一序列的计数值

时间:2016-02-23 07:45:16

标签: python

在2个.txt文件中,我有2列,每列有相似的序列,每个文件中的第二列都是计数  文件的一部分,

    NNNNCGGTTGNGGTATGG      1
    NANNTGTGACCATGAATG      1
    NGNNTGAGTCGTACGTTT      1
    GTACACTGTCCAACGCTG      1
    ACCCTCCCGCGTGCGCTG      1
    TGNNNACAGNCANAACCC      8
    TGNNNACAGNCANAACCA      3
    GNNNGNGGGGGCGNGNGT      1
    NNNCGACTAAACNCGTTG      1
    TGNNNACAGNCANAACCC      8

我想在每次序列发生时添加计数值。 例如,“NNNNCGGTTGNGGTATGG”每次出现3次计数1,因此该序列读取的总读取计数为3。 我终于希望检索每个序列的读数。 (这不需要希望熊猫)

2 个答案:

答案 0 :(得分:1)

Python为此提供了一种数据类型:collections.Counter

答案 1 :(得分:1)

使用Python的Counter执行此操作,如下所示,其中data1.txtdata2.txt是您的两个输入源:

from collections import Counter

counts = Counter()

for filename in ['data1.txt', 'data2.txt']:
    with open(filename) as f_input:
        for line in f_input:
            data, count = line.split()
            counts[data] += int(count)

for data, count in counts.items():
    print(data, count)

这将显示以下内容:

NGNNTGAGTCGTACGTTT 1
NNNCGACTAAACNCGTTG 1
TGNNNACAGNCANAACCC 16
GNNNGNGGGGGCGNGNGT 1
TGNNNACAGNCANAACCA 3
NNNNCGGTTGNGGTATGG 1
ACCCTCCCGCGTGCGCTG 1
GTACACTGTCCAACGCTG 1
NANNTGTGACCATGAATG 1