diff --git a/server.R b/server.R
index 4e38f3d66aa4c0e95f44484f0f4bee4408c89cca..c681be04ca7a72603dc04914a1a3602e7f2ad3f5 100644
--- a/server.R
+++ b/server.R
@@ -1215,8 +1215,52 @@ shinyServer
         "acpRep",
         label = "Barycenters : ",
         choices = c("..." = 0, sample_variables(data16S()))
-      )
+      ),
+      collapsedBox(verbatimTextOutput("acpScript"), title = "RCode")
+    )
+  })
+  
+  output$acpScript <- renderText({
+    scriptArgs <- c(
+      "physeq = data",
+      glue(
+        "ordination = ordinate(data, method = \"{input$acpMethod}\", distance = \"{input$acpDist}\")"
+      ),
+      glue("axes = c({glue_collapse(input$acpAxes, sep = ', ')})")
     )
+    if (!is.null(checkNull(input$acpCol))) {
+      scriptArgs <- c(scriptArgs, glue("color = \"{input$acpCol}\""))
+    }
+    if (!is.null(checkNull(input$acpShape))) {
+      scriptArgs <- c(scriptArgs, glue("shape = \"{input$acpShape}\""))
+    }
+    if (!is.null(checkNull(input$acpRep))) {
+      scriptArgs <- c(scriptArgs, glue("replicate = \"{input$acpRep}\""))
+    } else {
+      scriptArgs <- c(scriptArgs, glue("replicate = NULL"))
+    }
+    if (!is.null(checkNull(input$acpLabel))) {
+      scriptArgs <- c(scriptArgs, glue("label = \"{input$acpLabel}\""))
+    }
+    if (!is.null(checkNull(input$acpTitle))) {
+      scriptArgs <- c(scriptArgs, glue("title = \"{input$acpTitle}\""))
+    }
+    script <- c(
+      scriptHead,
+      "# MultiDimensional scaling",
+      glue("p <- plot_samples({glue_collapse(scriptArgs, sep=', ')})")
+    )
+    if (!is.null(checkNull(input$acpEllipse))) {
+      script <- c(
+        script,
+        glue(
+          "p <- p + stat_ellipse(aes_string(group = \"{input$acpEllipse}\"))"
+        )
+      )
+    }
+    script <- c(script, "", "plot(p + theme_bw())")
+    
+    return(glue_collapse(script, sep = "\n"))
   })
   
   output$acp <- renderPlot({