Mercurial > repos > ecology > stoc_mainglm
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 |