# HG changeset patch # User ecology # Date 1700925481 0 # Node ID 985f8839aebd9075fcc3f08597547a6d6f112b7e planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/Geom_mean_workflow commit 3f11e193fd9ba5bf0c706cd5d65d6398166776cb diff -r 000000000000 -r 985f8839aebd Bar_plot.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Bar_plot.R Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,52 @@ +#Script pour bar plot simple + +#### loading required R libraries +#### chargement des packages R utilisés +library(ggplot2) + +###### overall parameters and settings +###### paramètres globaux utilisés + +args = commandArgs(trailingOnly=TRUE) +if (length(args)==0) +{ + stop("This tool needs at least one argument") +}else{ + data <- args[1] + title <- as.character(args[2]) + error_bar <- args[3] + color <- as.character(args[4]) + ylab <- as.character(args[5]) +} + +histo_data = read.table(data, header= T) + +if (error_bar == "true"){ + + ggplot(histo_data, aes(x = variable_name, y = variable, fill = variable_name)) + + geom_bar(stat = "identity", position = "dodge", fill = color) + + geom_errorbar(aes(ymin = variable - standard_deviation, ymax = variable + standard_deviation), + position = position_dodge(0.9), width = 0.25) + + geom_text(aes(label = variable), vjust = -2, color = "black", size = 4) + + ggtitle(title) + + ylab(ylab) + + theme_minimal()+ + theme(legend.position = "none", + axis.title.x = element_blank()) + + ggsave("bar_plot.pdf", device = pdf, width = 20, height = 20, units = "cm") + +}else{ + + ggplot(histo_data, aes(x = variable_name, y = variable, fill = variable_name)) + + geom_bar(stat = "identity", position = "dodge", fill = color) + + geom_text(aes(label = variable), vjust = -1, color = "black", size = 4) + + ggtitle(title) + + ylab(ylab) + + theme_minimal()+ + theme(legend.position = "none", + axis.title.x = element_blank()) + + ggsave("bar_plot.pdf", device = pdf, width = 20, height = 20, units = "cm")} + + diff -r 000000000000 -r 985f8839aebd Map_shp.R --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Map_shp.R Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,62 @@ +library(ggplot2) +library(sf) +library(dplyr) +library(RColorBrewer) +library(ggspatial) + +args = commandArgs(trailingOnly=TRUE) +if (length(args)==0) +{ + stop("This tool needs at least one argument") +}else{ + dataMap <- args[1] + dataEvo <- args[2] + title <- args[3] + legend <- args[4] + coord <- args[5] + +} + +title <- gsub("\\\\n", "\n", title) +legend <-gsub("\\\\n", "\n", legend) +#read data + +data_map = st_read(dataMap) +data_evo = read.delim(dataEvo,header=TRUE,sep="\t") + +#bring together data + +data_fin = bind_cols(data_map,data_evo[2]) + + +# define the data intervals +intervals <- cut(data_fin$Evolution_rate, breaks = c(-Inf, 0, 9, 20, Inf), labels = c("Moins de 0", "0 à 10", "10 à 20", "Plus de 20")) + +# Make the map with ggplot2 + +if (coord == "true"){ + ggplot(data_fin) + + geom_sf(aes(fill = intervals)) + + scale_fill_manual(values = c('#D9F0D3',"#A6DBA0","#5AAE61","#1B7837")) + + labs(title = title, fill = legend) + + annotation_scale() + + #outuput + ggsave("map.pdf", device = "pdf") + +}else{ + ggplot(data_fin) + + geom_sf(aes(fill = intervals)) + + scale_fill_manual(values = c('#D9F0D3',"#A6DBA0","#5AAE61","#1B7837")) + + labs(title = title, fill = legend) + + theme_void()+ + annotation_scale() + + #outuput + ggsave("map.pdf", device = "pdf") +} + + + + + diff -r 000000000000 -r 985f8839aebd Moyenne_geom.r --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Moyenne_geom.r Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,156 @@ +#### loading required R libraries +#### chargement des packages R utilisés +library(gdata) +library(XLConnect) +library(rms) + +###### overall parameters and settings +###### paramètres globaux utilisés + +args = commandArgs(trailingOnly=TRUE) +if (length(args)==0) +{ + stop("This tool needs at least one argument") +}else{ + data <- args[1] + sep <- args[2] + HR <- args[3] + +} + +if (HR =="false"){HR<-FALSE} else {HR<-TRUE} + +###nrep: number of samples used to calculate geometric means +###nrep: nombre d'échantillons utilisés pour calculer les moyennes géométriques +nrep<-10000 + +#______________________________________________________________________________________________________________________________________________________________________________________________ +###### common functions +###### fonction utiles pour la suite + + convert.to.numeric<-function(x){ + t(apply(x,1,function(x){as.double(sub(" ","",as.character(x)))}))} + + + ### calculus of the logarithm of nrep geometric means, sampling based on a lognormal distribution with the same moments as the empirical ones (means & Ics) + #to prevent negative values + ### calcul du logarithme de nrep moyennes géométriques, l'échantillonnage étant fait avec la distribution lognormale de mêmes moments que les momenst empriques (means et ICs) + #pour éviter d'avoir des valeurs négatives + + lgeomean<-function(means,ICs,nrep) + {#means: vector: mean estimates for the different categories + #ICs: vector: in proportion to the mean, difference between the extremum of the 95% confidence interval and the mean + require(mvtnorm) + #calculation of the parameters of the log normal distribution (on the log scale) + #cf. http://127.0.0.1:26338/library/stats/html/Lognormal.html + logsigma<-sqrt(log((ICs/qnorm(0.975)/means)^2+1)) + logmean<-log(means)-1/2*logsigma^2 + + #gaussian sampling on the log scale then taking exponential + temp<-exp(rmvnorm(nrep,mean=logmean,sigma=diag(logsigma*logsigma))) + + #taking geometric mean over categories, but kept on the log scale + geomm.rep<-apply(temp,1,function(x){(mean(log(x),na.rm=TRUE))}) + #c(mean(geomm.rep),sd(geomm.rep)) + geomm.rep} +#_______________________________________________________________________________________________________________________________________________________________________________________________ + +###### importation des données +###### importation of data +temp<-read.csv(file=data,sep=sep,header=HR,encoding="UTF-8") + +data2008_2012<-temp[4:14,] +data2013_2017<-temp[21:31,] + +meandata2008_2012<-convert.to.numeric(data2008_2012[,c(3,6,9)]) +ICdata2008_2012<-convert.to.numeric(data2008_2012[,c(5,8,11)]) +meandata2013_2017<-convert.to.numeric(data2013_2017[,c(3,6,9)]) +ICdata2013_2017<-convert.to.numeric(data2013_2017[,c(5,8,11)]) + +####### code to calculate (nrep) logarithms of geometric means by region (Greco) +####### code pour calculer les nrep logarithmes de moyennes géométriques par région (GRECO) + +set.seed(1) +#first period +#première période +rest2008_2012<-sapply(1:dim(data2008_2012)[1],function(region){lgeomean(meandata2008_2012[region,],ICdata2008_2012[region,],nrep)}) + +set.seed(3) +#first period but with different seed +#première période mais avec une graine différente +rest2008_2012_s3<-sapply(1:dim(data2008_2012)[1],function(region){lgeomean(meandata2008_2012[region,],ICdata2008_2012[region,],nrep)}) + +set.seed(2) +#second period +#seconde période +rest2013_2017<-sapply(1:dim(data2013_2017)[1],function(region){lgeomean(meandata2013_2017[region,],ICdata2013_2017[region,],nrep)}) + + +####### code to summarize the above nrep logarithms of geometric means by region into the statistics of an overall geometric mean across regions, taking the first period as reference +###### code pour passer des nrep logarithmes de moyenne géométrique par région aux statistiques de la moyenne géométrique globale, en prennat la première période comme référence + +#for the first period +#pour la première période +Mean_2008_2012_scaled<-{temp<-apply(rest2008_2012_s3,1,function(x){mean(x)})-apply(rest2008_2012,1,function(x){mean(x)});c(mean(exp(temp)),sd(exp(temp)),quantile(exp(temp),prob=c(0.025,0.975)))} + +#for the second period +#pour la seconde période +Mean_2013_2017_scaled<-{temp<-apply(rest2013_2017,1,function(x){mean(x)})-apply(rest2008_2012,1,function(x){mean(x)});c(mean(exp(temp)),sd(exp(temp)),quantile(exp(temp),prob=c(0.025,0.975)))} + + + +############### NATIONAL OUPUTS: +############### SORTIES NATIONALES: + +res2008_2012_scaled_df = data.frame(Mean_2008_2012_scaled) +res2008_2012_scaled_df=`rownames<-`(res2008_2012_scaled_df,c("mean","sd","2,5%","97,5%")) + +res2013_2017_scaled_df = data.frame(Mean_2013_2017_scaled) +res2013_2017_scaled_df=`rownames<-`(res2013_2017_scaled_df,c("mean","sd","2,5%","97,5%")) + + +write.csv(res2008_2012_scaled_df, file = "res2008_2012_scaled.csv") +write.csv(res2013_2017_scaled_df,file= "res2013_2017_scaled.csv") + +############### REGIONAL OUPUTS: +############### SORTIES REGIONALES (GRECO): + +regres2008_2012_scaled<-apply(rest2008_2012_s3-rest2008_2012,2,function(x){temp<-x;c(mean=mean(exp(temp)),sd=sd(exp(temp)),quantile(exp(temp),prob=c(0.025,0.975)))}) +regres2013_2017_scaled<-apply(rest2013_2017-rest2008_2012,2,function(x){temp<-x;c(mean=mean(exp(temp)),sd=sd(exp(temp)),quantile(exp(temp),prob=c(0.025,0.975)))}) +dimnames(regres2008_2012_scaled)[[2]]<-as.character(data2008_2012[,2]) +dimnames(regres2013_2017_scaled)[[2]]<-as.character(data2013_2017[,2]) + +write.csv(regres2008_2012_scaled, file = "regres2008_2012_scaled.csv") +write.csv(regres2013_2017_scaled, file = "regres2013_2017_scaled.csv") + +############### data to make a bar plot of the national evolution rate +histo_data = data.frame( + variable_name = c(names(res2008_2012_scaled_df),names(res2013_2017_scaled_df)), + variable = c(round(Mean_2008_2012_scaled[1]*100),round(Mean_2013_2017_scaled[1]*100)), + standard_deviation = c(Mean_2008_2012_scaled[2]*100,Mean_2013_2017_scaled[2]*100) +) + +write.table(histo_data, file = "histo_data.tsv",row.names = F, col.names = T ,sep ="\t") + +############### data to make a map of the GRECO evolution rate + +rate2008_2012 = data.frame(round(regres2008_2012_scaled[1,1:11]*100)) +rate2013_2017 = data.frame(round(regres2013_2017_scaled[1,1:11]*100)) + +evol_rate = rate2013_2017-rate2008_2012 +evol_rate = cbind(data2013_2017[,2],evol_rate) +colnames(evol_rate)<-c("Regions","Evolution_rate") + + +write.table(evol_rate,"evolution_rate.tsv",sep="\t",quote=F,row.names=F,col.names=T) + + + + + + + + + + + diff -r 000000000000 -r 985f8839aebd bar_plot.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bar_plot.xml Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,66 @@ + + for simple discrete data + + r-base + r-ggplot2 + + + + + + + + + + + + + + + + + + + + + + + + diff -r 000000000000 -r 985f8839aebd test-data/0_RESULTATS_BOIS_BIODIV_2021_V2.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/0_RESULTATS_BOIS_BIODIV_2021_V2.csv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,57 @@ +TOUTE LA FORET DE PRODUCTION : Y compris peupleraies,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,2008-2012,,,,,,,,,,,,,,,,,, +,GRECO,Tr±s gros bois (1000 m3),,,"Bois mort debout +(hors chablis) (1000 m3)",,,"Bois mort au sol +(>=7,5 cm diamètre) (1000 m3)",,,"TOTAL +(1000 m3)",,,"TOTAL 2013-2017 +(1000 m3)",,,Valeur ancienne à comparer,Valeur r±cente à comparer, +,Grand Ouest cristallin et océanique,4630,±,1020,3200,±,662,5634,±,1004,13464,±,1577,15954,±,2072,15041,13882,ns +,Centre Nord semi-océanique,34788,±,2862,13997,±,1085,25299,±,2074,74084,±,3697,80362,±,4620,77781,75742,ns +,Grand Est semi-continental,22613,±,2318,10581,±,1063,26660,±,4048,59853,±,4784,63219,±,3955,64637,59264,ns +,Vosges,8165,±,1514,3912,±,622,14326,±,1898,26403,±,2506,31216,±,3014,28909,28202,ns +,Jura,4946,±,1254,3661,±,597,7553,±,1145,16160,±,1800,17588,±,2234,17960,15354,ns +,Sud-Ouest océanique,10011,±,1684,12695,±,1276,29281,±,2873,51986,±,3566,51773,±,3737,55552,48036,ns +,Massif central,17343,±,2475,26785,±,1851,44932,±,3405,89061,±,4598,92591,±,5025,93659,87566,ns +,Alpes,7500,±,1485,11312,±,1206,16152,±,2196,34965,±,2913,36582,±,3497,37878,33085,ns +,Pyrénées,9938,±,1777,7059,±,1129,10493,±,1881,27489,±,2823,22915,±,2999,30312,19916,ns +,Méditerranée,3389,±,1184,4177,±,753,4789,±,1275,12355,±,1896,14180,±,4081,14251,10099,ns +,Corse,9503,±,2341,2415,±,869,2747,±,1168,12603,±,2634,15752,±,6374,15237,9378,ns +,,,,,,,,,,,,,,,,,,, +,France entière,130764,±,6011,99793,±,3368,187866,±,6565,418423,±,9517,442132,±,11405,427940,430727,* +,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,2013-2017,,,,,,,,,,,,,,,,,, +,GRECO,Tr±s gros bois (1000 m3),,,"Bois mort debout +(hors chablis) (1000 m3)",,,"Bois mort au sol +(>=7,5 cm diamètre) (1000 m3)",,,"TOTAL +(1000 m3)",,,,,,,, +,Grand Ouest cristallin et océanique,6808,±,1593,3600,±,657,5545,±,1151,15954,±,2072,,,,,, +,Centre Nord semi-océanique,39742,±,3373,13230,±,1070,27390,±,2970,80362,±,4620,,,,,, +,Grand Est semi-continental,26303,±,2782,11818,±,1235,25098,±,2525,63219,±,3955,,,,,, +,Vosges,10651,±,1967,4774,±,825,15790,±,2129,31216,±,3014,,,,,, +,Jura,5890,±,1755,3434,±,638,8264,±,1226,17588,±,2234,,,,,, +,Sud-Ouest océanique,14293,±,2381,11794,±,1225,25686,±,2606,51773,±,3737,,,,,, +,Massif central,20521,±,3159,28097,±,2210,43973,±,3222,92591,±,5025,,,,,, +,Alpes,9396,±,2151,12300,±,1789,14886,±,2098,36582,±,3497,,,,,, +,Pyrénées,9167,±,2023,5302,±,911,8446,±,2017,22915,±,2999,,,,,, +,Méditerranée,3958,±,1582,3624,±,677,6598,±,3700,14180,±,4081,,,,,, +,Corse,11356,±,3595,1909,±,746,4605,±,5457,15752,±,6374,,,,,, +,,,,,,,,,,,,,,,,,,, +,France entière,155967,±,7739,99881,±,3713,186284,±,7509,442132,±,11405,,,,,, +,,,,,,,,,,,,,,,,,,, +,,,,Tr±s gros bois,,,,,,,,,,,,,,, +,,,,Bois mort debout (hors chablis),,,,,,,,,,,,,,, +,,,,Bois mort au sol (>=7,5 cm),,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, +,"Source : IGN, inventaire forestier national +Domaines forestiers et temporels : +Forêts de production hors peupleraies et peupleraies +Campagnes 2008-2012 et campagnes 2013-2017 +Précisions sur les données calculées pour l'indicateur ONB ""bois favorables à la biodiversité"" : +Très gros bois : selon la définition ONB 2018, seuils de diamètre fixé par type biologique d'essence (macro, méso ou microphanérophyte) et différencié en grande région écologique Méditérranée par rapport aux autres grandes régions écologiques. + - GRECO méditerranée : Macrophanérophytes : 60,0 cm, mésophanérophytes : 32,5 cm, microphanérophytes : 22,5 cm + - Autres GRECO : Macrophanérophytes : 70,0 cm, mésophanérophytes : 45,0 cm, microphanérophytes : 27,5 cm +Bois mort debout : les chablis ne sont pas comptabilisés ici. +Bois mort au sol : seuls les volumes des bois morts au sol à partir de 7,5 cm de diamètre sont comptabilisés ici. +",,,,,,,,,,,,,,,,,, diff -r 000000000000 -r 985f8839aebd test-data/GRECO/GRECO_l93.dbf Binary file test-data/GRECO/GRECO_l93.dbf has changed diff -r 000000000000 -r 985f8839aebd test-data/GRECO/GRECO_l93.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/GRECO/GRECO_l93.html Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,7 @@ +Shapefile Galaxy Composite Dataset

+

This composite dataset is composed of the following files:

diff -r 000000000000 -r 985f8839aebd test-data/GRECO/GRECO_l93.prj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/GRECO/GRECO_l93.prj Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,1 @@ +PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0]] \ No newline at end of file diff -r 000000000000 -r 985f8839aebd test-data/GRECO/GRECO_l93.shp Binary file test-data/GRECO/GRECO_l93.shp has changed diff -r 000000000000 -r 985f8839aebd test-data/GRECO/GRECO_l93.shx Binary file test-data/GRECO/GRECO_l93.shx has changed diff -r 000000000000 -r 985f8839aebd test-data/bar_plot.pdf Binary file test-data/bar_plot.pdf has changed diff -r 000000000000 -r 985f8839aebd test-data/evolution_rate.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/evolution_rate.tsv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,12 @@ +Regions Evolution_rate +Grand Ouest cristallin et océanique 18 +Centre Nord semi-océanique 5 +Grand Est semi-continental 7 +Vosges 21 +Jura 7 +Sud-Ouest océanique 5 +Massif central 7 +Alpes 8 +Pyrénées -18 +Méditerranée 10 +Corse 13 diff -r 000000000000 -r 985f8839aebd test-data/histo_data.tsv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/histo_data.tsv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,3 @@ +"variable_name" "variable" "standard_deviation" +"Mean_2008_2012_scaled" 100 2.38599016822497 +"Mean_2013_2017_scaled" 107 3.28578011320741 diff -r 000000000000 -r 985f8839aebd test-data/map.pdf Binary file test-data/map.pdf has changed diff -r 000000000000 -r 985f8839aebd test-data/regres2008_2012_scaled.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/regres2008_2012_scaled.csv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,5 @@ +"","Grand Ouest cristallin et océanique","Centre Nord semi-océanique","Grand Est semi-continental","Vosges","Jura","Sud-Ouest océanique","Massif central","Alpes","Pyrénées","Méditerranée","Corse" +"mean",1.00296534309936,1.0011882786513,1.0008323917756,1.0015330935306,1.00348893002342,1.0012856608366,1.00012988707031,1.00190395101105,1.0031722472139,1.00724654706276,1.00990626149863 +"sd",0.0849715062265118,0.0337152057967764,0.0503372573317076,0.0665652590066563,0.0816398301398331,0.0526547042531718,0.0418715282738768,0.0636441417742403,0.0719135127523274,0.115560728970726,0.148428070380529 +"2.5%",0.844799421502814,0.936863358852826,0.90688810158476,0.87738083794475,0.851358530749395,0.901186934934736,0.919495660182742,0.882399099976615,0.871960314123855,0.800773351296782,0.752737139390172 +"97.5%",1.17715958417959,1.06979601116016,1.10261064943676,1.1370320623464,1.17018070081677,1.1085958186577,1.0844424101995,1.13112641917321,1.15174720886647,1.25420404980751,1.3325196620305 diff -r 000000000000 -r 985f8839aebd test-data/regres2013_2017_scaled.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/regres2013_2017_scaled.csv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,5 @@ +"","Grand Ouest cristallin et océanique","Centre Nord semi-océanique","Grand Est semi-continental","Vosges","Jura","Sud-Ouest océanique","Massif central","Alpes","Pyrénées","Méditerranée","Corse" +"mean",1.18094346489396,1.05456060640417,1.07115291024141,1.20746761659847,1.07252502068406,1.05322222633286,1.06732926839759,1.08091700379083,0.824214889677252,1.11273127297985,1.14039418272799 +"sd",0.10133348179823,0.0379181061169111,0.0497040980353504,0.0814050301787788,0.091869011405958,0.0556726380012161,0.0468324903068147,0.0740978690344627,0.0672243252401584,0.161297353404507,0.264933088151811 +"2.5%",0.994324127721413,0.980232759426124,0.977153310234652,1.05606213924044,0.90415890443177,0.946932322372878,0.980628895469241,0.943944305369814,0.701713995519032,0.829937762059617,0.712100141730523 +"97.5%",1.39337669545521,1.13008251391986,1.17066107329349,1.37662243471713,1.26134075283944,1.1664176227794,1.16214254113648,1.23264011584226,0.962689685611007,1.45776348018511,1.75082384999842 diff -r 000000000000 -r 985f8839aebd test-data/res2008_2012_scaled.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/res2008_2012_scaled.csv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,5 @@ +"","Mean_2008_2012_scaled" +"mean",1.00016163522044 +"sd",0.0238599016822497 +"2,5%",0.954294144295886 +"97,5%",1.04839203288869 diff -r 000000000000 -r 985f8839aebd test-data/res2013_2017_scaled.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/res2013_2017_scaled.csv Sat Nov 25 15:18:01 2023 +0000 @@ -0,0 +1,5 @@ +"","Mean_2013_2017_scaled" +"mean",1.06916362673739 +"sd",0.0328578011320741 +"2,5%",1.00711315573169 +"97,5%",1.13438128695784