###script R, version 23/05/2016
###authors: Christine Plumejeaud-Perreau and Anne S. Philippe

###load thworking directory and the benthos dataset
setwd("C:/Users/Desktop/XXXXXXX")
benthos<- read.csv("benthos.csv", sep=";", dec=",", h=T)


							#####################



#####Script 1: Creates a bubble plot of Scrobicularia biomass densities in Aiguillon Bay in 2014(site AIC)#####
	#load packages
library(sp)
library(gstat)
library(rgdal)
library(raster)
library(reshape)

	#Create a dataframe with Scrobicularia biomass for each station at site AIC in 2014
scrAIC<-subset(benthos, benthos$st_sit_id=="aic"&benthos$year==2014&benthos$abr=="scr")
subs<-scrAIC[,c("abr","AFDM","Poskey","year")]
temp<-melt(subs, id=c("abr","Poskey","year"))
tempaic<-cast(temp, year+Poskey~abr,sum) ####now a data frame with summed densities per Poskey per Year per Group
	#Create a data frame "areaaic" with corresponding sampling areas and calculates biomass densities at each station
areaaic<-scrAIC[,c(1,21)]
areaaic<-areaaic[!duplicated(areaaic), ]#only keep the eara value corresponding to aech station
	#Merge the two dataframe and calculate biomass densities at each station
aicscr<-merge(tempaic, areaaic, by="Poskey", all=TRUE)###
aicscr$scr.m<-aicscr$scr/aicscr$area
	#In order to plot these densities spatially, add coordinates to the dataframe "aicscr"
coordinates<-subset(benthos, benthos$st_sit_id=="aic")
coordinates<-coordinates[,c(1,25,26)]
coordinates<-coordinates[!duplicated(coordinates), ] ##creates a dataframe with coordinates for each station in site AIC
aicscr<-merge(aicscr, coordinates, by="Poskey", all=T)
	#Plot biomass densities of Scrobicularia plana in 2014 in site AIC using bubble function
aicscr$scr.m[is.na(aicscr$scr.m)] <- 0 ##Nas are true zeros
coordinates(aicscr) <- ~ st_long_dd + st_lat_dd
proj4string(aicscr) <- CRS("+init=epsg:4326") # def L93
bubble(aicscr, "scr.m", main="AIC 2014 scr_AFDM", maxsize=3, minsize=0,col="black", key.entries=c(0,0.1,5,10,20,40))

rm(scrAIC,subs,temp,areaaic,coordinates)#remove object that is not necessary anymore



							#####################



#####Script 2: Creates a plot of Scrobicularia biomass densities at station 1698 in Aiguillon Bay between 2004 and 2014(site AIC)#####
scr1698<-subset(benthos, benthos$abr=="scr"&benthos$st_sit_id=="aic"&benthos$Poskey==1698)
library(reshape)
subs<-scr1698[,c("abr","biomass_dens","Poskey","year")]
temp<-melt(subs, id=c("abr","Poskey","year"))
temp<-cast(temp,,sum)
scr1698<-as.data.frame(temp)
plot(scr1698$year,scr1698$biomass_dens, type="o", pch=20, ylab="Biomass",xlab="year", bty="n")

rm(subs, temp)#remove objects that are not necessary anymore


								#####################



#####Script 3: Creates pie plots representing the share of principal mollusc genus in the total biomass density for each site in 2014#####

	#Create a dataframe "pies" with only the principal Genus : Abra, Scrobicularia, Macoma, Peringia and Cerastoderma
v<-c("abr","abo","abt","abn")#in the dataset, 4 abreviations refer to the Genus Abra (see Table 1)
benthos$Genus[benthos$abr%in%v]<-"Abra"
benthos$Genus[benthos$abr=="scr"]<-"Scrobicularia"
benthos$Genus[benthos$abr=="mac"]<-"Macoma"
benthos$Genus[benthos$abr=="hyd"]<-"Peringia"
benthos$Genus[benthos$abr=="cer"]<-"Cerestoderma"
pies<-subset(benthos, !is.na(benthos$Genus)) ##only keep the rows where Genus is either Abra, Scrobicularia, Macoma, Peringia or Cerastoderma (62777 rows)

	#work site by site to create dataframes for the future pie plot with total biomass of principal species per site and station, here we start with site AIC, then AIV, MO and OL
piesAIC<-subset(pies, pies$st_sit_id=="aic"&pies$year==2014) #"piesAIC" is a dataframe with only rows from the delected Genus, site AIC and year 2014 (884 rows)
library(reshape)
subs<-piesAIC[,c("Genus","AFDM","Poskey","year")]
temp<-melt(subs, id=c("Genus","Poskey","year"))
piesAIC<-cast(temp, year+Poskey~Genus,sum) #now a data frame with summed densities per Poskey per Year per Group
piesAIC[is.na(piesAIC)] <- 0 #all NAs are true zeros
rm(subs, temp) # remove the uncessary objects from the working environment
	#same thing for AIV
piesAIV<-subset(pies, pies$st_sit_id=="aiv"&pies$year==2014)  #"piesAIV" is a dataframe with only rows from the delected Genus, site AIV and year 2014 (1256 rows)
subs<-piesAIV[,c("Genus","AFDM","Poskey","year")]
temp<-melt(subs, id=c("Genus","Poskey","year"))
piesAIV<-cast(temp, year+Poskey~Genus,sum) ####now a data frame with summed densities per Poskey per Year per Group
piesAIV[is.na(piesAIV)] <- 0
rm(subs, temp) # remove the uncessary objects from the working environment
	#same thing for MO
piesMO<-subset(pies, pies$st_sit_id=="mo"&pies$year==2014) #"piesMO" is a dataframe with only rows from the delected Genus, site MO and year 2014 (986 rows)
subs<-piesMO[,c("Genus","AFDM","Poskey","year")]
temp<-melt(subs, id=c("Genus","Poskey","year"))
piesMO<-cast(temp, year+Poskey~Genus,sum) ####now a data frame with summed densities per Poskey per Year per Group
piesMO[is.na(piesMO)] <- 0
rm(subs, temp) # remove the uncessary objects from the working environment
	#same thing for OL
piesOL<-subset(pies, pies$st_sit_id=="ol"&pies$year==2014) #"piesOL" is a dataframe with only rows from the delected Genus, site OL and year 2014 (2186 rows)
subs<-piesOL[,c("Genus","AFDM","Poskey","year")]
temp<-melt(subs, id=c("Genus","Poskey","year"))
piesOL<-cast(temp, year+Poskey~Genus,sum) ####now a data frame with summed densities per Poskey per Year per Group
piesOL[is.na(piesOL)] <- 0
rm(subs, temp) # remove the uncessary objects from the working environment


	###calculate the total area sampled for all Genus (except Peringia ) for all stations, starting with site AIC 
areaaic<-subset(pies, pies$st_sit_id=="aic"&pies$year==2014)
areaaic<-areaaic[,c(1,21)] #selects the column "area"
areaaic<-areaaic[!duplicated(areaaic), ]
areaaic<-sum(areaaic$area)# sum the areas sampled at each station to have the total area sampled in site AIC (for all species ecept Peringia) [areaaic=1.00531 m]
###calculate total area sampled for Peringia (another sampling protocol is used for Peringia, see section Sampling Method)
areaaichyd<-subset(pies, pies$st_sit_id=="aic"&pies$year==2014)
areaaichyd<-areaaichyd[,c(1,22)]
areaaichyd<-areaaichyd[!duplicated(areaaichyd), ]
areaaichyd<-sum(areaaichyd$area_hyd) # sum the areas sampled at each station to have the total area sampled in site AIC for Peringia [areaaichyd=0.5026548 m]

piesAIC$Abra.m<-sum(piesAIC$Abra)/areaaic
piesAIC$Cerastoderma.m<-sum(piesAIC$Cerastoderma)/areaaic
piesAIC$Macoma.m<-sum(piesAIC$Macoma)/areaaic
piesAIC$Peringia.m<-sum(piesAIC$Peringia)/areaaichyd  ##!!! the sampled surface is different for Peringia
piesAIC$Scrobicularia.m<-sum(piesAIC$Scrobicularia)/areaaic
aic<-piesAIC[1,c(1,8,9,10,11,12)]

	#same for sites AIV, MO and OL
     ###calculate total area sampled for molluscs and Peringia
areaaiv<-subset(pies, pies$st_sit_id=="aiv"&pies$year==2014)
areaaiv<-areaaiv[,c(1,21)]
areaaiv<-areaaiv[!duplicated(areaaiv), ]
areaaiv<-sum(areaaiv$area)
areaaivhyd<-subset(pies, pies$st_sit_id=="aiv"&pies$year==2014)
areaaivhyd<-areaaivhyd[,c(1,22)]
areaaivhyd<-areaaivhyd[!duplicated(areaaivhyd), ]
areaaivhyd<-sum(areaaivhyd$area_hyd)
areamo<-subset(pies, pies$st_sit_id=="mo"&pies$year==2014)
areamo<-areamo[,c(1,21)]
areamo<-areamo[!duplicated(areamo), ]
areamo<-sum(areamo$area)
areamohyd<-subset(pies, pies$st_sit_id=="mo"&pies$year==2014)
areamohyd<-areamohyd[,c(1,22)]
areamohyd<-areamohyd[!duplicated(areamohyd), ]
areamohyd<-sum(areamohyd$area_hyd)
areaol<-subset(pies, pies$st_sit_id=="ol"&pies$year==2014)
areaol<-areaol[,c(1,21)]
areaol<-areaol[!duplicated(areaol), ]
areaol<-sum(areaol$area)
areaolhyd<-subset(pies, pies$st_sit_id=="ol"&pies$year==2014)
areaolhyd<-areaolhyd[,c(1,22)]
areaolhyd<-areaolhyd[!duplicated(areaolhyd), ]
areaolhyd<-sum(areaolhyd$area_hyd)
    ###create mo, ol and aiv files with mean biomass densities in 2014 (all Poskeys together)
piesAIV$Abra.m<-sum(piesAIV$Abra)/areaaiv
piesAIV$Cerastoderma.m<-sum(piesAIV$Cerastoderma)/areaaiv
piesAIV$Macoma.m<-sum(piesAIV$Macoma)/areaaiv
piesAIV$Peringia.m<-sum(piesAIV$Peringia)/areaaivhyd## Area for Peringia
piesAIV$Scrobicularia.m<-sum(piesAIV$Scrobicularia)/areaaiv
aiv<-piesAIV[1,c(1,8,9,10,11,12)]
piesMO$Abra.m<-sum(piesMO$Abra)/areamo
piesMO$Cerastoderma.m<-sum(piesMO$Cerastoderma)/areamo
piesMO$Macoma.m<-sum(piesMO$Macoma)/areamo
piesMO$Peringia.m<-sum(piesMO$Peringia)/areamohyd## Area for Peringia
piesMO$Scrobicularia.m<-sum(piesMO$Scrobicularia)/areamo
mo<-piesMO[1,c(1,8,9,10,11,12)]
piesOL$Abra.m<-sum(piesOL$Abra)/areaol
piesOL$Cerastoderma.m<-sum(piesOL$Cerastoderma)/areaol
piesOL$Macoma.m<-sum(piesOL$Macoma)/areaol
piesOL$Peringia.m<-sum(piesOL$Peringia)/areaolhyd### Area for Peringia
piesOL$Scrobicularia.m<-sum(piesOL$Scrobicularia)/areaol
ol<-piesOL[1,c(1,8,9,10,11,12)]

	#create the column "All", representing the sum of all five densities, and vectors of biomass densities for the 5 taxa at each site
aic$All<-aic$Abra.m+aic$Cerastoderma.m+aic$Macoma.m+aic$Peringia.m+aic$Scrobicularia.m
aicpie<-c(aic$Abra.m,aic$Cerastoderma.m,aic$Macoma.m,aic$Peringia.m,aic$Scrobicularia.m) 
aiv$All<-aiv$Abra.m+aiv$Cerastoderma.m+aiv$Macoma.m+aiv$Peringia.m+aiv$Scrobicularia.m
aivpie<-c(aiv$Abra.m,aiv$Macoma.m,aiv$Cerastoderma.m,aiv$Peringia.m,aiv$Scrobicularia.m) 
mo$All<-mo$Abra.m+mo$Cerastoderma.m+mo$Macoma.m+mo$Peringia.m+mo$Scrobicularia.m
mopie<-c(mo$Abra.m,mo$Macoma.m,mo$Cerastoderma.m,mo$Peringia.m,mo$Scrobicularia.m) 
ol$All<-ol$Abra.m+ol$Cerastoderma.m+ol$Macoma.m+ol$Peringia.m+ol$Scrobicularia.m
olpie<-c(ol$Abra.m,ol$Macoma.m,ol$Cerastoderma.m,ol$Peringia.m,ol$Scrobicularia.m) 


	#Creates pie plots, with diameter proportionnal to the value "All", i.e. the total biomass density of all five species considered
col<-c(gray(0),gray(1),gray(0.6),gray(0.3),gray(0.9))#sets colours representing each Genus, in grey scale
labs<-c("Abra", "Cerastoderma", "Macoma", "Peringia", "Scrobicularia")###sets labels for the legend
pie(aicpie, labels=NA,col=col, cex=0.6, init.angle=180, main="",radius=0.08*aic$All)
pie(aivpie, labels=NA,col=col, cex=0.6, init.angle=180, main="",radius=0.08*aiv$All)
pie(mopie, labels=NA,col=col, cex=0.6, init.angle=180, main="",radius=0.08*mo$All)
pie(olpie, labels=NA,col=col, cex=0.6, init.angle=180, main="",radius=0.08*ol$All)
legend(-1,-1, labs,cex=0.6,fill=col,ncol=2, bty="n")

##removes the unecessary objects for the environment
rm(aic,aiv,mo,ol,v,pies,areaol, areaaic, areaaiv, areamo,piesAIC, piesAIV,piesMO, piesOL, areaaichyd,areaaivhyd,areamohyd,areaolhyd)

