any()实现了或(OR)运算,而all()实现了与(AND)运算
In[24]: [record.seq for record in SeqIO.parse('xx.fa','fasta')]
Out[24]:
[Seq('AAAAAAAAAATTTTTTTTTTCCCCC', SingleLetterAlphabet()),
Seq('AAAAAAAAAATTTTTTTTTT', SingleLetterAlphabet()),
Seq('AAAAAANNNNTTTTTTTTTT', SingleLetterAlphabet()),
Seq('NNNNNNNNNNNNNNNNNNNNNNN', SingleLetterAlphabet())]
In[25]: [record.seq for record in SeqIO.parse('xx.fa','fasta') if any(base !='N' for base in record.seq)] # 仅剔除全部为N的序列
Out[25]:
[Seq('AAAAAAAAAATTTTTTTTTTCCCCC', SingleLetterAlphabet()),
Seq('AAAAAAAAAATTTTTTTTTT', SingleLetterAlphabet()),
Seq('AAAAAANNNNTTTTTTTTTT', SingleLetterAlphabet())]
In[26]: [record.seq for record in SeqIO.parse('xx.fa','fasta') if all(base !='N' for base in record.seq)] # 剔除含N的序列
Out[26]:
[Seq('AAAAAAAAAATTTTTTTTTTCCCCC', SingleLetterAlphabet()),
Seq('AAAAAAAAAATTTTTTTTTT', SingleLetterAlphabet())]











网友评论