我正在尝试使用BioPerl从GenBank文件中提取CDS和相应的氨基酸序列。脚本如下所示:
while (my $seq_object = $in->next_seq){
for my $feat_object ($seq_object->get_SeqFeatures) {
if ($feat_object ->primary_tag eq "CDS") {
# warn("all tags are ", join ("," , $feat_object->get_all_tags),"\n");
if ($feat_object->has_tag ("protein_id")){
my ($protein_id) = $feat_object->get_tag_values('protein_id');
my ($pseq) = $feat_object->get_tag_values('translation') ;
my ($pepseq) = Bio::Seq->new(-id => $protein_id , -description => $seq_object -> accession_number,
-seq => $pseq);
$out->write_seq($pepseq);
}
}
}
}
我收到错误消息: Filehandle GEN1仅在/Library/Perl/5.12/Bio/Root/IO.pm第533行148行打开。
请帮助我解决这个问题。
提前致谢
答案 0 :(得分:0)
我将此作为答案添加,因为它可能是错误的来源。在为输出创建Bio::SeqIO
对象时,必须遵循open
的常规Perl规则,并指定该文件用于输出。所以,请尝试以下方法:
my $out = Bio::SeqIO->new( -file => ">Oct_test.fasta", -format => 'fasta');
这是一个非常容易忘记的事情,错误信息可能更具描述性。