【发布时间】:2013-02-21 22:58:19
【问题描述】:
我正在尝试使用 Bio::SeqIO 将对齐的序列一一导出到 fasta 文件。
结果是序列每 60 列被一个新行打破。
如何避免这种情况?
我希望以“宽”格式导出序列,即序列中没有换行符。
我的代码大致是:
use Bio::SeqIO;
my $seqin = Bio::SeqIO->new(-file => "<$fastaFile", '-format' => 'Fasta');
my $outname = fileparse($fastaFile, qr/\.[^\.]*$/) . "_sub.fasta";
my $seqout = Bio::SeqIO->new(-file => ">$outname", '-format' => 'Fasta');
while(my $seq = $seqin->next_seq){
# do something with $seq
$seqout->write_seq($seq);
}
【问题讨论】:
-
愚蠢的想法并没有真正回答这个问题。但是,如果这只是你计划做一次或几次的事情,你可能会拼凑一个单行来删除换行符。例如,从不以“>”开头的行中删除所有换行符。然后,您可以将“>”替换为“\n>”,以在每个标题之前获取换行符。
-
是的,这就是我最终所做的。只是觉得可能有更优雅的方式。
标签: perl bioinformatics bioperl