From 1098a3546cd14088576cd86e2994858e076e68e2 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Tue, 12 Jul 2022 09:21:08 +0000 Subject: [PATCH 01/18] Cleared Some notes and warnings of PEcAn.MA package. --- modules/meta.analysis/DESCRIPTION | 12 ++++++------ modules/meta.analysis/R/meta.analysis.R | 1 + modules/meta.analysis/R/meta.analysis.summary.R | 2 +- modules/meta.analysis/R/run.meta.analysis.R | 5 +---- modules/meta.analysis/R/single.MA.R | 2 +- modules/meta.analysis/man/p.point.in.prior.Rd | 2 +- modules/meta.analysis/man/pecan.ma.Rd | 2 ++ modules/meta.analysis/man/single.MA.Rd | 2 ++ 8 files changed, 15 insertions(+), 13 deletions(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index db0f7f145a0..0e08faff6ec 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -25,19 +25,19 @@ Description: The Predictive Ecosystem Carbon Analyzer (PEcAn) is a scientific streamline the interaction between data and models, and to improve the efficacy of scientific investigation. The PEcAn.MA package contains the functions used in the Bayesian meta-analysis of trait data. -Depends: +Imports: + coda (>= 0.18), XML, + R2WinBUGS, lattice, - MASS, PEcAn.utils, - PEcAn.DB -Imports: - coda (>= 0.18), + PEcAn.DB, PEcAn.logger, + MASS, PEcAn.settings, rjags Suggests: - testthat (>= 1.0.2) + testthat (>= 1.0.2), SystemRequirements: JAGS License: BSD_3_clause + file LICENSE Copyright: Authors diff --git a/modules/meta.analysis/R/meta.analysis.R b/modules/meta.analysis/R/meta.analysis.R index 6a55f5d35b1..7bf9da9876a 100644 --- a/modules/meta.analysis/R/meta.analysis.R +++ b/modules/meta.analysis/R/meta.analysis.R @@ -27,6 +27,7 @@ ##' @param prior.distns `data.frame` of prior distributions generated ##' by call to [PEcAn.DB::query.priors()] ##' @param taupriors priors on variance parameters, can be scaled as needed with data mean +##' @param data data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic. ##' @param j.iter number of MCMC samples ##' @param outdir output directory ##' @param random use random effects, `FALSE` by default diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index 1004c7fa686..f6ed14cd275 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -36,7 +36,7 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL for (trait in names(mcmc.object)) { if (gg) { - gg <- require(ggmcmc) + gg <- requireNamespace(ggmcmc) } ## new diagnostic plots. But very slow & !any(grepl('^gg', dir(outdir)))){ if (gg) { diff --git a/modules/meta.analysis/R/run.meta.analysis.R b/modules/meta.analysis/R/run.meta.analysis.R index 308d668d8ad..6a4079860e9 100644 --- a/modules/meta.analysis/R/run.meta.analysis.R +++ b/modules/meta.analysis/R/run.meta.analysis.R @@ -235,15 +235,12 @@ runModule.run.meta.analysis <- function(settings) { ##' ##' used to compare data to prior, meta analysis posterior to prior ##' @title find quantile of point within prior distribution -##' @param point +##' @param point quantile of given prior to return ##' @param prior list of distn, parama, paramb ##' @return result of p(point, parama, paramb) ##' @export p.point.in.prior ##' @author David LeBauer p.point.in.prior <- function(point, prior) { - # Why is this (below) called, and then never used? - prior.median <- do.call(paste0("q", prior$distn), - list(0.5, prior$parama, prior$paramb)) out <- do.call(paste0("p", prior$distn), list(point, prior$parama, prior$paramb)) return(out) diff --git a/modules/meta.analysis/R/single.MA.R b/modules/meta.analysis/R/single.MA.R index 5e5aeb035e8..d53f0aeca5a 100644 --- a/modules/meta.analysis/R/single.MA.R +++ b/modules/meta.analysis/R/single.MA.R @@ -13,8 +13,8 @@ ##' single.MA. This will allow power analysis to run repeated MA outside of the ##' full loop over traits and PFTs. ##' @title Single MA -##' @param data ##' @param j.chains number of chains in meta-analysis +##' @param data data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic ##' @param j.iter number of mcmc samples ##' @param tauA prior on variance parameters ##' @param tauB prior on variance parameters diff --git a/modules/meta.analysis/man/p.point.in.prior.Rd b/modules/meta.analysis/man/p.point.in.prior.Rd index a03b211c5eb..39e2528441a 100644 --- a/modules/meta.analysis/man/p.point.in.prior.Rd +++ b/modules/meta.analysis/man/p.point.in.prior.Rd @@ -7,7 +7,7 @@ p.point.in.prior(point, prior) } \arguments{ -\item{point}{} +\item{point}{quantile of given prior to return} \item{prior}{list of distn, parama, paramb} } diff --git a/modules/meta.analysis/man/pecan.ma.Rd b/modules/meta.analysis/man/pecan.ma.Rd index d97a3146386..886a32a5e76 100644 --- a/modules/meta.analysis/man/pecan.ma.Rd +++ b/modules/meta.analysis/man/pecan.ma.Rd @@ -38,6 +38,8 @@ by call to \code{\link[PEcAn.DB:query.priors]{PEcAn.DB::query.priors()}}} \code{NULL}, only print output to console.} \item{verbose}{Logical. If \code{TRUE} (default), print progress messages.} + +\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic.} } \value{ four chains with 5000 total samples from posterior diff --git a/modules/meta.analysis/man/single.MA.Rd b/modules/meta.analysis/man/single.MA.Rd index 7b729767110..3ce23ada584 100644 --- a/modules/meta.analysis/man/single.MA.Rd +++ b/modules/meta.analysis/man/single.MA.Rd @@ -16,6 +16,8 @@ single.MA( ) } \arguments{ +\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic} + \item{j.chains}{number of chains in meta-analysis} \item{j.iter}{number of mcmc samples} From 20e49b06fddd62be915367386ff71bc87bf33f28 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Tue, 12 Jul 2022 10:28:37 +0000 Subject: [PATCH 02/18] some changes in global variables. --- modules/meta.analysis/R/meta.analysis.summary.R | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index f6ed14cd275..022a07b4169 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -26,6 +26,7 @@ ##' settings$meta.analysis$threshold) ##' } ##' @author David LeBauer, Shawn Serbin +globalVariables(c("ggmcmc","is.mcmc.list","theme_set","theme_bw","ggs","pdf","box","dev.off")) pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FALSE) { fail <- rep(FALSE, length(mcmc.object)) From 7a8962243dd8de1249484409b0bfdf96055817a9 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Tue, 12 Jul 2022 10:28:37 +0000 Subject: [PATCH 03/18] Binding variables locally to the function "pecan.ma.summary" --- modules/meta.analysis/R/meta.analysis.summary.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index f6ed14cd275..d457008bf5b 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -27,7 +27,7 @@ ##' } ##' @author David LeBauer, Shawn Serbin pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FALSE) { - + ggmcmc <- is.mcmc.list <- theme_set <- theme_bw <- ggs <- pdf<- box <- dev.off <- NULL fail <- rep(FALSE, length(mcmc.object)) names(fail) <- names(mcmc.object) not.converged <- data.frame() From c874c0cb5e0829793341f593a6c2c2813da028ff Mon Sep 17 00:00:00 2001 From: nanu1605 <83662210+nanu1605@users.noreply.github.com> Date: Wed, 13 Jul 2022 01:46:53 +0530 Subject: [PATCH 04/18] Update modules/meta.analysis/R/meta.analysis.summary.R Co-authored-by: Chris Black --- modules/meta.analysis/R/meta.analysis.summary.R | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index d457008bf5b..a582843c65e 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -36,7 +36,12 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL for (trait in names(mcmc.object)) { if (gg) { - gg <- requireNamespace(ggmcmc) + if (!requireNamespace(ggmcmc, quietly = TRUE)) { + PEcAn.logger::logger.severe( + "Can't find package 'ggmcmc',", + "needed by `PEcAn.MA::meta.analysis.summary()` when `gg = TRUE`.", + "Please install it and try again.") + } } ## new diagnostic plots. But very slow & !any(grepl('^gg', dir(outdir)))){ if (gg) { From c88521506f48bab1a264dd3a640354362a346824 Mon Sep 17 00:00:00 2001 From: nanu1605 <83662210+nanu1605@users.noreply.github.com> Date: Wed, 13 Jul 2022 01:47:42 +0530 Subject: [PATCH 05/18] Update modules/meta.analysis/DESCRIPTION Co-authored-by: Chris Black --- modules/meta.analysis/DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index 0e08faff6ec..c21dd138f59 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -37,7 +37,8 @@ Imports: PEcAn.settings, rjags Suggests: - testthat (>= 1.0.2), + ggmcmc, + testthat (>= 1.0.2) SystemRequirements: JAGS License: BSD_3_clause + file LICENSE Copyright: Authors From df5c7a14bb89c803bb0ccd149448bdec6aadfa17 Mon Sep 17 00:00:00 2001 From: nanu1605 <83662210+nanu1605@users.noreply.github.com> Date: Wed, 13 Jul 2022 01:47:58 +0530 Subject: [PATCH 06/18] Update modules/meta.analysis/R/meta.analysis.R Co-authored-by: Chris Black --- modules/meta.analysis/R/meta.analysis.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/meta.analysis/R/meta.analysis.R b/modules/meta.analysis/R/meta.analysis.R index 7bf9da9876a..3cc3edad9a3 100644 --- a/modules/meta.analysis/R/meta.analysis.R +++ b/modules/meta.analysis/R/meta.analysis.R @@ -27,7 +27,9 @@ ##' @param prior.distns `data.frame` of prior distributions generated ##' by call to [PEcAn.DB::query.priors()] ##' @param taupriors priors on variance parameters, can be scaled as needed with data mean -##' @param data data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic. +##' @param data data frame generated by jagify function +##' with indexed values for greenhouse, treatment, and site (ghs, trt, site) +##' as well as Y, SE, and n for each observation or summary statistic. ##' @param j.iter number of MCMC samples ##' @param outdir output directory ##' @param random use random effects, `FALSE` by default From 4a37f075d73ea5e75668c64cbffb52500ac48238 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 13:11:37 +0000 Subject: [PATCH 07/18] Fixed undefined global function. --- modules/meta.analysis/R/approx.posterior.R | 28 +++++++++---------- modules/meta.analysis/R/meta.analysis.R | 6 ++-- .../meta.analysis/R/meta.analysis.summary.R | 17 ++++++----- modules/meta.analysis/R/run.meta.analysis.R | 10 +++---- modules/meta.analysis/R/single.MA.R | 4 ++- 5 files changed, 33 insertions(+), 32 deletions(-) diff --git a/modules/meta.analysis/R/approx.posterior.R b/modules/meta.analysis/R/approx.posterior.R index 2864e7f648d..f988a2959f8 100644 --- a/modules/meta.analysis/R/approx.posterior.R +++ b/modules/meta.analysis/R/approx.posterior.R @@ -34,7 +34,7 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL posteriors <- priors do.plot <- !is.null(outdir) if (do.plot == TRUE) { - pdf(file.path(outdir, paste("posteriors", filename.flag, ".pdf", sep = ""))) + grDevices::pdf(file.path(outdir, paste("posteriors", filename.flag, ".pdf", sep = ""))) } ## loop over traits @@ -55,7 +55,7 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL zerobound <- c("exp", "gamma", "lnorm", "weibull") if (pdist %in% "beta") { m <- mean(dat) - v <- var(dat) + v <- stats::var(dat) k <- (1 - m)/m a <- (k / ((1 + k) ^ 2 * v) - 1) / (1 + k) b <- a * k @@ -63,13 +63,13 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL if (do.plot) { x <- seq(0, 1, length = 1000) - plot(density(dat), col = 2, lwd = 2, main = trait) + plot(stats::density(dat), col = 2, lwd = 2, main = trait) if (!is.null(trait.data)) { - rug(trait.data[[trait]]$Y, lwd = 2, col = "purple") + graphics::rug(trait.data[[trait]]$Y, lwd = 2, col = "purple") } - lines(x, dbeta(x, fit$estimate[1], fit$estimate[2]), lwd = 2, type = "l") - lines(x, dbeta(x, pparm[1], pparm[2]), lwd = 3, type = "l", col = 3) - legend("topleft", + graphics::lines(x, dbeta(x, fit$estimate[1], fit$estimate[2]), lwd = 2, type = "l") + graphics::lines(x, dbeta(x, pparm[1], pparm[2]), lwd = 3, type = "l", col = 3) + graphics::legend("topleft", legend = c("data", "prior", "post", "approx"), col = c("purple", 3, 2, 1), lwd = 2) } @@ -111,7 +111,7 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL ## default: NORMAL posteriors[trait, "distn"] <- "norm" posteriors[trait, "parama"] <- mean(dat) - posteriors[trait, "paramb"] <- sd(dat) + posteriors[trait, "paramb"] <- stats::sd(dat) if (do.plot) { .dens_plot(posteriors, priors, ptrait, dat, trait, trait.data) } @@ -119,7 +119,7 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL } ## end trait loop if (do.plot) { - dev.off() + imguR::dev.off() } return(posteriors) @@ -159,13 +159,13 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL rng <- range(trait.data[[trait]]$Y) } - plot(density(dat), col = 2, lwd = 2, main = trait, xlim = rng) + plot(stats::density(dat), col = 2, lwd = 2, main = trait, xlim = rng) if (!is.null(trait.data)) { - rug(trait.data[[trait]]$Y, lwd = 2, col = "purple") + graphics::rug(trait.data[[trait]]$Y, lwd = 2, col = "purple") } - lines(x, f(x), lwd = 2, type = "l") - lines(x, fp(x), lwd = 3, type = "l", col = 3) - legend("topleft", + graphics::lines(x, f(x), lwd = 2, type = "l") + graphics::lines(x, fp(x), lwd = 3, type = "l", col = 3) + graphics::legend("topleft", legend = c("data", "prior", "post", "approx"), col = c("purple", 3, 2, 1), lwd = 2) } diff --git a/modules/meta.analysis/R/meta.analysis.R b/modules/meta.analysis/R/meta.analysis.R index 3cc3edad9a3..290ef2391d7 100644 --- a/modules/meta.analysis/R/meta.analysis.R +++ b/modules/meta.analysis/R/meta.analysis.R @@ -127,10 +127,10 @@ pecan.ma <- function(trait.data, prior.distns, "\nmean:", signif(mean(data$Y, na.rm = TRUE), 3), "\nn:", length(data$Y))) writeLines("stem plot of data points") - writeLines(paste(stem(data$Y))) + writeLines(paste(graphics::stem(data$Y))) if (any(!is.na(data$obs.prec)) && all(!is.infinite(data$obs.prec))) { writeLines("stem plot of obs.prec:") - writeLines(paste(stem(data[["obs.prec"]] ^ 2))) + writeLines(paste(graphics::stem(data[["obs.prec"]] ^ 2))) } else { writeLines(paste("no estimates of SD for", trait.name)) } @@ -155,7 +155,7 @@ pecan.ma <- function(trait.data, prior.distns, print(summary(jags.out)) } - jags.out.trunc <- window(jags.out, start = j.iter / 2) + jags.out.trunc <- stats::window(jags.out, start = j.iter / 2) mcmc.object[[trait.name]] <- jags.out.trunc } diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index a582843c65e..4e29597d163 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -27,7 +27,6 @@ ##' } ##' @author David LeBauer, Shawn Serbin pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FALSE) { - ggmcmc <- is.mcmc.list <- theme_set <- theme_bw <- ggs <- pdf<- box <- dev.off <- NULL fail <- rep(FALSE, length(mcmc.object)) names(fail) <- names(mcmc.object) not.converged <- data.frame() @@ -45,9 +44,9 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL } ## new diagnostic plots. But very slow & !any(grepl('^gg', dir(outdir)))){ if (gg) { - if (is.mcmc.list(mcmc.object[[trait]])) { - theme_set(theme_bw()) - ggmcmc(ggs(mcmc.object[[trait]]), + if (coda::is.mcmc.list(mcmc.object[[trait]])) { + ggplot2::theme_set(ggplot2::theme_bw()) + ggmcmc::ggmcmc(ggmcmc::ggs(mcmc.object[[trait]]), plot = c("ggs_density", "ggs_traceplot", "ggs_autocorrelation", "ggs_Rhat", "ggs_geweke"), file.path(outdir, paste0("gg.ma.summaryplots.", trait, ".pdf"))) } @@ -59,23 +58,23 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL maparms <- .maparms[c(which(.maparms %in% .parms), which(!.maparms %in% .parms))] ## plots for mcmc diagnosis - pdf(file.path(outdir, paste0("ma.summaryplots.", trait, ".pdf"))) + grDevices::pdf(file.path(outdir, paste0("ma.summaryplots.", trait, ".pdf"))) for (i in maparms) { plot(mcmc.object[[trait]][, i], trace = FALSE, density = TRUE, main = paste("summary plots of", i, "for", pft, trait)) - box(lwd = 2) + graphics::box(lwd = 2) plot(mcmc.object[[trait]][, i], density = FALSE) - box(lwd = 2) + graphics::box(lwd = 2) coda::autocorr.plot(mcmc.object[[trait]][, i][1], xlim = c(1, 50)) - box(lwd = 2) + graphics::box(lwd = 2) } lattice::xyplot(mcmc.object[[trait]]) lattice::densityplot(mcmc.object[[trait]]) coda::acfplot(mcmc.object[[trait]]) - dev.off() + imguR::dev.off() ## G-R diagnostics to ensure convergence gd <- coda::gelman.diag(mcmc.object[[trait]]) diff --git a/modules/meta.analysis/R/run.meta.analysis.R b/modules/meta.analysis/R/run.meta.analysis.R index 6a4079860e9..ab474a966eb 100644 --- a/modules/meta.analysis/R/run.meta.analysis.R +++ b/modules/meta.analysis/R/run.meta.analysis.R @@ -94,7 +94,7 @@ run.meta.analysis.pft <- function(pft, iterations, random = TRUE, threshold = 1. ## Check that data is consistent with prior for (trait in names(jagged.data)) { - data.median <- median(jagged.data[[trait]]$Y) + data.median <- stats::median(jagged.data[[trait]]$Y) prior <- prior.distns[trait, ] check <- check_consistent(data.median, prior, trait, "data") if (is.na(check)) { @@ -123,7 +123,7 @@ run.meta.analysis.pft <- function(pft, iterations, random = TRUE, threshold = 1. ### Check that meta-analysis posteriors are consistent with priors for (trait in names(trait.mcmc)) { - post.median <- median(as.matrix(trait.mcmc[[trait]][, "beta.o"])) + post.median <- stats::median(as.matrix(trait.mcmc[[trait]][, "beta.o"])) prior <- prior.distns[trait, ] check <- check_consistent(post.median, prior, trait, "data") if (is.na(check)) { @@ -157,7 +157,7 @@ run.meta.analysis.pft <- function(pft, iterations, random = TRUE, threshold = 1. } filename <- file.path(pathname, file) file.copy(file.path(pft$outdir, file), filename) - dbfile.insert(pathname, file, "Posterior", pft$posteriorid, dbcon) + PEcAn.DB::dbfile.insert(pathname, file, "Posterior", pft$posteriorid, dbcon) } } # run.meta.analysis.pft @@ -185,8 +185,8 @@ run.meta.analysis.pft <- function(pft, iterations, random = TRUE, threshold = 1. ##' @author Shawn Serbin, David LeBauer run.meta.analysis <- function(pfts, iterations, random = TRUE, threshold = 1.2, dbfiles, database, use_ghs = TRUE) { # process all pfts - dbcon <- db.open(database) - on.exit(db.close(dbcon), add = TRUE) + dbcon <- PEcAn.DB::db.open(database) + on.exit(PEcAn.DB::db.close(dbcon), add = TRUE) result <- lapply(pfts, run.meta.analysis.pft, iterations = iterations, random = random, threshold = threshold, dbfiles = dbfiles, dbcon = dbcon, use_ghs = use_ghs) diff --git a/modules/meta.analysis/R/single.MA.R b/modules/meta.analysis/R/single.MA.R index d53f0aeca5a..2f38b0456cd 100644 --- a/modules/meta.analysis/R/single.MA.R +++ b/modules/meta.analysis/R/single.MA.R @@ -14,7 +14,9 @@ ##' full loop over traits and PFTs. ##' @title Single MA ##' @param j.chains number of chains in meta-analysis -##' @param data data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic +##' @param data data frame generated by jagify function +##' with indexed values for greenhouse, treatment, and site (ghs, trt, site) +##' as well as Y, SE, and n for each observation or summary statistic. ##' @param j.iter number of mcmc samples ##' @param tauA prior on variance parameters ##' @param tauB prior on variance parameters From 8304559e73c42ef46ca1f48926dfba58b71421aa Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 13:18:31 +0000 Subject: [PATCH 08/18] Resolved R2WinBUGS dependency. --- modules/meta.analysis/DESCRIPTION | 1 - modules/meta.analysis/R/meta.analysis.write.model.R | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index c21dd138f59..1b01186344d 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -28,7 +28,6 @@ Description: The Predictive Ecosystem Carbon Analyzer (PEcAn) is a scientific Imports: coda (>= 0.18), XML, - R2WinBUGS, lattice, PEcAn.utils, PEcAn.DB, diff --git a/modules/meta.analysis/R/meta.analysis.write.model.R b/modules/meta.analysis/R/meta.analysis.write.model.R index 7ddfc693ab9..304cae315b1 100644 --- a/modules/meta.analysis/R/meta.analysis.write.model.R +++ b/modules/meta.analysis/R/meta.analysis.write.model.R @@ -9,7 +9,7 @@ ##' Convert template ma.model.template.R to a JAGS model. ##' -##' Writes a meta-analysis model based on available data and prior specification. Adapted from \code{\link[R2WinBUGS]{write.model}} +##' Writes a meta-analysis model based on available data and prior specification. Adapted from \code{R2WinBUGS::write.model} ##' @name write.ma.model ##' @title write.ma.model ##' @param modelfile model template file (ma.model.template.R) From aca2329a2e674f440c7932b012d1397e1e2e9e9f Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 13:44:23 +0000 Subject: [PATCH 09/18] Changed Documentation. --- modules/meta.analysis/man/pecan.ma.Rd | 4 +++- modules/meta.analysis/man/single.MA.Rd | 4 +++- modules/meta.analysis/man/write.ma.model.Rd | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/meta.analysis/man/pecan.ma.Rd b/modules/meta.analysis/man/pecan.ma.Rd index 886a32a5e76..0ed7a41f4ff 100644 --- a/modules/meta.analysis/man/pecan.ma.Rd +++ b/modules/meta.analysis/man/pecan.ma.Rd @@ -39,7 +39,9 @@ by call to \code{\link[PEcAn.DB:query.priors]{PEcAn.DB::query.priors()}}} \item{verbose}{Logical. If \code{TRUE} (default), print progress messages.} -\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic.} +\item{data}{data frame generated by jagify function +with indexed values for greenhouse, treatment, and site (ghs, trt, site) +as well as Y, SE, and n for each observation or summary statistic.} } \value{ four chains with 5000 total samples from posterior diff --git a/modules/meta.analysis/man/single.MA.Rd b/modules/meta.analysis/man/single.MA.Rd index 3ce23ada584..9956175aa04 100644 --- a/modules/meta.analysis/man/single.MA.Rd +++ b/modules/meta.analysis/man/single.MA.Rd @@ -16,7 +16,9 @@ single.MA( ) } \arguments{ -\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic} +\item{data}{data frame generated by jagify function +with indexed values for greenhouse, treatment, and site (ghs, trt, site) +as well as Y, SE, and n for each observation or summary statistic.} \item{j.chains}{number of chains in meta-analysis} diff --git a/modules/meta.analysis/man/write.ma.model.Rd b/modules/meta.analysis/man/write.ma.model.Rd index dec1ec1ee23..8766b63b58d 100644 --- a/modules/meta.analysis/man/write.ma.model.Rd +++ b/modules/meta.analysis/man/write.ma.model.Rd @@ -51,7 +51,7 @@ Nothing, but as a side effect, the model is written Convert template ma.model.template.R to a JAGS model. } \details{ -Writes a meta-analysis model based on available data and prior specification. Adapted from \code{\link[R2WinBUGS]{write.model}} +Writes a meta-analysis model based on available data and prior specification. Adapted from \code{R2WinBUGS::write.model} } \author{ David LeBauer and Mike Dietze, based on original work on the \code{write.model} function in the \code{R2WinBUGS} package by Jouni Kerman and Uwe Ligges. From 9bcf367ccf53c7915b3fd0951b43dbcd8af9ee8a Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 13:44:23 +0000 Subject: [PATCH 10/18] Changed Documentation. --- modules/meta.analysis/R/approx.posterior.R | 2 +- modules/meta.analysis/R/meta.analysis.summary.R | 2 +- modules/meta.analysis/man/pecan.ma.Rd | 4 +++- modules/meta.analysis/man/single.MA.Rd | 4 +++- modules/meta.analysis/man/write.ma.model.Rd | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/meta.analysis/R/approx.posterior.R b/modules/meta.analysis/R/approx.posterior.R index f988a2959f8..451f9d29467 100644 --- a/modules/meta.analysis/R/approx.posterior.R +++ b/modules/meta.analysis/R/approx.posterior.R @@ -119,7 +119,7 @@ approx.posterior <- function(trait.mcmc, priors, trait.data = NULL, outdir = NUL } ## end trait loop if (do.plot) { - imguR::dev.off() + grDevices::dev.off() } return(posteriors) diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index 4e29597d163..e63b346bed7 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -74,7 +74,7 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL lattice::xyplot(mcmc.object[[trait]]) lattice::densityplot(mcmc.object[[trait]]) coda::acfplot(mcmc.object[[trait]]) - imguR::dev.off() + grDevices::dev.off() ## G-R diagnostics to ensure convergence gd <- coda::gelman.diag(mcmc.object[[trait]]) diff --git a/modules/meta.analysis/man/pecan.ma.Rd b/modules/meta.analysis/man/pecan.ma.Rd index 886a32a5e76..0ed7a41f4ff 100644 --- a/modules/meta.analysis/man/pecan.ma.Rd +++ b/modules/meta.analysis/man/pecan.ma.Rd @@ -39,7 +39,9 @@ by call to \code{\link[PEcAn.DB:query.priors]{PEcAn.DB::query.priors()}}} \item{verbose}{Logical. If \code{TRUE} (default), print progress messages.} -\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic.} +\item{data}{data frame generated by jagify function +with indexed values for greenhouse, treatment, and site (ghs, trt, site) +as well as Y, SE, and n for each observation or summary statistic.} } \value{ four chains with 5000 total samples from posterior diff --git a/modules/meta.analysis/man/single.MA.Rd b/modules/meta.analysis/man/single.MA.Rd index 3ce23ada584..9956175aa04 100644 --- a/modules/meta.analysis/man/single.MA.Rd +++ b/modules/meta.analysis/man/single.MA.Rd @@ -16,7 +16,9 @@ single.MA( ) } \arguments{ -\item{data}{data frame generated by jagify function with indexed values for greenhouse, treatment, and site (ghs, trt, site) as well as Y, SE, and n for each observation or summary statistic} +\item{data}{data frame generated by jagify function +with indexed values for greenhouse, treatment, and site (ghs, trt, site) +as well as Y, SE, and n for each observation or summary statistic.} \item{j.chains}{number of chains in meta-analysis} diff --git a/modules/meta.analysis/man/write.ma.model.Rd b/modules/meta.analysis/man/write.ma.model.Rd index dec1ec1ee23..8766b63b58d 100644 --- a/modules/meta.analysis/man/write.ma.model.Rd +++ b/modules/meta.analysis/man/write.ma.model.Rd @@ -51,7 +51,7 @@ Nothing, but as a side effect, the model is written Convert template ma.model.template.R to a JAGS model. } \details{ -Writes a meta-analysis model based on available data and prior specification. Adapted from \code{\link[R2WinBUGS]{write.model}} +Writes a meta-analysis model based on available data and prior specification. Adapted from \code{R2WinBUGS::write.model} } \author{ David LeBauer and Mike Dietze, based on original work on the \code{write.model} function in the \code{R2WinBUGS} package by Jouni Kerman and Uwe Ligges. From 4f972ca19314b49d59b209ace14f0c7e16f45cb0 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 15:25:56 +0000 Subject: [PATCH 11/18] added ggplot2 to DESCRIPTION --- modules/meta.analysis/DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index 1b01186344d..692c423f73b 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -34,7 +34,8 @@ Imports: PEcAn.logger, MASS, PEcAn.settings, - rjags + rjags, + ggplot2 Suggests: ggmcmc, testthat (>= 1.0.2) From c4c7827d7ea6b7fd3f3b59a988d67a639a7450d5 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Wed, 13 Jul 2022 15:55:15 +0000 Subject: [PATCH 12/18] Added ggplot2 in Suggests. --- modules/meta.analysis/DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index 692c423f73b..614da0c60a1 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -34,10 +34,10 @@ Imports: PEcAn.logger, MASS, PEcAn.settings, - rjags, - ggplot2 + rjags Suggests: ggmcmc, + ggplot2, testthat (>= 1.0.2) SystemRequirements: JAGS License: BSD_3_clause + file LICENSE From 49337865c53290f84bbd0bdfbde499f960235fdf Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Fri, 15 Jul 2022 13:34:07 +0000 Subject: [PATCH 13/18] updated pecan.depends.R --- Makefile.depends | 90 +++++++++++++++++++--------------- docker/depends/pecan.depends.R | 1 + 2 files changed, 52 insertions(+), 39 deletions(-) diff --git a/Makefile.depends b/Makefile.depends index cc64b4f329a..b9259abf9de 100644 --- a/Makefile.depends +++ b/Makefile.depends @@ -1,43 +1,55 @@ # autogenerated -$(call depends,base/all): | .install/base/db .install/base/settings .install/modules/meta.analysis .install/base/logger .install/base/utils .install/modules/uncertainty .install/modules/data.atmosphere .install/modules/data.land .install/modules/data.remote .install/modules/assim.batch .install/modules/emulator .install/modules/priors .install/modules/benchmark .install/base/remote .install/base/workflow .install/models/ed .install/models/sipnet .install/models/biocro .install/models/dalec .install/models/linkages .install/modules/allometry .install/modules/photosynthesis -$(call depends,base/db): | .install/base/logger .install/base/remote .install/base/utils +$(call depends,base/all): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/settings .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils .install/modules/uncertainty .install/modules/data.atmosphere .install/modules/data.land .install/modules/data.remote .install/modules/assim.batch .install/modules/emulator .install/modules/priors .install/modules/benchmark .install/base/remote .install/base/workflow .install/models/ed .install/models/sipnet .install/models/biocro .install/models/dalec .install/models/linkages .install/modules/allometry .install/modules/photosynthesis +$(call depends,base/db): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils $(call depends,base/logger): | -$(call depends,base/qaqc): | .install/base/logger .install/models/biocro .install/models/ed .install/models/sipnet .install/base/utils -$(call depends,base/remote): | .install/base/logger -$(call depends,base/settings): | .install/base/db .install/base/logger .install/base/remote .install/base/utils -$(call depends,base/utils): | .install/base/logger .install/base/remote -$(call depends,base/visualization): | .install/base/db .install/base/logger .install/base/utils -$(call depends,base/workflow): | .install/modules/data.atmosphere .install/modules/data.land .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils -$(call depends,modules/allometry): | .install/base/logger .install/base/db -$(call depends,modules/assim.batch): | .install/modules/benchmark .install/base/db .install/modules/emulator .install/base/logger .install/modules/meta.analysis .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils .install/base/workflow -$(call depends,modules/assim.sequential): | .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/workflow .install/modules/benchmark .install/modules/data.remote -$(call depends,modules/benchmark): | .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/utils .install/modules/data.land -$(call depends,modules/data.atmosphere): | .install/base/db .install/base/logger .install/base/remote .install/base/utils -$(call depends,modules/data.hydrology): | .install/base/logger .install/base/utils -$(call depends,modules/data.land): | .install/modules/benchmark .install/modules/data.atmosphere .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/utils .install/base/visualization -$(call depends,modules/data.remote): | .install/base/db .install/base/utils .install/base/logger .install/base/remote -$(call depends,modules/emulator): | .install/base/logger -$(call depends,modules/meta.analysis): | .install/base/utils .install/base/db .install/base/logger .install/base/settings +$(call depends,base/PEcAn.DB.Rcheck/00_pkg_src/PEcAn.DB): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,base/PEcAn.DB.Rcheck/PEcAn.DB): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,base/PEcAn.logger.Rcheck/00_pkg_src/PEcAn.logger): | +$(call depends,base/PEcAn.logger.Rcheck/PEcAn.logger): | +$(call depends,base/PEcAn.remote.Rcheck/00_pkg_src/PEcAn.remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger +$(call depends,base/PEcAn.remote.Rcheck/PEcAn.remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger +$(call depends,base/PEcAn.utils.Rcheck/00_pkg_src/PEcAn.utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/PEcAn.DB.Rcheck/PEcAn.DB +$(call depends,base/PEcAn.utils.Rcheck/PEcAn.utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/PEcAn.DB.Rcheck/PEcAn.DB +$(call depends,base/qaqc): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/models/biocro .install/models/ed .install/models/sipnet .install/base/utils +$(call depends,base/remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger +$(call depends,base/settings): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,base/utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,base/visualization): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,base/workflow): | .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils +$(call depends,modules/allometry): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/PEcAn.DB.Rcheck/PEcAn.DB +$(call depends,modules/assim.batch): | .install/modules/benchmark .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/modules/emulator .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils .install/base/workflow +$(call depends,modules/assim.sequential): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/workflow .install/modules/benchmark .install/modules/data.remote +$(call depends,modules/benchmark): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils .install/modules/data.land +$(call depends,modules/data.atmosphere): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,modules/data.hydrology): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,modules/data.land): | .install/modules/benchmark .install/modules/data.atmosphere .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils .install/base/visualization +$(call depends,modules/data.remote): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,modules/emulator): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger +$(call depends,modules/meta.analysis): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings +$(call depends,modules/PEcAn.MA.Rcheck/00_pkg_src/PEcAn.MA): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings +$(call depends,modules/PEcAn.MA.Rcheck/PEcAn.MA): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings +$(call depends,modules/PEcAnRTM.Rcheck/00_pkg_src/PEcAnRTM): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed +$(call depends,modules/PEcAnRTM.Rcheck/PEcAnRTM): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed $(call depends,modules/photosynthesis): | -$(call depends,modules/priors): | .install/base/utils .install/base/logger .install/modules/meta.analysis .install/base/visualization -$(call depends,modules/rtm): | .install/base/logger .install/modules/assim.batch .install/base/utils .install/models/ed -$(call depends,modules/uncertainty): | .install/base/utils .install/modules/priors .install/base/db .install/modules/emulator .install/base/logger .install/base/settings -$(call depends,models/basgra): | .install/base/logger .install/modules/data.atmosphere .install/base/utils -$(call depends,models/biocro): | .install/base/logger .install/base/remote .install/base/utils .install/base/settings .install/modules/data.atmosphere .install/modules/data.land .install/base/db -$(call depends,models/cable): | .install/base/logger .install/base/utils -$(call depends,models/clm45): | .install/base/logger .install/base/utils -$(call depends,models/dalec): | .install/base/logger .install/base/remote .install/base/utils +$(call depends,modules/priors): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/visualization +$(call depends,modules/rtm): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed +$(call depends,modules/uncertainty): | .install/base/utils .install/modules/priors .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/modules/emulator .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings +$(call depends,models/basgra): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/data.atmosphere .install/base/utils +$(call depends,models/biocro): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils .install/base/settings .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.DB.Rcheck/PEcAn.DB +$(call depends,models/cable): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,models/clm45): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,models/dalec): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils $(call depends,models/dvmdostem): | .install/base/utils -$(call depends,models/ed): | .install/modules/data.atmosphere .install/modules/data.land .install/base/logger .install/base/remote .install/base/settings .install/base/utils -$(call depends,models/fates): | .install/base/utils .install/base/logger .install/base/remote -$(call depends,models/gday): | .install/base/utils .install/base/logger .install/base/remote -$(call depends,models/jules): | .install/base/utils .install/base/logger .install/base/remote -$(call depends,models/linkages): | .install/base/utils .install/modules/data.atmosphere .install/base/logger .install/base/remote -$(call depends,models/lpjguess): | .install/base/utils .install/base/logger .install/base/remote -$(call depends,models/maat): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/settings .install/base/utils -$(call depends,models/maespa): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/utils -$(call depends,models/preles): | .install/base/utils .install/base/logger .install/modules/data.atmosphere .install/base/utils -$(call depends,models/sibcasa): | .install/base/logger .install/base/utils -$(call depends,models/sipnet): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/utils -$(call depends,models/stics): | .install/base/settings .install/base/db .install/base/logger .install/base/utils .install/base/remote -$(call depends,models/template): | .install/base/db .install/base/logger .install/base/utils +$(call depends,models/ed): | .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils +$(call depends,models/fates): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,models/gday): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,models/jules): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,models/linkages): | .install/base/utils .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,models/lpjguess): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote +$(call depends,models/maat): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils +$(call depends,models/maespa): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,models/preles): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/data.atmosphere .install/base/utils +$(call depends,models/sibcasa): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,models/sipnet): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,models/stics): | .install/base/settings .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils .install/base/remote +$(call depends,models/template): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils diff --git a/docker/depends/pecan.depends.R b/docker/depends/pecan.depends.R index 08ea1dd9fca..db47fced010 100644 --- a/docker/depends/pecan.depends.R +++ b/docker/depends/pecan.depends.R @@ -45,6 +45,7 @@ wanted <- c( 'geonames', 'getPass', 'ggmap', +'ggmcmc', 'ggplot2', 'ggrepel', 'glue', From bc37d100c125d704e6b940849ff49a6434108192 Mon Sep 17 00:00:00 2001 From: nanu1605 <83662210+nanu1605@users.noreply.github.com> Date: Sat, 16 Jul 2022 09:13:08 +0530 Subject: [PATCH 14/18] Update modules/meta.analysis/R/meta.analysis.summary.R Co-authored-by: Chris Black --- modules/meta.analysis/R/meta.analysis.summary.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/meta.analysis/R/meta.analysis.summary.R b/modules/meta.analysis/R/meta.analysis.summary.R index e63b346bed7..62cbf6faf13 100644 --- a/modules/meta.analysis/R/meta.analysis.summary.R +++ b/modules/meta.analysis/R/meta.analysis.summary.R @@ -35,7 +35,7 @@ pecan.ma.summary <- function(mcmc.object, pft, outdir, threshold = 1.2, gg = FAL for (trait in names(mcmc.object)) { if (gg) { - if (!requireNamespace(ggmcmc, quietly = TRUE)) { + if (!requireNamespace("ggmcmc", quietly = TRUE)) { PEcAn.logger::logger.severe( "Can't find package 'ggmcmc',", "needed by `PEcAn.MA::meta.analysis.summary()` when `gg = TRUE`.", From 7c3526f71bd0ef9a046a9655359b20374c75bff2 Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Sat, 16 Jul 2022 05:03:31 +0000 Subject: [PATCH 15/18] changed Makefile.depends --- Makefile.depends | 90 +++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 51 deletions(-) diff --git a/Makefile.depends b/Makefile.depends index b9259abf9de..cc64b4f329a 100644 --- a/Makefile.depends +++ b/Makefile.depends @@ -1,55 +1,43 @@ # autogenerated -$(call depends,base/all): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/settings .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils .install/modules/uncertainty .install/modules/data.atmosphere .install/modules/data.land .install/modules/data.remote .install/modules/assim.batch .install/modules/emulator .install/modules/priors .install/modules/benchmark .install/base/remote .install/base/workflow .install/models/ed .install/models/sipnet .install/models/biocro .install/models/dalec .install/models/linkages .install/modules/allometry .install/modules/photosynthesis -$(call depends,base/db): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,base/all): | .install/base/db .install/base/settings .install/modules/meta.analysis .install/base/logger .install/base/utils .install/modules/uncertainty .install/modules/data.atmosphere .install/modules/data.land .install/modules/data.remote .install/modules/assim.batch .install/modules/emulator .install/modules/priors .install/modules/benchmark .install/base/remote .install/base/workflow .install/models/ed .install/models/sipnet .install/models/biocro .install/models/dalec .install/models/linkages .install/modules/allometry .install/modules/photosynthesis +$(call depends,base/db): | .install/base/logger .install/base/remote .install/base/utils $(call depends,base/logger): | -$(call depends,base/PEcAn.DB.Rcheck/00_pkg_src/PEcAn.DB): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,base/PEcAn.DB.Rcheck/PEcAn.DB): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,base/PEcAn.logger.Rcheck/00_pkg_src/PEcAn.logger): | -$(call depends,base/PEcAn.logger.Rcheck/PEcAn.logger): | -$(call depends,base/PEcAn.remote.Rcheck/00_pkg_src/PEcAn.remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger -$(call depends,base/PEcAn.remote.Rcheck/PEcAn.remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger -$(call depends,base/PEcAn.utils.Rcheck/00_pkg_src/PEcAn.utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/PEcAn.DB.Rcheck/PEcAn.DB -$(call depends,base/PEcAn.utils.Rcheck/PEcAn.utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/PEcAn.DB.Rcheck/PEcAn.DB -$(call depends,base/qaqc): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/models/biocro .install/models/ed .install/models/sipnet .install/base/utils -$(call depends,base/remote): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger -$(call depends,base/settings): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,base/utils): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,base/visualization): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils -$(call depends,base/workflow): | .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils -$(call depends,modules/allometry): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/PEcAn.DB.Rcheck/PEcAn.DB -$(call depends,modules/assim.batch): | .install/modules/benchmark .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/modules/emulator .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils .install/base/workflow -$(call depends,modules/assim.sequential): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/workflow .install/modules/benchmark .install/modules/data.remote -$(call depends,modules/benchmark): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils .install/modules/data.land -$(call depends,modules/data.atmosphere): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,modules/data.hydrology): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils -$(call depends,modules/data.land): | .install/modules/benchmark .install/modules/data.atmosphere .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils .install/base/visualization -$(call depends,modules/data.remote): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,modules/emulator): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger -$(call depends,modules/meta.analysis): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings -$(call depends,modules/PEcAn.MA.Rcheck/00_pkg_src/PEcAn.MA): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings -$(call depends,modules/PEcAn.MA.Rcheck/PEcAn.MA): | .install/base/utils .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings -$(call depends,modules/PEcAnRTM.Rcheck/00_pkg_src/PEcAnRTM): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed -$(call depends,modules/PEcAnRTM.Rcheck/PEcAnRTM): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed +$(call depends,base/qaqc): | .install/base/logger .install/models/biocro .install/models/ed .install/models/sipnet .install/base/utils +$(call depends,base/remote): | .install/base/logger +$(call depends,base/settings): | .install/base/db .install/base/logger .install/base/remote .install/base/utils +$(call depends,base/utils): | .install/base/logger .install/base/remote +$(call depends,base/visualization): | .install/base/db .install/base/logger .install/base/utils +$(call depends,base/workflow): | .install/modules/data.atmosphere .install/modules/data.land .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils +$(call depends,modules/allometry): | .install/base/logger .install/base/db +$(call depends,modules/assim.batch): | .install/modules/benchmark .install/base/db .install/modules/emulator .install/base/logger .install/modules/meta.analysis .install/base/remote .install/base/settings .install/modules/uncertainty .install/base/utils .install/base/workflow +$(call depends,modules/assim.sequential): | .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/workflow .install/modules/benchmark .install/modules/data.remote +$(call depends,modules/benchmark): | .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/utils .install/modules/data.land +$(call depends,modules/data.atmosphere): | .install/base/db .install/base/logger .install/base/remote .install/base/utils +$(call depends,modules/data.hydrology): | .install/base/logger .install/base/utils +$(call depends,modules/data.land): | .install/modules/benchmark .install/modules/data.atmosphere .install/base/db .install/base/logger .install/base/remote .install/base/settings .install/base/utils .install/base/visualization +$(call depends,modules/data.remote): | .install/base/db .install/base/utils .install/base/logger .install/base/remote +$(call depends,modules/emulator): | .install/base/logger +$(call depends,modules/meta.analysis): | .install/base/utils .install/base/db .install/base/logger .install/base/settings $(call depends,modules/photosynthesis): | -$(call depends,modules/priors): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/PEcAn.MA.Rcheck/PEcAn.MA .install/base/visualization -$(call depends,modules/rtm): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/assim.batch .install/base/utils .install/models/ed -$(call depends,modules/uncertainty): | .install/base/utils .install/modules/priors .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/modules/emulator .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/settings -$(call depends,models/basgra): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/data.atmosphere .install/base/utils -$(call depends,models/biocro): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils .install/base/settings .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.DB.Rcheck/PEcAn.DB -$(call depends,models/cable): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils -$(call depends,models/clm45): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils -$(call depends,models/dalec): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils +$(call depends,modules/priors): | .install/base/utils .install/base/logger .install/modules/meta.analysis .install/base/visualization +$(call depends,modules/rtm): | .install/base/logger .install/modules/assim.batch .install/base/utils .install/models/ed +$(call depends,modules/uncertainty): | .install/base/utils .install/modules/priors .install/base/db .install/modules/emulator .install/base/logger .install/base/settings +$(call depends,models/basgra): | .install/base/logger .install/modules/data.atmosphere .install/base/utils +$(call depends,models/biocro): | .install/base/logger .install/base/remote .install/base/utils .install/base/settings .install/modules/data.atmosphere .install/modules/data.land .install/base/db +$(call depends,models/cable): | .install/base/logger .install/base/utils +$(call depends,models/clm45): | .install/base/logger .install/base/utils +$(call depends,models/dalec): | .install/base/logger .install/base/remote .install/base/utils $(call depends,models/dvmdostem): | .install/base/utils -$(call depends,models/ed): | .install/modules/data.atmosphere .install/modules/data.land .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils -$(call depends,models/fates): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,models/gday): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,models/jules): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,models/linkages): | .install/base/utils .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,models/lpjguess): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote -$(call depends,models/maat): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/settings .install/base/utils -$(call depends,models/maespa): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,models/preles): | .install/base/utils .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/modules/data.atmosphere .install/base/utils -$(call depends,models/sibcasa): | .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils -$(call depends,models/sipnet): | .install/modules/data.atmosphere .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/remote .install/base/utils -$(call depends,models/stics): | .install/base/settings .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils .install/base/remote -$(call depends,models/template): | .install/base/PEcAn.DB.Rcheck/PEcAn.DB .install/base/PEcAn.logger.Rcheck/PEcAn.logger .install/base/utils +$(call depends,models/ed): | .install/modules/data.atmosphere .install/modules/data.land .install/base/logger .install/base/remote .install/base/settings .install/base/utils +$(call depends,models/fates): | .install/base/utils .install/base/logger .install/base/remote +$(call depends,models/gday): | .install/base/utils .install/base/logger .install/base/remote +$(call depends,models/jules): | .install/base/utils .install/base/logger .install/base/remote +$(call depends,models/linkages): | .install/base/utils .install/modules/data.atmosphere .install/base/logger .install/base/remote +$(call depends,models/lpjguess): | .install/base/utils .install/base/logger .install/base/remote +$(call depends,models/maat): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/settings .install/base/utils +$(call depends,models/maespa): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/utils +$(call depends,models/preles): | .install/base/utils .install/base/logger .install/modules/data.atmosphere .install/base/utils +$(call depends,models/sibcasa): | .install/base/logger .install/base/utils +$(call depends,models/sipnet): | .install/modules/data.atmosphere .install/base/logger .install/base/remote .install/base/utils +$(call depends,models/stics): | .install/base/settings .install/base/db .install/base/logger .install/base/utils .install/base/remote +$(call depends,models/template): | .install/base/db .install/base/logger .install/base/utils From a4145e163175ccb80bf6b1886f7ae28de9697b8d Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Sat, 16 Jul 2022 14:42:59 +0000 Subject: [PATCH 16/18] Fixed Vignette Warning --- modules/meta.analysis/DESCRIPTION | 2 ++ modules/meta.analysis/vignettes/single.MA_demo.Rmd | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index 614da0c60a1..6129287e930 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -37,10 +37,12 @@ Imports: rjags Suggests: ggmcmc, + knitr, ggplot2, testthat (>= 1.0.2) SystemRequirements: JAGS License: BSD_3_clause + file LICENSE +VignetteBuilder: knitr Copyright: Authors LazyData: FALSE Encoding: UTF-8 diff --git a/modules/meta.analysis/vignettes/single.MA_demo.Rmd b/modules/meta.analysis/vignettes/single.MA_demo.Rmd index df989182936..c150f5687cf 100644 --- a/modules/meta.analysis/vignettes/single.MA_demo.Rmd +++ b/modules/meta.analysis/vignettes/single.MA_demo.Rmd @@ -1,3 +1,11 @@ +--- +title: "Example of Single.MA" +output: rmarkdown::html_vignette +vignette: > + %\VignetteEngine{knitr::rmarkdown} + %\VignetteIndexEntry{Example of Single.MA} + %\usepackage[utf8]{inputenc} +--- Meta-analysis: Example of Single.MA ======================================================== Individual Meta-analysis From ddb1e44c550bb7e1d1415023c78193b656c88f2e Mon Sep 17 00:00:00 2001 From: Tanishq Jain Date: Sat, 16 Jul 2022 15:03:08 +0000 Subject: [PATCH 17/18] minor changes --- modules/meta.analysis/DESCRIPTION | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index 6129287e930..a11c56ef89b 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -37,6 +37,7 @@ Imports: rjags Suggests: ggmcmc, + rmarkdown, knitr, ggplot2, testthat (>= 1.0.2) From 8ad821e9c67a877c9e3675849fef998379a0a756 Mon Sep 17 00:00:00 2001 From: nanu1605 <83662210+nanu1605@users.noreply.github.com> Date: Sat, 16 Jul 2022 22:10:30 +0530 Subject: [PATCH 18/18] Update modules/meta.analysis/DESCRIPTION Co-authored-by: Chris Black --- modules/meta.analysis/DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/meta.analysis/DESCRIPTION b/modules/meta.analysis/DESCRIPTION index a11c56ef89b..0d59ceb71dc 100644 --- a/modules/meta.analysis/DESCRIPTION +++ b/modules/meta.analysis/DESCRIPTION @@ -37,9 +37,9 @@ Imports: rjags Suggests: ggmcmc, - rmarkdown, - knitr, ggplot2, + knitr, + rmarkdown, testthat (>= 1.0.2) SystemRequirements: JAGS License: BSD_3_clause + file LICENSE