首页 > 代码库 > 无中间文件计算fdr和多组方差分析(无齐性检验)
无中间文件计算fdr和多组方差分析(无齐性检验)
无中间文件计算fdr
#!perl use warnings; use strict; die "perl $0 <pvalue file> <outprefix>\n" if @ARGV != 2; my (%va, %out); open FA, $ARGV[0] or die $!; while(<FA>) { <span style="white-space:pre"> </span>chomp; <span style="white-space:pre"> </span>my @tmp = split; <span style="white-space:pre"> </span>$va{$tmp[0]} = $tmp[7]; <span style="white-space:pre"> </span>$out{$tmp[0]} = $_; } my @arr; my $n = 0; foreach my $i(sort {$va{$a} <=> $va{$b}} keys %va) { <span style="white-space:pre"> </span>$arr[$n]{$i} = $va{$i}; <span style="white-space:pre"> </span>$n ++; } open OUT, "> $ARGV[1].fdr" or die $!; for(my $i = 0; $i < @arr; $i ++) { <span style="white-space:pre"> </span>foreach my $j(keys %{$arr[$i]}) <span style="white-space:pre"> </span>{ <span style="white-space:pre"> </span>my $fdr = ($arr[$i]{$j} * ($n + 1)) / ($i + 1); <span style="white-space:pre"> </span>print OUT "$out{$j}\t$fdr\n"; <span style="white-space:pre"> </span>} }perl的sort还是不熟啊。。。
多组方差分析(无齐性检验)
args<-commandArgs(T) mat <- read.table(args[1], sep="\t") column <- c(rep(0, nrow(mat))) for(i in 1:nrow(mat)) { dat <- as.numeric(mat[i, 2:ncol(mat)]) groups <- factor(rep(letters[1:3], each = 2)) fit <- lm(formula = dat ~ groups) column[i] <- anova(fit)[1,5] } f = cbind(mat, column) write.table(f, file=args[2], sep ="\t", quote=FALSE,row.names=FALSE, col.names=F)
无中间文件计算fdr和多组方差分析(无齐性检验)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。