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.

147 lines
4.1KB

  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 {.tabset}
  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 (celui général par excel en enregistrant au format csv), c'est à dire avec des point-virgules pour séparer les colonnes, et des virgules pour les décimales.
  33. L'outil fournit le tableau de comparaison des abondances relatives, le tableau de comparaison des présences de taxons, et la PCA.
  34. Il est possible de choisir la variable de groupage parmis toutes les variables textuelles du fichier, et il est possible d'exclure certaines des abondances de l'analyse.
  35. 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.
  36. ### Comparaison de techniques
  37. Fournir un fichier avec les abondances relatives selon différentes techniques.
  38. (pas encore implémenté)
  39. ## Comparaison d'abondances
  40. ### Données
  41. Le fichier doit être fourni au format CSV avec les paramètres suivants :
  42. * séparateur de champs = **;**
  43. * guillemets = "
  44. * encodage = **UTF-8**
  45. * séparateur de décimales = **,**
  46. ```{r data_abondances}
  47. inputPanel(
  48. fileInput("data_abondances", "Abondances relatives", accept = "text/csv"),
  49. uiOutput("sheets"),
  50. uiOutput("groupes_abondances"),
  51. uiOutput("variables_abondances")
  52. )
  53. data_abondances <- reactive(
  54. {
  55. req(input$data_abondances)
  56. #excel_sheets(input$data_abondances$datapath) -> sheets
  57. #sheets %>%
  58. # map(~read_excel(input$data_abondances$datapath, sheet = .x) %>%
  59. # mutate_if(is.character, factor)) %>%
  60. #setNames(sheets)
  61. read_csv2(input$data_abondances$datapath, locale = locale(encoding = "latin1")) %>%
  62. mutate_if(is.character, factor)
  63. }
  64. )
  65. #output$sheets <- renderUI({
  66. # req(data_abondances())
  67. # selectInput("sheets", "Feuillet", names(data_abondances()))
  68. #})
  69. output$groupes_abondances <- renderUI({
  70. req(data_abondances())
  71. radioButtons("groupes_abondances", "Groupe", names(data_abondances() %>% keep(is.factor)))
  72. })
  73. output$variables_abondances <- renderUI({
  74. req(data_abondances())
  75. names(data_abondances() %>% discard(is.factor)) -> variables
  76. checkboxGroupInput("variables_abondances", "Variables à comparer", variables, variables)
  77. })
  78. ```
  79. ### Résultat {.tabset}
  80. #### Comparatif abondances
  81. ```{r resultat_abondances}
  82. DT::renderDataTable({
  83. req(input$groupes_abondances, input$variables_abondances)
  84. data_abondances() %>%
  85. group_by(!!as.symbol(input$groupes_abondances)) %>%
  86. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  87. desctable %>%
  88. datatable
  89. }, server = F)
  90. ```
  91. #### Comparatif présence
  92. ```{r resultat_presence}
  93. DT::renderDataTable({
  94. req(input$groupes_abondances, input$variables_abondances)
  95. data_abondances() %>%
  96. mutate_at(vars(input$variables_abondances), . %>% {. == 0} %>% factor(levels = c(T, F), labels = c("Absent", "Présent"))) %>%
  97. group_by(!!as.symbol(input$groupes_abondances)) %>%
  98. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  99. desctable %>%
  100. datatable
  101. }, server = F)
  102. ```
  103. #### PCA
  104. ```{r resultat_PCA}
  105. renderPlot({
  106. data_abondances() %>%
  107. select(one_of(c(input$groupes_abondances,input$variables_abondances))) %>%
  108. PCA(quali.sup=1, graph = F) %>%
  109. plotellipses(keepvar = 1)
  110. })
  111. ```