繁体   English   中英

带有clustalw的BioPerl-输出文件

[英]BioPerl with clustalw - outputting file

我有一个perl脚本来自动执行许多多重对齐(我首先仅用一个文件和一个多重对齐来制作脚本-虽然很大。我可以修改多个文件),我想输出结果文件,但是我不确定如何使用AlignIO:到目前为止,我有:

use warnings;
use strict;
use Bio::AlignIO;
use Bio::SeqIO;
use Bio::Tools::Run::Alignment::Clustalw;

my $file = shift or die; # Get filename from command prompt.
my $factory = Bio::Tools::Run::Alignment::Clustalw->new(-matrix => 'BLOSUM');
my $ktuple = 3;
$factory->ktuple($ktuple);

my $inseq = Bio::SeqIO->new(
                    -file => "<$file",
                    -format => $format
                   );

my $seq;
my @seq_array;
while ($seq = $inseq->next_seq) {
    push(@seq_array, $seq);
}

# Now we do the actual alignment.
my $seq_array_ref = \@seq_array;
my $aln = $factory->align($seq_array_ref);

对齐完成后,我有$ aln,这是我想作为fasta文件退出流程的对齐方式-我尝试了类似的方法:

my $out = Bio::AlignIO->new(-file => ">outputalignmentfile",
                         -format => 'fasta');
while( my $outaln = $aln->next_aln() ){
    $out->write_aln($outaln);
}

但这没有用,大概是因为next_aln()方法仅适用于AlignIO事物,而$ aln可能不适用。 所以我需要知道my $aln = $factory->align($seq_array_ref);行生成的是什么my $aln = $factory->align($seq_array_ref); 以及如何将比对的序列输出到文件中。 我的下一步是树估计或网络分析。

谢谢,本

$out->write_aln($outaln); 是写入clustalw行返回的对象以将对象输出到该流所需的唯一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM