Mercurial > repos > prog > lcmsmatching
diff MsFileDb.R @ 1:45e985cd8e9e draft
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8-dirty
| author | prog |
|---|---|
| date | Tue, 31 Jan 2017 05:27:24 -0500 |
| parents | 3afe41d3e9e7 |
| children | 1ba222315fd5 |
line wrap: on
line diff
--- a/MsFileDb.R Mon Jul 11 09:12:03 2016 -0400 +++ b/MsFileDb.R Tue Jan 31 05:27:24 2017 -0500 @@ -84,6 +84,16 @@ # Load database .db <<- read.table(.self$.file, sep = "\t", quote = "\"", header = TRUE, stringsAsFactors = FALSE, row.names = NULL) + # Check that colnames are unique + dupcol <- duplicated(colnames(.self$.db)) + if (any(dupcol)) + stop(paste("Database header contains duplicated names: ", paste(unique(colnames(.self$.db)[dupcol]), collapse = ', '), ".")) + + # Check that columns names supplied through field map are unique + dupfields <- duplicated(.self$.fields) + if (any(dupfields)) + stop(paste("Some db column names supplied are duplicated: ", paste(unique(.self$.fields[dupfields]), collapse = ', '), ".")) + # Rename columns colnames(.self$.db) <- vapply(colnames(.self$.db), function(c) if (c %in% .self$.fields) names(.self$.fields)[.self$.fields %in% c] else c, FUN.VALUE = '') } @@ -151,7 +161,7 @@ # GET MOLECULE IDS # #################### - MsFileDb$methods( getMoleculeIds = function() { + MsFileDb$methods( getMoleculeIds = function(max.results = NA_integer_) { # Init db .self$.init.db() @@ -161,6 +171,10 @@ mol.ids <- mol.ids[ ! duplicated(mol.ids)] mol.ids <- sort(mol.ids) + # Cut results + if ( ! is.na(max.results) && length(mol.ids) > max.results) + mol.ids <- mol.ids[1:max.results] + return(mol.ids) }) @@ -416,7 +430,7 @@ ################# # Returns a numeric vector of all masses stored inside the database. - MsFileDb$methods( getMzValues = function(mode = NULL) { + MsFileDb$methods( getMzValues = function(mode = NULL, max.results = NA_integer_) { # Init db .self$.init.db() @@ -435,6 +449,10 @@ # Remove duplicates mz <- mz[ ! duplicated(mz)] + # Apply cut-off + if ( ! is.na(max.results)) + mz <- mz[1:max.results] + return(mz) })
