diff --git a/README.md b/README.md index ef650bd..c84d493 100644 --- a/README.md +++ b/README.md @@ -28,12 +28,12 @@ Dynameta is an [R Shiny](https://shiny.rstudio.com/) platform written as an R pa Meta-analyses are used to quantitatively summarise evidence across studies in a systematic process. Their larger sample size (and hence power) compared to individual research studies increases the chance of detecting significant effects. Despite representing a significant improvement upon individual studies, meta-analyses have a number of limitations which Dynameta was developed to overcome: -1. Meta-analytic results are based on a snapshot of literature at a particluar time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. -2. Meta-analytic publications are resticted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface. +1. Meta-analytic results are based on a snapshot of literature at a particular time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. +2. Meta-analytic publications are restricted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface. + +Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the [IUCN threats classification scheme](https://www.iucnredlist.org/resources/threat-classification-scheme)) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. For an example of how the codebase can be edited to suit a specific user's needs, please see the last section of the [Dynameta vignette (Get started).](https://gls21.github.io/Dynameta/articles/Dynameta.html) The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. Here on github, Dynameta_app/ can be found in the [inst/ directory](https://github.com/gls21/Dynameta/tree/main/inst/Dynameta_app). If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files. -Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the [IUCN threats classification scheme](https://www.iucnredlist.org/resources/threat-classification-scheme)) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. Here on github, Dynameta_app/ can be found in the [inst/ directory](https://github.com/gls21/Dynameta/tree/main/inst/Dynameta_app). If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files. -For an example of how the codebase can be edited to suit a specific user's needs, please see the last section of the [Dynameta vignette (Get started).](https://gls21.github.io/Dynameta/articles/Dynameta.html)
@@ -99,6 +99,8 @@ install.packages(path_to_file, repos = NULL, type = "source") # where path_to_fi
### Using the Dynameta package +Any meta-analysis must be underpinned by a robust evidence gathering framework, which must be completed before proceeding with Dynameta. This includes writing and registering a protocol outlining clearly defined research questions and evidence inclusion criteria, carefully considering the suitability of evidence based on these criteria, and determining who will be responsible for updating the meta-analysis with Dynameta, and for how long (as to avoid research waste). Please refer to the guidance documents listed below in the 'Resources' tab section. + Once you have successfully installed Dynameta, to access help documentation, run: ``` help(package = "Dynameta") @@ -150,10 +152,10 @@ sample_data ### Resources tab * Contains useful links to guidance developed by communities of practice when conducting evidence syntheses. These include: + * [Collaboration for Environmental Evidence (CEE)](https://environmentalevidence.org/). See [here](https://environmentalevidence.org/information-for-authors) for full guidance document. * [PRISMA](http://www.prisma-statement.org/) - For reporting systematic reviews and meta-analysis (developed for medical field but see ecology specific version below). * [PRISMA Extension for Ecology and Evolution](http://www.prisma-statement.org/Extensions/EcoEvo) - For conducting environmental evidence syntheses. * [ROSES](https://www.roses-reporting.com/) - For reporting systematic reviews and meta-analysis (developed for environmental research). - * [Collaboration for Environmental Evidence (CEE)](https://environmentalevidence.org/). See [here](https://environmentalevidence.org/information-for-authors) for full guidance document. * [Cochrane Handbook for Systematic Reviews of Interventions](https://training.cochrane.org/handbook/current) - For conducting systematic reviews (developed for medical field). * [Campbell Collaboration](https://www.campbellcollaboration.org/research-resources/training-courses.html) - For conducting evidence syntheses (developed for social sciences field). * The following are useful guides for conducting meta-analyses: @@ -173,6 +175,7 @@ sample_data * sample_data.R - describes the sample data included with the package that can be analysed using the Dynameta Shiny app (necessary to make the help documentation for the dataset). * data * sample_data.rda - R data file containing the sample data. +* docs - directory for building the Dynameta pkgdown website. * inst * Dynameta_app * server.R - defines how the Dynameta Shiny app works (back-end development). @@ -192,11 +195,13 @@ sample_data * man * launch_Dynameta.Rd - R documentation file for the launch_Dynameta() function. * sample_data.Rd - R documentation file for the sample data. + * figures - images needed for pkgdown website. * tests * testthat/test-shinytest2_test.R - test driver script that runs the shinytest2 tests in the inst/Dynameta_app/tests directory. * testthat.R - part of standard setup for testthat. * vignettes * Dynameta.Rmd - R markdown document for the Dynameta package and Shiny app vignette. +* CITATION.cff - citation file for Dynameta. * DESCRIPTION - overall metadata about the Dynameta package. * LICENSE - declare Dynameta package as licensed. * LICENSE.md - includes a copy of the full text of the license. diff --git a/docs/articles/Dynameta.html b/docs/articles/Dynameta.html index e063426..1318fb3 100644 --- a/docs/articles/Dynameta.html +++ b/docs/articles/Dynameta.html @@ -95,10 +95,10 @@

  • Meta-analytic results are based on a snapshot of literature at a -particluar time. As a living review platform, Dynameta overcomes this by +particular time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available.
  • -
  • Meta-analytic publications are resticted to presenting the results +
  • Meta-analytic publications are restricted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user @@ -109,9 +109,11 @@

    Installing in RStudio using devtoo

    Using the Dynameta package

    +

    Any meta-analysis must be underpinned by a robust evidence gathering +framework, which must be completed before proceeding with Dynameta. This +includes writing and registering a protocol outlining clearly defined +research questions and evidence inclusion criteria, carefully +considering the suitability of evidence based on these criteria, and +determining who will be responsible for updating the meta-analysis with +Dynameta, and for how long (as to avoid research waste). Please refer to +the resources listed in the README.

    +


    Once you have successfully installed Dynameta, to access help documentation, run:

  • -
  • You are also able to download the model object (.rds) and a file -containing the results summary of the model fitting (.txt).
  • +
  • There are options available to download the results.

  • @@ -283,13 +293,22 @@

    Editing the codebaseDynameta GitHub repo, or +

    Careful consideration needs to be taken when conducting sub-group +analysis, both in terms of deciding when it is appropriate to carry out, +and when interpreting the results. As a guide, the Cochrane +Handbook section 10.11.5.1 suggests that at least ten data points +need to be available for each sub-group modelled. For a guide to +interpreting the results, please see Richardson +et al. (2019).

    +


    +

    To add sub-group analysis as an option in Dynameta, you need access +to the scripts that need to be edited. Possible options are to fork the +Dynameta GitHub repo, or download the repo as a zipped file.

    Next you will need to open the ui.R and server.R files that make up the Dynameta shiny app. These are in the /inst/Dynameta_app/ @@ -343,7 +362,7 @@

    2 ### Running custom models


    Code/text to alter/add:

    -
    # Alter this text to describe difference between subset analysis and subgroup analysis 
    +
    # Alter this text to describe difference between subset analysis and sub-group analysis 
     
     ## Comment out this original text ##
     #p(h5("Based on your research question, you can filter the data by threat, location, taxonomic order, and biodiversity metric.")),
    @@ -356,7 +375,7 @@ 

    2 and run a meta-analytic model on this subset of data."), tags$li("Choose a moderator variable and carry out a full sub-group analysis (meta-regression with a categorical predictor) to see if the pooled effect sizes - found in these subgroups differ from each other.") + found in these sub-groups differ from each other.") )),


    @@ -501,7 +520,7 @@

    1

    Insert the code beneath these lines of code:

     # Download forest plot button
    -output$download_forest_plot <- shiny::downloadHandler(
    +output$download_forest_plot <- shiny::downloadHandler(
       
       filename = function() {
         paste0("forest_plot", base::Sys.Date(), ".png", sep="")
    @@ -533,7 +552,7 @@ 

    1

    Code to add:

     ## Make reactive moderator (for sub-group analysis) choices
    -output$reactive_moderator_choice <- shiny::renderUI({
    +output$reactive_moderator_choice <- shiny::renderUI({
       shinyWidgets::pickerInput(inputId = "moderator_choice",
                                 label = "Moderator:",
                                 choices = base::names(data()),
    @@ -544,7 +563,7 @@ 

    1 ### Run model # Run sub-group analysis model once the run model button has been pressed -sub_group_analysis <- shiny::eventReactive(input$run_sub_group_analysis, { +sub_group_analysis <- shiny::eventReactive(input$run_sub_group_analysis, { subgroup_analysis_data <- data() @@ -583,15 +602,15 @@

    1 }, error = function(e) { # If model does not successfully run, stop the process and return this error message - base::stop(shiny::safeError(paste0("This model failed to run. This may be due to insufficient data for this model to run, but please see the R error message: ", e))) + base::stop(shiny::safeError(paste0("This model failed to run. This may be due to insufficient data for this model to run, but please see the R error message: ", e))) }) }) ### Render the model summary output -output$subgroup_model_output <- shiny::renderPrint({ +output$subgroup_model_output <- shiny::renderPrint({ - shiny::req(sub_group_analysis()) + shiny::req(sub_group_analysis()) base::summary(sub_group_analysis()) @@ -613,6 +632,18 @@

    1


    + +
    +

    References +

    +

    Higgins JPT, Thomas J, Chandler J, Cumpston M, Li T, Page MJ, Welch +VA (editors). Cochrane Handbook for Systematic Reviews of Interventions +version 6.3 (updated February 2022). Cochrane, 2022. Available from +www.training.cochrane.org/handbook.

    +

    Richardson, M., Garner, P., & Donegan, S. (2019). Interpretation +of subgroup analyses in systematic reviews: A tutorial. Clinical +Epidemiology and Global Health, 7(2), 192–198. https://doi.org/10.1016/j.cegh.2018.05.005

    +


    diff --git a/docs/index.html b/docs/index.html index 003f190..38cc5cc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -100,9 +100,8 @@

    Table of contents ## Introduction Dynameta is an R Shiny platform written as an R package. This means the app can be launched by running the launch_Dynameta() function included in the R package. The Dynameta app can then be used to run interactive meta-analytic models.

    Meta-analyses are used to quantitatively summarise evidence across studies in a systematic process. Their larger sample size (and hence power) compared to individual research studies increases the chance of detecting significant effects.

    -

    Despite representing a significant improvement upon individual studies, meta-analyses have a number of limitations which Dynameta was developed to overcome: 1. Meta-analytic results are based on a snapshot of literature at a particluar time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. 2. Meta-analytic publications are resticted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface.

    -

    Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the IUCN threats classification scheme) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. Here on github, Dynameta_app/ can be found in the inst/ directory. If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files.

    -

    For an example of how the codebase can be edited to suit a specific user’s needs, please see the last section of the Dynameta vignette (Get started).

    +

    Despite representing a significant improvement upon individual studies, meta-analyses have a number of limitations which Dynameta was developed to overcome: 1. Meta-analytic results are based on a snapshot of literature at a particular time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. 2. Meta-analytic publications are restricted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface.

    +

    Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the IUCN threats classification scheme) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. For an example of how the codebase can be edited to suit a specific user’s needs, please see the last section of the Dynameta vignette (Get started). The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. Here on github, Dynameta_app/ can be found in the inst/ directory. If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files.


    Dynameta was developed as part of the GLiTRS project, a cross-institutional consortium aiming to build global threat-response models to better understand and predict insect biodiversity change.


    @@ -151,6 +150,7 @@

    Install Dynameta from source

    Using the Dynameta package

    +

    Any meta-analysis must be underpinned by a robust evidence gathering framework, which must be completed before proceeding with Dynameta. This includes writing and registering a protocol outlining clearly defined research questions and evidence inclusion criteria, carefully considering the suitability of evidence based on these criteria, and determining who will be responsible for updating the meta-analysis with Dynameta, and for how long (as to avoid research waste). Please refer to the guidance documents listed below in the ‘Resources’ tab section.

    Once you have successfully installed Dynameta, to access help documentation, run:

    help(package = "Dynameta")

    Launch the Dynameta Shiny app:

    @@ -205,14 +205,14 @@

    Resources tabCollaboration for Environmental Evidence (CEE). See here for full guidance document. +
  • PRISMA - For reporting systematic reviews and meta-analysis (developed for medical field but see ecology specific version below).
  • PRISMA Extension for Ecology and Evolution - For conducting environmental evidence syntheses.
  • ROSES - For reporting systematic reviews and meta-analysis (developed for environmental research).
  • -Collaboration for Environmental Evidence (CEE). See here for full guidance document.
  • -
  • Cochrane Handbook for Systematic Reviews of Interventions - For conducting systematic reviews (developed for medical field).
  • Campbell Collaboration - For conducting evidence syntheses (developed for social sciences field).
  • @@ -249,6 +249,7 @@

    Resources tabResources tabResources tab Warning: package 'tibble' was built under R version 4.2.3 remotes::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/articles/Dynameta.html","id":"using-the-dynameta-package","dir":"Articles","previous_headings":"Installing and using the Dynameta package","what":"Using the Dynameta package","title":"Dynameta","text":"successfully installed Dynameta, access help documentation, run: View sample data: Dynameta package comes sample_data, used default Dynameta Shiny app. example dataset containing data collected GLiTRS meta-analysis investigating effect pollution (specifically pesticide application) dragonfly damselfly (Odonata) abundance. dataset described full ?Dynameta::sample_data. Launch Dynameta Shiny app: launch local instance Dynameta Shiny app, run following code: following code executed prevents document knitting.","code":"help(package = \"Dynameta\") dim(Dynameta::sample_data) #> [1] 47 46 # Print dataset as a tibble (nice way to preview dataset) as_tibble(sample_data) #> # A tibble: 47 × 46 #> Paper_ID Included Observation_ID Author Year Title Journal DOI URL #> #> 1 Suhling 2000 Y Suhling 2000 1 Suhlin… 2000 Effe… Hydrob… http… http… #> 2 Suhling 2000 Y Suhling 2000 2 Suhlin… 2000 Effe… Hydrob… http… http… #> 3 Suhling 2000 Y Suhling 2000 3 Suhlin… 2000 Effe… Hydrob… http… http… #> 4 Suhling 2000 Y Suhling 2000 4 Suhlin… 2000 Effe… Hydrob… http… http… #> 5 Suhling 2000 Y Suhling 2000 5 Suhlin… 2000 Effe… Hydrob… http… http… #> 6 Suhling 2000 Y Suhling 2000 6 Suhlin… 2000 Effe… Hydrob… http… http… #> 7 Suhling 2000 Y Suhling 2000 7 Suhlin… 2000 Effe… Hydrob… http… http… #> 8 Suhling 2000 Y Suhling 2000 8 Suhlin… 2000 Effe… Hydrob… http… http… #> 9 Suhling 2000 Y Suhling 2000 9 Suhlin… 2000 Effe… Hydrob… http… http… #> 10 Suhling 2000 Y Suhling 2000 10 Suhlin… 2000 Effe… Hydrob… http… http… #> # ℹ 37 more rows #> # ℹ 37 more variables: Language , Database , Latitude , #> # Longitude , Country , Taxa_level , Taxa_name , #> # Order , Family , Genus , Binomial , #> # Life_history_stage , Experimental_year_start , #> # Experimental_year_end , Sampling_method , #> # Biodiversity_metric , Unit , IUCN_threat_category_1 , … Dynameta::launch_Dynameta() # The function takes no arguments"},{"path":[]},{"path":"/articles/Dynameta.html","id":"introduction-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"1. Introduction tab","title":"Dynameta","text":"app opened, can choose whether want analyse sample data included package upload meta-analytic data analyse. select ‘data’, given option upload .csv file. needs format sample data provided. ‘Introduction’ tab provides breakdown data analyse using Dynameta, including details papers IUCN threat(s) investigated, map indicating data point originated .","code":""},{"path":"/articles/Dynameta.html","id":"run-models-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"2. Run models tab","title":"Dynameta","text":"run meta-analytic models investigate different threats impact biodiversity, go ‘Run models’ tab. models multilevel meta-analytic models, run using metafor package. models account non-independence data specifying paper observation identification nested random effects. effect size used compare biodiversity log transformed Ratio Means (ROM) (also known log response ratio), quantifies proportionate change treatments. Based research question, can filter data threat, location, taxonomic order, biodiversity metric data collected . Make selections, click ‘Run custom model’. Dynameta run model real-time produce forest plot results. includes estimate overall effect size chosen IUCN threat biodiversity. also able download model object (.rds) file containing results summary model fitting (.txt).","code":""},{"path":"/articles/Dynameta.html","id":"references-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"3. References tab","title":"Dynameta","text":"View full paper details using ‘References’ tab.","code":""},{"path":"/articles/Dynameta.html","id":"resources-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"4. Resources tab","title":"Dynameta","text":"Access links guidance developed communities practice conducting evidence syntheses, meta-analysis resources.","code":""},{"path":"/articles/Dynameta.html","id":"editing-the-codebase","dir":"Articles","previous_headings":"","what":"Editing the codebase","title":"Dynameta","text":"user may wish edit codebase better suit needs. document example add option perform full sub-group analysis data (addition current approach taken Dynameta, complete meta-analysis subset data). full sub-group analysis, several separate random-effects meta-analyses conducted (one subgroup) effects subgroups compared using statistical test. run meta-analytic model sub-group analysis using metafor, can add categorical variable moderator. achieve , need access scripts need edited. Possible options fork Dynameta GitHub repo, download repo zipped file. Next need open ui.R server.R files make Dynameta shiny app. /inst/Dynameta_app/ directory. following chunks code need added ui.R server.R files line numbers specified. NOTE: line numbers correspond line numbers Vxxx release Dynameta code.","code":""},{"path":[]},{"path":"/articles/Dynameta.html","id":"section","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"1","title":"Dynameta","text":"Section: Modelling tab Line 239 Insert code beneath line code: lines code: Code add:","code":"shiny::tabPanel(\"Run models\", # ---------------------------------------------------------------------------------------------------------------------- # Title to show at top of tab p(h2(tags$b(\"Run models\"))), # Make tab buttons within this tab bigger tags$style(HTML(\" .tabbable > .nav > li > a { width: 400PX; font-size: 30px } \")),"},{"path":"/articles/Dynameta.html","id":"section-1","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"2","title":"Dynameta","text":"Section: Modelling tab Line 256 Insert code beneath lines code: lines code: Code/text alter/add:","code":"p(h5(\"The effect size used to compare biodiversity is the log transformed Ratio Of Means (ROM) (also known as the log response ratio), which quantifies proportionate change between treatments.\")), tags$br(), tags$hr(), # ----------------------------------------------------------------------------------------------------------------------- # =========================================================================================================== ### Running custom models # Alter this text to describe difference between subset analysis and subgroup analysis ## Comment out this original text ## #p(h5(\"Based on your research question, you can filter the data by threat, location, taxonomic order, and biodiversity metric.\")), # Add this text p(h5(\"There are two options available for analysis:\")), h5(tags$ol( tags$li(\"Filter the data by threat, location, taxonomic order, and biodiversity metric and run a meta-analytic model on this subset of data.\"), tags$li(\"Choose a moderator variable and carry out a full sub-group analysis (meta-regression with a categorical predictor) to see if the pooled effect sizes found in these subgroups differ from each other.\") )),"},{"path":"/articles/Dynameta.html","id":"section-2","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"3","title":"Dynameta","text":"Section: Modelling tab Line 269 Insert code beneath lines code: lines code: Code add:","code":"# =========================================================================================================== ### Running custom models # =========================================================================================================== h5(\"Use this section to filter the data. Once you have made your selections, click 'Run custom model'. The model runs in real-time and the results are presented as a forest plot.\"), ### Include 2 tabs within the 'Run models' tab # One for analysing subset of data (as Dynameta did originally) # One for full sub-group analysis shiny::tabsetPanel(type = \"tabs\", # ------------------------------------------------------------------------------------------------------------------------ ### Analyse subset of data tab # ------------------------------------------------------------------------------------------------------------------------ shiny::tabPanel(\"Analyse subset of data\", tags$br(),"},{"path":"/articles/Dynameta.html","id":"section-3","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"4","title":"Dynameta","text":"Section: Modelling tab Line 421 Insert code beneath lines code: lines code: Code add:","code":"# download button for downloading forest plot shiny::downloadButton(outputId = \"download_forest_plot\", label = \"Download forest plot\", style='font-size:125%') ) ), tags$br(), tags$br() ), # close modelling tab # =============================================================================================================================== # =============================================================================================================================== # References tab ), # Close 'Analyse subset of data' tab # ------------------------------------------------------------------------------------------------------------------------ ### Sub-group analysis tab # ------------------------------------------------------------------------------------------------------------------------ shiny::tabPanel(\"Sub-group analysis\", tags$br(), h5(\"Use this section to carry out a full sub-group analysis. Choose a 'moderator' variable from the drop-down list. Once you have made your selection, click 'Run sub-group analysis'. The model runs in real-time and the R model summary is displayed.\"), tags$br(), h5(\"Note: The variable you choose as a moderator needs to have at least two levels. If the model fails to run, this is a likely reason.\"), tags$br(), # Add parts for sub-group analysis shiny::fluidRow( shiny::column( 12, # Select input for choice of moderator h4(shiny::uiOutput(\"reactive_moderator_choice\")), tags$br(), # include action button to run model once inputs have been selected shiny::actionButton(\"run_sub_group_analysis\", \"Run sub-group analysis\", style='font-size:125%'), tags$br(), tags$br(), # Render output of model shinycssloaders::withSpinner(shiny::verbatimTextOutput(outputId = \"subgroup_model_output\")), tags$br(), tags$br(), tags$br(), tags$br() ), ), ), # Close 'Sub-group analysis' tab # ------------------------------------------------------------------------------------------------------------------------ ), # close tabs within 'Run models' tab"},{"path":[]},{"path":"/articles/Dynameta.html","id":"section-4","dir":"Articles","previous_headings":"Editing the codebase > server.R script","what":"1","title":"Dynameta","text":"Section: Run models tab Line 579 Insert code beneath lines code: lines code: Code add: test app, click ‘Run App’ button RStudio, use ‘shiny::runApp()’ command. Adding chunks code results additional tab sub-group analysis ‘Run models’ tab app. , given option chose moderator, click ‘Run sub-group analysis’ run meta-analytic model produce R model summary. Users can build example around sub-group analysis, add additional features, alter parts app desired suit needs.","code":"# Download forest plot button output$download_forest_plot <- shiny::downloadHandler( filename = function() { paste0(\"forest_plot\", base::Sys.Date(), \".png\", sep=\"\") }, content = function(file) { grDevices::png(file, width = 1500, height = 1000) metafor::forest(custom_model(), xlim = c(-12, 8), # horizontal limits of the plot region ilab = base::cbind(Treatment), # add in info on treatment used ilab.xpos = -8, # position treatment labels order = Treatment, # Order results by treatment cex = 1.5, col = \"#0483A4\", # change colour of overall effect size diamond using CEH hero colour mlab = \"RE Model for All Studies\", header = \"Author(s) and Year\") grDevices::dev.off() } ) # ---------------------------------------------------------------------------------------------------------------- # ================================================================================================================= # ================================================================================================================= ##### References tab ## Make reactive moderator (for sub-group analysis) choices output$reactive_moderator_choice <- shiny::renderUI({ shinyWidgets::pickerInput(inputId = \"moderator_choice\", label = \"Moderator:\", choices = base::names(data()), selected = \"Country\", multiple = FALSE) # add actions box for selecting/de-selecting all options }) ### Run model # Run sub-group analysis model once the run model button has been pressed sub_group_analysis <- shiny::eventReactive(input$run_sub_group_analysis, { subgroup_analysis_data <- data() # Try to run the model. If doesn't work, tell user to include more data or view error message. base::tryCatch( expr = { # add small value to control and treatment columns subgroup_analysis_data$Treatment_Mean <- subgroup_analysis_data$Treatment_Mean + 0.1 subgroup_analysis_data$Control_Mean <- subgroup_analysis_data$Control_Mean + 0.1 # calculate effect sizes from number, mean, and SD - data needs to be in wide format # Adds yi and vi columns to data subgroup_analysis_data <- metafor::escalc(measure = \"ROM\", # log transformed ratio of means (i.e. log response ratio) n1i = subgroup_analysis_data$Treatment_N, n2i = subgroup_analysis_data$Control_N, m1i = subgroup_analysis_data$Treatment_Mean, m2i = subgroup_analysis_data$Control_Mean, sd1i = subgroup_analysis_data$Treatment_error, sd2i = subgroup_analysis_data$Control_error, slab = paste(Paper_ID), # slab adds study labels which will help when we make forest plot data = subgroup_analysis_data) # Make the chosen moderator a factor input_mod_factor <- as.factor(subgroup_analysis_data[, input$moderator_choice]) # Run metafor model sub_group_analysis_model <- metafor::rma.mv(yi, vi, # effect sizes and corresponding variances random = ~ 1 | Paper_ID/Observation_ID, # specify random-effects structure of model mods = ~ input_mod_factor, # specify the user's chosen moderator data = subgroup_analysis_data) sub_group_analysis <- sub_group_analysis_model }, error = function(e) { # If model does not successfully run, stop the process and return this error message base::stop(shiny::safeError(paste0(\"This model failed to run. This may be due to insufficient data for this model to run, but please see the R error message: \", e))) }) }) ### Render the model summary output output$subgroup_model_output <- shiny::renderPrint({ shiny::req(sub_group_analysis()) base::summary(sub_group_analysis()) })"},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Grace Skinner. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Skinner G (2023). Dynameta: dynamic platform ecological meta-analyses R Shiny. R package version 0.0.0.9000, https://github.com/gls21/Dynameta.","code":"@Manual{, title = {Dynameta: A dynamic platform for ecological meta-analyses in R Shiny}, author = {Grace Skinner}, year = {2023}, note = {R package version 0.0.0.9000}, url = {https://github.com/gls21/Dynameta}, }"},{"path":[]},{"path":[]},{"path":"/index.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Introduction Installing using Dynameta package Using Dynameta Shiny app Repo structure Author name contact ## Introduction Dynameta R Shiny platform written R package. means app can launched running launch_Dynameta() function included R package. Dynameta app can used run interactive meta-analytic models. Meta-analyses used quantitatively summarise evidence across studies systematic process. larger sample size (hence power) compared individual research studies increases chance detecting significant effects. Despite representing significant improvement upon individual studies, meta-analyses number limitations Dynameta developed overcome: 1. Meta-analytic results based snapshot literature particluar time. living review platform, Dynameta overcomes enabling results continually updated new evidence becomes available. 2. Meta-analytic publications resticted presenting results chosen questions asked researchers. hand, Dynameta allows investigation range questions based varying interests researchers manipulation graphical user interface. Dynameta designed interactive ecological meta-analyses, oriented around testing effect anthropogenic threats (based IUCN threats classification scheme) biodiversity. Nevertheless, code can easily repurposed suit variety meta-analytic contexts. server.R ui.R files define Dynameta Shiny app can found Dynameta_app/ directory. github, Dynameta_app/ can found inst/ directory. installed package, Dynameta_app/ directory can found directly package root directory, alongside DESCRIPTION, NAMESPACE, etc. files. example codebase can edited suit specific user’s needs, please see last section Dynameta vignette (Get started). Dynameta developed part GLiTRS project, cross-institutional consortium aiming build global threat-response models better understand predict insect biodiversity change. encounter issues bugs installing using Dynameta, please submit new issue issue tracker detailed description problem, including steps reproduce . ## Installing using Dynameta package","code":""},{"path":"/index.html","id":"installing-in-rstudio-using-devtools","dir":"","previous_headings":"Table of contents","what":"Installing in RStudio using devtools","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Installing package requires devtools, can installed loaded running following code R console: NOTE: installed devtools need restart R session installing avoid problems. issues installing devtools, try remotes package alternative. lightweight replacement install_* functions devtools. Install running: Next, install load Dynameta package running following code R console: potential reason unsuccessful installation vignette building correctly. case, remove ‘build_vignettes = TRUE’ argument installation command.","code":"install.packages(\"devtools\") library(devtools) install.packages(\"remotes\") library(remotes) devtools::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta) # Or if using remotes, run: remotes::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/index.html","id":"installing-in-r-not-rstudio-using-devtools","dir":"","previous_headings":"Table of contents","what":"Installing in R (not RStudio) using devtools","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Installing packages hosted GitHub uses Pandoc software, need installed installing Dynameta (Pandoc comes standard RStudio installation). See documentation . Pandoc required build vignettes. Pandoc installed, run following code (): Dynameta installation unsuccessful, try removing ‘build_vignettes = TRUE’ argument installation command.","code":"install.packages(\"devtools\") library(devtools) devtools::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/index.html","id":"install-dynameta-from-source","dir":"","previous_headings":"Table of contents","what":"Install Dynameta from source","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Alternatively, download Source code (tar.gz file) Dynameta releases page. run following code R/RStudio:","code":"install.packages(path_to_file, repos = NULL, type = \"source\") # where path_to_file would represent the full path and file name"},{"path":"/index.html","id":"using-the-dynameta-package","dir":"","previous_headings":"Table of contents","what":"Using the Dynameta package","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"successfully installed Dynameta, access help documentation, run: Launch Dynameta Shiny app: View sample data included package. contains data collected GLiTRS meta-analysis investigating effect pollution (specifically pesticide application) dragonfly damselfly (Odonata) abundance. ## Using Dynameta Shiny app","code":"help(package = \"Dynameta\") launch_Dynameta() # View sample data sample_data # View description of data set ?Dynameta::sample_data"},{"path":"/index.html","id":"introduction-tab","dir":"","previous_headings":"Table of contents","what":"Introduction tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"app opened, can choose whether want analyse sample data included package upload meta-analytic data analyse. default, Dynameta uses sample data provided package. select ‘data’, given option upload .csv file. needs meet criteria Dynameta able analyse - button click see columns need included. ‘Introduction’ tab provides breakdown data analyse using Dynameta, including details papers IUCN threat(s) investigated, map indicating data point originated .","code":""},{"path":"/index.html","id":"run-models-tab","dir":"","previous_headings":"Table of contents","what":"Run models tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"run meta-analytic models investigate different threats impact biodiversity, go ‘Run models’ tab. models multilevel meta-analytic models, run using metafor package. models account non-independence data specifying paper observation identification nested random effects. effect size used compare biodiversity log transformed Ratio Means (ROM) (also known log response ratio), quantifies proportionate change treatments. Based research question, can filter data threat, location, taxonomic order, biodiversity metric data collected . Make selections, click ‘Run custom model’. Dynameta run model real-time produce forest plot results. includes estimate overall effect size chosen IUCN threat biodiversity.","code":""},{"path":"/index.html","id":"references-tab","dir":"","previous_headings":"Table of contents","what":"References tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"View full paper details using ‘References’ tab.","code":""},{"path":"/index.html","id":"resources-tab","dir":"","previous_headings":"Table of contents","what":"Resources tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"PRISMA - reporting systematic reviews meta-analysis (developed medical field see ecology specific version ). PRISMA Extension Ecology Evolution - conducting environmental evidence syntheses. ROSES - reporting systematic reviews meta-analysis (developed environmental research). Collaboration Environmental Evidence (CEE). See full guidance document. Cochrane Handbook Systematic Reviews Interventions - conducting systematic reviews (developed medical field). Campbell Collaboration - conducting evidence syntheses (developed social sciences field). Meta-Analysis R: Hands-Guide metafor package tips notes ## Repo structure R-CMD-check.yaml - configures R CMD check workflow GitHub Actions. build check unit test (written using shinytest2) run time code pushed repository. launch_Dynameta.R - defines function can used launch Dynameta Shiny app. sample_data.R - describes sample data included package can analysed using Dynameta Shiny app (necessary make help documentation dataset). sample_data.rda - R data file containing sample data. server.R - defines Dynameta Shiny app works (back-end development). ui.R - defines Dynameta Shiny app looks (front-end development). shinytest2_test-001.json shinytest2_test-001_.png setup-shinytest2.R test-shinytest2.R - re-runs shinytest2 check outputs match expected outputs. testthat.R - part standard setup testthat. sample_data_for_shinytest.csv - sample data csv format. sample_data_rds - sample data (rds format) used default Dynameta Shiny app. images launch_Dynameta.Rd - R documentation file launch_Dynameta() function. sample_data.Rd - R documentation file sample data. testthat/test-shinytest2_test.R - test driver script runs shinytest2 tests inst/Dynameta_app/tests directory. testthat.R - part standard setup testthat. Dynameta.Rmd - R markdown document Dynameta package Shiny app vignette. DESCRIPTION - overall metadata Dynameta package. LICENSE - declare Dynameta package licensed. LICENSE.md - includes copy full text license. NAMESPACE - specifies functions Dynameta package exported user, functions packages imported Dynameta package. ## Author name contact * Grace Skinner (Research Associate Data Scientist UKCEH) * GraSki@ceh.ac.uk project licensed terms MIT license.","code":""},{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2022 Dynameta authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"/reference/launch_Dynameta.html","id":null,"dir":"Reference","previous_headings":"","what":"Launch Dynameta — launch_Dynameta","title":"Launch Dynameta — launch_Dynameta","text":"Launches Dynameta shiny app","code":""},{"path":"/reference/launch_Dynameta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Launch Dynameta — launch_Dynameta","text":"","code":"launch_Dynameta()"},{"path":"/reference/launch_Dynameta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Launch Dynameta — launch_Dynameta","text":"Shiny application object","code":""},{"path":"/reference/launch_Dynameta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Launch Dynameta — launch_Dynameta","text":"","code":"if (FALSE) launch_Dynameta()"},{"path":"/reference/sample_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample data that can be analysed using the Dynameta shiny app — sample_data","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"example dataset containing data collected GLiTRS meta-analysis investigating effect insecticide application Odonata abundance. can analysed using Dynameta shiny app.","code":""},{"path":"/reference/sample_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"","code":"data(sample_data)"},{"path":"/reference/sample_data.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"data frame 47 rows 46 variables: Paper_ID paper comparison drawn. (character) Included exclusion inclusion status paper. (character) Observation_ID comparison row, unique row. (character) Author full list authors paper. (character) Year year publication paper. (integer) Title paper title. (character) Journal journal paper published . (character) DOI DOI paper. (character) URL URL paper. (character) Language language paper. (character) Database database paper found. (character) Latitude latitude coordinate observation row. (double) Longitude longitude coordinate observation row. (double) Country country observation row located. (character) Taxa_level taxonomic level common biodiversity recorded row. (character) Taxa_name name taxonomic level common biodiversity recorded row. (character) Order taxonomic order biodiversity measured row, treatment control. (character) Family taxonomic family biodiversity measured row, treatment control. (character) Genus taxonomic genus biodiversity measured row, treatment control. (character) Binomial Latin binomial species row, recorded. (character) Life_history_stage life-history stage taxa row. (character) Experimental_year_start year data collection started. (integer) Experimental_year_end year data collection ended. (integer) Sampling_method sampling method used sample biodiversity measure. (character) Biodiversity_metric metric biodiversity measured. Biodiversity_metric typically one “Abundance”, “Richness”, “Biomass”. (character) Unit specific unit measure biodiversity recorded row. (character) IUCN_threat_category_1 Broadest level IUCN threat. (character) IUCN_threat_category_2 Secondary level IUCN threat. (character) IUCN_threat_category_3 Tertiary level IUCN threat. (character) Treatment Name threat measured row (e.g. insecticide). (character) Treatment_quantity quantity treatment reported authors observation. (double) Treatment_quantity_unit unit measure numeric value Treatment_quantity. (character) Control Name control measured row (e.g. insecticide). (character) Extracted_from figure table data row extracted. (character) Evidence_type type evidence data row. Type evidence either “Experimental” “Quasi-experimental”. (character) Treatment_N number treatment sites mean error values drawn. (integer) Treatment_Mean mean biodiversity value across treatment sites comparison. (double) Treatment_error raw treatment error value reported authors observation. (double) Treatment_error_type type error recorded Treatment_error. Typically one Standard error, Standard deviation, 95% confidence interval. (character) Control_N number control sites mean error values drawn. (integer) Control_Mean mean biodiversity value across control sites comparison. (double) Control_error raw control error value reported authors observation. (double) Control_error_type type error recorded Control_error. Typically one “Standard error”, “Standard deviation”, “95% confidence interval”. (character) Contributor_name Name contributor row. (character) Search_date Date final optimised search carried . (date) Notes field used relevant descriptions don’t fall within core data, can’t categorised clearly defined factors associated metadata, provide explanations associated metadata. (character)","code":""}] +[{"path":"/articles/Dynameta.html","id":"introduction-to-dynameta-a-dynamic-platform-for-ecological-meta-analyses-in-r-shiny","dir":"Articles","previous_headings":"","what":"Introduction to Dynameta: A dynamic platform for ecological meta-analyses in R Shiny","title":"Dynameta","text":"Dynameta R Shiny platform written R package. means app can launched running launch_Dynameta() function included R package. Dynameta app can used run interactive meta-analytic models. document introduces Dynameta package, use launch Dynameta Shiny app, use Dynameta Shiny app. Meta-analyses used quantitatively summarise evidence across studies systematic process. larger sample size (hence power) compared individual research studies increases chance detecting significant effects. Despite representing significant improvement upon individual studies, meta-analyses number limitations Dynameta developed overcome: Meta-analytic results based snapshot literature particular time. living review platform, Dynameta overcomes enabling results continually updated new evidence becomes available. Meta-analytic publications restricted presenting results chosen questions asked researchers. hand, Dynameta allows investigation range questions based varying interests researchers manipulation graphical user interface. Dynameta designed interactive ecological meta-analyses, oriented around testing effect anthropogenic threats (based IUCN threats classification scheme) biodiversity. Nevertheless, code can easily repurposed suit variety meta-analytic contexts. Please see Editing codebase section vignette example . server.R ui.R files define Dynameta Shiny app can found Dynameta_app/ directory. github, Dynameta_app/ can found inst/ directory. installed package, Dynameta_app/ directory can found directly package root directory, alongside DESCRIPTION, NAMESPACE, etc. files. Dynameta developed part GLiTRS project, cross-institutional consortium aiming build global threat-response models better understand predict insect biodiversity change.","code":""},{"path":[]},{"path":"/articles/Dynameta.html","id":"installing-in-rstudio-using-devtools","dir":"Articles","previous_headings":"Installing and using the Dynameta package","what":"Installing in RStudio using devtools","title":"Dynameta","text":"Installing package requires devtools, can installed loaded running following code R console: NOTE: installed devtools need restart R session installing avoid problems. issues installing devtools, try remotes package alternative. lightweight replacement install_* functions devtools. Install running: Next, install Dynameta package running following code R console: load : using remotes, run: potential reason unsuccessful installation vignette building correctly. case, remove ‘build_vignettes = TRUE’ argument installation command. Please see README alternative installation options.","code":"install.packages(\"devtools\") library(devtools) install.packages(\"remotes\") library(remotes) devtools::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta) library(tibble) # for previewing sample dataset #> Warning: package 'tibble' was built under R version 4.2.3 remotes::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/articles/Dynameta.html","id":"using-the-dynameta-package","dir":"Articles","previous_headings":"Installing and using the Dynameta package","what":"Using the Dynameta package","title":"Dynameta","text":"meta-analysis must underpinned robust evidence gathering framework, must completed proceeding Dynameta. includes writing registering protocol outlining clearly defined research questions evidence inclusion criteria, carefully considering suitability evidence based criteria, determining responsible updating meta-analysis Dynameta, long (avoid research waste). Please refer resources listed README. successfully installed Dynameta, access help documentation, run: View sample data: Dynameta package comes sample_data, used default Dynameta Shiny app. example dataset containing data collected GLiTRS meta-analysis investigating effect pollution (specifically pesticide application) dragonfly damselfly (Odonata) abundance. dataset described full ?Dynameta::sample_data. Launch Dynameta Shiny app: launch local instance Dynameta Shiny app, run following code: following code executed prevents document knitting.","code":"help(package = \"Dynameta\") dim(Dynameta::sample_data) #> [1] 47 46 # Print dataset as a tibble (nice way to preview dataset) as_tibble(sample_data) #> # A tibble: 47 × 46 #> Paper_ID Included Observation_ID Author Year Title Journal DOI URL #> #> 1 Suhling 2000 Y Suhling 2000 1 Suhlin… 2000 Effe… Hydrob… http… http… #> 2 Suhling 2000 Y Suhling 2000 2 Suhlin… 2000 Effe… Hydrob… http… http… #> 3 Suhling 2000 Y Suhling 2000 3 Suhlin… 2000 Effe… Hydrob… http… http… #> 4 Suhling 2000 Y Suhling 2000 4 Suhlin… 2000 Effe… Hydrob… http… http… #> 5 Suhling 2000 Y Suhling 2000 5 Suhlin… 2000 Effe… Hydrob… http… http… #> 6 Suhling 2000 Y Suhling 2000 6 Suhlin… 2000 Effe… Hydrob… http… http… #> 7 Suhling 2000 Y Suhling 2000 7 Suhlin… 2000 Effe… Hydrob… http… http… #> 8 Suhling 2000 Y Suhling 2000 8 Suhlin… 2000 Effe… Hydrob… http… http… #> 9 Suhling 2000 Y Suhling 2000 9 Suhlin… 2000 Effe… Hydrob… http… http… #> 10 Suhling 2000 Y Suhling 2000 10 Suhlin… 2000 Effe… Hydrob… http… http… #> # ℹ 37 more rows #> # ℹ 37 more variables: Language , Database , Latitude , #> # Longitude , Country , Taxa_level , Taxa_name , #> # Order , Family , Genus , Binomial , #> # Life_history_stage , Experimental_year_start , #> # Experimental_year_end , Sampling_method , #> # Biodiversity_metric , Unit , IUCN_threat_category_1 , … Dynameta::launch_Dynameta() # The function takes no arguments"},{"path":[]},{"path":"/articles/Dynameta.html","id":"introduction-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"1. Introduction tab","title":"Dynameta","text":"app opened, can choose whether want analyse sample data included package upload meta-analytic data analyse. select ‘data’, given option upload .csv file. needs format sample data provided. ‘Introduction’ tab provides breakdown data analyse using Dynameta, including details papers IUCN threat(s) investigated, map indicating data point originated .","code":""},{"path":"/articles/Dynameta.html","id":"run-models-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"2. Run models tab","title":"Dynameta","text":"run meta-analytic models investigate different threats impact biodiversity, go ‘Run models’ tab. models multilevel meta-analytic models, run using metafor package. models account non-independence data specifying paper observation identification nested random effects. effect size used compare biodiversity log transformed Ratio Means (ROM) (also known log response ratio), quantifies proportionate change treatments. Based research question, can filter data threat, location, taxonomic order, biodiversity metric data collected . Make selections, click ‘Run custom model’. Dynameta run model real-time produce forest plot results. includes estimate overall effect size chosen IUCN threat biodiversity. options available download results.","code":""},{"path":"/articles/Dynameta.html","id":"references-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"3. References tab","title":"Dynameta","text":"View full paper details using ‘References’ tab.","code":""},{"path":"/articles/Dynameta.html","id":"resources-tab","dir":"Articles","previous_headings":"Process for using the Dynameta Shiny app","what":"4. Resources tab","title":"Dynameta","text":"Access links guidance developed communities practice conducting evidence syntheses, meta-analysis resources.","code":""},{"path":"/articles/Dynameta.html","id":"editing-the-codebase","dir":"Articles","previous_headings":"","what":"Editing the codebase","title":"Dynameta","text":"user may wish edit codebase better suit needs. document example add option perform full sub-group analysis data (addition current approach taken Dynameta, complete meta-analysis subset data). full sub-group analysis, several separate random-effects meta-analyses conducted (one sub-group) effects sub-groups compared using statistical test. run meta-analytic model sub-group analysis using metafor, can add categorical variable moderator. Careful consideration needs taken conducting sub-group analysis, terms deciding appropriate carry , interpreting results. guide, Cochrane Handbook section 10.11.5.1 suggests least ten data points need available sub-group modelled. guide interpreting results, please see Richardson et al. (2019). add sub-group analysis option Dynameta, need access scripts need edited. Possible options fork Dynameta GitHub repo, download repo zipped file. Next need open ui.R server.R files make Dynameta shiny app. /inst/Dynameta_app/ directory. following chunks code need added ui.R server.R files line numbers specified. NOTE: line numbers correspond line numbers Vxxx release Dynameta code.","code":""},{"path":[]},{"path":"/articles/Dynameta.html","id":"section","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"1","title":"Dynameta","text":"Section: Modelling tab Line 239 Insert code beneath line code: lines code: Code add:","code":"shiny::tabPanel(\"Run models\", # ---------------------------------------------------------------------------------------------------------------------- # Title to show at top of tab p(h2(tags$b(\"Run models\"))), # Make tab buttons within this tab bigger tags$style(HTML(\" .tabbable > .nav > li > a { width: 400PX; font-size: 30px } \")),"},{"path":"/articles/Dynameta.html","id":"section-1","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"2","title":"Dynameta","text":"Section: Modelling tab Line 256 Insert code beneath lines code: lines code: Code/text alter/add:","code":"p(h5(\"The effect size used to compare biodiversity is the log transformed Ratio Of Means (ROM) (also known as the log response ratio), which quantifies proportionate change between treatments.\")), tags$br(), tags$hr(), # ----------------------------------------------------------------------------------------------------------------------- # =========================================================================================================== ### Running custom models # Alter this text to describe difference between subset analysis and sub-group analysis ## Comment out this original text ## #p(h5(\"Based on your research question, you can filter the data by threat, location, taxonomic order, and biodiversity metric.\")), # Add this text p(h5(\"There are two options available for analysis:\")), h5(tags$ol( tags$li(\"Filter the data by threat, location, taxonomic order, and biodiversity metric and run a meta-analytic model on this subset of data.\"), tags$li(\"Choose a moderator variable and carry out a full sub-group analysis (meta-regression with a categorical predictor) to see if the pooled effect sizes found in these sub-groups differ from each other.\") )),"},{"path":"/articles/Dynameta.html","id":"section-2","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"3","title":"Dynameta","text":"Section: Modelling tab Line 269 Insert code beneath lines code: lines code: Code add:","code":"# =========================================================================================================== ### Running custom models # =========================================================================================================== h5(\"Use this section to filter the data. Once you have made your selections, click 'Run custom model'. The model runs in real-time and the results are presented as a forest plot.\"), ### Include 2 tabs within the 'Run models' tab # One for analysing subset of data (as Dynameta did originally) # One for full sub-group analysis shiny::tabsetPanel(type = \"tabs\", # ------------------------------------------------------------------------------------------------------------------------ ### Analyse subset of data tab # ------------------------------------------------------------------------------------------------------------------------ shiny::tabPanel(\"Analyse subset of data\", tags$br(),"},{"path":"/articles/Dynameta.html","id":"section-3","dir":"Articles","previous_headings":"Editing the codebase > ui.R script","what":"4","title":"Dynameta","text":"Section: Modelling tab Line 421 Insert code beneath lines code: lines code: Code add:","code":"# download button for downloading forest plot shiny::downloadButton(outputId = \"download_forest_plot\", label = \"Download forest plot\", style='font-size:125%') ) ), tags$br(), tags$br() ), # close modelling tab # =============================================================================================================================== # =============================================================================================================================== # References tab ), # Close 'Analyse subset of data' tab # ------------------------------------------------------------------------------------------------------------------------ ### Sub-group analysis tab # ------------------------------------------------------------------------------------------------------------------------ shiny::tabPanel(\"Sub-group analysis\", tags$br(), h5(\"Use this section to carry out a full sub-group analysis. Choose a 'moderator' variable from the drop-down list. Once you have made your selection, click 'Run sub-group analysis'. The model runs in real-time and the R model summary is displayed.\"), tags$br(), h5(\"Note: The variable you choose as a moderator needs to have at least two levels. If the model fails to run, this is a likely reason.\"), tags$br(), # Add parts for sub-group analysis shiny::fluidRow( shiny::column( 12, # Select input for choice of moderator h4(shiny::uiOutput(\"reactive_moderator_choice\")), tags$br(), # include action button to run model once inputs have been selected shiny::actionButton(\"run_sub_group_analysis\", \"Run sub-group analysis\", style='font-size:125%'), tags$br(), tags$br(), # Render output of model shinycssloaders::withSpinner(shiny::verbatimTextOutput(outputId = \"subgroup_model_output\")), tags$br(), tags$br(), tags$br(), tags$br() ), ), ), # Close 'Sub-group analysis' tab # ------------------------------------------------------------------------------------------------------------------------ ), # close tabs within 'Run models' tab"},{"path":[]},{"path":"/articles/Dynameta.html","id":"section-4","dir":"Articles","previous_headings":"Editing the codebase > server.R script","what":"1","title":"Dynameta","text":"Section: Run models tab Line 579 Insert code beneath lines code: lines code: Code add: test app, click ‘Run App’ button RStudio, use ‘shiny::runApp()’ command. Adding chunks code results additional tab sub-group analysis ‘Run models’ tab app. , given option chose moderator, click ‘Run sub-group analysis’ run meta-analytic model produce R model summary. Users can build example around sub-group analysis, add additional features, alter parts app desired suit needs.","code":"# Download forest plot button output$download_forest_plot <- shiny::downloadHandler( filename = function() { paste0(\"forest_plot\", base::Sys.Date(), \".png\", sep=\"\") }, content = function(file) { grDevices::png(file, width = 1500, height = 1000) metafor::forest(custom_model(), xlim = c(-12, 8), # horizontal limits of the plot region ilab = base::cbind(Treatment), # add in info on treatment used ilab.xpos = -8, # position treatment labels order = Treatment, # Order results by treatment cex = 1.5, col = \"#0483A4\", # change colour of overall effect size diamond using CEH hero colour mlab = \"RE Model for All Studies\", header = \"Author(s) and Year\") grDevices::dev.off() } ) # ---------------------------------------------------------------------------------------------------------------- # ================================================================================================================= # ================================================================================================================= ##### References tab ## Make reactive moderator (for sub-group analysis) choices output$reactive_moderator_choice <- shiny::renderUI({ shinyWidgets::pickerInput(inputId = \"moderator_choice\", label = \"Moderator:\", choices = base::names(data()), selected = \"Country\", multiple = FALSE) # add actions box for selecting/de-selecting all options }) ### Run model # Run sub-group analysis model once the run model button has been pressed sub_group_analysis <- shiny::eventReactive(input$run_sub_group_analysis, { subgroup_analysis_data <- data() # Try to run the model. If doesn't work, tell user to include more data or view error message. base::tryCatch( expr = { # add small value to control and treatment columns subgroup_analysis_data$Treatment_Mean <- subgroup_analysis_data$Treatment_Mean + 0.1 subgroup_analysis_data$Control_Mean <- subgroup_analysis_data$Control_Mean + 0.1 # calculate effect sizes from number, mean, and SD - data needs to be in wide format # Adds yi and vi columns to data subgroup_analysis_data <- metafor::escalc(measure = \"ROM\", # log transformed ratio of means (i.e. log response ratio) n1i = subgroup_analysis_data$Treatment_N, n2i = subgroup_analysis_data$Control_N, m1i = subgroup_analysis_data$Treatment_Mean, m2i = subgroup_analysis_data$Control_Mean, sd1i = subgroup_analysis_data$Treatment_error, sd2i = subgroup_analysis_data$Control_error, slab = paste(Paper_ID), # slab adds study labels which will help when we make forest plot data = subgroup_analysis_data) # Make the chosen moderator a factor input_mod_factor <- as.factor(subgroup_analysis_data[, input$moderator_choice]) # Run metafor model sub_group_analysis_model <- metafor::rma.mv(yi, vi, # effect sizes and corresponding variances random = ~ 1 | Paper_ID/Observation_ID, # specify random-effects structure of model mods = ~ input_mod_factor, # specify the user's chosen moderator data = subgroup_analysis_data) sub_group_analysis <- sub_group_analysis_model }, error = function(e) { # If model does not successfully run, stop the process and return this error message base::stop(shiny::safeError(paste0(\"This model failed to run. This may be due to insufficient data for this model to run, but please see the R error message: \", e))) }) }) ### Render the model summary output output$subgroup_model_output <- shiny::renderPrint({ shiny::req(sub_group_analysis()) base::summary(sub_group_analysis()) })"},{"path":"/articles/Dynameta.html","id":"references","dir":"Articles","previous_headings":"","what":"References","title":"Dynameta","text":"Higgins JPT, Thomas J, Chandler J, Cumpston M, Li T, Page MJ, Welch VA (editors). Cochrane Handbook Systematic Reviews Interventions version 6.3 (updated February 2022). Cochrane, 2022. Available www.training.cochrane.org/handbook. Richardson, M., Garner, P., & Donegan, S. (2019). Interpretation subgroup analyses systematic reviews: tutorial. Clinical Epidemiology Global Health, 7(2), 192–198. https://doi.org/10.1016/j.cegh.2018.05.005","code":""},{"path":"/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Grace Skinner. Author, maintainer.","code":""},{"path":"/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Skinner G (2023). Dynameta: dynamic platform ecological meta-analyses R Shiny. R package version 0.0.0.9000, https://github.com/gls21/Dynameta.","code":"@Manual{, title = {Dynameta: A dynamic platform for ecological meta-analyses in R Shiny}, author = {Grace Skinner}, year = {2023}, note = {R package version 0.0.0.9000}, url = {https://github.com/gls21/Dynameta}, }"},{"path":[]},{"path":[]},{"path":"/index.html","id":"table-of-contents","dir":"","previous_headings":"","what":"Table of contents","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Introduction Installing using Dynameta package Using Dynameta Shiny app Repo structure Author name contact ## Introduction Dynameta R Shiny platform written R package. means app can launched running launch_Dynameta() function included R package. Dynameta app can used run interactive meta-analytic models. Meta-analyses used quantitatively summarise evidence across studies systematic process. larger sample size (hence power) compared individual research studies increases chance detecting significant effects. Despite representing significant improvement upon individual studies, meta-analyses number limitations Dynameta developed overcome: 1. Meta-analytic results based snapshot literature particular time. living review platform, Dynameta overcomes enabling results continually updated new evidence becomes available. 2. Meta-analytic publications restricted presenting results chosen questions asked researchers. hand, Dynameta allows investigation range questions based varying interests researchers manipulation graphical user interface. Dynameta designed interactive ecological meta-analyses, oriented around testing effect anthropogenic threats (based IUCN threats classification scheme) biodiversity. Nevertheless, code can easily repurposed suit variety meta-analytic contexts. example codebase can edited suit specific user’s needs, please see last section Dynameta vignette (Get started). server.R ui.R files define Dynameta Shiny app can found Dynameta_app/ directory. github, Dynameta_app/ can found inst/ directory. installed package, Dynameta_app/ directory can found directly package root directory, alongside DESCRIPTION, NAMESPACE, etc. files. Dynameta developed part GLiTRS project, cross-institutional consortium aiming build global threat-response models better understand predict insect biodiversity change. encounter issues bugs installing using Dynameta, please submit new issue issue tracker detailed description problem, including steps reproduce . ## Installing using Dynameta package","code":""},{"path":"/index.html","id":"installing-in-rstudio-using-devtools","dir":"","previous_headings":"Table of contents","what":"Installing in RStudio using devtools","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Installing package requires devtools, can installed loaded running following code R console: NOTE: installed devtools need restart R session installing avoid problems. issues installing devtools, try remotes package alternative. lightweight replacement install_* functions devtools. Install running: Next, install load Dynameta package running following code R console: potential reason unsuccessful installation vignette building correctly. case, remove ‘build_vignettes = TRUE’ argument installation command.","code":"install.packages(\"devtools\") library(devtools) install.packages(\"remotes\") library(remotes) devtools::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta) # Or if using remotes, run: remotes::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/index.html","id":"installing-in-r-not-rstudio-using-devtools","dir":"","previous_headings":"Table of contents","what":"Installing in R (not RStudio) using devtools","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Installing packages hosted GitHub uses Pandoc software, need installed installing Dynameta (Pandoc comes standard RStudio installation). See documentation . Pandoc required build vignettes. Pandoc installed, run following code (): Dynameta installation unsuccessful, try removing ‘build_vignettes = TRUE’ argument installation command.","code":"install.packages(\"devtools\") library(devtools) devtools::install_github(\"gls21/Dynameta\", build_vignettes = TRUE) library(Dynameta)"},{"path":"/index.html","id":"install-dynameta-from-source","dir":"","previous_headings":"Table of contents","what":"Install Dynameta from source","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Alternatively, download Source code (tar.gz file) Dynameta releases page. run following code R/RStudio:","code":"install.packages(path_to_file, repos = NULL, type = \"source\") # where path_to_file would represent the full path and file name"},{"path":"/index.html","id":"using-the-dynameta-package","dir":"","previous_headings":"Table of contents","what":"Using the Dynameta package","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"meta-analysis must underpinned robust evidence gathering framework, must completed proceeding Dynameta. includes writing registering protocol outlining clearly defined research questions evidence inclusion criteria, carefully considering suitability evidence based criteria, determining responsible updating meta-analysis Dynameta, long (avoid research waste). Please refer guidance documents listed ‘Resources’ tab section. successfully installed Dynameta, access help documentation, run: Launch Dynameta Shiny app: View sample data included package. contains data collected GLiTRS meta-analysis investigating effect pollution (specifically pesticide application) dragonfly damselfly (Odonata) abundance. ## Using Dynameta Shiny app","code":"help(package = \"Dynameta\") launch_Dynameta() # View sample data sample_data # View description of data set ?Dynameta::sample_data"},{"path":"/index.html","id":"introduction-tab","dir":"","previous_headings":"Table of contents","what":"Introduction tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"app opened, can choose whether want analyse sample data included package upload meta-analytic data analyse. default, Dynameta uses sample data provided package. select ‘data’, given option upload .csv file. needs meet criteria Dynameta able analyse - button click see columns need included. ‘Introduction’ tab provides breakdown data analyse using Dynameta, including details papers IUCN threat(s) investigated, map indicating data point originated .","code":""},{"path":"/index.html","id":"run-models-tab","dir":"","previous_headings":"Table of contents","what":"Run models tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"run meta-analytic models investigate different threats impact biodiversity, go ‘Run models’ tab. models multilevel meta-analytic models, run using metafor package. models account non-independence data specifying paper observation identification nested random effects. effect size used compare biodiversity log transformed Ratio Means (ROM) (also known log response ratio), quantifies proportionate change treatments. Based research question, can filter data threat, location, taxonomic order, biodiversity metric data collected . Make selections, click ‘Run custom model’. Dynameta run model real-time produce forest plot results. includes estimate overall effect size chosen IUCN threat biodiversity.","code":""},{"path":"/index.html","id":"references-tab","dir":"","previous_headings":"Table of contents","what":"References tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"View full paper details using ‘References’ tab.","code":""},{"path":"/index.html","id":"resources-tab","dir":"","previous_headings":"Table of contents","what":"Resources tab","title":"A dynamic platform for ecological meta-analyses in R Shiny","text":"Collaboration Environmental Evidence (CEE). See full guidance document. PRISMA - reporting systematic reviews meta-analysis (developed medical field see ecology specific version ). PRISMA Extension Ecology Evolution - conducting environmental evidence syntheses. ROSES - reporting systematic reviews meta-analysis (developed environmental research). Cochrane Handbook Systematic Reviews Interventions - conducting systematic reviews (developed medical field). Campbell Collaboration - conducting evidence syntheses (developed social sciences field). Meta-Analysis R: Hands-Guide metafor package tips notes ## Repo structure R-CMD-check.yaml - configures R CMD check workflow GitHub Actions. build check unit test (written using shinytest2) run time code pushed repository. launch_Dynameta.R - defines function can used launch Dynameta Shiny app. sample_data.R - describes sample data included package can analysed using Dynameta Shiny app (necessary make help documentation dataset). sample_data.rda - R data file containing sample data. docs - directory building Dynameta pkgdown website. server.R - defines Dynameta Shiny app works (back-end development). ui.R - defines Dynameta Shiny app looks (front-end development). shinytest2_test-001.json shinytest2_test-001_.png setup-shinytest2.R test-shinytest2.R - re-runs shinytest2 check outputs match expected outputs. testthat.R - part standard setup testthat. sample_data_for_shinytest.csv - sample data csv format. sample_data_rds - sample data (rds format) used default Dynameta Shiny app. images launch_Dynameta.Rd - R documentation file launch_Dynameta() function. sample_data.Rd - R documentation file sample data. figures - images needed pkgdown website. testthat/test-shinytest2_test.R - test driver script runs shinytest2 tests inst/Dynameta_app/tests directory. testthat.R - part standard setup testthat. Dynameta.Rmd - R markdown document Dynameta package Shiny app vignette. CITATION.cff - citation file Dynameta. DESCRIPTION - overall metadata Dynameta package. LICENSE - declare Dynameta package licensed. LICENSE.md - includes copy full text license. NAMESPACE - specifies functions Dynameta package exported user, functions packages imported Dynameta package. ## Author name contact * Grace Skinner (Research Associate Data Scientist UKCEH) * GraSki@ceh.ac.uk project licensed terms MIT license.","code":""},{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2022 Dynameta authors Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"/reference/launch_Dynameta.html","id":null,"dir":"Reference","previous_headings":"","what":"Launch Dynameta — launch_Dynameta","title":"Launch Dynameta — launch_Dynameta","text":"Launches Dynameta shiny app","code":""},{"path":"/reference/launch_Dynameta.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Launch Dynameta — launch_Dynameta","text":"","code":"launch_Dynameta()"},{"path":"/reference/launch_Dynameta.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Launch Dynameta — launch_Dynameta","text":"Shiny application object","code":""},{"path":"/reference/launch_Dynameta.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Launch Dynameta — launch_Dynameta","text":"","code":"if (FALSE) launch_Dynameta()"},{"path":"/reference/sample_data.html","id":null,"dir":"Reference","previous_headings":"","what":"Sample data that can be analysed using the Dynameta shiny app — sample_data","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"example dataset containing data collected GLiTRS meta-analysis investigating effect insecticide application Odonata abundance. can analysed using Dynameta shiny app.","code":""},{"path":"/reference/sample_data.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"","code":"data(sample_data)"},{"path":"/reference/sample_data.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Sample data that can be analysed using the Dynameta shiny app — sample_data","text":"data frame 47 rows 46 variables: Paper_ID paper comparison drawn. (character) Included exclusion inclusion status paper. (character) Observation_ID comparison row, unique row. (character) Author full list authors paper. (character) Year year publication paper. (integer) Title paper title. (character) Journal journal paper published . (character) DOI DOI paper. (character) URL URL paper. (character) Language language paper. (character) Database database paper found. (character) Latitude latitude coordinate observation row. (double) Longitude longitude coordinate observation row. (double) Country country observation row located. (character) Taxa_level taxonomic level common biodiversity recorded row. (character) Taxa_name name taxonomic level common biodiversity recorded row. (character) Order taxonomic order biodiversity measured row, treatment control. (character) Family taxonomic family biodiversity measured row, treatment control. (character) Genus taxonomic genus biodiversity measured row, treatment control. (character) Binomial Latin binomial species row, recorded. (character) Life_history_stage life-history stage taxa row. (character) Experimental_year_start year data collection started. (integer) Experimental_year_end year data collection ended. (integer) Sampling_method sampling method used sample biodiversity measure. (character) Biodiversity_metric metric biodiversity measured. Biodiversity_metric typically one “Abundance”, “Richness”, “Biomass”. (character) Unit specific unit measure biodiversity recorded row. (character) IUCN_threat_category_1 Broadest level IUCN threat. (character) IUCN_threat_category_2 Secondary level IUCN threat. (character) IUCN_threat_category_3 Tertiary level IUCN threat. (character) Treatment Name threat measured row (e.g. insecticide). (character) Treatment_quantity quantity treatment reported authors observation. (double) Treatment_quantity_unit unit measure numeric value Treatment_quantity. (character) Control Name control measured row (e.g. insecticide). (character) Extracted_from figure table data row extracted. (character) Evidence_type type evidence data row. Type evidence either “Experimental” “Quasi-experimental”. (character) Treatment_N number treatment sites mean error values drawn. (integer) Treatment_Mean mean biodiversity value across treatment sites comparison. (double) Treatment_error raw treatment error value reported authors observation. (double) Treatment_error_type type error recorded Treatment_error. Typically one Standard error, Standard deviation, 95% confidence interval. (character) Control_N number control sites mean error values drawn. (integer) Control_Mean mean biodiversity value across control sites comparison. (double) Control_error raw control error value reported authors observation. (double) Control_error_type type error recorded Control_error. Typically one “Standard error”, “Standard deviation”, “95% confidence interval”. (character) Contributor_name Name contributor row. (character) Search_date Date final optimised search carried . (date) Notes field used relevant descriptions don’t fall within core data, can’t categorised clearly defined factors associated metadata, provide explanations associated metadata. (character)","code":""}] diff --git a/inst/Dynameta_app/server.R b/inst/Dynameta_app/server.R index 22a511f..2bebd23 100644 --- a/inst/Dynameta_app/server.R +++ b/inst/Dynameta_app/server.R @@ -268,7 +268,8 @@ server <- function(input, output) { output$map_figure_legend <- shiny::renderText({ base::paste("Figure 1.", "Map showing location of data points. Currently,", data_with_coords(), "out of", total_data_points(), "data points have latitude and longitude co-ordinates provided to enable them to be plotted.
    - Often, clusters of data points have the same co-ordinates. You can zoom in on, and click on, data clusters to explore the map.") + Often, clusters of data points have the same co-ordinates. You can zoom in on, and click on, data clusters to explore the map. + Clicking on an individual data point provides a link to the original paper (if available).") }) # Download map button @@ -493,7 +494,7 @@ server <- function(input, output) { paste(shiny::isolate(input$taxa_order), collapse = ", "), " in ", paste(shiny::isolate(input$location), collapse = ", "), " measured with ", paste(shiny::isolate(input$biodiversity_metric_category), collapse = ", "), " as the biodiversity metric is ", round(stats::coef(custom_model()), digits = 2), ". This equates to a percentage change of ", percentage_change, "%", " [", ci_lb, "%, ", ci_ub, "%].

    ", - "The I² statistic for the meta-analysis is ", i2, "%. This describes the percentage of total variance that is due to heterogeneity (variability among studies), and not due to chance.

    ", + "The", "", "statistic for the meta-analysis is ", i2, "%. This describes the percentage of total variance that is due to heterogeneity (variability among studies), and not due to chance.

    ", sep = "") }) diff --git a/inst/Dynameta_app/ui.R b/inst/Dynameta_app/ui.R index d544789..e3875e1 100644 --- a/inst/Dynameta_app/ui.R +++ b/inst/Dynameta_app/ui.R @@ -85,24 +85,24 @@ ui <- shiny::navbarPage( which Dynameta was developed to overcome:")), h5(tags$ol( - tags$li("Meta-analytic results are based on a snapshot of literature at a particluar time. As a living review platform, + tags$li("Meta-analytic results are based on a snapshot of literature at a particular time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available."), - tags$li("Meta-analytic publications are resticted to presenting the results of the chosen questions asked by those researchers. + tags$li("Meta-analytic publications are restricted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface.") )), p(h5("Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the ", tags$a(href="https://www.iucnredlist.org/resources/threat-classification-scheme", "IUCN threats classification scheme", .noWS = "outside"), - ") on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts.")), + ") on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. + Please see the ", tags$a(href="https://gls21.github.io/Dynameta/articles/Dynameta.html#editing-the-codebase", "Editing the codebase"), " section of the vignette for an example of this.")), - p(h5("The app is split into 3 main sections:")), + p(h5("The app is split into 2 main sections:")), h5(tags$ol( tags$li("Use this 'Introduction' to choose data to analyse and investigate the data. The sample data is selected by default and consists of data collected to test the effect of pollution (specifically pesticide application) on dragonfly and damselfly (Odonata) abundance"), - tags$li("Go to 'Run models' to run custom meta-analytic models to investigate the effect of threats on biodiversity."), - tags$li("Go to 'References' to view full details of the papers that contribute data to your analysis.") + tags$li("Go to 'Run models' to run custom meta-analytic models to investigate the effect of threats on biodiversity.") )), p(h5("Dynameta was developed as part of the ", tags$a(href="https://glitrs.ceh.ac.uk/", "GLiTRS"), "project, a cross-institutional consortium aiming to build @@ -372,7 +372,7 @@ ui <- shiny::navbarPage( the filters that were applied, and the R session information. Once downloaded, use the readRDS() and attributes() functions to load the model object and view its attributes. By downloading, it allows the same analysis to be repeated at a later date (perhaps after more data has become available)."), - tags$li("Click 'Download forest plot' to download a .png file of your forest plot") + tags$li("Click 'Download forest plot' to download a .png file of your forest plot.") ))), shiny::fluidRow( @@ -474,16 +474,16 @@ ui <- shiny::navbarPage( p(h5("Please refer to and follow the guidance developed by communities of practice when conducting evidence syntheses:", tags$ul( + tags$li(tags$a(href="https://environmentalevidence.org/", "Collaboration for Environmental Evidence (CEE)"), + " - For conducting environmental evidence syntheses. See ", + tags$a(href="https://environmentalevidence.org/information-for-authors", "here"), + "for full guidance document."), tags$li(tags$a(href="http://www.prisma-statement.org/", "PRISMA"), " - For reporting systematic reviews and meta-analysis (developed for medical field but see ecology specific version below)."), tags$li(tags$a(href="http://www.prisma-statement.org/Extensions/EcoEvo", "PRISMA Extension for Ecology and Evolution")), tags$li(tags$a(href="https://www.roses-reporting.com/", "ROSES"), " - For reporting systematic reviews and meta-analysis (developed for environmental research)."), - tags$li(tags$a(href="https://environmentalevidence.org/", "Collaboration for Environmental Evidence (CEE)"), - " - For conducting environmental evidence syntheses. See ", - tags$a(href="https://environmentalevidence.org/information-for-authors", "here"), - "for full guidance document."), tags$li(tags$a(href="https://training.cochrane.org/handbook/current", "Cochrane Handbook for Systematic Reviews of Interventions"), " - For conducting systematic reviews (developed for medical field)."), tags$li(tags$a(href="https://www.campbellcollaboration.org/research-resources/training-courses.html", "Campbell Collaboration"), diff --git a/man/figures/intro_tab.PNG b/man/figures/intro_tab.PNG index 1e24cfc..e8a7c54 100644 Binary files a/man/figures/intro_tab.PNG and b/man/figures/intro_tab.PNG differ diff --git a/man/figures/references_tab.PNG b/man/figures/references_tab.PNG index cc916df..d09eaf0 100644 Binary files a/man/figures/references_tab.PNG and b/man/figures/references_tab.PNG differ diff --git a/man/figures/run_models_tab_forest_plot.PNG b/man/figures/run_models_tab_forest_plot.PNG index 4f6f802..2a525d5 100644 Binary files a/man/figures/run_models_tab_forest_plot.PNG and b/man/figures/run_models_tab_forest_plot.PNG differ diff --git a/vignettes/Dynameta.Rmd b/vignettes/Dynameta.Rmd index d2c7060..504f9d2 100644 --- a/vignettes/Dynameta.Rmd +++ b/vignettes/Dynameta.Rmd @@ -24,10 +24,10 @@ Meta-analyses are used to quantitatively summarise evidence across studies in a Despite representing a significant improvement upon individual studies, meta-analyses have a number of limitations which Dynameta was developed to overcome: -1. Meta-analytic results are based on a snapshot of literature at a particluar time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. -2. Meta-analytic publications are resticted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface. +1. Meta-analytic results are based on a snapshot of literature at a particular time. As a living review platform, Dynameta overcomes this by enabling results to be continually updated as new evidence becomes available. +2. Meta-analytic publications are restricted to presenting the results of the chosen questions asked by those researchers. On the other hand, Dynameta allows investigation of a range of questions based on varying interests of researchers through manipulation of the graphical user interface. -Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the [IUCN threats classification scheme](https://www.iucnredlist.org/resources/threat-classification-scheme)) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. On github, Dynameta_app/ can be found in the [inst/ directory](https://github.com/gls21/Dynameta/tree/main/inst/Dynameta_app). If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files. +Dynameta is designed for interactive ecological meta-analyses, oriented around testing the effect of anthropogenic threats (based on the [IUCN threats classification scheme](https://www.iucnredlist.org/resources/threat-classification-scheme)) on biodiversity. Nevertheless, the code can be easily repurposed to suit a variety of meta-analytic contexts. Please see the [Editing the codebase](https://gls21.github.io/Dynameta/articles/Dynameta.html#editing-the-codebase) section of this vignette for an example of this. The server.R and ui.R files that define the Dynameta Shiny app can be found in the Dynameta_app/ directory. On github, Dynameta_app/ can be found in the [inst/ directory](https://github.com/gls21/Dynameta/tree/main/inst/Dynameta_app). If you have installed the package, the Dynameta_app/ directory can be found directly in the package root directory, alongside the DESCRIPTION, NAMESPACE, etc. files. Dynameta was developed as part of the [GLiTRS](https://glitrs.ceh.ac.uk/) project, a cross-institutional consortium aiming to build global threat-response models to better understand and predict insect biodiversity change. @@ -78,6 +78,10 @@ Please see the [README](https://github.com/gls21/Dynameta/tree/main#readme) for
    ### Using the Dynameta package +Any meta-analysis must be underpinned by a robust evidence gathering framework, which must be completed before proceeding with Dynameta. This includes writing and registering a protocol outlining clearly defined research questions and evidence inclusion criteria, carefully considering the suitability of evidence based on these criteria, and determining who will be responsible for updating the meta-analysis with Dynameta, and for how long (as to avoid research waste). Please refer to the resources listed in the [README](https://github.com/gls21/Dynameta#resources-tab). + +
    + Once you have successfully installed Dynameta, to access help documentation, run: ```{r, eval = FALSE} help(package = "Dynameta") @@ -124,7 +128,7 @@ Dynameta::launch_Dynameta() # The function takes no arguments ![](../man/figures/run_models_tab_choose_filters.PNG){width=150% height=150%} * Dynameta will run the model in real-time and produce a forest plot of the results. This includes an estimate of the overall effect size of your chosen IUCN threat on biodiversity. -* You are also able to download the model object (.rds) and a file containing the results summary of the model fitting (.txt). +* There are options available to download the results. ![](../man/figures/run_models_tab_forest_plot.PNG){width=150% height=150%} @@ -144,11 +148,15 @@ Access links to guidance developed by communities of practice when conducting ev ## Editing the codebase A user may wish to edit the codebase to better suit their needs. Here we document an example of how to add the option to perform full sub-group analysis on the data (in addition to the current approach taken by Dynameta, which is to complete a meta-analysis on a subset of the data). -For full sub-group analysis, several separate random-effects meta-analyses are conducted (one for each subgroup) and the effects of the subgroups are compared using a statistical test. To run a meta-analytic model with sub-group analysis using metafor, you can add a categorical variable as a moderator. +For full sub-group analysis, several separate random-effects meta-analyses are conducted (one for each sub-group) and the effects of the sub-groups are compared using a statistical test. To run a meta-analytic model with sub-group analysis using metafor, you can add a categorical variable as a moderator. + +
    + +Careful consideration needs to be taken when conducting sub-group analysis, both in terms of deciding when it is appropriate to carry out, and when interpreting the results. As a guide, the [Cochrane Handbook section 10.11.5.1](https://training.cochrane.org/handbook/current/chapter-10#section-10-11-5-1) suggests that at least ten data points need to be available for each sub-group modelled. For a guide to interpreting the results, please see [Richardson et al. (2019)](https://cegh.net/article/S2213-3984(18)30099-X/fulltext).
    -To achieve this, you need access to the scripts that need to be edited. Possible options are to fork the [Dynameta GitHub repo](https://github.com/gls21/Dynameta), or download the repo as a zipped file. +To add sub-group analysis as an option in Dynameta, you need access to the scripts that need to be edited. Possible options are to fork the [Dynameta GitHub repo](https://github.com/gls21/Dynameta), or download the repo as a zipped file. Next you will need to open the ui.R and server.R files that make up the Dynameta shiny app. These are in the [/inst/Dynameta_app/](https://github.com/gls21/Dynameta/tree/main/inst/Dynameta_app) directory. @@ -220,7 +228,7 @@ tags$hr(), Code/text to alter/add: ```{r, eval=FALSE} -# Alter this text to describe difference between subset analysis and subgroup analysis +# Alter this text to describe difference between subset analysis and sub-group analysis ## Comment out this original text ## #p(h5("Based on your research question, you can filter the data by threat, location, taxonomic order, and biodiversity metric.")), @@ -233,7 +241,7 @@ h5(tags$ol( and run a meta-analytic model on this subset of data."), tags$li("Choose a moderator variable and carry out a full sub-group analysis (meta-regression with a categorical predictor) to see if the pooled effect sizes - found in these subgroups differ from each other.") + found in these sub-groups differ from each other.") )), ``` @@ -521,3 +529,10 @@ Users can build on the example here around sub-group analysis, add additional fe
    +## References + +Higgins JPT, Thomas J, Chandler J, Cumpston M, Li T, Page MJ, Welch VA (editors). Cochrane Handbook for Systematic Reviews of Interventions version 6.3 (updated February 2022). Cochrane, 2022. Available from www.training.cochrane.org/handbook. + +Richardson, M., Garner, P., & Donegan, S. (2019). Interpretation of subgroup analyses in systematic reviews: A tutorial. Clinical Epidemiology and Global Health, 7(2), 192–198. https://doi.org/10.1016/j.cegh.2018.05.005 + +