如何在perl中用hash将如下序列名称和序列内容一一赋值

我有一些序列,类似下面这样,序列名称是已>开头,然后换行后跟的是序列(由ATCG组成,很长很长),如何用hash的key和value一一赋值,好让我调用来计算>bac_1... 我有一些序列,类似下面这样,序列名称是已>开头,然后换行后跟的是序列(由ATCG组成,很长很长),如何用hash的key和value一一赋值,好让我调用来计算>bac_165AAAAAACAACCTCTCTACCTGTTC>bac_173AAAAAACAGACTGCAGTTGACGAT >act_333AAAAAACAATTAACTGTGGACGGA 如何编写一个perl程序,用&key来存序列的名称,然后用&value来存序列本身,然后放在hash里面。如何装在hash里面,让key和value对应。麻烦了~~~我自己写的 展开
 我来答
百度网友c9e795dda
2016-09-21 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1150万
展开全部

嗯, 你总算学会问问题了! 试试这麼写吧...

use strict;
my %h;
my $filename = "seq.txt";

open my $seqFile, $filename or die "$! Can't open $filename";
my @temp = <$seqFile>;
close $seqFile;

chomp @temp;
s/^>// foreach @temp;
%h = @temp;

# 现在你可以
print $h{act_333}; # 打印出: AAAAAACAATTAACTGTGGACGGA 
print $h{bac_165}; # 打印出: AAAAAACAACCTCTCTACCTGTTC

# 又或者
foreach my $key ( keys %h ) {
 print "$key => $h{$key}$/"
} # 打印出所有 "键-值" 对

 补充一下..

  1. &xxx 在 perl 里是呼叫涵数 (sub) 的语法, 而不是 hash

  2. 存取 hash 的语法是 $h{someKey} (读), 或者 $h{someKey} = 1 (写)

追问

谢谢你,能帮我再看看吗

/(ㄒoㄒ)/~~我的seq.txt里序列名称是这样的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式