diff graph_stat_presence_abs.r @ 0:e5552099d0e3 draft

"planemo upload for repository https://github.com/Marie59/Data_explo_tools commit 2f883743403105d9cac6d267496d985100da3958"
author ecology
date Tue, 27 Jul 2021 16:57:02 +0000
parents
children 9a2e0195bb43
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graph_stat_presence_abs.r	Tue Jul 27 16:57:02 2021 +0000
@@ -0,0 +1,115 @@
+#Rscript
+
+################################
+##    Median and dispersion   ##
+################################
+
+#####Packages : Cowplot
+#               ggplot2
+
+#####Load arguments
+
+args <- commandArgs(trailingOnly = TRUE)
+
+if (length(args) == 0) {
+    stop("This tool needs at least one argument")
+}else{
+    table <- args[1]
+    hr <- args[2]
+    var <- as.numeric(args[3])
+    spe <- as.numeric(args[4])
+    loc <- as.numeric(args[5])
+    time <- as.numeric(args[6])
+}
+
+if (hr == "false") {
+  hr <- FALSE
+}else{
+  hr <- TRUE
+}
+
+#####Import data
+data <- read.table(table, sep = "\t", dec = ".", header = hr, fill = TRUE, encoding = "UTF-8")
+data <- na.omit(data)
+colvar <- colnames(data)[var]
+colspe <- colnames(data)[spe]
+colloc <- colnames(data)[loc]
+coltime <- colnames(data)[time]
+
+data <- data[grep("^$", data[, spe], invert = TRUE), ]
+time <- as.integer(substring(data[, time], first = 1, last = 4))
+
+#####Your analysis
+
+####Median and data dispersion####
+
+#Median
+graph_median <- function(data, var) {
+  graph_median <- ggplot2::ggplot(data, ggplot2::aes_string(y = var)) +
+  ggplot2::geom_boxplot(color = "darkblue") +
+  ggplot2::theme(legend.position = "none") + ggplot2::ggtitle("Median")
+
+return(graph_median)
+
+}
+
+#Dispersion
+dispersion <- function(data, var, var2) {
+  graph_dispersion <- ggplot2::ggplot(data) +
+  ggplot2::geom_point(ggplot2::aes_string(x = var2, y = var, color = var2)) +
+  ggplot2::scale_fill_brewer(palette = "Set3") +
+  ggplot2::theme(legend.position = "none", axis.text.x = ggplot2::element_text(angle = 90, vjust = 0.5, hjust = 1), plot.title = ggplot2::element_text(color = "black", size = 12, face = "bold")) + ggplot2::ggtitle("Dispersion")
+
+return(graph_dispersion)
+
+}
+
+#The 2 graph
+med_disp <- function(med, disp) {
+  graph <- cowplot::plot_grid(med, disp, ncol = 1, nrow = 2, vjust = -5,  scales = "free")
+
+  ggplot2::ggsave("Med_Disp.png", graph, width = 12, height = 20, units = "cm")
+}
+
+
+#### Zero problem in data ####
+
+#Put data in form
+make_table_analyse <- function(data, var, spe, var2, var3) {
+    tab <- reshape(data
+                  , v.names = var
+                  , idvar = c(var2, var3)
+                  , timevar = spe
+                  , direction = "wide")
+    tab[is.na(tab)] <- 0 ###### remplace les na par des 0 / replace NAs by 0
+
+    colnames(tab) <- sub(var, "", colnames(tab))### remplace le premier pattern "abond." par le second "" / replace the column names "abond." by ""
+    return(tab)
+}
+data_num <- make_table_analyse(data, colvar, colspe, colloc, coltime)
+nb_spe <- length(unique(data[, spe]))
+nb_col <- ncol(data_num) - nb_spe + 1
+data_num <- data_num[, nb_col:ncol(data_num)]
+
+#Presence of zeros in the data
+mat_corr <- function(data) {
+  cor(data)
+}
+p_mat <- function(data) {
+  ggcorrplot::cor_pmat(data)
+} # compute a matrix of correlation p-values
+
+graph_corr <- function(data_num) {
+  graph <- ggcorrplot::ggcorrplot(mat_corr(data_num), method = "circle", p.mat = p_mat(data_num), #barring the no significant coefficient
+  ggtheme = ggplot2::theme_gray, colors = c("#00AFBB", "#E7B800", "#FC4E07"))
+
+  ggplot2::ggsave("0_pb.png", graph)
+}
+
+##Med and disp
+med <- graph_median(data, var = colvar)
+disp <- dispersion(data, var = colvar, var2 = colspe)
+med_disp(med = med, disp = disp)
+
+##O problem
+graph_corr(data_num)