diff FunctExeCalcPresAbsGalaxy.r @ 3:8d8aec182fb1 draft

"planemo upload for repository https://github.com/ColineRoyaux/PAMPA-Galaxy commit 04381ca7162ec3ec68419e308194b91d11cacb04"
author ecology
date Mon, 16 Nov 2020 11:02:09 +0000
parents c9dfe4e20a45
children 07b081730994
line wrap: on
line diff
--- a/FunctExeCalcPresAbsGalaxy.r	Mon Jul 27 09:46:51 2020 -0400
+++ b/FunctExeCalcPresAbsGalaxy.r	Mon Nov 16 11:02:09 2020 +0000
@@ -1,75 +1,73 @@
-#Rscript 
-
-#####################################################################################################################
-#####################################################################################################################
-############################ Calculate presence absence table from observation data #################################
-#####################################################################################################################
-#####################################################################################################################
-
-###################### Packages
-suppressMessages(library(tidyr))
-
-###################### Load arguments and declaring variables
-
-args = commandArgs(trailingOnly=TRUE)
-#options(encoding = "UTF-8")
-
-if (length(args) < 2) {
-    stop("At least one argument must be supplied, an input dataset file (.tabular).", call.=FALSE) #si pas d'arguments -> affiche erreur et quitte / if no args -> error and exit1
-
-} else {
-    Importdata<-args[1] ###### Nom du fichier importé avec son extension / file name imported with the file type ".filetype"  
-    source(args[2]) ###### Import functions
-
-}
-#### Data must be a dataframe with at least 3 variables : unitobs representing location and year ("observation.unit"), species code ("species.code") and abundance ("number")
-
-
-#Import des données / Import data 
-obs<- read.table(Importdata,sep="\t",dec=".",header=TRUE,encoding="UTF-8") #
-obs[obs == -999] <- NA 
-factors <- fact.det.f(Obs=obs)
-ObsType <- def.typeobs.f(Obs=obs)
-obs <- create.unitobs(data=obs)
-
-vars_data<-c("observation.unit","species.code","number")
-err_msg_data<-"The input dataset doesn't have the right format. It need to have at least the following 3 variables :\n- observation.unit (or point and year)\n- species.code\n- number\n"
-check_file(obs,err_msg_data,vars_data,3)
-
-
-####################################################################################################
-#################### Create presence/absence table ## Function : calc.presAbs.f ####################
-####################################################################################################
-
-calc.presAbs.f <- function(Data,
-                           nbName="number")
-{
-    ## Purpose: Compute presence absence 
-    ## ----------------------------------------------------------------------
-    ## Arguments: Data : temporary metrics table
-    ##            nbName : name of abundance column
-    ##
-    ## Output: presence absence vector
-    ## ----------------------------------------------------------------------
-    ## Author: Yves Reecht, Date: 20 déc. 2011, 12:04 modified by Coline ROYAUX 04 june 2020
-
-    ## Presence - absence :
-    presAbs <- integer(nrow(Data))
-    presAbs[Data[ , nbName] > 0] <- as.integer(1) 
-    presAbs[Data[ , nbName] == 0] <- as.integer(0) 
-
-    return(presAbs)
-}
-
-
-################# Analysis
-
-res <- calc.numbers.f(obs, ObsType=ObsType , factors=factors, nbName="number")
-res$pres.abs <- calc.presAbs.f(res, nbName="number")
-res <- create.year.point(res)
-
-#Save dataframe in a tabular format
-filenamePresAbs <- "TabPresAbs.tabular"
-write.table(res, filenamePresAbs, row.names=FALSE, sep="\t", dec=".",fileEncoding="UTF-8")
-cat(paste("\nWrite table with presence/absence. \n--> \"",filenamePresAbs,"\"\n",sep=""))
-
+#Rscript
+
+#####################################################################################################################
+#####################################################################################################################
+############################ Calculate presence absence table from observation data #################################
+#####################################################################################################################
+#####################################################################################################################
+
+###################### Packages
+suppressMessages(library(tidyr))
+
+###################### Load arguments and declaring variables
+
+args <- commandArgs(trailingOnly = TRUE)
+
+
+if (length(args) < 2) {
+    stop("At least one argument must be supplied, an input dataset file (.tabular).", call. = FALSE) # if no args -> error and exit1
+
+} else {
+    import_data <- args[1] ###### Nom du fichier importé avec son extension / file name imported with the file type ".filetype"
+    source(args[2]) ###### Import functions
+
+}
+#### d_ata must be a dataframe with at least 3 variables : unitobs representing location and year ("observation.unit"), species code ("species.code") and abundance ("number")
+
+
+#Import des données / Import data
+obs <- read.table(import_data, sep = "\t", dec = ".", header = TRUE, encoding = "UTF-8") #
+obs[obs == -999] <- NA
+factors <- fact_det_f(obs = obs)
+obs_type <- def_typeobs_f(obs = obs)
+obs <- create_unitobs(data = obs)
+
+vars_data <- c("observation.unit", "species.code", "number")
+err_msg_data <- "The input dataset doesn't have the right format. It need to have at least the following 3 variables :\n- observation.unit (or location and year)\n- species.code\n- number\n"
+check_file(obs, err_msg_data, vars_data, 3)
+
+
+####################################################################################################
+#################### Create presence/absence table ## Function : calc_pres_abs_f ####################
+####################################################################################################
+
+calc_pres_abs_f <- function(d_ata,
+                           nb_name = "number") {
+    ## Purpose: Compute presence absence
+    ## ----------------------------------------------------------------------
+    ## Arguments: d_ata : temporary metrics table
+    ##            nb_name : name of abundance column
+    ##
+    ## Output: presence absence vector
+    ## ----------------------------------------------------------------------
+    ## Author: Yves Reecht, Date: 20 déc. 2011, 12:04 modified by Coline ROYAUX 04 june 2020
+
+    ## Presence - absence :
+    pres_abs <- integer(nrow(d_ata))
+    pres_abs[d_ata[, nb_name] > 0] <- as.integer(1)
+    pres_abs[d_ata[, nb_name] == 0] <- as.integer(0)
+
+    return(pres_abs)
+}
+
+
+################# Analysis
+
+res <- calc_numbers_f(obs, obs_type = obs_type, factors = factors, nb_name = "number")
+res$presence_absence <- calc_pres_abs_f(res, nb_name = "number")
+res <- create_year_location(res)
+
+#Save dataframe in a tabular format
+filename_pres_abs <- "TabPresAbs.tabular"
+write.table(res, filename_pres_abs, row.names = FALSE, sep = "\t", dec = ".", fileEncoding = "UTF-8")
+cat(paste("\nWrite table with presence/absence. \n--> \"", filename_pres_abs, "\"\n", sep = ""))