[英]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.