- 论坛徽章:
- 0
|
本帖最后由 pony2001mx 于 2018-01-27 15:10 编辑
大家好:
我有一个程序,调用R进行fisher exact检验,但我的程序运行非常慢。请高手指教!非常谢谢!
- 输入文件格式如下(这个文件比较大)
- 43 56 100 120
- 50 10 298 50
- ... ...
复制代码
- 主程序如下
- #!/user/bin/perl
- use strict;
- use warnings;
- open IN, $ARGV[0];
- while (<IN>){
- chomp;
- my ($a, $b, $c, $d) = split;
- open FE, ">","tmp.r";
- print FE "fisher.test(matrix(c($a,$b,$c,$d),nrow=2))"; #输出到tmp.r文件
- close FE;
- open TMP, "R --vanilla --quiet --slave < tmp.r |"; #用R运行tmp.r文件
- while(<TMP>){
- next unless /p-value/;
- my @row = split;
- my $pval = $row[-1]; #得到fisher exact检验的p-value
- print "$a $b $c $d $pval\n"; #输出结果
- }
- close TMP;
- }
复制代码
|
|