擅长:python、mysql、java
<p>我建议您使用<a href="http://biopython.org/" rel="nofollow noreferrer">Biopython</a>,这将为您省去很多麻烦,因为它为这些文件格式提供了很好的解析器,这些文件格式不仅可以处理标准情况,还可以处理多行fasta。在</p>
<p>下面是一个用相应的fasta序列行替换fastq序列行的实现:</p>
<pre><code>from Bio import SeqIO
fasta_dict = {record.id: record.seq for record in
SeqIO.parse('Input.fasta', 'fasta')}
def yield_records():
for record in SeqIO.parse('Input.fastq', 'fastq'):
record.seq = fasta_dict[record.id]
yield record
SeqIO.write(yield_records(), 'DesiredOutput.fastq', 'fastq')
</code></pre>
<p>如果您不想使用头而只依赖顺序,那么解决方案就更简单、更节省内存(只需确保记录的顺序和数量相同即可),无需先定义字典,只需将记录一起迭代:</p>
^{pr2}$