QIIME请求此(here)关于它作为输入接收的fasta文件:
该文件是FASTA文件,序列采用单行格式.也就是说,序列不会分成特定长度的多行,而是整个序列占据一行.
Bio.SeqIO.write当然遵循format recommendations,并且每隔80个bps分割序列.
我可以写自己的作家来编写那些“单行”快速 – 但我的问题是,如果有一种方法我错过了让SeqIO这样做.
解决方法:
BioPython的SeqIO模块使用FastaIO子模块以FASTA格式读写.
FastaIO.FastaWriter类每行可以输出不同数量的字符,但接口的这部分不会通过SeqIO公开.您需要直接使用FastaIO.
所以不要使用:
from Bio import SeqIO
SeqIO.write(data, handle, format)
使用:
from Bio.SeqIO import FastaIO
fasta_out = FastaIO.FastaWriter(handle, wrap=None)
fasta_out.write_file(data)
要么
for record in data:
fasta_out.write_record(record)