将序列导出为fasta宽格式

时间:2013-02-21 22:58:20

标签: perl bioinformatics bioperl

我正在尝试使用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);
}

1 个答案:

答案 0 :(得分:2)

Bio :: SeqIO :: fasta提供width method来指定如何格式化写入的FASTA记录:

while (my $seq = $seqin->next_seq) {
    $seqout->width($seq->length);
    $seqout->write_seq($seq);
}

当然,如果你的序列有一些最大尺寸,你可以只放一个

$seqout->width(5000);
在循环之前

左右。