12 Overall <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\bananadata.csv")
\r
13 plantlets <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\plantlets.csv")
\r
14 FloweringD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\all_flowering.csv")
\r
15 FirstpollinationD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\firstpollination.csv")
\r
16 RepeatPolln <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\repeatpollination.csv")
\r
17 HarvestedD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\harvesting.csv")
\r
18 RipenedD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\ripening.csv")
\r
19 Plant_statusD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\status.csv")
\r
20 Seed_extractionD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\extraction.csv")
\r
21 EmbryorescueD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\rescued.csv")
\r
22 Germinating_two_weeksD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\germinating2weeks.csv")
\r
23 Germinating_6weeksD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\germinating6weeks.csv")
\r
24 SubcultureD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\subculture.csv")
\r
25 RootingD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\rooting.csv")
\r
26 HardeningD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\hardening.csv")
\r
27 ScreenhouseD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\screenhouse.csv")
\r
28 OpenfieldD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\openfield.csv")
\r
29 ContaminationD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\Contamination.csv")
\r
30 StatusD <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\status.csv")
\r
32 All_data <- Overall %>%
\r
33 select("crossnumber","mother", "mother_accessionName", "father", "father_accessionName", "firstpollination_date",
\r
34 starts_with("Male"),starts_with("repeatPollinationDate"), starts_with("Male_accessionName"),"harvesting_date", "days_to_maturity","ripen_date",
\r
35 "days_harvest_ripening","seed_extraction_date","number_seeds", "good_seeds","badseeds", "days_ripening_extraction","number_rescued",
\r
36 "rescue_date", "days_extraction_rescue","germination_after_2weeks_date","actively_germination_after_two_weeks","days_rescue_2weeksGermination",
\r
37 "germination_after_6weeks_date","actively_germination_after_6weeks","days_2weeksGermination_6weeksGermination",
\r
38 "subculture_date", "subcultures", "days_6weeks_Germination_subculture")
\r
39 all_plantlets = plantlets %>%
\r
40 select("crossnumber","plantletID","subculture_date","date_rooting","days_subculture_rooting","screenhse_transfer_date","days_rooting_screenhse",
\r
41 "hardening_date","days_scrnhse_hardening","date_of_transfer_to_openfield","days_hardening_openfield")
\r
42 Flowering <- FloweringD[,5:8]
\r
43 colnames(Flowering) <- c("plot_number","accession_name","flowering_date","sex")
\r
44 FirstPollination <- FirstpollinationD[,8:13]
\r
45 colnames(FirstPollination) <- c("mother_plotNumber","mother_acc_name","father_plotNumber","father_acc_name","crossnumber","firstpollination_date")
\r
46 Firstpollination <- FirstPollination[,c(5,1,2,3,4,6)]
\r
47 RepeatPollination <- RepeatPolln[,-1]
\r
48 Harvested <- HarvestedD[,c(4,6:7,3)]
\r
49 Ripened <- RipenedD[,c(4,6:7,3)]
\r
50 Seed_extraction <- Seed_extractionD[,c(4,6:8,3)]
\r
51 Embryorescue <- EmbryorescueD[,c(4,6:10,3)]
\r
52 Germinating_two_weeks <- Germinating_two_weeksD[,c(4,6:8,3)]
\r
53 Germinating_6weeks <- Germinating_6weeksD[,c(4,6:8,3)]
\r
54 Subculture <- SubcultureD[,c(4,6:8,3)]
\r
55 Rooting <- RootingD[,c(4,6:7,3)]
\r
56 Screenhouse <- ScreenhouseD[,c(4,6:7,3)]
\r
57 Hardening <- HardeningD[,c(4,6:7,3)]
\r
58 Openfield <- OpenfieldD[,c(4,6:7,3)]
\r
59 Contamination <- ContaminationD[,c(4,6:7,3)]
\r
60 Plant_status = StatusD[,c(5:7,3)]
\r
62 # # NUMBER OF ACCESSION IN DIFFERENT STAGES OF PROJECT
\r
63 nTable = read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\nTable.csv", stringsAsFactors = F)
\r
65 cleantable <- read.csv("D:\\github\\ODK_bananaCrossingTool\\Analysis\\cleantable.csv", stringsAsFactors = F)
\r
70 ui <- navbarPage("BP - TOOL", theme = shinytheme("united"),
\r
71 tabPanel("DASHBOARD",
\r
73 column(6,h4("Total submissions per day"),
\r
74 plotOutput("tsubs", height = 250),
\r
76 h5("Activities per contributor"),
\r
77 plotOutput("csubs", height = 300)),
\r
78 column(4,offset = 1, h4("Number of accessions in different stages of project"),
\r
80 DT::dataTableOutput("nAccessions"))
\r
82 tabPanel("TODAY'S REPORT",
\r
84 column(3, h4("Table: Today summary"), br(),tableOutput("dsumTable")),
\r
85 column(6, h4("Table: Today's records"),br(), tableOutput("dTable"))
\r
87 fluidRow( column(10, offset = 1, htmlOutput("text")))
\r
89 navbarMenu("DATA TABLES",
\r
90 tabPanel("Crosses datasets",
\r
93 selectInput("select_activity", "Crosses datasets",
\r
94 choices = c("All crosses data","Flowering","Firstpollination","RepeatPollination","Harvested",
\r
95 "Ripened","Seed_extraction","Embryorescue","Germinating_two_weeks",
\r
96 "Germinating_6weeks","Subculture")))),
\r
99 column(10,offset=1,
\r
100 div(style = c('overflow-x: scroll', "font-size: 75%; width: 75%"),
\r
101 DT::dataTableOutput("crossesTable")),
\r
102 downloadButton('downloadcrosses', 'Download data')))
\r
104 tabPanel("Plantlets datasets",
\r
106 column(2, offset = 1,
\r
107 selectInput("plantlets","Plantlets datasets",
\r
108 choices = c("All plantlets data","Rooting","Screenhouse","Hardening","Openfield")))),
\r
111 column(10,offset=1,
\r
112 div(style = c('overflow-x: scroll', "font-size: 75%; width: 75%"),
\r
113 DT::dataTableOutput("plantletsTable")),
\r
114 downloadButton('downloadplantlets', 'Download data')))
\r
116 tabPanel("Status and contamination",
\r
118 column(2, offset = 1,
\r
119 selectInput("statusCont","Status and contamination", choices = c("Status","Contamination")))
\r
123 column(10,offset=1,
\r
124 div(style = c('overflow-x: scroll', "font-size: 75%; width: 75%"),
\r
125 DT::dataTableOutput("statusConTable")),
\r
126 downloadButton('downloadstatusCont', 'Download data')))
\r
129 tabPanel("DATA EXPLORER",
\r
131 column(3,selectInput("locations", "locations", c("All locations"="", unique(cleantable$location)), multiple=TRUE)),
\r
132 column(3,conditionalPanel("input.locations",
\r
133 selectInput("activities", "Activities", c("Activities"=""), multiple=TRUE))),
\r
134 column(3,conditionalPanel("input.locations",
\r
135 selectInput("accessions", "Accessions", c("Accessions"=""), multiple=TRUE)))
\r
138 column(10, offset = 1,
\r
139 DT::dataTableOutput("dataExplorer"))
\r
145 server <- function(input, output, session){
\r
146 output$tsubs <- renderPlot({
\r
147 qplot(data=cleantable, x=date) + ylab("Submission Count") + theme(legend.position = "bottom")
\r
149 output$csubs <- renderPlot({
\r
150 qplot(data=cleantable, x=contributor, fill=activity) + theme(legend.position = "right")
\r
152 output$nAccessions <- DT::renderDataTable({
\r
156 crossesInput <- reactive({
\r
157 switch(input$select_activity, "All crosses data" = All_data,
\r
158 "Flowering" = Flowering,"Firstpollination" = Firstpollination,
\r
159 "RepeatPollination" = RepeatPollination,
\r
160 "Harvested" = Harvested,"Ripened" = Ripened,"Seed_extraction" = Seed_extraction,
\r
161 "Embryorescue" = Embryorescue,"Germinating_two_weeks" = Germinating_two_weeks,
\r
162 "Germinating_6weeks" = Germinating_6weeks,"Subculture" = Subculture)
\r
165 plantletsInput <- reactive({
\r
166 switch(input$plantlets, "All plantlets data" = all_plantlets,
\r
167 "Rooting" = Rooting,"Screenhouse" = Screenhouse,"Hardening" = Hardening,"Openfield" = Openfield)
\r
169 statusConInput <- reactive({
\r
170 switch(input$statusCont,"Status" = Plant_status,"Contamination" = Contamination)
\r
173 output$crossesTable <- DT::renderDataTable({
\r
176 output$plantletsTable <- DT::renderDataTable({
\r
179 output$statusConTable <- DT::renderDataTable({
\r
184 output$downloadData <- downloadHandler(
\r
185 filename = function() { paste(input$datasets, '.csv', sep='') },
\r
186 content = function(file) {
\r
187 write.csv(datasetInput(), file)
\r
190 todaydata = dplyr::filter(cleantable, cleantable$date==Sys.Date())
\r
192 if (dim(todaydata)[1]==0)
\r
194 output$text <- renderText({paste("No activity was recorded today")})
\r
197 mytable = table(todaydata$location,todaydata$activity)
\r
198 dtable = as.data.frame(mytable)
\r
199 names(dtable) = c("location","Activity","N")
\r
200 output$dsumTable <- renderTable(dtable)
\r
201 output$dTable <- renderTable(todaydata)
\r
203 output$dPlot <- renderPlot({
\r
204 s<- ggplot(todaydata, aes(activity, fill=contributor))
\r
205 s + geom_bar(position = 'stack') + theme(legend.position = "bottom") + coord_flip()
\r
207 ggplot(todaydata, aes(x = reorder(activity, -accession), y = accession, fill = activity)) +
\r
208 geom_bar(stat = "identity")
\r
212 activities <- if (is.null(input$locations)) character(0) else {
\r
213 filter(cleantable, location %in% input$locations) %>%
\r
214 `$`('activity') %>%
\r
218 stillSelected <- isolate(input$activities[input$activities %in% activities])
\r
219 updateSelectInput(session, "activities", choices = activities,
\r
220 selected = stillSelected)
\r
224 accessions <- if (is.null(input$locations)) character(0) else {
\r
226 filter(location %in% input$locations,
\r
227 is.null(input$activities) | activity %in% input$activities) %>%
\r
228 `$`('accession') %>%
\r
232 stillSelected <- isolate(input$accessions[input$accessions %in% accessions])
\r
233 updateSelectInput(session, "accessions",choices = accessions,
\r
234 selected = stillSelected)
\r
237 output$dataExplorer <- DT::renderDataTable({
\r
238 df <- cleantable %>%
\r
240 is.null(input$locations) | location %in% input$locations,
\r
241 is.null(input$activities) | activity %in% input$activities,
\r
242 is.null(input$accessions) | accession %in% input$accessions
\r
244 #mutate(Action = paste('<a class="go-map" href="" data-lat="', Lat, '" data-long="', Long, '" data-zip="', Zipcode, '"><i class="fa fa-crosshairs"></i></a>', sep=""))
\r
245 action <- DT::dataTableAjax(session, df)
\r
247 DT::datatable(df, options = list(ajax = list(url = action)), escape = FALSE)
\r
250 shinyApp(ui = ui, server = server)