上次的问题不太明确,这次重新提问一下,谢谢各位老师!
读入cucumberprotein.fasta文件,创建一个id和序列对应的hash, 遍历该hash,并输出到一个新创建的文件中
处理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高级》
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!