You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
4.2KB

  1. ---
  2. title: Microbiote
  3. runtime: shiny
  4. output:
  5. html_document
  6. ---
  7. ```{r setup, message = F, warning = F, echo = F}
  8. library(tidyverse)
  9. library(readxl)
  10. library(DT)
  11. library(knitr)
  12. library(magrittr)
  13. library(desctable)
  14. library(plotly)
  15. library(FactoMineR)
  16. opts_chunk$set(message = F,
  17. echo = F,
  18. warning = F)
  19. options(DT.options = list(paging = F,
  20. searching = F,
  21. info = F,
  22. dom = "Bfrtip",
  23. buttons = c("copy", "excel")),
  24. shiny.maxRequestSize = 100*1024^2)
  25. ```
  26. # {.tabset}
  27. ## Manuel d'utilisation
  28. Chaque onglet fournit un outil d'analyse différent.
  29. ### Comparaison d'abondances
  30. Cet outil permet les comparaisons sur les abondances relatives avec une technique.
  31. Il faut fournir un fichier contenant les abondances relatives, avec une ou des colonnes décrivant les groupes à comparer.
  32. Le fichier doit être au format csv européen, c'est à dire avec les paramètres suivants :
  33. * séparateur de champs = **;**
  34. * guillemets = "
  35. * encodage = **latin1**
  36. * séparateur de décimales = **,**
  37. Ce format est celui obtenu en sauvegardant un fichier en CSV depuis Excel.
  38. Un premier onglet permet de visualiser les données, afin de vérifier leur bonne lecture.
  39. Les colonnes des variables textuelles peuvent être filtrées selon les niveaux.
  40. Les colonnes numériques peuvent être triées et filtrées par plage de valeurs.
  41. L'outil fournit le tableau de comparaison des abondances relatives, le tableau de comparaison des présences de taxons, et la PCA.
  42. Tous les tableaux sont exportables au format excel, ou peuvent être directemnent copiés depuis la page. Les tests effectués sont indiqués à côté de la p-value.
  43. ## Comparaison d'abondances {.tabset}
  44. ### Données
  45. ```{r data_abondances}
  46. inputPanel(
  47. fileInput("data_abondances", "Abondances relatives", accept = "text/csv"),
  48. uiOutput("sheets"),
  49. uiOutput("groupes_abondances"),
  50. uiOutput("variables_abondances")
  51. )
  52. data_abondances <- reactive(
  53. {
  54. req(input$data_abondances)
  55. read_csv2(input$data_abondances$datapath, locale = locale(encoding = "latin1")) %>%
  56. mutate_if(is.character, factor)
  57. }
  58. )
  59. output$groupes_abondances <- renderUI({
  60. req(data_abondances())
  61. radioButtons("groupes_abondances", "Groupe", names(data_abondances() %>% keep(is.factor)))
  62. })
  63. output$variables_abondances <- renderUI({
  64. req(data_abondances())
  65. names(data_abondances() %>% discard(is.factor)) -> variables
  66. checkboxGroupInput("variables_abondances", "Variables à comparer", variables, variables)
  67. })
  68. ```
  69. ```{r raw_data}
  70. DT::renderDataTable({
  71. req(data_abondances())
  72. data_abondances() %>%
  73. datatable(filter = "top")
  74. })
  75. ```
  76. ### Résultat {.tabset}
  77. #### Descriptif
  78. ```{r resultat_descriptif}
  79. DT::renderDataTable({
  80. req(data_abondances())
  81. data_abondances() %>%
  82. desctable %>%
  83. datatable
  84. }, server = F)
  85. ```
  86. #### Comparatif abondances
  87. ```{r resultat_abondances}
  88. DT::renderDataTable({
  89. req(input$groupes_abondances, input$variables_abondances)
  90. data_abondances() %>%
  91. group_by(!!as.symbol(input$groupes_abondances)) %>%
  92. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  93. desctable %>%
  94. datatable
  95. }, server = F)
  96. ```
  97. #### Comparatif présence
  98. ```{r resultat_presence}
  99. DT::renderDataTable({
  100. req(input$groupes_abondances, input$variables_abondances)
  101. data_abondances() %>%
  102. mutate_at(vars(input$variables_abondances), . %>% {. == 0} %>% factor(levels = c(T, F), labels = c("Absent", "Présent"))) %>%
  103. group_by(!!as.symbol(input$groupes_abondances)) %>%
  104. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  105. desctable %>%
  106. datatable
  107. }, server = F)
  108. ```
  109. <!--
  110. #### Boxplots
  111. ```{r resultats_boxplots, asis = T}
  112. reactive({
  113. data_abondances()[[input$groupes_abondances]] %>%
  114. levels %>%
  115. map(~knit_expand(text = c("##### {{grp}}", "```{r fuck-{{grp}}}", "print(\"{{grp}}\")" ,"```"), grp = .)) %>%
  116. unlist %>%
  117. knit(text = .)
  118. })
  119. ```
  120. -->
  121. #### PCA
  122. ```{r resultat_PCA}
  123. renderPlot({
  124. data_abondances() %>%
  125. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  126. PCA(quali.sup=1, graph = F) %>%
  127. plotellipses(keepvar = 1)
  128. })
  129. ```