diff --git a/00_Mesobromion_DataPreparation.R b/00_Mesobromion_DataPreparation.R
new file mode 100644
index 0000000000000000000000000000000000000000..a12a4be11997fad9e105747bb73868a8cf3c2e47
--- /dev/null
+++ b/00_Mesobromion_DataPreparation.R
@@ -0,0 +1,302 @@
+setwd("/data/sPlot/users/Helge/HIDDEN")
+library(tidyverse)
+library(foreign)
+library(gridExtra)
+library(grid)
+library(vegan)
+
+source("99_HIDDEN_functions.R")
+
+##### PART 1 ####
+#### 1. traits data  #### 
+
+traits0 <- read_delim("_data/Mesobromion/traits3.txt", delim =";", col_names = T, locale = locale(encoding = 'latin1')) %>% 
+  dplyr::select(- c("PR_STAT_Indigen", "PR_STAT_Neophyt", "PR_STAT_Archaeophyt", "URBAN_urbanophob", "URBAN_maessig_urbanophob", 
+                    "URBAN_urbanoneutral", "URBAN_maessig_urbanophil", "URBAN_urbanophil", "WUH_von", "WUH_bis", "ARL_c_I_von", "ARL_c_I_bis", 
+                    "BL_ANAT_hydromorph")) %>%  #empty trait
+  mutate(species0=species) %>% 
+  rowwise() %>% 
+  # quick and dirty clean up names
+  mutate(species=gsub(pattern="_", replacement = " ", x = species)) %>% 
+  mutate(species=gsub(pattern=" agg | x | spec$| agg$| s | Sec |  ", replacement=" ", x=species)) %>% 
+  mutate(species=gsub(pattern=" $", replacement = "", x = species)) %>% 
+  mutate(species=ifelse(is.na(word(species, 1, 2)), species, word(species, 1, 2)))
+dim(traits0) #907 obs. of  75 variables:
+
+
+
+#keep only traits with >=88 completeness
+traits0 <- traits0 %>% 
+  dplyr::select_if(~mean(!is.na(.)) >= 0.88) # 907 x 67
+
+
+
+
+
+### Transform binary traits to 0-1
+traits.asym.binary <- c('LEB_F_Makrophanerophyt','LEB_F_Nanophanerophyt',
+                        'LEB_F_Hemikryptophyt','LEB_F_Geophyt','LEB_F_Hemiphanerophyt','LEB_F_Therophyt',
+                        'LEB_F_Hydrophyt','LEB_F_Pseudophanerophyt','LEB_F_Chamaephyt',
+                        'LEB_D_plurienn_pollakanth','LBE_D_plurienn_hapaxanth','LEB_D_annuell',
+                        'LEB_D_bienn','V_VER_absent','V_VER_Wurzelspross','V_VER_Ausläufer',
+                        'V_VER_Rhizom','V_VER_Innovationsknopse.mit.Wurzelknolle',
+                        'V_VER_Innovationsknospe.mit.Speicherwurzel','V_VER_Ausläuferknolle',
+                        'V_VER_Brutsprösschen','V_VER_Fragmentation','V_VER_Turio','V_VER_Sprossknolle',
+                        'V_VER_phyllogener_Spross','V_VER_Rhizompleiokorm','V_VER_Zwiebel',
+                        'V_VER_Ausläuferrhizom','V_VER_Ausläuferzwiebel','V_VER_Bulbille',
+                        'ROS_T_rosettenlose.Pflanzen','ROS_T_Halbrosettenpflanze','ROS_T_Ganzrosettenpflanzen',
+                        'BL_AUSD_immergrün','BL_AUSD_sommergrün','BL_AUSD_vorsommergrün',
+                        'BL_AUSD_überwinternd_grün','BL_ANAT_skleromorph','BL_ANAT_mesomorph',
+                        'BL_ANAT_hygromorph','BL_ANAT_hydromorph','BL_ANAT_blattsukkulent','BL_ANAT_helomorph',
+                        'BL_FORM_gelappt_gefiedert_gefingert_mehrfach','BL_FORM_Vollblatt_Normalblatt',
+                        'BL_FORM_Grasblatt_Langblatt','BL_FORM_nadelförmig','BL_FORM_röhrig',
+                        'BL_FORM_schuppenförmig','BL_FORM_schwertförmig','REPR_T_Samen_Sporen',
+                        'REPR_T_vegetativ','BLU_KL_WIND','BLU_KL_POLLEN',
+                        'BLU_KL_NEKTAR_HONIG_INSEKTEN','STRAT_T_C','STRAT_T_CR','STRAT_T_CS',
+                        'STRAT_T_CSR','STRAT_T_R','STRAT_T_S','STRAT_T_SR')
+
+traits0 <- traits0 %>% 
+  mutate_at(.vars=vars(any_of(traits.asym.binary)), 
+            .funs=~(.>0)*1)
+
+
+## Import traits from TRY and match to species
+load("/data/sPlot2.0/TRY.all.mean.sd.3.by.genus.species.tree.Rdata")
+alltry <- TRY.all.mean.sd.3.by.genus.species.tree %>% 
+  dplyr::select(!ends_with(".sd")) %>% 
+  dplyr::select(StandSpeciesName, LeafArea.mean:Wood.vessel.length.mean) %>% 
+  dplyr::select(-Wood.vessel.length.mean, -StemDens.mean, -Stem.cond.dens.mean) %>% 
+  rename_all(.funs=~gsub(pattern=".mean$", replacement="", x=.))
+
+traits <- traits0 %>% 
+  ungroup() %>% 
+  #dplyr::select(species, species0) %>% 
+  left_join(alltry %>% 
+              rename(species=StandSpeciesName), 
+            by="species") %>% 
+  filter(!is.na(LeafArea))
+dim(traits) #[1] 805  2
+
+
+
+##### 2. Header Data #### 
+env0 <- read_delim("_data/Mesobromion/GVRD_MES2_site.csv", delim = ",")
+str(env0) #6868 obs. of  6 variables:
+
+set.seed(1984)
+header   <- "/data/sPlot/users/Francesco/Project_11/Germany/_data/tvhabita.dbf"
+env  <- env0 %>% 
+  left_join(foreign::read.dbf(header) %>% 
+              as.data.frame() %>% 
+              dplyr::select(RELEVE_NR, LAT, LON),
+            by="RELEVE_NR") %>% 
+  filter(!is.na(LAT)) %>%
+  filter(!(LAT==0 | LON==0)) 
+
+env.all <- env
+
+
+
+### 3. Import species data #### 
+# columns in species correspond to those in env
+# there is no PlotObservationID (yet)
+species0 <- read.table("_data/Mesobromion/GVRD_Mes2_veg1.csv", sep = ",", header=T)
+dim(species0) #6868 obs. of  907 variables:
+rownames(species0) <- env0$RELEVE_NR
+
+## select only plots already selected in env
+species <- env %>% 
+  dplyr::select(RELEVE_NR) %>% 
+  left_join(species0 %>%
+              mutate(RELEVE_NR=env0$RELEVE_NR), 
+            by="RELEVE_NR") %>% 
+  column_to_rownames("RELEVE_NR") %>% 
+  ## delete species not appearing in any plot
+  dplyr::select(colnames(.)[which(colSums(.)!=0)])
+#dplyr::select(traits$species0)
+
+dim(species) # [1] 5810 881
+
+releve08trait <- species %>% 
+  rownames_to_column("RELEVE_NR") %>% 
+  reshape2::melt(.id="RELEVE_NR") %>% 
+  rename(species0=variable, pres=value) %>% 
+  as.tbl() %>% 
+  filter(pres>0) %>% 
+  arrange(RELEVE_NR)  %>% 
+  ## attach traits 
+  left_join(traits %>% 
+              dplyr::select(-species), by="species0") %>% 
+  mutate_at(.vars = vars(LEB_F_Makrophanerophyt:Disp.unit.leng), 
+            .funs = list(~if_else(is.na(.),0,1) * pres)) %>%
+  group_by(RELEVE_NR) %>%
+  summarize_at(.vars= vars(LEB_F_Makrophanerophyt:Disp.unit.leng),
+               .funs = list(~mean(.))) %>%
+  dplyr::select(RELEVE_NR, order(colnames(.))) %>%
+  reshape2::melt(id.vars="RELEVE_NR", value.name="trait.coverage") %>% 
+  group_by(RELEVE_NR) %>% 
+  summarize(ntraits08=mean(trait.coverage>=0.8)) %>% 
+  #select only those releves where we have a coverage of >0.8 for all traits
+  filter(ntraits08==1) %>% 
+  pull(RELEVE_NR)
+
+set.seed(1984)
+releve08trait.samp <- sample(releve08trait, round(length(releve08trait)/10), replace=F)
+species <- species %>% 
+  rownames_to_column("RELEVE_NR") %>% 
+  filter(RELEVE_NR %in% releve08trait.samp) %>% 
+  #column_to_rownames("RELEVE_NR") %>% 
+  #as.tbl() %>% 
+  dplyr::select(RELEVE_NR, one_of(traits$species0))
+
+
+env <- env %>% 
+  filter(RELEVE_NR %in% releve08trait.samp)
+
+traits <- traits %>% 
+  dplyr::select(-species) %>% 
+  dplyr::select(species0, everything()) %>% 
+  filter(species0 %in% colnames(species))
+
+
+#recode binary traits to nominal
+colnames(traits)[which(colnames(traits)=="LBE_D_plurienn_hapaxanth")] <- "LEB_D_plurienn_hapaxanth"
+traits <- traits %>% 
+  mutate(BLU_KL_NEKTAR_HONIG_INSEKTEN=replace(BLU_KL_NEKTAR_HONIG_INSEKTEN, 
+                                              list=species0 %in% c("Convallaria_majalis", "Maianthemum_bifolium"),
+                                              values=0))
+
+traits <- traits %>% 
+  as.tbl() %>% 
+  dplyr::select(-starts_with("BL_FORM"), -starts_with("REPR_T"), -starts_with("BLU_KL"), -starts_with("STRAT_T"), -starts_with("BL_AUSD")) %>% 
+  left_join(traits %>% 
+              dplyr::select(species0, `BL_AUSD_immergrün`:`BL_AUSD_überwinternd_grün`, REPR_T_Samen_Sporen:STRAT_T_SR) %>% 
+              gather(key=Trait, value="value", -species0) %>% 
+              separate(Trait, into = c("Trait", "Organ", "Level"), sep = "_", extra = "merge") %>% 
+              unite(Trait, Trait, Organ) %>% 
+              filter(value==1) %>% 
+              dplyr::select(-value) %>% 
+              spread(Trait, Level) %>% 
+              mutate_at(.vars=vars(BL_AUSD:STRAT_T), 
+                        .funs=~as.factor(.)), 
+            by="species0")
+
+## recode traits to numeric
+robust.mean <- function(x1,x2=NA,x3=NA,x4=NA){
+  x <- c(x1,x2,x3,x4)
+  if(any(!is.na(x))){mean(x, na.rm=T)} else {NA}
+}
+
+traits <- traits %>% 
+  dplyr::select(-starts_with("BL_ANAT"), -starts_with("LEB_D"), -starts_with("ROS_T")) %>% 
+  left_join(traits %>% 
+              dplyr::select(species0, starts_with("BL_ANAT")) %>% 
+              mutate(BL_ANAT_helomorph=ifelse(BL_ANAT_helomorph==1, 1, NA)) %>% 
+              mutate(BL_ANAT_hygromorph=ifelse(BL_ANAT_hygromorph==1, 2, NA)) %>% 
+              mutate(BL_ANAT_mesomorph=ifelse(BL_ANAT_mesomorph==1, 3, NA)) %>% 
+              mutate(BL_ANAT_skleromorph=ifelse(BL_ANAT_skleromorph==1, 4, NA)) %>% 
+              rowwise() %>% 
+              mutate(BL_ANAT=robust.mean(BL_ANAT_helomorph, BL_ANAT_hygromorph, BL_ANAT_mesomorph, BL_ANAT_skleromorph)) %>% 
+              ungroup() %>% 
+              dplyr::select(species0, BL_ANAT, BL_ANAT_blattsukkulent), 
+            by="species0") %>% 
+  left_join(traits %>% 
+              dplyr::select(species0, starts_with("LEB_D"))  %>%
+              rowwise() %>% 
+              mutate(LEB_D_plurienn=max(LEB_D_plurienn_pollakanth + LEB_D_plurienn_hapaxanth, na.rm=T)) %>% 
+              ungroup() %>% 
+              mutate(LEB_D_plurienn=ifelse(LEB_D_plurienn==1, 3, NA)) %>% 
+              mutate(LEB_D_annuell=ifelse(LEB_D_annuell==1, 1, NA)) %>% 
+              mutate(LEB_D_bienn =ifelse(LEB_D_bienn==1, 2, NA)) %>% 
+              rowwise() %>% 
+              mutate(LEB_D=robust.mean(LEB_D_annuell, LEB_D_bienn, LEB_D_plurienn)) %>% 
+              ungroup() %>% 
+              dplyr::select(species0, LEB_D), 
+            by="species0") %>% 
+  left_join(traits %>% 
+              dplyr::select(species0, starts_with("ROS_T")) %>% 
+              mutate(ROS_T=ROS_T_Ganzrosettenpflanzen) %>% 
+              mutate(ROS_T=replace(ROS_T, 
+                                   list=ROS_T_Halbrosettenpflanze==1, 
+                                   values=0.5)) %>% 
+              mutate(ROS_T=replace(ROS_T, 
+                                   list=ROS_T_rosettenlose.Pflanzen==1, 
+                                   values=0)) %>% 
+              dplyr::select(species0, ROS_T), 
+            by="species0") 
+
+### ordered factors
+
+
+dim(species) #558 783
+dim(traits) #783 53
+dim(env) #558 8
+
+
+
+
+######4.  Extract Environmental Factors ######
+### CHELSA
+library(raster)
+library(sp)
+Temp <- raster("../../Francesco/Ancillary_Data/CHELSA/CHELSA_bio10_01.tif")
+Prec <- raster("../../Francesco/Ancillary_Data/CHELSA/CHELSA_bio10_12.tif")
+PHIPHOX <- raster("../../Francesco/Ancillary_Data/ISRIC/PHIHOX_M_sl2_250m_ll.tif")
+ORCDRC <- raster("../../Francesco/Ancillary_Data/ISRIC/ORCDRC_M_sl2_250m_ll.tif")
+
+
+env.sp <- SpatialPointsDataFrame(coords=env %>% dplyr::select(LON, LAT), 
+                                 data=env %>% dplyr::select(-LON, -LAT), 
+                                 proj4string = raster::crs("+proj=longlat +datum=WGS84 +no_defs")) 
+env <- env %>% 
+  mutate(Temp=raster::extract(Temp, env.sp)/10) %>% 
+  mutate(Prec=raster::extract(Prec, env.sp)) %>% 
+  mutate(PHIPHOX=raster::extract(PHIPHOX, env.sp)/10) %>% 
+  mutate(ORCDRC=raster::extract(ORCDRC, env.sp)) 
+
+
+
+## Select only plots where >90% of species have trait info [TRY]
+# releve08trait <- species %>% 
+#   rownames_to_column("RELEVE_NR") %>% 
+#   reshape2::melt(.id="RELEVE_NR") %>% 
+#   rename(species0=variable, pres=value) %>% 
+#   filter(pres>0) %>% 
+#   arrange(RELEVE_NR)  %>% 
+#   ## attach traits 
+#   left_join(traits %>% 
+#               dplyr::select(-species, LeafArea.mean), by="species0") %>% 
+#   group_by(RELEVE_NR) %>% 
+#   summarize(trait.coverage=mean(!is.na(LeafArea.mean))) %>% 
+#   filter(trait.coverage<0.8) %>% 
+#   pull(RELEVE_NR)
+# 
+
+
+
+
+
+
+##export for Valerio
+write_delim(species, path="_data/Mesobromion/species.out.10perc.txt", delim="\t")
+write_delim(traits, path="_data/Mesobromion/traits.out.10perc.txt", delim="\t")
+write_delim(env, path="_data/Mesobromion/env.10perc.txt", delim="\t")
+
+## version without missing species
+empty <- which(colSums(species[,-1])==0)
+traits_nozero <- traits[-empty,]
+species_nozero <- species[,-(empty+1)]
+
+write_delim(species_nozero , path="_data/Mesobromion/species.out.10perc_nozero.txt", delim="\t")
+write_delim(traits_nozero, path="_data/Mesobromion/traits.out.10perc_nozero.txt", delim="\t")
+
+
+write_delim(species %>% 
+              dplyr::select(RELEVE_NR), 
+            path="_derived/Mesobromion/ReleveList.txt", delim="\t")
+
+
+
+
+#### CORRELATION BETWEEN FUZZY WEIGHTED AND BEALS MATRICES
+#### WAS RUN IN THE CLUSTER WITH THE SCRIPT 01b_MesobromionCluster.R
diff --git a/01_Mesobromion.R b/02_Mesobromion_ExamineOutput.R
similarity index 98%
rename from 01_Mesobromion.R
rename to 02_Mesobromion_ExamineOutput.R
index 4d68ad45cde0ffd86b8a22ca00eb7a43a4ad8532..82d9971477d0623081f5deaacc368f3813b0f341 100644
--- a/01_Mesobromion.R
+++ b/02_Mesobromion_ExamineOutput.R
@@ -989,23 +989,26 @@ ggsave(filename="_pics/PlotDistribution.png", height=8, width=6, dpi=300, basema
 #### 6.1 Trait level #####
 library(corrplot)
 traits11 <- traits %>% 
+  rownames_to_column("species") %>% 
+  filter(species %in% colnames(species_nozero)) %>% 
+  column_to_rownames("species") %>% 
   dplyr::select(any_of(traits.sign.alone)) %>% 
-  select(sort(tidyselect::peek_vars())) %>% 
+  dplyr::select(sort(tidyselect::peek_vars())) %>% 
   relocate(all_of(best.5traits), everything())
 
 res <- cor(traits11, use = "pairwise.complete.obs")
-png(file="_pics/Correlations_Trait.png", width=8, height=6.5, units = "in", res=300)
+png(file="_pics/S7_Correlations_Trait.png", width=8, height=6.5, units = "in", res=300)
 corrplot(res, type = "upper", 
          tl.col = "black", tl.srt = 45, number.cex=0.6, addCoef.col = "black", diag=F)
 dev.off()
 
 
 #### 6.2 CWM level ####
-res <- cor(CWM.wide %>% 
-             select(sort(tidyselect::peek_vars())) %>% 
+res2 <- cor(CWM.wide0 %>% 
+             dplyr::select(sort(tidyselect::peek_vars())) %>% 
              relocate(all_of(best.5traits), everything()))
-png(file="_pics/Correlations_CWMs.png", width=8, height=6.5, units = "in", res=300)
-corrplot(res, type = "upper", 
+png(file="_pics/S8_Correlations_CWMs.png", width=8, height=6.5, units = "in", res=300)
+corrplot(res2, type = "upper", 
          tl.col = "black", tl.srt = 45, number.cex=0.6, addCoef.col = "black", diag=F)
 dev.off()
 
diff --git a/02_Figures_Simulations.R b/03_Figures_Simulations.R
similarity index 100%
rename from 02_Figures_Simulations.R
rename to 03_Figures_Simulations.R