Mercurial > repos > ecology > stoc_mainglm_group
diff ExeMainglmParGroupGalaxy.r @ 0:344ccea8292b draft
"planemo upload for repository https://github.com/Alanamosse/Galaxy-E/tree/stoctool/tools/stoc commit f82f897ab22464de40c878e17616333855814e25"
| author | ecology |
|---|---|
| date | Thu, 02 Apr 2020 07:31:34 +0000 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ExeMainglmParGroupGalaxy.r Thu Apr 02 07:31:34 2020 +0000 @@ -0,0 +1,105 @@ +#!/usr/bin/env Rscript + +################################################################################################################################################## +############## CALCULATE AND PLOT EVOLUTION OF SPECIES POPULATION BY SPECIALIZATION GROUP function:analyse.Groupe ############################## +################################################################################################################################################## + +#### Based on Romain Lorrillière R script +#### Modified by Alan Amosse and Benjamin Yguel for integrating within Galaxy-E + +suppressMessages(library(lme4)) +suppressMessages(library(ggplot2)) +suppressMessages(library(speedglm)) +suppressMessages(library(arm)) +suppressMessages(library(ggplot2)) +#suppressMessages(library(reshape)) +suppressMessages(library(data.table)) +suppressMessages(library(reshape2)) + + + + +########### +#delcaration des arguments et variables/ declaring some variables and load arguments + +args = commandArgs(trailingOnly=TRUE) + +print(args[7]) + +if ((length(args)<7) || (length(args)>11)) { + stop("The tool need the following inputs :\n\n- A yearly species variations data set (.tabular). It may come from the main glm tool.\n- A species global tendencies dataset (.tabular). It may come from the main glm tool.\n- A species table filtered (.tabular). It may come from the Filter rare species tool.\n- An id to fix output repository name.\n- A list of species to exclude, can be empty.\n- A bias file.\n\n", call.=FALSE) #si pas d'arguments -> affiche erreur et quitte / if no args -> error and exit1 +} else { + donnees<-args[1] ###### Nom du fichier avec extension "***variationsAnnuellesEspece***.tabular", peut provenir de la fonction "mainglm" / file name without the file type "***variationsAnnuellesEspece***.tabular", may result from the function "mainglm" + donneesTrend <- args[2] ####### Nom du fichier avec extension "***tendanceGlobalEspece***.tabular", peut provenir de la fonction "mainglm" / / file name without the file type "***tendanceGlobalEspece***.tabular", may result from the function "mainglm" + tabSpecies<-args[3] ###### 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" + id<-args[4] ##### nom du dossier de sortie des resultats / name of the output folder + spExclude <- strsplit(args [5],",")[[1]] ##### liste d'espece qu on veut exclure de l analyse / list of species that will be excluded + tBiais <-args [7] ########## fichier contenant le biais de détéction en fonction des occurances, obtenu à partir d'un modéle théorique de dynamique de pop et de survey / the file containing the detection bias depending on occurance data obtained with theoretical model of population dynamic and survey + source(args[6])### chargement des fonctions analyseGroupe, geometriqueWeighted et checkfile / load the functions analyseGroupe, geometriqueWeighted and checkfile +} + + + +#Import des données / Import data +tBiais=read.table(tBiais,sep="\t",dec=".",header=TRUE) ###### charge le fichier contenant le biais de détéction en fonction des occurances, obtenu à partir d'un modéle théorique de dynamique de pop et de survey / load the file containing the detection bias obtained with theoretical model of population dynamic and survey +donnees <- read.table(donnees,sep="\t",dec=".",header=TRUE) #### charge le fichier de resultat sur les tendances annuelles par espèce / load annual population evolution trend for each species obtained with the function mainglm +donneesTrend <- read.table(donneesTrend,sep="\t",dec=".",header=TRUE)#### charge le fichier de resultat sur les tendances sur la periode etudiée par espèce / load population evolution trend on the studied period for each species obtained with the function mainglm +tabsp <- read.table(tabSpecies,sep="\t",dec=".",header=TRUE) #### 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 + + +groupeNom = c("generaliste","milieux batis","milieux forestiers","milieux agricoles") +groupeCouleur = c("black","firebrick3","chartreuse4","orange") + +vars_donnees<-c("id","code_espece","nom_espece","indicateur","annee","abondance_relative","IC_inferieur","IC_superieur","erreur_standard","p_value","significatif","nb_carre","nb_carre_presence","abondance") +err_msg_donnees<-"\nThe yearly species variation dataset doesn't have the right format. It need to have following 14 variables :\n- id\n- code_espece\n- nom_espece\n- indicateur\n- annee\n- abondance_relative\n- IC_inferieur\n- IC_superieur\n- erreur_standard\n- p_value\n- significatif\n- nb_carre\n- nb_carre_presence\n- abondance\n" + +vars_donneesTrend<-c("id","code_espece","nom_espece","indicateur","nombre_annees","premiere_annee","derniere_annee","tendance","IC_inferieur","IC_superieur","pourcentage_variation","erreur_standard","p_value","significatif","categorie_tendance_EBCC","mediane_occurrence","valide","raison_incertitude") +err_msg_donneesTrend<-"\nThe species global tendances dataset doesn't have the right format. It need to have following 18 variables :\n- id\n- code_espece\n- nom_espece\n- indicateur\n- nombre_annees\n- premiere_annee\n- derniere_annee\n- tendance\n- IC_inferieur\n- IC_superieur\n- pourcentage_variation\n- erreur_standard\n- p_value\n- significatif\n- categorie_tendance_EBCC\n mediane_occurrence\n valide\n raison_incertitude\n" + +vars_tabsp<-c("espece","nom","nomscientific","indicateur","specialisation") +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" + +vars_tBiais<-c("occurrenceMed","biais") +err_msg_tBiais<-"\nThe bias dataset doesn't have the right format. It need to have the following 2 variables :\n- occurenceMed\n- biais\n" + +check_file(donnees,err_msg_donnees,vars_donnees,14) +check_file(donneesTrend,err_msg_donneesTrend,vars_donneesTrend,18) +check_file(tabsp,err_msg_tabsp,vars_tabsp,5) +check_file(tBiais,err_msg_tBiais,vars_tBiais,2) + + +spsFiltre=unique(levels(donnees$code_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 + +tabsp=subset (tabsp, (espece %in% spsFiltre)) #### Enlève les espèces qui n'ont pas passé le filtre ou exclu manuellement pour les analyses / keep only selected species and species with enough data +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 +tabsp=data.frame(tabsp,sp)### rajoute une colonne identique appelé sp / add new column called sp + +if(length(spExclude)!=0) { + donnees <- subset(donnees,!(code_espece %in% spExclude)) + tabsp <- subset(tabsp, !(espece %in% spExclude)) + + cat("\n\nEspèces exclues de l'analyse :\n") + cat(spExclude) + cat("\n") +} +if(length(donnees$code_espece)==0){ + 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 +} + + + + +## creation d'un dossier pour y mettre les resultats / create folder for the output of the analyses ###### NORMALEMENT DOIT ËTRE DEJ2 CREER POUR LES SORTIES TENDANCES PAR SPS DONC PAS SUR QU IL FAUT REFAIRE CETTE ETAPE + +dir.create(paste("Output/",id,sep=""),recursive=TRUE,showWarnings=FALSE) +cat(paste("Create Output/",id,"\n",sep="")) +dir.create(paste("Output/",id,"/Incertain/",sep=""),recursive=TRUE,showWarnings=FALSE) +cat(paste("Create Output/",id,"Incertain/\n",sep="")) + + + + + +################## +### Do your analysis +analyseGroupe(id=id,tabsp=tabsp,donnees=donnees,donneesTrend=donneesTrend,ICfigureGroupeSp=TRUE,groupeNom = groupeNom,groupeCouleur=groupeCouleur)
