免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4965 | 回复: 15
打印 上一主题 下一主题

求指教!遍历序列的问题!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-27 15:00 |只看该作者 |倒序浏览
那个源文件中有82行,偶数行是序列的名字,奇数行是序列,我依此建了一个哈希表,不知道对不对,然后我要做的就是将每行序列中的GC含量计算出来并保存在数组 @Tem 中(这是一个变量名,存的是偶数行的标签),但我得出的结果一直出错,我不知道错在哪,把源码贴出来,忘各位前辈指教啊。

论坛徽章:
0
2 [报告]
发表于 2014-03-27 15:04 |只看该作者
open  Demo , "plum_0630\.scafSeq\.FG";
@array = <Demo>;

@contentlist = "";
$initial = 0;
$length = 250;
$totallength = 0;
$i = 0;

my %scaffoldarray;

foreach $str(@array)#遍历数组
{
        if($i%2 == 1)#奇数,碱基序列
        {
               
                $scaffoldarray{$Tem} = $str;#将奇偶数行的结合起来存入哈希表中
                my $totallength = length $str;
                print "$totallength  ";
                while($initial+250<$totallength)#以250为一个单位
                {
                        my $part = substr($str,$initial,250);#截取长度
                        $GCnumber = $part = tr/GC/GC/;#计算GC含量
                        push @Tem,$GCnumber;#存入数组中
                        $initial += 250;
                        print "$i";
                }
       
                $i++;
        }
        else #偶数行,名字
        {
                $scaffoldarray{$str} = '';
                my $Tem = $str;#Tem是临时变量,存偶数组名字
                @$str = "";
                $i++;
        }
}
print scalar keys %scaffoldarray;

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
3 [报告]
发表于 2014-03-27 15:23 |只看该作者
回复 2# 445236708


    兄弟, 没数据你让别人怎么测试你的代码呀 ?!  

论坛徽章:
0
4 [报告]
发表于 2014-03-27 16:17 |只看该作者
序列压缩后还有15兆,上传不了,我就设了个百度网盘的分享链接,可以从那下载,劳驾了
http://pan.baidu.com/s/1pJsb9Dh
回复 3# q1208c


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
5 [报告]
发表于 2014-03-27 16:19 |只看该作者
回复 4# 445236708


   

你贴个 前面 10行 20行的, 够大家测试就行了呀. 谁要你的全部数据干嘛呀.

论坛徽章:
0
6 [报告]
发表于 2014-03-27 16:20 |只看该作者
回复 3# q1208c


    万一人家是个姑娘呢~~~{:2_176:}

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
7 [报告]
发表于 2014-03-27 16:25 |只看该作者
提供一个不知道可行不可行的思路
  1. name2   1 1 0 0 0
  2. name1   0 1 1
  3. name3   2 2 2
复制代码
  1. #!/usr/bin/perl -w

  2. my $length = 2;   # 截取长度 250
  3. my %data;

  4. while (<DATA>) {
  5.     chomp;    # 奇数行, $_: 碱基序列
  6.     # 计算GC含量, 存入数组 @GC
  7.     my @GC = map { tr/GC// } /(.{1,$length})/g;
  8.     chomp( my $name = <DATA> ); # 偶数行, $name: 序列的名字
  9.     $data{$name} = [@GC]; # 将奇偶数行的结合起来存入哈希表中
  10. }
  11. while ( my ( $name, $gc ) = each %data ) {
  12.     print "$name\t@$gc\n";
  13. }

  14. __DATA__
  15. ABCDCD
  16. name1
  17. CDCDAAAAA
  18. name2
  19. GCGCGC
  20. name3
复制代码

论坛徽章:
0
8 [报告]
发表于 2014-03-27 16:29 |只看该作者
洒家就是汉子,哈哈哈回复 6# TrishaTie


   

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
9 [报告]
发表于 2014-03-27 16:30 |只看该作者
回复 6# TrishaTie

我是真没见过写代码的姑娘.
   

论坛徽章:
0
10 [报告]
发表于 2014-03-27 16:30 |只看该作者
这么精致的代码,给跪了,努力学习ing,感谢这么用心的回复 回复 7# pitonas


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP