From f225f35590b3403e43c1658e6daa0e799fdd7816 Mon Sep 17 00:00:00 2001 From: "Dr. Connie Brett" Date: Thu, 19 May 2022 10:05:15 -0700 Subject: [PATCH] Cran 1.1.2 Version Release (#32) --- .gitignore | 4 +- DESCRIPTION | 10 +-- NEWS.md | 6 ++ R/addItem.R | 8 ++- R/annotate.R | 6 +- R/attributes.R | 10 ++- R/get.R | 9 ++- R/init.R | 13 ++-- R/reset.R | 4 +- R/rmItem.R | 2 +- R/subset.R | 4 +- R/types.R | 8 +-- R/utils.R | 10 +-- cran-comments.md | 19 ++++-- inst/miniObj.RDS | Bin 0 -> 91244 bytes man/addItem.Rd | 4 +- man/addItems.Rd | 4 +- man/annotateDGEobj.Rd | 3 +- man/as.list.DGEobj.Rd | 2 +- man/baseType.Rd | 2 +- man/baseTypes.Rd | 2 +- man/getAttributes.Rd | 2 +- man/getBaseType.Rd | 2 +- man/getItem.Rd | 2 +- man/getItems.Rd | 2 +- man/getType.Rd | 2 +- man/initDGEobj.Rd | 13 ++-- man/inventory.Rd | 4 +- man/newType.Rd | 2 +- man/print.DGEobj.Rd | 4 +- man/resetDGEobj.Rd | 4 +- man/rmItem.Rd | 2 +- man/setAttributes.Rd | 2 +- man/showAttributes.Rd | 4 +- man/showMeta.Rd | 2 +- man/showTypes.Rd | 2 +- man/subset.DGEobj.Rd | 4 +- misc/test_object_creation/create_objects.R | 68 +++++++++++---------- tests/testthat/setup.R | 12 +++- tests/testthat/test_addItem.R | 1 + tests/testthat/test_annotate.R | 1 + tests/testthat/test_attributes.R | 1 + tests/testthat/test_get.R | 1 + tests/testthat/test_init.R | 1 + tests/testthat/test_reset.R | 2 +- tests/testthat/test_rmItem.R | 1 + tests/testthat/test_subset.R | 1 + tests/testthat/test_types.R | 1 + tests/testthat/test_utils.R | 1 + vignettes/DGEobj_Overview.Rmd | 66 ++++++++++---------- 50 files changed, 182 insertions(+), 158 deletions(-) create mode 100644 inst/miniObj.RDS diff --git a/.gitignore b/.gitignore index 3cfccf1..f2180c6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ *-Ex.R /*.Rcheck/ .Rproj.user/ -vignettes/*.html .httr-oauth /*_cache/ /cache/ @@ -28,4 +27,7 @@ revdep vignettes/*.html vignettes/*.R vignettes/*.log + !vignettes/precompiled_vignettes.R +!inst/exampleObj.RDS +!inst/miniObj.RDS diff --git a/DESCRIPTION b/DESCRIPTION index 2802f21..a0e126b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: DGEobj Type: Package Title: Differential Gene Expression (DGE) Analysis Results Data Object -Version: 1.1.1 +Version: 1.1.2 Description: Provides a flexible container to manage and annotate Differential Gene Expression (DGE) analysis results (Smythe et. al (2015) ). @@ -29,15 +29,15 @@ Imports: stringr, utils Suggests: + biomaRt, conflicted, dplyr, + edgeR, + GenomicRanges, glue, knitr, rmarkdown, - testthat, - biomaRt, - edgeR, - GenomicRanges + testthat biocViews: RoxygenNote: 7.1.2 VignetteBuilder: knitr diff --git a/NEWS.md b/NEWS.md index 7c5ce8c..b35e500 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,12 @@ --- +### v1.1.2 +* Made all Bioconductor packages optional (suggested) +* Added a new, minimal "mini" example object that has no internal Bioconductor-based features (ie normalization, analysis) to allow +for clean, simple examples that do not depend on suggested packages +* Testing updated so that when Bioconductor suggested packages are unavailable the tests will not be run + ### v1.1.1 * Updated tests and examples so that when suggested packages are unavailable the examples and/or tests dependent on them are not run diff --git a/R/addItem.R b/R/addItem.R index 1daa167..9ba672d 100644 --- a/R/addItem.R +++ b/R/addItem.R @@ -16,10 +16,10 @@ #' \dontrun{ #' myFunArgs <- match.call() # Capture calling function and arguments #' -#' myDGEobj <- addItem(myDGEobj, item = MyCounts, +#' myDGEobj <- addItem(myDGEobj, item = MyCounts, #' itemName = "counts", #' itemType = "counts", -#' funArgs = myFunArgs) +#' funArgs = myFunArgs) #' } #' #' @importFrom assertthat assert_that @@ -168,7 +168,9 @@ addItem <- function(dgeObj, #' #' @examples #' \dontrun{ -#' # Add normalize counts (DGEList) and log2CPM as additional "assay" items in the DGEobj +#' # NOTE: Requires the edgeR package +#' +#' # Add normalized counts and log2CPM as additional "assay" items in the DGEobj #' dgeObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) #' dgeList <- edgeR::calcNormFactors(edgeR::DGEList(dgeObj$counts), method="TMM") #' log2cpm <- edgeR::cpm(dgeList, log = TRUE) diff --git a/R/annotate.R b/R/annotate.R index 537f9a0..d55c69d 100644 --- a/R/annotate.R +++ b/R/annotate.R @@ -16,19 +16,21 @@ #' @return A DGEobj #' #' @examples -#' MyDgeObj <- system.file("exampleObj.RDS", package = "DGEobj") +#' MyDgeObj <- system.file("miniObj.RDS", package = "DGEobj") #' #' \dontrun{ #' #using a text file file of key=value pairs #' annotationFile <- "/location/to/myAnnotations.txt" #' MyDgeObj <- annotateDGEobj(MyDgeObj, annotationFile) -#'} +#' } +#' #' #using a named list of key/values #' annotations <- list(Title = "Rat Liver Slices from Bile Duct Ligation animals", #' Organism = "Rat", #' GeneModel = "Ensembl.R89") #' MyDgeObj <- annotateDGEobj(MyDgeObj, annotations) #' +#' #' @import magrittr #' @importFrom stringr str_remove_all str_locate #' @importFrom utils read.delim diff --git a/R/attributes.R b/R/attributes.R index 5081fde..037fd60 100644 --- a/R/attributes.R +++ b/R/attributes.R @@ -10,12 +10,10 @@ #' "dimnames", "rownames", "colnames", "listData", "objDef") #' #' @examples -#' \dontrun{ #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' showAttributes(exObj) -#'} #' #' @export showAttributes <- function(dgeObj, skipList = c("dim", "dimnames", "rownames", "colnames", "listData", "objDef")) { @@ -57,7 +55,7 @@ showAttributes <- function(dgeObj, skipList = c("dim", "dimnames", "rownames", " #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' # Assign attributes to a DGEobj #' MyAttributes <- list(Platform = "RNA-Seq", @@ -107,7 +105,7 @@ setAttributes <- function(dgeObj, attribs){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' getAttributes(exObj) #' @@ -132,7 +130,7 @@ getAttributes <- function(dgeObj, #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' showMeta(exObj) #' diff --git a/R/get.R b/R/get.R index eb3b9c1..27fd468 100644 --- a/R/get.R +++ b/R/get.R @@ -7,7 +7,7 @@ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' myList <- getItems(exObj, list("counts", "geneData")) #' names(myList) @@ -17,7 +17,6 @@ #' #' @export getItems <- function(dgeObj, itemNames){ - assertthat::assert_that(!missing(dgeObj), !missing(itemNames), msg = "Specify both a DGEobj and at least one itemName to retrieve.") @@ -52,7 +51,7 @@ getItems <- function(dgeObj, itemNames){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' MyCounts <- getItem(exObj, "counts") #' @@ -85,7 +84,7 @@ getItem <- function(dgeObj, itemName){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' MyRawData <- getType(exObj, type = list("counts", "design", "geneData")) #' @@ -119,7 +118,7 @@ getType <- function(dgeObj, type, parent){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' Assays <- getBaseType(exObj, baseType = "assay") #' AssaysAndMeta <- getBaseType(exObj, c("assay", "meta")) diff --git a/R/init.R b/R/init.R index 3249af3..84b100d 100644 --- a/R/init.R +++ b/R/init.R @@ -20,18 +20,17 @@ #' @return A DGEobj #' #' @examples -#' -#' dgeObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' dgeObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' MyCounts <- dgeObj$counts #' geneinfo <- dgeObj$geneData #' sampinfo <- dgeObj$design #' #' myDgeObj <- initDGEobj(primaryAssayData = MyCounts, -#' rowData = geneinfo, -#' colData = sampinfo, -#' level = "gene", -#' customAttr = list (Genome = "Rat.B6.0", -#' GeneModel = "Ensembl.R89")) +#' rowData = geneinfo, +#' colData = sampinfo, +#' level = "gene", +#' customAttr = list (Genome = "Rat.B6.0", +#' GeneModel = "Ensembl.R89")) #' #' @import magrittr #' @importFrom assertthat assert_that diff --git a/R/reset.R b/R/reset.R index 08776b6..e5de576 100644 --- a/R/reset.R +++ b/R/reset.R @@ -11,16 +11,14 @@ #' @return A DGEobj #' #' @examples -#' \dontrun{ #' #example object -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' # subset to first 10 rows to show reset functionality #' exObj <- exObj[c(1:10), ] #' #' exObj <- resetDGEobj(exObj) #' dim(exObj) -#'} #' #' @importFrom assertthat assert_that #' diff --git a/R/rmItem.R b/R/rmItem.R index 06b79e0..43e1bed 100644 --- a/R/rmItem.R +++ b/R/rmItem.R @@ -7,7 +7,7 @@ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' exObj <- rmItem(exObj, "design") #' diff --git a/R/subset.R b/R/subset.R index 4861db8..3fc4b4f 100644 --- a/R/subset.R +++ b/R/subset.R @@ -11,12 +11,10 @@ #' @return A DGEobj #' #' @examples -#' \dontrun{ #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' exObj <- subset(exObj, 1:10, 5:50) -#'} #' #' @importFrom assertthat assert_that #' @importFrom stringr str_c diff --git a/R/types.R b/R/types.R index 5ef7182..3d15a9b 100644 --- a/R/types.R +++ b/R/types.R @@ -7,7 +7,7 @@ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' baseType(exObj, type = "DGEList") #' @@ -43,7 +43,7 @@ baseType <- function(dgeObj, type){ #' baseTypes() #' #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' # Basetypes from a specific DGEobj #' baseTypes(exObj) @@ -65,7 +65,7 @@ baseTypes <- function(dgeObj){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' showTypes(exObj) #' @@ -98,7 +98,7 @@ showTypes <- function(dgeObj){ #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' exObj <- newType(exObj, #' itemType = "AffyRMA", diff --git a/R/utils.R b/R/utils.R index 11e503f..cbd42ad 100644 --- a/R/utils.R +++ b/R/utils.R @@ -44,12 +44,10 @@ dimnames.DGEobj <- function(x){ #' @return NULL #' #' @examples -#' \dontrun{ #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' print(exObj) -#'} #' #' @export print.DGEobj <- function(x, ..., verbose = FALSE) { @@ -67,12 +65,10 @@ print.DGEobj <- function(x, ..., verbose = FALSE) { #' @return A data.frame summarizing the data contained in the DGEobj #' #' @examples -#' \dontrun{ #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' inventory(exObj) -#' } #' #' @export inventory <- function(dgeObj, verbose = FALSE) { @@ -122,7 +118,7 @@ inventory <- function(dgeObj, verbose = FALSE) { #' #' @examples #' # example DGEobj -#' exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) +#' exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) #' #' mylist <- as.list(exObj) #' diff --git a/cran-comments.md b/cran-comments.md index a125b5d..afcaeb6 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,8 +1,16 @@ ## Comments from Maintainer -* Resolved CRAN check errors -* Skipping examples dependent on suggested packages -* Updated tests so that they do not fail if suggested packages are not available +* There is one outstanding note - we updated this package recently in an attempt to resolve the issues with noSuggests +however unfortunately it uncovered a different package dependency problem that wasn't caught on the 3 standard RHub platform +configurations. We have now combed over the entire package and extensively checked all RHub and local platforms to try to +ensure the suggested packages are just that, suggested! We also made sure we now have a very small example object to use +that was not made using any of the suggested packages as well. + +* We appreciate your consideration of this package update, here is what we have done for this release: + * Resolved CRAN check errors, including the noSuggests issues + * Added a new example object so that as many examples can be run as possible without suggested packages + * Bioconductor packages in suggests are required for testing, now we will not run tests if any are missing + * Also updated our process to check ALL available/usable RHub platforms prior to submission --- @@ -13,6 +21,7 @@ RStudio Server Pro (ubuntu 18.04.2) * R 3.6.3 * R 4.0.5 * R 4.1.3 +* R 4.2.0 CircleCI @@ -28,7 +37,9 @@ WinBuilder RHub * devtools::check_rhub(interactive = F, - env_vars = c("_R_CHECK_DEPENDS_ONLY_" = "true")) + platforms = c(rhub::platforms()$name), + env_vars = c("_R_CHECK_DEPENDS_ONLY_" = "true", + "_R_CHECK_FORCE_SUGGESTS_" = "false")) --- diff --git a/inst/miniObj.RDS b/inst/miniObj.RDS new file mode 100644 index 0000000000000000000000000000000000000000..9c6e386d157da1425675fb9592e080cf70c9c2c8 GIT binary patch literal 91244 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 literal 0 HcmV?d00001 diff --git a/man/addItem.Rd b/man/addItem.Rd index 05e9040..11276b9 100644 --- a/man/addItem.Rd +++ b/man/addItem.Rd @@ -45,10 +45,10 @@ Add a data item \dontrun{ myFunArgs <- match.call() # Capture calling function and arguments - myDGEobj <- addItem(myDGEobj, item = MyCounts, + myDGEobj <- addItem(myDGEobj, item = MyCounts, itemName = "counts", itemType = "counts", - funArgs = myFunArgs) + funArgs = myFunArgs) } } diff --git a/man/addItems.Rd b/man/addItems.Rd index 96c99ed..45ee515 100644 --- a/man/addItems.Rd +++ b/man/addItems.Rd @@ -30,7 +30,9 @@ Add multiple data items } \examples{ \dontrun{ - # Add normalize counts (DGEList) and log2CPM as additional "assay" items in the DGEobj + # NOTE: Requires the edgeR package + + # Add normalized counts and log2CPM as additional "assay" items in the DGEobj dgeObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) dgeList <- edgeR::calcNormFactors(edgeR::DGEList(dgeObj$counts), method="TMM") log2cpm <- edgeR::cpm(dgeList, log = TRUE) diff --git a/man/annotateDGEobj.Rd b/man/annotateDGEobj.Rd index be736f1..829b358 100644 --- a/man/annotateDGEobj.Rd +++ b/man/annotateDGEobj.Rd @@ -33,11 +33,12 @@ specifies which keys we want to capture as attributes on the DGEobj. #using a text file file of key=value pairs annotationFile <- "/location/to/myAnnotations.txt" MyDgeObj <- annotateDGEobj(MyDgeObj, annotationFile) -} + #using a named list of key/values annotations <- list(Title = "Rat Liver Slices from Bile Duct Ligation animals", Organism = "Rat", GeneModel = "Ensembl.R89") MyDgeObj <- annotateDGEobj(MyDgeObj, annotations) +} } diff --git a/man/as.list.DGEobj.Rd b/man/as.list.DGEobj.Rd index 60dfdab..a4e4f7c 100644 --- a/man/as.list.DGEobj.Rd +++ b/man/as.list.DGEobj.Rd @@ -19,7 +19,7 @@ Cast as a simple list } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) mylist <- as.list(exObj) diff --git a/man/baseType.Rd b/man/baseType.Rd index 6d07771..2d60ad2 100644 --- a/man/baseType.Rd +++ b/man/baseType.Rd @@ -19,7 +19,7 @@ Get the baseType of an internal data item } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) baseType(exObj, type = "DGEList") diff --git a/man/baseTypes.Rd b/man/baseTypes.Rd index cbc95a6..c43bb35 100644 --- a/man/baseTypes.Rd +++ b/man/baseTypes.Rd @@ -20,7 +20,7 @@ Get a list of the available baseTypes baseTypes() # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) # Basetypes from a specific DGEobj baseTypes(exObj) diff --git a/man/getAttributes.Rd b/man/getAttributes.Rd index 83d5f9f..40a20b1 100644 --- a/man/getAttributes.Rd +++ b/man/getAttributes.Rd @@ -23,7 +23,7 @@ excludeList argument. } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) getAttributes(exObj) diff --git a/man/getBaseType.Rd b/man/getBaseType.Rd index 79d5b5b..a16e22f 100644 --- a/man/getBaseType.Rd +++ b/man/getBaseType.Rd @@ -19,7 +19,7 @@ Retrieve data items by baseType } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) Assays <- getBaseType(exObj, baseType = "assay") AssaysAndMeta <- getBaseType(exObj, c("assay", "meta")) diff --git a/man/getItem.Rd b/man/getItem.Rd index 9852214..bdae976 100644 --- a/man/getItem.Rd +++ b/man/getItem.Rd @@ -19,7 +19,7 @@ Retrieve a data item by name } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) MyCounts <- getItem(exObj, "counts") diff --git a/man/getItems.Rd b/man/getItems.Rd index 685aba7..cbf9bef 100644 --- a/man/getItems.Rd +++ b/man/getItems.Rd @@ -19,7 +19,7 @@ Retrieve multiple data items by name } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) myList <- getItems(exObj, list("counts", "geneData")) names(myList) diff --git a/man/getType.Rd b/man/getType.Rd index c292868..3627a9f 100644 --- a/man/getType.Rd +++ b/man/getType.Rd @@ -22,7 +22,7 @@ Retrieve data items by type } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) MyRawData <- getType(exObj, type = list("counts", "design", "geneData")) diff --git a/man/initDGEobj.Rd b/man/initDGEobj.Rd index 4533930..4261d3e 100644 --- a/man/initDGEobj.Rd +++ b/man/initDGEobj.Rd @@ -45,17 +45,16 @@ A DGEobj Initialize with base data (primaryAssayData, row annotations, col annotations) } \examples{ - - dgeObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + dgeObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) MyCounts <- dgeObj$counts geneinfo <- dgeObj$geneData sampinfo <- dgeObj$design myDgeObj <- initDGEobj(primaryAssayData = MyCounts, - rowData = geneinfo, - colData = sampinfo, - level = "gene", - customAttr = list (Genome = "Rat.B6.0", - GeneModel = "Ensembl.R89")) + rowData = geneinfo, + colData = sampinfo, + level = "gene", + customAttr = list (Genome = "Rat.B6.0", + GeneModel = "Ensembl.R89")) } diff --git a/man/inventory.Rd b/man/inventory.Rd index 5976647..7abd2e5 100644 --- a/man/inventory.Rd +++ b/man/inventory.Rd @@ -18,11 +18,9 @@ A data.frame summarizing the data contained in the DGEobj Retrieve the object inventory } \examples{ -\dontrun{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) inventory(exObj) -} } diff --git a/man/newType.Rd b/man/newType.Rd index 02ed2f9..5ad3a35 100644 --- a/man/newType.Rd +++ b/man/newType.Rd @@ -23,7 +23,7 @@ Add a new type definition to a DGEobj } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) exObj <- newType(exObj, itemType = "AffyRMA", diff --git a/man/print.DGEobj.Rd b/man/print.DGEobj.Rd index 118d24b..597fecd 100644 --- a/man/print.DGEobj.Rd +++ b/man/print.DGEobj.Rd @@ -17,11 +17,9 @@ Print the Inventory } \examples{ -\dontrun{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) print(exObj) -} } diff --git a/man/resetDGEobj.Rd b/man/resetDGEobj.Rd index 55a1227..17208f0 100644 --- a/man/resetDGEobj.Rd +++ b/man/resetDGEobj.Rd @@ -20,15 +20,13 @@ but does revert changes made with addItem() and rmItem(). Reset requires that *_ in the DGEobj. } \examples{ -\dontrun{ #example object - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) # subset to first 10 rows to show reset functionality exObj <- exObj[c(1:10), ] exObj <- resetDGEobj(exObj) dim(exObj) -} } diff --git a/man/rmItem.Rd b/man/rmItem.Rd index 9100328..4ef5b75 100644 --- a/man/rmItem.Rd +++ b/man/rmItem.Rd @@ -19,7 +19,7 @@ Removes a named data item } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) exObj <- rmItem(exObj, "design") diff --git a/man/setAttributes.Rd b/man/setAttributes.Rd index c8ffd7f..2d2e8d0 100644 --- a/man/setAttributes.Rd +++ b/man/setAttributes.Rd @@ -24,7 +24,7 @@ To remove an attribute from an object pass NULL as the attribute value. } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) # Assign attributes to a DGEobj MyAttributes <- list(Platform = "RNA-Seq", diff --git a/man/showAttributes.Rd b/man/showAttributes.Rd index f7bc0cb..1a06e3a 100644 --- a/man/showAttributes.Rd +++ b/man/showAttributes.Rd @@ -23,11 +23,9 @@ This function prints all attributes regardless of the class of the attribute val *Note* Use showMeta() to only retrieve attributes that are key/value pairs. } \examples{ -\dontrun{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) showAttributes(exObj) -} } diff --git a/man/showMeta.Rd b/man/showMeta.Rd index f380138..6956e80 100644 --- a/man/showMeta.Rd +++ b/man/showMeta.Rd @@ -17,7 +17,7 @@ Retrieve the Key/Value metadata attributes that have a character value and lengt } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) showMeta(exObj) diff --git a/man/showTypes.Rd b/man/showTypes.Rd index 1b5f8f3..5750bbf 100644 --- a/man/showTypes.Rd +++ b/man/showTypes.Rd @@ -17,7 +17,7 @@ Returns and prints the list of all defined types } \examples{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) showTypes(exObj) diff --git a/man/subset.DGEobj.Rd b/man/subset.DGEobj.Rd index 905a291..7a3e24d 100644 --- a/man/subset.DGEobj.Rd +++ b/man/subset.DGEobj.Rd @@ -26,11 +26,9 @@ A DGEobj Subset internal row or column data } \examples{ -\dontrun{ # example DGEobj - exObj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj")) + exObj <- readRDS(system.file("miniObj.RDS", package = "DGEobj")) exObj <- subset(exObj, 1:10, 5:50) -} } diff --git a/misc/test_object_creation/create_objects.R b/misc/test_object_creation/create_objects.R index feac996..7eded3a 100644 --- a/misc/test_object_creation/create_objects.R +++ b/misc/test_object_creation/create_objects.R @@ -40,41 +40,40 @@ dge_creation_workflow <- function(counts, gene.data, design, qcdata, contrast_li # saveRDS(result, glue("simple{ifelse(is.null(limit_genes), '', limit_genes)}.RDS")) # Protein Coding Filtering - result <- result[result$geneData$gene_biotype == "protein_coding", ] - - # Normalize - if (requireNamespace("edgeR", quietly = TRUE)) { - result <- runEdgeRNorm(result, includePlot = FALSE) + result <- result[result$geneData$gene_biotype %in% ("protein_coding"), ] + + # Create using workflow functions IF IT MAKES SENSE + if (limit_genes > 500) { + # Normalize + result <- runEdgeRNorm(result, includePlot = FALSE) + + # Define Model + formula <- '~ 0 + ReplicateGroup' + designMatrixName <- "ReplicateGroupDesign" + + designMatrix <- model.matrix(as.formula(formula), + getItem(result, "design")) + attr(designMatrix, "formula") <- formula + colnames(designMatrix) <- make.names(colnames(designMatrix)) + + result <- addItem(result, + item = designMatrix, + itemName = designMatrixName, + itemType = "designMatrix", + parent = "design", + overwrite = TRUE) + + result <- runVoom(result, + designMatrixName = designMatrixName, + mvPlot = FALSE) + + result <- runContrasts(result, + designMatrixName = designMatrixName, + contrastList = contrast_list, + qValue = TRUE, + IHW = TRUE) } - # Define Model - formula <- '~ 0 + ReplicateGroup' - designMatrixName <- "ReplicateGroupDesign" - - designMatrix <- model.matrix(as.formula(formula), - getItem(result, "design")) - attr(designMatrix, "formula") <- formula - colnames(designMatrix) <- make.names(colnames(designMatrix)) - - result <- addItem(result, - item = designMatrix, - itemName = designMatrixName, - itemType = "designMatrix", - parent = "design", - overwrite = TRUE) - - # runVoom - result <- runVoom(result, - designMatrixName = designMatrixName, - mvPlot = FALSE) - - # runContrasts - result <- runContrasts(result, - designMatrixName = designMatrixName, - contrastList = contrast_list, - qValue = TRUE, - IHW = TRUE) - result } @@ -167,3 +166,6 @@ saveRDS(full.dge, "fullObj.RDS") sm.dge <- dge_creation_workflow(counts, gene.data, design, qcdata, contrast_list, annotatFile, limit_genes = 1000) saveRDS(sm.dge, 'exampleObj.RDS') + +mini.dge <- dge_creation_workflow(counts, gene.data, design, qcdata, contrast_list[c(1,4)], annotatFile, limit_genes = 250) +saveRDS(mini.dge, 'miniObj.RDS') diff --git a/tests/testthat/setup.R b/tests/testthat/setup.R index f913bd3..5fb5556 100644 --- a/tests/testthat/setup.R +++ b/tests/testthat/setup.R @@ -4,8 +4,14 @@ require(DGEobj) setup_failed <- TRUE -if (requireNamespace('GenomicRanges', quietly = TRUE)) { +# NOTE: if the bioconductor packages are missing from the platform we will NOT perform tests +if (requireNamespace('GenomicRanges', quietly = TRUE) && + requireNamespace('edgeR', quietly = TRUE) && + requireNamespace('biomaRt', quietly = TRUE)) { + require(GenomicRanges) + require(edgeR) + # require(biomaRt) - does not need to be imported into the environment # --- gene level example object t_obj <- readRDS(system.file("exampleObj.RDS", package = "DGEobj", mustWork = TRUE)) @@ -60,3 +66,7 @@ if (requireNamespace('GenomicRanges', quietly = TRUE)) { setup_failed <- FALSE } + +if (setup_failed) { + message('Test Setup Failed - likely due to missing suggested packages. Tests will be skipped.') +} diff --git a/tests/testthat/test_addItem.R b/tests/testthat/test_addItem.R index f57608b..e8150f0 100644 --- a/tests/testthat/test_addItem.R +++ b/tests/testthat/test_addItem.R @@ -1,6 +1,7 @@ context("addItem.R functions") skip_if(setup_failed) + test_that('addItem.R: addItem()', { #meta add <- addItem(t_obj, diff --git a/tests/testthat/test_annotate.R b/tests/testthat/test_annotate.R index 11b7b24..22447d3 100644 --- a/tests/testthat/test_annotate.R +++ b/tests/testthat/test_annotate.R @@ -1,6 +1,7 @@ context("DGEobj - tests for annotate.R functions") skip_if(setup_failed) + test_that('annotate.R: annotateDGEobj()', { ann.file <- tempfile("annotations_test", fileext = ".txt") writeLines(c("key1='value 1'", "key2=value 2"), con = ann.file) diff --git a/tests/testthat/test_attributes.R b/tests/testthat/test_attributes.R index 099eb14..eced548 100644 --- a/tests/testthat/test_attributes.R +++ b/tests/testthat/test_attributes.R @@ -1,6 +1,7 @@ context("attributes.R functions") skip_if(setup_failed) + test_that("attributes.R: showAttributes()", { output <- capture_output_lines(showAttributes(t_obj)) diff --git a/tests/testthat/test_get.R b/tests/testthat/test_get.R index 0f3b210..c0b6af9 100644 --- a/tests/testthat/test_get.R +++ b/tests/testthat/test_get.R @@ -1,6 +1,7 @@ context("get.R functions") skip_if(setup_failed) + test_that('get.R: getItem()', { getItem_DGEobj_test <- getItem(t_obj, 'design') diff --git a/tests/testthat/test_init.R b/tests/testthat/test_init.R index 21f445d..6050ef0 100644 --- a/tests/testthat/test_init.R +++ b/tests/testthat/test_init.R @@ -1,6 +1,7 @@ context("init.R functions") skip_if(setup_failed) + test_that('init.R: initDGEobj()', { # collect data from test object to initialize new DGEobj diff --git a/tests/testthat/test_reset.R b/tests/testthat/test_reset.R index a75786c..55cd2bd 100644 --- a/tests/testthat/test_reset.R +++ b/tests/testthat/test_reset.R @@ -1,7 +1,7 @@ context("reset.R functions") skip_if(setup_failed) -# test gene level data + test_that('reset.R: gene level data', { test_t_obj <- t_obj diff --git a/tests/testthat/test_rmItem.R b/tests/testthat/test_rmItem.R index 907edc7..ed2e2f6 100644 --- a/tests/testthat/test_rmItem.R +++ b/tests/testthat/test_rmItem.R @@ -1,6 +1,7 @@ context("rmItem.R functions") skip_if(setup_failed) + test_that('rmItem.R: rmItem()', { expect_length(t_obj, 18) rmItem_design_t_obj <- rmItem(t_obj, "design") diff --git a/tests/testthat/test_subset.R b/tests/testthat/test_subset.R index aad8544..187b4a5 100644 --- a/tests/testthat/test_subset.R +++ b/tests/testthat/test_subset.R @@ -1,6 +1,7 @@ context("subset.R functions") skip_if(setup_failed) + test_that('subset.R: subset()', { subsett_obj_1.0 <- subset(t_obj, row = c(1:5)) subsett_obj_1.1 <- t_obj[c(1:5), ] diff --git a/tests/testthat/test_types.R b/tests/testthat/test_types.R index 3b547a7..72641f2 100644 --- a/tests/testthat/test_types.R +++ b/tests/testthat/test_types.R @@ -1,6 +1,7 @@ context("types.R functions") skip_if(setup_failed) + test_that('types.R: baseType()', { expect_equal(baseType(t_obj, "counts"), "assay") expect_equal(baseType(t_obj, "design"), "col") diff --git a/tests/testthat/test_utils.R b/tests/testthat/test_utils.R index a2a0dde..cb71859 100644 --- a/tests/testthat/test_utils.R +++ b/tests/testthat/test_utils.R @@ -1,6 +1,7 @@ context("utils.R functions") skip_if(setup_failed) + test_that('utils.R: dim()/dimnames()', { expect_equal(dim(t_obj), t_dim) dimnames_t_obj <- dimnames(t_obj) diff --git a/vignettes/DGEobj_Overview.Rmd b/vignettes/DGEobj_Overview.Rmd index ded122c..b92a325 100644 --- a/vignettes/DGEobj_Overview.Rmd +++ b/vignettes/DGEobj_Overview.Rmd @@ -1,7 +1,7 @@ --- title: 'DGEobj: An S3 Object to Capture and Annotate DGE Workflows' author: "John R. Thompson" -date: "2022-03-24" +date: "2022-05-12" output: rmarkdown::html_vignette: fig_caption: yes @@ -332,14 +332,14 @@ kable(inventory(dgeObj)) |ItemName |ItemType |BaseType |Parent |Class |Row |Col |DateCreated | |:-------------|:-------------|:--------|:-------------|:----------|:-----|:---|:-------------------| -|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-03-24 11:47:54 | -|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-03-24 11:47:54 | -|design_orig |design_orig |meta | |data.frame |48 |10 |2022-03-24 11:47:54 | -|design |design |col |design_orig |data.frame |48 |10 |2022-03-24 11:47:54 | -|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-03-24 11:47:54 | -|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-03-24 11:47:54 | -|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-03-24 11:47:55 | -|granges |granges |row |geneData |GRanges |32883 |NA |2022-03-24 11:47:55 | +|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-05-12 10:58:09 | +|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-05-12 10:58:09 | +|design_orig |design_orig |meta | |data.frame |48 |10 |2022-05-12 10:58:09 | +|design |design |col |design_orig |data.frame |48 |10 |2022-05-12 10:58:09 | +|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-05-12 10:58:09 | +|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-05-12 10:58:09 | +|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-05-12 10:58:10 | +|granges |granges |row |geneData |GRanges |32883 |NA |2022-05-12 10:58:10 | ## Examine DGEobj Metadata @@ -488,14 +488,14 @@ kable(inventory(dgeObj)) |ItemName |ItemType |BaseType |Parent |Class |Row |Col |DateCreated | |:-------------|:-------------|:--------|:-------------|:----------|:-----|:---|:-------------------| -|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-03-24 11:47:54 | -|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-03-24 11:47:54 | -|design_orig |design_orig |meta | |data.frame |48 |10 |2022-03-24 11:47:54 | -|design |design |col |design_orig |data.frame |48 |10 |2022-03-24 11:47:54 | -|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-03-24 11:47:54 | -|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-03-24 11:47:54 | -|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-03-24 11:47:55 | -|granges |granges |row |geneData |GRanges |32883 |NA |2022-03-24 11:47:55 | +|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-05-12 10:58:09 | +|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-05-12 10:58:09 | +|design_orig |design_orig |meta | |data.frame |48 |10 |2022-05-12 10:58:09 | +|design |design |col |design_orig |data.frame |48 |10 |2022-05-12 10:58:09 | +|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-05-12 10:58:09 | +|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-05-12 10:58:09 | +|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-05-12 10:58:10 | +|granges |granges |row |geneData |GRanges |32883 |NA |2022-05-12 10:58:10 | If just the item names of data stored in the DGEobj are needed, use the base R `names` function. @@ -557,16 +557,16 @@ kable(inventory(newdgeObj)) |ItemName |ItemType |BaseType |Parent |Class |Row |Col |DateCreated | |:-------------|:-------------|:--------|:-------------|:----------|:-----|:---|:-------------------| -|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-03-24 11:47:54 | -|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-03-24 11:47:54 | -|design_orig |design_orig |meta | |data.frame |48 |10 |2022-03-24 11:47:54 | -|design |design |col |design_orig |data.frame |48 |10 |2022-03-24 11:47:54 | -|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-03-24 11:47:54 | -|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-03-24 11:47:54 | -|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-03-24 11:47:55 | -|granges |granges |row |geneData |GRanges |32883 |NA |2022-03-24 11:47:55 | -|AlignmentQC |alignQC |col | |data.frame |48 |172 |2022-03-24 11:47:55 | -|normTMM |DGEList |assay |counts |DGEList |32883 |48 |2022-03-24 11:47:56 | +|counts_orig |counts_orig |meta | |matrix |32883 |48 |2022-05-12 10:58:09 | +|counts |counts |assay |counts_orig |matrix |32883 |48 |2022-05-12 10:58:09 | +|design_orig |design_orig |meta | |data.frame |48 |10 |2022-05-12 10:58:09 | +|design |design |col |design_orig |data.frame |48 |10 |2022-05-12 10:58:09 | +|geneData_orig |geneData_orig |meta | |data.frame |32883 |8 |2022-05-12 10:58:09 | +|geneData |geneData |row |geneData_orig |data.frame |32883 |8 |2022-05-12 10:58:09 | +|granges_orig |granges_orig |meta |geneData_orig |GRanges |32883 |NA |2022-05-12 10:58:10 | +|granges |granges |row |geneData |GRanges |32883 |NA |2022-05-12 10:58:10 | +|AlignmentQC |alignQC |col | |data.frame |48 |172 |2022-05-12 10:58:10 | +|normTMM |DGEList |assay |counts |DGEList |32883 |48 |2022-05-12 10:58:11 | **item** is the actual data object to add. @@ -1023,12 +1023,12 @@ kable(inventory(MetabolomicObj)) |ItemName |ItemType |BaseType |Parent |Class |Row |Col |DateCreated | |:-------------------|:-------------------|:--------|:-------------------|:----------|:-----|:---|:-------------------| -|intensity_orig |intensity_orig |meta | |matrix |32883 |48 |2022-03-24 11:47:58 | -|intensity |intensity |assay |intensity_orig |matrix |32883 |48 |2022-03-24 11:47:58 | -|design_orig |design_orig |meta | |data.frame |48 |10 |2022-03-24 11:47:58 | -|design |design |col |design_orig |data.frame |48 |10 |2022-03-24 11:47:58 | -|metaboliteData_orig |metaboliteData_orig |meta | |data.frame |32883 |8 |2022-03-24 11:47:58 | -|metaboliteData |metaboliteData |row |metaboliteData_orig |data.frame |32883 |8 |2022-03-24 11:47:58 | +|intensity_orig |intensity_orig |meta | |matrix |32883 |48 |2022-05-12 10:58:14 | +|intensity |intensity |assay |intensity_orig |matrix |32883 |48 |2022-05-12 10:58:14 | +|design_orig |design_orig |meta | |data.frame |48 |10 |2022-05-12 10:58:14 | +|design |design |col |design_orig |data.frame |48 |10 |2022-05-12 10:58:14 | +|metaboliteData_orig |metaboliteData_orig |meta | |data.frame |32883 |8 |2022-05-12 10:58:14 | +|metaboliteData |metaboliteData |row |metaboliteData_orig |data.frame |32883 |8 |2022-05-12 10:58:14 | There are simple dimension-based criteria to determine the basetype of a new datatype.