EPSCoR SCTC Aquatic Ecology

Juvenile salmon diet data - 2016 - Analysis in progress

Draft in progress 2/7/18. Quick graphic exploration of 2015 diet data.

R Session Info

sessionInfo()
## R version 3.4.3 (2017-11-30)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS High Sierra 10.13.3
## 
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] compiler_3.4.3  backports_1.1.2 magrittr_1.5    rprojroot_1.3-2
##  [5] tools_3.4.3     htmltools_0.3.6 yaml_2.1.16     Rcpp_0.12.15   
##  [9] stringi_1.1.6   rmarkdown_1.8   knitr_1.19      stringr_1.2.0  
## [13] digest_0.6.15   evaluate_0.10.1

#require packages
library(googlesheets)
library(tidyverse)
library(forcats)
suppressMessages(library(dplyr))
#detach("package:MASS", unload=TRUE) #pkg masks some dplyr functions

# Clear environment
rm(list=ls())

#ensure correct name of google sheet desired
gs_ls("2016_EPSCoR_Aquatic_Ecology_Database")

#create object from overall google sheet
SCTC2016 <- gs_title("2016_EPSCoR_Aquatic_Ecology_Database")

###################################################################
# Create Stacked Bar Charts of Diet Proportions by Sampling Event #
###################################################################

#read in worksheet containing diet data
diet <- SCTC2016 %>% 
  gs_read(ws = "2016 Diet Contents Data",col_names=TRUE) %>%
  
  #rename needed columns  
  rename(prcsdt=Process_Date,
         sample.id=Sample.ID,
         spp=Fish_Species,
         river=River,
         reach=Reach,
         site=Site,
         date=Date,
         sampledate=Sample_Date,
         taxkey=Taxon_Keyed,
         prey=Prey_Type_Used,
         preycat=PreyCategory,
         dm_tot=Total_Prey_Dry_Mass_mg,
         sample.event=Sample.Event,
         event.num=sample.event.num,
         TA=TA_Final) %>%
  
  #select desired columns
  select(sample.id,sample.event,river,
         reach,site,sampledate,preycat,spp,dm_tot,TA,event.num) 

#filter out non-diet samples and blank data
diet <- diet %>% filter(site!="DR1",
                        !is.na(spp),
                        !is.na(sample.event),
                        !is.na(preycat),
                        !is.na(dm_tot),
                        !is.na(event.num)
)

#transform columns to desired classes
diet <- transform(diet, 
                  dm_tot = as.numeric(dm_tot),
                  sample.event = as.factor(sample.event),
                  event.num = as.factor(event.num),
                  spp = as.factor(spp))  %>%
  mutate(season = fct_recode(event.num,         #code sampling events as seasons
                             "Early Summer"="1", 
                             "Mid-Summer" = "2",
                             "Late Summer" ="3",
                             "Fall"="4"))


#create sum of pooled prey DM for each prey category by fish species and sample event 
dm_sum_by_event <- diet %>%
  group_by(river,reach,sample.event,spp,preycat,TA,season) %>%
  summarise(sum(dm_tot)) %>%
  rename(dm_sum=`sum(dm_tot)`) 

#create table of summed dry mass for each fish species by sampling event
dm_sum_spp <- dm_sum_by_event %>%
  group_by(sample.event,spp) %>%
  summarise(pool_sum = sum(dm_sum)) 


#join pooled prey DM values to table grouped by fish species and prey category
dm_sum_final <- dm_sum_spp %>%
  left_join(dm_sum_by_event,by=c("sample.event","spp")) %>%
  mutate(pct = (dm_sum/pool_sum)*100) %>%
  filter(sample.event!="#N/A") 

#create table of quantity of Chinook and coho non-empty diet samples from each SITE VISIT
diet_sample_count <- SCTC2016 %>% 
  gs_read(ws = "C 2016 Diet & LW Data",col_names=TRUE) %>%
  filter(DS=="Y") %>%
  mutate(season = fct_recode(as.factor(sample.event.num), 
                             "Early Summer"="1", 
                             "Mid-Summer" = "2",
                             "Late Summer" ="3",
                             "Fall" = "4")) %>%
  group_by(sample.event,season,spp) %>%
  summarise(diet_count=n())

#create table of quantity of Chinook and coho non-empty diet samples from each SEASON
diet_sample_season <- SCTC2016 %>% 
  gs_read(ws = "C 2016 Diet & LW Data",col_names=TRUE) %>%
  filter(DS=="Y") %>%
  mutate(season = fct_recode(as.factor(sample.event.num), 
                             "Early Summer"="1", 
                             "Mid-Summer" = "2",
                             "Late Summer" ="3",
                             "Fall" = "4")) %>%
  group_by(river,season,spp) %>%
  summarise(diet_count=n()) %>%
  mutate(event_label = paste(as.character(spp), "( n=", as.character(diet_count),")"))


# Join diet sample dry mass calculations by sampling event with fish count table by event.
# e.g., how many fish of each species were diet-sampled at each sampling event?

#data is lumped by sampling event
dm_sum_final_by_event <- dm_sum_final %>%
  left_join(diet_sample_count, 
            by=c("season","spp", "sample.event")) %>% 
  mutate(event_label = paste("n =", as.character(diet_count)))

#join diet sample dry mass calculations by sampling event with fish count table by season
#e.g., how many fish of each species were diet-sampled in each season?

#data is lumped for each drainage by `season`
dm_sum_final_by_season <- dm_sum_final_by_event %>%
  group_by(season, river, spp, preycat, pct) %>%
  summarise(dry_mass_pooled = sum(dm_sum)) 


# can I use this plot data pooled longitudinally throughout each draiange for each "season"?
View(dm_sum_final_by_season)


##################
# Visualizations #
##################

##### COHO


################
# Beaver Creek #
################

#DM results for Beaver Creek 2016 only, Coho only
dm_sum_final_beaver_2016 <- dm_sum_final_by_event %>%
  filter(river=="Beaver Creek", spp=="Coho") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Beaver Creek 2016
DMbeaver2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                    data = dm_sum_final_beaver_2016,
                                    stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Beaver Creek 2016\n Juvenile Coho Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_beaver_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMbeaver2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))





#################
# Russian River #
#################

#DM results for Russian River 2016 only, Coho only
dm_sum_final_russian_2016 <- dm_sum_final_by_event %>%
  filter(river=="Russian River", spp=="Coho") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Russian River 2016
DMrussian2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                    data = dm_sum_final_russian_2016,
                                    stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Russian River 2016\n Juvenile Coho Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_russian_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMrussian2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))











###################
# Ptarmigan Creek #
###################


#DM results for Ptarmigan Creek 2016 only, Coho only
dm_sum_final_ptarmigan_2016 <- dm_sum_final_by_event %>%
  filter(river=="Ptarmigan Creek", spp=="Coho") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Ptarmigan Creek 2016
DMptarmigan2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                     data = dm_sum_final_ptarmigan_2016,
                                     stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Ptarmigan Creek 2016\n Juvenile Coho Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_ptarmigan_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMptarmigan2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))


##### Chinook


################
# Beaver Creek #
################

#DM results for Beaver Creek 2016 only, Chinook only
dm_sum_final_beaver_2016 <- dm_sum_final_by_event %>%
  filter(river=="Beaver Creek", spp=="Chinook") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Beaver Creek 2016
DMbeaver2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                    data = dm_sum_final_beaver_2016,
                                    stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Beaver Creek 2016\n Juvenile Chinook Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_beaver_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMbeaver2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))





#################
# Russian River #
#################

#DM results for Russian River 2016 only, Chinook only
dm_sum_final_russian_2016 <- dm_sum_final_by_event %>%
  filter(river=="Russian River", spp=="Chinook") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Russian River 2016
DMrussian2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                    data = dm_sum_final_russian_2016,
                                    stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Russian River 2016\n Juvenile Chinook Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_russian_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMrussian2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))











###################
# Ptarmigan Creek #
###################


#DM results for Ptarmigan Creek 2016 only, Chinook only
dm_sum_final_ptarmigan_2016 <- dm_sum_final_by_event %>%
  filter(river=="Ptarmigan Creek", spp=="Chinook") %>%
  mutate(season = factor(season, levels = c("Early Summer", "Mid-Summer", "Late Summer", "Fall")))

#Create faceted bar charts of dry mass proportions by species and sampling event
#Ptarmigan Creek 2016
DMptarmigan2016 <- ggplot() + geom_bar(aes(y=pct, x=spp, fill=preycat), 
                                     data = dm_sum_final_ptarmigan_2016,
                                     stat="identity") +
  labs(x="",y="Percent Dry Mass (%)") +
  scale_fill_discrete(name="Prey Category",
                      breaks=c("Fish",
                               "InvertAquatic",
                               "InvertTerrestrial_AqOrigin",
                               "InvertTerrestrial_TerOrigin",
                               "InvertTerrestrial_UnkOrigin",
                               "InvertUnknown",
                               "FishEggs"),
                      labels=c("Fish",
                               "Aquatic Invertebrate",
                               "Terrestrial Invertebrate,\nAquatic Origin",
                               "Terrestrial Invertebrate,\nTerrestrial Origin       ",
                               "Terrestrial Invertebrate,\nUnknown Origin",
                               "Unknown Invertebrate",
                               "Fish Eggs")) +
  ggtitle("Ptarmigan Creek 2016\n Juvenile Chinook Diet (% Dry Mass)") +
  theme(legend.key.size = unit(1.7, 'lines')) +
  geom_text(data=dm_sum_final_ptarmigan_2016, 
            aes(x=1, y=4, label=event_label),
            vjust = 0.5) +
  theme(plot.title = element_text(size = 24, face = "bold"),
        axis.text.x  = element_text(size=14),
        axis.title.y = element_text(size = 14, face = "bold")) 

#plot
DMptarmigan2016 + 
  facet_grid(season~reach) +
  theme(strip.text.x = element_text(size=10, face="bold"), 
        strip.text.y = element_text(size=10, face="bold"))