簡體   English   中英

如何在Python中找到相同的序列

[英]How to find identical sequences in Python

我是Python的新手,我想知道如何從Python中的Fasta文件中查找相同的序列。 例如,在這里我有4個記錄序列讀取,如何找到相同的序列並返回其ID? 非常感謝你!!

from Bio import SeqIO
record=list(SeqIO.parse("data/dna.txt", "fasta"))
for i in range(0,len(record)):
    print record[i].id,record[i].seq


seq1 GAATGCATACTGCATCGATA
seq2 CATAAAACGTCTCCATCGCT
seq3 TGCCCAAGTTGTGAAGTGTC
seq4 TGCCCAAGTTGTGAAGTGTC

您可以使用defaultdict編譯每個序列的ID列表,如下所示:

from Bio import SeqIO
from collections import defaultdict
records=list(SeqIO.parse("data/dna.txt", "fasta"))
compilation = defaultdict(list)
for record in records:
    compilation[record.seq].append(record.id)

最簡單的方法是使用dict

from Bio import SeqIO
records = list(SeqIO.parse("data/dna.txt", "fasta"))
d = dict()
for record in records:
    if record.seq in d:
        d[record.seq].append(record)
    else:
        d[record.seq] = [record]
for seq, record_set in d.iteritems():
    print seq + ': (' + str(len(record_set)) + ')'
    for record in record_set:
        print '    ' + record.id

打印像:

GAATGCATACTGCATCGATA: (1)
    seq1
CATAAAACGTCTCCATCGCT: (1)
    seq2
TGCCCAAGTTGTGAAGTGTC: (2)
    seq3
    seq4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM