From c5257146c7af358262734817572fae456f8aea41 Mon Sep 17 00:00:00 2001
From: Cedric Midoux <cedric.midoux@inra.fr>
Date: Wed, 12 Sep 2018 18:10:46 +0200
Subject: [PATCH] rework richnessAScript

---
 server.R | 103 +++++++++++++++++++++++++++----------------------------
 1 file changed, 50 insertions(+), 53 deletions(-)

diff --git a/server.R b/server.R
index cace6f8..b144d0f 100644
--- a/server.R
+++ b/server.R
@@ -450,7 +450,7 @@ shinyServer
       glue("method = \"{input$clustMethod}\"")
     )
     if (!is.null(checkNull(input$clustCol))) {
-      scriptArgs <- c(scriptArgs, glue("col = \"{input$clustCol}\""))
+      scriptArgs <- c(scriptArgs, glue("color = \"{input$clustCol}\""))
     }
     script <- c(
       scriptHead,
@@ -536,60 +536,57 @@ shinyServer
   })
   
   output$richnessAScript <- renderText({
-    paste0(
+    if (!is.null(checkNull(input$richnessMeasures))) {
+      measures <-
+        glue("measures = c(\"{glue_collapse(input$richnessMeasures, sep='\", \"')}\")")
+    } else {
+      measures <- NULL
+    }
+    scriptArgs <- c("physeq = data", measures)
+    if (!is.null(checkNull(input$richnessX))) {
+      scriptArgs <- c(scriptArgs, glue("x = \"{input$richnessX}\""))
+    }
+    if (!is.null(checkNull(input$richnessColor))) {
+      scriptArgs <-
+        c(scriptArgs, glue("color = \"{input$richnessColor}\""))
+    }
+    if (!is.null(checkNull(input$richnessShape))) {
+      scriptArgs <-
+        c(scriptArgs, glue("shape = \"{input$richnessShape}\""))
+    }
+    if (!is.null(checkNull(input$richnessTitle))) {
+      scriptArgs <-
+        c(scriptArgs, glue("title = \"{input$richnessTitle}\""))
+    }
+    
+    script <- c(
       scriptHead,
-      "# Plot boxplot of alpha diversity\n",
-      "p <- plot_richness(physeq = data",
-      ifelse(
-        is.null(checkNull(input$richnessX)),
-        "",
-        glue(", x = \"{input$richnessX}\"")
-      ),
-      ifelse(
-        is.null(checkNull(input$richnessColor)),
-        "",
-        glue(", color = \"{input$richnessColor}\"")
-      ),
-      ifelse(
-        is.null(checkNull(input$richnessShape)),
-        "",
-        glue(", shape = \"{input$richnessShape}\"")
-      ),
-      ifelse(
-        is.null(checkNull(input$richnessTitle)),
-        "",
-        glue(", title = \"{input$richnessTitle}\"")
-      ),
-      ifelse(
-        is.null(checkNull(input$richnessMeasures)),
-        "",
-        glue(
-          ", measures = c(\"{glue_collapse(input$richnessMeasures, sep='\", \"')}\")"
-        )
-      ),
-      ")\n",
-      ifelse((input$richnessBoxplot >= 2),
-             "p <- p + geom_boxplot()\n",
-             ""),
-      ifelse((input$richnessBoxplot <= 2),
-             "p <- p + geom_point()\n",
-             ""),
-      "\n",
-      "plot(p)",
-      "\n",
-      "\n",
-      "# Tables\n",
-      glue("t <- estimate_richness(data"),
-      ifelse(
-        is.null(checkNull(input$richnessMeasures)),
-        "",
-        glue(
-          ", measures = c(\"{glue_collapse(input$richnessMeasures, sep='\", \"')}\")"
-        )
-      ),
-      ")\n",
-      "write.table(t, file = \"richness.tsv\", sep = \"\\t\", col.names = NA)"
+      "# Plot boxplot of alpha diversity",
+      glue(
+        "p <- plot_richness({glue_collapse(scriptArgs, sep=', ')})"
+      )
+    )
+    if (input$richnessBoxplot >= 2) {
+      script <- c(script,
+                  "p <- p + geom_boxplot()")
+    }
+    if (input$richnessBoxplot <= 2) {
+      script <- c(script,
+                  "p <- p + geom_point()")
+    }
+    script <- c(script, "", "plot(p)")
+    script <- c(script, "", "# Tables")
+    script <- c(
+      script,
+      glue(
+        "t <- estimate_richness({glue_collapse(c(\"data\", measures), sep=', ')})"
+      )
     )
+    script <-
+      c(script,
+        "write.table(t, file = \"richness.tsv\", sep = \"\\t\", col.names = NA)")
+    
+    return(glue_collapse(script, sep = "\n"))
   })
   
   output$richnessA <- renderPlot({
-- 
GitLab