[Py017] 剔除含N序列-any/all
2018-11-12 本文已影响29人
安哥生个信
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())]