"geoMethodNumRepsAUCEval" <- function(data.mat, var.vec, voting=TRUE, reps.vec=c(1,2,5,15), nDE.sca=1122, truth.vec=as.numeric(rank(-1*abs(prostate.data.EG.eklund.PLM$coefficients))<=nDE.sca)) { # 2009.2.9: Test GEO method to compare to SAGAT/t-stat/FC performance m <- ncol(data.mat) results.lis <- list() for(k in reps.vec) { ind.vec <- seq(1, m-(m%%k)-k+1, k) auc.vec <- c() for(i in 1:length(ind.vec)) { scores.vec <- rowMeans(data.mat[,ind.vec[i]:(ind.vec[i]+k-1), drop=FALSE])/sqrt(var.vec) if(voting) { t.vec <- eBayes(lmFit(data.mat[,ind.vec[i]:(ind.vec[i]+k-1), drop=FALSE]))$t rank.vec <- apply(cbind(rank(-1*abs(scores.vec)), rank(-1*abs(t.vec))), 1, function(x) ifelse(x[1]<x[2], c(.75,.25)%*%x, c(.25,.75)%*%x)) auc.vec <- c(auc.vec, performance(prediction(predictions=-1*rank.vec,labels=truth.vec),measure="auc",fpr.stop=1)@y.values[[1]]) } else auc.vec <- c(auc.vec, performance(prediction(predictions=abs(scores.vec),labels=truth.vec),measure="auc",fpr.stop=1)@y.values[[1]]) cat(paste(ind.vec[i]," ",sep="")) } cat("\n") results.lis <- c(results.lis, list(auc.vec)) } return(results.lis) }