+ -
当前位置:首页 → 问答吧 → 求助:刚入门,想请教一个挺简单的问题

求助:刚入门,想请教一个挺简单的问题

时间:2011-06-29

来源:互联网

各位大侠 我刚接触PERL 也没学过C 各种不懂呀
我想计算一条序列上各种氨基酸的数量 然后这个写的 很多错误呀
希望大家帮我改改
谢啦 本人在线等
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;

  4. my $seq = 'ACLKRASFAKSVIGTPEFMAP';
  5. my %AA;
  6. foreach  $seq {
  7.         for( $i=0;$i<length($seq);$i++) {
  8.                 my $aminoAcid= substr($seq,$i,1);
  9.                 my $Key=$aminoAcid."$i";
  10.                 if(exists $AA{$Key}){
  11.                         $AA{$Key} +=1;
  12.                 }
  13.                 else{
  14.                 $AA{$Key}= 1;
  15.                 }
  16.         }
  17. }
  18. while (( $key, $value) = each %AA) {
  19.         print "$key=$value\n";
  20. }
复制代码

作者: CJ妹子   发布时间: 2011-06-29

本人在线等呀

作者: CJ妹子   发布时间: 2011-06-29

$seq =~ /(.)(?{$AA{$1}++})/g;

%AA 中就包含所有计数了

作者: zhlong8   发布时间: 2011-06-29

回复 zhlong8


      能写一下不

作者: CJ妹子   发布时间: 2011-06-29

额 上面那个表情居然这么谄媚
其实  我都跪谢了T T

作者: CJ妹子   发布时间: 2011-06-29

use Data::Dumper;

()= $seq =~ /(.)(?{$AA{$1}++})/g;

print Dumper \%AA

作者: zhlong8   发布时间: 2011-06-29

大师 那个没学过
T T
如果是用一个哈希
key是单词 value是出现次数
每读进一行 判断哈希中是否包含这个key 包含的话对应的value+1 否则将这个单词作为key加到哈希中 value初始化为1
这样做呢?

作者: CJ妹子   发布时间: 2011-06-29