R/methodMassInfo.R

methodMassInfo <- function(nameLibrary){

    ## Load and collapse mass info across multiple methods
    libMassInfo <- read.xlsx(nameLibrary,
                             skipEmptyCols = T,
                             skipEmptyRows = F)

    ## Only load appropriate method columns
    #libMassInfo <- as.character(colnames(libMassInfo))
    temp <- grep("Mass.Info", as.character(colnames(libMassInfo)))
    tempNames <- colnames(libMassInfo)[temp]
    libMassInfo <- as.data.table(libMassInfo[, temp])
    colnames(libMassInfo) <- tempNames
    #libMassInfo <- read.xlsx(nameLibrary, cols = c(temp),
    #                         skipEmptyCols = T,
    #                         skipEmptyRows = F)

    ## Filter any accidental columns pulled by |grep| based on 90% NAs
    libMassInfo <- libMassInfo[, as.vector(lapply(libMassInfo, function(x) sum(!is.na(x)) / length(x) ) > 0.9), with=F]

    ## Copy method names
    methodNames <- colnames(libMassInfo)

    ## Remove "HELPER" columns if they exist
    dropRow <- 0
    while(any(grep("/", libMassInfo[1,])) == F){
        dropRow <- dropRow + 1
        libMassInfo <- as.data.table(libMassInfo[-1,])
    }
    colnames(libMassInfo) <- methodNames

    ## Replace values with boolean
    libMassInfo[libMassInfo == "x"] <- 0
    libMassInfo[libMassInfo != "0"] <- 1

    ## Remove any composite mass info columns
    if(any(grep("Composite", colnames(libMassInfo)))){
        libMassInfo[, colnames(libMassInfo)[grep("Composite", colnames(libMassInfo))] := NULL]
    }
    if(any(grep("^Mass.Info$", colnames(libMassInfo)))){
        #libMassInfo[, colnames(libMassInfo)[grep("^Mass.Info$", colnames(libMassInfo))] := NULL]
        remove <- grep("^Mass.Info$", colnames(libMassInfo))
        libMassInfo <- libMassInfo[, -(remove), with=F]
    }

    return(libMassInfo)
}
jchitpin/blistR documentation built on July 8, 2019, 6:29 p.m.