R/applications.R
6cbafa32
 checkCName<-function(colName,exprsData){
     re<-TRUE
     if(is.numeric(colName)){
         if(colName>ncol(exprsData)){
             re<-FALSE
         }
     }else{
         if(!(colName %in% colnames(exprsData))){
             re<-FALSE
         }
     }
     re
 }
 checkMCName<-function(arr){
     cname<-c("from","to")
     if(!all(colnames(arr)[1:2]==cname)){
         stop(paste("colnames of",  deparse(substitute(arr)) , "must be c('from','to',...)"))
     }
 }
 
 checkMap<-function(interactionmap,x){
     cname<-c("from","to")
     checkMCName(interactionmap)
     checkMCName(x)
     tf_names<-unique(c(as.vector(t(interactionmap[,cname])),as.vector(x)))
     if(!all(!is.na(tf_names))){
         stop("NA is involved in input data.")
     }
 }
 
 checkmiRNAmap<-function(miRNAmap){
     if(dim(miRNAmap)[2] != 2) stop("miRNA map must be a two column matrix or data frame")
 }
 
 getMax<-function(dl, colname="logFC"){
     dl[match(max(abs(dl[ , colname])), abs(dl[ , colname])),]
 }
 
 getMedian<-function(dl, colname="logFC"){
     m<-median(dl[ , colname])
     dl[match(min(abs(m - dl[ , colname])), abs(m - dl[ , colname])), ]
 }
 
 getMin<-function(dl, colname="logFC"){
     dl[match(min(abs(dl[ , colname])), abs(dl[ , colname])), ]
 }
 
 inList<-function(needle,arr){
     toupper(needle) %in% toupper(arr)
 }