永发信息网

perl计算每行长度和里面的AUCG

答案:1  悬赏:80  手机版
解决时间 2021-11-09 18:50
perl计算每行长度和里面的AUCG
最佳答案
输出的描述不确切,不清楚是否长度相同的行里,AUCG是单独统计还是合计。下面的程序按合计来处理。
#!/usr/bin/perl
use strict;

my %hash;
open FILE,"aucg.txt";
foreach my $line ()
{
   # 忽略以>开头的行
   next if ($line =~ /^>/);
   # 去除回车换行符
   chop($line) if ($line =~ /[
]$/);
   my $len = length($line);
   # 行数+1
   $hash{$len}->{num} ++;

   # 分别计数
   $hash{$len}->{A} += &count($line, 'A');
   $hash{$len}->{U} += &count($line, 'U');
   $hash{$len}->{C} += &count($line, 'C');
   $hash{$len}->{G} += &count($line, 'G');
}
close FILE;
# 按长度排序输出
foreach my $n (sort keys %hash)
{
   print "长度为$n共有$hash{$n}->{num}:
";
   print "    A: $hash{$n}->{A}
";
   print "    U: $hash{$n}->{U}
";
   print "    C: $hash{$n}->{C}
";
   print "    G: $hash{$n}->{G}
";
   print "
";
}
# 统计字符在字符串中出现的次数
sub count
{
   my ($line,$c) = @_;
   my $num = 0;
   my $len = length($line);
   # 将字符串拆分为数组
   my @str = split(//, $line);
   for (my $i=0; $i<$len; $i++)
   {
        ($str[$i] eq $c) and ($num++);
   }

   return $num;
}追问你好,最后怎么以下列的形式输出到文件里去?
长度 A T C G 总数
18
19
20
21
22
23
24
25
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
夜里睡不着后感觉有一种奇痒
火车快速与特快有什么区别
高德地图中的高速公路加红线的是什么意思
谁能告诉我要不要去见五年前的情人
我是90后,记得小时候看过一部翡翠台日本动画
霞浦县宁德万豪一期建材市场我想知道这个在什
怎么做?要过程。4、5、6题都要。
苏字开头的成语
巧克力能放冰箱吗?
怎么才能把饭店传到百度美食上
求五个基友的网名如题 谢谢了
健身早餐吃牛肉好还是锻炼完吃好?
《新月集(二首)》是哪个国家著名作家所写
销售提成怎么算。
如果一个人连续跑三十多公里路会怎么样
推荐资讯
请问四川双大概什么时候复牌
看图猜成语秃顶看秃山
cor如何描边
红军一至五次反围剿总指挥分别是谁
90道小数乘法列试计算
紫米奶酪面包紫米沙拉酱面包怎么做如何
临港的房子好不好?我想在那买房子,可否给点
买官卖官可以举报吗?
芬兰芬琳漆国内有工厂吗
风水讲解:开门不要见哪些
吉安新运通地址在哪,我要去那里办事,
从解放碑到回兴站怎么坐公交车,最快需要多久
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?