rebecca 童鞋还是第一次问我数据处理的问题阿。其实我对这种问题是比较感兴趣的。
数据是这样子的。
例子文件,只取了一小部分数据:get2_nr.out
ZM_BFa0062B01 bzip ZM_BFa0063A16 bzip ZM_BFa0063M13 myc ZM_BFa0063N22 myc ZM_BFa0063O17 bzip ZM_BFa0066C13 myb ZM_BFa0066F21 bzip ZM_BFa0068F07 bzip ZM_BFa0068F15 myb ZM_BFa0068N18 myb ZM_BFa0068P14 bzip ZM_BFa0069B08 myb ZM_BFa0070G13 myb ZM_BFa0071G19 bzip ZM_BFa0071G21 myb ZM_BFa0072O19 bzip ZM_BFa0073F20 myb ZM_BFa0073F20 myc ZM_BFa0073O09 myb ZM_BFa0073O09 myc ZM_BFa0078K13 dre ZM_BFa0078M22 bzip ZM_BFa0079N03 erf ZM_BFa0079P04 erf ZM_BFa0083F19 myb ZM_BFa0086H17 myb ZM_BFa0087C10 bzip ZM_BFa0090M23 bzip ZM_BFa0090M23 erf ZM_BFa0090M23 myc ZM_BFa0097N21 bzip ZM_BFa0098A07 erf ZM_BFb0001A15 bzip ZM_BFb0001A21 abf ZM_BFb0001A21 erf ZM_BFb0001A22 bzip ZM_BFb0001B09 bzip ZM_BFb0001B09 erf ZM_BFb0001B13 bzip
Rebecca给出的分析是这样子的:
第一列是基因名称,第二列是转录因子
同一个基因可能有几类转录因子的结合位点,因此,统计不同的情况
- 1. 一个基因只有一个转录因子,且这个转录因子是bzip。同理,统计,myb,myc,erf,abf,dre,6种情况
- 2. 一个基因有2个转录因子,那么就可能是6个中任意2个的组合,15种情况
- 3.一个基因上有3个转录因子,就是6个中任意三个,20种情况
- 4.一个基因上有4个转录因子,就是15种
- 5.一个基因上有5个转录因子,6种情况
如果枚举的话,貌似太多了
输出的结果是:直接的每种类型的基因个数就行了(即类型-》个数)
例子代码:temp.pl
#!/usr/bin/perl while(<>){ chop; ($id,$type) = split("\t"); chop($type); #要用两次chop才能把换行符去掉。奇异。。(较旧的perl版本可能得改为chomp($type);) $gene{$id} .= $type . "\t"; #丢给hash了 } undef @arr; foreach $id (sort keys %gene) { @type = sort(split("\t", $gene{$id})); #把type变为数组。用sort函数。避免不必要的重复 $type = join("-",@type); push (@arr,$type); #再把所有的type丢进一个数组里 } $hash{$_}++ for @arr; #从type的数组里统计重复和个数 print "$_\t$hash{$_}\n" for (keys %hash); #输出
如果按Rebecca的思路枚举的话。的确是需要更加的代码来完成。
幸好最后还是想出了这样一个用hash来完成的办法。也算是可喜,最主要的参考还是 perl语言编程 里的一段代码。求平均值的。也有着类似的求解过程。
28条回应:“用perl统计一个六种类型的数据”
天书,火星文还是我是火星人?
perl语言而已嘛。哈哈 [抱拳]
哈哈,似曾相识的数据啊
昨天被攻击了么?还是当了·· [疑问]
哈哈。这都给你碰到了。昨晚在换空间。 :)
来问候下博主。。加油!!
所以的语言都是相通的,我用的是PHP
主页:www.31165.com
又一个技术型的高手来搞seo,这样很有优势哦。
完全看不懂
看不懂啊 !
很深奥
看不懂,还是顶一下。
只是略懂点,不知道博主玩得这么好,学习了!
编程语言就是有点难得看得懂!
我发现老大是什么都会
Hash,真的好有用。我昨天看一个脚本,用hash,一下在清楚了。
不知道哈希数组能搞定不?@{$hash{$id}};
哈哈,太久没来,发现网站都变了
嘻嘻,分析的很细致
不懂啊!!!!! 我知识太少了 !!!!!
很好。。。支持
本文详细出处参考:http://liucheng.name/1810/
用hash 一下就能理解了哦
太专业了。
是啊。专业
有点看不懂呢。。
我是来取经的
没有正确答复或连接的主机没有反应,连接错误:超出内存(分配17301504)(尝试分配122880字节)/家庭/ yunim的/柳城/可湿性粉剂/资产净值的菜单的template.php上线224
你看下你的站点日志。冒似有点问题
不怎么清楚熟悉!