Categorized | 数据分析

Tags | ,

用perl统计一个六种类型的数据

Posted on 09 五月 2010 by 柳城 ,阅读 306

 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语言编程 里的一段代码。求平均值的。也有着类似的求解过程。

转载请注明 : 来源于 用perl统计一个六种类型的数据 | 柳城

赞助商

24条评论 于 “用perl统计一个六种类型的数据”

  1. 苏扬 苏扬 Says:

    天书,火星文还是我是火星人?

    [回复]

    柳城
    柳城 回复:

    perl语言而已嘛。哈哈 [抱拳]

    [回复]

  2. 路人假 路人假 Says:

    哈哈,似曾相识的数据啊

    [回复]

  3. 二十六公斤 二十六公斤 Says:

    昨天被攻击了么?还是当了·· [疑问]

    [回复]

    柳城
    柳城 回复:

    哈哈。这都给你碰到了。昨晚在换空间。 :)

    [回复]

  4. 广州网站建设 广州网站建设 Says:

    来问候下博主。。加油!!

    [回复]

  5. 31165淘宝导购 31165淘宝导购 Says:

    所以的语言都是相通的,我用的是PHP
    主页:www.31165.com

    [回复]

  6. 1905电影网 1905电影网 Says:

    又一个技术型的高手来搞seo,这样很有优势哦。

    [回复]

  7. 如何美容 如何美容 Says:

    完全看不懂

    [回复]

  8. www.taobao.com www.taobao.com Says:

    看不懂啊 !

    [回复]

  9. BoKeam BoKeam Says:

    很深奥

    [回复]

  10. 传奇外挂下载 传奇外挂下载 Says:

    看不懂,还是顶一下。

    [回复]

  11. 牙齿黄 牙齿黄 Says:

    只是略懂点,不知道博主玩得这么好,学习了!

    [回复]

  12. 传奇服务端 传奇服务端 Says:

    编程语言就是有点难得看得懂!

    [回复]

  13. 电脑资讯网 电脑资讯网 Says:

    我发现老大是什么都会

    [回复]

  14. sun sun Says:

    Hash,真的好有用。我昨天看一个脚本,用hash,一下在清楚了。

    [回复]

  15. bio_bird bio_bird Says:

    不知道哈希数组能搞定不?@{$hash{$id}};

    [回复]

  16. 服装招聘职位 服装招聘职位 Says:

    哈哈,太久没来,发现网站都变了

    [回复]

  17. 浙师大自考网 浙师大自考网 Says:

    嘻嘻,分析的很细致

    [回复]

  18. 电商圈 电商圈 Says:

    不懂啊!!!!! 我知识太少了 !!!!!

    [回复]

  19. 清远信息港 清远信息港 Says:

    很好。。。支持
    本文详细出处参考:http://liucheng.name/1810/

    [回复]

  20. 办英语四级证 办英语四级证 Says:

    用hash 一下就能理解了哦

    [回复]

  21. 去黑头 去黑头 Says:

    太专业了。

    [回复]

  22. qq西游私服 qq西游私服 Says:

    是啊。专业

    [回复]

Leave a Reply

广告招租

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [坏笑] more »

无觅相关文章插件,快速提升流量