在 Python 上过滤重复序列 [duplicate]

Filter repetitive sequences on Python [duplicate]

提问人:Silvia 提问时间:10/4/2023 最后编辑:Silvia 更新时间:10/4/2023 访问量:77

问:

我有一个这样的 txt 文件:

GAACACGAAGGACGC
GAACACGAAGGACGC
GAACACGAAGGACGC
GAACACGAAGGACGC
GAACACGAAGGACGC
TCTAAGTAGTCAAAA
TCTAAGTAGTCAAAA
TCTAAGTAGTCAAAA
TCTAAGTAGTCAAAA
TCTAAGTAGTCAAAA
TCTAAGTAGTCAAAA
ACGGTGGGAATAAGA
ACGGTGGGAATAAGA
ACGGTGGGAATAAGA
ACGGTGGGAATAAGA
ACGGTGGGAATAAGA
GGGGCGATAATTTGC
GGGGCGATAATTTGC
GGGGCGATAATTTGC
GGGGCGATAATTTGC
GGGGCGATAATTTGC
GGGGCGATAATTTGC

我想过滤掉重复六次的序列并将它们保存在 txt 文件中。我怎样才能在 Python 上做到这一点?对不起,如果这是一个愚蠢的问题。

先谢谢你

我试过了:

ids = open('IDs.txt', 'r')

for id in ids:
    if id is ...

最大的问题是 txt 文件有超过 100k 个唯一序列。我不能一个接一个地去。这就是我被困在这里的原因

python 筛选器 序列

评论

3赞 kiner_shah 10/4/2023
请展示您的尝试。
2赞 vahvero 10/4/2023
collections.Counter
2赞 Tusher 10/4/2023
你的代码在哪里?你堆在哪里?
3赞 Harun Yilmaz 10/4/2023
当然,这不是一个愚蠢的问题,但没有迹象表明你尝试过。所以,这样就太宽泛了,无法回答。还请包括您到目前为止尝试过的内容和失败点

答:

1赞 LetzerWille 10/4/2023 #1
from collections import Counter
lst = []
lst6 = []
with open(r'data.txt', 'r') as f:
    for l in f:
        lst.extend(l.split())

for k,v in Counter(lst).items():
    if v == 6:
        lst6.append(k)

with open(r'data6.txt', 'w') as f:
    for x in lst6:
        f.write(x)
        f.write('\n')

评论

0赞 Silvia 10/4/2023
它奏效了,非常感谢!