This code examines the community composition of mesozooplankton in Quartermaster Harbor, Sinclair Inlet, Budd Inlet, and Eld Inlet inside and outside of jellyfish aggregations.
load packages
library(dplyr)
library(forcats)
library(stringr)
library(tidyverse)
library(janitor)
library(reshape2)
library(vegan)
devtools::install_github("GuillemSalazar/EcolUtils")
library(EcolUtils)
library(ggrepel)
library(ggpubr)
Read database into R. If current database changes, just change the path
Database <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Final_Aurelia_Database_Jan11_2023.csv")
subset
#select only field data
Field_data<-subset(Database,Trial.Type=="Field")
recode copepod names
Field_data$Species_lifestage <- paste(Field_data$Genus.species, Field_data$Life.History.Stage, sep="_")
Field_data <- Field_data %>%
mutate(Species_lifestage_combined = fct_recode(Species_lifestage,
"Siphonophore" = "SIPHONOPHORA_Gonophore",
"Siphonophore" = "SIPHONOPHORA_Bract",
"Siphonophore" ="SIPHONOPHORA_Unknown",
"AETIDEUS_Female, Adult"="AETIDEUS_Copepodite",
"JELLYFISHES_Ephyra" = "AURELIA LABIATA_Ephyra",
"CALANOIDA_Medium" = "ACARTIA_Copepodite",
"CALANOIDA_Medium" = "ACARTIA_Female, Adult",
"CALANUS PACIFICUS" = "CALANUS PACIFICUS_C5-adult",
"CALANUS PACIFICUS" = "CALANUS PACIFICUS_C5-Adult",
"CALANUS PACIFICUS" = "CALANUS PACIFICUS_Copepodite",
"CALANUS PACIFICUS" = "CALANUS PACIFICUS_Female,
Adult",
"CALANUS PACIFICUS" = "CALANUS PACIFICUS_Male, Adult",
"DITRICHOCORYCAEUS ANGLICUS" = "DITRICHOCORYCAEUS ANGLICUS_Large",
"DITRICHOCORYCAEUS ANGLICUS" = "DITRICHOCORYCAEUS ANGLICUS_Small"))
unique(Field_data$Species_lifestage_combined)
## [1] CALANOIDA_Medium AETIDEUS_Female, Adult
## [3] JELLYFISHES_Ephyra BARNACLES_Cyprid larva
## [5] BARNACLES_Nauplius BIVALVIA_Veliger
## [7] BRACHYURA_Unknown BRYOZOA_Cyphonaut
## [9] CALANOIDA_Copepodite CALANOIDA_Large
## [11] CALANOIDA_Small CALANUS PACIFICUS
## [13] CALANUS PACIFICUS_Female, Adult CENTROPAGES_Female, Adult
## [15] Chaet/Euphaus Egg_Egg CHAETOGNATHA_Unknown
## [17] CLADOCERA_Unknown CLYTIA GREGARIA_Medusa
## [19] COPEPODA_Egg COPEPODA_Nauplius
## [21] CRABS_Megalopa CRABS_Zoea
## [23] Diatom-Centric_Unknown DITRICHOCORYCAEUS ANGLICUS
## [25] ECHINODERMATA_Pluteus larva EUPHAUSIIDAE_Calyptopis
## [27] EUPHAUSIIDAE_Furcilia EUPHAUSIIDAE_Nauplius
## [29] EUTONINA INDICANS_Medusa FISH_Egg
## [31] FISH_Larva GAETANUS_Adult
## [33] GAMMARIDEA_Unknown GASTROPODA_Veliger
## [35] HARPACTICOIDA_Unknown HYPERIIDEA_Unknown
## [37] Insecta_Unknown ISOPODA_Unknown
## [39] JELLYFISHES_Medusa JELLYFISHES_Planula larvae
## [41] LARVACEA_Unknown LITTORINA_Egg
## [43] METRIDIA_Female, Adult MOLLUSCA_Trochophore larva
## [45] Nemertea_Pilidium NEOTRYPAEA CALIFORNIENSIS_Unknown
## [47] NOCTILUCA_Unknown OITHONA_Unknown
## [49] POLYCHAETA_Unknown SHRIMP_Unknown
## [51] Siphonophore TORTANUS DISCAUDATUS_Adult
## [53] UNKNOWN_Larva
## 53 Levels: CALANOIDA_Medium AETIDEUS_Female, Adult ... UNKNOWN_Larva
Deal with duplicate station names
# combine station and date for unique stations
Field_data$Station_unique <- paste(Field_data$Station, Field_data$Sample.Date)
unique(Field_data$Station_unique)
## [1] "QM1 08/28/2019" "SC4 09/25/2019" "SC2 09/25/2019"
## [4] "SC3 09/25/2019" "SC1 09/25/2019" "QM10 08/24/2021"
## [7] "Eld4s 08/28/2020" "QM5b 07/29/2021" "QM6b 07/29/2021"
## [10] "BUDD2s 08/27/2020" "BUDD1 08/27/2020" "QM2c 08/22/2021"
## [13] "SC11 08/26/2021" "BUDD3 08/27/2021" "SC5c 08/25/2021"
## [16] "SC6c 08/25/2021" "SC1a 07/27/2021" "SC4a 07/27/2021"
## [19] "SC16 08/26/2021" "SC10 08/26/2021" "SC7 08/25/2021"
## [22] "BUDD4s 08/27/2020" "QM1b 07/29/2021" "SC2c 08/24/2021"
## [25] "BUDD4 08/27/2020" "QM1c 08/22/2021" "BUDD2a 08/27/2020"
## [28] "BUDD1s 08/27/2020" "SC14 08/26/2021" "Eld1 08/28/2020"
## [31] "BUDD5 08/27/2020" "Eld4 08/28/2020" "Eld3s 08/28/2020"
## [34] "SC3a 07/27/2021" "QM9 08/23/2021" "SC5d 08/25/2021"
## [37] "QM2b 07/28/2021" "SC3c 08/24/2021" "QM6c 08/22/2021"
## [40] "QM5c 08/22/2021" "SC17 08/27/2021" "QM3c 08/22/2021"
## [43] "Eld2s 08/28/2020" "BUDD3s 08/27/2020" "SC5 09/25/2019"
## [46] "QM6 08/28/2019" "QM5 08/28/2019" "QM2 08/28/2019"
## [49] "SC6 09/25/2019" "QM3 08/28/2019" "QM4 08/28/2019"
## [52] "QM3a 08/29/2020" "QM1a 08/28/2020" "SC2a 07/27/2021"
## [55] "QM5a 08/29/2020" "QM4a 08/29/2020" "SC8 08/25/2021"
## [58] "SC12 08/26/2021" "SC4c 08/25/2021" "BUDD7 08/28/2020"
## [61] "SC6a 07/27/2021" "QM11 08/24/2021" "QM4b 07/29/2021"
## [64] "BUDD6 08/27/2020" "Eld2b 07/28/2021" "QM12 08/24/2021"
## [67] "SC5a 07/27/2021" "QM3b 07/29/2021" "QM2 07/24/2019"
## [70] "QM6 07/24/2019" "QM1 07/24/2019" "QM2a 08/28/2020"
## [73] "QM8a 08/29/2020" "BUDD4a 07/28/2021" "BUDD3a 07/28/2021"
## [76] "BUDD1a 07/28/2021" "Eld1s 08/28/2020" "BUDD2s 07/28/2021"
## [79] "Eld2 08/28/2020" "Eld1b 07/28/2021" "Eld3b 07/28/2021"
## [82] "QM3 07/24/2019" "QM5 07/24/2019" "QM4 07/24/2019"
## [85] "QM7a 08/29/2020" "QM4c 08/22/2021"
Field_data$Station_unique <-recode(Field_data$Station_unique,
'QM1 07/24/2019'='QM1s 07/24/2019',
'QM2 07/24/2019'='QM2s 07/24/2019',
'QM3 07/24/2019'='QM3s 07/24/2019',
'QM4 07/24/2019'='QM4s 07/24/2019',
'QM5 07/24/2019'='QM5s 07/24/2019',
'QM6 07/24/2019'='QM6s 07/24/2019',
'BUDD2s 08/27/2020'='BUDD2s_2020 08/27/2020')
#remove date
Field_data$Station_unique<-str_sub(Field_data$Station_unique, end=-12)
unique(Field_data$Station_unique)
## [1] "QM1" "SC4" "SC2" "SC3" "SC1"
## [6] "QM10" "Eld4s" "QM5b" "QM6b" "BUDD2s_2020"
## [11] "BUDD1" "QM2c" "SC11" "BUDD3" "SC5c"
## [16] "SC6c" "SC1a" "SC4a" "SC16" "SC10"
## [21] "SC7" "BUDD4s" "QM1b" "SC2c" "BUDD4"
## [26] "QM1c" "BUDD2a" "BUDD1s" "SC14" "Eld1"
## [31] "BUDD5" "Eld4" "Eld3s" "SC3a" "QM9"
## [36] "SC5d" "QM2b" "SC3c" "QM6c" "QM5c"
## [41] "SC17" "QM3c" "Eld2s" "BUDD3s" "SC5"
## [46] "QM6" "QM5" "QM2" "SC6" "QM3"
## [51] "QM4" "QM3a" "QM1a" "SC2a" "QM5a"
## [56] "QM4a" "SC8" "SC12" "SC4c" "BUDD7"
## [61] "SC6a" "QM11" "QM4b" "BUDD6" "Eld2b"
## [66] "QM12" "SC5a" "QM3b" "QM2s" "QM6s"
## [71] "QM1s" "QM2a" "QM8a" "BUDD4a" "BUDD3a"
## [76] "BUDD1a" "Eld1s" "BUDD2s" "Eld2" "Eld1b"
## [81] "Eld3b" "QM3s" "QM5s" "QM4s" "QM7a"
## [86] "QM4c"
Deal with Jelly density
#convert sample year to a factor
Field_data$Sample.Year<- as.factor(Field_data$Sample.Year)
#remove commas from jelly density
Field_data$Jelly.Density <- as.numeric(gsub(",","",Field_data$Jelly.Density..g.m3.))
#add 1 to jelly density for analyses that prohibit zeroes
Field_data$Jelly.Density <-Field_data$Jelly.Density+1
colnames(Field_data)
## [1] "BugSampleID" "Project"
## [3] "Sample.Code" "Sampling.Group"
## [5] "Station" "Site"
## [7] "Site.Name" "Basin"
## [9] "Sub.Basin" "Latitude"
## [11] "Longitude" "Sample.Date"
## [13] "Sample.Year" "Sample.Month"
## [15] "Sample.Time" "Tow.Type"
## [17] "Mesh.Size" "Station.Depth..m."
## [19] "Flow.meter..revs." "Broad.Group"
## [21] "Mid.Level.Group" "X1st.Word.Taxa"
## [23] "Genus.species" "Life.History.Stage"
## [25] "Total.Ct" "Density....m3."
## [27] "Vol.Filtered..m3." "Jelly.Mass..g."
## [29] "Number.of.Jellies" "Trial.Time"
## [31] "Trial.Type" "Jelly.Size"
## [33] "Jelly.Density....m3." "Jelly.Density..g.m3."
## [35] "Location" "Species_lifestage"
## [37] "Species_lifestage_combined" "Station_unique"
## [39] "Jelly.Density"
add up multiple lines per station
colnames(Field_data)
## [1] "BugSampleID" "Project"
## [3] "Sample.Code" "Sampling.Group"
## [5] "Station" "Site"
## [7] "Site.Name" "Basin"
## [9] "Sub.Basin" "Latitude"
## [11] "Longitude" "Sample.Date"
## [13] "Sample.Year" "Sample.Month"
## [15] "Sample.Time" "Tow.Type"
## [17] "Mesh.Size" "Station.Depth..m."
## [19] "Flow.meter..revs." "Broad.Group"
## [21] "Mid.Level.Group" "X1st.Word.Taxa"
## [23] "Genus.species" "Life.History.Stage"
## [25] "Total.Ct" "Density....m3."
## [27] "Vol.Filtered..m3." "Jelly.Mass..g."
## [29] "Number.of.Jellies" "Trial.Time"
## [31] "Trial.Type" "Jelly.Size"
## [33] "Jelly.Density....m3." "Jelly.Density..g.m3."
## [35] "Location" "Species_lifestage"
## [37] "Species_lifestage_combined" "Station_unique"
## [39] "Jelly.Density"
Field_data <- Field_data %>%
group_by(Station_unique,Site,Sample.Year,Location,Sample.Month,Species_lifestage_combined) %>%
summarise(
copepod_density = sum(Density....m3.),
jelly_biomass = mean(Jelly.Density))
some of this code is similar to 13_filed_CTD-table
import CTD downcasts into one file
#set working directory to folder with CTD files
setwd("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/CTD/CTD_Downcasts-edited")
CTDCombined <-
list.files(pattern = "*.csv") %>%
map_df(~read_csv(.))
loop through stations: interpolate to equal intervals and take mean
results_list <- list()
unique_factors <-unique(CTDCombined$Station)
for (factor_value in unique_factors) {
subset_data <- CTDCombined[CTDCombined$Station == factor_value, ]
table <- as.data.frame(approx(x = subset_data$Depth, y = subset_data$salinity, method = "linear", n = 100))
summarize <- table %>%
summarise(
FactorValue = factor_value,
Smean = mean(y),
Smin = min(y),
Smax = max(y),
Ssd = sd(y)
)
results_list[[factor_value]] <- summarize
}
salinity <- bind_rows(results_list)
results_list <- list()
unique_factors <-unique(CTDCombined$Station)
for (factor_value in unique_factors) {
subset_data <- CTDCombined[CTDCombined$Station == factor_value, ]
table <- as.data.frame(approx(x = subset_data$Depth, y = subset_data$Temp, method = "linear", n = 100))
summarize <- table %>%
summarise(
FactorValue = factor_value,
Tmean = mean(y),
Tmin = min(y),
Tmax = max(y),
Tsd = sd(y)
)
results_list[[factor_value]] <- summarize
}
Temp <- bind_rows(results_list)
results_list <- list()
unique_factors <-unique(CTDCombined$Station)
for (factor_value in unique_factors) {
subset_data <- CTDCombined[CTDCombined$Station == factor_value, ]
table <- as.data.frame(approx(x = subset_data$Depth, y = subset_data$Oxygen, method = "linear", n = 100))
summarize <- table %>%
summarise(
FactorValue = factor_value,
Omean = mean(y),
Omin = min(y),
Omax = max(y),
Osd = sd(y)
)
results_list[[factor_value]] <- summarize
}
Oxygen <- bind_rows(results_list)
results_list <- list()
unique_factors <-unique(CTDCombined$Station)
for (factor_value in unique_factors) {
subset_data <- CTDCombined[CTDCombined$Station == factor_value, ]
table <- as.data.frame(approx(x = subset_data$Depth, y = subset_data$pH, method = "linear", n = 100))
summarize <- table %>%
summarise(
FactorValue = factor_value,
pHmean = mean(y),
pHmin = min(y),
pHmax = max(y),
pHsd = sd(y)
)
results_list[[factor_value]] <- summarize
}
pH <- bind_rows(results_list)
results_list <- list()
unique_factors <-unique(CTDCombined$Station)
for (factor_value in unique_factors) {
subset_data <- CTDCombined[CTDCombined$Station == factor_value, ]
table <- as.data.frame(approx(x = subset_data$Depth, y = subset_data$fluorescence, method = "linear", n = 100))
summarize <- table %>%
summarise(
FactorValue = factor_value,
Fmean = mean(y),
Fmin = min(y),
Fmax = max(y),
Fsd = sd(y)
)
results_list[[factor_value]] <- summarize
}
fluorescence <- bind_rows(results_list)
Env<-merge(salinity, Oxygen,by=c("FactorValue"))
Env1<-merge(Env,Temp,by=c("FactorValue"),all.x = TRUE)
Env2<-merge(Env1,pH,by=c("FactorValue"))
Env3<-merge(Env2, fluorescence,by=c("FactorValue"))
#rename station column
Env3 <- Env3 %>%
rename("Station" = "FactorValue")
recode to match database names
Env3$Station <-recode(Env3$Station, '2020_BUDD2s'='BUDD2s_2020', 'Budd1a'='BUDD1a', 'Budd2s'='BUDD2s','Budd3a'='BUDD3a','Budd4a'='BUDD4a')
remove stations that didn’t get full water column profile due to low battery or some other reason
Env3<-subset(Env3, ! Station %in% c("BUDD1a","BUDD2s","BUDD3a","BUDD4a","Eld1b","Eld2b","Eld3b","QM1b","QM2b","QM3b","QM4b","QM5b","QM6b"))
Import data
Nutrients1 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Nutrients/jk2101.csv")
Nutrients2 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Nutrients/jk2102.csv")
reformat dataframes
#remove header rows
Nutrients1<-Nutrients1[-(1:19),]
Nutrients2<-Nutrients2[-(1:19),]
#convert first row into column names
Nutrients1<-Nutrients1 %>%
row_to_names(row_number = 1)
Nutrients2<-Nutrients2 %>%
row_to_names(row_number = 1)
#remove unnecessary rows and columns
Nutrients1<-Nutrients1[-(1:4),]
Nutrients2<-Nutrients2[-(1:4),]
Nutrients1<-Nutrients1[-(85:88),]
Nutrients2<-Nutrients2[-(57:73),]
Nutrients1 <- Nutrients1[ -c(1,3:5) ]
Nutrients2 <- Nutrients2[ -c(1,3:5) ]
#remove rows with empty cells
Nutrients1<-Nutrients1[!apply(Nutrients1 == "", 1, all), ]
Nutrients2<-Nutrients2[!apply(Nutrients2 == "", 1, all), ]
#combine two dataframes
Nutrients<-rbind(Nutrients1, Nutrients2)
add station info
Nutrient_stations <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Nutrients/Nutrients_station-match.csv")
Nutrients<-merge(Nutrient_stations, Nutrients, by.x = "Bottle..",by.y = "Bottle#")
summarize by station
#add depth category
Nutrients$Depth_category<-factor(ifelse(Nutrients$Depth<5,"shallow","deep"))
#subset to shallow depths
Nutrients_shallow<- subset(Nutrients, Depth_category =="shallow")
#remove replicates
Nutrients_shallow<- subset(Nutrients_shallow, Notes !="replicate 2")
recode station names
# combine station and date for unique stations
Nutrients_shallow$Station_Date <- paste(Nutrients_shallow$Station, Nutrients_shallow$Date)
unique(Nutrients_shallow$Station_Date)
## [1] "Budd 2 8/27/20" "Budd 3 8/27/20" "Budd 3S 8/27/20"
## [4] "Eld 4S 8/28/20" "Budd 4S 8/27/20" "Budd 1S 8/27/20"
## [7] "Eld 2S 8/28/20" "Eld 1S 8/28/20" "Budd 2S 8/27/20"
## [10] "Eld 3S 8/28/20" "SC 5 8/25/21" "SC 8 8/25/21"
## [13] "SC 3 8/24/21" "SC 7 8/25/21" "SC 6 8/25/21"
## [16] "SC 12 8/26/21" "SC 17 8/27/21" "SC 2 8/24/21"
## [19] "SC 10 8/26/21" "SC 1S 7/27/21" "SC 3S 7/27/21"
## [22] "SC 6S 7/27/21" "Eld 1S 7/28/21" "Eld 2S 7/28/21"
## [25] "Qmaster 1S 7/29/21" "Qmaster 3S 7/29/21" "Qmaster 5S 7/29/21"
## [28] "Qmaster 1 8/22/21" "Qmaster 2 8/22/21" "Qmaster 3 8/22/21"
## [31] "Qmaster 4 8/23/21" "Qmaster 5 8/23/21" "Qmaster 6 8/23/21"
## [34] "Qmaster 9 8/23/21" "Qmaster 10 8/23/21" "Qmaster 11 8/24/21"
## [37] "Qmaster 12 8/24/21" "SC 4 8/25/21" "Budd 4 8/27/20"
## [40] "Budd 5 8/27/20" "Budd 7 8/27/20" "Eld 1 8/28/20"
## [43] "Eld 2 8/28/20" "Eld 3 8/28/20" "Eld 4 8/28/20"
## [46] "Eld 5 8/28/20" "Qmaster 1 8/28/20" "Qmaster 2 8/28/20"
## [49] "Qmaster 3 8/29/20" "Qmaster 4 8/29/20" "Qmaster 5 8/29/20"
## [52] "Qmaster 7 8/29/20" "Qmaster 8 8/29/20"
Nutrients_shallow$Station_Date <-recode(Nutrients_shallow$Station_Date,
'Budd 2 8/27/20'='BUDD2a',
'Budd 3 8/27/20'='BUDD3',
'Budd 3S 8/27/20'='BUDD3s',
'Eld 4S 8/28/20'='Eld4s',
'Budd 4S 8/27/20'='BUDD4s',
'Budd 1S 8/27/20'='BUDD1s',
'Eld 2S 8/28/20'='Eld2s',
'Eld 1S 8/28/20'='Eld1s',
'Budd 2S 8/27/20'='BUDD2s_2020',
'Eld 3S 8/28/20'='Eld3s',
'SC 5 8/25/21'='SC5c',
'SC 8 8/25/21'='SC8',
'SC 3 8/24/21'='SC3c',
'SC 7 8/25/21'='SC7',
'SC 6 8/25/21'='SC6c',
'SC 12 8/26/21'='SC12',
'SC 17 8/27/21'='SC17',
'SC 2 8/24/21'='SC2c',
'SC 10 8/26/21'='SC10',
'SC 1S 7/27/21'='SC1a',
'SC 3S 7/27/21'='SC3a',
'SC 6S 7/27/21'='SC6a',
'Eld 1S 7/28/21'='Eld1b',
'Eld 2S 7/28/21'='Eld2b',
'Qmaster 1S 7/29/21'='QM1b',
'Qmaster 3S 7/29/21'='QM3b',
'Qmaster 5S 7/29/21'='QM5b',
'Qmaster 1 8/22/21'='QM1c',
'Qmaster 2 8/22/21'='QM2c',
'Qmaster 3 8/22/21'='QM3c',
'Qmaster 4 8/23/21'='QM4c',
'Qmaster 5 8/23/21'='QM5c',
'Qmaster 6 8/23/21'='QM6c',
'Qmaster 9 8/23/21'='QM9',
'Qmaster 10 8/23/21'='QM10',
'Qmaster 11 8/24/21'='QM11',
'Qmaster 12 8/24/21'='QM12',
'SC 4 8/25/21'='SC4c',
'Budd 4 8/27/20'='BUDD4',
'Budd 5 8/27/20'='BUDD5',
'Budd 7 8/27/20'='BUDD7',
'Eld 1 8/28/20'='Eld1',
'Eld 2 8/28/20'='Eld2',
'Eld 3 8/28/20'='Eld3',
'Eld 4 8/28/20'='Eld4',
'Eld 5 8/28/20'='Eld5',
'Qmaster 1 8/28/20'='QM1a',
'Qmaster 2 8/28/20'='QM2a',
'Qmaster 3 8/29/20'='QM3a',
'Qmaster 4 8/29/20'='QM4a',
'Qmaster 5 8/29/20'='QM5a',
'Qmaster 7 8/29/20'='QM7a',
'Qmaster 8 8/29/20'='QM8a')
cut down columns and rename
Nutrients_shallow <- Nutrients_shallow[ -c(1:6,12) ]
colnames(Nutrients_shallow)
## [1] "[ PO4 ]" "[ Si(OH)4 ]" "[ NO3 ]" "[ NO2 ]" "[ NH4 ]"
## [6] "Station_Date"
Nutrients_shallow <- Nutrients_shallow %>%
rename("PO4" = "[ PO4 ]",
"SiOH4" = "[ Si(OH)4 ]",
"NO3" = "[ NO3 ]",
"NO2" = "[ NO2 ]",
"NH4" = "[ NH4 ]",
"Station" = "Station_Date")
CTD_Nutrients <- merge(Env3,Nutrients_shallow,by.x = "Station")
#keep only stations with CTD and Nutrient values
CTD_Nutrients_full <- na.omit(CTD_Nutrients)
CTD_Nutrients_full$Station_unique<-CTD_Nutrients_full$Station
Field_data_merged <- merge(Field_data,CTD_Nutrients_full,by.x = "Station_unique",by.y="Station_unique", all.x = TRUE)
exclude some taxa
Field_data_merged<-subset(Field_data_merged, Species_lifestage_combined!="Diatom-Centric_Unknown")
Field_data_merged<-subset(Field_data_merged, Species_lifestage_combined!="COPEPODA_Egg")
Field_data_merged<-subset(Field_data_merged, Species_lifestage_combined!="NOCTILUCA_Unknown")
Field_data_merged<-subset(Field_data_merged, Species_lifestage_combined!="MOLLUSCA_Trochophore larva")
subset to QM and SC
Field_data_merged_SCQM<-subset(Field_data_merged, Site!="BUDD")
Field_data_merged_SCQM<-subset(Field_data_merged_SCQM, Site!="ELD")
change from long to wide format
colnames(Field_data_merged)
## [1] "Station_unique" "Site"
## [3] "Sample.Year" "Location"
## [5] "Sample.Month" "Species_lifestage_combined"
## [7] "copepod_density" "jelly_biomass"
## [9] "Station" "Smean"
## [11] "Smin" "Smax"
## [13] "Ssd" "Omean"
## [15] "Omin" "Omax"
## [17] "Osd" "Tmean"
## [19] "Tmin" "Tmax"
## [21] "Tsd" "pHmean"
## [23] "pHmin" "pHmax"
## [25] "pHsd" "Fmean"
## [27] "Fmin" "Fmax"
## [29] "Fsd" "PO4"
## [31] "SiOH4" "NO3"
## [33] "NO2" "NH4"
Field_data_wide<-dcast(Field_data_merged_SCQM, Station_unique+Site+Sample.Year+Location+Sample.Month+jelly_biomass+Smean+Omean+Tmean+pHmean+Fmean+PO4+SiOH4+NO3+NO2+NH4~ Species_lifestage_combined,value.var = "copepod_density")
remove non-data columns, convert to proportionas, and arcsine sqrt transformation
Field_data_wide$Location=as.factor(Field_data_wide$Location)
RE2<- Field_data_wide[,17:ncol(Field_data_wide)]
#replace N/A with 0
RE2[is.na(RE2)] <- 0
#convert to proportions
RE2<-RE2/rowSums(RE2)
#arcsine sqrt transformation
RE2<-asin(sqrt(RE2))
RE3<-as.matrix(RE2)
dist<-vegdist(RE2, method='bray')
dist
## 1 2 3 4 5 6 7
## 2 0.4121771
## 3 0.3856948 0.2168520
## 4 0.4298004 0.2467691 0.2049678
## 5 0.2187767 0.4566839 0.3942068 0.4563936
## 6 0.2205526 0.4556252 0.3865937 0.4159069 0.1807713
## 7 0.4549382 0.1096249 0.2826591 0.3003055 0.4658224 0.4740125
## 8 0.4673451 0.4432572 0.3626843 0.4144222 0.4020346 0.4084880 0.4805196
## 9 0.3639461 0.4026242 0.4087459 0.3249416 0.4679352 0.4502002 0.4203894
## 10 0.3754760 0.3228043 0.2913597 0.2682543 0.3469639 0.3973983 0.4046717
## 11 0.2980098 0.3669296 0.2955462 0.3355356 0.3133844 0.2877000 0.3959244
## 12 0.4742213 0.1503188 0.3011890 0.2607581 0.4932537 0.4987061 0.1295895
## 13 0.4882579 0.4747556 0.4705434 0.5012200 0.4020082 0.4155691 0.5074440
## 14 0.3061909 0.3889675 0.3549741 0.2844879 0.3987243 0.4465746 0.4340789
## 15 0.3894772 0.4140292 0.4257939 0.3838292 0.3518621 0.4182259 0.4657438
## 16 0.3240094 0.3257621 0.2683896 0.2878878 0.3099190 0.2988863 0.3640716
## 17 0.4267383 0.1123914 0.2671703 0.2426941 0.4676363 0.5016564 0.1445345
## 18 0.4687510 0.3967565 0.3309412 0.3386780 0.3775446 0.4626176 0.4657573
## 19 0.2957687 0.3703378 0.3047456 0.2830608 0.3448523 0.3658342 0.4301565
## 20 0.2817946 0.4364525 0.3733272 0.4374732 0.1628574 0.2771295 0.4511025
## 21 0.4159284 0.3794996 0.2823847 0.3203224 0.3950381 0.3653051 0.4129419
## 22 0.4687923 0.1458994 0.2916680 0.2738124 0.4751582 0.5011158 0.1453663
## 23 0.4874992 0.4527448 0.3953100 0.3626969 0.5033493 0.4848156 0.4974557
## 24 0.4598789 0.5210487 0.4239644 0.4328815 0.5124102 0.5337979 0.5744356
## 25 0.3910472 0.3763866 0.3778321 0.3650866 0.2924843 0.3926008 0.4473554
## 26 0.4357108 0.4067627 0.3538407 0.3668248 0.4839844 0.4437526 0.4474491
## 27 0.4899599 0.1971391 0.3730379 0.3633606 0.5450145 0.5664347 0.1326243
## 28 0.4631143 0.4713250 0.3658972 0.4038865 0.5011397 0.5315600 0.5231862
## 29 0.5102486 0.5570740 0.4749417 0.4843915 0.5884704 0.5827703 0.6208421
## 30 0.4603118 0.4005002 0.3802051 0.3691165 0.4803064 0.4819476 0.4129914
## 31 0.3415280 0.1885272 0.2020698 0.2649100 0.3031020 0.3309574 0.1903812
## 32 0.4104546 0.4634875 0.3550731 0.4031024 0.4971453 0.5303123 0.5124152
## 33 0.3500422 0.3519970 0.3324456 0.3171759 0.3370682 0.4202713 0.4056205
## 34 0.3252517 0.3512252 0.2194310 0.2883474 0.3721585 0.4048044 0.4273719
## 35 0.4189421 0.1435976 0.2086655 0.2145098 0.4286537 0.4559567 0.2015954
## 36 0.2468624 0.4977639 0.3908397 0.4945184 0.2626221 0.2759178 0.5285639
## 37 0.5252432 0.5067929 0.4887774 0.5209738 0.3966408 0.4169177 0.4961713
## 38 0.4700560 0.4596575 0.4440188 0.4690480 0.3627745 0.3809899 0.4456328
## 39 0.3753000 0.3569029 0.3033715 0.3263495 0.3830062 0.3642616 0.4069570
## 40 0.4074651 0.4696153 0.4459508 0.4589291 0.3308287 0.3528503 0.4928304
## 41 0.5103728 0.5369061 0.4935575 0.5324951 0.3781408 0.3952570 0.5293036
## 42 0.4124957 0.3381917 0.2523225 0.2430577 0.4326100 0.3938728 0.3809282
## 43 0.2599082 0.4309934 0.3932717 0.4515459 0.2820412 0.2913101 0.4036968
## 44 0.3946146 0.4634418 0.3012893 0.3557829 0.4140422 0.4413845 0.4997761
## 45 0.3022289 0.5136949 0.4868841 0.5223826 0.3272651 0.3069793 0.4914278
## 46 0.5306937 0.5365621 0.4761509 0.5228601 0.4445109 0.4541383 0.5316033
## 47 0.2720098 0.4261592 0.3403407 0.4149947 0.2652989 0.3261669 0.4433898
## 48 0.3319006 0.5428570 0.4764430 0.5506717 0.3153495 0.2768364 0.5299569
## 49 0.4482538 0.4620373 0.4265148 0.4560513 0.3401804 0.3492898 0.4547352
## 50 0.2334057 0.4646617 0.4038263 0.4260195 0.3346485 0.2454790 0.4736174
## 51 0.2985143 0.3824041 0.3674876 0.3363311 0.3833876 0.3523721 0.4322829
## 52 0.3766805 0.3367542 0.2947917 0.2908039 0.3885753 0.3462450 0.3737634
## 53 0.4928700 0.4994530 0.4474919 0.3926473 0.5834673 0.4979923 0.5271822
## 54 0.3259602 0.3724520 0.2979601 0.3074077 0.3637188 0.3126702 0.4341595
## 55 0.4093618 0.4620454 0.3949033 0.4412890 0.2906194 0.3012124 0.4589829
## 56 0.5421444 0.5553660 0.5362614 0.5580341 0.4201625 0.4356613 0.5520255
## 57 0.3640842 0.4787211 0.3190389 0.3828300 0.3930977 0.4389803 0.5125951
## 58 0.3532465 0.3784162 0.2968771 0.2998813 0.4083897 0.3611153 0.4298771
## 59 0.4149468 0.3893803 0.3465738 0.4034574 0.3687319 0.3605940 0.3883107
## 60 0.4170926 0.4621665 0.4276544 0.4536161 0.3481270 0.3229179 0.4879462
## 61 0.4040214 0.3242319 0.2332033 0.2870895 0.4130752 0.3838384 0.3769820
## 8 9 10 11 12 13 14
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9 0.4762633
## 10 0.3172824 0.3298462
## 11 0.3531955 0.3403755 0.3125320
## 12 0.4682131 0.3742645 0.3900192 0.4025109
## 13 0.2044664 0.5475144 0.4182804 0.4128900 0.5282040
## 14 0.4650396 0.1896290 0.2544780 0.3295725 0.4001777 0.5558555
## 15 0.4244546 0.3628176 0.2486602 0.3646005 0.4313740 0.4587782 0.3628812
## 16 0.3628294 0.3698821 0.2725784 0.1542790 0.4187931 0.4217848 0.3107670
## 17 0.5019025 0.4010795 0.3485159 0.4221759 0.1362535 0.5501768 0.3648761
## 18 0.3416609 0.4217514 0.2463186 0.3638779 0.4345432 0.4518637 0.3643536
## 19 0.4274284 0.2553854 0.2468396 0.2969244 0.4209768 0.5044678 0.1726979
## 20 0.3412382 0.4630060 0.3186822 0.3445555 0.4895981 0.3818153 0.4167889
## 21 0.3745923 0.4435447 0.3309077 0.2480922 0.4630653 0.4190130 0.4167485
## 22 0.4818320 0.4122776 0.3997555 0.4208788 0.1342819 0.5584406 0.3976275
## 23 0.4613748 0.3366658 0.3164629 0.3736976 0.4482879 0.5239085 0.3145546
## 24 0.4999864 0.4978310 0.4538896 0.4811727 0.5842305 0.5425402 0.4060735
## 25 0.3441109 0.4000738 0.2017360 0.3729031 0.4237355 0.3465247 0.3475073
## 26 0.5096210 0.3835061 0.3718132 0.3330569 0.4267111 0.5415970 0.3506906
## 27 0.5410270 0.4289764 0.4747119 0.4561849 0.1485079 0.5610216 0.4673372
## 28 0.4598725 0.4917588 0.3946488 0.4197123 0.5262540 0.5620400 0.3897737
## 29 0.4862693 0.5560620 0.4806659 0.5263700 0.6133682 0.5464556 0.4433856
## 30 0.5227542 0.3469277 0.3748232 0.3992893 0.3885578 0.5428560 0.3727884
## 31 0.4162223 0.3561800 0.3689815 0.2892412 0.2517938 0.4605292 0.3604511
## 32 0.4390883 0.4789494 0.3956693 0.4265821 0.5168953 0.5492522 0.4090666
## 33 0.3518026 0.3204372 0.1660762 0.3212649 0.3738324 0.4521783 0.2352814
## 34 0.3554877 0.3427884 0.2506796 0.3229838 0.3863613 0.4632171 0.2450980
## 35 0.4256323 0.4024609 0.3215891 0.3281430 0.2043026 0.4891541 0.3464038
## 36 0.4912357 0.4418098 0.4415588 0.3704474 0.5311137 0.5176146 0.3879038
## 37 0.3786481 0.5444680 0.4729436 0.4283737 0.5174216 0.4189946 0.6047672
## 38 0.3490286 0.5111869 0.4231181 0.3911984 0.4772831 0.4148721 0.5476539
## 39 0.3612951 0.3772938 0.2814449 0.2666337 0.4314419 0.4656392 0.3577478
## 40 0.3437341 0.5341084 0.3716970 0.3951166 0.5118092 0.4098454 0.5278302
## 41 0.3474696 0.5633570 0.4608800 0.4555507 0.5413629 0.4284404 0.5808271
## 42 0.3507781 0.3221789 0.2621654 0.2715023 0.3734730 0.4518076 0.3051353
## 43 0.3835466 0.3439827 0.3690951 0.2867427 0.4439244 0.4319634 0.3657245
## 44 0.4329131 0.4286559 0.3851159 0.4018104 0.4864139 0.5329390 0.3622496
## 45 0.5202489 0.4134693 0.4737281 0.3906102 0.5316312 0.5309156 0.4272229
## 46 0.3949634 0.5679530 0.4703261 0.4633806 0.5301113 0.4730516 0.5830582
## 47 0.4167766 0.3471574 0.3352917 0.3270403 0.4552047 0.4971239 0.3040683
## 48 0.4560638 0.4253249 0.4678812 0.3980797 0.5733088 0.5190306 0.4673002
## 49 0.3562528 0.5045428 0.4069531 0.3956577 0.5033859 0.4334618 0.5139922
## 50 0.4444128 0.3289077 0.3982164 0.2747928 0.4734141 0.4784273 0.2957426
## 51 0.4572747 0.3439403 0.3346946 0.2252500 0.4320540 0.5141832 0.2748551
## 52 0.3489703 0.3414633 0.2762379 0.2587258 0.3898161 0.4465318 0.3055540
## 53 0.4683338 0.4532501 0.4860317 0.4473860 0.5371318 0.5517844 0.4374974
## 54 0.3790694 0.3289859 0.2530019 0.2234142 0.4477154 0.4465792 0.2679643
## 55 0.3689641 0.4637179 0.3988860 0.3561877 0.4770492 0.4140984 0.4725421
## 56 0.4188276 0.6262246 0.4945245 0.4759122 0.5653161 0.4469727 0.6478270
## 57 0.3949690 0.3899982 0.3606529 0.3360178 0.5152104 0.5009268 0.3076369
## 58 0.3751984 0.3080118 0.2695091 0.2519521 0.4290844 0.4561694 0.2657877
## 59 0.3283570 0.4080096 0.3626078 0.2842098 0.4163604 0.4165703 0.4449583
## 60 0.3856286 0.4965429 0.3894091 0.3701618 0.5195757 0.4115817 0.5206616
## 61 0.3240990 0.3743058 0.3061295 0.2488801 0.3786806 0.4325071 0.3620369
## 15 16 17 18 19 20 21
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16 0.3331226
## 17 0.4396364 0.3874899
## 18 0.3726610 0.3734331 0.4097662
## 19 0.3163280 0.2548186 0.3833155 0.3423403
## 20 0.2771546 0.3030370 0.4504638 0.3710666 0.3515085
## 21 0.4383993 0.1685375 0.4475477 0.4137627 0.3557884 0.3664020
## 22 0.4487263 0.4116850 0.1107078 0.4058863 0.4092571 0.4723230 0.4775437
## 23 0.3967190 0.3756606 0.4742327 0.3694880 0.3467303 0.4810694 0.4338520
## 24 0.5567978 0.4631947 0.5233206 0.5104533 0.3802499 0.5319663 0.4539833
## 25 0.2164115 0.3260768 0.4123200 0.3087150 0.3234110 0.2138460 0.3917803
## 26 0.4748642 0.2659604 0.4416526 0.4340696 0.3360983 0.4862326 0.3139020
## 27 0.4796369 0.4851647 0.2128629 0.5235769 0.4783170 0.5282168 0.5323390
## 28 0.5280983 0.3945743 0.4887101 0.3543723 0.3748206 0.4821117 0.3943621
## 29 0.5790974 0.5125993 0.5570425 0.5723983 0.4664549 0.5768524 0.5047400
## 30 0.4259267 0.3727752 0.4016081 0.4743637 0.3851840 0.4438008 0.3616215
## 31 0.3587204 0.2571731 0.2132204 0.4155898 0.3154786 0.2989483 0.3493503
## 32 0.5278800 0.4066525 0.4807257 0.3809276 0.3963642 0.4675343 0.4023382
## 33 0.2596425 0.2925104 0.3571690 0.2405887 0.2694535 0.2980315 0.3645541
## 34 0.3826463 0.2965713 0.3542527 0.2785194 0.2305558 0.3321536 0.3408311
## 35 0.3710594 0.2902764 0.1715031 0.3821390 0.2892228 0.4168881 0.3608564
## 36 0.4448141 0.3575579 0.5075735 0.4306137 0.3743787 0.3341511 0.4231302
## 37 0.4119629 0.4247645 0.5534887 0.5059659 0.5289342 0.3534687 0.4183878
## 38 0.3683383 0.3730109 0.5004068 0.4624773 0.4741146 0.3129969 0.3769867
## 39 0.3553814 0.2103297 0.4004524 0.3424903 0.2582372 0.3405793 0.2513333
## 40 0.2807707 0.3782006 0.5203038 0.4364492 0.4433173 0.2721799 0.4185136
## 41 0.3787909 0.4344709 0.5798843 0.4716205 0.5377075 0.3160299 0.4554124
## 42 0.4081675 0.2182198 0.3738299 0.3260509 0.2576092 0.3977633 0.2097892
## 43 0.3967032 0.2604599 0.4352867 0.4152718 0.3400417 0.3349351 0.3187649
## 44 0.4948104 0.3872582 0.4808290 0.4321139 0.3472984 0.4394845 0.3958125
## 45 0.4374091 0.3459267 0.5364528 0.5499913 0.3807866 0.4016954 0.4153737
## 46 0.4258560 0.4321849 0.5836305 0.5066850 0.5428728 0.3560115 0.4532978
## 47 0.3467915 0.2806783 0.4400803 0.3618890 0.2703679 0.2722802 0.3785530
## 48 0.4512460 0.3595213 0.5708555 0.4641446 0.4116632 0.3776262 0.4260938
## 49 0.3810821 0.3459148 0.4873520 0.4462230 0.4502054 0.2878668 0.3715733
## 50 0.4278585 0.2848899 0.4871858 0.4713511 0.2725540 0.3727954 0.4068899
## 51 0.4138255 0.1812435 0.4239688 0.4126351 0.2792576 0.4192088 0.2807595
## 52 0.3601039 0.1898488 0.3682927 0.3251629 0.2510139 0.3444507 0.2371641
## 53 0.5514856 0.3938519 0.5480696 0.5434966 0.4135634 0.5441570 0.3845540
## 54 0.3661334 0.1450643 0.4134291 0.3614922 0.2364656 0.3444017 0.2415520
## 55 0.4021889 0.3241542 0.4886803 0.4129942 0.4240948 0.2866811 0.3486419
## 56 0.3766656 0.4493292 0.5997175 0.5286308 0.5813830 0.3656551 0.4745516
## 57 0.4588207 0.3367860 0.4981676 0.3730942 0.2745198 0.3669233 0.3630100
## 58 0.3747610 0.1863260 0.4106387 0.3407356 0.2351261 0.3734323 0.2420053
## 59 0.3160113 0.2510352 0.4275528 0.4010455 0.3898981 0.2741360 0.2895066
## 60 0.4135637 0.3516649 0.5174121 0.4427237 0.4378918 0.3543163 0.3670671
## 61 0.4101332 0.2049513 0.3746169 0.3587350 0.3142247 0.3727017 0.2508649
## 22 23 24 25 26 27 28
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23 0.4636357
## 24 0.5792417 0.5801240
## 25 0.4436372 0.4079246 0.5333384
## 26 0.4960984 0.4339920 0.4787075 0.4361596
## 27 0.2017060 0.5360392 0.6292590 0.4826774 0.5285455
## 28 0.5113143 0.4792790 0.3451645 0.4912437 0.4520395 0.6079326
## 29 0.5972031 0.6143136 0.2281461 0.5379017 0.5635163 0.6501745 0.4045137
## 30 0.4405837 0.4074938 0.5212815 0.3938419 0.1981456 0.4611343 0.5374153
## 31 0.2178876 0.4560258 0.5313595 0.3588716 0.4127246 0.2876149 0.5062696
## 32 0.4983126 0.4833090 0.3672559 0.4584540 0.4377532 0.5702542 0.1310328
## 33 0.3720972 0.2993776 0.4758136 0.1952921 0.3604698 0.4628730 0.3661480
## 34 0.4122916 0.3499167 0.3896628 0.2946356 0.3365275 0.4622837 0.3322853
## 35 0.1902881 0.4005472 0.4799794 0.3601007 0.4317421 0.2636811 0.4335340
## 36 0.5317043 0.4729141 0.5251514 0.4088299 0.4609900 0.5920090 0.4880205
## 37 0.5344289 0.5956342 0.6181306 0.3993428 0.5967908 0.5375442 0.6498748
## 38 0.4810579 0.5546863 0.5883787 0.3767983 0.5536397 0.5167367 0.5964986
## 39 0.4328277 0.3994957 0.4899857 0.3399095 0.3538334 0.4742939 0.4202567
## 40 0.4900173 0.5667936 0.5873202 0.3282332 0.5738425 0.5449248 0.5655582
## 41 0.5362295 0.5818014 0.6148584 0.3710378 0.6159021 0.5702486 0.6296229
## 42 0.4192066 0.3663713 0.4494323 0.3216285 0.2642671 0.4467859 0.3981688
## 43 0.4589454 0.4821443 0.5006337 0.3914878 0.4066092 0.4770806 0.5039644
## 44 0.4989186 0.4448784 0.2207498 0.4791941 0.4406679 0.5489952 0.3490945
## 45 0.5634732 0.5238410 0.5401407 0.4994940 0.4643227 0.5381599 0.5521338
## 46 0.5422884 0.5976306 0.6625974 0.4153365 0.5700641 0.5414000 0.6287556
## 47 0.4683245 0.4402880 0.4950634 0.3281297 0.3685913 0.4957067 0.4057471
## 48 0.5848549 0.5365123 0.5577194 0.4572346 0.5114148 0.5773541 0.5537823
## 49 0.4746899 0.5373780 0.5520493 0.3732807 0.5257817 0.5433939 0.5651051
## 50 0.5012505 0.3945572 0.4918581 0.4012205 0.3694390 0.5153514 0.4538734
## 51 0.4698557 0.3731271 0.5077613 0.4129541 0.2560914 0.4886396 0.4353379
## 52 0.3964311 0.3631870 0.4923671 0.3186054 0.2882065 0.4408559 0.4464009
## 53 0.5551294 0.4943846 0.3380132 0.5414199 0.4947598 0.5746103 0.4080987
## 54 0.4528283 0.3691282 0.4562663 0.2967909 0.2666491 0.4908530 0.4098353
## 55 0.4784308 0.4951622 0.5451107 0.3603726 0.4895505 0.5438982 0.5344442
## 56 0.5912116 0.6052058 0.6764647 0.4134675 0.6434520 0.5692508 0.6638795
## 57 0.5105233 0.4165197 0.3181720 0.4013701 0.4391813 0.5572236 0.2914835
## 58 0.4567032 0.3485804 0.4502069 0.3010262 0.2913302 0.4816739 0.4071055
## 59 0.4367162 0.4660557 0.5482004 0.3324761 0.4186677 0.4687986 0.4951601
## 60 0.5077807 0.5014853 0.5391195 0.3696419 0.5246236 0.5792473 0.5928168
## 61 0.3916933 0.3651623 0.4795403 0.3408221 0.3266313 0.4483678 0.4299958
## 29 30 31 32 33 34 35
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30 0.6242478
## 31 0.5931202 0.3730887
## 32 0.4009842 0.5192371 0.5037836
## 33 0.5216770 0.3491493 0.3681474 0.3375584
## 34 0.4390673 0.3752244 0.3450581 0.2948626 0.2287016
## 35 0.5162837 0.4363942 0.1890668 0.4216643 0.3304613 0.3195548
## 36 0.5604765 0.5120090 0.3986271 0.4572486 0.3660898 0.3610698 0.4621027
## 37 0.6616640 0.5465547 0.4173561 0.6226575 0.5034430 0.5463116 0.4910880
## 38 0.6253640 0.5085731 0.3652169 0.5699954 0.4492501 0.4936344 0.4460953
## 39 0.5431814 0.3813510 0.3435009 0.4371184 0.3117339 0.3133895 0.3380643
## 40 0.6013474 0.5621967 0.3818294 0.5501760 0.4174789 0.4708148 0.4558547
## 41 0.6267732 0.5796911 0.4366133 0.5972715 0.4646156 0.5149554 0.5252457
## 42 0.5106913 0.3175385 0.3468140 0.3852526 0.2903492 0.2500637 0.3350470
## 43 0.5688891 0.4243338 0.3250669 0.5091988 0.3725424 0.3700060 0.4453750
## 44 0.2883919 0.4733460 0.4412364 0.3230291 0.3952107 0.3374097 0.3968135
## 45 0.6189195 0.4847195 0.4005985 0.5457248 0.4689161 0.4614552 0.5264693
## 46 0.6735022 0.5626995 0.4500741 0.5811560 0.4830437 0.5156871 0.5166688
## 47 0.5379806 0.4391290 0.3401896 0.3844272 0.2488841 0.2411194 0.3951075
## 48 0.6268035 0.5240219 0.4131608 0.5497501 0.4400205 0.4243194 0.5357523
## 49 0.6121104 0.5053196 0.3537899 0.5353563 0.4188350 0.4626668 0.4445593
## 50 0.5033746 0.4572192 0.3668020 0.4577318 0.3725867 0.3544857 0.4452167
## 51 0.5421905 0.3927922 0.3678624 0.4317674 0.3247557 0.3195066 0.3684924
## 52 0.5354454 0.3441677 0.3188642 0.4399039 0.2676266 0.2682275 0.3151058
## 53 0.2833635 0.5648438 0.5128309 0.3825494 0.5057421 0.4496473 0.4354057
## 54 0.4868858 0.3726163 0.3379308 0.3989026 0.2871017 0.2461725 0.3524818
## 55 0.6080633 0.4706002 0.3300415 0.5317927 0.3930236 0.4196812 0.4472113
## 56 0.6953486 0.6065032 0.4633954 0.6340787 0.5217045 0.5593361 0.5374718
## 57 0.3566455 0.5113834 0.4438175 0.2948861 0.3214009 0.2760531 0.4004120
## 58 0.4924043 0.3623980 0.3474231 0.3929504 0.2671693 0.2230897 0.3443705
## 59 0.6082898 0.4172441 0.3032716 0.4896666 0.3503478 0.3884503 0.3797221
## 60 0.6065027 0.5196595 0.4087686 0.5702745 0.4236578 0.4887833 0.4522915
## 61 0.5272760 0.3654482 0.3214305 0.4095224 0.3125976 0.2852401 0.3083913
## 36 37 38 39 40 41 42
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30
## 31
## 32
## 33
## 34
## 35
## 36
## 37 0.4954147
## 38 0.4566716 0.0745567
## 39 0.4119094 0.3656030 0.3172811
## 40 0.4738148 0.1509652 0.1112663 0.3182933
## 41 0.4614941 0.1302084 0.1116566 0.3811803 0.1372781
## 42 0.4279146 0.4499147 0.4093040 0.1969113 0.4405262 0.4675960
## 43 0.2703089 0.3556137 0.3173208 0.2824498 0.3687434 0.3838922 0.3229444
## 44 0.3689411 0.5414992 0.5066286 0.4123164 0.5079609 0.5241504 0.3945939
## 45 0.2491773 0.4239444 0.3886682 0.3834084 0.4527161 0.4381757 0.4404346
## 46 0.4936784 0.2083025 0.1967513 0.3644575 0.1962014 0.2098472 0.4471943
## 47 0.2288101 0.4844215 0.4337298 0.3050883 0.4212946 0.4629232 0.3448764
## 48 0.2187681 0.3989930 0.3703062 0.3588081 0.4253979 0.3767666 0.4141924
## 49 0.4164003 0.1387588 0.1033137 0.2946063 0.1457300 0.1478568 0.3946561
## 50 0.2347456 0.5335637 0.4780669 0.3429322 0.4727845 0.5059203 0.3519817
## 51 0.3557448 0.5396513 0.4905223 0.2726481 0.5061382 0.5502449 0.2654616
## 52 0.4057086 0.3724250 0.3223087 0.1224218 0.3461636 0.3877175 0.1663969
## 53 0.5415915 0.5935519 0.5570530 0.4168394 0.5707239 0.5856253 0.3657748
## 54 0.3375221 0.4798792 0.4289544 0.2201754 0.4129268 0.4591563 0.1733989
## 55 0.3574220 0.1558376 0.1247376 0.2787839 0.1820217 0.1862153 0.3707781
## 56 0.5172904 0.1149265 0.1154891 0.4030179 0.1361488 0.1271731 0.4984379
## 57 0.3327274 0.5465634 0.5057319 0.3310547 0.4879832 0.5204146 0.3087739
## 58 0.3673930 0.4639883 0.4080622 0.2241805 0.4257605 0.4445365 0.1616204
## 59 0.4179115 0.2291935 0.1727165 0.2515302 0.2319145 0.2465649 0.2969988
## 60 0.4341585 0.1641933 0.1731020 0.2845176 0.2056614 0.2038738 0.3867905
## 61 0.4175310 0.3841665 0.3561249 0.1834735 0.3863813 0.4079674 0.1552523
## 43 44 45 46 47 48 49
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30
## 31
## 32
## 33
## 34
## 35
## 36
## 37
## 38
## 39
## 40
## 41
## 42
## 43
## 44 0.4525893
## 45 0.2080075 0.4791206
## 46 0.4230299 0.5159375 0.4860253
## 47 0.2436340 0.3747761 0.2889459 0.4335141
## 48 0.2034456 0.4892817 0.1237571 0.4494833 0.2985274
## 49 0.3282880 0.4636478 0.3812284 0.1483017 0.3931560 0.3462852
## 50 0.2594062 0.4365345 0.2465514 0.5363640 0.2512557 0.2602069 0.4563006
## 51 0.2860597 0.4565448 0.3141461 0.5438966 0.2796132 0.3572206 0.4623324
## 52 0.2923333 0.4108598 0.4122565 0.3683925 0.3139986 0.3730002 0.2984126
## 53 0.5077445 0.2825725 0.5435784 0.5920714 0.4877783 0.5362747 0.5406856
## 54 0.2991761 0.4175627 0.3671087 0.4606063 0.2947624 0.3433304 0.3876924
## 55 0.3006435 0.4416590 0.3684086 0.2434213 0.3632826 0.3136274 0.1247369
## 56 0.4262336 0.5873717 0.4654495 0.2154832 0.5036238 0.4321239 0.1803833
## 57 0.3798815 0.2428572 0.4740024 0.5096173 0.2660610 0.4473422 0.4655848
## 58 0.2930091 0.4161894 0.3620037 0.4583760 0.3044913 0.3181390 0.3775307
## 59 0.2383238 0.4572156 0.3553636 0.2592801 0.3256169 0.3363352 0.1715247
## 60 0.3331409 0.4619237 0.4282349 0.3229583 0.4626172 0.3754964 0.1900838
## 61 0.3341909 0.3723507 0.4500713 0.3718711 0.3518611 0.4167595 0.3313394
## 50 51 52 53 54 55 56
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30
## 31
## 32
## 33
## 34
## 35
## 36
## 37
## 38
## 39
## 40
## 41
## 42
## 43
## 44
## 45
## 46
## 47
## 48
## 49
## 50
## 51 0.2493608
## 52 0.3259219 0.2338817
## 53 0.4113517 0.4177454 0.4101215
## 54 0.2539624 0.1782582 0.1878964 0.3760003
## 55 0.4055644 0.4231842 0.2638866 0.5402085 0.3528994
## 56 0.5443002 0.5637995 0.4199251 0.6306973 0.4852302 0.1729955
## 57 0.3065042 0.3814227 0.3366641 0.3017775 0.3085848 0.4337605 0.5866293
## 58 0.2958683 0.1838706 0.1950495 0.3872113 0.1001810 0.3444092 0.4812005
## 59 0.3785355 0.3565878 0.2507256 0.4888102 0.3099514 0.2215218 0.2708601
## 60 0.4324103 0.4542962 0.3028033 0.5288974 0.3868972 0.1493251 0.2173303
## 61 0.3671965 0.3139931 0.1693818 0.4030867 0.2262616 0.3215150 0.4414188
## 57 58 59 60
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30
## 31
## 32
## 33
## 34
## 35
## 36
## 37
## 38
## 39
## 40
## 41
## 42
## 43
## 44
## 45
## 46
## 47
## 48
## 49
## 50
## 51
## 52
## 53
## 54
## 55
## 56
## 57
## 58 0.3111593
## 59 0.3985009 0.3018027
## 60 0.4731577 0.3806264 0.2828127
## 61 0.2965991 0.2244943 0.2537728 0.3427076
perm<-adonis2(dist~Sample.Year*Sample.Month*Location, data=Field_data_wide, permutations = 999, method="bray")
perm
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 999
##
## adonis2(formula = dist ~ Sample.Year * Sample.Month * Location, data = Field_data_wide, permutations = 999, method = "bray")
## Df SumOfSqs R2 F Pr(>F)
## Sample.Year 2 0.8397 0.16219 8.4940 0.001 ***
## Sample.Month 2 0.4187 0.08088 4.2358 0.001 ***
## Location 2 0.6961 0.13444 7.0411 0.001 ***
## Sample.Year:Sample.Month 1 0.3461 0.06685 7.0022 0.001 ***
## Sample.Year:Location 4 0.3195 0.06171 1.6160 0.028 *
## Sample.Month:Location 4 0.2602 0.05025 1.3159 0.120
## Sample.Year:Sample.Month:Location 2 0.1717 0.03316 1.7365 0.047 *
## Residual 43 2.1254 0.41052
## Total 60 5.1774 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
adonis.pair(vegdist(RE2),Field_data_wide$Location)
## combination SumsOfSqs MeanSqs F.Model R2 P.value
## 1 IN <-> OB 0.6848117 0.6848117 8.592155 0.17682185 0.000999001
## 2 IN <-> OS 0.3563299 0.3563299 4.813986 0.09473742 0.000999001
## 3 OB <-> OS 0.2281573 0.2281573 3.390738 0.10154727 0.001998002
## P.value.corrected
## 1 0.001498501
## 2 0.001498501
## 3 0.001998002
check for dispersion
Zoop.bd <- betadisper(dist, Field_data_wide$Location)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Location)
##
## No. of Positive Eigenvalues: 35
## No. of Negative Eigenvalues: 25
##
## Average distance to median:
## IN OB OS
## 0.2734 0.2571 0.2356
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 60 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.4920 0.9353 0.6400 0.4271 0.3908 0.2335 0.2269 0.1846
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.016444 0.0082218 1.8755 0.1625
## Residuals 58 0.254256 0.0043837
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.016444 0.0082218 1.8755 999 0.167
## Residuals 58 0.254256 0.0043837
Zoop.bd <- betadisper(dist, Field_data_wide$Sample.Year)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Sample.Year)
##
## No. of Positive Eigenvalues: 35
## No. of Negative Eigenvalues: 25
##
## Average distance to median:
## 2019 2020 2021
## 0.2807 0.1790 0.2627
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 60 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.4920 0.9353 0.6400 0.4271 0.3908 0.2335 0.2269 0.1846
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.053751 0.0268753 6.7754 0.002268 **
## Residuals 58 0.230061 0.0039666
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.053751 0.0268753 6.7754 999 0.003 **
## Residuals 58 0.230061 0.0039666
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Zoop.bd <- betadisper(dist, Field_data_wide$Sample.Month)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Sample.Month)
##
## No. of Positive Eigenvalues: 35
## No. of Negative Eigenvalues: 25
##
## Average distance to median:
## Aug Jul Sep
## 0.2751 0.2615 0.2196
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 60 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.4920 0.9353 0.6400 0.4271 0.3908 0.2335 0.2269 0.1846
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.016346 0.0081729 1.5023 0.2312
## Residuals 58 0.315546 0.0054404
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.016346 0.0081729 1.5023 999 0.242
## Residuals 58 0.315546 0.0054404
library(writexl)
write_xlsx(RE2, "NMDS_input.xlsx")
NMDSmodel <- metaMDS(RE2, distance = "bray",trymax = 200)
## Run 0 stress 0.1837303
## Run 1 stress 0.1856726
## Run 2 stress 0.1837677
## ... Procrustes: rmse 0.004220129 max resid 0.03037131
## Run 3 stress 0.2336356
## Run 4 stress 0.1837677
## ... Procrustes: rmse 0.004198069 max resid 0.03021093
## Run 5 stress 0.2652839
## Run 6 stress 0.2424933
## Run 7 stress 0.1823944
## ... New best solution
## ... Procrustes: rmse 0.02536141 max resid 0.1873467
## Run 8 stress 0.1837677
## Run 9 stress 0.2247584
## Run 10 stress 0.2064293
## Run 11 stress 0.1919681
## Run 12 stress 0.1856686
## Run 13 stress 0.23196
## Run 14 stress 0.1823944
## ... Procrustes: rmse 5.42654e-05 max resid 0.0003668623
## ... Similar to previous best
## Run 15 stress 0.1837677
## Run 16 stress 0.1837677
## Run 17 stress 0.1823944
## ... Procrustes: rmse 1.927879e-05 max resid 8.423533e-05
## ... Similar to previous best
## Run 18 stress 0.2039005
## Run 19 stress 0.1823944
## ... New best solution
## ... Procrustes: rmse 1.262636e-05 max resid 7.175712e-05
## ... Similar to previous best
## Run 20 stress 0.1823952
## ... Procrustes: rmse 0.0006427365 max resid 0.003666832
## ... Similar to previous best
## *** Best solution repeated 2 times
NMDSmodel
##
## Call:
## metaMDS(comm = RE2, distance = "bray", trymax = 200)
##
## global Multidimensional Scaling using monoMDS
##
## Data: RE2
## Distance: bray
##
## Dimensions: 2
## Stress: 0.1823944
## Stress type 1, weak ties
## Best solution was repeated 2 times in 20 tries
## The best solution was from try 19 (random start)
## Scaling: centring, PC rotation, halfchange scaling
## Species: expanded scores based on 'RE2'
plot(NMDSmodel)
get datascores
data.scores<-vegan::scores(NMDSmodel,display="sites")
data.scores<- as.data.frame(data.scores)
add columns back in
colnames(Field_data_wide)
## [1] "Station_unique" "Site"
## [3] "Sample.Year" "Location"
## [5] "Sample.Month" "jelly_biomass"
## [7] "Smean" "Omean"
## [9] "Tmean" "pHmean"
## [11] "Fmean" "PO4"
## [13] "SiOH4" "NO3"
## [15] "NO2" "NH4"
## [17] "CALANOIDA_Medium" "AETIDEUS_Female, Adult"
## [19] "JELLYFISHES_Ephyra" "BARNACLES_Cyprid larva"
## [21] "BARNACLES_Nauplius" "BIVALVIA_Veliger"
## [23] "BRACHYURA_Unknown" "BRYOZOA_Cyphonaut"
## [25] "CALANOIDA_Copepodite" "CALANOIDA_Large"
## [27] "CALANOIDA_Small" "CALANUS PACIFICUS"
## [29] "CALANUS PACIFICUS_Female, Adult" "CENTROPAGES_Female, Adult"
## [31] "Chaet/Euphaus Egg_Egg" "CHAETOGNATHA_Unknown"
## [33] "CLADOCERA_Unknown" "CLYTIA GREGARIA_Medusa"
## [35] "COPEPODA_Nauplius" "CRABS_Megalopa"
## [37] "CRABS_Zoea" "DITRICHOCORYCAEUS ANGLICUS"
## [39] "ECHINODERMATA_Pluteus larva" "EUPHAUSIIDAE_Calyptopis"
## [41] "EUPHAUSIIDAE_Furcilia" "EUPHAUSIIDAE_Nauplius"
## [43] "EUTONINA INDICANS_Medusa" "FISH_Egg"
## [45] "FISH_Larva" "GAETANUS_Adult"
## [47] "GAMMARIDEA_Unknown" "GASTROPODA_Veliger"
## [49] "HARPACTICOIDA_Unknown" "HYPERIIDEA_Unknown"
## [51] "Insecta_Unknown" "ISOPODA_Unknown"
## [53] "JELLYFISHES_Medusa" "JELLYFISHES_Planula larvae"
## [55] "LARVACEA_Unknown" "LITTORINA_Egg"
## [57] "METRIDIA_Female, Adult" "Nemertea_Pilidium"
## [59] "NEOTRYPAEA CALIFORNIENSIS_Unknown" "OITHONA_Unknown"
## [61] "POLYCHAETA_Unknown" "SHRIMP_Unknown"
## [63] "Siphonophore" "UNKNOWN_Larva"
data.scores$Sample.Year = Field_data_wide$Sample.Year
data.scores$Sample.Month = Field_data_wide$Sample.Month
data.scores$Site = Field_data_wide$Site
data.scores$Location = Field_data_wide$Location
data.scores$jelly_biomass = Field_data_wide$jelly_biomass
data.scores$Location = Field_data_wide$Location
data.scores$NO3 = Field_data_wide$NO3
data.scores$PO4 = Field_data_wide$PO4
data.scores$SiOH4 = Field_data_wide$SiOH4
data.scores$NO2 = Field_data_wide$NO2
data.scores$NH4 = Field_data_wide$NH4
data.scores$Tmean = Field_data_wide$Tmean
data.scores$Fmean = Field_data_wide$Fmean
data.scores$Omean = Field_data_wide$Omean
data.scores$pHmean = Field_data_wide$pHmean
data.scores$Smean = Field_data_wide$Smean
plot data scores
xx <- ggplot(data.scores, aes(x = NMDS1, y = NMDS2,colour = Location)) +
labs(title="Experiments")+stat_ellipse()+geom_point(aes(colour = Location))+theme_bw()+theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
xx
## Species fitting
vf <- envfit(NMDSmodel, RE3, perm = 999)
vf
##
## ***VECTORS
##
## NMDS1 NMDS2 r2 Pr(>r)
## CALANOIDA_Medium -0.24882 0.96855 0.2702 0.001 ***
## AETIDEUS_Female, Adult -0.46371 0.88599 0.0418 0.282
## JELLYFISHES_Ephyra 0.17299 0.98492 0.0786 0.076 .
## BARNACLES_Cyprid larva 0.86766 0.49717 0.5761 0.001 ***
## BARNACLES_Nauplius 0.87155 0.49031 0.6327 0.001 ***
## BIVALVIA_Veliger 0.96851 -0.24898 0.4691 0.001 ***
## BRACHYURA_Unknown -0.32823 -0.94460 0.0039 0.858
## BRYOZOA_Cyphonaut -0.52688 0.84994 0.0358 0.370
## CALANOIDA_Copepodite -0.86867 -0.49539 0.0511 0.234
## CALANOIDA_Large -0.85094 0.52527 0.0239 0.496
## CALANOIDA_Small -0.99577 -0.09190 0.0284 0.429
## CALANUS PACIFICUS -0.89960 0.43671 0.1302 0.019 *
## CALANUS PACIFICUS_Female, Adult -0.71641 0.69767 0.1402 0.016 *
## CENTROPAGES_Female, Adult -0.32074 -0.94717 0.0021 0.952
## Chaet/Euphaus Egg_Egg -0.96529 0.26119 0.2335 0.001 ***
## CHAETOGNATHA_Unknown -0.85712 -0.51512 0.1323 0.013 *
## CLADOCERA_Unknown -0.05200 -0.99865 0.5543 0.001 ***
## CLYTIA GREGARIA_Medusa 0.75853 -0.65164 0.0594 0.162
## COPEPODA_Nauplius -0.90421 -0.42708 0.1510 0.014 *
## CRABS_Megalopa 0.01283 -0.99992 0.0495 0.231
## CRABS_Zoea 0.89796 0.44008 0.1215 0.016 *
## DITRICHOCORYCAEUS ANGLICUS -0.88340 0.46863 0.6100 0.001 ***
## ECHINODERMATA_Pluteus larva -0.74308 -0.66920 0.0535 0.202
## EUPHAUSIIDAE_Calyptopis -0.99710 -0.07606 0.0342 0.383
## EUPHAUSIIDAE_Furcilia -0.89215 0.45174 0.0263 0.466
## EUPHAUSIIDAE_Nauplius -0.73389 -0.67927 0.1466 0.008 **
## EUTONINA INDICANS_Medusa -0.10010 -0.99498 0.0129 0.678
## FISH_Egg -0.92406 -0.38224 0.0647 0.128
## FISH_Larva -0.75286 -0.65818 0.0252 0.476
## GAETANUS_Adult -0.81084 -0.58527 0.0022 0.887
## GAMMARIDEA_Unknown -0.76090 0.64887 0.1336 0.017 *
## GASTROPODA_Veliger 0.96262 0.27086 0.6025 0.001 ***
## HARPACTICOIDA_Unknown 0.30512 0.95231 0.1635 0.004 **
## HYPERIIDEA_Unknown -0.69646 0.71760 0.2574 0.002 **
## Insecta_Unknown 0.21433 -0.97676 0.0010 0.953
## ISOPODA_Unknown -0.79358 -0.60847 0.0225 0.554
## JELLYFISHES_Medusa 0.11186 0.99372 0.1334 0.013 *
## JELLYFISHES_Planula larvae 0.82776 -0.56108 0.0680 0.129
## LARVACEA_Unknown -0.45565 -0.89016 0.5052 0.001 ***
## LITTORINA_Egg -0.99392 -0.11013 0.1172 0.028 *
## METRIDIA_Female, Adult -0.56383 0.82589 0.0029 0.900
## Nemertea_Pilidium -0.91701 -0.39888 0.0818 0.077 .
## NEOTRYPAEA CALIFORNIENSIS_Unknown -0.46927 -0.88305 0.0419 0.276
## OITHONA_Unknown -0.82776 0.56108 0.0625 0.154
## POLYCHAETA_Unknown 0.95959 -0.28141 0.5878 0.001 ***
## SHRIMP_Unknown 0.77911 0.62689 0.0818 0.072 .
## Siphonophore -0.38250 0.92396 0.0543 0.193
## UNKNOWN_Larva -0.83954 -0.54329 0.0127 0.674
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
spp.scrs <- as.data.frame(vegan::scores(vf, display = "vectors"))
spp.scrs <- cbind(spp.scrs, Species = rownames(spp.scrs))
####for ggplot
arrow_factor <- ordiArrowMul(vf)
spp.scrs <- as.data.frame(vegan::scores(vf, display = "vectors")) * arrow_factor
spp.scrs <- cbind(spp.scrs, Species = rownames(spp.scrs), Pvalues = vf$vectors$pvals, R_squared = vf$vectors$r)
# select significance similarly to `plot(vf, p.max = 0.01)`
spp.scrs <- subset(spp.scrs, Pvalues < 0.01)
Edit species labels
##edit species scores##
spp.scrs$Species <- recode_factor(spp.scrs$Species,
CALANOIDA_Medium ="medium Calanoid",
BIVALVIA_Veliger="bivalve veliger",
"BARNACLES_Cyprid larva"="barnacle cyprid",
BARNACLES_Nauplius="barnacle nauplius",
"Chaet/Euphaus Egg_Egg"="chaet/euphaus egg",
CLADOCERA_Unknown="cladoceran",
COPEPODA_Nauplius="copepod nauplius",
"DITRICHOCORYCAEUS ANGLICUS"="Ditrichocorycaeus anglicus",
"EUPHAUSIIDAE_Nauplius"="euphausiid nauplius",
GASTROPODA_Veliger="gastropod veliger",
"HARPACTICOIDA_Unknown"="Harpacticoid/Cyclopoid",
HYPERIIDEA_Unknown="hyperiid",
LARVACEA_Unknown="larvacean",
POLYCHAETA_Unknown="polychaete")
extract hulls
Inside <- data.scores[data.scores$Location == "IN", ][chull(data.scores[data.scores$Location ==
"IN", c("NMDS1", "NMDS2")]), ]
Outside <- data.scores[data.scores$Location == "OS", ][chull(data.scores[data.scores$Location ==
"OS", c("NMDS1", "NMDS2")]), ]
Out_Bay <- data.scores[data.scores$Location == "OB", ][chull(data.scores[data.scores$Location ==
"OB", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Inside, Outside, Out_Bay) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Sample.Year Sample.Month Site Location
## 13 0.4720819919 -0.22938630 2019 Jul QM IN
## 27 -0.0005177101 -0.61113880 2021 Aug QM IN
## 17 -0.1247640055 -0.41842775 2021 Aug QM IN
## 9 -0.2857105853 -0.13990688 2019 Aug QM IN
## 44 -0.3349278888 0.24685938 2019 Sep SC IN
## 36 0.0254855599 0.37557086 2019 Sep SC IN
## 45 0.1444396803 0.41399486 2021 Jul SC IN
## 56 0.6319928556 0.11132318 2021 Aug SC IN
## 15 0.2167196365 -0.16653410 2020 Aug QM OS
## 22 -0.0539441655 -0.47708473 2021 Aug QM OS
## 23 -0.3951576672 -0.24012240 2019 Jul QM OS
## 14 -0.2921276908 -0.02311276 2019 Aug QM OS
## 50 -0.0807284239 0.26887336 2019 Sep SC OS
## 48 0.2094235323 0.37965795 2021 Jul SC OS
## 54 -0.0747759325 0.06106093 2021 Jul SC OB
## 61 0.0183841102 -0.05350645 2021 Aug SC OB
## 30 -0.2946313726 -0.33593893 2021 Jul QM OB
## 28 -0.5389321658 0.10026069 2019 Jul QM OB
## 29 -0.6605815643 0.41084683 2019 Aug QM OB
## 53 -0.4637868646 0.33948989 2019 Sep SC OB
## 57 -0.2499956039 0.21202031 2019 Sep SC OB
## jelly_biomass NO3 PO4 SiOH4 NO2 NH4 Tmean Fmean Omean
## 13 2306.88 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 27 157.51 0.21 0.45 35.62 0.01 0.00 15.41718 8.036462 8.324053
## 17 52.43 0.54 0.52 33.82 0.06 0.21 14.66838 8.902871 8.576746
## 9 1051.76 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 44 676.08 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 36 442.72 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 45 59.97 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 56 808.87 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 15 1.00 0.05 0.57 31.11 0.02 0.09 15.24269 10.432785 10.927995
## 22 1.00 3.23 0.89 35.57 0.17 0.19 14.11153 7.023422 7.243498
## 23 97.76 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 14 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 50 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 48 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 54 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 61 1.00 10.51 1.67 32.74 0.36 1.17 14.45317 1.979085 7.252958
## 30 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 28 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 29 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 53 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## 57 1.00 <NA> <NA> <NA> <NA> <NA> NA NA NA
## pHmean Smean
## 13 NA NA
## 27 8.787757 29.67637
## 17 8.710802 29.77035
## 9 NA NA
## 44 NA NA
## 36 NA NA
## 45 NA NA
## 56 NA NA
## 15 8.686565 29.69010
## 22 8.637989 29.82665
## 23 NA NA
## 14 NA NA
## 50 NA NA
## 48 NA NA
## 54 NA NA
## 61 8.604166 29.93015
## 30 NA NA
## 28 NA NA
## 29 NA NA
## 53 NA NA
## 57 NA NA
make plot
hull.data$Location <- factor(hull.data$Location,
c("IN", "OS", "OB"))
data.scores$Location <- factor(data.scores$Location,
c("IN", "OS", "OB"))
zoop_location<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Location,group=Location),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Location,colour=Location),size=1) + # add the point markers
scale_colour_manual(labels = c("Inside Aggregation","Outside Aggregation", "Outside Bay"),values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(labels = c("Inside Aggregation","Outside Aggregation", "Outside Bay"),values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(labels = c("Inside Aggregation","Outside Aggregation", "Outside Bay"),values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-0.8,0.8)+
xlim(-0.8,0.8)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
# remove y-axis labels
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=5),
legend.title = element_text(size=7),legend.position=c(0.8, 0.11))+
geom_segment(data = spp.scrs,size=0.2,
aes(x = 0, xend = NMDS1, y = 0, yend = NMDS2),
arrow = arrow(length = unit(0.08, "cm")), colour = "black")+
geom_label_repel(data = spp.scrs, aes(x = NMDS1, y = NMDS2, label = Species),
size = 1.5, fontface="bold", fill="white", label.padding = unit(0.15, "lines"), box.padding = unit(0.16, "lines"), label.size = 0.05)+
annotate("text", label = "2D Stress: 0.18", x = 0.6, y = 0.8, size = 2, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))
zoop_location
save plot
setwd("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/output")
ggsave(filename = "Field_zoop_NMDS.png", plot = zoop_location, width = 80, height = 80, units="mm", device='png', dpi=600)
ggsave(filename = "Field_zoop_NMDS.tif", plot = zoop_location, width = 80, height = 80, units="mm", device='tiff', dpi=600)
extract hulls
Y2019 <- data.scores[data.scores$Sample.Year == "2019", ][chull(data.scores[data.scores$Sample.Year ==
"2019", c("NMDS1", "NMDS2")]), ]
Y2020 <- data.scores[data.scores$Sample.Year == "2020", ][chull(data.scores[data.scores$Sample.Year ==
"2020", c("NMDS1", "NMDS2")]), ]
Y2021 <- data.scores[data.scores$Sample.Year == "2021", ][chull(data.scores[data.scores$Sample.Year ==
"2021", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Y2019, Y2020, Y2021) #combine grp.a and grp.b
zoop_year<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Sample.Year,group=Sample.Year),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Sample.Year,colour=Sample.Year),size=1) + # add the point markers
scale_colour_manual(name="Year",labels = c("2019","2020","2021"),values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(name="Year",labels = c("2019","2020","2021"),values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(name="Year",labels = c("2019","2020","2021"),values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-0.8,0.8)+
xlim(-0.8,0.8)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=8),
legend.title = element_text(size=8),legend.position=c(0.85, 0.15))+
annotate("text", label = "2D Stress: 0.18", x = 0.5, y = 0.8, size = 3, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-0.75, y=0.75, label= "a",size=8)
zoop_year
extract hulls
Jul <- data.scores[data.scores$Sample.Month == "Jul", ][chull(data.scores[data.scores$Sample.Month ==
"Jul", c("NMDS1", "NMDS2")]), ]
Aug <- data.scores[data.scores$Sample.Month == "Aug", ][chull(data.scores[data.scores$Sample.Month ==
"Aug", c("NMDS1", "NMDS2")]), ]
Sep <- data.scores[data.scores$Sample.Month == "Sep", ][chull(data.scores[data.scores$Sample.Month ==
"Sep", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Jul, Aug, Sep)
zoop_Month<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Sample.Month,group=Sample.Month),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Sample.Month,colour=Sample.Month),size=1) + # add the point markers
scale_colour_manual(name="Month",labels = c("July","August","September"),values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(name="Month",labels = c("July","August","September"),values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(name="Month",labels = c("July","August","September"),values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-0.8,0.8)+
xlim(-0.8,0.8)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=8),
legend.title = element_text(size=8),legend.position=c(0.8, 0.15))+
annotate("text", label = "2D Stress: 0.18", x = 0.5, y = 0.8, size = 3, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-0.75, y=0.75, label= "b",size=8)
zoop_Month
Combine year and month plots
Month_year<-ggarrange(zoop_year,zoop_Month,
ncol = 2, nrow = 1)
Month_year
save plot
setwd("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/output")
ggsave(filename = "Field_month_year.png", plot = Month_year, height = 80, width = 164, units="mm", device='png', dpi=600)
ggsave(filename = "Field_month_year.tif", plot = Month_year, height = 80, width = 164, units="mm", device='tiff', dpi=600)
remove rows without environmental data
Field_data_env<-Field_data_merged[complete.cases(Field_data_merged), ]
Convert from long to wide format
colnames(Field_data_env)
## [1] "Station_unique" "Site"
## [3] "Sample.Year" "Location"
## [5] "Sample.Month" "Species_lifestage_combined"
## [7] "copepod_density" "jelly_biomass"
## [9] "Station" "Smean"
## [11] "Smin" "Smax"
## [13] "Ssd" "Omean"
## [15] "Omin" "Omax"
## [17] "Osd" "Tmean"
## [19] "Tmin" "Tmax"
## [21] "Tsd" "pHmean"
## [23] "pHmin" "pHmax"
## [25] "pHsd" "Fmean"
## [27] "Fmin" "Fmax"
## [29] "Fsd" "PO4"
## [31] "SiOH4" "NO3"
## [33] "NO2" "NH4"
Field_data_wide<-dcast(Field_data_env, Station_unique+Site+Sample.Year+Location+Sample.Month+jelly_biomass+Smean+Omean+Tmean+pHmean+Fmean+PO4+SiOH4+NO3+NO2+NH4~ Species_lifestage_combined,value.var = "copepod_density")
remove non-data columns, convert to proportionas, and arcsine sqrt transformation
Field_data_wide$Site=as.factor(Field_data_wide$Site)
RE2<- Field_data_wide[,17:ncol(Field_data_wide)]
#replace N/A with 0
RE2[is.na(RE2)] <- 0
#convert to proportions
RE2<-RE2/rowSums(RE2)
#arcsine sqrt transformation
RE2<-asin(sqrt(RE2))
RE3<-as.matrix(RE2)
dist<-vegdist(RE2, method='bray')
dist
## 1 2 3 4 5 6 7
## 2 0.23455740
## 3 0.19153915 0.30073927
## 4 0.32856215 0.30730834 0.32896795
## 5 0.19836156 0.23843238 0.25803949 0.35435193
## 6 0.35504049 0.22009820 0.38290986 0.30219730 0.32638066
## 7 0.29526780 0.41598763 0.38120255 0.52834751 0.27472912 0.46896755
## 8 0.37383967 0.25205489 0.31090200 0.15423359 0.33535366 0.21380392 0.56174400
## 9 0.23337801 0.11495294 0.31332155 0.29019081 0.27629915 0.23576180 0.41024920
## 10 0.27210978 0.14274463 0.35593962 0.32361187 0.28810869 0.19608903 0.41259645
## 11 0.24061700 0.34923833 0.35784724 0.51467736 0.24406147 0.44345138 0.23084384
## 12 0.21968449 0.11984453 0.31372090 0.28698537 0.28029921 0.23742811 0.42519814
## 13 0.25465182 0.31051139 0.34709639 0.49621640 0.23529957 0.40281097 0.18077278
## 14 0.17232869 0.26626743 0.26977370 0.40157676 0.15879314 0.35601749 0.19422951
## 15 0.25095693 0.16821986 0.25895721 0.18759952 0.27816173 0.22075125 0.41930698
## 16 0.23138637 0.33483407 0.33521617 0.42910136 0.27612907 0.39053724 0.26846499
## 17 0.38028445 0.39921618 0.39481587 0.48675471 0.37983946 0.40972393 0.44406449
## 18 0.33824784 0.36603404 0.41815771 0.50481819 0.30673735 0.37781377 0.38199366
## 19 0.26345921 0.28940369 0.38564111 0.50125784 0.32373149 0.38017357 0.32237833
## 20 0.52915740 0.52764385 0.58171180 0.72076341 0.48021835 0.54040062 0.51326407
## 21 0.42657607 0.44684073 0.43910529 0.49537918 0.40765769 0.45072329 0.47187894
## 22 0.29167856 0.32045318 0.41755912 0.51989734 0.37955621 0.38544601 0.41063716
## 23 0.38580103 0.40828361 0.42756032 0.45472550 0.40799596 0.45053713 0.43398253
## 24 0.40351534 0.34309612 0.49206242 0.49084284 0.47147560 0.36950163 0.50287908
## 25 0.41360543 0.43117435 0.44246743 0.50218884 0.41126431 0.45233297 0.42372184
## 26 0.50522548 0.50173125 0.56514300 0.69033416 0.47429180 0.51188536 0.55296512
## 27 0.41591092 0.44122318 0.43338630 0.50423918 0.42531909 0.45019277 0.43814774
## 28 0.39758419 0.40025674 0.48302434 0.58121619 0.50823315 0.44595020 0.51053968
## 29 0.45514084 0.46256615 0.45075965 0.49500863 0.47398187 0.47176241 0.51744014
## 30 0.41171936 0.43172128 0.44134054 0.51585676 0.34166029 0.41335979 0.40825933
## 31 0.32601797 0.35245518 0.42431219 0.52600965 0.38112515 0.43810938 0.41634585
## 32 0.35767276 0.38936821 0.45339014 0.61585236 0.35510276 0.47976909 0.34653260
## 33 0.34050017 0.33857548 0.37795565 0.50189310 0.34049110 0.36642456 0.38387832
## 34 0.56102488 0.47331280 0.58059948 0.65003208 0.54480272 0.52918928 0.59162484
## 35 0.38593761 0.31029896 0.44702763 0.57427390 0.33510549 0.38271294 0.43895209
## 36 0.31602412 0.30212664 0.41688720 0.53475934 0.34736067 0.39481951 0.35736673
## 37 0.54195952 0.45236451 0.56354960 0.64417781 0.53430585 0.53267936 0.61186771
## 38 0.51611332 0.45917120 0.56062823 0.65620789 0.48503818 0.52047772 0.54420779
## 39 0.36555310 0.31753264 0.41795249 0.56511246 0.35090979 0.39182045 0.37698859
## 40 0.50881434 0.47037105 0.56514557 0.67678744 0.46515843 0.53283258 0.49298204
## 41 0.45300162 0.37031198 0.49823220 0.54125303 0.40243260 0.42474810 0.44084435
## 42 0.53082645 0.46065000 0.56112610 0.67239876 0.49564727 0.48866999 0.53084934
## 43 0.34254518 0.32491365 0.42278573 0.56747241 0.33391232 0.39704800 0.40218713
## 8 9 10 11 12 13 14
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9 0.26922117
## 10 0.28732799 0.13059941
## 11 0.52006096 0.36351268 0.31480075
## 12 0.26209684 0.09525197 0.16157976 0.35381783
## 13 0.47331339 0.32143562 0.30296876 0.11073097 0.31265554
## 14 0.43235682 0.29565793 0.24617498 0.13308592 0.27282632 0.14111938
## 15 0.18232105 0.16086489 0.19412376 0.41446876 0.17034971 0.37614282 0.31079122
## 16 0.43786809 0.30342970 0.32651269 0.24603084 0.29513905 0.22113536 0.18036710
## 17 0.42106205 0.43329816 0.43619337 0.36756703 0.40538649 0.33958020 0.36559521
## 18 0.44363817 0.42768532 0.38749227 0.28712208 0.37940089 0.26961641 0.28948589
## 19 0.48537769 0.34571430 0.31777939 0.25699226 0.30874224 0.25939774 0.23472123
## 20 0.58801814 0.55465720 0.53584598 0.41484706 0.53658674 0.38690471 0.47915100
## 21 0.43583535 0.46885413 0.48148116 0.39865454 0.43364779 0.37796100 0.39616119
## 22 0.47535495 0.32485157 0.31129541 0.32607059 0.29749829 0.31946031 0.30683931
## 23 0.44474052 0.44760140 0.45444397 0.39225673 0.41925706 0.37886629 0.37800182
## 24 0.44226931 0.34836615 0.32800002 0.42970602 0.35736437 0.40795153 0.43737230
## 25 0.47485744 0.46827054 0.46450150 0.37961961 0.44525983 0.35216886 0.38179345
## 26 0.56446839 0.52347383 0.50496742 0.43274730 0.50833727 0.43586532 0.48211526
## 27 0.46582153 0.47784522 0.48948108 0.40342116 0.44948771 0.37717970 0.39656383
## 28 0.53193807 0.39131863 0.38975526 0.42238791 0.37598043 0.40869036 0.44370455
## 29 0.46013307 0.50159822 0.49733599 0.47056474 0.46778474 0.43508896 0.44938077
## 30 0.43176275 0.45609449 0.45617328 0.33737717 0.43301957 0.28891146 0.35084549
## 31 0.50069135 0.34800077 0.36143841 0.31760004 0.33378322 0.31835708 0.31518271
## 32 0.56683855 0.42128543 0.37414955 0.24623681 0.39755701 0.23439307 0.28995396
## 33 0.41090287 0.39237719 0.37897335 0.33443177 0.36342045 0.28376873 0.32230806
## 34 0.55810415 0.46118166 0.48912264 0.56495431 0.46083842 0.53815418 0.57068170
## 35 0.48006639 0.32396585 0.33888978 0.32185697 0.33571873 0.32199028 0.36318358
## 36 0.49976485 0.31187386 0.30267709 0.26144450 0.29900099 0.24497515 0.27257900
## 37 0.58122105 0.47398718 0.48955244 0.54545119 0.47828538 0.54504495 0.56347950
## 38 0.57374329 0.46037039 0.48202859 0.49045561 0.46169652 0.46867936 0.50838954
## 39 0.51001635 0.31868684 0.36054373 0.28165997 0.31811896 0.26837487 0.31022623
## 40 0.57985937 0.46391983 0.49791543 0.45195764 0.46966614 0.43815195 0.47517748
## 41 0.45609647 0.35980882 0.38442135 0.40895795 0.36429985 0.38757164 0.42371421
## 42 0.54357496 0.44433356 0.47825897 0.50387326 0.45922764 0.47881347 0.50312167
## 43 0.50659166 0.34760599 0.35574232 0.30827577 0.33359672 0.29652830 0.31714294
## 15 16 17 18 19 20 21
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16 0.31288146
## 17 0.44546117 0.38330967
## 18 0.43247260 0.35977090 0.21685203
## 19 0.41186252 0.32076275 0.24676907 0.20496785
## 20 0.60733323 0.45321545 0.45668393 0.39420679 0.45639364
## 21 0.48342076 0.39918219 0.10962493 0.28265906 0.30030550 0.46582241
## 22 0.39601661 0.27431777 0.32280425 0.29135971 0.26825433 0.34696386 0.40467170
## 23 0.45246459 0.37631034 0.15031878 0.30118899 0.26075814 0.49325371 0.12958950
## 24 0.36850334 0.37006254 0.41402916 0.42579387 0.38382918 0.35186211 0.46574385
## 25 0.48978197 0.40203751 0.11239137 0.26717034 0.24269409 0.46763630 0.14453447
## 26 0.55951383 0.43542552 0.43645247 0.37332717 0.43747324 0.16285740 0.45110253
## 27 0.48755751 0.40941056 0.14589940 0.29166804 0.27381241 0.47515819 0.14536627
## 28 0.43836110 0.37163508 0.37638657 0.37783209 0.36508664 0.29248434 0.44735537
## 29 0.49310407 0.44785837 0.19713909 0.37303788 0.36336065 0.54501450 0.13262434
## 30 0.47660338 0.35947777 0.18852719 0.20206977 0.26491000 0.30310204 0.19038118
## 31 0.40870506 0.26912882 0.35199703 0.33244555 0.31717586 0.33706818 0.40562048
## 32 0.46351383 0.33936762 0.35122518 0.21943101 0.28834742 0.37215847 0.42737194
## 33 0.42881775 0.37631484 0.14359760 0.20866549 0.21450976 0.42865368 0.20159535
## 34 0.51578749 0.50725910 0.50679285 0.48877737 0.52097383 0.39664085 0.49617130
## 35 0.42649231 0.35380319 0.35690293 0.30337148 0.32634950 0.38300618 0.40695696
## 36 0.39244825 0.27944039 0.33819168 0.25232249 0.24305767 0.43261004 0.38092819
## 37 0.50510211 0.51977766 0.53656207 0.47615087 0.52286008 0.44451089 0.53160328
## 38 0.51762122 0.46931244 0.46203733 0.42651477 0.45605134 0.34018043 0.45473522
## 39 0.40126471 0.28852824 0.33675419 0.29479166 0.29080387 0.38857527 0.37376335
## 40 0.52764011 0.42159387 0.46204537 0.39490327 0.44128905 0.29061937 0.45898285
## 41 0.40500981 0.35602039 0.38938035 0.34657380 0.40345743 0.36873189 0.38831067
## 42 0.52568349 0.46281497 0.46216651 0.42765444 0.45361605 0.34812704 0.48794620
## 43 0.42311488 0.34029517 0.32423187 0.23320326 0.28708951 0.41307523 0.37698200
## 22 23 24 25 26 27 28
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23 0.39001924
## 24 0.24866015 0.43137397
## 25 0.34851585 0.13625349 0.43963643
## 26 0.31868219 0.48959807 0.27715458 0.45046383
## 27 0.39975552 0.13428187 0.44872632 0.11070777 0.47232301
## 28 0.20173597 0.42373550 0.21641150 0.41231996 0.21384597 0.44363717
## 29 0.47471193 0.14850788 0.47963691 0.21286288 0.52821680 0.20170603 0.48267739
## 30 0.36898149 0.25179384 0.35872045 0.21322036 0.29894831 0.21788757 0.35887165
## 31 0.16607621 0.37383237 0.25964251 0.35716896 0.29803154 0.37209716 0.19529210
## 32 0.25067957 0.38636134 0.38264630 0.35425269 0.33215365 0.41229162 0.29463563
## 33 0.32158914 0.20430264 0.37105944 0.17150311 0.41688810 0.19028809 0.36010074
## 34 0.47294362 0.51742156 0.41196287 0.55348873 0.35346874 0.53442892 0.39934279
## 35 0.28144491 0.43144194 0.35538145 0.40045237 0.34057927 0.43282773 0.33990955
## 36 0.26216538 0.37347295 0.40816755 0.37382986 0.39776333 0.41920658 0.32162849
## 37 0.47032612 0.53011134 0.42585604 0.58363054 0.35601147 0.54228836 0.41533647
## 38 0.40695314 0.50338591 0.38108214 0.48735196 0.28786677 0.47468990 0.37328066
## 39 0.27623786 0.38981613 0.36010393 0.36829273 0.34445068 0.39643108 0.31860536
## 40 0.39888599 0.47704925 0.40218890 0.48868029 0.28668111 0.47843083 0.36037259
## 41 0.36260776 0.41636044 0.31601130 0.42755280 0.27413597 0.43671622 0.33247606
## 42 0.38940906 0.51957575 0.41356367 0.51741215 0.35431630 0.50778073 0.36964195
## 43 0.30612948 0.37868059 0.41013315 0.37461688 0.37270170 0.39169327 0.34082211
## 29 30 31 32 33 34 35
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30 0.28761489
## 31 0.46287302 0.36814740
## 32 0.46228374 0.34505810 0.22870155
## 33 0.26368108 0.18906677 0.33046135 0.31955476
## 34 0.53754417 0.41735613 0.50344295 0.54631163 0.49108800
## 35 0.47429391 0.34350089 0.31173390 0.31338954 0.33806433 0.36560303
## 36 0.44678586 0.34681402 0.29034917 0.25006371 0.33504701 0.44991474 0.19691133
## 37 0.54140001 0.45007415 0.48304369 0.51568707 0.51666880 0.20830245 0.36445746
## 38 0.54339388 0.35378985 0.41883500 0.46266682 0.44455929 0.13875877 0.29460628
## 39 0.44085590 0.31886421 0.26762662 0.26822751 0.31510577 0.37242502 0.12242180
## 40 0.54389824 0.33004147 0.39302365 0.41968122 0.44721129 0.15583764 0.27878390
## 41 0.46879858 0.30327165 0.35034777 0.38845027 0.37972212 0.22919350 0.25153016
## 42 0.57924733 0.40876863 0.42365777 0.48878333 0.45229150 0.16419333 0.28451759
## 43 0.44836785 0.32143047 0.31259758 0.28524008 0.30839131 0.38416655 0.18347349
## 36 37 38 39 40 41 42
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23
## 24
## 25
## 26
## 27
## 28
## 29
## 30
## 31
## 32
## 33
## 34
## 35
## 36
## 37 0.44719426
## 38 0.39465605 0.14830168
## 39 0.16639685 0.36839255 0.29841264
## 40 0.37077815 0.24342127 0.12473690 0.26388658
## 41 0.29699884 0.25928006 0.17152470 0.25072558 0.22152182
## 42 0.38679054 0.32295829 0.19008376 0.30280331 0.14932514 0.28281267
## 43 0.15525227 0.37187109 0.33133935 0.16938179 0.32151504 0.25377276 0.34270760
perm<-adonis2(dist~Sample.Year*Site, data=Field_data_wide, permutations = 999, method="bray")
perm
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 999
##
## adonis2(formula = dist ~ Sample.Year * Site, data = Field_data_wide, permutations = 999, method = "bray")
## Df SumOfSqs R2 F Pr(>F)
## Sample.Year 1 0.4548 0.13768 12.182 0.001 ***
## Site 3 1.3938 0.42195 12.445 0.001 ***
## Sample.Year:Site 1 0.0734 0.02221 1.965 0.062 .
## Residual 37 1.3813 0.41817
## Total 42 3.3032 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check pairwise differences
adonis.pair(vegdist(RE2),Field_data_wide$Site)
## combination SumsOfSqs MeanSqs F.Model R2 P.value
## 1 BUDD <-> ELD 0.08080964 0.08080964 1.794509 0.1136160 0.130869131
## 2 BUDD <-> QM 0.59581231 0.59581231 10.923091 0.3127756 0.000999001
## 3 BUDD <-> SC 0.71255094 0.71255094 15.714627 0.4803548 0.000999001
## 4 ELD <-> QM 0.37176558 0.37176558 7.320602 0.2496743 0.000999001
## 5 ELD <-> SC 0.47454411 0.47454411 12.294672 0.4504422 0.000999001
## 6 QM <-> SC 0.50150137 0.50150137 9.969194 0.2850850 0.000999001
## P.value.corrected
## 1 0.130869131
## 2 0.001198801
## 3 0.001198801
## 4 0.001198801
## 5 0.001198801
## 6 0.001198801
BUDD and ELD are similar, but all else are different
check for dispersion
Zoop.bd <- betadisper(dist, Field_data_wide$Site)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Site)
##
## No. of Positive Eigenvalues: 25
## No. of Negative Eigenvalues: 17
##
## Average distance to median:
## BUDD ELD QM SC
## 0.2047 0.1720 0.2223 0.1852
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 42 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.13037 0.73541 0.51736 0.28349 0.18825 0.14021 0.09795 0.08789
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 3 0.016178 0.0053928 1.3977 0.258
## Residuals 39 0.150476 0.0038584
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 3 0.016178 0.0053928 1.3977 999 0.264
## Residuals 39 0.150476 0.0038584
dispersion is not significant
NMDSmodel <- metaMDS(RE2, distance = "bray",trymax = 200)
## Run 0 stress 0.1559725
## Run 1 stress 0.1559725
## ... Procrustes: rmse 7.902993e-06 max resid 3.160344e-05
## ... Similar to previous best
## Run 2 stress 0.1573886
## Run 3 stress 0.1559726
## ... Procrustes: rmse 3.088073e-05 max resid 0.0001437199
## ... Similar to previous best
## Run 4 stress 0.1573886
## Run 5 stress 0.1573887
## Run 6 stress 0.2176344
## Run 7 stress 0.2130864
## Run 8 stress 0.2296615
## Run 9 stress 0.1559725
## ... New best solution
## ... Procrustes: rmse 1.307477e-06 max resid 3.929889e-06
## ... Similar to previous best
## Run 10 stress 0.2180867
## Run 11 stress 0.1559725
## ... Procrustes: rmse 1.672387e-06 max resid 5.177526e-06
## ... Similar to previous best
## Run 12 stress 0.1730959
## Run 13 stress 0.1573886
## Run 14 stress 0.1786679
## Run 15 stress 0.1743372
## Run 16 stress 0.1559725
## ... Procrustes: rmse 2.800454e-06 max resid 8.588841e-06
## ... Similar to previous best
## Run 17 stress 0.1573888
## Run 18 stress 0.1786678
## Run 19 stress 0.2245603
## Run 20 stress 0.1559725
## ... Procrustes: rmse 1.840165e-06 max resid 8.698617e-06
## ... Similar to previous best
## *** Best solution repeated 4 times
NMDSmodel
##
## Call:
## metaMDS(comm = RE2, distance = "bray", trymax = 200)
##
## global Multidimensional Scaling using monoMDS
##
## Data: RE2
## Distance: bray
##
## Dimensions: 2
## Stress: 0.1559725
## Stress type 1, weak ties
## Best solution was repeated 4 times in 20 tries
## The best solution was from try 9 (random start)
## Scaling: centring, PC rotation, halfchange scaling
## Species: expanded scores based on 'RE2'
plot(NMDSmodel)
get datascores
data.scores<-vegan::scores(NMDSmodel,display="sites")
data.scores<- as.data.frame(data.scores)
add columns back in
colnames(Field_data_wide)
## [1] "Station_unique" "Site"
## [3] "Sample.Year" "Location"
## [5] "Sample.Month" "jelly_biomass"
## [7] "Smean" "Omean"
## [9] "Tmean" "pHmean"
## [11] "Fmean" "PO4"
## [13] "SiOH4" "NO3"
## [15] "NO2" "NH4"
## [17] "CALANOIDA_Medium" "AETIDEUS_Female, Adult"
## [19] "JELLYFISHES_Ephyra" "BARNACLES_Cyprid larva"
## [21] "BARNACLES_Nauplius" "BIVALVIA_Veliger"
## [23] "BRACHYURA_Unknown" "BRYOZOA_Cyphonaut"
## [25] "CALANOIDA_Copepodite" "CALANOIDA_Large"
## [27] "CALANOIDA_Small" "CALANUS PACIFICUS"
## [29] "CENTROPAGES_Female, Adult" "Chaet/Euphaus Egg_Egg"
## [31] "CHAETOGNATHA_Unknown" "CLADOCERA_Unknown"
## [33] "COPEPODA_Nauplius" "CRABS_Megalopa"
## [35] "CRABS_Zoea" "DITRICHOCORYCAEUS ANGLICUS"
## [37] "ECHINODERMATA_Pluteus larva" "EUPHAUSIIDAE_Calyptopis"
## [39] "EUPHAUSIIDAE_Furcilia" "EUPHAUSIIDAE_Nauplius"
## [41] "FISH_Egg" "FISH_Larva"
## [43] "GAETANUS_Adult" "GAMMARIDEA_Unknown"
## [45] "GASTROPODA_Veliger" "HARPACTICOIDA_Unknown"
## [47] "HYPERIIDEA_Unknown" "Insecta_Unknown"
## [49] "JELLYFISHES_Medusa" "LARVACEA_Unknown"
## [51] "LITTORINA_Egg" "METRIDIA_Female, Adult"
## [53] "OITHONA_Unknown" "POLYCHAETA_Unknown"
## [55] "SHRIMP_Unknown" "Siphonophore"
## [57] "TORTANUS DISCAUDATUS_Adult" "UNKNOWN_Larva"
data.scores$Sample.Year = Field_data_wide$Sample.Year
data.scores$Sample.Month = Field_data_wide$Sample.Month
data.scores$Site = Field_data_wide$Site
data.scores$Location = Field_data_wide$Location
data.scores$jelly_biomass = Field_data_wide$jelly_biomass
data.scores$Location = Field_data_wide$Location
data.scores$NO3 = Field_data_wide$NO3
data.scores$PO4 = Field_data_wide$PO4
data.scores$SiOH4 = Field_data_wide$SiOH4
data.scores$NO2 = Field_data_wide$NO2
data.scores$NH4 = Field_data_wide$NH4
data.scores$Tmean = Field_data_wide$Tmean
data.scores$Fmean = Field_data_wide$Fmean
data.scores$Omean = Field_data_wide$Omean
data.scores$pHmean = Field_data_wide$pHmean
data.scores$Smean = Field_data_wide$Smean
plot data scores
site <- ggplot(data.scores, aes(x = NMDS1, y = NMDS2,colour = Site)) +
labs(title="Experiments")+stat_ellipse()+geom_point(aes(colour = Site))+theme_bw()+theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
site
create environmetal fit table
colnames(Field_data_wide)
## [1] "Station_unique" "Site"
## [3] "Sample.Year" "Location"
## [5] "Sample.Month" "jelly_biomass"
## [7] "Smean" "Omean"
## [9] "Tmean" "pHmean"
## [11] "Fmean" "PO4"
## [13] "SiOH4" "NO3"
## [15] "NO2" "NH4"
## [17] "CALANOIDA_Medium" "AETIDEUS_Female, Adult"
## [19] "JELLYFISHES_Ephyra" "BARNACLES_Cyprid larva"
## [21] "BARNACLES_Nauplius" "BIVALVIA_Veliger"
## [23] "BRACHYURA_Unknown" "BRYOZOA_Cyphonaut"
## [25] "CALANOIDA_Copepodite" "CALANOIDA_Large"
## [27] "CALANOIDA_Small" "CALANUS PACIFICUS"
## [29] "CENTROPAGES_Female, Adult" "Chaet/Euphaus Egg_Egg"
## [31] "CHAETOGNATHA_Unknown" "CLADOCERA_Unknown"
## [33] "COPEPODA_Nauplius" "CRABS_Megalopa"
## [35] "CRABS_Zoea" "DITRICHOCORYCAEUS ANGLICUS"
## [37] "ECHINODERMATA_Pluteus larva" "EUPHAUSIIDAE_Calyptopis"
## [39] "EUPHAUSIIDAE_Furcilia" "EUPHAUSIIDAE_Nauplius"
## [41] "FISH_Egg" "FISH_Larva"
## [43] "GAETANUS_Adult" "GAMMARIDEA_Unknown"
## [45] "GASTROPODA_Veliger" "HARPACTICOIDA_Unknown"
## [47] "HYPERIIDEA_Unknown" "Insecta_Unknown"
## [49] "JELLYFISHES_Medusa" "LARVACEA_Unknown"
## [51] "LITTORINA_Egg" "METRIDIA_Female, Adult"
## [53] "OITHONA_Unknown" "POLYCHAETA_Unknown"
## [55] "SHRIMP_Unknown" "Siphonophore"
## [57] "TORTANUS DISCAUDATUS_Adult" "UNKNOWN_Larva"
Zoo.env <- data.frame(matrix(ncol = 0, nrow=43))
Zoo.env$PO4<-as.numeric(data.scores$PO4)
Zoo.env$SiOH4<-as.numeric(data.scores$SiOH4)
Zoo.env$NO3<-as.numeric(data.scores$NO3)
Zoo.env$NO2<-as.numeric(data.scores$NO2)
Zoo.env$NH4<-as.numeric(data.scores$NH4)
Zoo.env$Temp<-data.scores$Tmean
Zoo.env$pH<-data.scores$pHmean
Zoo.env$Chla<-data.scores$Fmean
Zoo.env$DO<-data.scores$Omean
Zoo.env$Salinity<-data.scores$Smean
env <- envfit(NMDSmodel, Zoo.env, na.rm = TRUE,perm = 999)
env
##
## ***VECTORS
##
## NMDS1 NMDS2 r2 Pr(>r)
## PO4 -0.44398 -0.89604 0.3729 0.001 ***
## SiOH4 -0.76676 -0.64194 0.5566 0.001 ***
## NO3 0.96481 0.26295 0.0757 0.222
## NO2 0.98821 -0.15311 0.0378 0.504
## NH4 0.64489 -0.76427 0.3379 0.001 ***
## Temp -0.72772 -0.68588 0.4650 0.001 ***
## pH -0.61640 0.78744 0.1014 0.110
## Chla -0.42908 -0.90327 0.0883 0.151
## DO -0.37501 0.92702 0.0035 0.933
## Salinity 0.92168 0.38795 0.4324 0.001 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
arrow_factor <- ordiArrowMul(env)
env.scrs <- as.data.frame(vegan::scores(env, display = "vectors")) * arrow_factor
env.scrs <- cbind(env.scrs, Species = rownames(env.scrs), Pvalues = env$vectors$pvals, R_squared = env$vectors$r)
env.scrs <- subset(env.scrs, Pvalues < 0.05)
env.scrs
## NMDS1 NMDS2 Species Pvalues R_squared
## PO4 -0.3355157 -0.6771293 PO4 0.001 0.3729146
## SiOH4 -0.7078935 -0.5926545 SiOH4 0.001 0.5565902
## NH4 0.4638809 -0.5497550 NH4 0.001 0.3378751
## Temp -0.6141024 -0.5787971 Temp 0.001 0.4650228
## Salinity 0.7500000 0.3156856 Salinity 0.001 0.4323919
extract hulls
BUDD <- data.scores[data.scores$Site == "BUDD", ][chull(data.scores[data.scores$Site ==
"BUDD", c("NMDS1", "NMDS2")]), ]
ELD <- data.scores[data.scores$Site == "ELD", ][chull(data.scores[data.scores$Site ==
"ELD", c("NMDS1", "NMDS2")]), ]
QM <- data.scores[data.scores$Site == "QM", ][chull(data.scores[data.scores$Site ==
"QM", c("NMDS1", "NMDS2")]), ]
SC <- data.scores[data.scores$Site == "SC", ][chull(data.scores[data.scores$Site ==
"SC", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(BUDD, ELD, QM,SC) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Sample.Year Sample.Month Site Location
## 9 -0.17400779 -0.273598675 2020 Aug BUDD OB
## 6 -0.24452433 -0.345284175 2020 Aug BUDD OS
## 8 -0.43885781 -0.369995917 2020 Aug BUDD OS
## 4 -0.59844925 -0.333457290 2021 Aug BUDD OS
## 7 -0.41589361 0.174444634 2020 Aug BUDD OS
## 2 -0.17591681 -0.215335337 2020 Aug BUDD OS
## 10 -0.19023528 -0.262585290 2020 Aug ELD OB
## 15 -0.30529169 -0.307374493 2020 Aug ELD OS
## 14 -0.24889129 0.024054925 2020 Aug ELD OS
## 11 -0.19857227 0.096906158 2020 Aug ELD OS
## 13 -0.16263327 0.074507217 2020 Aug ELD OS
## 16 -0.14791343 -0.033051784 2020 Aug ELD OS
## 26 0.46728980 0.074965303 2020 Aug QM IN
## 24 0.16079304 -0.271423114 2020 Aug QM OS
## 19 -0.10182866 0.149197354 2021 Aug QM OB
## 29 -0.12875981 0.546351703 2021 Aug QM IN
## 20 0.52091223 0.169899719 2020 Aug QM IN
## 34 0.57037399 -0.245648153 2021 Aug SC IN
## 37 0.54417077 -0.341982643 2021 Aug SC IN
## 35 0.16666202 -0.099170145 2021 Aug SC OS
## 36 0.02310567 -0.001606152 2021 Aug SC OS
## 43 0.12938352 -0.006267564 2021 Aug SC OB
## 40 0.47995655 -0.094050052 2021 Aug SC IN
## jelly_biomass NO3 PO4 SiOH4 NO2 NH4 Tmean Fmean Omean
## 9 1.00 4.05 1.59 41.77 0.23 0.88 15.83885 4.749887 8.552275
## 6 1.00 0.39 1.49 47.29 0.04 0.27 16.56028 2.737618 5.469788
## 8 1.00 0.11 1.44 46.81 0.02 0.77 16.52514 4.755962 5.304376
## 4 1.00 0.06 1.47 46.39 0.01 0.21 16.04135 14.829841 7.300433
## 7 1.00 0.07 1.48 41.13 0.02 0.17 17.64788 12.125550 12.115514
## 2 1.00 0.44 1.20 39.95 0.05 0.22 15.53064 9.571747 8.389519
## 10 1.00 0.43 1.35 45.96 0.05 0.17 16.80637 10.387434 9.303687
## 15 1.00 0.09 1.84 55.11 0.01 1.28 17.75457 32.129292 9.130868
## 14 1.00 0.04 1.49 50.95 0.02 0.07 17.06234 9.416085 8.569962
## 11 1.00 0.12 1.31 47.42 0.02 0.18 17.41564 8.784905 11.467702
## 13 1.00 0.12 1.49 44.43 0.03 0.11 16.58672 15.144218 9.412461
## 16 1.00 0.10 2.05 44.88 0.04 0.14 17.39969 9.509445 6.261818
## 26 750.91 0.12 0.58 31.48 0.03 0.34 14.64915 12.076774 9.704596
## 24 1.00 0.05 0.57 31.11 0.02 0.09 15.24269 10.432785 10.927995
## 19 1.00 1.30 0.83 31.12 0.17 0.00 14.00923 6.493828 7.992795
## 29 157.51 0.21 0.45 35.62 0.01 0.00 15.41718 8.036462 8.324053
## 20 585.74 0.68 0.79 35.04 0.11 0.17 14.89302 9.547998 9.608995
## 34 535.71 3.03 1.30 23.89 0.20 1.13 14.74759 7.658819 5.678630
## 37 49.03 3.53 1.21 44.94 0.24 2.81 15.04160 13.435548 7.115272
## 35 1.00 8.79 1.62 32.88 0.35 1.32 14.62790 1.789107 7.250949
## 36 1.00 13.40 1.86 34.06 0.41 1.29 14.17569 1.450932 6.755145
## 43 1.00 10.51 1.67 32.74 0.36 1.17 14.45317 1.979085 7.252958
## 40 1383.86 4.09 1.33 33.65 0.27 1.15 15.36779 9.509776 9.398083
## pHmean Smean
## 9 8.405864 29.44947
## 6 8.623171 29.23359
## 8 8.529213 29.20804
## 4 8.234621 29.36213
## 7 9.359744 28.41428
## 2 8.337510 29.46414
## 10 8.557729 29.37036
## 15 8.457278 29.22018
## 14 9.068842 29.26878
## 11 9.088341 28.59893
## 13 9.102089 29.33763
## 16 8.854672 28.56580
## 26 8.572626 29.71244
## 24 8.686565 29.69010
## 19 8.672591 29.87442
## 29 8.787757 29.67637
## 20 8.511859 29.71562
## 34 8.490383 29.81246
## 37 8.630169 29.78088
## 35 8.624405 29.90188
## 36 8.585192 29.96481
## 43 8.604166 29.93015
## 40 8.751158 29.75891
make plot
zoop_inlet<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Site,group=Site),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Site,colour=Site),size=1) + # add the point markers
scale_colour_manual(labels = c("Budd Inlet","Eld Inlet", "Quartermaster Harbor","Sinclair Inlet"),values=c("#619CFF", "#F8766D","#00BA38","#C77CFF")) +
scale_fill_manual(labels = c("Budd Inlet","Eld Inlet", "Quartermaster Harbor","Sinclair Inlet"),values=c("#619CFF", "#F8766D","#00BA38","#C77CFF"))+
scale_shape_manual(labels = c("Budd Inlet","Eld Inlet", "Quartermaster Harbor","Sinclair Inlet"),values=c(16, 18,17,15))+
coord_equal() +
theme_bw() +
ylim(-1,1)+
xlim(-1,1)+
theme(legend.key.size = unit(2, 'mm'))+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
# remove y-axis labels
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=5),
legend.title = element_text(size=7),legend.position=c(0.81, 0.82))+
geom_segment(data = env.scrs,size=0.2,
aes(x = 0, xend = NMDS1, y = 0, yend = NMDS2),
arrow = arrow(length = unit(0.08, "cm")), colour = "black")+
geom_label_repel(data = env.scrs, aes(x = NMDS1, y = NMDS2, label = Species),
size = 1.8, fontface="bold", fill="white", label.padding = unit(0.15, "lines"), box.padding = unit(0.16, "lines"), label.size = 0.05)+
annotate("text", label = "2D Stress: 0.16", x = 0.62, y = 1, size = 2.5, colour = "black")+
annotate("text",x=-0.95, y=0.95, label= "a",size=6)+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))
zoop_inlet
load raw biovolume data - make sure to read without headers for easier wrangling in the future
data_2019 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Microplankton/Microplankton_biovolume_2019.csv", header=FALSE)
data_2020 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Microplankton/Microplankton_biovolume_2020.csv", header=FALSE)
data_Jul_2021 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Microplankton/Microplankton_biovolume_July_2021.csv", header=FALSE)
data_Aug_2021 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Microplankton/Microplankton_biovolume_August_2021.csv", header=FALSE)
reformat dataframe
#remove first row
data_2019_reformat <- data_2019[-(1),]
#make first row column names
data_2019_reformat<-data_2019_reformat %>%
row_to_names(row_number = 1)
#wide to long format
data_2019_reformat<-data_2019_reformat %>%
melt(id.vars=c(1:9))
subset
data_2019_reformat<-subset(data_2019_reformat,Type=="Field")
#remove unnecessary columns
data_2019_reformat <- data_2019_reformat[, -c(2,4,6:8)]
reformat
#split date and time into two columns
data_2019_reformat[c('Date', 'Time')] <- str_split_fixed(data_2019_reformat$COLLECTDATE, ' ', 2)
data_2019_reformat <- data_2019_reformat[, -c(4)]
#add month
data_2019_reformat<-data_2019_reformat %>%
mutate(Month = case_when(
startsWith(Date, "9") ~ "Sep",
startsWith(Date, "8") ~ "Aug"
))
#rename columns
colnames(data_2019_reformat)[1] ="Station"
colnames(data_2019_reformat)[2] ="Inlet"
colnames(data_2019_reformat)[3] ="Location"
colnames(data_2019_reformat)[4] ="taxa"
colnames(data_2019_reformat)[5] ="biovolume"
#add year
data_2019_reformat$Year="2019"
#reorder columns
data_2019_reformat <- data_2019_reformat[, c(1,2, 3,9, 7,8,6, 4,5)]
#recode location
data_2019_reformat$Location <- gsub("Out of smack", "OS", data_2019_reformat$Location)
data_2019_reformat$Location <- gsub("In smack", "IN", data_2019_reformat$Location)
data_2019_reformat$Location <- gsub("Outside bay", "OB", data_2019_reformat$Location)
#recode inlets
data_2019_reformat$Inlet <- gsub("Quartermaster", "QM", data_2019_reformat$Inlet)
data_2019_reformat$Inlet <- gsub("Sinclair", "SC", data_2019_reformat$Inlet)
rename stations *I matched the code names to station numbers using recorded times and
data_2019_reformat$Station <-recode(data_2019_reformat$Station,
'L73161-1'='QM1',
'L73161-2'='QM3',
'L73161-3'='QM5',
'L73161-4'='QM2',
'L73263-1'='SC1',
'L73263-2'='SC3',
'L73263-3'='SC5')
remove incomplete rows
data_2019_reformat <- data_2019_reformat[-which(data_2019_reformat$biovolume == ""), ]
reformat dataframe
#remove excess rows at bottom of dataframe
data_2020_reformat <- data_2020[-(27:1000),]
#remove first row
data_2020_reformat <- data_2020_reformat[-(1),]
#make first row column names
data_2020_reformat<-data_2020_reformat %>%
row_to_names(row_number = 1)
#wide to long format
data_2020_reformat<-data_2020_reformat %>%
melt(id.vars=c(1:4))
remove unnecessary columns
data_2020_reformat <- data_2020_reformat[, -c(1,2)]
rename stations
data_2020_reformat$Station <-recode(data_2020_reformat$Station,
'Budd 1S'='BUDD1s',
'Budd 2C'='BUDD2a',
'Budd 2S'='BUDD2s',
'Budd 3C'='BUDD3',
'Budd 3S'='BUDD3s',
'Budd 4C'='BUDD4',
'Budd 4S'='BUDD4s',
'Budd 5C'='BUDD5',
'Budd 7C'='BUDD7',
'Eld 1C'='Eld1',
'Eld 1S'='Eld1s',
'Eld 2C'='Eld2',
'Eld 2S'='Eld2s',
'Eld 3C'='Eld3',
'Eld 3S'='Eld3s',
'Eld 4C'='Eld4',
'Eld 4S'='Eld4s',
'Eld 5C'='Eld5',
'Qmaster 3C'='QM3a',
'Qmaster 4C'='QM4a',
'Qmaster 5C'='QM5a',
'Qmaster 7C'='QM7a',
'Qmaster 8C'='QM8a',
'Totten 1S'='Totten'
)
list of station names from database
#subset
FieldData<-subset(Database, Trial.Type=="Field")
#remove commas from jelly density
FieldData$Jelly.Density <- as.numeric(gsub(",","",FieldData$Jelly.Density..g.m3.))
Stations<-FieldData %>%
group_by(Site,Location,Station,Sample.Date,Sample.Time,Sample.Year,Latitude, Longitude)%>%
summarise(jelly_biomass=mean(Jelly.Density))
add inlet and location
#Inlet
data_2020_reformat$Inlet <- Stations$Site[match(data_2020_reformat$Station, Stations$Station)]
data_2020_reformat$Location <- Stations$Location[match(data_2020_reformat$Station, Stations$Station)]
reformat
#split date and time into two columns
data_2020_reformat[c('Date', 'Time')] <- str_split_fixed(data_2020_reformat$COLLECTDATE, ' ', 2)
data_2020_reformat <- data_2020_reformat[, -c(2)]
#add month
data_2020_reformat<-data_2020_reformat %>%
mutate(Month = case_when(
startsWith(Date, "9") ~ "Sep",
startsWith(Date, "8") ~ "Aug",
startsWith(Date,"7") ~ "Jul"
))
#add year
data_2020_reformat$Year="2020"
#remove station
data_2020_reformat <- data_2020_reformat[, -c(1)]
#rename columns
colnames(data_2020_reformat)[1] ="taxa"
colnames(data_2020_reformat)[2] ="biovolume"
#reorder columns
data_2020_reformat <- data_2020_reformat[, c(3,4,5,9,7,8,6,1,2)]
remove incomplete rows
data_2020_reformat <- data_2020_reformat[-which(data_2020_reformat$biovolume == ""), ]
data_2020_reformat<-data_2020_reformat[complete.cases(data_2020_reformat),]
2021 data July
#remove first row
data_2021_Jul_reformat <- data_Jul_2021[-(1),]
#make first row column names
data_2021_Jul_reformat<-data_2021_Jul_reformat %>%
row_to_names(row_number = 1)
#wide to long format
data_2021_Jul_reformat<-data_2021_Jul_reformat %>%
melt(id.vars=c(1:2))
Aug
#remove first row
data_2021_Aug_reformat <- data_Aug_2021[-(1),]
#make first row column names
data_2021_Aug_reformat<-data_2021_Aug_reformat %>%
row_to_names(row_number = 1)
#wide to long format
data_2021_Aug_reformat<-data_2021_Aug_reformat %>%
melt(id.vars=c(1:2))
I decided only to use August samples (because of poor-quality samples in July)
data_2021_reformat<-rbind(data_2021_Aug_reformat,data_2021_Jul_reformat)
match with stations
#import data
Stations_2021 <- read.csv("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/data/current_data/Microplankton/Microplankton_2021_Stations.csv")
data_2021_reformat$Station <- Stations_2021$Station[match(data_2021_reformat$LABSAMPLENUM, Stations_2021$Sample_num)]
rename stations
data_2021_reformat$Station <-recode(data_2021_reformat$Station,
'QM 10'='QM10',
'QM 5'='QM5c',
'QM 6'='QM6c',
'QM 8'='QM8c',
'QM 9'='QM9',
'QMH 1'='QM1',
'QMH 3'='QM3',
'QMH 5'='QM5',
'SC 4'='SC4c',
'SC 5'='SC5d',
'SC 6'='SC6c',
'SC 7'='SC7',
'SC 8'='SC8',
'Sinclair 1'='SC1a',
'Sinclair 3'='SC3a',
'Sinclair 6'='SC6a'
)
remove old station column
data_2021_reformat <- data_2021_reformat[, -c(1)]
add inlet and location
#Inlet
data_2021_reformat$Inlet <- Stations$Site[match(data_2021_reformat$Station, Stations$Station)]
data_2021_reformat$Location <- Stations$Location[match(data_2021_reformat$Station, Stations$Station)]
reformat
#split date and time into two columns
data_2021_reformat[c('Date', 'Time')] <- str_split_fixed(data_2021_reformat$COLLECTDATE, ' ', 2)
data_2021_reformat <- data_2021_reformat[, -c(1)]
#add month
data_2021_reformat<-data_2021_reformat %>%
mutate(Month = case_when(
startsWith(Date, "9") ~ "Sep",
startsWith(Date, "8") ~ "Aug",
startsWith(Date,"7") ~ "Jul"
))
#add year
data_2021_reformat$Year="2021"
#rename columns
colnames(data_2021_reformat)[1] ="taxa"
colnames(data_2021_reformat)[2] ="biovolume"
#reorder columns
data_2021_reformat <- data_2021_reformat[, c(3,4,5,9,7,8,6,1,2)]
remove incomplete rows
data_2021_reformat <- data_2021_reformat[-which(data_2021_reformat$biovolume == ""), ]
data_2021_reformat <- data_2021_reformat[complete.cases(data_2021_reformat), ]
Microplankton<-rbind(data_2019_reformat,data_2020_reformat,data_2021_reformat)
Field_data_merged <- merge(Microplankton,CTD_Nutrients_full,by.x = "Station",by.y="Station_unique", all.x = TRUE)
remove rows without environmental data
Field_data_env<-Field_data_merged[complete.cases(Field_data_merged), ]
Convert from long to wide format
colnames(Field_data_env)
## [1] "Station" "Inlet" "Location" "Year" "Time" "Month"
## [7] "Date" "taxa" "biovolume" "Station.y" "Smean" "Smin"
## [13] "Smax" "Ssd" "Omean" "Omin" "Omax" "Osd"
## [19] "Tmean" "Tmin" "Tmax" "Tsd" "pHmean" "pHmin"
## [25] "pHmax" "pHsd" "Fmean" "Fmin" "Fmax" "Fsd"
## [31] "PO4" "SiOH4" "NO3" "NO2" "NH4"
Field_data_wide<-dcast(Field_data_env, Station+Inlet+Year+Location+Month+Smean+Omean+Tmean+pHmean+Fmean+PO4+SiOH4+NO3+NO2+NH4~ taxa,value.var = "biovolume")
remove non-data columns, convert to proportions, and arcsine sqrt transformation
Field_data_wide$Inlet=as.factor(Field_data_wide$Inlet)
RE2<- Field_data_wide[,16:ncol(Field_data_wide)]
#replace N/A with 0
RE2[is.na(RE2)] <- 0
#convert to numeric
RE2 <- RE2 %>% mutate_at(1:53, as.numeric)
#convert to proportions
RE2<-RE2/rowSums(RE2)
#arcsine sqrt transformation
RE2<-asin(sqrt(RE2))
RE3<-as.matrix(RE2)
dist<-vegdist(RE2, method='bray')
dist
## 1 2 3 4 5 6 7
## 2 0.2835093
## 3 0.4022661 0.2536224
## 4 0.4433241 0.5251578 0.4137488
## 5 0.4628355 0.4881481 0.4148274 0.3123996
## 6 0.2792134 0.2826859 0.3183279 0.3959428 0.4374215
## 7 0.5471741 0.6665270 0.6449242 0.4476980 0.3451584 0.5668680
## 8 0.5802150 0.5429246 0.4522873 0.3453668 0.4934362 0.5161665 0.6418739
## 9 0.3722543 0.3084771 0.3544986 0.4974420 0.4845630 0.3715986 0.6347333
## 10 0.4319293 0.4796643 0.3801526 0.4292610 0.3953649 0.4489907 0.5907500
## 11 0.2960793 0.3168393 0.3360163 0.4106901 0.4394444 0.3025671 0.5688022
## 12 0.2673996 0.2765162 0.2699544 0.4406026 0.4456738 0.3054857 0.6001599
## 13 0.3678063 0.2608733 0.2213643 0.4483110 0.4307482 0.3046521 0.6173860
## 14 0.3128380 0.1812783 0.3733253 0.5617776 0.6116463 0.2999837 0.6969105
## 15 0.3421551 0.2861322 0.2655608 0.4638314 0.4476535 0.3340602 0.6363579
## 16 0.7328427 0.8302501 0.8126487 0.7433998 0.7237487 0.8263733 0.7807591
## 17 0.6437090 0.6564408 0.5837285 0.4383463 0.5760430 0.6200226 0.7081169
## 18 0.6516186 0.6191240 0.6361413 0.5729103 0.5825978 0.6453632 0.6847633
## 19 0.6471093 0.6319474 0.5663056 0.5029863 0.5455918 0.6120172 0.6882223
## 20 0.7163929 0.8468520 0.8151784 0.7317724 0.7108231 0.8198320 0.7420621
## 21 0.7280469 0.8478319 0.8075338 0.7367995 0.7557482 0.8343586 0.7323272
## 22 0.5679799 0.5507830 0.5540738 0.4982471 0.4808312 0.5658028 0.6499347
## 23 0.6568460 0.6258438 0.5243446 0.5625907 0.5471532 0.6619162 0.6796746
## 24 0.7507916 0.8340036 0.8020014 0.7276576 0.7299394 0.8010940 0.7350500
## 25 0.7101690 0.7383110 0.6932979 0.7314379 0.6379466 0.7906359 0.7371772
## 26 0.5687431 0.5635009 0.5026260 0.5538449 0.5108737 0.5777808 0.6732385
## 27 0.5919732 0.5698930 0.5602448 0.5892107 0.5339290 0.6256560 0.7310100
## 28 0.6917583 0.6593027 0.5840605 0.6623454 0.5842569 0.7142276 0.7115555
## 8 9 10 11 12 13 14
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9 0.3517135
## 10 0.3655783 0.4237822
## 11 0.4182331 0.2419642 0.4014312
## 12 0.4528588 0.3115909 0.3893857 0.3028477
## 13 0.4187520 0.2770470 0.3218632 0.2773330 0.2330670
## 14 0.5421401 0.3284278 0.5494317 0.3248171 0.3046764 0.3184443
## 15 0.4557511 0.2974480 0.3423567 0.3230771 0.2919002 0.1612898 0.3966616
## 16 0.6346867 0.6994928 0.6388191 0.7086950 0.7268541 0.7472742 0.8477561
## 17 0.3413255 0.5490683 0.4541654 0.5239749 0.5978644 0.5207562 0.7126546
## 18 0.4481092 0.4936505 0.5357774 0.4713578 0.6027040 0.5992461 0.6594413
## 19 0.3938958 0.5126521 0.4425126 0.4418894 0.5497372 0.5463053 0.6706367
## 20 0.6753500 0.6942321 0.6158245 0.7357465 0.7335589 0.7616957 0.8897452
## 21 0.6344484 0.7176901 0.6476329 0.7232073 0.7063881 0.7646246 0.8578169
## 22 0.4128565 0.4174665 0.4967956 0.4179520 0.5072772 0.5206158 0.6174019
## 23 0.4181977 0.5324818 0.5034694 0.5063635 0.5151309 0.5318538 0.6726349
## 24 0.6668907 0.7002962 0.6173817 0.7588942 0.7535184 0.7624517 0.8575730
## 25 0.6948938 0.6752698 0.6082165 0.6838646 0.7366737 0.6374762 0.8174478
## 26 0.5416611 0.5631356 0.4405792 0.5138768 0.5607210 0.4649592 0.6369335
## 27 0.5725848 0.5576540 0.5312727 0.5295620 0.5770912 0.5547784 0.6189791
## 28 0.6137689 0.6272247 0.5902281 0.6256446 0.6351674 0.5802760 0.7668549
## 15 16 17 18 19 20 21
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16 0.7230106
## 17 0.5260922 0.5680286
## 18 0.5680171 0.6024476 0.3038750
## 19 0.5586005 0.5922184 0.2266748 0.2181010
## 20 0.7281707 0.3677178 0.6511100 0.6841237 0.6517752
## 21 0.7537381 0.3099743 0.5851897 0.5799960 0.5967391 0.4203620
## 22 0.4752896 0.6186037 0.3210259 0.2298007 0.2518810 0.6926990 0.6556961
## 23 0.5670722 0.6961606 0.3457832 0.2623563 0.2764905 0.7521812 0.6700302
## 24 0.7417337 0.3100925 0.6152549 0.6448093 0.6254478 0.3333600 0.3406361
## 25 0.6017609 0.6865585 0.5315697 0.4848176 0.5246755 0.7122829 0.7628314
## 26 0.4158992 0.7236132 0.5454236 0.4945140 0.5541100 0.7731128 0.7191876
## 27 0.5382618 0.7453462 0.5911548 0.4770680 0.5678338 0.7936614 0.7389165
## 28 0.5622309 0.6955483 0.4436715 0.4177974 0.4588373 0.7526371 0.6964428
## 22 23 24 25 26 27
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23 0.2741336
## 24 0.6573938 0.7209077
## 25 0.4610717 0.5267577 0.7351678
## 26 0.4714846 0.5322208 0.7407831 0.3507045
## 27 0.4628805 0.5682944 0.8018350 0.3573524 0.2028592
## 28 0.4030441 0.4497730 0.7256330 0.2665378 0.3185171 0.3520307
perm<-adonis2(dist~Inlet, data=Field_data_wide, permutations = 999, method="bray")
perm
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 999
##
## adonis2(formula = dist ~ Inlet, data = Field_data_wide, permutations = 999, method = "bray")
## Df SumOfSqs R2 F Pr(>F)
## Inlet 3 2.0872 0.47416 7.2138 0.001 ***
## Residual 24 2.3147 0.52584
## Total 27 4.4019 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check pairwise differences
adonis.pair(vegdist(RE2),Field_data_wide$Inlet)
## combination SumsOfSqs MeanSqs F.Model R2 P.value
## 1 BUDD <-> ELD 0.1505280 0.1505280 1.813845 0.1224426 0.091908092
## 2 BUDD <-> QM 0.9757881 0.9757881 7.983252 0.3473509 0.000999001
## 3 BUDD <-> SC 0.7343968 0.7343968 8.235777 0.4516274 0.003996004
## 4 ELD <-> QM 0.9350049 0.9350049 9.198973 0.3965250 0.000999001
## 5 ELD <-> SC 0.7051046 0.7051046 13.185910 0.5943371 0.003996004
## 6 QM <-> SC 0.6205231 0.6205231 5.523083 0.3342647 0.000999001
## P.value.corrected
## 1 0.091908092
## 2 0.001998002
## 3 0.004795205
## 4 0.001998002
## 5 0.004795205
## 6 0.001998002
BUDD and ELD are the same, all others are different
check for dispersion
Micro.bd <- betadisper(dist, Field_data_wide$Inlet)
Micro.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Inlet)
##
## No. of Positive Eigenvalues: 20
## No. of Negative Eigenvalues: 7
##
## Average distance to median:
## BUDD ELD QM SC
## 0.2971 0.2088 0.3397 0.1902
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 27 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.6419 0.9194 0.4855 0.4320 0.2309 0.1604 0.1361 0.1074
anova(Micro.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 3 0.10091 0.033636 4.5917 0.01119 *
## Residuals 24 0.17581 0.007325
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
permutest(Micro.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 3 0.10091 0.033636 4.5917 999 0.01 **
## Residuals 24 0.17581 0.007325
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
p is significant, meaning that there are differences in dispersion
NMDSmodel <- metaMDS(RE2, distance = "bray",trymax = 200)
## Run 0 stress 0.1087171
## Run 1 stress 0.1087171
## ... Procrustes: rmse 5.17028e-07 max resid 1.134089e-06
## ... Similar to previous best
## Run 2 stress 0.1087171
## ... Procrustes: rmse 2.105742e-06 max resid 4.198858e-06
## ... Similar to previous best
## Run 3 stress 0.1086786
## ... New best solution
## ... Procrustes: rmse 0.006118965 max resid 0.02300832
## Run 4 stress 0.1344413
## Run 5 stress 0.1087171
## ... Procrustes: rmse 0.006118654 max resid 0.02297508
## Run 6 stress 0.1087171
## ... Procrustes: rmse 0.006119202 max resid 0.02297295
## Run 7 stress 0.1087171
## ... Procrustes: rmse 0.006119125 max resid 0.0229738
## Run 8 stress 0.172659
## Run 9 stress 0.1086786
## ... Procrustes: rmse 2.182551e-06 max resid 8.068815e-06
## ... Similar to previous best
## Run 10 stress 0.1087171
## ... Procrustes: rmse 0.006118702 max resid 0.02298904
## Run 11 stress 0.1745059
## Run 12 stress 0.1087171
## ... Procrustes: rmse 0.006118755 max resid 0.02298736
## Run 13 stress 0.1344413
## Run 14 stress 0.1086786
## ... Procrustes: rmse 2.803838e-06 max resid 8.507427e-06
## ... Similar to previous best
## Run 15 stress 0.1087171
## ... Procrustes: rmse 0.006118481 max resid 0.02298035
## Run 16 stress 0.1087171
## ... Procrustes: rmse 0.006118809 max resid 0.02298234
## Run 17 stress 0.1087171
## ... Procrustes: rmse 0.006119007 max resid 0.02297975
## Run 18 stress 0.172659
## Run 19 stress 0.1086786
## ... Procrustes: rmse 3.142183e-06 max resid 8.703352e-06
## ... Similar to previous best
## Run 20 stress 0.1087171
## ... Procrustes: rmse 0.006119594 max resid 0.02298677
## *** Best solution repeated 3 times
NMDSmodel
##
## Call:
## metaMDS(comm = RE2, distance = "bray", trymax = 200)
##
## global Multidimensional Scaling using monoMDS
##
## Data: RE2
## Distance: bray
##
## Dimensions: 2
## Stress: 0.1086786
## Stress type 1, weak ties
## Best solution was repeated 3 times in 20 tries
## The best solution was from try 3 (random start)
## Scaling: centring, PC rotation, halfchange scaling
## Species: expanded scores based on 'RE2'
plot(NMDSmodel)
get datascores
data.scores<-vegan::scores(NMDSmodel,display="sites")
data.scores<- as.data.frame(data.scores)
add columns back in
colnames(Field_data_wide)
## [1] "Station" "Inlet" "Year"
## [4] "Location" "Month" "Smean"
## [7] "Omean" "Tmean" "pHmean"
## [10] "Fmean" "PO4" "SiOH4"
## [13] "NO3" "NO2" "NH4"
## [16] "Actinoptychus" "Akashiwo" "Asteromphalus"
## [19] "Cerataulina" "Ceratium" "Chaetoceros"
## [22] "Coscinodiscus" "Cylindrotheca" "Dictyocha"
## [25] "Dinophysis" "Ditylum" "Eucampia"
## [28] "Guinardia et al" "gymnodinioids" "Hemiaulus"
## [31] "Heterocapsa" "Heterosigma" "Katodinium"
## [34] "Lauderia/Detonula" "Mesodinium" "misc 10-25 um"
## [37] "misc 25-100 um" "misc >100 um" "misc ciliates"
## [40] "misc diatoms" "misc med/large dinos" "misc small dinos"
## [43] "misc zoo" "Nitzschia" "Noctiluca"
## [46] "Oxyphysis" "Pleurosigma" "Prorocentrum"
## [49] "Protoperidinium" "Pseudo-nitzschia" "Rhizosolenia"
## [52] "Scrippsiella" "Skeletonema" "Thalassionema"
## [55] "Thalassiosira" "Ebria" "Protoceratium"
## [58] "Torodinium" "copepods" "Helicostomella"
## [61] "misc cn ciliates" "misc larvae" "misc rd ciliates"
## [64] "nauplii" "Oikopleura" "small ciliates"
## [67] "Strombidium" "Tiarina"
data.scores$Year = Field_data_wide$Year
data.scores$Month = Field_data_wide$Month
data.scores$Inlet = Field_data_wide$Inlet
data.scores$Location = Field_data_wide$Location
data.scores$NO3 = Field_data_wide$NO3
data.scores$PO4 = Field_data_wide$PO4
data.scores$SiOH4 = Field_data_wide$SiOH4
data.scores$NO2 = Field_data_wide$NO2
data.scores$NH4 = Field_data_wide$NH4
data.scores$Tmean = Field_data_wide$Tmean
data.scores$Fmean = Field_data_wide$Fmean
data.scores$Omean = Field_data_wide$Omean
data.scores$pHmean = Field_data_wide$pHmean
data.scores$Smean = Field_data_wide$Smean
plot data scores
site <- ggplot(data.scores, aes(x = NMDS1, y = NMDS2,colour = Inlet)) +
labs(title="Experiments")+stat_ellipse()+geom_point(aes(colour = Inlet))+theme_bw()+theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))
site
create environmetal fit table
colnames(Field_data_wide)
## [1] "Station" "Inlet" "Year"
## [4] "Location" "Month" "Smean"
## [7] "Omean" "Tmean" "pHmean"
## [10] "Fmean" "PO4" "SiOH4"
## [13] "NO3" "NO2" "NH4"
## [16] "Actinoptychus" "Akashiwo" "Asteromphalus"
## [19] "Cerataulina" "Ceratium" "Chaetoceros"
## [22] "Coscinodiscus" "Cylindrotheca" "Dictyocha"
## [25] "Dinophysis" "Ditylum" "Eucampia"
## [28] "Guinardia et al" "gymnodinioids" "Hemiaulus"
## [31] "Heterocapsa" "Heterosigma" "Katodinium"
## [34] "Lauderia/Detonula" "Mesodinium" "misc 10-25 um"
## [37] "misc 25-100 um" "misc >100 um" "misc ciliates"
## [40] "misc diatoms" "misc med/large dinos" "misc small dinos"
## [43] "misc zoo" "Nitzschia" "Noctiluca"
## [46] "Oxyphysis" "Pleurosigma" "Prorocentrum"
## [49] "Protoperidinium" "Pseudo-nitzschia" "Rhizosolenia"
## [52] "Scrippsiella" "Skeletonema" "Thalassionema"
## [55] "Thalassiosira" "Ebria" "Protoceratium"
## [58] "Torodinium" "copepods" "Helicostomella"
## [61] "misc cn ciliates" "misc larvae" "misc rd ciliates"
## [64] "nauplii" "Oikopleura" "small ciliates"
## [67] "Strombidium" "Tiarina"
Zoo.env <- data.frame(matrix(ncol = 0, nrow=28))
Zoo.env$PO4<-as.numeric(data.scores$PO4)
Zoo.env$SiOH4<-as.numeric(data.scores$SiOH4)
Zoo.env$NO3<-as.numeric(data.scores$NO3)
Zoo.env$NO2<-as.numeric(data.scores$NO2)
Zoo.env$NH4<-as.numeric(data.scores$NH4)
Zoo.env$Temp<-data.scores$Tmean
Zoo.env$pH<-data.scores$pHmean
Zoo.env$Chla<-data.scores$Fmean
Zoo.env$DO<-data.scores$Omean
Zoo.env$Salinity<-data.scores$Smean
env <- envfit(NMDSmodel, Zoo.env, na.rm = TRUE,perm = 999)
env
##
## ***VECTORS
##
## NMDS1 NMDS2 r2 Pr(>r)
## PO4 -0.99955 0.03013 0.4590 0.003 **
## SiOH4 -0.74445 0.66768 0.6722 0.001 ***
## NO3 0.38325 -0.92365 0.4131 0.002 **
## NO2 0.35075 -0.93647 0.4429 0.002 **
## NH4 -0.03932 -0.99923 0.2414 0.026 *
## Temp -0.77580 0.63098 0.6763 0.001 ***
## pH -0.51197 0.85901 0.0535 0.486
## Chla -0.96801 0.25093 0.2503 0.028 *
## DO -0.97610 -0.21733 0.0254 0.727
## Salinity 0.67432 -0.73844 0.5679 0.001 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
arrow_factor <- ordiArrowMul(env)
env.scrs <- as.data.frame(vegan::scores(env, display = "vectors")) * arrow_factor
env.scrs <- cbind(env.scrs, Species = rownames(env.scrs), Pvalues = env$vectors$pvals, R_squared = env$vectors$r)
env.scrs <- subset(env.scrs, Pvalues < 0.05)
env.scrs
## NMDS1 NMDS2 Species Pvalues R_squared
## PO4 -0.92781694 0.02796467 PO4 0.003 0.4590297
## SiOH4 -0.83622687 0.75000000 SiOH4 0.001 0.6722084
## NO3 0.33748405 -0.81335595 NO3 0.002 0.4131160
## NO2 0.31981951 -0.85388381 NO2 0.002 0.4429278
## NH4 -0.02647142 -0.67267370 NH4 0.026 0.2414364
## Temp -0.87411401 0.71093749 Temp 0.001 0.6763276
## Chla -0.66347899 0.17198936 Chla 0.028 0.2502769
## Salinity 0.69622696 -0.76243638 Salinity 0.001 0.5679314
extract hulls
BUDD <- data.scores[data.scores$Inlet == "BUDD", ][chull(data.scores[data.scores$Inlet ==
"BUDD", c("NMDS1", "NMDS2")]), ]
ELD <- data.scores[data.scores$Inlet == "ELD", ][chull(data.scores[data.scores$Inlet ==
"ELD", c("NMDS1", "NMDS2")]), ]
QM <- data.scores[data.scores$Inlet == "QM", ][chull(data.scores[data.scores$Inlet ==
"QM", c("NMDS1", "NMDS2")]), ]
SC <- data.scores[data.scores$Inlet == "SC", ][chull(data.scores[data.scores$Inlet ==
"SC", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(BUDD, ELD, QM,SC) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Year Month Inlet Location NO3 PO4 SiOH4 NO2 NH4
## 8 0.07839382 0.10283878 2020 Aug BUDD OB 4.05 1.59 41.77 0.23 0.88
## 3 -0.49662082 -0.03662211 2020 Aug BUDD OS 0.06 1.47 46.39 0.01 0.21
## 2 -0.61678044 0.04293955 2020 Aug BUDD OS 0.44 1.20 39.95 0.05 0.22
## 6 -0.55818514 0.24560209 2020 Aug BUDD OS 0.07 1.48 41.13 0.02 0.17
## 7 -0.16805681 0.82853700 2020 Aug BUDD OS 0.11 1.44 46.81 0.02 0.77
## 15 -0.36600896 -0.08439978 2020 Aug ELD OS 0.10 2.05 44.88 0.04 0.14
## 14 -0.77283303 0.11611974 2020 Aug ELD OS 0.09 1.84 55.11 0.01 1.28
## 12 -0.43565185 0.11283528 2020 Aug ELD OS 0.12 1.49 44.43 0.03 0.11
## 10 -0.05454650 0.10092634 2020 Aug ELD OS 0.12 1.31 47.42 0.02 0.18
## 18 0.26610521 -0.27932890 2020 Aug QM IN 0.12 0.58 31.48 0.03 0.34
## 23 0.16171090 -0.31795534 2020 Aug QM OB 9.13 1.54 35.93 0.41 1.12
## 22 0.10445835 -0.19442973 2020 Aug QM OS 0.32 0.47 31.07 0.04 0.39
## 20 0.96551592 0.50224680 2021 Aug QM IN 0.21 0.45 35.62 0.01 0.00
## 24 1.02329189 0.33012066 2021 Aug QM OS 2.83 0.69 34.09 0.13 0.10
## 21 1.03698158 0.07262016 2021 Aug QM IN 1.83 0.65 34.40 0.10 0.11
## 28 0.17532342 -0.63120052 2021 Aug SC OB 10.51 1.67 32.74 0.36 1.17
## 25 0.26650178 -0.78880827 2021 Aug SC OS 7.62 1.52 33.91 0.35 1.70
## 27 -0.19117900 -0.58517325 2021 Aug SC IN 3.05 1.13 36.28 0.19 0.88
## 26 -0.17718039 -0.46906771 2021 Aug SC IN 0.45 0.81 40.94 0.08 0.24
## Tmean Fmean Omean pHmean Smean
## 8 15.83885 4.749887 8.552275 8.405864 29.44947
## 3 16.04135 14.829841 7.300433 8.234621 29.36213
## 2 15.53064 9.571747 8.389519 8.337510 29.46414
## 6 17.64788 12.125550 12.115514 9.359744 28.41428
## 7 16.52514 4.755962 5.304376 8.529213 29.20804
## 15 17.39969 9.509445 6.261818 8.854672 28.56580
## 14 17.75457 32.129292 9.130868 8.457278 29.22018
## 12 16.58672 15.144218 9.412461 9.102089 29.33763
## 10 17.41564 8.784905 11.467702 9.088341 28.59893
## 18 14.64915 12.076774 9.704596 8.572626 29.71244
## 23 13.51247 3.180970 8.394605 8.403655 29.88051
## 22 15.09538 12.958875 3.536741 8.660025 29.69050
## 20 15.41718 8.036462 8.324053 8.787757 29.67637
## 24 13.70516 3.047317 6.832690 8.544974 29.89671
## 21 14.71093 7.029254 8.245302 8.726635 29.75984
## 28 14.45317 1.979085 7.252958 8.604166 29.93015
## 25 14.96545 2.038832 7.672591 8.685609 29.78388
## 27 15.41405 8.159419 9.247991 8.749234 29.74256
## 26 15.48635 14.097918 10.069238 8.814218 29.74709
make plot
Micro_inlet<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Inlet,group=Inlet),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Inlet,colour=Inlet),size=1) + # add the point markers
scale_colour_manual(values=c("#619CFF", "#F8766D","#00BA38","#C77CFF")) +
scale_fill_manual(values=c("#619CFF", "#F8766D","#00BA38","#C77CFF"))+
scale_shape_manual(values=c(16, 18,17,15))+
coord_equal() +
ylim(-1.2,1.2)+
xlim(-1.2,1.2)+
theme_bw() +
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.position="none")+
geom_segment(data = env.scrs,size=0.2,
aes(x = 0, xend = NMDS1, y = 0, yend = NMDS2),
arrow = arrow(length = unit(0.08, "cm")), colour = "black")+
geom_label_repel(data = env.scrs, aes(x = NMDS1, y = NMDS2, label = Species),
size = 1.8, fontface="bold", fill="white", label.padding = unit(0.15, "lines"), box.padding = unit(0.16, "lines"), label.size = 0.05)+
annotate("text", label = "2D Stress: 0.11", x = 0.9, y = 1.2, size = 2.5, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-1.1, y=1.1, label= "b",size=6)
Micro_inlet
Combine year and month plots
Inlet_plot<-ggarrange(zoop_inlet,Micro_inlet,
ncol = 2, nrow = 1)
Inlet_plot
save plot
setwd("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/output")
ggsave(filename = "Field_inlet_plot.png", plot = Inlet_plot, height = 80, width = 164, units="mm", device='png', dpi=600)
ggsave(filename = "Field_inlet_plot.tif", plot = Inlet_plot, height = 80, width = 164, units="mm", device='tiff', dpi=600)
subset to QM and SC
Field_data_merged_SCQM<-subset(Field_data_merged, Inlet!="BUDD")
Field_data_merged_SCQM<-subset(Field_data_merged_SCQM, Inlet!="ELD")
change from long to wide format
colnames(Field_data_merged)
## [1] "Station" "Inlet" "Location" "Year" "Time" "Month"
## [7] "Date" "taxa" "biovolume" "Station.y" "Smean" "Smin"
## [13] "Smax" "Ssd" "Omean" "Omin" "Omax" "Osd"
## [19] "Tmean" "Tmin" "Tmax" "Tsd" "pHmean" "pHmin"
## [25] "pHmax" "pHsd" "Fmean" "Fmin" "Fmax" "Fsd"
## [31] "PO4" "SiOH4" "NO3" "NO2" "NH4"
Field_data_wide<-dcast(Field_data_merged_SCQM, Station+Inlet+Year+Location+Month+Smean+Omean+Tmean+pHmean+Fmean+PO4+SiOH4+NO3+NO2+NH4~ taxa,value.var = "biovolume")
remove non-data columns, convert to proportionas, and arcsine sqrt transformation
Field_data_wide$Location=as.factor(Field_data_wide$Location)
Field_data_wide$Year=as.factor(Field_data_wide$Year)
RE2<- Field_data_wide[,16:ncol(Field_data_wide)]
#replace N/A with 0
RE2[is.na(RE2)] <- 0
#convert to numeric
RE2 <- RE2 %>% mutate_at(1:59, as.numeric)
#convert to proportions
RE2<-RE2/rowSums(RE2)
#arcsine sqrt transformation
RE2<-asin(sqrt(RE2))
RE3<-as.matrix(RE2)
dist<-vegdist(RE2, method='bray')
dist
## 1 2 3 4 5 6 7
## 2 0.5624630
## 3 0.6279567 0.7008114
## 4 0.2003914 0.5577805 0.6791177
## 5 0.2068918 0.6522329 0.6970677 0.2286539
## 6 0.5014975 0.3157105 0.7408855 0.5177956 0.5853435
## 7 0.4221873 0.6123646 0.5680286 0.4395992 0.4523769 0.6775159
## 8 0.3778380 0.5523606 0.6024476 0.3344926 0.4220893 0.5804725 0.3038750
## 9 0.4692646 0.6646229 0.6894526 0.4956399 0.4643606 0.7166816 0.5037969
## 10 0.4677645 0.5043463 0.7546806 0.4056796 0.4665518 0.4766665 0.5962827
## 11 0.4233289 0.5638050 0.5922184 0.3673863 0.4557751 0.6123842 0.2266748
## 12 0.7372554 0.8346373 0.3677178 0.7318063 0.7616828 0.8729008 0.6511100
## 13 0.5883064 0.6849569 0.3099743 0.6570477 0.6660402 0.6796101 0.5851897
## 14 0.4537103 0.5625102 0.6186037 0.4379917 0.4639910 0.5973763 0.3210259
## 15 0.5048221 0.5938635 0.6961606 0.4729277 0.4914912 0.6445813 0.3457832
## 16 0.6915017 0.7195060 0.3100925 0.7148126 0.7345627 0.8040251 0.6152549
## 17 0.4909096 0.6109848 0.6962478 0.4454083 0.5407096 0.6372424 0.5135796
## 18 0.5634290 0.3643848 0.7642417 0.5269914 0.5936841 0.4749469 0.6878308
## 19 0.5082854 0.6991932 0.6872772 0.4171394 0.5429764 0.6931276 0.5900717
## 20 0.6223867 0.3327838 0.7695828 0.5831032 0.6520090 0.5003418 0.6992084
## 21 0.5217837 0.6999323 0.6865585 0.5021628 0.5431327 0.7188802 0.5315697
## 22 0.5389501 0.5924843 0.7045907 0.4447220 0.5320181 0.6150550 0.4739458
## 23 0.5262514 0.5747678 0.7105643 0.4788394 0.5633891 0.5941002 0.5766688
## 24 0.5595213 0.5557512 0.6956493 0.4390506 0.5297939 0.6868996 0.6207367
## 25 0.4955040 0.5620918 0.7236132 0.4615352 0.4865827 0.5871936 0.5454236
## 26 0.5247094 0.5256529 0.7453462 0.4577514 0.5483319 0.5812160 0.5911548
## 27 0.4110424 0.6266882 0.6955483 0.3908131 0.4237483 0.6135090 0.4436715
## 8 9 10 11 12 13 14
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9 0.5290587
## 10 0.4995778 0.6491858
## 11 0.2181010 0.5750675 0.5174599
## 12 0.6841237 0.7870553 0.7880720 0.6517752
## 13 0.5799960 0.7324037 0.6913964 0.5967391 0.4203620
## 14 0.2298007 0.5640068 0.5494140 0.2518810 0.6926990 0.6556961
## 15 0.2623563 0.5846214 0.5329016 0.2764905 0.7521812 0.6700302 0.2741336
## 16 0.6448093 0.7623844 0.7310446 0.6254478 0.3333600 0.3406361 0.6573938
## 17 0.4433857 0.6109592 0.4763017 0.4383927 0.7856840 0.6404363 0.4223597
## 18 0.6138423 0.7502519 0.4346042 0.6072716 0.7719664 0.7600221 0.5713421
## 19 0.4813254 0.6296863 0.5438731 0.4403262 0.7922777 0.6704480 0.4914193
## 20 0.6188063 0.7869022 0.5120879 0.6352274 0.8203350 0.7705757 0.5675143
## 21 0.4848176 0.6386249 0.6020958 0.5246755 0.7122829 0.7628314 0.4610717
## 22 0.4681392 0.5567598 0.4652126 0.3789916 0.7620744 0.6714821 0.4009902
## 23 0.4266915 0.6665413 0.5212345 0.5245613 0.7500119 0.6612248 0.4865297
## 24 0.4920337 0.6206201 0.4627159 0.4685356 0.7039920 0.7037444 0.5344399
## 25 0.4945140 0.6253471 0.4680970 0.5541100 0.7731128 0.7191876 0.4714846
## 26 0.4770680 0.6758541 0.4707543 0.5678338 0.7936614 0.7389165 0.4628805
## 27 0.4177974 0.6016954 0.4591235 0.4588373 0.7526371 0.6964428 0.4030441
## 15 16 17 18 19 20 21
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16 0.7209077
## 17 0.4881950 0.7204101
## 18 0.6306777 0.8209435 0.6279486
## 19 0.5969439 0.7642801 0.2663797 0.6680650
## 20 0.6413095 0.8659479 0.6355123 0.2405542 0.6706153
## 21 0.5267577 0.7351678 0.6387455 0.6218239 0.5777926 0.6918702
## 22 0.4620655 0.7464804 0.3161935 0.5874183 0.3374292 0.6019904 0.6622775
## 23 0.5439392 0.7613022 0.5773118 0.5806192 0.5330638 0.5791336 0.4529206
## 24 0.5214439 0.7215693 0.5582715 0.4554440 0.4820167 0.5172252 0.5471659
## 25 0.5322208 0.7407831 0.5393615 0.4940495 0.5251897 0.5738595 0.3507045
## 26 0.5682944 0.8018350 0.5166938 0.4246503 0.4649824 0.4813276 0.3573524
## 27 0.4497730 0.7256330 0.5381398 0.5731977 0.5699191 0.6743982 0.2665378
## 22 23 24 25 26
## 2
## 3
## 4
## 5
## 6
## 7
## 8
## 9
## 10
## 11
## 12
## 13
## 14
## 15
## 16
## 17
## 18
## 19
## 20
## 21
## 22
## 23 0.5501428
## 24 0.4633472 0.5047919
## 25 0.5260440 0.3753894 0.5778906
## 26 0.5054534 0.2795352 0.5135598 0.2028592
## 27 0.5659158 0.4540905 0.5371401 0.3185171 0.3520307
perm<-adonis2(dist~Year*Month*Location, data=Field_data_wide, permutations = 999, method="bray")
perm
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 999
##
## adonis2(formula = dist ~ Year * Month * Location, data = Field_data_wide, permutations = 999, method = "bray")
## Df SumOfSqs R2 F Pr(>F)
## Year 2 0.9075 0.20956 3.6086 0.002 **
## Month 2 1.0094 0.23310 4.0140 0.001 ***
## Location 2 0.2581 0.05961 1.0264 0.414
## Year:Location 4 0.3067 0.07081 0.6097 0.968
## Month:Location 4 0.3399 0.07848 0.6757 0.920
## Residual 12 1.5088 0.34843
## Total 26 4.3303 1.00000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check for dispersion
Zoop.bd <- betadisper(dist, Field_data_wide$Location)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Location)
##
## No. of Positive Eigenvalues: 20
## No. of Negative Eigenvalues: 6
##
## Average distance to median:
## IN OB OS
## 0.3704 0.3407 0.4125
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 26 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.2398 0.7670 0.5079 0.4090 0.3357 0.2700 0.2009 0.1550
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.019774 0.0098870 1.0463 0.3667
## Residuals 24 0.226789 0.0094496
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.019774 0.0098870 1.0463 999 0.382
## Residuals 24 0.226789 0.0094496
check for dispersion
Zoop.bd <- betadisper(dist, Field_data_wide$Year)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Year)
##
## No. of Positive Eigenvalues: 20
## No. of Negative Eigenvalues: 6
##
## Average distance to median:
## 2019 2020 2021
## 0.2922 0.1694 0.4122
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 26 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.2398 0.7670 0.5079 0.4090 0.3357 0.2700 0.2009 0.1550
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.23927 0.119636 15.438 4.897e-05 ***
## Residuals 24 0.18598 0.007749
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.23927 0.119636 15.438 999 0.001 ***
## Residuals 24 0.18598 0.007749
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
check for dispersion
Zoop.bd <- betadisper(dist, Field_data_wide$Month)
Zoop.bd
##
## Homogeneity of multivariate dispersions
##
## Call: betadisper(d = dist, group = Field_data_wide$Month)
##
## No. of Positive Eigenvalues: 20
## No. of Negative Eigenvalues: 6
##
## Average distance to median:
## Aug Jul Sep
## 0.3679 0.2925 0.1749
##
## Eigenvalues for PCoA axes:
## (Showing 8 of 26 eigenvalues)
## PCoA1 PCoA2 PCoA3 PCoA4 PCoA5 PCoA6 PCoA7 PCoA8
## 1.2398 0.7670 0.5079 0.4090 0.3357 0.2700 0.2009 0.1550
anova(Zoop.bd)
## Analysis of Variance Table
##
## Response: Distances
## Df Sum Sq Mean Sq F value Pr(>F)
## Groups 2 0.10651 0.053257 4.8487 0.01704 *
## Residuals 24 0.26361 0.010984
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
permutest(Zoop.bd)
##
## Permutation test for homogeneity of multivariate dispersions
## Permutation: free
## Number of permutations: 999
##
## Response: Distances
## Df Sum Sq Mean Sq F N.Perm Pr(>F)
## Groups 2 0.10651 0.053257 4.8487 999 0.013 *
## Residuals 24 0.26361 0.010984
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
NMDSmodel <- metaMDS(RE2, distance = "bray",trymax = 200)
## Run 0 stress 0.1666272
## Run 1 stress 0.1666272
## ... Procrustes: rmse 9.438067e-05 max resid 0.0003555542
## ... Similar to previous best
## Run 2 stress 0.1667159
## ... Procrustes: rmse 0.0399118 max resid 0.1448578
## Run 3 stress 0.1753478
## Run 4 stress 0.1664801
## ... New best solution
## ... Procrustes: rmse 0.08358463 max resid 0.2628654
## Run 5 stress 0.1722585
## Run 6 stress 0.1666562
## ... Procrustes: rmse 0.06302691 max resid 0.2449473
## Run 7 stress 0.1729478
## Run 8 stress 0.1684843
## Run 9 stress 0.171032
## Run 10 stress 0.1678285
## Run 11 stress 0.1682472
## Run 12 stress 0.1666272
## ... Procrustes: rmse 0.08359501 max resid 0.2531656
## Run 13 stress 0.1667159
## ... Procrustes: rmse 0.08644728 max resid 0.2536199
## Run 14 stress 0.1667877
## ... Procrustes: rmse 0.05622892 max resid 0.2387299
## Run 15 stress 0.1664007
## ... New best solution
## ... Procrustes: rmse 0.05613129 max resid 0.2472998
## Run 16 stress 0.1740543
## Run 17 stress 0.1678285
## Run 18 stress 0.1691889
## Run 19 stress 0.1753196
## Run 20 stress 0.1721772
## Run 21 stress 0.1688176
## Run 22 stress 0.1669044
## Run 23 stress 0.1684494
## Run 24 stress 0.1674343
## Run 25 stress 0.1672491
## Run 26 stress 0.1684622
## Run 27 stress 0.1682842
## Run 28 stress 0.1665494
## ... Procrustes: rmse 0.0213463 max resid 0.09464548
## Run 29 stress 0.1666272
## ... Procrustes: rmse 0.05166816 max resid 0.1685616
## Run 30 stress 0.1666274
## ... Procrustes: rmse 0.05171106 max resid 0.16862
## Run 31 stress 0.1687938
## Run 32 stress 0.1691778
## Run 33 stress 0.1691892
## Run 34 stress 0.1753197
## Run 35 stress 0.1729479
## Run 36 stress 0.168816
## Run 37 stress 0.172948
## Run 38 stress 0.1753479
## Run 39 stress 0.1694155
## Run 40 stress 0.1803813
## Run 41 stress 0.1678285
## Run 42 stress 0.1687948
## Run 43 stress 0.1691888
## Run 44 stress 0.1740543
## Run 45 stress 0.1758659
## Run 46 stress 0.1681142
## Run 47 stress 0.1682472
## Run 48 stress 0.1798157
## Run 49 stress 0.1803812
## Run 50 stress 0.1706551
## Run 51 stress 0.1734134
## Run 52 stress 0.1729478
## Run 53 stress 0.1667159
## ... Procrustes: rmse 0.0582659 max resid 0.1716958
## Run 54 stress 0.1730947
## Run 55 stress 0.1664428
## ... Procrustes: rmse 0.05646242 max resid 0.2517908
## Run 56 stress 0.1684493
## Run 57 stress 0.1678285
## Run 58 stress 0.1678285
## Run 59 stress 0.1761593
## Run 60 stress 0.1683558
## Run 61 stress 0.1666272
## ... Procrustes: rmse 0.05164678 max resid 0.1685305
## Run 62 stress 0.1792663
## Run 63 stress 0.1692217
## Run 64 stress 0.1666272
## ... Procrustes: rmse 0.05166942 max resid 0.1685641
## Run 65 stress 0.1665977
## ... Procrustes: rmse 0.0203809 max resid 0.09437621
## Run 66 stress 0.1695347
## Run 67 stress 0.1684494
## Run 68 stress 0.1667159
## ... Procrustes: rmse 0.05826365 max resid 0.1716929
## Run 69 stress 0.1678285
## Run 70 stress 0.1683558
## Run 71 stress 0.16845
## Run 72 stress 0.1667508
## ... Procrustes: rmse 0.02291686 max resid 0.09544604
## Run 73 stress 0.1666272
## ... Procrustes: rmse 0.05166945 max resid 0.1685631
## Run 74 stress 0.1798158
## Run 75 stress 0.1694967
## Run 76 stress 0.166405
## ... Procrustes: rmse 0.0120277 max resid 0.04434374
## Run 77 stress 0.1682841
## Run 78 stress 0.170655
## Run 79 stress 0.1696294
## Run 80 stress 0.1757135
## Run 81 stress 0.1691774
## Run 82 stress 0.1694154
## Run 83 stress 0.1678285
## Run 84 stress 0.1684624
## Run 85 stress 0.1667159
## ... Procrustes: rmse 0.05824747 max resid 0.1716686
## Run 86 stress 0.1666277
## ... Procrustes: rmse 0.02330303 max resid 0.09352136
## Run 87 stress 0.1678288
## Run 88 stress 0.1678285
## Run 89 stress 0.1668479
## ... Procrustes: rmse 0.05564563 max resid 0.1676401
## Run 90 stress 0.1684624
## Run 91 stress 0.166656
## ... Procrustes: rmse 0.02407592 max resid 0.0938802
## Run 92 stress 0.1691776
## Run 93 stress 0.1666277
## ... Procrustes: rmse 0.02329955 max resid 0.09356327
## Run 94 stress 0.1682841
## Run 95 stress 0.1759871
## Run 96 stress 0.1667508
## ... Procrustes: rmse 0.02291756 max resid 0.09544468
## Run 97 stress 0.1666272
## ... Procrustes: rmse 0.05166108 max resid 0.1685503
## Run 98 stress 0.1667159
## ... Procrustes: rmse 0.05826093 max resid 0.1716886
## Run 99 stress 0.1722565
## Run 100 stress 0.175714
## Run 101 stress 0.1760353
## Run 102 stress 0.1685222
## Run 103 stress 0.1668482
## ... Procrustes: rmse 0.05574051 max resid 0.1677593
## Run 104 stress 0.1672842
## Run 105 stress 0.1665876
## ... Procrustes: rmse 0.02214889 max resid 0.09200472
## Run 106 stress 0.1678285
## Run 107 stress 0.1774637
## Run 108 stress 0.1682466
## Run 109 stress 0.1734258
## Run 110 stress 0.1678287
## Run 111 stress 0.1729478
## Run 112 stress 0.1681705
## Run 113 stress 0.1672493
## Run 114 stress 0.1667159
## ... Procrustes: rmse 0.05827557 max resid 0.1717056
## Run 115 stress 0.1722591
## Run 116 stress 0.1729479
## Run 117 stress 0.1803813
## Run 118 stress 0.1684625
## Run 119 stress 0.1684236
## Run 120 stress 0.1667159
## ... Procrustes: rmse 0.05825933 max resid 0.1716868
## Run 121 stress 0.1681709
## Run 122 stress 0.1740543
## Run 123 stress 0.1663772
## ... New best solution
## ... Procrustes: rmse 0.01122191 max resid 0.04437587
## Run 124 stress 0.1691888
## Run 125 stress 0.1678287
## Run 126 stress 0.1668479
## ... Procrustes: rmse 0.05433058 max resid 0.1653491
## Run 127 stress 0.1666273
## ... Procrustes: rmse 0.04976729 max resid 0.1663226
## Run 128 stress 0.1666272
## ... Procrustes: rmse 0.0497725 max resid 0.1663321
## Run 129 stress 0.1668479
## ... Procrustes: rmse 0.05433193 max resid 0.1653447
## Run 130 stress 0.1743736
## Run 131 stress 0.1684494
## Run 132 stress 0.1678286
## Run 133 stress 0.1666273
## ... Procrustes: rmse 0.04979554 max resid 0.1663652
## Run 134 stress 0.1692204
## Run 135 stress 0.1684492
## Run 136 stress 0.1667159
## ... Procrustes: rmse 0.05633441 max resid 0.1691261
## Run 137 stress 0.1668281
## ... Procrustes: rmse 0.01672 max resid 0.04984263
## Run 138 stress 0.1667159
## ... Procrustes: rmse 0.05633577 max resid 0.1691273
## Run 139 stress 0.1668479
## ... Procrustes: rmse 0.05432735 max resid 0.1653501
## Run 140 stress 0.1663771
## ... New best solution
## ... Procrustes: rmse 7.820137e-05 max resid 0.0002459463
## ... Similar to previous best
## *** Best solution repeated 1 times
NMDSmodel
##
## Call:
## metaMDS(comm = RE2, distance = "bray", trymax = 200)
##
## global Multidimensional Scaling using monoMDS
##
## Data: RE2
## Distance: bray
##
## Dimensions: 2
## Stress: 0.1663771
## Stress type 1, weak ties
## Best solution was repeated 1 time in 140 tries
## The best solution was from try 140 (random start)
## Scaling: centring, PC rotation, halfchange scaling
## Species: expanded scores based on 'RE2'
get datascores
data.scores<-vegan::scores(NMDSmodel,display="sites")
data.scores<- as.data.frame(data.scores)
add columns back in
colnames(Field_data_wide)
## [1] "Station" "Inlet" "Year"
## [4] "Location" "Month" "Smean"
## [7] "Omean" "Tmean" "pHmean"
## [10] "Fmean" "PO4" "SiOH4"
## [13] "NO3" "NO2" "NH4"
## [16] "Actinoptychus" "Akashiwo" "Asteromphalus"
## [19] "Cerataulina" "Ceratium" "Chaetoceros"
## [22] "Coscinodiscus" "Cylindrotheca" "Dictyocha"
## [25] "Dinophysis" "Ditylum" "Eucampia"
## [28] "Guinardia et al" "gymnodinioids" "Hemiaulus"
## [31] "Heterocapsa" "Heterosigma" "Katodinium"
## [34] "Lauderia/Detonula" "Mesodinium" "misc 10-25 um"
## [37] "misc 25-100 um" "misc >100 um" "misc ciliates"
## [40] "misc diatoms" "misc med/large dinos" "misc small dinos"
## [43] "misc zoo" "Nitzschia" "Noctiluca"
## [46] "Oxyphysis" "Paralia" "Phaeocystis"
## [49] "Pleurosigma" "Prorocentrum" "Protoperidinium"
## [52] "Pseudo-nitzschia" "Rhizosolenia" "Scrippsiella"
## [55] "Skeletonema" "Stephanopyxis" "Thalassionema"
## [58] "Thalassiosira" "Protoceratium" "copepods"
## [61] "Helicostomella" "misc cn ciliates" "misc larvae"
## [64] "misc rd ciliates" "misc tintinnids" "nauplii"
## [67] "Oikopleura" "small ciliates" "Strombidium"
## [70] "Tiarina" "Amylax" "Karlodinium"
## [73] "Nematodinium" "rotifers"
data.scores$Year = Field_data_wide$Year
data.scores$Month = Field_data_wide$Month
data.scores$Inlet = Field_data_wide$Inlet
data.scores$Location = Field_data_wide$Location
data.scores$Location = Field_data_wide$Location
data.scores$NO3 = Field_data_wide$NO3
data.scores$PO4 = Field_data_wide$PO4
data.scores$SiOH4 = Field_data_wide$SiOH4
data.scores$NO2 = Field_data_wide$NO2
data.scores$NH4 = Field_data_wide$NH4
data.scores$Tmean = Field_data_wide$Tmean
data.scores$Fmean = Field_data_wide$Fmean
data.scores$Omean = Field_data_wide$Omean
data.scores$pHmean = Field_data_wide$pHmean
data.scores$Smean = Field_data_wide$Smean
extract hulls
Inside <- data.scores[data.scores$Location == "IN", ][chull(data.scores[data.scores$Location ==
"IN", c("NMDS1", "NMDS2")]), ]
Outside <- data.scores[data.scores$Location == "OS", ][chull(data.scores[data.scores$Location ==
"OS", c("NMDS1", "NMDS2")]), ]
Out_Bay <- data.scores[data.scores$Location == "OB", ][chull(data.scores[data.scores$Location ==
"OB", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Inside, Outside, Out_Bay) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Year Month Inlet Location NO3 PO4 SiOH4 NO2 NH4
## 12 1.04251146 -0.24781736 2021 Aug QM IN 0.21 0.45 35.62 0.01 0.00
## 2 -0.28509811 -0.45673594 2021 Jul QM IN <NA> <NA> <NA> <NA> <NA>
## 18 -0.50690807 -0.31057283 2021 Jul SC IN <NA> <NA> <NA> <NA> <NA>
## 26 -0.43102418 0.04517588 2021 Aug SC IN 3.05 1.13 36.28 0.19 0.88
## 25 -0.37547147 0.11719999 2021 Aug SC IN 0.45 0.81 40.94 0.08 0.24
## 23 -0.33701043 0.15788783 2021 Aug SC IN <NA> <NA> <NA> <NA> <NA>
## 8 0.06179011 0.09203928 2020 Aug QM IN 0.12 0.58 31.48 0.03 0.34
## 16 0.99118681 -0.12734098 2021 Aug QM OS 2.83 0.69 34.09 0.13 0.10
## 6 -0.26615287 -0.59295794 2021 Jul QM OS <NA> <NA> <NA> <NA> <NA>
## 20 -0.53578790 -0.44404939 2021 Jul SC OS <NA> <NA> <NA> <NA> <NA>
## 19 -0.29606010 0.33708633 2019 Sep SC OS <NA> <NA> <NA> <NA> <NA>
## 21 -0.19181451 0.46198209 2021 Aug SC OS 7.62 1.52 33.91 0.35 1.70
## 3 0.82403331 -0.01146069 2021 Aug QM OS 4.03 0.84 34.76 0.19 0.46
## 22 -0.08298997 -0.11408115 2019 Sep SC OB <NA> <NA> <NA> <NA> <NA>
## 10 -0.27719947 -0.19122699 2021 Jul QM OB <NA> <NA> <NA> <NA> <NA>
## 24 -0.31988110 -0.05434430 2021 Jul SC OB <NA> <NA> <NA> <NA> <NA>
## 27 -0.15342824 0.21337708 2021 Aug SC OB 10.51 1.67 32.74 0.36 1.17
## 9 0.18163667 0.60393481 2019 Aug QM OB <NA> <NA> <NA> <NA> <NA>
## 15 0.05970720 0.21248552 2020 Aug QM OB 9.13 1.54 35.93 0.41 1.12
## Tmean Fmean Omean pHmean Smean
## 12 15.41718 8.036462 8.324053 8.787757 29.67637
## 2 NA NA NA NA NA
## 18 NA NA NA NA NA
## 26 15.41405 8.159419 9.247991 8.749234 29.74256
## 25 15.48635 14.097918 10.069238 8.814218 29.74709
## 23 NA NA NA NA NA
## 8 14.64915 12.076774 9.704596 8.572626 29.71244
## 16 13.70516 3.047317 6.832690 8.544974 29.89671
## 6 NA NA NA NA NA
## 20 NA NA NA NA NA
## 19 NA NA NA NA NA
## 21 14.96545 2.038832 7.672591 8.685609 29.78388
## 3 14.29776 6.733365 8.164190 8.677723 29.83183
## 22 NA NA NA NA NA
## 10 NA NA NA NA NA
## 24 NA NA NA NA NA
## 27 14.45317 1.979085 7.252958 8.604166 29.93015
## 9 NA NA NA NA NA
## 15 13.51247 3.180970 8.394605 8.403655 29.88051
hull.data$Location <- factor(hull.data$Location,
c("IN", "OS", "OB"))
data.scores$Location <- factor(data.scores$Location,
c("IN", "OS", "OB"))
Micro_location<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Location,group=Location),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Location,colour=Location),size=1) + # add the point markers
scale_colour_manual(name="Location",labels = c("Inside Aggregation","Outside Aggregation","Outside Bay"),values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(name="Location",labels = c("Inside Aggregation","Outside Aggregation","Outside Bay"),values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(name="Location",labels = c("Inside Aggregation","Outside Aggregation","Outside Bay"),values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-1.2,1.2)+
xlim(-1.2,1.2)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=8),
legend.title = element_text(size=8),legend.position=c(0.28, 0.15))+
annotate("text", label = "2D Stress: 0.17", x = 0.8, y = 1.15, size = 3, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-1.1, y=1.1, label= "a",size=8)
Micro_location
extract hulls
Y2019 <- data.scores[data.scores$Year == "2019", ][chull(data.scores[data.scores$Year ==
"2019", c("NMDS1", "NMDS2")]), ]
Y2020 <- data.scores[data.scores$Year == "2020", ][chull(data.scores[data.scores$Year ==
"2020", c("NMDS1", "NMDS2")]), ]
Y2021 <- data.scores[data.scores$Year == "2021", ][chull(data.scores[data.scores$Year ==
"2021", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Y2019, Y2020, Y2021) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Year Month Inlet Location NO3 PO4 SiOH4 NO2 NH4
## 17 0.01059797 -0.10861022 2019 Sep SC IN <NA> <NA> <NA> <NA> <NA>
## 22 -0.08298997 -0.11408115 2019 Sep SC OB <NA> <NA> <NA> <NA> <NA>
## 19 -0.29606010 0.33708633 2019 Sep SC OS <NA> <NA> <NA> <NA> <NA>
## 9 0.18163667 0.60393481 2019 Aug QM OB <NA> <NA> <NA> <NA> <NA>
## 11 0.11694023 0.03801991 2020 Aug QM IN 0.48 0.71 30.83 0.05 0.71
## 14 0.01671390 0.02471005 2020 Aug QM OS 0.32 0.47 31.07 0.04 0.39
## 15 0.05970720 0.21248552 2020 Aug QM OB 9.13 1.54 35.93 0.41 1.12
## 7 0.23348915 0.17401738 2020 Aug QM OS 0.05 0.57 31.11 0.02 0.09
## 12 1.04251146 -0.24781736 2021 Aug QM IN 0.21 0.45 35.62 0.01 0.00
## 6 -0.26615287 -0.59295794 2021 Jul QM OS <NA> <NA> <NA> <NA> <NA>
## 20 -0.53578790 -0.44404939 2021 Jul SC OS <NA> <NA> <NA> <NA> <NA>
## 26 -0.43102418 0.04517588 2021 Aug SC IN 3.05 1.13 36.28 0.19 0.88
## 21 -0.19181451 0.46198209 2021 Aug SC OS 7.62 1.52 33.91 0.35 1.70
## 3 0.82403331 -0.01146069 2021 Aug QM OS 4.03 0.84 34.76 0.19 0.46
## 16 0.99118681 -0.12734098 2021 Aug QM OS 2.83 0.69 34.09 0.13 0.10
## Tmean Fmean Omean pHmean Smean
## 17 NA NA NA NA NA
## 22 NA NA NA NA NA
## 19 NA NA NA NA NA
## 9 NA NA NA NA NA
## 11 14.20596 9.993436 9.530405 8.542714 29.77753
## 14 15.09538 12.958875 3.536741 8.660025 29.69050
## 15 13.51247 3.180970 8.394605 8.403655 29.88051
## 7 15.24269 10.432785 10.927995 8.686565 29.69010
## 12 15.41718 8.036462 8.324053 8.787757 29.67637
## 6 NA NA NA NA NA
## 20 NA NA NA NA NA
## 26 15.41405 8.159419 9.247991 8.749234 29.74256
## 21 14.96545 2.038832 7.672591 8.685609 29.78388
## 3 14.29776 6.733365 8.164190 8.677723 29.83183
## 16 13.70516 3.047317 6.832690 8.544974 29.89671
Micro_Year<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Year,group=Year),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Year,colour=Year),size=1) + # add the point markers
scale_colour_manual(name="Year",values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(name="Year",values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(name="Year",values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-1.2,1.2)+
xlim(-1.2,1.2)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=8),
legend.title = element_text(size=8),legend.position=c(0.12, 0.15))+
annotate("text", label = "2D Stress: 0.17", x = 0.8, y = 1.15, size = 3, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-1.1, y=1.1, label= "b",size=8)
Micro_Year
Species fitting
vf <- envfit(NMDSmodel, RE3, perm = 999)
vf
##
## ***VECTORS
##
## NMDS1 NMDS2 r2 Pr(>r)
## Actinoptychus -0.25969 0.96569 0.1615 0.148
## Akashiwo -0.97775 -0.20978 0.1649 0.111
## Asteromphalus -0.03835 0.99926 0.2515 0.026 *
## Cerataulina 0.94218 -0.33510 0.8970 0.001 ***
## Ceratium -0.70654 -0.70767 0.7780 0.001 ***
## Chaetoceros -0.44851 0.89378 0.3999 0.006 **
## Coscinodiscus 0.29728 0.95479 0.3129 0.009 **
## Cylindrotheca -0.41710 0.90886 0.0652 0.457
## Dictyocha 0.79292 -0.60932 0.1684 0.093 .
## Dinophysis -0.59004 0.80737 0.0740 0.384
## Ditylum -0.54382 0.83920 0.3567 0.005 **
## Eucampia 0.98893 0.14841 0.0752 0.369
## Guinardia et al 0.99583 -0.09125 0.2051 0.064 .
## gymnodinioids 0.14021 0.99012 0.1099 0.236
## Hemiaulus 0.14377 0.98961 0.0994 0.253
## Heterocapsa 0.92883 0.37052 0.0879 0.324
## Heterosigma 0.81014 -0.58624 0.4745 0.004 **
## Katodinium 0.99239 0.12317 0.3250 0.007 **
## Lauderia/Detonula -0.93984 0.34162 0.0414 0.631
## Mesodinium 0.18102 0.98348 0.2042 0.092 .
## misc 10-25 um 0.28917 -0.95728 0.0965 0.295
## misc 25-100 um -0.55090 -0.83457 0.5974 0.001 ***
## misc >100 um 0.83466 -0.55076 0.2711 0.026 *
## misc ciliates 0.08763 0.99615 0.2308 0.040 *
## misc diatoms 0.99976 0.02182 0.5679 0.001 ***
## misc med/large dinos -0.54226 -0.84021 0.1263 0.183
## misc small dinos 0.97745 -0.21119 0.0136 0.870
## misc zoo 0.19272 0.98125 0.0707 0.423
## Nitzschia 0.92770 -0.37332 0.5731 0.001 ***
## Noctiluca -0.95721 -0.28939 0.1658 0.113
## Oxyphysis 0.48399 0.87507 0.0338 0.655
## Paralia -0.28749 -0.95778 0.0082 0.786
## Phaeocystis -0.72057 0.69338 0.0055 0.857
## Pleurosigma -0.77015 0.63786 0.0025 0.983
## Prorocentrum -0.49529 -0.86873 0.0337 0.666
## Protoperidinium -0.66599 -0.74596 0.2053 0.045 *
## Pseudo-nitzschia -0.07149 0.99744 0.3130 0.015 *
## Rhizosolenia -0.41627 0.90924 0.0424 0.587
## Scrippsiella -0.74366 0.66856 0.0837 0.355
## Skeletonema -0.29400 0.95580 0.1691 0.113
## Stephanopyxis -0.56822 0.82287 0.0274 0.736
## Thalassionema -0.12073 0.99268 0.2961 0.018 *
## Thalassiosira 0.00845 0.99996 0.3236 0.010 **
## Protoceratium -0.93522 -0.35406 0.1418 0.128
## copepods 0.64484 -0.76432 0.1723 0.112
## Helicostomella -0.96922 0.24620 0.0406 0.440
## misc cn ciliates -0.58383 -0.81188 0.2910 0.014 *
## misc larvae -0.99375 -0.11159 0.0116 0.808
## misc rd ciliates 0.91085 -0.41275 0.1860 0.104
## misc tintinnids -0.29675 -0.95496 0.4045 0.003 **
## nauplii 0.53707 -0.84354 0.0921 0.319
## Oikopleura 0.29550 -0.95534 0.0271 0.750
## small ciliates 0.19115 -0.98156 0.0336 0.703
## Strombidium -0.32284 -0.94645 0.2154 0.065 .
## Tiarina 0.71343 -0.70073 0.3844 0.007 **
## Amylax -0.24941 -0.96840 0.1249 0.277
## Karlodinium -0.20085 -0.97962 0.3154 0.008 **
## Nematodinium -0.18210 -0.98328 0.1965 0.124
## rotifers -0.51330 -0.85821 0.0352 0.580
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Permutation: free
## Number of permutations: 999
spp.scrs <- as.data.frame(vegan::scores(vf, display = "vectors"))
spp.scrs <- cbind(spp.scrs, Species = rownames(spp.scrs))
####for ggplot
arrow_factor <- ordiArrowMul(vf)
spp.scrs <- as.data.frame(vegan::scores(vf, display = "vectors")) * arrow_factor
spp.scrs <- cbind(spp.scrs, Species = rownames(spp.scrs), Pvalues = vf$vectors$pvals, R_squared = vf$vectors$r)
# select significance similarly to `plot(vf, p.max = 0.01)`
spp.scrs <- subset(spp.scrs, Pvalues < 0.01)
extract hulls
Aug<- data.scores[data.scores$Month == "Aug", ][chull(data.scores[data.scores$Month ==
"Aug", c("NMDS1", "NMDS2")]), ]
Jul <- data.scores[data.scores$Month == "Jul", ][chull(data.scores[data.scores$Month ==
"Jul", c("NMDS1", "NMDS2")]), ]
Sep <- data.scores[data.scores$Month == "Sep", ][chull(data.scores[data.scores$Month ==
"Sep", c("NMDS1", "NMDS2")]), ]
get hull data
hull.data <- rbind(Aug, Jul, Sep) #combine grp.a and grp.b
hull.data
## NMDS1 NMDS2 Year Month Inlet Location NO3 PO4 SiOH4 NO2 NH4
## 16 0.99118681 -0.12734098 2021 Aug QM OS 2.83 0.69 34.09 0.13 0.10
## 12 1.04251146 -0.24781736 2021 Aug QM IN 0.21 0.45 35.62 0.01 0.00
## 13 0.72721068 -0.25068257 2021 Aug QM IN 1.83 0.65 34.40 0.10 0.11
## 26 -0.43102418 0.04517588 2021 Aug SC IN 3.05 1.13 36.28 0.19 0.88
## 21 -0.19181451 0.46198209 2021 Aug SC OS 7.62 1.52 33.91 0.35 1.70
## 9 0.18163667 0.60393481 2019 Aug QM OB <NA> <NA> <NA> <NA> <NA>
## 6 -0.26615287 -0.59295794 2021 Jul QM OS <NA> <NA> <NA> <NA> <NA>
## 20 -0.53578790 -0.44404939 2021 Jul SC OS <NA> <NA> <NA> <NA> <NA>
## 18 -0.50690807 -0.31057283 2021 Jul SC IN <NA> <NA> <NA> <NA> <NA>
## 24 -0.31988110 -0.05434430 2021 Jul SC OB <NA> <NA> <NA> <NA> <NA>
## 10 -0.27719947 -0.19122699 2021 Jul QM OB <NA> <NA> <NA> <NA> <NA>
## 17 0.01059797 -0.10861022 2019 Sep SC IN <NA> <NA> <NA> <NA> <NA>
## 22 -0.08298997 -0.11408115 2019 Sep SC OB <NA> <NA> <NA> <NA> <NA>
## 19 -0.29606010 0.33708633 2019 Sep SC OS <NA> <NA> <NA> <NA> <NA>
## Tmean Fmean Omean pHmean Smean
## 16 13.70516 3.047317 6.832690 8.544974 29.89671
## 12 15.41718 8.036462 8.324053 8.787757 29.67637
## 13 14.71093 7.029254 8.245302 8.726635 29.75984
## 26 15.41405 8.159419 9.247991 8.749234 29.74256
## 21 14.96545 2.038832 7.672591 8.685609 29.78388
## 9 NA NA NA NA NA
## 6 NA NA NA NA NA
## 20 NA NA NA NA NA
## 18 NA NA NA NA NA
## 24 NA NA NA NA NA
## 10 NA NA NA NA NA
## 17 NA NA NA NA NA
## 22 NA NA NA NA NA
## 19 NA NA NA NA NA
Micro_Month<-ggplot() +
geom_polygon(data=hull.data,aes(x=NMDS1,y=NMDS2,fill=Month,group=Month),alpha=0.20, size=0.1, linetype=1, colour="black") + # add the convex hulls
geom_point(data=data.scores,aes(x=NMDS1,y=NMDS2,shape=Month,colour=Month),size=1) + # add the point markers
scale_colour_manual(labels = c("August","July","September"),values=c("#619CFF", "#F8766D","#00BA38")) +
scale_fill_manual(labels = c("August","July","September"),values=c("#619CFF", "#F8766D","#00BA38"))+
scale_shape_manual(labels = c("August","July","September"),values=c(16, 18,17))+
coord_equal() +
theme_bw() +
theme(legend.key.size = unit(2, 'mm'))+
ylim(-1.2,1.2)+
xlim(-1.2,1.2)+
theme(
axis.title.x = element_text(size=9),
axis.title.y = element_text(size=9),
panel.background = element_blank(),
panel.grid.major = element_blank(),
axis.text=element_text(size=7),
panel.grid.minor = element_blank(),
plot.background = element_blank(),
legend.text = element_text(size=8),
legend.title = element_text(size=8),legend.position=c(0.18, 0.15))+
annotate("text", label = "2D Stress: 0.17", x = 0.8, y = 1.15, size = 3, colour = "black")+
theme(panel.background = element_rect(fill="white"),plot.background = element_rect(fill = "white",linewidth = 0))+
annotate("text",x=-1.1, y=1.1, label= "c",size=8)
Micro_Month
Combine location, year and month plots
Micro_plot<-ggarrange(Micro_location, Micro_Year, Micro_Month,
ncol = 3, nrow = 1)
Micro_plot
save plot
setwd("/Users/hailaschultz/Dropbox/Other studies/Aurelia project/Data Analysis/output")
ggsave(filename = "Micro_plot.png", plot = Micro_plot, height = 80, width = 252, units="mm", device='png', dpi=600)
ggsave(filename = "Micro_plot.tif", plot = Micro_plot, height = 80, width = 252, units="mm", device='tiff', dpi=600)