Mercurial > repos > prog > lcmsmatching
comparison MsDbOutputDataFrameStream.R @ 2:20d69a062da3 draft
planemo upload for repository https://github.com/workflow4metabolomics/lcmsmatching.git commit d4048accde6bdfd5b3e14f5394902d38991854f8
| author | prog |
|---|---|
| date | Thu, 02 Mar 2017 08:55:00 -0500 |
| parents | 253d531a0193 |
| children | fb9c0409d85c |
comparison
equal
deleted
inserted
replaced
| 1:253d531a0193 | 2:20d69a062da3 |
|---|---|
| 23 | 23 |
| 24 ################## | 24 ################## |
| 25 # GET DATA FRAME # | 25 # GET DATA FRAME # |
| 26 ################## | 26 ################## |
| 27 | 27 |
| 28 MsDbOutputDataFrameStream$methods( getDataFrame = function(...) { | 28 MsDbOutputDataFrameStream$methods( getDataFrame = function() { |
| 29 | 29 |
| 30 # Put at least a column name if empty | 30 # Put at least a column name if empty |
| 31 if (nrow(.self$.df) == 0) | 31 if (nrow(.self$.df) == 0) |
| 32 .self$.df[[.self$.output.fields[[MSDB.TAG.MZ]]]] <- numeric() | 32 .self$.df[[.self$.output.fields[[MSDB.TAG.MZ]]]] <- numeric() |
| 33 | 33 |
| 34 return(.self$.df) | 34 return(.self$.df) |
| 35 }) | 35 }) |
| 36 | 36 |
| 37 # Move columns to beginning {{{1 | |
| 38 | |
| 39 MsDbOutputDataFrameStream$methods( moveColumnsToBeginning = function(cols) { | |
| 40 all.cols <- colnames(.self$.df) | |
| 41 other.cols <- all.cols[ ! all.cols %in% cols] | |
| 42 cols <- cols[cols %in% all.cols] | |
| 43 .df <<- .self$.df[c(cols, other.cols)] | |
| 44 }) | |
| 45 | |
| 37 ################# | 46 ################# |
| 38 # MATCHED PEAKS # | 47 # MATCHED PEAKS # |
| 39 ################# | 48 ################# |
| 40 | 49 |
| 41 MsDbOutputDataFrameStream$methods( matchedPeaks = function(mz, rt = NULL, unused = NULL, peaks = NULL) { | 50 MsDbOutputDataFrameStream$methods( matchedPeaks = function(mz, rt = NULL, unused = NULL, peaks = NULL) { |
| 42 | 51 |
| 43 library(plyr) | 52 library(plyr) |
| 44 | 53 |
| 45 # Set input values | 54 # Set input values |
| 46 x <- data.frame(mz = mz) | 55 x <- data.frame(mz = mz) |
| 47 if ( ! is.null(rt)) | 56 colnames(x) <- MSDB.TAG.MZ |
| 48 x <- cbind(x, data.frame(rt = rt)) | 57 if ( ! is.null(rt)) { |
| 58 x.rt <- data.frame(rt = rt) | |
| 59 colnames(x.rt) <- MSDB.TAG.RT | |
| 60 x <- cbind(x, x.rt) | |
| 61 } | |
| 49 | 62 |
| 50 # Merge input values with matched peaks | 63 # Merge input values with matched peaks |
| 51 if ( ! is.null(peaks)) { | 64 if ( ! is.null(peaks)) { |
| 52 | 65 |
| 53 # No rows | 66 # No rows |
| 72 } | 85 } |
| 73 | 86 |
| 74 # Concatenate results in one line | 87 # Concatenate results in one line |
| 75 if (.self$.one.line) { | 88 if (.self$.one.line) { |
| 76 # For each column, concatenate all values in one string. | 89 # For each column, concatenate all values in one string. |
| 77 for (c in seq(peaks)) | 90 for (c in seq(peaks)) { |
| 78 peaks[1, c] <- paste0(peaks[[c]], collapse = .self$.match.sep, FUN.VALUE = '') | 91 v <- peaks[[c]] |
| 92 v <- v[ ! is.na(v)] # remove NA values | |
| 93 v <- v[ ! duplicated(v)] # remove duplicates | |
| 94 peaks[1, c] <- paste0(v, collapse = .self$.match.sep, FUN.VALUE = '') | |
| 95 } | |
| 79 peaks <- peaks[1, ] # Keep only first line | 96 peaks <- peaks[1, ] # Keep only first line |
| 80 } | 97 } |
| 81 } | 98 } |
| 82 | 99 |
| 83 # Merge | 100 # Merge |
