利用Perl遍历哈希

上次的问题不太明确,这次重新提问一下,谢谢各位老师!

读入cucumberprotein.fasta文件,创建一个id和序列对应的hash, 遍历该hash,并输出到一个新创建的文件中

请先 登录 后评论

最佳答案 2018-07-27 15:11

处理fasta序列最好用bioperl包,非常好用,下面是代码部分,其实你不用遍历hash,直接边读序列边输出就好了:

也不清楚你要的意图,下面的代码是把fasta序列存储到%keep中,并输出到普通文本;遍历hash可参考:https://www.omicsclass.com/question/99


 use Bio::SeqIO;
use Bio::Seq;
$in  = Bio::SeqIO->new(-file => "cucumberprotein.fasta" ,
                               -format => 'Fasta');
#想输出fasta序列建立$out $out = Bio::SeqIO->new(-file => ">out.fa" ,
                               -format => 'Fasta'); #不想输出fasta序列建立OUT,普通文件句柄; open OUT,">out.txt" or die "$!"; #建立空hash
my%keep=();


while ( my $seq = $in->next_seq() ) {
            my($id,$sequence,$desc)=($seq->id,$seq->seq,$seq->desc);
            $keep{$id}=$sequence;
            print OUT "$id\t$sequence\n";            $out->write_seq($seq);
}
        
$in->close();
$out->close(); close(OUT);


perl的课程有可以学习一下:

perl入门

perl高级


请先 登录 后评论

其它 0 个回答

  • 2 关注
  • 0 收藏,3773 浏览
  • 小学生 提出于 2018-07-25 10:38

相似问题