comparison ExeMainGlmGalaxy.r @ 0:df3ce23d0d23 draft

"planemo upload for repository https://github.com/Alanamosse/Galaxy-E/tree/stoctool/tools/stoc commit f82f897ab22464de40c878e17616333855814e25"
author ecology
date Thu, 02 Apr 2020 03:32:56 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:df3ce23d0d23
1 #!/usr/bin/env Rscript
2
3 ######################################################################################################################################
4 ############## COMMAND LINE TO CALCULATE AND PLOT EVOLUTION OF SPECIES POPULATION function:main.glm ##############################
5 ######################################################################################################################################
6
7 #### Based on Romain Lorrillière R script
8 #### Modified by Alan Amosse and Benjamin Yguel for integrating within Galaxy-E
9
10 #suppressMessages(library(lme4))
11 suppressMessages(library(ggplot2))
12 suppressMessages(library(speedglm))
13 suppressMessages(library(arm))
14 #suppressMessages(library(reshape))
15 suppressMessages(library(data.table))
16 suppressMessages(library(reshape2))
17
18
19 ###########
20 #delcaration des arguments et variables/ declaring some variables and load arguments
21
22 args = commandArgs(trailingOnly=TRUE)
23 options(encoding = "UTF-8")
24 source(args[6],encoding="UTF-8")### chargement des fonctions / load the functions
25
26 if ( (length(args)<8) || (length(args)>9)) {
27 stop("At least 5 arguments must be supplied :\n- An input dataset filtered (.tabular). May come from the filter rare species tool.\n- A species detail table (.tabular)\n- An id to fix output repository name.\n- A list of species to exclude, can be empty.\n- TRUE/FALSE to perform the glm with confidence intervals calculations.\n\n", call.=FALSE) #si pas d'arguments -> affiche erreur et quitte / if no args -> error and exit1
28 } else {
29 Datafilteredfortrendanalysis<-args[1] ###### Nom du fichier avec extension ".typedefichier", peut provenir de la fonction "FiltreEspeceRare" / file name without the file type ".filetype", may result from the function "FiltreEspeceRare"
30 tabSpecies<-args[2] ###### Nom du fichier avec extension ".typedefichier", fichier mis à disposition dans Galaxy-E avec specialisation à l'habitat des especes et si espece considérée comme indicatrice / file name without the file type ".filetype", file available in Galaxy-E containing habitat specialization for each species and whether or not they are considered as indicator
31 id<-args[3] ##### nom du dossier de sortie des resultats / name of the output folder
32 spExclude <- strsplit(args [4],",")[[1]] ##### liste d'espece qu on veut exclure de l analyse / list of species that will be excluded
33 AssessIC <-args [5] ########## TRUE ou FALSE réalise glm "standard" avec calcul d'intervalle de confiance ou speedglm sans IC bien plus rapide / TRUE or FALSE perform a "standard" glm with confidance interval or speedglm without CI much more fast
34 }
35
36 ## creation d'un dossier pour y mettre les resultats / create folder for the output of the analyses
37
38 dir.create(paste("Output/",id,sep=""),recursive=TRUE,showWarnings=FALSE)
39 #cat(paste("Create Output/",id,"\n",sep=""))
40 dir.create(paste("Output/",id,"/Incertain/",sep=""),recursive=TRUE,showWarnings=FALSE)
41 #cat(paste("Create Output/",id,"Incertain/\n",sep=""))
42
43
44 #Import des données / Import data
45 tabCLEAN <- fread(Datafilteredfortrendanalysis,sep="\t",dec=".",header=TRUE,encoding="UTF-8") #### charge le fichier de données d abondance / load abundance of species
46 tabsp <- fread(tabSpecies,sep="\t",dec=".",header=TRUE,encoding="UTF-8") #### charge le fichier de donnees sur nom latin, vernaculaire et abbreviation, espece indicatrice ou non / load the file with information on species specialization and if species are indicators
47
48 vars_tabCLEAN<-c("carre","annee","espece","abond")
49 err_msg_tabCLEAN<-"The input dataset filtered doesn't have the right format. It need to have the following 4 variables :\n- carre\n- annee\n- espece\n- abond\n"
50
51 vars_tabsp<-c("espece","nom","nomscientific","indicateur","specialisation")
52 err_msg_tabsp<-"\nThe species dataset filtered doesn't have the right format. It need to have the following 4 variables :\n- espece\n- nom\n- nomscientific\n- indicateur\n- specialisation\n"
53
54 check_file(tabCLEAN,err_msg_tabCLEAN,vars_tabCLEAN,4)
55 check_file(tabsp,err_msg_tabsp,vars_tabsp,5)
56
57
58
59 firstYear <- min(tabCLEAN$annee) #### Recupère 1ere annee des donnees / retrieve the first year of the dataset
60 lastYear <- max(tabCLEAN$annee) #### Récupère la dernière annee des donnees / retrieve the last year of the dataset
61 annees <- firstYear:lastYear ##### !!!! une autre variable s'appelle annee donc peut être à modif en "periode" ? ### argument de la fonction mais DECLARER DANS LA FONCTION AUSSI donc un des 2 à supprimer
62 spsFiltre=unique(tabCLEAN$espece) #### Recupère la liste des especes du tabCLEAN qui ont été sélectionnée et qui ont passé le filtre / retrieve species name that were selected and then filtered before
63 #cat("\n\nspsFiltre\n")
64 tabsp=subset (tabsp, (espece %in% spsFiltre)) #### liste des espèces exclu par le filtre ou manuellement / List of species excluded manually or by the filter from the analyses
65 #cat("\n\ntabsp\n")
66 sp=as.character(tabsp$espece) ##### liste des espece en code ou abbreviation gardées pour les analyses ### arg de la fonction DECLARE AUSSI APRES DS FONCTION / list of the code or abbreviation of the species kept for the analyses
67 #cat("\n\nsp\n")
68 if(length(spExclude)!=0) {
69 tabCLEAN <- subset(tabCLEAN,!(espece %in% spExclude))
70 tabsp <- subset(tabsp, !(espece %in% spExclude))
71
72 cat("\n\nEspèces exclues de l'analyse :\n")
73 cat(spExclude)
74 cat("\n")
75 }
76 if(length(tabCLEAN$espece)==0){
77 stop("There is no species left for the analyse.", call.=FALSE) #si pas plus d'espèce après filtre / if no more species after filter
78 }
79 #cat("\n\ntabsp\n")
80
81
82 ##################
83 ### Do your analysis
84
85 main.glm(donneesAll=tabCLEAN,tabsp=tabsp,id=id,assessIC=AssessIC)
86
87
88
89
90