24小时热门版块排行榜    

查看: 624  |  回复: 2

xiezhancnu

木虫 (小有名气)

[求助] 另开新帖求perl程序高手指导~~

http://muchong.com/bbs/viewthread.php?tid=4816445
就是这个,我需要一个同时处理3000多个基因的程序,具体内容请点击链接进入另一个帖子,我急用的,呵呵~~~求求求高手赐教,
PS:其实说真的,我perl程序的引用真心不会用,每次一牵扯这种二维数组类型的数据就写不出来,很悲催~~~.,,真心求帮助~~先谢过~~呵呵~~~
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wizardfan

至尊木虫 (著名写手)

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xiezhancnu: 金币+30 2012-08-14 13:11:13
use strict;
use Data:umper;

#create index for names to avoid the situation that two files have different order of gene names
my %idx;
my %idxReverse;
open IN,"pvalue.csv";
my $line = ;
chomp($line);
my @arr = split(",",$line);
my $len = scalar @arr;
for(my $i=1;$i<$len;$i++){
        $idx{$arr[$i]}=$i;
        $idxReverse{$i}=$arr[$i];
}
close IN;
#populate the data structure
my %hash;#values
my @tags;#the elements to be displayed in the header line after gene1 and gene2
&dealOneFile("cor.csv","correlation";
&dealOneFile("pvalue.csv","pvalue";
#print the result
#header
print "gene1,gene2";
foreach my $tag(@tags){
        print ",$tag";
}
print "\n";
#values
foreach my $aa(sort {$a<=>$b} keys %hash){
        my %tmp = %{$hash{$aa}};
        foreach my $bb(sort {$a<=>$b} keys %tmp){
                print "$idxReverse{$aa},$idxReverse{$bb}";
                foreach my $tag(@tags){
                        print ",$hash{$aa}{$bb}{$tag}";
                }
                print "\n";
        }
}

sub dealOneFile{
        my $filename = $_[0];
        my $tag = $_[1];
        push(@tags,$tag);
        open IN,"$filename";
        my $line = ;
        chomp($line);
        my @header = split(",",$line);
        shift @header;
        my $count = 0;
        while($line={
                chomp($line);
                $count++;
                my @arr = split(",",$line);
                my $current = shift(@arr);
                my $currentIdx = $idx{$current};
                for(my $i=$count;$i<$len;$i++){
                        my $second = $header[$i];
                        my $secondIdx = $idx{$second};
                        if ($currentIdx<$secondIdx){
                                $hash{$currentIdx}{$secondIdx}{$tag}=$arr[$i];
                        }else{
                                $hash{$secondIdx}{$currentIdx}{$tag}=$arr[$i];
                        }
                }
        }
}

不知道什么原因,你老是把文件名搞错,自己认真点吧。Perl是很基础的生物信息学工具,好好弄懂,别老是一不会就来提问了。自己的本领才是最关键的。
2楼2012-08-13 06:02:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wizardfan

至尊木虫 (著名写手)

优秀版主


xzhdty: 金币+1, 谢谢 2012-08-13 22:23:33
引用回帖:
2楼: Originally posted by wizardfan at 2012-08-13 06:02:26
use strict;
use Data:umper;

#create index for names to avoid the situation that two files have different order of gene names
my %idx;
my %idxReverse;
open IN,"pvalue.csv";
my $lin ...

这个程序可以处理任意多个基因,任意多个数据文件(比如还有个文件叫similarity),只要内存够。但是有一个要求,输入格式必须是CSV,comma separated values。
例如
,DR_2577,DR_A0328,DR_2258,DR_0109,DR_0465,DR_0539,DR_1356,DR_2207,DR_2121,DR_1962
DR_2577,NA,1.71E-08,0.000439,0.026534,1.15E-06,0.712607,0.052184,7.77E-17,2.91E-10,4.74E-17
DR_A0328,NA,NA,0.011085,0.067408,4.92E-07,0.535037,0.019445,4.43E-09,1.27E-07,1.07E-07
DR_2258,NA,NA,NA,0.824648,0.00147,0.054368,0.016167,0.003185,0.000694,0.00236
DR_0109,NA,NA,NA,NA,0.09646,0.161788,0.696339,0.004726,0.007971,0.040283
DR_0465,NA,NA,NA,NA,NA,0.189011,0.012672,1.10E-06,4.67E-06,0.000102
DR_0539,NA,NA,NA,NA,NA,NA,0.034369,0.57409,0.306483,0.573561
DR_1356,NA,NA,NA,NA,NA,NA,NA,0.217671,0.024297,0.381359
DR_2207,NA,NA,NA,NA,NA,NA,NA,NA,6.84E-10,5.93E-13
DR_2121,NA,NA,NA,NA,NA,NA,NA,NA,NA,1.38E-09
DR_1962,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
3楼2012-08-13 06:05:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiezhancnu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 时间戳又变了8-15 +12 archvillain 2026-08-15 23/1150 2026-08-15 20:47 by foyo404
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +12 Tide man 2026-08-10 13/650 2026-08-15 16:34 by 氺木
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
信息提示
请填处理意见