diff --git a/DESCRIPTION b/DESCRIPTION index 57f3ebdf0..13d036769 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: xcms -Version: 4.1.2 +Version: 4.1.3 Title: LC-MS and GC-MS Data Analysis Description: Framework for processing and visualization of chromatographically separated and single-spectra mass spectral data. Imports from AIA/ANDI NetCDF, @@ -30,7 +30,7 @@ Authors@R: c( email = "michael.witting@helmholtz-muenchen.de", role = "ctb"), person(given = "William", family = "Kumler", - email = "wkumler@uw.edu", role = "ctb", + email = "wkumler@uw.edu", role = "aut", comment = c(ORCID = "0000-0002-5022-8009")), person(given = "Philippine", family = "Louail", email = "philippine.louail@eurac.edu", @@ -70,7 +70,7 @@ Suggests: faahKO, msdata (>= 0.25.1), ncdf4, - testthat, + testthat (>= 3.1.9), pander, rmarkdown, MALDIquant, diff --git a/R/XcmsExperiment-functions.R b/R/XcmsExperiment-functions.R index 44f6e0569..1131ab31b 100644 --- a/R/XcmsExperiment-functions.R +++ b/R/XcmsExperiment-functions.R @@ -519,6 +519,9 @@ sum(mat[, 2L], na.rm = TRUE) * ((rtr[2L] - rtr[1L]) / max(1L, (length(keep) - 1L))) ) + if ("beta_cor" %in% cn) + res[i, c("beta_cor", "beta_snr")] <- .get_beta_values( + mat[, 2L], rts) } } } diff --git a/R/functions-XCMSnExp.R b/R/functions-XCMSnExp.R index 19a280682..2d44aa4f9 100644 --- a/R/functions-XCMSnExp.R +++ b/R/functions-XCMSnExp.R @@ -300,9 +300,10 @@ dropGenericProcessHistory <- function(x, fun) { meanMz <- do.call(mzCenterFun, list(mtx[, 2], mtx[, 3])) if (is.na(meanMz)) meanMz <- mtx[maxi[1], 2] res[i, "mz"] <- meanMz - - if("beta_cor"%in%cn){ - res[i, c("beta_cor", "beta_snr")] <- .get_beta_values(mtx[,3]) + + if ("beta_cor" %in% cn) { + res[i, c("beta_cor", "beta_snr")] <- .get_beta_values( + mtx[, 3L], mtx[, 1L]) } } else { res[i, ] <- rep(NA_real_, ncols) diff --git a/R/methods-XCMSnExp.R b/R/methods-XCMSnExp.R index 3fe6293f6..d95c49389 100644 --- a/R/methods-XCMSnExp.R +++ b/R/methods-XCMSnExp.R @@ -1460,6 +1460,8 @@ setMethod("smooth", "XCMSnExp", function(x, method = c("SavitzkyGolay", setAs(from = "XCMSnExp", to = "xcmsSet", def = .XCMSnExp2xcmsSet) #' @rdname XcmsExperiment +#' +#' @name XcmsExperiment setAs(from = "XcmsExperiment", to = "xcmsSet", def = .XCMSnExp2xcmsSet) #' @rdname XCMSnExp-peak-grouping-results diff --git a/inst/NEWS b/inst/NEWS index fa8eadb89..5203e9f9b 100644 --- a/inst/NEWS +++ b/inst/NEWS @@ -1,3 +1,10 @@ +Changes in version 4.1.3 +---------------------- + +- Add parameter `verboseBetaColumns` to `CentWaveParam` to enable calculation + of additional peak quality metrics comparing the EIC to an idealized bell + curve. + Changes in version 4.1.2 ---------------------- diff --git a/man/XcmsExperiment.Rd b/man/XcmsExperiment.Rd index 81eca1fbc..fe1d1ecb3 100644 --- a/man/XcmsExperiment.Rd +++ b/man/XcmsExperiment.Rd @@ -1,7 +1,7 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/AllGenerics.R, R/MsExperiment.R, % R/XcmsExperiment-functions.R, R/XcmsExperiment-plotting.R, -% R/XcmsExperiment.R +% R/XcmsExperiment.R, R/methods-XCMSnExp.R \name{filterFeatureDefinitions} \alias{filterFeatureDefinitions} \alias{filterRt,MsExperiment-method} diff --git a/tests/testthat/test_XcmsExperiment.R b/tests/testthat/test_XcmsExperiment.R index be6cc60c6..077a361e4 100644 --- a/tests/testthat/test_XcmsExperiment.R +++ b/tests/testthat/test_XcmsExperiment.R @@ -1326,3 +1326,16 @@ test_that("storeResults,RDataParam works", { expect_s4_class(object, "XcmsExperiment") expect_equal(object, xmse) }) + +test_that("fillChromPeaks,XcmsExperiment works with verboseBetaColumns", { + p <- CentWaveParam(noise = 10000, snthresh = 40, prefilter = c(3, 10000), + verboseBetaColumns = TRUE) + res <- findChromPeaks(mse, param = p) + expect_true(all(c("beta_cor", "beta_snr") %in% colnames(chromPeaks(res)))) + p <- PeakDensityParam(sampleGroups = rep(1, 3)) + res <- groupChromPeaks(res, param = p) + res <- fillChromPeaks(res, ChromPeakAreaParam()) + pks_det <- chromPeaks(res)[!chromPeakData(res)$is_filled, ] + pks_fil <- chromPeaks(res)[chromPeakData(res)$is_filled, ] + expect_true(!any(is.na(pks_fil[, "beta_cor"]))) +})