diff --git a/DESCRIPTION b/DESCRIPTION index d56ad2b..191ceea 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: QDNAseq -Version: 1.41.1-9000 +Version: 1.41.1-9001 Title: Quantitative DNA Sequencing for Chromosomal Aberrations Depends: R (>= 3.1.0) Imports: diff --git a/NEWS.md b/NEWS.md index b5dfc85..2a684f7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,10 @@ # Version (development version) - * ... +## Bug Fixes + + * `poolRuns()` would give an error "Error in colMeans2(oldphenodata, + cols = numericCols, useNames = FALSE) : Argument 'x' must be a + matrix or a vector." # Version 1.41.1 [2024-07-20] diff --git a/R/poolRuns.R b/R/poolRuns.R index fd730cc..f84fc8b 100644 --- a/R/poolRuns.R +++ b/R/poolRuns.R @@ -94,19 +94,18 @@ setMethod("poolRuns", signature=c(object="QDNAseqSignals", totalReads <- sum(oldphenodata$total.reads) usedReads <- sum(oldphenodata$used.reads) numericCols <- sapply(oldphenodata, FUN=is.numeric) - oldphenodata[1, numericCols] <- colMeans2(oldphenodata, cols=numericCols, useNames=FALSE) - oldphenodata[1, !numericCols] <- apply(oldphenodata[, !numericCols, - drop=FALSE], MARGIN=2L, concatenateIfNotEqual) + oldphenodata[1, numericCols] <- apply(oldphenodata[, numericCols, drop = FALSE], MARGIN = 2L, FUN = mean) + oldphenodata[1, !numericCols] <- apply(oldphenodata[, !numericCols, drop = FALSE], MARGIN = 2L, FUN = concatenateIfNotEqual) if ("paired.ends" %in% colnames(oldphenodata)) oldphenodata[1, "paired.ends"] <- pairedEnds oldphenodata[1, "total.reads"] <- totalReads oldphenodata[1, "used.reads"] <- usedReads newphenodata <- rbind(newphenodata, oldphenodata[1, ], stringsAsFactors=FALSE) } - rownames(newphenodata) <- newphenodata[, 1] - newphenodata <- AnnotatedDataFrame(newphenodata, - varMetadata=varMetadata(object)) - + rownames(newphenodata) <- newphenodata$name + metadata <- varMetadata(object) + metadata <- rbind(metadata, structure(data.frame(labelDescription = NA_character_), rownames = "total.reads")) + newphenodata <- AnnotatedDataFrame(newphenodata, varMetadata=metadata) if (inherits(object, "QDNAseqReadCounts")) { storage.mode(newcounts) <- "integer" object2 <- new("QDNAseqReadCounts", diff --git a/tests/poolRuns.R b/tests/poolRuns.R index 90644e3..c5c6181 100644 --- a/tests/poolRuns.R +++ b/tests/poolRuns.R @@ -25,11 +25,9 @@ message("poolRuns(LGG150set) ...") x_pool <- poolRuns(x, samples = sampleNames(x)) print(x_pool) -if (FALSE) { message("poolRuns(LGG150set) - pooled ...") ## BUG #112 (https://github.com/ccagc/QDNAseq/issues/112) x_pool <- poolRuns(x, samples = rep("pooled", times = 2L)) print(x_pool) -} message("poolRuns(LGG150set) ... done")