@@ -2,6 +2,7 @@ library(shiny)
22library(traits )
33library(ggplot2 )
44library(lubridate )
5+ library(DataCache )
56
67knitr :: opts_chunk $ set(echo = FALSE , cache = TRUE )
78
@@ -10,7 +11,6 @@ options(betydb_key = readLines('~/.betykey', warn = FALSE),
1011 betydb_api_version = ' beta' )
1112
1213experiments <- betydb_query(table = ' experiments' )
13- # varIdsObserved <- as.numeric()
1414
1515ui <- fluidPage(
1616 titlePanel(" BETYdb Trait Data" ),
@@ -25,6 +25,24 @@ ui <- fluidPage(
2525 )
2626)
2727
28+ # load traits function used for cache functionality
29+ loadTraitData <- function (startDate , endDate ) {
30+
31+ fullTraitData <- data.frame ()
32+
33+ currDate <- startDate
34+ while (endDate - currDate != 0 ) {
35+ currTraitData <- betydb_query(table = ' traits' , data = paste0(' ~' , currDate ))
36+ fullTraitData <- rbind(fullTraitData , currTraitData )
37+ currDate <- currDate + days(1 )
38+ }
39+
40+ retData <- list (fullTraitData )
41+ names(retData ) <- ' fullTraitData'
42+
43+ return (retData )
44+ }
45+
2846server <- function (input , output ) {
2947
3048 output $ traitPlot <- renderPlot({
@@ -33,14 +51,9 @@ server <- function(input, output) {
3351
3452 selectedExpRow <- subset(experiments , name == input $ selectedExp )
3553 experimentStartDate <- as.Date(selectedExpRow $ start_date )
36- experimentEndDate <- experimentStartDate + days( 10 ) # as.Date(selectedExpRow$end_date)
54+ experimentEndDate <- as.Date(selectedExpRow $ end_date )
3755
38- currDate <- experimentStartDate
39- while (experimentEndDate - currDate != 0 ) {
40- currTraitData <- betydb_query(table = ' traits' , date = paste0(' ~' , currDate ), limit = ' 1' )
41- fullTraitData <- rbind(fullTraitData , currTraitData )
42- currDate <- currDate + days(1 )
43- }
56+ data.cache(cache.name = ' TraitCache' , loadTraitData , startDate = experimentStartDate , endDate = experimentEndDate )
4457
4558 output $ selectVariable <- renderUI({
4659 variableIds <- as.numeric(unique(fullTraitData $ variable_id ))
0 commit comments