Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix some warnings and notes from PEcAn.MA package. #2956

Closed
wants to merge 23 commits into from
Closed
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1098a35
Cleared Some notes and warnings of PEcAn.MA package.
nanu1605 Jul 12, 2022
20e49b0
some changes in global variables.
nanu1605 Jul 12, 2022
7a89622
Binding variables locally to the function "pecan.ma.summary"
nanu1605 Jul 12, 2022
7e94677
Merge branch 'meta_analysis' of https://github.com/nanu1605/pecan int…
nanu1605 Jul 12, 2022
c874c0c
Update modules/meta.analysis/R/meta.analysis.summary.R
nanu1605 Jul 12, 2022
c885215
Update modules/meta.analysis/DESCRIPTION
nanu1605 Jul 12, 2022
df5c7a1
Update modules/meta.analysis/R/meta.analysis.R
nanu1605 Jul 12, 2022
4a37f07
Fixed undefined global function.
nanu1605 Jul 13, 2022
8304559
Resolved R2WinBUGS dependency.
nanu1605 Jul 13, 2022
aca2329
Changed Documentation.
nanu1605 Jul 13, 2022
9bcf367
Changed Documentation.
nanu1605 Jul 13, 2022
eb4ac88
Merge branch 'meta_analysis' of https://github.com/nanu1605/pecan int…
nanu1605 Jul 13, 2022
4f972ca
added ggplot2 to DESCRIPTION
nanu1605 Jul 13, 2022
c4c7827
Added ggplot2 in Suggests.
nanu1605 Jul 13, 2022
4933786
updated pecan.depends.R
nanu1605 Jul 15, 2022
bc37d10
Update modules/meta.analysis/R/meta.analysis.summary.R
nanu1605 Jul 16, 2022
7c3526f
changed Makefile.depends
nanu1605 Jul 16, 2022
8f331b2
minor changes
nanu1605 Jul 16, 2022
a4145e1
Fixed Vignette Warning
nanu1605 Jul 16, 2022
ddb1e44
minor changes
nanu1605 Jul 16, 2022
8ad821e
Update modules/meta.analysis/DESCRIPTION
nanu1605 Jul 16, 2022
5344903
Merge branch 'develop' into meta_analysis
dlebauer Jul 18, 2022
c55f90e
Merge branch 'develop' into meta_analysis
nanu1605 Jul 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 51 additions & 39 deletions Makefile.depends
Original file line number Diff line number Diff line change
@@ -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
nanu1605 marked this conversation as resolved.
Show resolved Hide resolved
1 change: 1 addition & 0 deletions docker/depends/pecan.depends.R
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ wanted <- c(
'geonames',
'getPass',
'ggmap',
'ggmcmc',
'ggplot2',
'ggrepel',
'glue',
Expand Down
11 changes: 6 additions & 5 deletions modules/meta.analysis/DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +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,
lattice,
MASS,
PEcAn.utils,
PEcAn.DB
Imports:
coda (>= 0.18),
PEcAn.DB,
PEcAn.logger,
MASS,
PEcAn.settings,
rjags
Suggests:
ggmcmc,
ggplot2,
testthat (>= 1.0.2)
SystemRequirements: JAGS
License: BSD_3_clause + file LICENSE
Expand Down
28 changes: 14 additions & 14 deletions modules/meta.analysis/R/approx.posterior.R
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -55,21 +55,21 @@ 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
fit <- try(suppressWarnings(MASS::fitdistr(dat, "beta", list(shape1 = a, shape2 = b))), silent = TRUE)

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)
}
Expand Down Expand Up @@ -111,15 +111,15 @@ 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)
}
}
} ## end trait loop

if (do.plot) {
dev.off()
grDevices::dev.off()
}

return(posteriors)
Expand Down Expand Up @@ -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)
}
9 changes: 6 additions & 3 deletions modules/meta.analysis/R/meta.analysis.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +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 j.iter number of MCMC samples
##' @param outdir output directory
##' @param random use random effects, `FALSE` by default
Expand Down Expand Up @@ -124,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))
}
Expand All @@ -152,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
}
Expand Down
Loading