擅长:python、mysql、java
<p>因为这是更好的使用生物圈</p>
<pre><code>from Bio import SeqIO
mask = ["1"==_.strip() for _ in open("mask.txt")]
seqs = [seq for seq in SeqIO.parse(open("input.fasta"), "fasta")]
seqs_filter = [seq for flag, seq in zip(mask, seqs) if flag]
for seq in seqs_filter:
print seq.format("fasta")
</code></pre>
<p>你会得到:</p>
^{pr2}$
<p><strong说明</p>
<p><em>parse fasta:</em>格式fasta可能有几行序列(check<a href="https://stackoverflow.com/tags/fasta/info">fasta format</a>),最好使用专门的库来读(parser)和写输出</p>
<p><em>掩码:</em>我读取de mask文件并转换为布尔值<code>[False, True, True]</code></p>
<p><em>filter</em>:对每个与他的掩码匹配的序列使用zip函数,下面我使用列表理解进行过滤</p>