Last updated: 2022-08-13

Checks: 6 1

Knit directory: Density_and_sexual_selection_2022/

This reproducible R Markdown analysis was created with workflowr (version 1.7.0). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


The R Markdown is untracked by Git. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish to commit the R Markdown file and build the HTML.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20210613) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version f89f7c1. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Ignored files:
    Ignored:    .Rhistory
    Ignored:    .Rproj.user/
    Ignored:    analysis/figure/

Untracked files:
    Untracked:  analysis/a_start.Rmd
    Untracked:  analysis/index6.Rmd

Unstaged changes:
    Modified:   analysis/_site.yml
    Modified:   analysis/index.Rmd
    Modified:   analysis/index2.Rmd
    Modified:   analysis/index3.Rmd
    Modified:   analysis/index4.Rmd
    Modified:   analysis/index5.Rmd
    Deleted:    analysis/start.Rmd

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


There are no past versions. Publish this analysis with wflow_publish() to start tracking its development.


Supplementary material reporting R code for the manuscript ‘Population density affects sexual selection in the red flour beetle’.

Load and prepare data

Before we started the analyses, we loaded all necessary packages and data.

#load packages
rm(list = ls())
library(ggeffects)
library(ggplot2)
library(gridExtra)
library(lme4)
library(lmerTest)
library(readr)
library(dplyr)
library(EnvStats)
library(cowplot)
library(gridGraphics)
library(car)
library(RColorBrewer)
library(boot)
library(data.table)
library(base)
library(tidyr)
library(ICC)

#load data
DB_data=read_delim("./data/DB_AllData_V04.CSV",";", escape_double = FALSE, trim_ws = TRUE)

#Set factors and level factors
DB_data$Week=as.factor(DB_data$Week)

DB_data$Date=as.factor(DB_data$Date)

DB_data$Sex=as.factor(DB_data$Sex)

DB_data$Gr_size=as.factor(DB_data$Gr_size)
DB_data$Gr_size <- factor(DB_data$Gr_size, levels=c("SG","LG"))

DB_data$Area=as.factor(DB_data$Area)

#Load Body mass data
DB_BM_female <- read_delim("./data/DB_mass_focals_female.CSV", 
                           ";", escape_double = FALSE, trim_ws = TRUE)

DB_BM_male <- read_delim("./data/DB_mass_focals_males.CSV", 
                         ";", escape_double = FALSE, trim_ws = TRUE)

DB_data_m=merge(DB_data,DB_BM_male,by.x = 'Well_ID',by.y = 'ID_male_focals')
DB_data_f=merge(DB_data,DB_BM_female,by.x = 'F1_ID',by.y = 'ID_female_focals')
DB_data=rbind(DB_data_m,DB_data_f)

###Exclude incomplete data
DB_data=DB_data[DB_data$excluded!=1,]

#Exclude zero MS (all data)####
DB_data=DB_data[DB_data$MatingPartners_number!=0,]

#Calculate total offspring number ####

DB_data$Total_N_MTP1=colSums(rbind(DB_data$N_MTP1_1,DB_data$N_MTP1_2,DB_data$N_MTP1_3,DB_data$N_MTP1_4,DB_data$N_MTP1_5,DB_data$N_MTP1_6), na.rm = T)
DB_data$Total_N_Rd=colSums(rbind(DB_data$N_RD_1,DB_data$N_RD_2,DB_data$N_RD_3,DB_data$N_RD_4,DB_data$N_RD_5,DB_data$N_RD_6), na.rm = T)/DB_data$N_comp

#Calculate proportional RS ####
#Percentage focal offspring
DB_data$m_prop_RS=NA
DB_data$m_prop_RS=(DB_data$Total_N_MTP1/(DB_data$Total_N_MTP1+DB_data$Total_N_Rd))*100
DB_data$m_prop_RS[DB_data$Sex=='F']=NA
DB_data$f_prop_RS=NA
DB_data$f_prop_RS=(DB_data$Total_N_MTP1/(DB_data$Total_N_MTP1+DB_data$Total_N_Rd))*100
DB_data$f_prop_RS[DB_data$Sex=='M']=NA

#Calculate proportion of successful matings ####
DB_data$Prop_MS=NA
DB_data$Prop_MS=DB_data$Matings_number/(DB_data$Attempts_number+DB_data$Matings_number)
DB_data$Prop_MS[DB_data$Prop_MS==0]=NA

#Calculate total encounters ####
DB_data$Total_Encounters=NA
DB_data$Total_Encounters=DB_data$Attempts_number+DB_data$Matings_number

# Treatment identifier for each density ####
n=1
DB_data$Treatment=NA
for(n in 1:length(DB_data$Sex)){if(DB_data$Gr_size[n]=='SG' && DB_data$Area[n]=='Large'){DB_data$Treatment[n]='D = 0.26'
}else if(DB_data$Gr_size[n]=='LG' && DB_data$Area[n]=='Large'){DB_data$Treatment[n]='D = 0.52'
}else if(DB_data$Gr_size[n]=='SG' && DB_data$Area[n]=='Small'){DB_data$Treatment[n]='D = 0.67'
}else if(DB_data$Gr_size[n]=='LG' && DB_data$Area[n]=='Small'){DB_data$Treatment[n]='D = 1.33'
}else{DB_data$Treatment[n]=NA}}

DB_data$Treatment=as.factor(DB_data$Treatment)

# Exclude Incubator 3 data #### -> poor performance 
DB_data_clean=DB_data[DB_data$Incu3!=1,]

# Calculate genetic MS ####
# Only clean data
DB_data_clean$gMS=NA 
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_1[i]>=1 & !is.na (DB_data_clean$N_MTP1_1[i])){
  DB_data_clean$gMS[i]=1
}else{DB_data_clean$gMS[i]=0}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_2[i]>=1 & !is.na (DB_data_clean$N_MTP1_2[i])){
  DB_data_clean$gMS[i]=DB_data_clean$gMS[i]+1
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_3[i]>=1 & !is.na (DB_data_clean$N_MTP1_3[i])){
  DB_data_clean$gMS[i]=DB_data_clean$gMS[i]+1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_4[i]>=1 & !is.na (DB_data_clean$N_MTP1_4[i])){
  DB_data_clean$gMS[i]=DB_data_clean$gMS[i]+1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_5[i]>=1 & !is.na (DB_data_clean$N_MTP1_5[i])){
  DB_data_clean$gMS[i]=DB_data_clean$gMS[i]+1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_6[i]>=1 & !is.na (DB_data_clean$N_MTP1_6[i])){
  DB_data_clean$gMS[i]=DB_data_clean$gMS[i]+1}else{}}

# All data
DB_data$gMS=NA 
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_1[i]>=1 & !is.na (DB_data$N_MTP1_1[i])){
  DB_data$gMS[i]=1
}else{DB_data$gMS[i]=0}}
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_2[i]>=1 & !is.na (DB_data$N_MTP1_2[i])){
  DB_data$gMS[i]=DB_data$gMS[i]+1
}else{}}
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_3[i]>=1 & !is.na (DB_data$N_MTP1_3[i])){
  DB_data$gMS[i]=DB_data$gMS[i]+1}else{}}
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_4[i]>=1 & !is.na (DB_data$N_MTP1_4[i])){
  DB_data$gMS[i]=DB_data$gMS[i]+1}else{}}
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_5[i]>=1 & !is.na (DB_data$N_MTP1_5[i])){
  DB_data$gMS[i]=DB_data$gMS[i]+1}else{}}
for(i in 1:length(DB_data$Sex)) {if (DB_data$N_MTP1_6[i]>=1 & !is.na (DB_data$N_MTP1_6[i])){
  DB_data$gMS[i]=DB_data$gMS[i]+1}else{}}

#Calculate Rd competition RS ####
DB_data_clean$m_RS_Rd_comp=NA
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_1[i]>=1 & !is.na (DB_data_clean$N_MTP1_1[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$N_RD_1[i]
}else{DB_data_clean$m_RS_Rd_comp[i]=0}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_2[i]>=1 & !is.na (DB_data_clean$N_MTP1_2[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$m_RS_Rd_comp[i]+DB_data_clean$N_RD_2[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_3[i]>=1 & !is.na (DB_data_clean$N_MTP1_3[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$m_RS_Rd_comp[i]+DB_data_clean$N_RD_3[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_4[i]>=1 & !is.na (DB_data_clean$N_MTP1_4[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$m_RS_Rd_comp[i]+DB_data_clean$N_RD_4[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_5[i]>=1 & !is.na (DB_data_clean$N_MTP1_5[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$m_RS_Rd_comp[i]+DB_data_clean$N_RD_5[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_6[i]>=1 & !is.na (DB_data_clean$N_MTP1_6[i])){
  DB_data_clean$m_RS_Rd_comp[i]=DB_data_clean$m_RS_Rd_comp[i]+DB_data_clean$N_RD_6[i]
}else{}}

# Check matings of males #### -> add copulations where offspring found but no copulation registered

for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_1[i]>=1 && DB_data_clean$Cop_Fe_1[i]==0 & !is.na (DB_data_clean$Cop_Fe_1[i])& !is.na (DB_data_clean$N_MTP1_1[i])){
  DB_data_clean$Cop_Fe_1[i]=1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_2[i]>=1 && DB_data_clean$Cop_Fe_2[i]==0 & !is.na (DB_data_clean$Cop_Fe_2[i])& !is.na (DB_data_clean$N_MTP1_2[i])){
  DB_data_clean$Cop_Fe_2[i]=1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_3[i]>=1 && DB_data_clean$Cop_Fe_3[i]==0 & !is.na (DB_data_clean$Cop_Fe_3[i])& !is.na (DB_data_clean$N_MTP1_3[i])){
  DB_data_clean$Cop_Fe_3[i]=1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_4[i]>=1 && DB_data_clean$Cop_Fe_4[i]==0 & !is.na (DB_data_clean$Cop_Fe_4[i])& !is.na (DB_data_clean$N_MTP1_4[i])){
  DB_data_clean$Cop_Fe_4[i]=1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_5[i]>=1 && DB_data_clean$Cop_Fe_5[i]==0 & !is.na (DB_data_clean$Cop_Fe_5[i])& !is.na (DB_data_clean$N_MTP1_5[i])){
  DB_data_clean$Cop_Fe_5[i]=1}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$N_MTP1_6[i]>=1 && DB_data_clean$Cop_Fe_6[i]==0 & !is.na (DB_data_clean$Cop_Fe_6[i])& !is.na (DB_data_clean$N_MTP1_6[i])){
  DB_data_clean$Cop_Fe_6[i]=1}else{}}

# Calculate Rd competition RS of all copulations with potential sperm competition with the  focal ####
DB_data_clean$m_RS_Rd_comp_full=NA
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_1[i]>=1 & !is.na (DB_data_clean$Cop_Fe_1[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$N_RD_1[i]
}else{DB_data_clean$m_RS_Rd_comp_full[i]=0}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_2[i]>=1 & !is.na (DB_data_clean$Cop_Fe_2[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$m_RS_Rd_comp_full[i]+DB_data_clean$N_RD_2[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_3[i]>=1 & !is.na (DB_data_clean$Cop_Fe_3[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$m_RS_Rd_comp_full[i]+DB_data_clean$N_RD_3[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_4[i]>=1 & !is.na (DB_data_clean$Cop_Fe_4[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$m_RS_Rd_comp_full[i]+DB_data_clean$N_RD_4[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_5[i]>=1 & !is.na (DB_data_clean$Cop_Fe_5[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$m_RS_Rd_comp_full[i]+DB_data_clean$N_RD_5[i]
}else{}}
for(i in 1:length(DB_data_clean$Sex)) {if (DB_data_clean$Cop_Fe_6[i]>=1 & !is.na (DB_data_clean$Cop_Fe_6[i])){
  DB_data_clean$m_RS_Rd_comp_full[i]=DB_data_clean$m_RS_Rd_comp_full[i]+DB_data_clean$N_RD_6[i]
}else{}}

# Calculate trait values ####
# Males ####
# Total number of matings (all data)
DB_data$m_TotMatings=NA
DB_data$m_TotMatings=DB_data$Matings_number
DB_data$m_TotMatings[DB_data$Sex=='F']=NA

# Avarage mating duration (all data)
DB_data$MatingDuration_av[DB_data$MatingDuration_av==0]=NA
DB_data$m_MatingDuration_av=NA
DB_data$m_MatingDuration_av=DB_data$MatingDuration_av
DB_data$m_MatingDuration_av[DB_data$Sex=='F']=NA
DB_data$MatingDuration_av[DB_data$MatingDuration_av==0]=NA

# Total number of mating attempts (all data)
DB_data$m_Attempts_number=NA
DB_data$m_Attempts_number=DB_data$Attempts_number
DB_data$m_Attempts_number[DB_data$Sex=='F']=NA

# Proportional mating success (all data)
DB_data$m_Prop_MS=NA
DB_data$m_Prop_MS=DB_data$Prop_MS
DB_data$m_Prop_MS[DB_data$Sex=='F']=NA

#Total encounters (all data)
DB_data$m_Total_Encounters=NA
DB_data$m_Total_Encounters=DB_data$Total_Encounters
DB_data$m_Total_Encounters[DB_data$Sex=='F']=NA

# Reproductive success
DB_data_clean$m_RS=NA
DB_data_clean$m_RS=DB_data_clean$Total_N_MTP1
DB_data_clean$m_RS[DB_data_clean$Sex=='F']=NA

# Mating success (number of different partners)
# Clean data
DB_data_clean$m_cMS=NA
DB_data_clean$m_cMS=DB_data_clean$MatingPartners_number
DB_data_clean$m_cMS[DB_data_clean$Sex=='F']=NA
for(i in 1:length(DB_data_clean$m_cMS)) {if (DB_data_clean$gMS[i]>DB_data_clean$m_cMS[i] & !is.na (DB_data_clean$m_cMS[i])){
  DB_data_clean$m_cMS[i]=DB_data_clean$gMS[i]}else{}}

# All data
DB_data$m_cMS=NA
DB_data$m_cMS=DB_data$MatingPartners_number
DB_data$m_cMS[DB_data$Sex=='F']=NA
for(i in 1:length(DB_data$m_cMS)) {if (DB_data$gMS[i]>DB_data$m_cMS[i] & !is.na (DB_data$m_cMS[i])){
  DB_data$m_cMS[i]=DB_data$gMS[i]}else{}}

# Insemination success
DB_data_clean$m_InSuc=NA
DB_data_clean$m_InSuc=DB_data_clean$gMS/DB_data_clean$m_cMS
for(i in 1:length(DB_data_clean$m_InSuc)) {if (DB_data_clean$m_cMS[i]==0 & !is.na (DB_data_clean$m_cMS[i])){
  DB_data_clean$m_InSuc[i]=NA}else{}}

# Fertilization success
DB_data_clean$m_feSuc=NA
DB_data_clean$m_feSuc=DB_data_clean$m_RS/(DB_data_clean$m_RS+DB_data_clean$m_RS_Rd_comp)
for(i in 1:length(DB_data_clean$m_feSuc)) {if (DB_data_clean$m_InSuc[i]==0 | is.na (DB_data_clean$m_InSuc[i])){
  DB_data_clean$m_feSuc[i]=NA}else{}}

# Fecundicty of partners
DB_data_clean$m_pFec=NA
DB_data_clean$m_pFec=(DB_data_clean$m_RS+DB_data_clean$m_RS_Rd_comp)/DB_data_clean$gMS
for(i in 1:length(DB_data_clean$m_pFec)) {if (DB_data_clean$gMS[i]==0){
  DB_data_clean$m_pFec[i]=NA}else{}}

# Paternity success
DB_data_clean$m_PS=NA
DB_data_clean$m_PS=DB_data_clean$m_RS/(DB_data_clean$m_RS+DB_data_clean$m_RS_Rd_comp_full)
for(i in 1:length(DB_data_clean$m_PS)) {if (DB_data_clean$m_RS[i]==0 & !is.na (DB_data_clean$m_RS[i])){
  DB_data_clean$m_PS[i]=NA}else{}}

# Fecundity of partners in all females the focal copulated with
DB_data_clean$m_pFec_compl=NA
DB_data_clean$m_pFec_compl=(DB_data_clean$m_RS+DB_data_clean$m_RS_Rd_comp_full)/DB_data_clean$m_cMS
for(i in 1:length(DB_data_clean$m_pFec)) {if (DB_data_clean$m_cMS[i]==0 & !is.na (DB_data_clean$m_cMS[i])){
  DB_data_clean$m_pFec[i]=NA}else{}}

# Females ####
# Total number of matings (all data)
DB_data$f_TotMatings=NA
DB_data$f_TotMatings=DB_data$Matings_number
DB_data$f_TotMatings[DB_data$Sex=='M']=NA

# Avarage mating duration (all data)
DB_data$f_MatingDuration_av=NA
DB_data$f_MatingDuration_av=DB_data$MatingDuration_av
DB_data$f_MatingDuration_av[DB_data$Sex=='M']=NA
DB_data$MatingDuration_av[DB_data$MatingDuration_av==0]=NA

# Total number of mating attempts (all data)
DB_data$f_Attempts_number=NA
DB_data$f_Attempts_number=DB_data$Attempts_number
DB_data$f_Attempts_number[DB_data$Sex=='M']=NA

# Proportional mating success (all data)
DB_data$f_Prop_MS=NA
DB_data$f_Prop_MS=DB_data$Prop_MS
DB_data_clean$f_Prop_MS[DB_data_clean$Sex=='M']=NA

#Total encounters (all data)
DB_data$f_Total_Encounters=NA
DB_data$f_Total_Encounters=DB_data$Total_Encounters
DB_data$f_Total_Encounters[DB_data$Sex=='M']=NA

# Reproductive success
DB_data_clean$f_RS=NA
DB_data_clean$f_RS=DB_data_clean$Total_N_MTP1
DB_data_clean$f_RS[DB_data_clean$Sex=='M']=NA

# Mating success (number of different partners)
# Clean data
DB_data_clean$f_cMS=NA
DB_data_clean$f_cMS=DB_data_clean$MatingPartners_number
DB_data_clean$f_cMS[DB_data_clean$Sex=='M']=NA
for(i in 1:length(DB_data_clean$f_cMS)) {if (DB_data_clean$gMS[i]>DB_data_clean$f_cMS[i] & !is.na (DB_data_clean$f_cMS[i])){
  DB_data_clean$f_cMS[i]=DB_data_clean$gMS[i]}else{}}

# All data
DB_data$f_cMS=NA
DB_data$f_cMS=DB_data$MatingPartners_number
DB_data$f_cMS[DB_data$Sex=='M']=NA
for(i in 1:length(DB_data$f_cMS)) {if (DB_data$gMS[i]>DB_data$f_cMS[i] & !is.na (DB_data$f_cMS[i])){
  DB_data$f_cMS[i]=DB_data$gMS[i]}else{}}

# Fecundity per mating partner
DB_data_clean$f_fec_pMate=NA
DB_data_clean$f_fec_pMate=DB_data_clean$f_RS/DB_data_clean$f_cMS
for(i in 1:length(DB_data_clean$f_fec_pMate)) {if (DB_data_clean$f_RS[i]==0 & !is.na (DB_data_clean$f_RS[i])){
  DB_data_clean$f_fec_pMate[i]=0}else{}}
for(i in 1:length(DB_data_clean$f_fec_pMate)) {if (DB_data_clean$f_cMS[i]==0 & !is.na (DB_data_clean$f_cMS[i])){
  DB_data_clean$f_fec_pMate[i]=NA}else{}}

# Relativize data per treatment and sex ####
# Small group + large Area
DB_data_clean_0.26=DB_data_clean[DB_data_clean$Treatment=='D = 0.26',]

DB_data_clean_0.26$rel_m_RS=NA
DB_data_clean_0.26$rel_m_prop_RS=NA
DB_data_clean_0.26$rel_m_cMS=NA
DB_data_clean_0.26$rel_m_InSuc=NA
DB_data_clean_0.26$rel_m_feSuc=NA
DB_data_clean_0.26$rel_m_pFec=NA
DB_data_clean_0.26$rel_m_PS=NA
DB_data_clean_0.26$rel_m_pFec_compl=NA

DB_data_clean_0.26$rel_f_RS=NA
DB_data_clean_0.26$rel_f_prop_RS=NA
DB_data_clean_0.26$rel_f_cMS=NA
DB_data_clean_0.26$rel_f_fec_pMate=NA

DB_data_clean_0.26$rel_m_RS=DB_data_clean_0.26$m_RS/mean(DB_data_clean_0.26$m_RS,na.rm=T)
DB_data_clean_0.26$rel_m_prop_RS=DB_data_clean_0.26$m_prop_RS/mean(DB_data_clean_0.26$m_prop_RS,na.rm=T)
DB_data_clean_0.26$rel_m_cMS=DB_data_clean_0.26$m_cMS/mean(DB_data_clean_0.26$m_cMS,na.rm=T)
DB_data_clean_0.26$rel_m_InSuc=DB_data_clean_0.26$m_InSuc/mean(DB_data_clean_0.26$m_InSuc,na.rm=T)
DB_data_clean_0.26$rel_m_feSuc=DB_data_clean_0.26$m_feSuc/mean(DB_data_clean_0.26$m_feSuc,na.rm=T)
DB_data_clean_0.26$rel_m_pFec=DB_data_clean_0.26$m_pFec/mean(DB_data_clean_0.26$m_pFec,na.rm=T)
DB_data_clean_0.26$rel_m_PS=DB_data_clean_0.26$m_PS/mean(DB_data_clean_0.26$m_PS,na.rm=T)
DB_data_clean_0.26$rel_m_pFec_compl=DB_data_clean_0.26$m_pFec_compl/mean(DB_data_clean_0.26$m_pFec_compl,na.rm=T)

DB_data_clean_0.26$rel_f_RS=DB_data_clean_0.26$f_RS/mean(DB_data_clean_0.26$f_RS,na.rm=T)
DB_data_clean_0.26$rel_f_prop_RS=DB_data_clean_0.26$f_prop_RS/mean(DB_data_clean_0.26$f_prop_RS,na.rm=T)
DB_data_clean_0.26$rel_f_cMS=DB_data_clean_0.26$f_cMS/mean(DB_data_clean_0.26$f_cMS,na.rm=T)
DB_data_clean_0.26$rel_f_fec_pMate=DB_data_clean_0.26$f_fec_pMate/mean(DB_data_clean_0.26$f_fec_pMate,na.rm=T)

# Large group + large Area
DB_data_clean_0.52=DB_data_clean[DB_data_clean$Treatment=='D = 0.52',]
#Relativize data

DB_data_clean_0.52$rel_m_RS=NA
DB_data_clean_0.52$rel_m_prop_RS=NA
DB_data_clean_0.52$rel_m_cMS=NA
DB_data_clean_0.52$rel_m_InSuc=NA
DB_data_clean_0.52$rel_m_feSuc=NA
DB_data_clean_0.52$rel_m_pFec=NA
DB_data_clean_0.52$rel_m_PS=NA
DB_data_clean_0.52$rel_m_pFec_compl=NA

DB_data_clean_0.52$rel_f_RS=NA
DB_data_clean_0.52$rel_f_prop_RS=NA
DB_data_clean_0.52$rel_f_cMS=NA
DB_data_clean_0.52$rel_f_fec_pMate=NA

DB_data_clean_0.52$rel_m_RS=DB_data_clean_0.52$m_RS/mean(DB_data_clean_0.52$m_RS,na.rm=T)
DB_data_clean_0.52$rel_m_prop_RS=DB_data_clean_0.52$m_prop_RS/mean(DB_data_clean_0.52$m_prop_RS,na.rm=T)
DB_data_clean_0.52$rel_m_cMS=DB_data_clean_0.52$m_cMS/mean(DB_data_clean_0.52$m_cMS,na.rm=T)
DB_data_clean_0.52$rel_m_InSuc=DB_data_clean_0.52$m_InSuc/mean(DB_data_clean_0.52$m_InSuc,na.rm=T)
DB_data_clean_0.52$rel_m_feSuc=DB_data_clean_0.52$m_feSuc/mean(DB_data_clean_0.52$m_feSuc,na.rm=T)
DB_data_clean_0.52$rel_m_pFec=DB_data_clean_0.52$m_pFec/mean(DB_data_clean_0.52$m_pFec,na.rm=T)
DB_data_clean_0.52$rel_m_PS=DB_data_clean_0.52$m_PS/mean(DB_data_clean_0.52$m_PS,na.rm=T)
DB_data_clean_0.52$rel_m_pFec_compl=DB_data_clean_0.52$m_pFec_compl/mean(DB_data_clean_0.52$m_pFec_compl,na.rm=T)

DB_data_clean_0.52$rel_f_RS=DB_data_clean_0.52$f_RS/mean(DB_data_clean_0.52$f_RS,na.rm=T)
DB_data_clean_0.52$rel_f_prop_RS=DB_data_clean_0.52$f_prop_RS/mean(DB_data_clean_0.52$f_prop_RS,na.rm=T)
DB_data_clean_0.52$rel_f_cMS=DB_data_clean_0.52$f_cMS/mean(DB_data_clean_0.52$f_cMS,na.rm=T)
DB_data_clean_0.52$rel_f_fec_pMate=DB_data_clean_0.52$f_fec_pMate/mean(DB_data_clean_0.52$f_fec_pMate,na.rm=T)

# Small group + small Area
DB_data_clean_0.67=DB_data_clean[DB_data_clean$Treatment=='D = 0.67',]
#Relativize data
DB_data_clean_0.67$rel_m_RS=NA
DB_data_clean_0.67$rel_m_prop_RS=NA
DB_data_clean_0.67$rel_m_cMS=NA
DB_data_clean_0.67$rel_m_InSuc=NA
DB_data_clean_0.67$rel_m_feSuc=NA
DB_data_clean_0.67$rel_m_pFec=NA
DB_data_clean_0.67$rel_m_PS=NA
DB_data_clean_0.67$rel_m_pFec_compl=NA

DB_data_clean_0.67$rel_f_RS=NA
DB_data_clean_0.67$rel_f_prop_RS=NA
DB_data_clean_0.67$rel_f_cMS=NA
DB_data_clean_0.67$rel_f_fec_pMate=NA

DB_data_clean_0.67$rel_m_RS=DB_data_clean_0.67$m_RS/mean(DB_data_clean_0.67$m_RS,na.rm=T)
DB_data_clean_0.67$rel_m_prop_RS=DB_data_clean_0.67$m_prop_RS/mean(DB_data_clean_0.67$m_prop_RS,na.rm=T)
DB_data_clean_0.67$rel_m_cMS=DB_data_clean_0.67$m_cMS/mean(DB_data_clean_0.67$m_cMS,na.rm=T)
DB_data_clean_0.67$rel_m_InSuc=DB_data_clean_0.67$m_InSuc/mean(DB_data_clean_0.67$m_InSuc,na.rm=T)
DB_data_clean_0.67$rel_m_feSuc=DB_data_clean_0.67$m_feSuc/mean(DB_data_clean_0.67$m_feSuc,na.rm=T)
DB_data_clean_0.67$rel_m_pFec=DB_data_clean_0.67$m_pFec/mean(DB_data_clean_0.67$m_pFec,na.rm=T)
DB_data_clean_0.67$rel_m_PS=DB_data_clean_0.67$m_PS/mean(DB_data_clean_0.67$m_PS,na.rm=T)
DB_data_clean_0.67$rel_m_pFec_compl=DB_data_clean_0.67$m_pFec_compl/mean(DB_data_clean_0.67$m_pFec_compl,na.rm=T)

DB_data_clean_0.67$rel_f_RS=DB_data_clean_0.67$f_RS/mean(DB_data_clean_0.67$f_RS,na.rm=T)
DB_data_clean_0.67$rel_f_prop_RS=DB_data_clean_0.67$f_prop_RS/mean(DB_data_clean_0.67$f_prop_RS,na.rm=T)
DB_data_clean_0.67$rel_f_cMS=DB_data_clean_0.67$f_cMS/mean(DB_data_clean_0.67$f_cMS,na.rm=T)
DB_data_clean_0.67$rel_f_fec_pMate=DB_data_clean_0.67$f_fec_pMate/mean(DB_data_clean_0.67$f_fec_pMate,na.rm=T)

# Large group + small Area
DB_data_clean_1.33=DB_data_clean[DB_data_clean$Treatment=='D = 1.33',]
#Relativize data

DB_data_clean_1.33$rel_m_RS=NA
DB_data_clean_1.33$rel_m_prop_RS=NA
DB_data_clean_1.33$rel_m_cMS=NA
DB_data_clean_1.33$rel_m_InSuc=NA
DB_data_clean_1.33$rel_m_feSuc=NA
DB_data_clean_1.33$rel_m_pFec=NA
DB_data_clean_1.33$rel_m_PS=NA
DB_data_clean_1.33$rel_m_pFec_compl=NA

DB_data_clean_1.33$rel_f_RS=NA
DB_data_clean_1.33$rel_f_prop_RS=NA
DB_data_clean_1.33$rel_f_cMS=NA
DB_data_clean_1.33$rel_f_fec_pMate=NA

DB_data_clean_1.33$rel_m_RS=DB_data_clean_1.33$m_RS/mean(DB_data_clean_1.33$m_RS,na.rm=T)
DB_data_clean_1.33$rel_m_prop_RS=DB_data_clean_1.33$m_prop_RS/mean(DB_data_clean_1.33$m_prop_RS,na.rm=T)
DB_data_clean_1.33$rel_m_cMS=DB_data_clean_1.33$m_cMS/mean(DB_data_clean_1.33$m_cMS,na.rm=T)
DB_data_clean_1.33$rel_m_InSuc=DB_data_clean_1.33$m_InSuc/mean(DB_data_clean_1.33$m_InSuc,na.rm=T)
DB_data_clean_1.33$rel_m_feSuc=DB_data_clean_1.33$m_feSuc/mean(DB_data_clean_1.33$m_feSuc,na.rm=T)
DB_data_clean_1.33$rel_m_pFec=DB_data_clean_1.33$m_pFec/mean(DB_data_clean_1.33$m_pFec,na.rm=T)
DB_data_clean_1.33$rel_m_PS=DB_data_clean_1.33$m_PS/mean(DB_data_clean_1.33$m_PS,na.rm=T)
DB_data_clean_1.33$rel_m_pFec_compl=DB_data_clean_1.33$m_pFec_compl/mean(DB_data_clean_1.33$m_pFec_compl,na.rm=T)

DB_data_clean_1.33$rel_f_RS=DB_data_clean_1.33$f_RS/mean(DB_data_clean_1.33$f_RS,na.rm=T)
DB_data_clean_1.33$rel_f_prop_RS=DB_data_clean_1.33$f_prop_RS/mean(DB_data_clean_1.33$f_prop_RS,na.rm=T)
DB_data_clean_1.33$rel_f_cMS=DB_data_clean_1.33$f_cMS/mean(DB_data_clean_1.33$f_cMS,na.rm=T)
DB_data_clean_1.33$rel_f_fec_pMate=DB_data_clean_1.33$f_fec_pMate/mean(DB_data_clean_1.33$f_fec_pMate,na.rm=T)

# Set colors for figures
colpal=brewer.pal(4, 'Dark2')
colpal2=brewer.pal(3, 'Set1')
colpal3=brewer.pal(4, 'Paired')
slava_ukrajini=(c('#0057B8','#FFD700'))
colorESEB=c('#01519c','#ffdf33')
colorESEB2=c('#1DA1F2','#ffec69')

# Merge data according to treatment #### -> Reduce treatments to area and population size
#Area
DB_data_clean_Large_area=rbind(DB_data_clean_0.26,DB_data_clean_0.52)
DB_data_clean_Small_area=rbind(DB_data_clean_0.67,DB_data_clean_1.33)

#Population size
DB_data_clean_Small_pop=rbind(DB_data_clean_0.26,DB_data_clean_0.67)
DB_data_clean_Large_pop=rbind(DB_data_clean_0.52,DB_data_clean_1.33)

# Merge data according to treatment full data set #### -> Reduce treatments to area and population size
DB_data_0.26=DB_data[DB_data$Treatment=='D = 0.26',]
DB_data_0.52=DB_data[DB_data$Treatment=='D = 0.52',]
DB_data_0.67=DB_data[DB_data$Treatment=='D = 0.67',]
DB_data_1.33=DB_data[DB_data$Treatment=='D = 1.33',]

#Area
DB_data_Large_area_full=rbind(DB_data_0.26,DB_data_0.52)
DB_data_Small_area_full=rbind(DB_data_0.67,DB_data_1.33)

#Population size
DB_data_Small_pop_full=rbind(DB_data_0.26,DB_data_0.67)
DB_data_Large_pop_full=rbind(DB_data_0.52,DB_data_1.33)

Treatment effects

Mating behaviour

We first tested the effect that the density treatments had on the mating behaviour of focal beetles.

Behavioural variables:
- Number of matings
- Number of different mating partners (mating success)
- Mating duration in seconds
- Mating encounters (mating number + mating attempts)
- Proportion of successful matings (mating number/mating number + mating attempts)

Number of matings

p2<-ggplot(DB_data, aes(x=Sex, y=as.numeric(Matings_number),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Number of matings")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,12)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=12,size=4)+
  annotate("text",label='33',x=.65,y=12,size=4)+
  annotate("text",label='53',x=.88,y=12,size=4)+
  annotate("text",label='41',x=1.11,y=12,size=4)+
  annotate("text",label='38',x=1.34,y=12,size=4)+
  annotate("text",label='50',x=1.65,y=12,size=4)+
  annotate("text",label='38',x=1.88,y=12,size=4)+
  annotate("text",label='35',x=2.11,y=12,size=4)+
  annotate("text",label='47',x=2.34,y=12,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0.1,2,0,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))

p2

Figure 1: Effects of density treatments on the number of matings of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Number of matings (quasi-Poisson GLM)
Effect of density on number of matings in females.

mod4.1=glm(f_TotMatings~Gr_size*Area,data=DB_data,family = quasipoisson)
summary(mod4.1)

Call:
glm(formula = f_TotMatings ~ Gr_size * Area, family = quasipoisson, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.5649  -1.0337  -0.2763   0.3408   3.6965  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          1.24360    0.09338  13.318   <2e-16 ***
Gr_sizeLG           -0.36121    0.18228  -1.982   0.0497 *  
AreaSmall           -0.21168    0.15829  -1.337   0.1835    
Gr_sizeLG:AreaSmall  0.28755    0.26274   1.094   0.2759    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 1.421324)

    Null deviance: 164.51  on 129  degrees of freedom
Residual deviance: 156.63  on 126  degrees of freedom
  (148 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 5
Anova(mod4.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: f_TotMatings
             LR Chisq Df Pr(>Chisq)  
Gr_size        4.1427  1    0.04181 *
Area           1.8241  1    0.17683  
Gr_size:Area   1.2065  1    0.27203  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod4.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: f_TotMatings
             LR Chisq Df Pr(>Chisq)  
Gr_size       3.08811  1    0.07887 .
Area          0.74886  1    0.38684  
Gr_size:Area  1.20648  1    0.27203  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


Effect of density on number of matings in males.

mod3.1=glm(m_TotMatings~Gr_size*Area,data=DB_data,family = quasipoisson)
summary(mod3.1)

Call:
glm(formula = m_TotMatings ~ Gr_size * Area, family = quasipoisson, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.4493  -0.9639  -0.1994   0.4255   3.0182  

Coefficients:
                      Estimate Std. Error t value Pr(>|t|)    
(Intercept)          1.1689931  0.1019747  11.464   <2e-16 ***
Gr_sizeLG           -0.3380622  0.1449262  -2.333   0.0211 *  
AreaSmall            0.0002368  0.1360628   0.002   0.9986    
Gr_sizeLG:AreaSmall  0.0389102  0.2087867   0.186   0.8524    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 1.07108)

    Null deviance: 150.57  on 147  degrees of freedom
Residual deviance: 139.99  on 144  degrees of freedom
  (130 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 5
Anova(mod3.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: m_TotMatings
             LR Chisq Df Pr(>Chisq)  
Gr_size        5.4215  1    0.01989 *
Area           0.0000  1    0.99861  
Gr_size:Area   0.0347  1    0.85223  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod3.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: m_TotMatings
             LR Chisq Df Pr(>Chisq)   
Gr_size        9.4478  1   0.002114 **
Area           0.0263  1   0.871205   
Gr_size:Area   0.0347  1   0.852230   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Number of mating partners

p3<-ggplot(DB_data, aes(x=Sex, y=as.numeric(MatingPartners_number),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Number of partners")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,5.4)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=5.4,size=4)+
  annotate("text",label='33',x=.65,y=5.4,size=4)+
  annotate("text",label='53',x=.88,y=5.4,size=4)+
  annotate("text",label='41',x=1.11,y=5.4,size=4)+
  annotate("text",label='38',x=1.34,y=5.4,size=4)+
  annotate("text",label='50',x=1.65,y=5.4,size=4)+
  annotate("text",label='38',x=1.88,y=5.4,size=4)+
  annotate("text",label='35',x=2.11,y=5.4,size=4)+
  annotate("text",label='47',x=2.34,y=5.4,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0,2,0,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))
p3

Figure 2: Effects of density treatments on the number of mating partners of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Number of mating partners (quasi-Poisson GLM)
Effect of density on number of mating partners in females.

mod6.1=glm(f_cMS~Gr_size*Area,data=DB_data,family = quasipoisson)
summary(mod6.1)

Call:
glm(formula = f_cMS ~ Gr_size * Area, family = quasipoisson, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.8726  -0.6770   0.0151   0.2937   1.8498  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          0.68245    0.06400  10.663   <2e-16 ***
Gr_sizeLG           -0.03186    0.11125  -0.286   0.7750    
AreaSmall           -0.20442    0.10823  -1.889   0.0612 .  
Gr_sizeLG:AreaSmall  0.31597    0.16231   1.947   0.0538 .  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 0.380927)

    Null deviance: 49.041  on 129  degrees of freedom
Residual deviance: 46.650  on 126  degrees of freedom
  (148 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 4
Anova(mod6.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: f_cMS
             LR Chisq Df Pr(>Chisq)  
Gr_size        0.0823  1    0.77417  
Area           3.6353  1    0.05657 .
Gr_size:Area   3.8259  1    0.05047 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod6.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: f_cMS
             LR Chisq Df Pr(>Chisq)  
Gr_size        2.0658  1    0.15064  
Area           0.6638  1    0.41523  
Gr_size:Area   3.8259  1    0.05047 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


Effect of density on number of mating partners in males.

mod5.1=glm(m_cMS~Gr_size*Area,data=DB_data,family = quasipoisson)
summary(mod5.1)

Call:
glm(formula = m_cMS ~ Gr_size * Area, family = quasipoisson, 
    data = DB_data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.72066  -0.65999   0.09259   0.21801   1.91666  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          0.59471    0.08109   7.334 1.49e-11 ***
Gr_sizeLG            0.01555    0.10622   0.146    0.884    
AreaSmall           -0.05978    0.10965  -0.545    0.586    
Gr_sizeLG:AreaSmall  0.09307    0.15229   0.611    0.542    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 0.3813407)

    Null deviance: 52.151  on 147  degrees of freedom
Residual deviance: 51.738  on 144  degrees of freedom
  (130 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 4
Anova(mod5.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: m_cMS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.02146  1     0.8835
Area          0.29669  1     0.5860
Gr_size:Area  0.37275  1     0.5415
Anova(mod5.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: m_cMS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.63583  1     0.4252
Area          0.02296  1     0.8796
Gr_size:Area  0.37275  1     0.5415

Mating duration

p4<-ggplot(DB_data, aes(x=Sex, y=as.numeric(MatingDuration_av),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Mean mating duration")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,390)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=390,size=4)+
  annotate("text",label='25',x=.65,y=390,size=4)+
  annotate("text",label='50',x=.88,y=390,size=4)+
  annotate("text",label='29',x=1.11,y=390,size=4)+
  annotate("text",label='34',x=1.34,y=390,size=4)+
  annotate("text",label='45',x=1.65,y=390,size=4)+
  annotate("text",label='35',x=1.88,y=390,size=4)+
  annotate("text",label='32',x=2.11,y=390,size=4)+
  annotate("text",label='45',x=2.34,y=390,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0,2,0.1,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))
p4

Figure 3: Effects of density treatments on the Mating duration (in seconds) of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Mating duration (Gaussian GLM)
Effect of density on mating duration in females.

mod8.1=glm(f_MatingDuration_av~Gr_size*Area,data=DB_data,family = gaussian)
summary(mod8.1)

Call:
glm(formula = f_MatingDuration_av ~ Gr_size * Area, family = gaussian, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-43.228  -19.983   -5.731   13.658  257.772  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)           80.228      5.125  15.655   <2e-16 ***
Gr_sizeLG            -13.982      8.814  -1.586    0.115    
AreaSmall             -6.548      8.129  -0.805    0.422    
Gr_sizeLG:AreaSmall   12.448     12.712   0.979    0.329    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 1234.32)

    Null deviance: 158874  on 129  degrees of freedom
Residual deviance: 155524  on 126  degrees of freedom
  (148 Beobachtungen als fehlend gelöscht)
AIC: 1300.2

Number of Fisher Scoring iterations: 2
Anova(mod8.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: f_MatingDuration_av
             LR Chisq Df Pr(>Chisq)
Gr_size       2.51631  1     0.1127
Area          0.64880  1     0.4205
Gr_size:Area  0.95889  1     0.3275
Anova(mod8.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: f_MatingDuration_av
             LR Chisq Df Pr(>Chisq)
Gr_size       1.58548  1     0.2080
Area          0.05438  1     0.8156
Gr_size:Area  0.95889  1     0.3275


Effect of density on mating duration in males.

mod7.1=glm(m_MatingDuration_av~Gr_size*Area,data=DB_data,family = gaussian)
summary(mod7.1)

Call:
glm(formula = m_MatingDuration_av ~ Gr_size * Area, family = gaussian, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-71.249  -20.238  -11.011    9.588  290.421  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)           76.034      6.952  10.937   <2e-16 ***
Gr_sizeLG             -5.046      9.136  -0.552    0.582    
AreaSmall              5.640      9.276   0.608    0.544    
Gr_sizeLG:AreaSmall    3.951     13.080   0.302    0.763    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 1546.487)

    Null deviance: 225607  on 147  degrees of freedom
Residual deviance: 222694  on 144  degrees of freedom
  (130 Beobachtungen als fehlend gelöscht)
AIC: 1512.8

Number of Fisher Scoring iterations: 2
Anova(mod7.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: m_MatingDuration_av
             LR Chisq Df Pr(>Chisq)
Gr_size       0.30506  1     0.5807
Area          0.36970  1     0.5432
Gr_size:Area  0.09125  1     0.7626
Anova(mod7.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: m_MatingDuration_av
             LR Chisq Df Pr(>Chisq)
Gr_size       0.22750  1     0.6334
Area          1.36027  1     0.2435
Gr_size:Area  0.09125  1     0.7626

Mating encounters

p6<-ggplot(DB_data, aes(x=Sex, y=as.numeric(Total_Encounters),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Mating encounters")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,33)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=33,size=4)+
  annotate("text",label='38',x=.65,y=33,size=4)+
  annotate("text",label='40',x=.88,y=33,size=4)+
  annotate("text",label='53',x=1.11,y=33,size=4)+
  annotate("text",label='33',x=1.34,y=33,size=4)+
  annotate("text",label='47',x=1.65,y=33,size=4)+
  annotate("text",label='35',x=1.88,y=33,size=4)+
  annotate("text",label='38',x=2.11,y=33,size=4)+
  annotate("text",label='50',x=2.34,y=33,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0,2,0.1,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))
p6

Figure 4: Effects of density treatments on the number of mating encounters (mating number + mating attempts) of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Mating encounters (Gaussian GLM)
Effect of density on mating encounters in females.

mod12.1=glm(f_Total_Encounters~Gr_size*Area,data=DB_data,family = gaussian)
summary(mod12.1)

Call:
glm(formula = f_Total_Encounters ~ Gr_size * Area, family = gaussian, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-8.2128  -2.8929  -0.8929   2.3871  15.3871  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)           9.2128     0.6133  15.021   <2e-16 ***
Gr_sizeLG            -2.2961     1.0549  -2.177   0.0314 *  
AreaSmall             0.4001     0.9729   0.411   0.6816    
Gr_sizeLG:AreaSmall  -0.4239     1.5214  -0.279   0.7810    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 17.68047)

    Null deviance: 2420.8  on 129  degrees of freedom
Residual deviance: 2227.7  on 126  degrees of freedom
  (148 Beobachtungen als fehlend gelöscht)
AIC: 748.28

Number of Fisher Scoring iterations: 2
Anova(mod12.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: f_Total_Encounters
             LR Chisq Df Pr(>Chisq)  
Gr_size        4.7374  1    0.02951 *
Area           0.1692  1    0.68086  
Gr_size:Area   0.0776  1    0.78051  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod12.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: f_Total_Encounters
             LR Chisq Df Pr(>Chisq)   
Gr_size       10.8161  1   0.001006 **
Area           0.0919  1   0.761748   
Gr_size:Area   0.0776  1   0.780509   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1


Effect of density on mating encounters in males.

mod11.1=glm(m_Total_Encounters~Gr_size*Area,data=DB_data,family = gaussian)
summary(mod11.1)

Call:
glm(formula = m_Total_Encounters ~ Gr_size * Area, family = gaussian, 
    data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-7.9512  -3.2727  -0.8304   1.8076  21.0488  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         10.43750    0.86564  12.058  < 2e-16 ***
Gr_sizeLG           -3.16477    1.13767  -2.782  0.00613 ** 
AreaSmall            0.51372    1.15506   0.445  0.65716    
Gr_sizeLG:AreaSmall -0.07677    1.62869  -0.047  0.96247    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for gaussian family taken to be 23.97842)

    Null deviance: 3857.3  on 147  degrees of freedom
Residual deviance: 3452.9  on 144  degrees of freedom
  (130 Beobachtungen als fehlend gelöscht)
AIC: 896.17

Number of Fisher Scoring iterations: 2
Anova(mod11.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: m_Total_Encounters
             LR Chisq Df Pr(>Chisq)   
Gr_size        7.7384  1   0.005406 **
Area           0.1978  1   0.656496   
Gr_size:Area   0.0022  1   0.962405   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod11.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: m_Total_Encounters
             LR Chisq Df Pr(>Chisq)    
Gr_size       15.4719  1  8.374e-05 ***
Area           0.3404  1     0.5596    
Gr_size:Area   0.0022  1     0.9624    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Proportion of successful matings

p5<-ggplot(DB_data, aes(x=Sex, y=as.numeric(Prop_MS),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Prop. of successful matings")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,1.1)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=1.1,size=4)+
  annotate("text",label='33',x=.65,y=1.1,size=4)+
  annotate("text",label='53',x=.88,y=1.1,size=4)+
  annotate("text",label='41',x=1.11,y=1.1,size=4)+
  annotate("text",label='38',x=1.34,y=1.1,size=4)+
  annotate("text",label='50',x=1.65,y=1.1,size=4)+
  annotate("text",label='38',x=1.88,y=1.1,size=4)+
  annotate("text",label='35',x=2.11,y=1.1,size=4)+
  annotate("text",label='47',x=2.34,y=1.1,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0.1,2,0,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))
p5

Figure 5: Effects of density treatments on the proportion of successful matings (mating number/mating number + mating attempts) of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Proportion of successful matings (quasi-binomial GLM)
Effect of density on proportion of successful matings in females.

mod10.1=glm(cbind(f_TotMatings,f_Attempts_number)~Gr_size*Area,data=DB_data,family = quasibinomial)
summary(mod10.1)

Call:
glm(formula = cbind(f_TotMatings, f_Attempts_number) ~ Gr_size * 
    Area, family = quasibinomial, data = DB_data)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-2.65128  -0.86141  -0.02239   0.78484   3.12720  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)          -0.5047     0.1167  -4.324 3.09e-05 ***
Gr_sizeLG            -0.1170     0.2243  -0.522   0.6028    
AreaSmall            -0.3813     0.1900  -2.007   0.0469 *  
Gr_sizeLG:AreaSmall   0.5059     0.3214   1.574   0.1180    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasibinomial family taken to be 1.384682)

    Null deviance: 190.01  on 129  degrees of freedom
Residual deviance: 183.48  on 126  degrees of freedom
  (148 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 4
Anova(mod10.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: cbind(f_TotMatings, f_Attempts_number)
             LR Chisq Df Pr(>Chisq)  
Gr_size        0.2736  1    0.60095  
Area           4.0830  1    0.04332 *
Gr_size:Area   2.4886  1    0.11467  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(mod10.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: cbind(f_TotMatings, f_Attempts_number)
             LR Chisq Df Pr(>Chisq)
Gr_size       0.63128  1     0.4269
Area          1.82596  1     0.1766
Gr_size:Area  2.48862  1     0.1147


Effect of density on proportion of successful matings in males.

mod9.1=glm(cbind(m_TotMatings,m_Attempts_number)~Gr_size*Area,data=DB_data,family = quasibinomial)
summary(mod9.1)

Call:
glm(formula = cbind(m_TotMatings, m_Attempts_number) ~ Gr_size * 
    Area, family = quasibinomial, data = DB_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.5584  -0.6477   0.0929   0.6904   4.1909  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)         -0.80769    0.13579  -5.948 1.97e-08 ***
Gr_sizeLG            0.03374    0.19350   0.174    0.862    
AreaSmall           -0.06841    0.18037  -0.379    0.705    
Gr_sizeLG:AreaSmall  0.04048    0.27794   0.146    0.884    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasibinomial family taken to be 1.313552)

    Null deviance: 194.77  on 147  degrees of freedom
Residual deviance: 194.30  on 144  degrees of freedom
  (130 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 4
Anova(mod9.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: cbind(m_TotMatings, m_Attempts_number)
             LR Chisq Df Pr(>Chisq)
Gr_size      0.030398  1     0.8616
Area         0.143691  1     0.7046
Gr_size:Area 0.021206  1     0.8842
Anova(mod9.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: cbind(m_TotMatings, m_Attempts_number)
             LR Chisq Df Pr(>Chisq)
Gr_size      0.147195  1     0.7012
Area         0.139939  1     0.7083
Gr_size:Area 0.021206  1     0.8842

Reproductive success

Secondly, we tested the effect that the densities had on the reproductive success of focal beetles.

p1<-ggplot(DB_data_clean, aes(x=Sex, y=as.numeric(Total_N_MTP1),fill=Treatment, col=Treatment)) +
  geom_point(position=position_jitterdodge(jitter.width=0.5,jitter.height = 0,dodge.width=0.9),shape=19, alpha=0.75, size = 2)+
  stat_summary(fun.min = function(z) { quantile(z,0.25) },
               fun.max = function(z) { quantile(z,0.75) },
               fun = mean,position=position_dodge(.9), size = 0.9,col='black',show.legend = F)+
  scale_color_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))+
  xlab('Sex')+ylab("Number of offspring")+ggtitle('')+ theme(plot.title = element_text(hjust = 0.5))+
  scale_x_discrete(labels = c('Female','Male'),drop=FALSE)+ ylim(0,320)+labs(tag = "")+
  annotate("text",label='n =',x=0.5,y=320,size=4)+
  annotate("text",label='21',x=.65,y=320,size=4)+
  annotate("text",label='35',x=.88,y=320,size=4)+
  annotate("text",label='27',x=1.11,y=320,size=4)+
  annotate("text",label='24',x=1.34,y=320,size=4)+
  annotate("text",label='35',x=1.65,y=320,size=4)+
  annotate("text",label='22',x=1.88,y=320,size=4)+
  annotate("text",label='24',x=2.11,y=320,size=4)+
  annotate("text",label='29',x=2.34,y=320,size=4)+
  theme(panel.border = element_blank(),
        plot.margin = margin(0,2,0,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        legend.key=element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        legend.position = c(1, 0.8),
        plot.tag.position=c(0.01,0.98),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  guides(colour = guide_legend(override.aes = list(size=4)))
p1

Figure 6: Effects of density treatments on the reproductive success of female and male focals. Black bars indicate means and quartile borders.



Statistical models: Reproductive success (quasi-Poisson GLM)
Effect of denstiy on reproductive success in females.

mod1.1=glm(m_RS~Gr_size*Area,data=DB_data_clean,family = quasipoisson)
summary(mod1.1)

Call:
glm(formula = m_RS ~ Gr_size * Area, family = quasipoisson, data = DB_data_clean)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-12.3806   -8.0414   -0.2133    3.8997   19.7825  

Coefficients:
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)          4.053715   0.213468  18.990   <2e-16 ***
Gr_sizeLG           -0.002772   0.268516  -0.010    0.992    
AreaSmall            0.285404   0.265012   1.077    0.284    
Gr_sizeLG:AreaSmall -0.349216   0.374965  -0.931    0.354    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 47.25457)

    Null deviance: 5078.4  on 93  degrees of freedom
Residual deviance: 4959.6  on 90  degrees of freedom
  (83 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 5
Anova(mod1.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: m_RS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.00011  1     0.9918
Area          1.18954  1     0.2754
Gr_size:Area  0.88019  1     0.3481
Anova(mod1.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: m_RS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.98030  1     0.3221
Area          0.36751  1     0.5444
Gr_size:Area  0.88019  1     0.3481


Effect of density on reproductive success in males.

mod2.1=glm(f_RS~Gr_size*Area,data=DB_data_clean,family = quasipoisson)
summary(mod2.1)

Call:
glm(formula = f_RS ~ Gr_size * Area, family = quasipoisson, data = DB_data_clean)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-11.926  -10.110    2.150    4.641    8.376  

Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)           4.1271     0.1469  28.090   <2e-16 ***
Gr_sizeLG            -0.1771     0.2644  -0.670    0.505    
AreaSmall            -0.2407     0.2548  -0.945    0.348    
Gr_sizeLG:AreaSmall   0.5549     0.3803   1.459    0.148    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for quasipoisson family taken to be 40.15118)

    Null deviance: 4614.9  on 82  degrees of freedom
Residual deviance: 4518.3  on 79  degrees of freedom
  (94 Beobachtungen als fehlend gelöscht)
AIC: NA

Number of Fisher Scoring iterations: 5
Anova(mod2.1,type=3) #If the interactions are not significant, type II gives a more powerful test.
Analysis of Deviance Table (Type III tests)

Response: f_RS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.45842  1     0.4984
Area          0.91451  1     0.3389
Gr_size:Area  2.17502  1     0.1403
Anova(mod2.1,type=2)
Analysis of Deviance Table (Type II tests)

Response: f_RS
             LR Chisq Df Pr(>Chisq)
Gr_size       0.22121  1     0.6381
Area          0.00138  1     0.9703
Gr_size:Area  2.17502  1     0.1403

Metrics of sexual selection

In this part of our analysis we estimated standardized metrics of (sexual) selection.

Metrics:
- Opportunity for selection
- Opportunity for sexual selection
- Bateman gradient
- Jones index

We used bootstrapping (10.000 bootstrap replicates) to obtain 95% confidence intervals and permutation tests (10.000 permutations) to statistically compare treatments and sexes.

#I on prop offspring
#D = 0.26
#Male
DB_data_clean_0.26_rel_m_RS <-as.data.table(DB_data_clean_0.26$rel_m_RS)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
I_0.26_Male_relRS_bootvar <- boot(DB_data_clean_0.26_rel_m_RS, c, R=10000)

#Female
DB_data_clean_0.26_rel_f_RS<-as.data.table(DB_data_clean_0.26$rel_f_RS)

I_0.26_Female_relRS_bootvar <- boot(DB_data_clean_0.26_rel_f_RS, c, R=10000)

#D = 0.52
#Male
DB_data_clean_0.52_rel_m_RS <-as.data.table(DB_data_clean_0.52$rel_m_RS)

I_0.52_Male_relRS_bootvar <- boot(DB_data_clean_0.52_rel_m_RS, c, R=10000)


#Female
DB_data_clean_0.52_rel_f_RS <-as.data.table(DB_data_clean_0.52$rel_f_RS)

I_0.52_Female_relRS_bootvar <- boot(DB_data_clean_0.52_rel_f_RS, c, R=10000)


#D = 0.67
#Male
DB_data_clean_0.67_rel_m_RS <-as.data.table(DB_data_clean_0.67$rel_m_RS)

I_0.67_Male_relRS_bootvar <- boot(DB_data_clean_0.67_rel_m_RS, c, R=10000)


#Female
DB_data_clean_0.67_rel_f_RS <-as.data.table(DB_data_clean_0.67$rel_f_RS)

I_0.67_Female_relRS_bootvar <- boot(DB_data_clean_0.67_rel_f_RS, c, R=10000)

#D = 1.33
#Male
DB_data_clean_1.33_rel_m_RS <-as.data.table(DB_data_clean_1.33$rel_m_RS)

I_1.33_Male_relRS_bootvar <- boot(DB_data_clean_1.33_rel_m_RS, c, R=10000)

#Female
DB_data_clean_1.33_rel_f_RS <-as.data.table(DB_data_clean_1.33$rel_f_RS)

I_1.33_Female_relRS_bootvar <- boot(DB_data_clean_1.33_rel_f_RS, c, R=10000)

rm("c")

# The opportunity for sexual selection ####
# Is=variance in relative mating success

#Is on number of mating partners
#D = 0.26
#Male
DB_data_clean_0.26_rel_m_cMS <-as.data.table(DB_data_clean_0.26$rel_m_cMS)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
Is_0.26_Male_relMS_bootvar <- boot(DB_data_clean_0.26_rel_m_cMS, c, R=10000)


#Female
DB_data_clean_0.26_rel_f_cMS <-as.data.table(DB_data_clean_0.26$rel_f_cMS)

Is_0.26_Female_relMS_bootvar <- boot(DB_data_clean_0.26_rel_f_cMS, c, R=10000)


#D = 0.52
#Male
DB_data_clean_0.52_rel_m_cMS <-as.data.table(DB_data_clean_0.52$rel_m_cMS)

Is_0.52_Male_relMS_bootvar <- boot(DB_data_clean_0.52_rel_m_cMS, c, R=10000)


#Female
DB_data_clean_0.52_rel_f_cMS <-as.data.table(DB_data_clean_0.52$rel_f_cMS)

Is_0.52_Female_relMS_bootvar <- boot(DB_data_clean_0.52_rel_f_cMS, c, R=10000)


#D = 0.67
#Male
DB_data_clean_0.67_rel_m_cMS <-as.data.table(DB_data_clean_0.67$rel_m_cMS)

Is_0.67_Male_relMS_bootvar <- boot(DB_data_clean_0.67_rel_m_cMS, c, R=10000)

#Female
DB_data_clean_0.67_rel_f_cMS <-as.data.table(DB_data_clean_0.67$rel_f_cMS)

Is_0.67_Female_relMS_bootvar <- boot(DB_data_clean_0.67_rel_f_cMS, c, R=10000)


#D = 1.33
#Male
DB_data_clean_1.33_rel_m_cMS <-as.data.table(DB_data_clean_1.33$rel_m_cMS)

Is_1.33_Male_relMS_bootvar <- boot(DB_data_clean_1.33_rel_m_cMS, c, R=10000)

#Female
DB_data_clean_1.33_rel_f_cMS <-as.data.table(DB_data_clean_1.33$rel_f_cMS)

Is_1.33_Female_relMS_bootvar <- boot(DB_data_clean_1.33_rel_f_cMS, c, R=10000)

rm("c")

#Bateman gradient ####
#B=slope of ordinary least squares regressions of relative reproductive success on relative mating success

#D = 0.26
#Male
DB_data_clean_0.26_Male_B <-as.data.table(cbind(DB_data_clean_0.26$rel_m_RS,DB_data_clean_0.26$rel_m_cMS))
names(DB_data_clean_0.26_Male_B)=cbind('V1','V2')
c <- function(d, i){
  d2 <- d[i,]
  return(lm(V1 ~V2,data=d2)$coefficients[2])
}
B_0.26_Male_relMS_bootvar <- boot(DB_data_clean_0.26_Male_B, c, R=10000)


#Female
DB_data_clean_0.26_Female_B <-as.data.table(cbind(DB_data_clean_0.26$rel_f_RS,DB_data_clean_0.26$rel_f_cMS))
names(DB_data_clean_0.26_Female_B)=cbind('V1','V2')

B_0.26_Female_relMS_bootvar <- boot(DB_data_clean_0.26_Female_B, c, R=10000)

#D = 0.52
#Male
DB_data_clean_0.52_Male_B <-as.data.table(cbind(DB_data_clean_0.52$rel_m_RS,DB_data_clean_0.52$rel_m_cMS))
names(DB_data_clean_0.52_Male_B)=cbind('V1','V2')

B_0.52_Male_relMS_bootvar <- boot(DB_data_clean_0.52_Male_B, c, R=10000)


#Female
DB_data_clean_0.52_Female_B <-as.data.table(cbind(DB_data_clean_0.52$rel_f_RS,DB_data_clean_0.52$rel_f_cMS))
names(DB_data_clean_0.52_Female_B)=cbind('V1','V2')

B_0.52_Female_relMS_bootvar <- boot(DB_data_clean_0.52_Female_B, c, R=10000)


#D = 0.67
#Male
DB_data_clean_0.67_Male_B <-as.data.table(cbind(DB_data_clean_0.67$rel_m_RS,DB_data_clean_0.67$rel_m_cMS))
names(DB_data_clean_0.67_Male_B)=cbind('V1','V2')

B_0.67_Male_relMS_bootvar <- boot(DB_data_clean_0.67_Male_B, c, R=10000)


#Female
DB_data_clean_0.67_Female_B <-as.data.table(cbind(DB_data_clean_0.67$rel_f_RS,DB_data_clean_0.67$rel_f_cMS))
names(DB_data_clean_0.67_Female_B)=cbind('V1','V2')

B_0.67_Female_relMS_bootvar <- boot(DB_data_clean_0.67_Female_B, c, R=10000)

#D = 1.33
#Male
DB_data_clean_1.33_Male_B <-as.data.table(cbind(DB_data_clean_1.33$rel_m_RS,DB_data_clean_1.33$rel_m_cMS))
names(DB_data_clean_1.33_Male_B)=cbind('V1','V2')

B_1.33_Male_relMS_bootvar <- boot(DB_data_clean_1.33_Male_B, c, R=10000)


#Female
DB_data_clean_1.33_Female_B <-as.data.table(cbind(DB_data_clean_1.33$rel_f_RS,DB_data_clean_1.33$rel_f_cMS))
names(DB_data_clean_1.33_Female_B)=cbind('V1','V2')

B_1.33_Female_relMS_bootvar <- boot(DB_data_clean_1.33_Female_B, c, R=10000)

rm("c")

#Jones index ####
#S= Product of B and the square root of Is, which provides an upper limit of the strength of precopulatory sexual selection

#D = 0.26
#Male
c <- function(d, i){
  d2 <- d[i,]
  return(lm(d2$V1 ~d2$V2)$coefficients[2]*sqrt(var(d2$V2, na.rm=TRUE)))
}
S_0.26_Male_relMS_bootvar <- boot(DB_data_clean_0.26_Male_B, c, R=10000)


#Female
S_0.26_Female_relMS_bootvar <- boot(DB_data_clean_0.26_Female_B, c, R=10000)


#D = 0.52
#Male
S_0.52_Male_relMS_bootvar <- boot(DB_data_clean_0.52_Male_B, c, R=10000)


#Female
S_0.52_Female_relMS_bootvar <- boot(DB_data_clean_0.52_Female_B, c, R=10000)


#D = 0.67
#Male
S_0.67_Male_relMS_bootvar <- boot(DB_data_clean_0.67_Male_B, c, R=10000)


#Female
S_0.67_Female_relMS_bootvar <- boot(DB_data_clean_0.67_Female_B, c, R=10000)


#D = 1.33
#Male
S_1.33_Male_relMS_bootvar <- boot(DB_data_clean_1.33_Male_B, c, R=10000)


#Female
S_1.33_Female_relMS_bootvar <- boot(DB_data_clean_1.33_Female_B, c, R=10000)

rm("c")

#Save data table ####
PhenVarBoot_Table_Male_0.26_I <- as.data.frame(cbind("Male", "0.26", "Opportunity for selection", as.numeric(mean(I_0.26_Male_relRS_bootvar$t)), quantile(I_0.26_Male_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.26_Male_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_I <- as.data.frame(cbind("Male", "0.52", "Opportunity for selection", mean(I_0.52_Male_relRS_bootvar$t), quantile(I_0.52_Male_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.52_Male_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_I <- as.data.frame(cbind("Male", "0.67", "Opportunity for selection", mean(I_0.67_Male_relRS_bootvar$t), quantile(I_0.67_Male_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.67_Male_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_I <- as.data.frame(cbind("Male", "1.33", "Opportunity for selection", mean(I_1.33_Male_relRS_bootvar$t), quantile(I_1.33_Male_relRS_bootvar$t,.025, names = FALSE), quantile(I_1.33_Male_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.26_Is <- as.data.frame(cbind("Male", "0.26", "Opportunity for sexual selection", mean(Is_0.26_Male_relMS_bootvar$t), quantile(Is_0.26_Male_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.26_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_Is <- as.data.frame(cbind("Male", "0.52", "Opportunity for sexual selection", mean(Is_0.52_Male_relMS_bootvar$t), quantile(Is_0.52_Male_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.52_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_Is <- as.data.frame(cbind("Male", "0.67", "Opportunity for sexual selection", mean(Is_0.67_Male_relMS_bootvar$t), quantile(Is_0.67_Male_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.67_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_Is <- as.data.frame(cbind("Male", "1.33", "Opportunity for sexual selection", mean(Is_1.33_Male_relMS_bootvar$t), quantile(Is_1.33_Male_relMS_bootvar$t,.025, names = FALSE), quantile(Is_1.33_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.26_B <- as.data.frame(cbind("Male", "0.26", "Bateman gradient", mean(B_0.26_Male_relMS_bootvar$t), quantile(B_0.26_Male_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.26_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_B <- as.data.frame(cbind("Male", "0.52", "Bateman gradient", mean(B_0.52_Male_relMS_bootvar$t), quantile(B_0.52_Male_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.52_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_B <- as.data.frame(cbind("Male", "0.67", "Bateman gradient", mean(B_0.67_Male_relMS_bootvar$t), quantile(B_0.67_Male_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.67_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_B <- as.data.frame(cbind("Male", "1.33", "Bateman gradient", mean(B_1.33_Male_relMS_bootvar$t), quantile(B_1.33_Male_relMS_bootvar$t,.025, names = FALSE), quantile(B_1.33_Male_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.26_S <- as.data.frame(cbind("Male", "0.26", "Maximum standardized sexual selection differential", mean(S_0.26_Male_relMS_bootvar$t,na.rm = T), quantile(S_0.26_Male_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.26_Male_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Male_0.52_S <- as.data.frame(cbind("Male", "0.52", "Maximum standardized sexual selection differential", mean(S_0.52_Male_relMS_bootvar$t,na.rm = T), quantile(S_0.52_Male_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.52_Male_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Male_0.67_S <- as.data.frame(cbind("Male", "0.67", "Maximum standardized sexual selection differential", mean(S_0.67_Male_relMS_bootvar$t,na.rm = T), quantile(S_0.67_Male_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.67_Male_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Male_1.33_S <- as.data.frame(cbind("Male", "1.33", "Maximum standardized sexual selection differential", mean(S_1.33_Male_relMS_bootvar$t,na.rm = T), quantile(S_1.33_Male_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_1.33_Male_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))

PhenVarBoot_Table_Female_0.26_I <- as.data.frame(cbind("Female", "0.26", "Opportunity for selection", mean(I_0.26_Female_relRS_bootvar$t), quantile(I_0.26_Female_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.26_Female_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.52_I <- as.data.frame(cbind("Female", "0.52", "Opportunity for selection", mean(I_0.52_Female_relRS_bootvar$t), quantile(I_0.52_Female_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.52_Female_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.67_I <- as.data.frame(cbind("Female", "0.67", "Opportunity for selection", mean(I_0.67_Female_relRS_bootvar$t), quantile(I_0.67_Female_relRS_bootvar$t,.025, names = FALSE), quantile(I_0.67_Female_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_1.33_I <- as.data.frame(cbind("Female", "1.33", "Opportunity for selection", mean(I_1.33_Female_relRS_bootvar$t), quantile(I_1.33_Female_relRS_bootvar$t,.025, names = FALSE), quantile(I_1.33_Female_relRS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.26_Is <- as.data.frame(cbind("Female", "0.26", "Opportunity for sexual selection", mean(Is_0.26_Female_relMS_bootvar$t), quantile(Is_0.26_Female_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.26_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.52_Is <- as.data.frame(cbind("Female", "0.52", "Opportunity for sexual selection", mean(Is_0.52_Female_relMS_bootvar$t), quantile(Is_0.52_Female_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.52_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.67_Is <- as.data.frame(cbind("Female", "0.67", "Opportunity for sexual selection", mean(Is_0.67_Female_relMS_bootvar$t), quantile(Is_0.67_Female_relMS_bootvar$t,.025, names = FALSE), quantile(Is_0.67_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_1.33_Is <- as.data.frame(cbind("Female", "1.33", "Opportunity for sexual selection", mean(Is_1.33_Female_relMS_bootvar$t), quantile(Is_1.33_Female_relMS_bootvar$t,.025, names = FALSE), quantile(Is_1.33_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.26_B <- as.data.frame(cbind("Female", "0.26", "Bateman gradient", mean(B_0.26_Female_relMS_bootvar$t), quantile(B_0.26_Female_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.26_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.52_B <- as.data.frame(cbind("Female", "0.52", "Bateman gradient", mean(B_0.52_Female_relMS_bootvar$t), quantile(B_0.52_Female_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.52_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.67_B <- as.data.frame(cbind("Female", "0.67", "Bateman gradient", mean(B_0.67_Female_relMS_bootvar$t), quantile(B_0.67_Female_relMS_bootvar$t,.025, names = FALSE), quantile(B_0.67_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_1.33_B <- as.data.frame(cbind("Female", "1.33", "Bateman gradient", mean(B_1.33_Female_relMS_bootvar$t), quantile(B_1.33_Female_relMS_bootvar$t,.025, names = FALSE), quantile(B_1.33_Female_relMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.26_S <- as.data.frame(cbind("Female", "0.26", "Maximum standardized sexual selection differential", mean(S_0.26_Female_relMS_bootvar$t,na.rm = T), quantile(S_0.26_Female_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.26_Female_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Female_0.52_S <- as.data.frame(cbind("Female", "0.52", "Maximum standardized sexual selection differential", mean(S_0.52_Female_relMS_bootvar$t,na.rm = T), quantile(S_0.52_Female_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.52_Female_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Female_0.67_S <- as.data.frame(cbind("Female", "0.67", "Maximum standardized sexual selection differential", mean(S_0.67_Female_relMS_bootvar$t,na.rm = T), quantile(S_0.67_Female_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_0.67_Female_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))
PhenVarBoot_Table_Female_1.33_S <- as.data.frame(cbind("Female", "1.33", "Maximum standardized sexual selection differential", mean(S_1.33_Female_relMS_bootvar$t,na.rm = T), quantile(S_1.33_Female_relMS_bootvar$t,.025, names = FALSE,na.rm = T), quantile(S_1.33_Female_relMS_bootvar$t,.975, names = FALSE,na.rm = T)))


Table_BatemanMetrics <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_0.26_I,PhenVarBoot_Table_Male_0.52_I,PhenVarBoot_Table_Male_0.67_I,PhenVarBoot_Table_Male_1.33_I,
                                                      PhenVarBoot_Table_Male_0.26_Is,PhenVarBoot_Table_Male_0.52_Is,PhenVarBoot_Table_Male_0.67_Is,PhenVarBoot_Table_Male_1.33_Is,
                                                      PhenVarBoot_Table_Male_0.26_B,PhenVarBoot_Table_Male_0.52_B,PhenVarBoot_Table_Male_0.67_B,PhenVarBoot_Table_Male_1.33_B,
                                                      PhenVarBoot_Table_Male_0.26_S,PhenVarBoot_Table_Male_0.52_S,PhenVarBoot_Table_Male_0.67_S,PhenVarBoot_Table_Male_1.33_S,
                                                      PhenVarBoot_Table_Female_0.26_I,PhenVarBoot_Table_Female_0.52_I,PhenVarBoot_Table_Female_0.67_I,PhenVarBoot_Table_Female_1.33_I,
                                                      PhenVarBoot_Table_Female_0.26_Is,PhenVarBoot_Table_Female_0.52_Is,PhenVarBoot_Table_Female_0.67_Is,PhenVarBoot_Table_Female_1.33_Is,
                                                      PhenVarBoot_Table_Female_0.26_B,PhenVarBoot_Table_Female_0.52_B,PhenVarBoot_Table_Female_0.67_B,PhenVarBoot_Table_Female_1.33_B,
                                                      PhenVarBoot_Table_Female_0.26_S,PhenVarBoot_Table_Female_0.52_S,PhenVarBoot_Table_Female_0.67_S,PhenVarBoot_Table_Female_1.33_S)),digits=3)

is.table(Table_BatemanMetrics)
colnames(Table_BatemanMetrics)[1] <- "Sex"
colnames(Table_BatemanMetrics)[2] <- "Treatment"
colnames(Table_BatemanMetrics)[3] <- "Variable"
colnames(Table_BatemanMetrics)[4] <- "Variance"
colnames(Table_BatemanMetrics)[5] <- "l95.CI"
colnames(Table_BatemanMetrics)[6] <- "u95.CI"
Table_BatemanMetrics[,4]=as.numeric(Table_BatemanMetrics[,4])
Table_BatemanMetrics[,5]=as.numeric(Table_BatemanMetrics[,5])
Table_BatemanMetrics[,6]=as.numeric(Table_BatemanMetrics[,6])

Table_BatemanMetrics_round=cbind(Table_BatemanMetrics[,c(1,2,3)],round(Table_BatemanMetrics[,c(4,5,6)],digit=3))
rownames(Table_BatemanMetrics_round) <- NULL
#Bootstrap comparisons ####
#Treatment difference ####
#Males####
#I ####

#0.26vs0.52
Treat_diff_M_0.26vs0.52_I <- I_0.26_Male_relRS_bootvar$t    - I_0.52_Male_relRS_bootvar$t

t_Treat_diff_M_0.26vs0.52_I=mean(Treat_diff_M_0.26vs0.52_I,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_I_lower=quantile(Treat_diff_M_0.26vs0.52_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_I_upper=quantile(Treat_diff_M_0.26vs0.52_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.52$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_RS)) - var(na.omit(DB_data_clean_0.52$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.52_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_M_0.26vs0.67_I <- I_0.26_Male_relRS_bootvar$t    - I_0.67_Male_relRS_bootvar$t

t_Treat_diff_M_0.26vs0.67_I=mean(Treat_diff_M_0.26vs0.67_I,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_I_lower=quantile(Treat_diff_M_0.26vs0.67_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_I_upper=quantile(Treat_diff_M_0.26vs0.67_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_RS)) - var(na.omit(DB_data_clean_0.67$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.67_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_M_0.26vs1.33_I <- I_0.26_Male_relRS_bootvar$t    - I_1.33_Male_relRS_bootvar$t

t_Treat_diff_M_0.26vs1.33_I=mean(Treat_diff_M_0.26vs1.33_I,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_I_lower=quantile(Treat_diff_M_0.26vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_I_upper=quantile(Treat_diff_M_0.26vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_RS)) - var(na.omit(DB_data_clean_1.33$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_M_0.52vs0.67_I <- I_0.52_Male_relRS_bootvar$t    - I_0.67_Male_relRS_bootvar$t

t_Treat_diff_M_0.52vs0.67_I=mean(Treat_diff_M_0.52vs0.67_I,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_I_lower=quantile(Treat_diff_M_0.52vs0.67_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_I_upper=quantile(Treat_diff_M_0.52vs0.67_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_RS)) - var(na.omit(DB_data_clean_0.67$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs0.67_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_M_0.52vs1.33_I <- I_0.52_Male_relRS_bootvar$t    - I_1.33_Male_relRS_bootvar$t

t_Treat_diff_M_0.52vs1.33_I=mean(Treat_diff_M_0.52vs1.33_I,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_I_lower=quantile(Treat_diff_M_0.52vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_I_upper=quantile(Treat_diff_M_0.52vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_RS)) - var(na.omit(DB_data_clean_1.33$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_M_0.67vs1.33_I <- I_0.67_Male_relRS_bootvar$t    - I_1.33_Male_relRS_bootvar$t

t_Treat_diff_M_0.67vs1.33_I=mean(Treat_diff_M_0.67vs1.33_I,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_I_lower=quantile(Treat_diff_M_0.67vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_I_upper=quantile(Treat_diff_M_0.67vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_m_RS)) - var(na.omit(DB_data_clean_1.33$rel_m_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.67vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Is ####
#Males
#0.26vs0.52
Treat_diff_M_0.26vs0.52_Is <- Is_0.26_Male_relMS_bootvar$t    - Is_0.52_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.52_Is=mean(Treat_diff_M_0.26vs0.52_Is,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_Is_lower=quantile(Treat_diff_M_0.26vs0.52_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_Is_upper=quantile(Treat_diff_M_0.26vs0.52_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.52$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_cMS)) - var(na.omit(DB_data_clean_0.52$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.52_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_M_0.26vs0.67_Is <- Is_0.26_Male_relMS_bootvar$t    - Is_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.67_Is=mean(Treat_diff_M_0.26vs0.67_Is,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_Is_lower=quantile(Treat_diff_M_0.26vs0.67_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_Is_upper=quantile(Treat_diff_M_0.26vs0.67_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_cMS)) - var(na.omit(DB_data_clean_0.67$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.67_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_M_0.26vs1.33_Is <- Is_0.26_Male_relMS_bootvar$t    - Is_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs1.33_Is=mean(Treat_diff_M_0.26vs1.33_Is,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_Is_lower=quantile(Treat_diff_M_0.26vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_Is_upper=quantile(Treat_diff_M_0.26vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_cMS)) - var(na.omit(DB_data_clean_1.33$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_M_0.52vs0.67_Is <- Is_0.52_Male_relMS_bootvar$t    - Is_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs0.67_Is=mean(Treat_diff_M_0.52vs0.67_Is,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_Is_lower=quantile(Treat_diff_M_0.52vs0.67_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_Is_upper=quantile(Treat_diff_M_0.52vs0.67_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_cMS)) - var(na.omit(DB_data_clean_0.67$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs0.67_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_M_0.52vs1.33_Is <- Is_0.52_Male_relMS_bootvar$t    - Is_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs1.33_Is=mean(Treat_diff_M_0.52vs1.33_Is,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_Is_lower=quantile(Treat_diff_M_0.52vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_Is_upper=quantile(Treat_diff_M_0.52vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_cMS)) - var(na.omit( DB_data_clean_1.33$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length( DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_M_0.67vs1.33_Is <- Is_0.67_Male_relMS_bootvar$t    - Is_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.67vs1.33_Is=mean(Treat_diff_M_0.67vs1.33_Is,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_Is_lower=quantile(Treat_diff_M_0.67vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_Is_upper=quantile(Treat_diff_M_0.67vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_m_cMS,  DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_m_cMS)) - var(na.omit( DB_data_clean_1.33$rel_m_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length( DB_data_clean_0.67$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length( DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.67vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#B ####
#Males
#0.26vs0.52
Treat_diff_M_0.26vs0.52_B <- B_0.26_Male_relMS_bootvar$t    - B_0.52_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.52_B=mean(Treat_diff_M_0.26vs0.52_B,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_B_lower=quantile(Treat_diff_M_0.26vs0.52_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_B_upper=quantile(Treat_diff_M_0.26vs0.52_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.52$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_cMS,DB_data_clean_0.52$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_RS),TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_RS),TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_cMS),TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.52_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_M_0.26vs0.67_B <- B_0.26_Male_relMS_bootvar$t    - B_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.67_B=mean(Treat_diff_M_0.26vs0.67_B,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_B_lower=quantile(Treat_diff_M_0.26vs0.67_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_B_upper=quantile(Treat_diff_M_0.26vs0.67_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_cMS,DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.67_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_M_0.26vs1.33_B <- B_0.26_Male_relMS_bootvar$t    - B_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs1.33_B=mean(Treat_diff_M_0.26vs1.33_B,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_B_lower=quantile(Treat_diff_M_0.26vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_B_upper=quantile(Treat_diff_M_0.26vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_cMS,DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_M_0.52vs0.67_B <- B_0.52_Male_relMS_bootvar$t    - B_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs0.67_B=mean(Treat_diff_M_0.52vs0.67_B,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_B_lower=quantile(Treat_diff_M_0.52vs0.67_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_B_upper=quantile(Treat_diff_M_0.52vs0.67_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_cMS,DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs0.67_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_M_0.52vs1.33_B <- B_0.52_Male_relMS_bootvar$t    - B_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs1.33_B=mean(Treat_diff_M_0.52vs1.33_B,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_B_lower=quantile(Treat_diff_M_0.52vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_B_upper=quantile(Treat_diff_M_0.52vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_cMS,DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_M_0.67vs1.33_B <- B_0.67_Male_relMS_bootvar$t    - B_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.67vs1.33_B=mean(Treat_diff_M_0.67vs1.33_B,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_B_lower=quantile(Treat_diff_M_0.67vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_B_upper=quantile(Treat_diff_M_0.67vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_m_cMS,DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.67vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#S ####
#Males
#0.26vs0.52
Treat_diff_M_0.26vs0.52_S <- S_0.26_Male_relMS_bootvar$t    - S_0.52_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.52_S=mean(Treat_diff_M_0.26vs0.52_S,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_S_lower=quantile(Treat_diff_M_0.26vs0.52_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.52_S_upper=quantile(Treat_diff_M_0.26vs0.52_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.52$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.52$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.52$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.52_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_M_0.26vs0.67_S <- S_0.26_Male_relMS_bootvar$t    - S_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs0.67_S=mean(Treat_diff_M_0.26vs0.67_S,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_S_lower=quantile(Treat_diff_M_0.26vs0.67_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs0.67_S_upper=quantile(Treat_diff_M_0.26vs0.67_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs0.67_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_M_0.26vs1.33_S <- S_0.26_Male_relMS_bootvar$t    - S_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.26vs1.33_S=mean(Treat_diff_M_0.26vs1.33_S,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_S_lower=quantile(Treat_diff_M_0.26vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.26vs1.33_S_upper=quantile(Treat_diff_M_0.26vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.26vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_M_0.52vs0.67_S <- S_0.52_Male_relMS_bootvar$t    - S_0.67_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs0.67_S=mean(Treat_diff_M_0.52vs0.67_S,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_S_lower=quantile(Treat_diff_M_0.52vs0.67_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs0.67_S_upper=quantile(Treat_diff_M_0.52vs0.67_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.67$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_0.67$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs0.67_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_M_0.52vs1.33_S <- S_0.52_Male_relMS_bootvar$t    - S_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.52vs1.33_S=mean(Treat_diff_M_0.52vs1.33_S,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_S_lower=quantile(Treat_diff_M_0.52vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.52vs1.33_S_upper=quantile(Treat_diff_M_0.52vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.52vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_M_0.67vs1.33_S <- S_0.67_Male_relMS_bootvar$t    - S_1.33_Male_relMS_bootvar$t

t_Treat_diff_M_0.67vs1.33_S=mean(Treat_diff_M_0.67vs1.33_S,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_S_lower=quantile(Treat_diff_M_0.67vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_M_0.67vs1.33_S_upper=quantile(Treat_diff_M_0.67vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_1.33$rel_m_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.67$rel_m_cMS, DB_data_clean_1.33$rel_m_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_m_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_M_0.67vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Females####
#I ####

#0.26vs0.52
Treat_diff_F_0.26vs0.52_I <- I_0.26_Female_relRS_bootvar$t    - I_0.52_Female_relRS_bootvar$t

t_Treat_diff_F_0.26vs0.52_I=mean(Treat_diff_F_0.26vs0.52_I,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_I_lower=quantile(Treat_diff_F_0.26vs0.52_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_I_upper=quantile(Treat_diff_F_0.26vs0.52_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.52$rel_f_RS)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_RS)) - var(na.omit(DB_data_clean_0.52$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.52_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_F_0.26vs0.67_I <- I_0.26_Female_relRS_bootvar$t    - I_0.67_Female_relRS_bootvar$t

t_Treat_diff_F_0.26vs0.67_I=mean(Treat_diff_F_0.26vs0.67_I,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_I_lower=quantile(Treat_diff_F_0.26vs0.67_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_I_upper=quantile(Treat_diff_F_0.26vs0.67_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_RS)) - var(na.omit(DB_data_clean_0.67$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.67_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_F_0.26vs1.33_I <- I_0.26_Female_relRS_bootvar$t    - I_1.33_Female_relRS_bootvar$t

t_Treat_diff_F_0.26vs1.33_I=mean(Treat_diff_F_0.26vs1.33_I,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_I_lower=quantile(Treat_diff_F_0.26vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_I_upper=quantile(Treat_diff_F_0.26vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_RS)) - var(na.omit(DB_data_clean_1.33$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_F_0.52vs0.67_I <- I_0.52_Female_relRS_bootvar$t    - I_0.67_Female_relRS_bootvar$t

t_Treat_diff_F_0.52vs0.67_I=mean(Treat_diff_F_0.52vs0.67_I,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_I_lower=quantile(Treat_diff_F_0.52vs0.67_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_I_upper=quantile(Treat_diff_F_0.52vs0.67_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_f_RS)) - var(na.omit(DB_data_clean_0.67$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs0.67_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_F_0.52vs1.33_I <- I_0.52_Female_relRS_bootvar$t    - I_1.33_Female_relRS_bootvar$t

t_Treat_diff_F_0.52vs1.33_I=mean(Treat_diff_F_0.52vs1.33_I,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_I_lower=quantile(Treat_diff_F_0.52vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_I_upper=quantile(Treat_diff_F_0.52vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_f_RS)) - var(na.omit(DB_data_clean_1.33$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_F_0.67vs1.33_I <- I_0.67_Female_relRS_bootvar$t    - I_1.33_Female_relRS_bootvar$t

t_Treat_diff_F_0.67vs1.33_I=mean(Treat_diff_F_0.67vs1.33_I,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_I_lower=quantile(Treat_diff_F_0.67vs1.33_I,.025,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_I_upper=quantile(Treat_diff_F_0.67vs1.33_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_f_RS)) - var(na.omit(DB_data_clean_1.33$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.67vs1.33_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Is ####
#Females
#0.26vs0.52
Treat_diff_F_0.26vs0.52_Is <- Is_0.26_Female_relMS_bootvar$t    - Is_0.52_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.52_Is=mean(Treat_diff_F_0.26vs0.52_Is,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_Is_lower=quantile(Treat_diff_F_0.26vs0.52_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_Is_upper=quantile(Treat_diff_F_0.26vs0.52_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_cMS)) - var(na.omit(DB_data_clean_0.52$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.52_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_F_0.26vs0.67_Is <- Is_0.26_Female_relMS_bootvar$t    - Is_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.67_Is=mean(Treat_diff_F_0.26vs0.67_Is,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_Is_lower=quantile(Treat_diff_F_0.26vs0.67_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_Is_upper=quantile(Treat_diff_F_0.26vs0.67_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_cMS)) - var(na.omit(DB_data_clean_0.67$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.67_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_F_0.26vs1.33_Is <- Is_0.26_Female_relMS_bootvar$t    - Is_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs1.33_Is=mean(Treat_diff_F_0.26vs1.33_Is,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_Is_lower=quantile(Treat_diff_F_0.26vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_Is_upper=quantile(Treat_diff_F_0.26vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_f_cMS)) - var(na.omit(DB_data_clean_1.33$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_F_0.52vs0.67_Is <- Is_0.52_Female_relMS_bootvar$t    - Is_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs0.67_Is=mean(Treat_diff_F_0.52vs0.67_Is,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_Is_lower=quantile(Treat_diff_F_0.52vs0.67_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_Is_upper=quantile(Treat_diff_F_0.52vs0.67_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_f_cMS)) - var(na.omit(DB_data_clean_0.67$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs0.67_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_F_0.52vs1.33_Is <- Is_0.52_Female_relMS_bootvar$t    - Is_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs1.33_Is=mean(Treat_diff_F_0.52vs1.33_Is,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_Is_lower=quantile(Treat_diff_F_0.52vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_Is_upper=quantile(Treat_diff_F_0.52vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_f_cMS)) - var(na.omit(DB_data_clean_1.33$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_F_0.67vs1.33_Is <- Is_0.67_Female_relMS_bootvar$t    - Is_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.67vs1.33_Is=mean(Treat_diff_F_0.67vs1.33_Is,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_Is_lower=quantile(Treat_diff_F_0.67vs1.33_Is,.025,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_Is_upper=quantile(Treat_diff_F_0.67vs1.33_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_f_cMS)) - var(na.omit(DB_data_clean_1.33$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.67vs1.33_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#B ####
#Females
#0.26vs0.52
Treat_diff_F_0.26vs0.52_B <- B_0.26_Female_relMS_bootvar$t    - B_0.52_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.52_B=mean(Treat_diff_F_0.26vs0.52_B,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_B_lower=quantile(Treat_diff_F_0.26vs0.52_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_B_upper=quantile(Treat_diff_F_0.26vs0.52_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.52$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_cMS,DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.52_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_F_0.26vs0.67_B <- B_0.26_Female_relMS_bootvar$t    - B_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.67_B=mean(Treat_diff_F_0.26vs0.67_B,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_B_lower=quantile(Treat_diff_F_0.26vs0.67_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_B_upper=quantile(Treat_diff_F_0.26vs0.67_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_cMS,DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.67_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_F_0.26vs1.33_B <- B_0.26_Female_relMS_bootvar$t    - B_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs1.33_B=mean(Treat_diff_F_0.26vs1.33_B,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_B_lower=quantile(Treat_diff_F_0.26vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_B_upper=quantile(Treat_diff_F_0.26vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_cMS,DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_F_0.52vs0.67_B <- B_0.52_Female_relMS_bootvar$t    - B_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs0.67_B=mean(Treat_diff_F_0.52vs0.67_B,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_B_lower=quantile(Treat_diff_F_0.52vs0.67_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_B_upper=quantile(Treat_diff_F_0.52vs0.67_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_f_cMS,DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs0.67_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_F_0.52vs1.33_B <- B_0.52_Female_relMS_bootvar$t    - B_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs1.33_B=mean(Treat_diff_F_0.52vs1.33_B,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_B_lower=quantile(Treat_diff_F_0.52vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_B_upper=quantile(Treat_diff_F_0.52vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_f_cMS,DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_F_0.67vs1.33_B <- B_0.67_Female_relMS_bootvar$t    - B_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.67vs1.33_B=mean(Treat_diff_F_0.67vs1.33_B,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_B_lower=quantile(Treat_diff_F_0.67vs1.33_B,.025,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_B_upper=quantile(Treat_diff_F_0.67vs1.33_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_f_cMS,DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.67vs1.33_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#S ####
#Females
#0.26vs0.52
Treat_diff_F_0.26vs0.52_S <- S_0.26_Female_relMS_bootvar$t    - S_0.52_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.52_S=mean(Treat_diff_F_0.26vs0.52_S,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_S_lower=quantile(Treat_diff_F_0.26vs0.52_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.52_S_upper=quantile(Treat_diff_F_0.26vs0.52_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.52$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.52_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs0.67
Treat_diff_F_0.26vs0.67_S <- S_0.26_Female_relMS_bootvar$t    - S_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs0.67_S=mean(Treat_diff_F_0.26vs0.67_S,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_S_lower=quantile(Treat_diff_F_0.26vs0.67_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs0.67_S_upper=quantile(Treat_diff_F_0.26vs0.67_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs0.67_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.26vs1.33
Treat_diff_F_0.26vs1.33_S <- S_0.26_Female_relMS_bootvar$t    - S_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.26vs1.33_S=mean(Treat_diff_F_0.26vs1.33_S,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_S_lower=quantile(Treat_diff_F_0.26vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.26vs1.33_S_upper=quantile(Treat_diff_F_0.26vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.26$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.26vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs0.67
Treat_diff_F_0.52vs0.67_S <- S_0.52_Female_relMS_bootvar$t    - S_0.67_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs0.67_S=mean(Treat_diff_F_0.52vs0.67_S,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_S_lower=quantile(Treat_diff_F_0.52vs0.67_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs0.67_S_upper=quantile(Treat_diff_F_0.52vs0.67_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs0.67_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52vs1.33
Treat_diff_F_0.52vs1.33_S <- S_0.52_Female_relMS_bootvar$t    - S_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.52vs1.33_S=mean(Treat_diff_F_0.52vs1.33_S,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_S_lower=quantile(Treat_diff_F_0.52vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.52vs1.33_S_upper=quantile(Treat_diff_F_0.52vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.52$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.52vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67vs1.33
Treat_diff_F_0.67vs1.33_S <- S_0.67_Female_relMS_bootvar$t    - S_1.33_Female_relMS_bootvar$t

t_Treat_diff_F_0.67vs1.33_S=mean(Treat_diff_F_0.67vs1.33_S,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_S_lower=quantile(Treat_diff_F_0.67vs1.33_S,.025,na.rm=TRUE)
t_Treat_diff_F_0.67vs1.33_S_upper=quantile(Treat_diff_F_0.67vs1.33_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_f_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data3=c(DB_data_clean_0.67$rel_f_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_f_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_F_0.67vs1.33_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Save data table ####
CompTreat_Table_Male_0.26vs0.52_I <- as.data.frame(cbind("Male", "0.26vs0.52", "Opportunity for selection", t_Treat_diff_M_0.26vs0.52_I, t_Treat_diff_M_0.26vs0.52_I_lower, t_Treat_diff_M_0.26vs0.52_I_upper, t_Treat_diff_M_0.26vs0.52_I_p))
CompTreat_Table_Male_0.26vs0.67_I <- as.data.frame(cbind("Male", "0.26vs0.67", "Opportunity for selection", t_Treat_diff_M_0.26vs0.67_I, t_Treat_diff_M_0.26vs0.67_I_lower, t_Treat_diff_M_0.26vs0.67_I_upper, t_Treat_diff_M_0.26vs0.67_I_p))
CompTreat_Table_Male_0.26vs1.33_I <- as.data.frame(cbind("Male", "0.26vs1.33", "Opportunity for selection",  t_Treat_diff_M_0.26vs1.33_I, t_Treat_diff_M_0.26vs1.33_I_lower, t_Treat_diff_M_0.26vs1.33_I_upper, t_Treat_diff_M_0.26vs1.33_I_p))
CompTreat_Table_Male_0.52vs0.67_I <- as.data.frame(cbind("Male", "0.52vs0.67", "Opportunity for selection",  t_Treat_diff_M_0.52vs0.67_I, t_Treat_diff_M_0.52vs0.67_I_lower, t_Treat_diff_M_0.52vs0.67_I_upper, t_Treat_diff_M_0.52vs0.67_I_p))
CompTreat_Table_Male_0.52vs1.33_I <- as.data.frame(cbind("Male", "0.52vs1.33", "Opportunity for selection",  t_Treat_diff_M_0.52vs1.33_I, t_Treat_diff_M_0.52vs1.33_I_lower, t_Treat_diff_M_0.52vs1.33_I_upper, t_Treat_diff_M_0.52vs1.33_I_p))
CompTreat_Table_Male_0.67vs1.33_I <- as.data.frame(cbind("Male", "0.67vs1.33", "Opportunity for selection",  t_Treat_diff_M_0.67vs1.33_I, t_Treat_diff_M_0.67vs1.33_I_lower, t_Treat_diff_M_0.67vs1.33_I_upper, t_Treat_diff_M_0.67vs1.33_I_p))
CompTreat_Table_Male_0.26vs0.52_Is <- as.data.frame(cbind("Male", "0.26vs0.52", "Opportunity for sexual selection", t_Treat_diff_M_0.26vs0.52_Is, t_Treat_diff_M_0.26vs0.52_Is_lower, t_Treat_diff_M_0.26vs0.52_Is_upper, t_Treat_diff_M_0.26vs0.52_Is_p))
CompTreat_Table_Male_0.26vs0.67_Is <- as.data.frame(cbind("Male", "0.26vs0.67", "Opportunity for sexual selection", t_Treat_diff_M_0.26vs0.67_Is, t_Treat_diff_M_0.26vs0.67_Is_lower, t_Treat_diff_M_0.26vs0.67_Is_upper, t_Treat_diff_M_0.26vs0.67_Is_p))
CompTreat_Table_Male_0.26vs1.33_Is <- as.data.frame(cbind("Male", "0.26vs1.33", "Opportunity for sexual selection",  t_Treat_diff_M_0.26vs1.33_Is, t_Treat_diff_M_0.26vs1.33_Is_lower, t_Treat_diff_M_0.26vs1.33_Is_upper, t_Treat_diff_M_0.26vs1.33_Is_p))
CompTreat_Table_Male_0.52vs0.67_Is <- as.data.frame(cbind("Male", "0.52vs0.67", "Opportunity for sexual selection",  t_Treat_diff_M_0.52vs0.67_Is, t_Treat_diff_M_0.52vs0.67_Is_lower, t_Treat_diff_M_0.52vs0.67_Is_upper, t_Treat_diff_M_0.52vs0.67_Is_p))
CompTreat_Table_Male_0.52vs1.33_Is <- as.data.frame(cbind("Male", "0.52vs1.33", "Opportunity for sexual selection",  t_Treat_diff_M_0.52vs1.33_Is, t_Treat_diff_M_0.52vs1.33_Is_lower, t_Treat_diff_M_0.52vs1.33_Is_upper, t_Treat_diff_M_0.52vs1.33_Is_p))
CompTreat_Table_Male_0.67vs1.33_Is <- as.data.frame(cbind("Male", "0.67vs1.33", "Opportunity for sexual selection",  t_Treat_diff_M_0.67vs1.33_Is, t_Treat_diff_M_0.67vs1.33_Is_lower, t_Treat_diff_M_0.67vs1.33_Is_upper, t_Treat_diff_M_0.67vs1.33_Is_p))
CompTreat_Table_Male_0.26vs0.52_B <- as.data.frame(cbind("Male", "0.26vs0.52", "Bateman gradient", t_Treat_diff_M_0.26vs0.52_B, t_Treat_diff_M_0.26vs0.52_B_lower, t_Treat_diff_M_0.26vs0.52_B_upper, t_Treat_diff_M_0.26vs0.52_B_p))
CompTreat_Table_Male_0.26vs0.67_B <- as.data.frame(cbind("Male", "0.26vs0.67", "Bateman gradient", t_Treat_diff_M_0.26vs0.67_B, t_Treat_diff_M_0.26vs0.67_B_lower, t_Treat_diff_M_0.26vs0.67_B_upper, t_Treat_diff_M_0.26vs0.67_B_p))
CompTreat_Table_Male_0.26vs1.33_B <- as.data.frame(cbind("Male", "0.26vs1.33", "Bateman gradient",  t_Treat_diff_M_0.26vs1.33_B, t_Treat_diff_M_0.26vs1.33_B_lower, t_Treat_diff_M_0.26vs1.33_B_upper, t_Treat_diff_M_0.26vs1.33_B_p))
CompTreat_Table_Male_0.52vs0.67_B <- as.data.frame(cbind("Male", "0.52vs0.67", "Bateman gradient",  t_Treat_diff_M_0.52vs0.67_B, t_Treat_diff_M_0.52vs0.67_B_lower, t_Treat_diff_M_0.52vs0.67_B_upper, t_Treat_diff_M_0.52vs0.67_B_p))
CompTreat_Table_Male_0.52vs1.33_B <- as.data.frame(cbind("Male", "0.52vs1.33", "Bateman gradient",  t_Treat_diff_M_0.52vs1.33_B, t_Treat_diff_M_0.52vs1.33_B_lower, t_Treat_diff_M_0.52vs1.33_B_upper, t_Treat_diff_M_0.52vs1.33_B_p))
CompTreat_Table_Male_0.67vs1.33_B <- as.data.frame(cbind("Male", "0.67vs1.33", "Bateman gradient",  t_Treat_diff_M_0.67vs1.33_B, t_Treat_diff_M_0.67vs1.33_B_lower, t_Treat_diff_M_0.67vs1.33_B_upper, t_Treat_diff_M_0.67vs1.33_B_p))
CompTreat_Table_Male_0.26vs0.52_S <- as.data.frame(cbind("Male", "0.26vs0.52", "Maximum standardized sexual selection differential", t_Treat_diff_M_0.26vs0.52_S, t_Treat_diff_M_0.26vs0.52_S_lower, t_Treat_diff_M_0.26vs0.52_S_upper, t_Treat_diff_M_0.26vs0.52_S_p))
CompTreat_Table_Male_0.26vs0.67_S <- as.data.frame(cbind("Male", "0.26vs0.67", "Maximum standardized sexual selection differential", t_Treat_diff_M_0.26vs0.67_S, t_Treat_diff_M_0.26vs0.67_S_lower, t_Treat_diff_M_0.26vs0.67_S_upper, t_Treat_diff_M_0.26vs0.67_S_p))
CompTreat_Table_Male_0.26vs1.33_S <- as.data.frame(cbind("Male", "0.26vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_M_0.26vs1.33_S, t_Treat_diff_M_0.26vs1.33_S_lower, t_Treat_diff_M_0.26vs1.33_S_upper, t_Treat_diff_M_0.26vs1.33_S_p))
CompTreat_Table_Male_0.52vs0.67_S <- as.data.frame(cbind("Male", "0.52vs0.67", "Maximum standardized sexual selection differential",  t_Treat_diff_M_0.52vs0.67_S, t_Treat_diff_M_0.52vs0.67_S_lower, t_Treat_diff_M_0.52vs0.67_S_upper, t_Treat_diff_M_0.52vs0.67_S_p))
CompTreat_Table_Male_0.52vs1.33_S <- as.data.frame(cbind("Male", "0.52vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_M_0.52vs1.33_S, t_Treat_diff_M_0.52vs1.33_S_lower, t_Treat_diff_M_0.52vs1.33_S_upper, t_Treat_diff_M_0.52vs1.33_S_p))
CompTreat_Table_Male_0.67vs1.33_S <- as.data.frame(cbind("Male", "0.67vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_M_0.67vs1.33_S, t_Treat_diff_M_0.67vs1.33_S_lower, t_Treat_diff_M_0.67vs1.33_S_upper, t_Treat_diff_M_0.67vs1.33_S_p))

CompTreat_Table_Female_0.26vs0.52_I <- as.data.frame(cbind("Female", "0.26vs0.52", "Opportunity for selection", t_Treat_diff_F_0.26vs0.52_I, t_Treat_diff_F_0.26vs0.52_I_lower, t_Treat_diff_F_0.26vs0.52_I_upper, t_Treat_diff_F_0.26vs0.52_I_p))
CompTreat_Table_Female_0.26vs0.67_I <- as.data.frame(cbind("Female", "0.26vs0.67", "Opportunity for selection", t_Treat_diff_F_0.26vs0.67_I, t_Treat_diff_F_0.26vs0.67_I_lower, t_Treat_diff_F_0.26vs0.67_I_upper, t_Treat_diff_F_0.26vs0.67_I_p))
CompTreat_Table_Female_0.26vs1.33_I <- as.data.frame(cbind("Female", "0.26vs1.33", "Opportunity for selection",  t_Treat_diff_F_0.26vs1.33_I, t_Treat_diff_F_0.26vs1.33_I_lower, t_Treat_diff_F_0.26vs1.33_I_upper, t_Treat_diff_F_0.26vs1.33_I_p))
CompTreat_Table_Female_0.52vs0.67_I <- as.data.frame(cbind("Female", "0.52vs0.67", "Opportunity for selection",  t_Treat_diff_F_0.52vs0.67_I, t_Treat_diff_F_0.52vs0.67_I_lower, t_Treat_diff_F_0.52vs0.67_I_upper, t_Treat_diff_F_0.52vs0.67_I_p))
CompTreat_Table_Female_0.52vs1.33_I <- as.data.frame(cbind("Female", "0.52vs1.33", "Opportunity for selection",  t_Treat_diff_F_0.52vs1.33_I, t_Treat_diff_F_0.52vs1.33_I_lower, t_Treat_diff_F_0.52vs1.33_I_upper, t_Treat_diff_F_0.52vs1.33_I_p))
CompTreat_Table_Female_0.67vs1.33_I <- as.data.frame(cbind("Female", "0.67vs1.33", "Opportunity for selection",  t_Treat_diff_F_0.67vs1.33_I, t_Treat_diff_F_0.67vs1.33_I_lower, t_Treat_diff_F_0.67vs1.33_I_upper, t_Treat_diff_F_0.67vs1.33_I_p))
CompTreat_Table_Female_0.26vs0.52_Is <- as.data.frame(cbind("Female", "0.26vs0.52", "Opportunity for sexual selection", t_Treat_diff_F_0.26vs0.52_Is, t_Treat_diff_F_0.26vs0.52_Is_lower, t_Treat_diff_F_0.26vs0.52_Is_upper, t_Treat_diff_F_0.26vs0.52_Is_p))
CompTreat_Table_Female_0.26vs0.67_Is <- as.data.frame(cbind("Female", "0.26vs0.67", "Opportunity for sexual selection", t_Treat_diff_F_0.26vs0.67_Is, t_Treat_diff_F_0.26vs0.67_Is_lower, t_Treat_diff_F_0.26vs0.67_Is_upper, t_Treat_diff_F_0.26vs0.67_Is_p))
CompTreat_Table_Female_0.26vs1.33_Is <- as.data.frame(cbind("Female", "0.26vs1.33", "Opportunity for sexual selection",  t_Treat_diff_F_0.26vs1.33_Is, t_Treat_diff_F_0.26vs1.33_Is_lower, t_Treat_diff_F_0.26vs1.33_Is_upper, t_Treat_diff_F_0.26vs1.33_Is_p))
CompTreat_Table_Female_0.52vs0.67_Is <- as.data.frame(cbind("Female", "0.52vs0.67", "Opportunity for sexual selection",  t_Treat_diff_F_0.52vs0.67_Is, t_Treat_diff_F_0.52vs0.67_Is_lower, t_Treat_diff_F_0.52vs0.67_Is_upper, t_Treat_diff_F_0.52vs0.67_Is_p))
CompTreat_Table_Female_0.52vs1.33_Is <- as.data.frame(cbind("Female", "0.52vs1.33", "Opportunity for sexual selection",  t_Treat_diff_F_0.52vs1.33_Is, t_Treat_diff_F_0.52vs1.33_Is_lower, t_Treat_diff_F_0.52vs1.33_Is_upper, t_Treat_diff_F_0.52vs1.33_Is_p))
CompTreat_Table_Female_0.67vs1.33_Is <- as.data.frame(cbind("Female", "0.67vs1.33", "Opportunity for sexual selection",  t_Treat_diff_F_0.67vs1.33_Is, t_Treat_diff_F_0.67vs1.33_Is_lower, t_Treat_diff_F_0.67vs1.33_Is_upper, t_Treat_diff_F_0.67vs1.33_Is_p))
CompTreat_Table_Female_0.26vs0.52_B <- as.data.frame(cbind("Female", "0.26vs0.52", "Bateman gradient", t_Treat_diff_F_0.26vs0.52_B, t_Treat_diff_F_0.26vs0.52_B_lower, t_Treat_diff_F_0.26vs0.52_B_upper, t_Treat_diff_F_0.26vs0.52_B_p))
CompTreat_Table_Female_0.26vs0.67_B <- as.data.frame(cbind("Female", "0.26vs0.67", "Bateman gradient", t_Treat_diff_F_0.26vs0.67_B, t_Treat_diff_F_0.26vs0.67_B_lower, t_Treat_diff_F_0.26vs0.67_B_upper, t_Treat_diff_F_0.26vs0.67_B_p))
CompTreat_Table_Female_0.26vs1.33_B <- as.data.frame(cbind("Female", "0.26vs1.33", "Bateman gradient",  t_Treat_diff_F_0.26vs1.33_B, t_Treat_diff_F_0.26vs1.33_B_lower, t_Treat_diff_F_0.26vs1.33_B_upper, t_Treat_diff_F_0.26vs1.33_B_p))
CompTreat_Table_Female_0.52vs0.67_B <- as.data.frame(cbind("Female", "0.52vs0.67", "Bateman gradient",  t_Treat_diff_F_0.52vs0.67_B, t_Treat_diff_F_0.52vs0.67_B_lower, t_Treat_diff_F_0.52vs0.67_B_upper, t_Treat_diff_F_0.52vs0.67_B_p))
CompTreat_Table_Female_0.52vs1.33_B <- as.data.frame(cbind("Female", "0.52vs1.33", "Bateman gradient",  t_Treat_diff_F_0.52vs1.33_B, t_Treat_diff_F_0.52vs1.33_B_lower, t_Treat_diff_F_0.52vs1.33_B_upper, t_Treat_diff_F_0.52vs1.33_B_p))
CompTreat_Table_Female_0.67vs1.33_B <- as.data.frame(cbind("Female", "0.67vs1.33", "Bateman gradient",  t_Treat_diff_F_0.67vs1.33_B, t_Treat_diff_F_0.67vs1.33_B_lower, t_Treat_diff_F_0.67vs1.33_B_upper, t_Treat_diff_F_0.67vs1.33_B_p))
CompTreat_Table_Female_0.26vs0.52_S <- as.data.frame(cbind("Female", "0.26vs0.52", "Maximum standardized sexual selection differential", t_Treat_diff_F_0.26vs0.52_S, t_Treat_diff_F_0.26vs0.52_S_lower, t_Treat_diff_F_0.26vs0.52_S_upper, t_Treat_diff_F_0.26vs0.52_S_p))
CompTreat_Table_Female_0.26vs0.67_S <- as.data.frame(cbind("Female", "0.26vs0.67", "Maximum standardized sexual selection differential", t_Treat_diff_F_0.26vs0.67_S, t_Treat_diff_F_0.26vs0.67_S_lower, t_Treat_diff_F_0.26vs0.67_S_upper, t_Treat_diff_F_0.26vs0.67_S_p))
CompTreat_Table_Female_0.26vs1.33_S <- as.data.frame(cbind("Female", "0.26vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_F_0.26vs1.33_S, t_Treat_diff_F_0.26vs1.33_S_lower, t_Treat_diff_F_0.26vs1.33_S_upper, t_Treat_diff_F_0.26vs1.33_S_p))
CompTreat_Table_Female_0.52vs0.67_S <- as.data.frame(cbind("Female", "0.52vs0.67", "Maximum standardized sexual selection differential",  t_Treat_diff_F_0.52vs0.67_S, t_Treat_diff_F_0.52vs0.67_S_lower, t_Treat_diff_F_0.52vs0.67_S_upper, t_Treat_diff_F_0.52vs0.67_S_p))
CompTreat_Table_Female_0.52vs1.33_S <- as.data.frame(cbind("Female", "0.52vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_F_0.52vs1.33_S, t_Treat_diff_F_0.52vs1.33_S_lower, t_Treat_diff_F_0.52vs1.33_S_upper, t_Treat_diff_F_0.52vs1.33_S_p))
CompTreat_Table_Female_0.67vs1.33_S <- as.data.frame(cbind("Female", "0.67vs1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_F_0.67vs1.33_S, t_Treat_diff_F_0.67vs1.33_S_lower, t_Treat_diff_F_0.67vs1.33_S_upper, t_Treat_diff_F_0.67vs1.33_S_p))

colnames(CompTreat_Table_Male_0.26vs0.52_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.67_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs0.67_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.67vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.52_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.67_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs0.67_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.67vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.52_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.67_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs0.67_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.67vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.52_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs0.67_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.26vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs0.67_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.52vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Male_0.67vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")

colnames(CompTreat_Table_Female_0.26vs0.52_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.67_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs0.67_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.67vs1.33_I)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.52_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.67_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs0.67_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.67vs1.33_Is)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.52_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.67_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs0.67_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.67vs1.33_B)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.52_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs0.67_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.26vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs0.67_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.52vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_Female_0.67vs1.33_S)<-c("Sex","Comparison","Variable","Variance","l95.CI","u95.CI","P-Value")

Table_BatemanMetrics_TreatComp <- as.data.frame(as.matrix(rbind(CompTreat_Table_Male_0.26vs0.52_I,CompTreat_Table_Male_0.26vs0.67_I,CompTreat_Table_Male_0.26vs1.33_I,CompTreat_Table_Male_0.52vs0.67_I,CompTreat_Table_Male_0.52vs1.33_I,CompTreat_Table_Male_0.67vs1.33_I,
                                                                CompTreat_Table_Male_0.26vs0.52_Is,CompTreat_Table_Male_0.26vs0.67_Is,CompTreat_Table_Male_0.26vs1.33_Is,CompTreat_Table_Male_0.52vs0.67_Is,CompTreat_Table_Male_0.52vs1.33_Is,CompTreat_Table_Male_0.67vs1.33_Is,
                                                                CompTreat_Table_Male_0.26vs0.52_B,CompTreat_Table_Male_0.26vs0.67_B,CompTreat_Table_Male_0.26vs1.33_B,CompTreat_Table_Male_0.52vs0.67_B,CompTreat_Table_Male_0.52vs1.33_B,CompTreat_Table_Male_0.67vs1.33_B,
                                                                CompTreat_Table_Male_0.26vs0.52_S,CompTreat_Table_Male_0.26vs0.67_S,CompTreat_Table_Male_0.26vs1.33_S,CompTreat_Table_Male_0.52vs0.67_S,CompTreat_Table_Male_0.52vs1.33_S,CompTreat_Table_Male_0.67vs1.33_S,
                                                                CompTreat_Table_Female_0.26vs0.52_I,CompTreat_Table_Female_0.26vs0.67_I,CompTreat_Table_Female_0.26vs1.33_I,CompTreat_Table_Female_0.52vs0.67_I,CompTreat_Table_Female_0.52vs1.33_I,CompTreat_Table_Female_0.67vs1.33_I,
                                                                CompTreat_Table_Female_0.26vs0.52_Is,CompTreat_Table_Female_0.26vs0.67_Is,CompTreat_Table_Female_0.26vs1.33_Is,CompTreat_Table_Female_0.52vs0.67_Is,CompTreat_Table_Female_0.52vs1.33_Is,CompTreat_Table_Female_0.67vs1.33_Is,
                                                                CompTreat_Table_Female_0.26vs0.52_B,CompTreat_Table_Female_0.26vs0.67_B,CompTreat_Table_Female_0.26vs1.33_B,CompTreat_Table_Female_0.52vs0.67_B,CompTreat_Table_Female_0.52vs1.33_B,CompTreat_Table_Female_0.67vs1.33_B,
                                                                CompTreat_Table_Female_0.26vs0.52_S,CompTreat_Table_Female_0.26vs0.67_S,CompTreat_Table_Female_0.26vs1.33_S,CompTreat_Table_Female_0.52vs0.67_S,CompTreat_Table_Female_0.52vs1.33_S,CompTreat_Table_Female_0.67vs1.33_S
)))


Table_BatemanMetrics_TreatComp[,4]=as.numeric(Table_BatemanMetrics_TreatComp[,4])
Table_BatemanMetrics_TreatComp[,5]=as.numeric(Table_BatemanMetrics_TreatComp[,5])
Table_BatemanMetrics_TreatComp[,6]=as.numeric(Table_BatemanMetrics_TreatComp[,6])
Table_BatemanMetrics_TreatComp[,7]=as.numeric(Table_BatemanMetrics_TreatComp[,7])

Table_BatemanMetrics_TreatComp_round=cbind(Table_BatemanMetrics_TreatComp[,c(1,2,3)],round(Table_BatemanMetrics_TreatComp[,c(4,5,6,7)],digit=3))

rownames(Table_BatemanMetrics_TreatComp_round) <- NULL
#Bootstrap comparison
# Sex difference ####
#I ####
#0.26
Treat_diff_0.26_MvsF_I <- I_0.26_Male_relRS_bootvar$t    - I_0.26_Female_relRS_bootvar$t

t_Treat_diff_0.26_MvsF_I=mean(Treat_diff_0.26_MvsF_I,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_I_lower=quantile(Treat_diff_0.26_MvsF_I,.025,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_I_upper=quantile(Treat_diff_0.26_MvsF_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.26$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_RS)) - var(na.omit(DB_data_clean_0.26$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.26_MvsF_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52
Treat_diff_0.52_MvsF_I <- I_0.52_Male_relRS_bootvar$t    - I_0.52_Female_relRS_bootvar$t

t_Treat_diff_0.52_MvsF_I=mean(Treat_diff_0.52_MvsF_I,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_I_lower=quantile(Treat_diff_0.52_MvsF_I,.025,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_I_upper=quantile(Treat_diff_0.52_MvsF_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.52$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_RS)) - var(na.omit(DB_data_clean_0.52$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.52_MvsF_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67
Treat_diff_0.67_MvsF_I <- I_0.67_Male_relRS_bootvar$t    - I_0.67_Female_relRS_bootvar$t

t_Treat_diff_0.67_MvsF_I=mean(Treat_diff_0.67_MvsF_I,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_I_lower=quantile(Treat_diff_0.67_MvsF_I,.025,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_I_upper=quantile(Treat_diff_0.67_MvsF_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_m_RS)) - var(na.omit(DB_data_clean_0.67$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.67_MvsF_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#1.33
Treat_diff_1.33_MvsF_I <- I_1.33_Male_relRS_bootvar$t    - I_1.33_Female_relRS_bootvar$t

t_Treat_diff_1.33_MvsF_I=mean(Treat_diff_1.33_MvsF_I,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_I_lower=quantile(Treat_diff_1.33_MvsF_I,.025,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_I_upper=quantile(Treat_diff_1.33_MvsF_I,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_1.33$rel_m_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_1.33$rel_m_RS)) - var(na.omit(DB_data_clean_1.33$rel_f_RS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_1.33_MvsF_I_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Is ####
#0.26
Treat_diff_0.26_MvsF_Is <- Is_0.26_Male_relMS_bootvar$t    - Is_0.26_Female_relMS_bootvar$t

t_Treat_diff_0.26_MvsF_Is=mean(Treat_diff_0.26_MvsF_Is,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_Is_lower=quantile(Treat_diff_0.26_MvsF_Is,.025,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_Is_upper=quantile(Treat_diff_0.26_MvsF_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.26$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.26$rel_m_cMS)) - var(na.omit(DB_data_clean_0.26$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.26_MvsF_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52
Treat_diff_0.52_MvsF_Is <- Is_0.52_Male_relMS_bootvar$t    - Is_0.52_Female_relMS_bootvar$t

t_Treat_diff_0.52_MvsF_Is=mean(Treat_diff_0.52_MvsF_Is,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_Is_lower=quantile(Treat_diff_0.52_MvsF_Is,.025,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_Is_upper=quantile(Treat_diff_0.52_MvsF_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.52$rel_m_cMS)) - var(na.omit(DB_data_clean_0.52$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.52_MvsF_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67
Treat_diff_0.67_MvsF_Is <- Is_0.67_Male_relMS_bootvar$t    - Is_0.67_Female_relMS_bootvar$t

t_Treat_diff_0.67_MvsF_Is=mean(Treat_diff_0.67_MvsF_Is,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_Is_lower=quantile(Treat_diff_0.67_MvsF_Is,.025,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_Is_upper=quantile(Treat_diff_0.67_MvsF_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_0.67$rel_m_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_0.67$rel_m_cMS)) - var(na.omit(DB_data_clean_0.67$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.67_MvsF_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#1.33
Treat_diff_1.33_MvsF_Is <- Is_1.33_Male_relMS_bootvar$t    - Is_1.33_Female_relMS_bootvar$t

t_Treat_diff_1.33_MvsF_Is=mean(Treat_diff_1.33_MvsF_Is,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_Is_lower=quantile(Treat_diff_1.33_MvsF_Is,.025,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_Is_upper=quantile(Treat_diff_1.33_MvsF_Is,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data=c(DB_data_clean_1.33$rel_m_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = var(na.omit(DB_data_clean_1.33$rel_m_cMS)) - var(na.omit(DB_data_clean_1.33$rel_f_cMS))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = var(na.omit(b.random)) - var(na.omit(a.random))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_1.33_MvsF_Is_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#B ####
#0.26

Treat_diff_0.26_MvsF_B <- B_0.26_Male_relMS_bootvar$t    - B_0.26_Female_relMS_bootvar$t

t_Treat_diff_0.26_MvsF_B=mean(Treat_diff_0.26_MvsF_B,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_B_lower=quantile(Treat_diff_0.26_MvsF_B,.025,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_B_upper=quantile(Treat_diff_0.26_MvsF_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.26$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_cMS,DB_data_clean_0.26$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.26_MvsF_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52

Treat_diff_0.52_MvsF_B <- B_0.52_Male_relMS_bootvar$t    - B_0.52_Female_relMS_bootvar$t

t_Treat_diff_0.52_MvsF_B=mean(Treat_diff_0.52_MvsF_B,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_B_lower=quantile(Treat_diff_0.52_MvsF_B,.025,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_B_upper=quantile(Treat_diff_0.52_MvsF_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.52$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_cMS,DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.52_MvsF_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67

Treat_diff_0.67_MvsF_B <- B_0.67_Male_relMS_bootvar$t    - B_0.67_Female_relMS_bootvar$t

t_Treat_diff_0.67_MvsF_B=mean(Treat_diff_0.67_MvsF_B,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_B_lower=quantile(Treat_diff_0.67_MvsF_B,.025,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_B_upper=quantile(Treat_diff_0.67_MvsF_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_m_cMS,DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.67_MvsF_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#1.33

Treat_diff_1.33_MvsF_B <- B_1.33_Male_relMS_bootvar$t    - B_1.33_Female_relMS_bootvar$t

t_Treat_diff_1.33_MvsF_B=mean(Treat_diff_1.33_MvsF_B,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_B_lower=quantile(Treat_diff_1.33_MvsF_B,.025,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_B_upper=quantile(Treat_diff_1.33_MvsF_B,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_1.33$rel_m_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_1.33$rel_m_cMS,DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2] - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(a.random ~c.random)$coefficients[2] - lm(b.random ~d.random)$coefficients[2]
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_1.33_MvsF_B_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#S ####
#0.26
Treat_diff_0.26_MvsF_S <- S_0.26_Male_relMS_bootvar$t    - S_0.26_Female_relMS_bootvar$t

t_Treat_diff_0.26_MvsF_S=mean(Treat_diff_0.26_MvsF_S,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_S_lower=quantile(Treat_diff_0.26_MvsF_S,.025,na.rm=TRUE)
t_Treat_diff_0.26_MvsF_S_upper=quantile(Treat_diff_0.26_MvsF_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.26$rel_m_cMS, DB_data_clean_0.26$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.26$rel_m_RS, DB_data_clean_0.26$rel_f_RS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.26$rel_m_RS ~DB_data_clean_0.26$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.26$rel_f_RS ~DB_data_clean_0.26$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.26$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.26$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.26$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.26_MvsF_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.52
Treat_diff_0.52_MvsF_S <- S_0.52_Male_relMS_bootvar$t    - S_0.52_Female_relMS_bootvar$t

t_Treat_diff_0.52_MvsF_S=mean(Treat_diff_0.52_MvsF_S,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_S_lower=quantile(Treat_diff_0.52_MvsF_S,.025,na.rm=TRUE)
t_Treat_diff_0.52_MvsF_S_upper=quantile(Treat_diff_0.52_MvsF_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.52$rel_m_cMS, DB_data_clean_0.52$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.52$rel_m_RS, DB_data_clean_0.52$rel_f_RS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.52$rel_m_RS ~DB_data_clean_0.52$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.52$rel_f_RS ~DB_data_clean_0.52$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.52$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.52$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.52$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}
# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.52_MvsF_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#0.67
Treat_diff_0.67_MvsF_S <- S_0.67_Male_relMS_bootvar$t    - S_0.67_Female_relMS_bootvar$t

t_Treat_diff_0.67_MvsF_S=mean(Treat_diff_0.67_MvsF_S,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_S_lower=quantile(Treat_diff_0.67_MvsF_S,.025,na.rm=TRUE)
t_Treat_diff_0.67_MvsF_S_upper=quantile(Treat_diff_0.67_MvsF_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_0.67$rel_m_cMS, DB_data_clean_0.67$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_0.67$rel_m_RS, DB_data_clean_0.67$rel_f_RS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_0.67$rel_m_RS ~DB_data_clean_0.67$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_0.67$rel_f_RS ~DB_data_clean_0.67$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_0.67$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_0.67$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_0.67$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_0.67_MvsF_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#1.33
Treat_diff_1.33_MvsF_S <- S_1.33_Male_relMS_bootvar$t    - S_1.33_Female_relMS_bootvar$t

t_Treat_diff_1.33_MvsF_S=mean(Treat_diff_1.33_MvsF_S,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_S_lower=quantile(Treat_diff_1.33_MvsF_S,.025,na.rm=TRUE)
t_Treat_diff_1.33_MvsF_S_upper=quantile(Treat_diff_1.33_MvsF_S,.975,na.rm=TRUE)

#Permutation test to calculate p value
comb_data1=c(DB_data_clean_1.33$rel_m_cMS, DB_data_clean_1.33$rel_f_cMS,recursive = T , use.names = F)
comb_data2=c(DB_data_clean_1.33$rel_m_RS, DB_data_clean_1.33$rel_f_RS,recursive = T , use.names = F)

diff.observed = lm(DB_data_clean_1.33$rel_m_RS ~DB_data_clean_1.33$rel_m_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_m_cMS, na.rm=TRUE)) - lm(DB_data_clean_1.33$rel_f_RS ~DB_data_clean_1.33$rel_f_cMS)$coefficients[2]*sqrt(var(DB_data_clean_1.33$rel_f_cMS, na.rm=TRUE))
diff.observed

number_of_permutations = 100000
diff.random = NULL
for (i in 1 : number_of_permutations) {
  
  # Sample from the combined dataset
  a.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_m_cMS), TRUE)
  b.random = sample (na.omit(comb_data1), length(DB_data_clean_1.33$rel_f_cMS), TRUE)
  c.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_m_RS), TRUE)
  d.random = sample (na.omit(comb_data2), length(DB_data_clean_1.33$rel_f_RS), TRUE)
  
  # Null (permuated) difference
  diff.random[i] = lm(c.random ~a.random)$coefficients[2]*sqrt(var(a.random, na.rm=TRUE)) - lm(d.random ~b.random)$coefficients[2]*sqrt(var(b.random, na.rm=TRUE))
}

# P-value is the fraction of how many times the permuted difference is
# equal or more extreme than the observed difference

t_Treat_diff_1.33_MvsF_S_p = sum(abs(diff.random) >= as.numeric(abs(diff.observed)))/   number_of_permutations

#Save data table ####
CompTreat_Table_0.26_MvsF_I <- as.data.frame(cbind("Male", "0.26", "Opportunity for selection", t_Treat_diff_0.26_MvsF_I, t_Treat_diff_0.26_MvsF_I_lower, t_Treat_diff_0.26_MvsF_I_upper, t_Treat_diff_0.26_MvsF_I_p))
CompTreat_Table_0.52_MvsF_I <- as.data.frame(cbind("Male", "0.52", "Opportunity for selection", t_Treat_diff_0.52_MvsF_I, t_Treat_diff_0.52_MvsF_I_lower, t_Treat_diff_0.52_MvsF_I_upper, t_Treat_diff_0.52_MvsF_I_p))
CompTreat_Table_0.67_MvsF_I <- as.data.frame(cbind("Male", "0.67", "Opportunity for selection",  t_Treat_diff_0.67_MvsF_I, t_Treat_diff_0.67_MvsF_I_lower, t_Treat_diff_0.67_MvsF_I_upper, t_Treat_diff_0.67_MvsF_I_p))
CompTreat_Table_1.33_MvsF_I <- as.data.frame(cbind("Male", "1.33", "Opportunity for selection",  t_Treat_diff_1.33_MvsF_I, t_Treat_diff_1.33_MvsF_I_lower, t_Treat_diff_1.33_MvsF_I_upper, t_Treat_diff_1.33_MvsF_I_p))
CompTreat_Table_0.26_MvsF_Is <- as.data.frame(cbind("Male", "0.26", "Opportunity for sexual selection", t_Treat_diff_0.26_MvsF_Is, t_Treat_diff_0.26_MvsF_Is_lower, t_Treat_diff_0.26_MvsF_Is_upper, t_Treat_diff_0.26_MvsF_Is_p))
CompTreat_Table_0.52_MvsF_Is <- as.data.frame(cbind("Male", "0.52", "Opportunity for sexual selection", t_Treat_diff_0.52_MvsF_Is, t_Treat_diff_0.52_MvsF_Is_lower, t_Treat_diff_0.52_MvsF_Is_upper, t_Treat_diff_0.52_MvsF_Is_p))
CompTreat_Table_0.67_MvsF_Is <- as.data.frame(cbind("Male", "0.67", "Opportunity for sexual selection",  t_Treat_diff_0.67_MvsF_Is, t_Treat_diff_0.67_MvsF_Is_lower, t_Treat_diff_0.67_MvsF_Is_upper, t_Treat_diff_0.67_MvsF_Is_p))
CompTreat_Table_1.33_MvsF_Is <- as.data.frame(cbind("Male", "1.33", "Opportunity for sexual selection",  t_Treat_diff_1.33_MvsF_Is, t_Treat_diff_1.33_MvsF_Is_lower, t_Treat_diff_1.33_MvsF_Is_upper, t_Treat_diff_1.33_MvsF_Is_p))
CompTreat_Table_0.26_MvsF_B <- as.data.frame(cbind("Male", "0.26", "Bateman gradient", t_Treat_diff_0.26_MvsF_B, t_Treat_diff_0.26_MvsF_B_lower, t_Treat_diff_0.26_MvsF_B_upper, t_Treat_diff_0.26_MvsF_B_p))
CompTreat_Table_0.52_MvsF_B <- as.data.frame(cbind("Male", "0.52", "Bateman gradient", t_Treat_diff_0.52_MvsF_B, t_Treat_diff_0.52_MvsF_B_lower, t_Treat_diff_0.52_MvsF_B_upper, t_Treat_diff_0.52_MvsF_B_p))
CompTreat_Table_0.67_MvsF_B <- as.data.frame(cbind("Male", "0.67", "Bateman gradient",  t_Treat_diff_0.67_MvsF_B, t_Treat_diff_0.67_MvsF_B_lower, t_Treat_diff_0.67_MvsF_B_upper, t_Treat_diff_0.67_MvsF_B_p))
CompTreat_Table_1.33_MvsF_B <- as.data.frame(cbind("Male", "1.33", "Bateman gradient",  t_Treat_diff_1.33_MvsF_B, t_Treat_diff_1.33_MvsF_B_lower, t_Treat_diff_1.33_MvsF_B_upper, t_Treat_diff_1.33_MvsF_B_p))
CompTreat_Table_0.26_MvsF_S <- as.data.frame(cbind("Male", "0.26", "Maximum standardized sexual selection differential", t_Treat_diff_0.26_MvsF_S, t_Treat_diff_0.26_MvsF_S_lower, t_Treat_diff_0.26_MvsF_S_upper, t_Treat_diff_0.26_MvsF_S_p))
CompTreat_Table_0.52_MvsF_S <- as.data.frame(cbind("Male", "0.52", "Maximum standardized sexual selection differential", t_Treat_diff_0.52_MvsF_S, t_Treat_diff_0.52_MvsF_S_lower, t_Treat_diff_0.52_MvsF_S_upper, t_Treat_diff_0.52_MvsF_S_p))
CompTreat_Table_0.67_MvsF_S <- as.data.frame(cbind("Male", "0.67", "Maximum standardized sexual selection differential",  t_Treat_diff_0.67_MvsF_S, t_Treat_diff_0.67_MvsF_S_lower, t_Treat_diff_0.67_MvsF_S_upper, t_Treat_diff_0.67_MvsF_S_p))
CompTreat_Table_1.33_MvsF_S <- as.data.frame(cbind("Male", "1.33", "Maximum standardized sexual selection differential",  t_Treat_diff_1.33_MvsF_S, t_Treat_diff_1.33_MvsF_S_lower, t_Treat_diff_1.33_MvsF_S_upper, t_Treat_diff_1.33_MvsF_S_p))
colnames(CompTreat_Table_0.26_MvsF_I)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.52_MvsF_I)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.67_MvsF_I)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_1.33_MvsF_I)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.26_MvsF_Is)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.52_MvsF_Is)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.67_MvsF_Is)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_1.33_MvsF_Is)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.26_MvsF_B)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.52_MvsF_B)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.26_MvsF_I)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.67_MvsF_B)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_1.33_MvsF_B)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.26_MvsF_S)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.52_MvsF_S)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.67_MvsF_S)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_0.67_MvsF_S)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")
colnames(CompTreat_Table_1.33_MvsF_S)<-c("Sex","Treatment","Variable","Variance","l95.CI","u95.CI","P-Value")


Table_BatemanMetrics_SexComp <- as.data.frame(as.matrix(rbind(CompTreat_Table_0.26_MvsF_I,CompTreat_Table_0.52_MvsF_I,CompTreat_Table_0.67_MvsF_I,CompTreat_Table_1.33_MvsF_I,
                                                              CompTreat_Table_0.26_MvsF_Is,CompTreat_Table_0.52_MvsF_Is,CompTreat_Table_0.67_MvsF_Is,CompTreat_Table_1.33_MvsF_Is,
                                                              CompTreat_Table_0.26_MvsF_B,CompTreat_Table_0.52_MvsF_B,CompTreat_Table_0.67_MvsF_B,CompTreat_Table_1.33_MvsF_B,
                                                              CompTreat_Table_0.26_MvsF_S,CompTreat_Table_0.52_MvsF_S,CompTreat_Table_0.67_MvsF_S,CompTreat_Table_1.33_MvsF_S)))

Table_BatemanMetrics_SexComp[,4]=as.numeric(Table_BatemanMetrics_SexComp[,4])
Table_BatemanMetrics_SexComp[,5]=as.numeric(Table_BatemanMetrics_SexComp[,5])
Table_BatemanMetrics_SexComp[,6]=as.numeric(Table_BatemanMetrics_SexComp[,6])
Table_BatemanMetrics_SexComp[,7]=as.numeric(Table_BatemanMetrics_SexComp[,7])

Table_BatemanMetrics_SexComp_round=cbind(Table_BatemanMetrics_SexComp[,c(1,2,3)],round(Table_BatemanMetrics_SexComp[,c(4,5,6,7)],digit=3))

rownames(Table_BatemanMetrics_SexComp_round) <- NULL

Opportunity for selection

BarPlot_1<- ggplot(Table_BatemanMetrics[c(1:4,17:20),], aes(x=Sex, y=Variance, fill=Treatment)) + 
  scale_y_continuous(limits = c(0, 2), breaks = seq(0,2,0.5), expand = c(0 ,0))+  
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8)+
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  xlab('') +ylab(expression(paste(~italic("I"))))+ggtitle('Opportunity for selection')+labs(tag = "A")+
  scale_x_discrete(breaks=waiver(),labels = c("Female","Male"))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))
BarPlot_1

Figure 7: Effects of denstiy treatment on the opportunity for selection (variance in reproductive success) in females and males. Means and 95% confidence intervals.

Treatement comparisons via permutation test for the opportunity for selection

Table_BatemanMetrics_TreatComp_round[c(1,2,3,4,5,6,25,26,27,28,29,30),c(1,3,4,5,6)]
      Sex                  Variable Variance l95.CI u95.CI
1    Male Opportunity for selection    0.131 -0.334  0.707
2    Male Opportunity for selection   -0.196 -1.090  0.599
3    Male Opportunity for selection   -0.169 -0.765  0.480
4    Male Opportunity for selection   -0.327 -1.137  0.250
5    Male Opportunity for selection   -0.300 -0.759  0.128
6    Male Opportunity for selection    0.027 -0.684  0.896
25 Female Opportunity for selection    0.062 -0.198  0.362
26 Female Opportunity for selection   -0.142 -0.476  0.193
27 Female Opportunity for selection    0.298  0.065  0.558
28 Female Opportunity for selection   -0.204 -0.583  0.153
29 Female Opportunity for selection    0.236 -0.068  0.528
30 Female Opportunity for selection    0.439  0.099  0.787

Sex comparisons via permutation test for the opportunity for selection

Table_BatemanMetrics_SexComp_round[c(1,2,3,4),c(1,3,4,5,6)]
   Sex                  Variable Variance l95.CI u95.CI
1 Male Opportunity for selection   -0.032 -0.480  0.527
2 Male Opportunity for selection   -0.101 -0.382  0.226
3 Male Opportunity for selection    0.022 -0.600  0.847
4 Male Opportunity for selection    0.435  0.026  0.902

Opportunity for sexual selection

BarPlot_2<- ggplot(Table_BatemanMetrics[c(5:8,21:24),], aes(x=Sex, y=Variance, fill=Treatment)) + 
  scale_y_continuous(limits = c(0, 1.2), breaks = seq(0,1.2,0.2), expand = c(0 ,0))+  
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8)+
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  xlab('') +ylab(expression(paste(~italic("I"['s']))))+ggtitle('Opportunity for sexual selection')+labs(tag = "B")+
  scale_x_discrete(breaks=waiver(),labels = c("Female","Male"))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))
BarPlot_2

Figure 8: Effects of denstiy and area treatment on the opportunity for sexual selection (variance in mating success) in females and males. Means and 95% confidence intervals.

Treatement comparisons via permutation test for the opportunity for sexual selection

Table_BatemanMetrics_TreatComp_round[c(7,8,9,10,11,12,31,32,33,34,35,36),c(1,3,4,5,6)]
      Sex                         Variable Variance l95.CI u95.CI
7    Male Opportunity for sexual selection   -0.116 -0.320  0.062
8    Male Opportunity for sexual selection    0.006 -0.091  0.101
9    Male Opportunity for sexual selection   -0.024 -0.174  0.109
10   Male Opportunity for sexual selection    0.122 -0.053  0.324
11   Male Opportunity for sexual selection    0.092 -0.119  0.312
12   Male Opportunity for sexual selection   -0.030 -0.176  0.095
31 Female Opportunity for sexual selection   -0.164 -0.406  0.042
32 Female Opportunity for sexual selection   -0.003 -0.101  0.075
33 Female Opportunity for sexual selection   -0.042 -0.198  0.085
34 Female Opportunity for sexual selection    0.162 -0.054  0.411
35 Female Opportunity for sexual selection    0.123 -0.130  0.397
36 Female Opportunity for sexual selection   -0.039 -0.205  0.105

Sex comparisons via permutation test for the opportunity for selection

Table_BatemanMetrics_SexComp_round[c(5,6,7,8),c(1,3,4,5,6)]
   Sex                         Variable Variance l95.CI u95.CI
5 Male Opportunity for sexual selection    0.003 -0.081  0.090
6 Male Opportunity for sexual selection   -0.045 -0.340  0.237
7 Male Opportunity for sexual selection   -0.006 -0.110  0.087
8 Male Opportunity for sexual selection   -0.014 -0.199  0.165

Bateman gradient

# Bateman gradient
BarPlot_3<- ggplot(Table_BatemanMetrics[c(9:12,25:28),], aes(x=Sex, y=Variance, fill=Treatment)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8)+
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  xlab('Sex') +ylab(expression(paste(~italic(symbol("b")['ss']))))+ggtitle('Bateman gradient')+labs(tag = "C")+
  scale_x_discrete(breaks=waiver(),labels = c("Female","Male"))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))
BarPlot_3

Figure 9: Effects of density treatment on the Bateman gradient (slope of mating success on reproductive success) in females and males. Means and 95% confidence intervals.

Treatement comparisons via permutation test for the Bateman gradient

Table_BatemanMetrics_TreatComp_round[c(13,14,15,16,17,18,37,38,39,40,41,42),c(1,3,4,5,6)]
      Sex         Variable Variance l95.CI u95.CI
13   Male Bateman gradient    0.902 -0.105  1.958
14   Male Bateman gradient   -0.571 -1.823  0.849
15   Male Bateman gradient   -0.252 -1.338  0.684
16   Male Bateman gradient   -1.474 -2.747 -0.073
17   Male Bateman gradient   -1.155 -2.241 -0.246
18   Male Bateman gradient    0.319 -1.109  1.491
37 Female Bateman gradient   -0.094 -1.094  0.795
38 Female Bateman gradient    1.228 -0.197  2.551
39 Female Bateman gradient    0.066 -1.017  1.070
40 Female Bateman gradient    1.322  0.008  2.530
41 Female Bateman gradient    0.160 -0.760  1.005
42 Female Bateman gradient   -1.162 -2.442  0.191

Sex comparisons via permutation test for the opportunity for selection

Table_BatemanMetrics_SexComp_round[c(9,10,11,12),c(1,3,4,5,6)]
    Sex         Variable Variance l95.CI u95.CI
9  Male Bateman gradient    0.037 -0.999  1.148
10 Male Bateman gradient   -0.959 -1.907 -0.105
11 Male Bateman gradient    1.836  0.196  3.315
12 Male Bateman gradient    0.355 -0.590  1.402
# Bateman gradient (scatter)
p1<-ggplot(DB_data_clean_0.26, aes(x=rel_m_cMS, y=rel_m_RS)) +
  geom_point(alpha=0.4,shape=16, size = 3,color=colpal2[2]) +
  geom_smooth(method=lm, se=TRUE,alpha=0.3) +
  theme(plot.tag.position=c(0.1,0.98))+
  labs(tag = "A")+xlab('Rel. mating success')+ylab("Rel. reproductive success")+ggtitle('Small gr. size & large area')+ theme(plot.title = element_text(hjust = 0.5))+
  theme(axis.text=element_text(size=13),
        axis.title=element_text(size=14))+ theme(legend.position="none")+
  ylim(0,4.2)+xlim(0,3.2)+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"))
p1=p1+geom_point(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],alpha=0.4,shape=16, size = 3)+
  geom_smooth(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],method=lm, se=TRUE,alpha=0.3)

p2<-ggplot(DB_data_clean_0.52, aes(x=rel_m_cMS, y=rel_m_RS)) +
  geom_point(alpha=0.4,shape=16, size = 3,color=colpal2[2]) +
  geom_smooth(method=lm, se=TRUE,alpha=0.3) +
  theme(plot.tag.position=c(0.1,0.98))+
  labs(tag = "B")+xlab('Rel. mating success')+ylab("Rel. reproductive success")+ggtitle('Large gr. size & large area')+ theme(plot.title = element_text(hjust = 0.5))+
  theme(axis.text=element_text(size=13),
        axis.title=element_text(size=14))+ theme(legend.position="none")+
  ylim(0,4.2)+xlim(0,3.2)+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"))
p2=p2+geom_point(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],alpha=0.4,shape=16, size = 3)+
  geom_smooth(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],method=lm, se=TRUE,alpha=0.3)

p3<-ggplot(DB_data_clean_0.67, aes(x=rel_m_cMS, y=rel_m_RS)) +
  geom_point(alpha=0.4,shape=16, size = 3,color=colpal2[2]) +
  geom_smooth(method=lm, se=TRUE,alpha=0.3) +
  theme(plot.tag.position=c(0.1,0.98))+
  labs(tag = "C")+xlab('Rel. mating success')+ylab("Rel. reproductive success")+ggtitle('Small gr. size & small area')+ theme(plot.title = element_text(hjust = 0.5))+
  theme(axis.text=element_text(size=13),
        axis.title=element_text(size=14))+ theme(legend.position="none")+
  ylim(0,4.2)+xlim(0,3.2)+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"))
p3=p3+geom_point(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],alpha=0.4,shape=16, size = 3)+
  geom_smooth(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],method=lm, se=TRUE,alpha=0.3)


p4<-ggplot(DB_data_clean_1.33, aes(x=rel_m_cMS, y=rel_m_RS)) +
  geom_point(alpha=0.4,shape=16, size = 3,color=colpal2[2]) +
  geom_smooth(method=lm, se=TRUE,alpha=0.3) +
  theme(plot.tag.position=c(0.1,0.98))+
  labs(tag = "D")+xlab('Rel. mating success')+ylab("Rel. reproductive success")+ggtitle('Large gr. size & small area')+ theme(plot.title = element_text(hjust = 0.5))+
  theme(axis.text=element_text(size=13),
        axis.title=element_text(size=14))+
  ylim(0,4.2)+xlim(0,3.2)+
  theme(legend.position="none")+
  theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"))
p4=p4+geom_point(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],alpha=0.4,shape=16, size = 3)+
  geom_smooth(aes(x=rel_f_cMS, y=rel_f_RS),color=colpal2[1],method=lm, se=TRUE,alpha=0.3)

#Create legend
p5<-ggplot(DB_data_clean, aes(x=Total_N_MTP1, y=Total_N_Rd, color=Sex)) +
  geom_point(alpha=0.4,shape=16, size = 3, position=position_jitterdodge(jitter.height=0,jitter.width=0,dodge.width = 0)) +
  geom_smooth(method=lm, se=TRUE,alpha=0.3) +
  scale_color_manual(values=c(colpal2[1],colpal2[2]),name = "Sex", labels = c('Females','Males'))+
  xlab('Rel. mating success')+ylab("Rel. reproductive success")+
 guides(color=guide_legend(override.aes=list(fill=NA)))+
  theme(legend.key = element_rect(fill = "transparent"))

legend <- get_legend(p5)

plot1<-grid.arrange(p1,p2,legend,p3,p4,legend, nrow = 2,ncol=3, widths=c(2.3, 2.3, 0.65))

Figure 10: Scatter plot of the Bateman gradient in females and males. Means and 95% confidence intervals.

Jones index

BarPlot_4<- ggplot(Table_BatemanMetrics[c(13:16,25:28),], aes(x=Sex, y=Variance, fill=Treatment)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8)+
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  xlab('Sex') +ylab(expression(paste(~italic("s'"['max']))))+ggtitle('Jones index')+labs(tag = "D")+
  scale_x_discrete(breaks=waiver(),labels = c("Female","Male"))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))
BarPlot_4

Figure 11: Effects of density treatment on the Jones index (maximum strength of sexual selection) in females and males. Means and 95% confidence intervals.

Treatement comparisons via permutation test for the Jones index

Table_BatemanMetrics_TreatComp_round[c(19,20,21,22,23,25,43,44,45,46,47,48),c(1,3,4,5,6)]
      Sex                                           Variable Variance l95.CI
19   Male Maximum standardized sexual selection differential    0.323 -0.137
20   Male Maximum standardized sexual selection differential   -0.209 -0.756
21   Male Maximum standardized sexual selection differential   -0.113 -0.443
22   Male Maximum standardized sexual selection differential   -0.532 -1.127
23   Male Maximum standardized sexual selection differential   -0.436 -0.836
25 Female                          Opportunity for selection    0.062 -0.198
43 Female Maximum standardized sexual selection differential   -0.178 -0.554
44 Female Maximum standardized sexual selection differential    0.451 -0.054
45 Female Maximum standardized sexual selection differential   -0.002 -0.378
46 Female Maximum standardized sexual selection differential    0.628  0.143
47 Female Maximum standardized sexual selection differential    0.176 -0.177
48 Female Maximum standardized sexual selection differential   -0.453 -0.880
   u95.CI
19  0.767
20  0.337
21  0.222
22  0.066
23 -0.015
25  0.362
43  0.209
44  0.906
45  0.370
46  1.067
47  0.535
48  0.025

Sex comparisons via permutation test for the opportunity for selection

Table_BatemanMetrics_SexComp_round[c(13,14,15,16),c(1,3,4,5,6)]
    Sex                                           Variable Variance l95.CI
13 Male Maximum standardized sexual selection differential    0.014 -0.368
14 Male Maximum standardized sexual selection differential   -0.487 -0.909
15 Male Maximum standardized sexual selection differential    0.674  0.052
16 Male Maximum standardized sexual selection differential    0.125 -0.191
   u95.CI
13  0.414
14 -0.028
15  1.276
16  0.454

Variance decopmposition

We decomposed the variance in reproductive success for males and females.

Components fro males were:
- Mating success
- Insemination success
- Fertilization success
- Partner fecundity

Components for females were:
- Mating success
- Fecundity

We used bootstrapping (10.000 bootstrap replicates) to obtain 95% confidence intervals and permutation tests (10.000 permutations) to statistically compare treatments and sexes.

# Bootstrapping variances + CI ####
# mMS ####
# small group - large area
DB_data_clean_0.26_M_MS_n <-as.data.table(DB_data_clean_0.26$rel_m_cMS)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
D0.26_M_MS_bootvar <- boot(DB_data_clean_0.26_M_MS_n, c, R=10000)

# Large group + large Area
DB_data_clean_0.52_M_MS_n <-as.data.table(DB_data_clean_0.52$rel_m_cMS)

D0.52_M_MS_bootvar <- boot(DB_data_clean_0.52_M_MS_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_M_MS_n <-as.data.table(DB_data_clean_0.67$rel_m_cMS)

D0.67_M_MS_bootvar <- boot(DB_data_clean_0.67_M_MS_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_M_MS_n <-as.data.table(DB_data_clean_1.33$rel_m_cMS)

D1.33_M_MS_bootvar <- boot(DB_data_clean_1.33_M_MS_n, c, R=10000)
rm("c")

# InSuc ####
# small group - large area
DB_data_clean_0.26_M_InSuc_n <-as.data.table(DB_data_clean_0.26$rel_m_InSuc)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
D0.26_M_InSuc_bootvar <- boot(DB_data_clean_0.26_M_InSuc_n, c, R=10000)

# Large group + large Area
DB_data_clean_0.52_M_InSuc_n <-as.data.table(DB_data_clean_0.52$rel_m_InSuc)

D0.52_M_InSuc_bootvar <- boot(DB_data_clean_0.52_M_InSuc_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_M_InSuc_n <-as.data.table(DB_data_clean_0.67$rel_m_InSuc)

D0.67_M_InSuc_bootvar <- boot(DB_data_clean_0.67_M_InSuc_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_M_InSuc_n <-as.data.table(DB_data_clean_1.33$rel_m_InSuc)

D1.33_M_InSuc_bootvar <- boot(DB_data_clean_1.33_M_InSuc_n, c, R=10000)
rm("c")

# feSuc ####
# small group - large area
DB_data_clean_0.26_M_feSuc_n <-as.data.table(DB_data_clean_0.26$rel_m_feSuc)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2$V1, na.rm=TRUE))
}
D0.26_M_feSuc_bootvar <- boot(DB_data_clean_0.26_M_feSuc_n, c, R=10000)

# Large group + large Area
DB_data_clean_0.52_M_feSuc_n <-as.data.table(DB_data_clean_0.52$rel_m_feSuc)

D0.52_M_feSuc_bootvar <- boot(DB_data_clean_0.52_M_feSuc_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_M_feSuc_n <-as.data.table(DB_data_clean_0.67$rel_m_feSuc)

D0.67_M_feSuc_bootvar <- boot(DB_data_clean_0.67_M_feSuc_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_M_feSuc_n <-as.data.table(DB_data_clean_1.33$rel_m_feSuc)

D1.33_M_feSuc_bootvar <- boot(DB_data_clean_1.33_M_feSuc_n, c, R=10000)
rm("c")

# pFec ####
# small group - large area
DB_data_clean_0.26_M_pFec_n <-as.data.table(DB_data_clean_0.26$rel_m_pFec)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
D0.26_M_pFec_bootvar <- boot(DB_data_clean_0.26_M_pFec_n, c, R=10000)

# Large group + large Area
DB_data_clean_0.52_M_pFec_n <-as.data.table(DB_data_clean_0.52$rel_m_pFec)

D0.52_M_pFec_bootvar <- boot(DB_data_clean_0.52_M_pFec_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_M_pFec_n <-as.data.table(DB_data_clean_0.67$rel_m_pFec)

D0.67_M_pFec_bootvar <- boot(DB_data_clean_0.67_M_pFec_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_M_pFec_n <-as.data.table(DB_data_clean_1.33$rel_m_pFec)

D1.33_M_pFec_bootvar <- boot(DB_data_clean_1.33_M_pFec_n, c, R=10000)
rm("c")

# fMS ####
# small group - large area
DB_data_clean_0.26_F_fMS_n <-as.data.table(DB_data_clean_0.26$rel_f_cMS)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
D0.26_F_fMS_bootvar <- boot(DB_data_clean_0.26_F_fMS_n, c, R=10000)

# Large group + large Area
DB_data_clean_0.52_F_fMS_n <-as.data.table(DB_data_clean_0.52$rel_f_cMS)

D0.52_F_fMS_bootvar <- boot(DB_data_clean_0.52_F_fMS_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_F_fMS_n <-as.data.table(DB_data_clean_0.67$rel_f_cMS)

D0.67_F_fMS_bootvar <- boot(DB_data_clean_0.67_F_fMS_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_F_fMS_n <-as.data.table(DB_data_clean_1.33$rel_f_cMS)

D1.33_F_fMS_bootvar <- boot(DB_data_clean_1.33_F_fMS_n, c, R=10000)

rm("c")

# fFec ####
# small group - large area
DB_data_clean_0.26_F_fFec_n <-as.data.table(DB_data_clean_0.26$rel_f_fec_pMate)
c <- function(d, i){
  d2 <- d[i,]
  return(var(d2[,1], na.rm=TRUE))
}
D0.26_F_fFec_bootvar <- boot(DB_data_clean_0.26_F_fFec_n, c, R=10000)


# Large group + large Area
DB_data_clean_0.52_F_fFec_n <-as.data.table(DB_data_clean_0.52$rel_f_fec_pMate)

D0.52_F_fFec_bootvar <- boot(DB_data_clean_0.52_F_fFec_n, c, R=10000)

# Small group + small Area
DB_data_clean_0.67_F_fFec_n <-as.data.table(DB_data_clean_0.67$rel_f_fec_pMate)

D0.67_F_fFec_bootvar <- boot(DB_data_clean_0.67_F_fFec_n, c, R=10000)

# Large group + small Area 
DB_data_clean_1.33_F_fFec_n <-as.data.table(DB_data_clean_1.33$rel_f_fec_pMate)

D1.33_F_fFec_bootvar <- boot(DB_data_clean_1.33_F_fFec_n, c, R=10000)

rm("c")

#Write Table ####
library(base)

PhenVarBoot_Table_Male_0.26_MS <- as.data.frame(cbind("Male", "MS", "0.26", mean(D0.26_M_MS_bootvar$t), quantile(D0.26_M_MS_bootvar$t,.025, names = FALSE), quantile(D0.26_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_MS <- as.data.frame(cbind("Male", "MS", "0.52", mean(D0.52_M_MS_bootvar$t), quantile(D0.52_M_MS_bootvar$t,.025, names = FALSE), quantile(D0.52_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_MS <- as.data.frame(cbind("Male", "MS", "0.67", mean(D0.67_M_MS_bootvar$t), quantile(D0.67_M_MS_bootvar$t,.025, names = FALSE), quantile(D0.67_M_MS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_MS <- as.data.frame(cbind("Male", "MS", "1.33", mean(D1.33_M_MS_bootvar$t), quantile(D1.33_M_MS_bootvar$t,.025, names = FALSE), quantile(D1.33_M_MS_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.26_InSuc <- as.data.frame(cbind("Male", "InSuc", "0.26", mean(D0.26_M_InSuc_bootvar$t), quantile(D0.26_M_InSuc_bootvar$t,.025, names = FALSE), quantile(D0.26_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_InSuc <- as.data.frame(cbind("Male", "InSuc", "0.52", mean(D0.52_M_InSuc_bootvar$t), quantile(D0.52_M_InSuc_bootvar$t,.025, names = FALSE), quantile(D0.52_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_InSuc <- as.data.frame(cbind("Male", "InSuc", "0.67", mean(D0.67_M_InSuc_bootvar$t), quantile(D0.67_M_InSuc_bootvar$t,.025, names = FALSE), quantile(D0.67_M_InSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_InSuc <- as.data.frame(cbind("Male", "InSuc", "1.33", mean(D1.33_M_InSuc_bootvar$t), quantile(D1.33_M_InSuc_bootvar$t,.025, names = FALSE), quantile(D1.33_M_InSuc_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.26_feSuc <- as.data.frame(cbind("Male", "feSuc", "0.26", mean(D0.26_M_feSuc_bootvar$t), quantile(D0.26_M_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.26_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_feSuc <- as.data.frame(cbind("Male", "feSuc", "0.52", mean(D0.52_M_feSuc_bootvar$t), quantile(D0.52_M_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.52_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_feSuc <- as.data.frame(cbind("Male", "feSuc", "0.67", mean(D0.67_M_feSuc_bootvar$t), quantile(D0.67_M_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.67_M_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_feSuc <- as.data.frame(cbind("Male", "feSuc", "1.33", mean(D1.33_M_feSuc_bootvar$t), quantile(D1.33_M_feSuc_bootvar$t,.025, names = FALSE), quantile(D1.33_M_feSuc_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.26_pFec <- as.data.frame(cbind("Male", "pFec", "0.26", mean(D0.26_M_pFec_bootvar$t), quantile(D0.26_M_pFec_bootvar$t,.025, names = FALSE), quantile(D0.26_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_pFec <- as.data.frame(cbind("Male", "pFec", "0.52", mean(D0.52_M_pFec_bootvar$t), quantile(D0.52_M_pFec_bootvar$t,.025, names = FALSE), quantile(D0.52_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_pFec <- as.data.frame(cbind("Male", "pFec", "0.67", mean(D0.67_M_pFec_bootvar$t), quantile(D0.67_M_pFec_bootvar$t,.025, names = FALSE), quantile(D0.67_M_pFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_pFec <- as.data.frame(cbind("Male", "pFec", "1.33", mean(D1.33_M_pFec_bootvar$t), quantile(D1.33_M_pFec_bootvar$t,.025, names = FALSE), quantile(D1.33_M_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Female_0.26_fMS <- as.data.frame(cbind("Female", "fMS", "0.26", mean(D0.26_F_fMS_bootvar$t), quantile(D0.26_F_fMS_bootvar$t,.025, names = FALSE), quantile(D0.26_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.52_fMS <- as.data.frame(cbind("Female", "fMS", "0.52", mean(D0.52_F_fMS_bootvar$t), quantile(D0.52_F_fMS_bootvar$t,.025, names = FALSE), quantile(D0.52_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.67_fMS <- as.data.frame(cbind("Female", "fMS", "0.67", mean(D0.67_F_fMS_bootvar$t), quantile(D0.67_F_fMS_bootvar$t,.025, names = FALSE), quantile(D0.67_F_fMS_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_1.33_fMS <- as.data.frame(cbind("Female", "fMS", "1.33", mean(D1.33_F_fMS_bootvar$t), quantile(D1.33_F_fMS_bootvar$t,.025, names = FALSE), quantile(D1.33_F_fMS_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Female_0.26_fFec <- as.data.frame(cbind("Female", "fFec", "0.26", mean(D0.26_F_fFec_bootvar$t), quantile(D0.26_F_fFec_bootvar$t,.025, names = FALSE), quantile(D0.26_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.52_fFec <- as.data.frame(cbind("Female", "fFec", "0.52", mean(D0.52_F_fFec_bootvar$t), quantile(D0.52_F_fFec_bootvar$t,.025, names = FALSE), quantile(D0.52_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_0.67_fFec <- as.data.frame(cbind("Female", "fFec", "0.67", mean(D0.67_F_fFec_bootvar$t), quantile(D0.67_F_fFec_bootvar$t,.025, names = FALSE), quantile(D0.67_F_fFec_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Female_1.33_fFec <- as.data.frame(cbind("Female", "fFec", "1.33", mean(D1.33_F_fFec_bootvar$t,na.rm=T), quantile(D1.33_F_fFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D1.33_F_fFec_bootvar$t,.975, names = FALSE,na.rm=T)))

PhenVarBoot_Table <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_0.26_MS,PhenVarBoot_Table_Male_0.52_MS,PhenVarBoot_Table_Male_0.67_MS,PhenVarBoot_Table_Male_1.33_MS,
                                                   PhenVarBoot_Table_Male_0.26_InSuc,PhenVarBoot_Table_Male_0.52_InSuc,PhenVarBoot_Table_Male_0.67_InSuc,PhenVarBoot_Table_Male_1.33_InSuc,
                                                   PhenVarBoot_Table_Male_0.26_feSuc,PhenVarBoot_Table_Male_0.52_feSuc,PhenVarBoot_Table_Male_0.67_feSuc,PhenVarBoot_Table_Male_1.33_feSuc,
                                                   PhenVarBoot_Table_Male_0.26_pFec,PhenVarBoot_Table_Male_0.52_pFec,PhenVarBoot_Table_Male_0.67_pFec,PhenVarBoot_Table_Male_1.33_pFec,
                                                   PhenVarBoot_Table_Female_0.26_fMS,PhenVarBoot_Table_Female_0.52_fMS,PhenVarBoot_Table_Female_0.67_fMS,PhenVarBoot_Table_Female_1.33_fMS,
                                                   PhenVarBoot_Table_Female_0.26_fFec,PhenVarBoot_Table_Female_0.52_fFec,PhenVarBoot_Table_Female_0.67_fFec,PhenVarBoot_Table_Female_1.33_fFec)))
                                                   
is.table(PhenVarBoot_Table)
colnames(PhenVarBoot_Table)[1] <- "Sex"
colnames(PhenVarBoot_Table)[2] <- "Trait"
colnames(PhenVarBoot_Table)[3] <- "Density"
colnames(PhenVarBoot_Table)[4] <- "Variance"
colnames(PhenVarBoot_Table)[5] <- "l95.CI"
colnames(PhenVarBoot_Table)[6] <- "u95.CI"
PhenVarBoot_Table[,4]=as.numeric(PhenVarBoot_Table[,4])
PhenVarBoot_Table[,5]=as.numeric(PhenVarBoot_Table[,5])
PhenVarBoot_Table[,6]=as.numeric(PhenVarBoot_Table[,6])

PhenVarBoot_Table_round=cbind(PhenVarBoot_Table[,c(1,2,3)],round(PhenVarBoot_Table[,c(4,5,6)],digit=3))
rownames(PhenVarBoot_Table_round) <- NULL
#Compute covariace matrices
# Small group + large Area ####
#Covariance mMS x inSuc
x5=as.data.frame(cbind(DB_data_clean_0.26_M_MS_n,DB_data_clean_0.26_M_InSuc_n))
c <- function(d, i){
  d2 <- d[i,]
  return(cov(d2[1],d2[2],use='pairwise.complete.obs'))
}
D0.26_M_cov_mMS_inSuc_bootvar <- boot(x5, c, R=10000)


#Covariance mMS x feSuc
x6=as.data.frame(cbind(DB_data_clean_0.26_M_MS_n,DB_data_clean_0.26_M_feSuc_n))

D0.26_M_cov_mMS_feSuc_bootvar <- boot(x6, c, R=10000)

#Covariance mMS x pFec
x7=as.data.frame(cbind(DB_data_clean_0.26_M_MS_n,DB_data_clean_0.26_M_pFec_n))

D0.26_M_cov_mMS_pFec_bootvar <- boot(x7, c, R=10000)

#Covariance inSuc x feSuc
x8=as.data.frame(cbind(DB_data_clean_0.26_M_InSuc_n,DB_data_clean_0.26_M_feSuc_n))

D0.26_M_cov_inSuc_feSuc_bootvar <- boot(x8, c, R=10000)


#Covariance inSuc x pFec
x9=as.data.frame(cbind(DB_data_clean_0.26_M_InSuc_n,DB_data_clean_0.26_M_pFec_n))

D0.26_M_cov_inSuc_pFec_bootvar <- boot(x9, c, R=10000)

#Covariance feSuc x pFec
x10=as.data.frame(cbind(DB_data_clean_0.26_M_feSuc_n,DB_data_clean_0.26_M_pFec_n))

D0.26_M_cov_feSuc_pFec_bootvar <- boot(x10, c, R=10000)


#Covariance fMS x fFec
x13=as.data.frame(cbind(DB_data_clean_0.26_F_fMS_n,DB_data_clean_0.26_F_fFec_n))

D0.26_F_cov_fMS_fFec_bootvar <- boot(x13, c, R=10000)

rm("c")

#Write Table ####

PhenVarBoot_Table_Male_0.26_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_mMS_inSuc", "0.26", mean(D0.26_M_cov_mMS_inSuc_bootvar$t), quantile(D0.26_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(D0.26_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.26_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_mMS_feSuc", "0.26", mean(D0.26_M_cov_mMS_feSuc_bootvar$t,na.rm=T), quantile(D0.26_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE,na.rm=T)))
PhenVarBoot_Table_Male_0.26_cov_mMS_pFec <- as.data.frame(cbind("Male", "cov_mMS_pFec", "0.26", mean(D0.26_M_cov_mMS_pFec_bootvar$t,na.rm=T), quantile(D0.26_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE,na.rm=T)))

PhenVarBoot_Table_Male_0.26_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_inSuc_feSuc", "0.26", mean(D0.26_M_cov_inSuc_feSuc_bootvar$t,na.rm=T), quantile(D0.26_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE,na.rm=T)))
PhenVarBoot_Table_Male_0.26_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_inSuc_pFec", "0.26", mean(D0.26_M_cov_inSuc_pFec_bootvar$t,na.rm=T), quantile(D0.26_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE,na.rm=T)))

PhenVarBoot_Table_Male_0.26_cov_feSuc_pFec <- as.data.frame(cbind("Male", "cov_feSuc_pFec", "0.26", mean(D0.26_M_cov_feSuc_pFec_bootvar$t,na.rm=T), quantile(D0.26_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE,na.rm=T)))

PhenVarBoot_Table_Female_0.26_cov_fMS_fFec <- as.data.frame(cbind("Female", "cov_fMS_fFec", "0.26", mean(D0.26_F_cov_fMS_fFec_bootvar$t,na.rm=T), quantile(D0.26_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE,na.rm=T), quantile(D0.26_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE,na.rm=T)))


PhenVarBoot_Cov_Table_0.26 <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_0.26_cov_mMS_inSuc,PhenVarBoot_Table_Male_0.26_cov_mMS_feSuc,
                                                            PhenVarBoot_Table_Male_0.26_cov_mMS_pFec,PhenVarBoot_Table_Male_0.26_cov_inSuc_feSuc,
                                                            PhenVarBoot_Table_Male_0.26_cov_inSuc_pFec,PhenVarBoot_Table_Male_0.26_cov_feSuc_pFec,
                                                            PhenVarBoot_Table_Female_0.26_cov_fMS_fFec)),digits=3)

is.table(PhenVarBoot_Cov_Table_0.26)
colnames(PhenVarBoot_Cov_Table_0.26)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_0.26)[2] <- "Trait"
colnames(PhenVarBoot_Cov_Table_0.26)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_0.26)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_0.26)[5] <- "l95.CI"
colnames(PhenVarBoot_Cov_Table_0.26)[6] <- "u95.CI"
PhenVarBoot_Cov_Table_0.26[,4]=as.numeric(PhenVarBoot_Cov_Table_0.26[,4])
PhenVarBoot_Cov_Table_0.26[,5]=as.numeric(PhenVarBoot_Cov_Table_0.26[,5])
PhenVarBoot_Cov_Table_0.26[,6]=as.numeric(PhenVarBoot_Cov_Table_0.26[,6])

PhenVarBoot_Cov_Table_0.26_round=cbind(PhenVarBoot_Cov_Table_0.26[,1:3],round(PhenVarBoot_Cov_Table_0.26[,4:6],digit=3))
rownames(PhenVarBoot_Cov_Table_0.26_round) <- NULL

# Large group + large Area ####
#Covariance mMS x inSuc
x5=as.data.frame(cbind(DB_data_clean_0.52_M_MS_n,DB_data_clean_0.52_M_InSuc_n))
c <- function(d, i){
  d2 <- d[i,]
  return(cov(d2[1],d2[2],use='pairwise.complete.obs'))
}
D0.52_M_cov_mMS_inSuc_bootvar <- boot(x5, c, R=10000)


#Covariance mMS x feSuc
x6=as.data.frame(cbind(DB_data_clean_0.52_M_MS_n,DB_data_clean_0.52_M_feSuc_n))

D0.52_M_cov_mMS_feSuc_bootvar <- boot(x6, c, R=10000)


#Covariance mMS x pFec
x7=as.data.frame(cbind(DB_data_clean_0.52_M_MS_n,DB_data_clean_0.52_M_pFec_n))

D0.52_M_cov_mMS_pFec_bootvar <- boot(x7, c, R=10000)


#Covariance inSuc x feSuc
x8=as.data.frame(cbind(DB_data_clean_0.52_M_InSuc_n,DB_data_clean_0.52_M_feSuc_n))

D0.52_M_cov_inSuc_feSuc_bootvar <- boot(x8, c, R=10000)


#Covariance inSuc x pFec
x9=as.data.frame(cbind(DB_data_clean_0.52_M_InSuc_n,DB_data_clean_0.52_M_pFec_n))

D0.52_M_cov_inSuc_pFec_bootvar <- boot(x9, c, R=10000)


#Covariance feSuc x pFec
x10=as.data.frame(cbind(DB_data_clean_0.52_M_feSuc_n,DB_data_clean_0.52_M_pFec_n))

D0.52_M_cov_feSuc_pFec_bootvar <- boot(x10, c, R=10000)


#Covariance fMS x fFec
x13=as.data.frame(cbind(DB_data_clean_0.52_F_fMS_n,DB_data_clean_0.52_F_fFec_n))

D0.52_F_cov_fMS_fFec_bootvar <- boot(x13, c, R=10000)

rm("c")

#Write Table ####

PhenVarBoot_Table_Male_0.52_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_mMS_inSuc", "0.52", mean(D0.52_M_cov_mMS_inSuc_bootvar$t), quantile(D0.52_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_mMS_feSuc", "0.52", mean(D0.52_M_cov_mMS_feSuc_bootvar$t), quantile(D0.52_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_cov_mMS_pFec <- as.data.frame(cbind("Male", "cov_mMS_pFec", "0.52", mean(D0.52_M_cov_mMS_pFec_bootvar$t), quantile(D0.52_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.52_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_inSuc_feSuc", "0.52", mean(D0.52_M_cov_inSuc_feSuc_bootvar$t), quantile(D0.52_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.52_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_inSuc_pFec", "0.52", mean(D0.52_M_cov_inSuc_pFec_bootvar$t), quantile(D0.52_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.52_cov_feSuc_pFec <- as.data.frame(cbind("Male", "cov_feSuc_pFec", "0.52", mean(D0.52_M_cov_feSuc_pFec_bootvar$t), quantile(D0.52_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D0.52_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Female_0.52_cov_fMS_fFec <- as.data.frame(cbind("Female", "cov_fMS_fFec", "0.52", mean(D0.52_F_cov_fMS_fFec_bootvar$t), quantile(D0.52_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(D0.52_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))


PhenVarBoot_Cov_Table_0.52 <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_0.52_cov_mMS_inSuc,PhenVarBoot_Table_Male_0.52_cov_mMS_feSuc,
                                                            PhenVarBoot_Table_Male_0.52_cov_mMS_pFec,PhenVarBoot_Table_Male_0.52_cov_inSuc_feSuc,
                                                            PhenVarBoot_Table_Male_0.52_cov_inSuc_pFec,PhenVarBoot_Table_Male_0.52_cov_feSuc_pFec,
                                                            PhenVarBoot_Table_Female_0.52_cov_fMS_fFec)),digits=3)

is.table(PhenVarBoot_Cov_Table_0.52)
colnames(PhenVarBoot_Cov_Table_0.52)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_0.52)[2] <- "Trait"
colnames(PhenVarBoot_Cov_Table_0.52)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_0.52)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_0.52)[5] <- "l95.CI"
colnames(PhenVarBoot_Cov_Table_0.52)[6] <- "u95.CI"
PhenVarBoot_Cov_Table_0.52[,4]=as.numeric(PhenVarBoot_Cov_Table_0.52[,4])
PhenVarBoot_Cov_Table_0.52[,5]=as.numeric(PhenVarBoot_Cov_Table_0.52[,5])
PhenVarBoot_Cov_Table_0.52[,6]=as.numeric(PhenVarBoot_Cov_Table_0.52[,6])

PhenVarBoot_Cov_Table_0.52_round=cbind(PhenVarBoot_Cov_Table_0.52[,1:3],round(PhenVarBoot_Cov_Table_0.52[,4:6],digit=3))
rownames(PhenVarBoot_Cov_Table_0.52_round) <- NULL

# Small group + small Area ####
#Covariance mMS x inSuc
x5=as.data.frame(cbind(DB_data_clean_0.67_M_MS_n,DB_data_clean_0.67_M_InSuc_n))
c <- function(d, i){
  d2 <- d[i,]
  return(cov(d2[1],d2[2],use='pairwise.complete.obs'))
}
D0.67_M_cov_mMS_inSuc_bootvar <- boot(x5, c, R=10000)


#Covariance mMS x feSuc
x6=as.data.frame(cbind(DB_data_clean_0.67_M_MS_n,DB_data_clean_0.67_M_feSuc_n))

D0.67_M_cov_mMS_feSuc_bootvar <- boot(x6, c, R=10000)


#Covariance mMS x pFec
x7=as.data.frame(cbind(DB_data_clean_0.67_M_MS_n,DB_data_clean_0.67_M_pFec_n))

D0.67_M_cov_mMS_pFec_bootvar <- boot(x7, c, R=10000)


#Covariance inSuc x feSuc
x8=as.data.frame(cbind(DB_data_clean_0.67_M_InSuc_n,DB_data_clean_0.67_M_feSuc_n))

D0.67_M_cov_inSuc_feSuc_bootvar <- boot(x8, c, R=10000)


#Covariance inSuc x pFec
x9=as.data.frame(cbind(DB_data_clean_0.67_M_InSuc_n,DB_data_clean_0.67_M_pFec_n))

D0.67_M_cov_inSuc_pFec_bootvar <- boot(x9, c, R=10000)


#Covariance feSuc x pFec
x10=as.data.frame(cbind(DB_data_clean_0.67_M_feSuc_n,DB_data_clean_0.67_M_pFec_n))

D0.67_M_cov_feSuc_pFec_bootvar <- boot(x10, c, R=10000)


#Covariance fMS x fFec
x13=as.data.frame(cbind(DB_data_clean_0.67_F_fMS_n,DB_data_clean_0.67_F_fFec_n))

D0.67_F_cov_fMS_fFec_bootvar <- boot(x13, c, R=10000)

rm("c")

#Write Table ####

PhenVarBoot_Table_Male_0.67_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_mMS_inSuc", "0.67", mean(D0.67_M_cov_mMS_inSuc_bootvar$t), quantile(D0.67_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_mMS_feSuc", "0.67", mean(D0.67_M_cov_mMS_feSuc_bootvar$t), quantile(D0.67_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_cov_mMS_pFec <- as.data.frame(cbind("Male", "cov_mMS_pFec", "0.67", mean(D0.67_M_cov_mMS_pFec_bootvar$t), quantile(D0.67_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.67_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_inSuc_feSuc", "0.67", mean(D0.67_M_cov_inSuc_feSuc_bootvar$t), quantile(D0.67_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_0.67_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_inSuc_pFec", "0.67", mean(D0.67_M_cov_inSuc_pFec_bootvar$t), quantile(D0.67_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_0.67_cov_feSuc_pFec <- as.data.frame(cbind("Male", "cov_feSuc_pFec", "0.67", mean(D0.67_M_cov_feSuc_pFec_bootvar$t), quantile(D0.67_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D0.67_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Female_0.67_cov_fMS_fFec <- as.data.frame(cbind("Female", "cov_fMS_fFec", "0.67", mean(D0.67_F_cov_fMS_fFec_bootvar$t), quantile(D0.67_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(D0.67_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))


PhenVarBoot_Cov_Table_0.67 <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_0.67_cov_mMS_inSuc,PhenVarBoot_Table_Male_0.67_cov_mMS_feSuc,
                                                            PhenVarBoot_Table_Male_0.67_cov_mMS_pFec,PhenVarBoot_Table_Male_0.67_cov_inSuc_feSuc,
                                                            PhenVarBoot_Table_Male_0.67_cov_inSuc_pFec,PhenVarBoot_Table_Male_0.67_cov_feSuc_pFec,
                                                            PhenVarBoot_Table_Female_0.67_cov_fMS_fFec)),digits=3)

is.table(PhenVarBoot_Cov_Table_0.67)
colnames(PhenVarBoot_Cov_Table_0.67)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_0.67)[2] <- "Trait"
colnames(PhenVarBoot_Cov_Table_0.67)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_0.67)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_0.67)[5] <- "l95.CI"
colnames(PhenVarBoot_Cov_Table_0.67)[6] <- "u95.CI"
PhenVarBoot_Cov_Table_0.67[,4]=as.numeric(PhenVarBoot_Cov_Table_0.67[,4])
PhenVarBoot_Cov_Table_0.67[,5]=as.numeric(PhenVarBoot_Cov_Table_0.67[,5])
PhenVarBoot_Cov_Table_0.67[,6]=as.numeric(PhenVarBoot_Cov_Table_0.67[,6])


PhenVarBoot_Cov_Table_0.67_round=cbind(PhenVarBoot_Cov_Table_0.67[,1:3],round(PhenVarBoot_Cov_Table_0.67[,4:6],digit=3))
rownames(PhenVarBoot_Cov_Table_0.67_round) <- NULL

# Large group + small Area ####
#Covariance mMS x inSuc
x5=as.data.frame(cbind(DB_data_clean_1.33_M_MS_n,DB_data_clean_1.33_M_InSuc_n))
c <- function(d, i){
  d2 <- d[i,]
  return(cov(d2[1],d2[2],use='pairwise.complete.obs'))
}
D1.33_M_cov_mMS_inSuc_bootvar <- boot(x5, c, R=10000)


#Covariance mMS x feSuc
x6=as.data.frame(cbind(DB_data_clean_1.33_M_MS_n,DB_data_clean_1.33_M_feSuc_n))

D1.33_M_cov_mMS_feSuc_bootvar <- boot(x6, c, R=10000)


#Covariance mMS x pFec
x7=as.data.frame(cbind(DB_data_clean_1.33_M_MS_n,DB_data_clean_1.33_M_pFec_n))

D1.33_M_cov_mMS_pFec_bootvar <- boot(x7, c, R=10000)


#Covariance inSuc x feSuc
x8=as.data.frame(cbind(DB_data_clean_1.33_M_InSuc_n,DB_data_clean_1.33_M_feSuc_n))

D1.33_M_cov_inSuc_feSuc_bootvar <- boot(x8, c, R=10000)


#Covariance inSuc x pFec
x9=as.data.frame(cbind(DB_data_clean_1.33_M_InSuc_n,DB_data_clean_1.33_M_pFec_n))

D1.33_M_cov_inSuc_pFec_bootvar <- boot(x9, c, R=10000)


#Covariance feSuc x pFec
x10=as.data.frame(cbind(DB_data_clean_1.33_M_feSuc_n,DB_data_clean_1.33_M_pFec_n))

D1.33_M_cov_feSuc_pFec_bootvar <- boot(x10, c, R=10000)


#Covariance fMS x fFec
x13=as.data.frame(cbind(DB_data_clean_1.33_F_fMS_n,DB_data_clean_1.33_F_fFec_n))

D1.33_F_cov_fMS_fFec_bootvar <- boot(x13, c, R=10000)

rm("c")

#Write Table ####

PhenVarBoot_Table_Male_1.33_cov_mMS_inSuc <- as.data.frame(cbind("Male", "cov_mMS_inSuc", "1.33", mean(D1.33_M_cov_mMS_inSuc_bootvar$t), quantile(D1.33_M_cov_mMS_inSuc_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_mMS_inSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_cov_mMS_feSuc <- as.data.frame(cbind("Male", "cov_mMS_feSuc", "1.33", mean(D1.33_M_cov_mMS_feSuc_bootvar$t), quantile(D1.33_M_cov_mMS_feSuc_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_mMS_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_cov_mMS_pFec <- as.data.frame(cbind("Male", "cov_mMS_pFec", "1.33", mean(D1.33_M_cov_mMS_pFec_bootvar$t), quantile(D1.33_M_cov_mMS_pFec_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_mMS_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_1.33_cov_inSuc_feSuc <- as.data.frame(cbind("Male", "cov_inSuc_feSuc", "1.33", mean(D1.33_M_cov_inSuc_feSuc_bootvar$t), quantile(D1.33_M_cov_inSuc_feSuc_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_inSuc_feSuc_bootvar$t,.975, names = FALSE)))
PhenVarBoot_Table_Male_1.33_cov_inSuc_pFec <- as.data.frame(cbind("Male", "cov_inSuc_pFec", "1.33", mean(D1.33_M_cov_inSuc_pFec_bootvar$t), quantile(D1.33_M_cov_inSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_inSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Male_1.33_cov_feSuc_pFec <- as.data.frame(cbind("Male", "cov_feSuc_pFec", "1.33", mean(D1.33_M_cov_feSuc_pFec_bootvar$t), quantile(D1.33_M_cov_feSuc_pFec_bootvar$t,.025, names = FALSE), quantile(D1.33_M_cov_feSuc_pFec_bootvar$t,.975, names = FALSE)))

PhenVarBoot_Table_Female_1.33_cov_fMS_fFec <- as.data.frame(cbind("Female", "cov_fMS_fFec", "1.33", mean(D1.33_F_cov_fMS_fFec_bootvar$t), quantile(D1.33_F_cov_fMS_fFec_bootvar$t,.025, names = FALSE), quantile(D1.33_F_cov_fMS_fFec_bootvar$t,.975, names = FALSE)))


PhenVarBoot_Cov_Table_1.33 <- as.data.frame(as.matrix(rbind(PhenVarBoot_Table_Male_1.33_cov_mMS_inSuc,PhenVarBoot_Table_Male_1.33_cov_mMS_feSuc,
                                                            PhenVarBoot_Table_Male_1.33_cov_mMS_pFec,PhenVarBoot_Table_Male_1.33_cov_inSuc_feSuc,
                                                            PhenVarBoot_Table_Male_1.33_cov_inSuc_pFec,PhenVarBoot_Table_Male_1.33_cov_feSuc_pFec,
                                                            PhenVarBoot_Table_Female_1.33_cov_fMS_fFec)),digits=3)

is.table(PhenVarBoot_Cov_Table_1.33)
colnames(PhenVarBoot_Cov_Table_1.33)[1] <- "Sex"
colnames(PhenVarBoot_Cov_Table_1.33)[2] <- "Trait"
colnames(PhenVarBoot_Cov_Table_1.33)[3] <- "Density"
colnames(PhenVarBoot_Cov_Table_1.33)[4] <- "Variance"
colnames(PhenVarBoot_Cov_Table_1.33)[5] <- "l95.CI"
colnames(PhenVarBoot_Cov_Table_1.33)[6] <- "u95.CI"
PhenVarBoot_Cov_Table_1.33[,4]=as.numeric(PhenVarBoot_Cov_Table_1.33[,4])
PhenVarBoot_Cov_Table_1.33[,5]=as.numeric(PhenVarBoot_Cov_Table_1.33[,5])
PhenVarBoot_Cov_Table_1.33[,6]=as.numeric(PhenVarBoot_Cov_Table_1.33[,6])

PhenVarBoot_Cov_Table_1.33_round=cbind(PhenVarBoot_Cov_Table_1.33[,1:3],round(PhenVarBoot_Cov_Table_1.33[,4:6],digit=3))

rownames(PhenVarBoot_Cov_Table_1.33_round) <- NULL

PhenVarBoot_Table_plot_cov <- as.data.frame(as.matrix(rbind( PhenVarBoot_Table_Male_0.26_cov_mMS_inSuc,PhenVarBoot_Table_Male_0.52_cov_mMS_inSuc,
                                                             PhenVarBoot_Table_Male_0.67_cov_mMS_inSuc,PhenVarBoot_Table_Male_1.33_cov_mMS_inSuc,
                                                             PhenVarBoot_Table_Male_0.26_cov_mMS_feSuc,PhenVarBoot_Table_Male_0.52_cov_mMS_feSuc,
                                                             PhenVarBoot_Table_Male_0.67_cov_mMS_feSuc,PhenVarBoot_Table_Male_1.33_cov_mMS_feSuc,
                                                             PhenVarBoot_Table_Male_0.26_cov_mMS_pFec,PhenVarBoot_Table_Male_0.52_cov_mMS_pFec,
                                                             PhenVarBoot_Table_Male_0.67_cov_mMS_pFec,PhenVarBoot_Table_Male_1.33_cov_mMS_pFec,
                                                             PhenVarBoot_Table_Male_0.26_cov_inSuc_feSuc,PhenVarBoot_Table_Male_0.52_cov_inSuc_feSuc,
                                                             PhenVarBoot_Table_Male_0.67_cov_inSuc_feSuc,PhenVarBoot_Table_Male_1.33_cov_inSuc_feSuc,
                                                             PhenVarBoot_Table_Male_0.26_cov_inSuc_pFec,PhenVarBoot_Table_Male_0.52_cov_inSuc_pFec,
                                                             PhenVarBoot_Table_Male_0.67_cov_inSuc_pFec,PhenVarBoot_Table_Male_1.33_cov_inSuc_pFec,
                                                             PhenVarBoot_Table_Male_0.26_cov_feSuc_pFec,PhenVarBoot_Table_Male_0.52_cov_feSuc_pFec,
                                                             PhenVarBoot_Table_Male_0.67_cov_feSuc_pFec,PhenVarBoot_Table_Male_1.33_cov_feSuc_pFec,
                                                             PhenVarBoot_Table_Female_0.26_cov_fMS_fFec,PhenVarBoot_Table_Female_0.52_cov_fMS_fFec,
                                                             PhenVarBoot_Table_Female_0.67_cov_fMS_fFec,PhenVarBoot_Table_Female_1.33_cov_fMS_fFec)))

is.table(PhenVarBoot_Table_plot_cov)
colnames(PhenVarBoot_Table_plot_cov)[1] <- "Sex"
colnames(PhenVarBoot_Table_plot_cov)[2] <- "Trait"
colnames(PhenVarBoot_Table_plot_cov)[3] <- "Density"
colnames(PhenVarBoot_Table_plot_cov)[4] <- "Variance"
colnames(PhenVarBoot_Table_plot_cov)[5] <- "l95.CI"
colnames(PhenVarBoot_Table_plot_cov)[6] <- "u95.CI"
PhenVarBoot_Table_plot_cov[,4]=as.numeric(PhenVarBoot_Table_plot_cov[,4])
PhenVarBoot_Table_plot_cov[,5]=as.numeric(PhenVarBoot_Table_plot_cov[,5])
PhenVarBoot_Table_plot_cov[,6]=as.numeric(PhenVarBoot_Table_plot_cov[,6])

PhenVarBoot_Table_plot_cov_round=cbind(PhenVarBoot_Table_plot_cov[,1:3],round(PhenVarBoot_Table_plot_cov[,4:6],digit=3))

PhenVarBoot_Table_plot_cov$Density<- factor(PhenVarBoot_Table_plot_cov$Density, levels=c("0.26",'0.52','0.67','1.33'))
PhenVarBoot_Table_plot_cov$Trait <- factor(PhenVarBoot_Table_plot_cov$Trait, levels=c("cov_mMS_inSuc",'cov_mMS_feSuc','cov_mMS_pFec','cov_inSuc_feSuc','cov_inSuc_pFec','cov_feSuc_pFec','cov_fMS_fFec'))
rownames(PhenVarBoot_Table_plot_cov) <- NULL

Variance decomposition

PhenVarBoot_Table$Density<- factor(PhenVarBoot_Table$Density, levels=c("0.26",'0.52','0.67','1.33'))
PhenVarBoot_Table$Trait <- factor(PhenVarBoot_Table$Trait, levels=c('MS','InSuc','feSuc','pFec','fMS','fFec'))

BarPlot_1<- ggplot(PhenVarBoot_Table[1:16,], aes(x=Trait, y=Variance, fill=Density)) + 
  scale_y_continuous(limits = c(0, 0.8), breaks = seq(0,0.8,0.2), expand = c(0 ,0)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8) +
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  ylab('Variance') +xlab('') +ggtitle('Male')+labs(tag = "A")+
  scale_x_discrete(breaks=waiver(),labels = c('MS','inSuc','feSuc','Fec'))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))

BarPlot_2<- ggplot(PhenVarBoot_Table[17:24,], aes(x=Trait, y=Variance, fill=Density)) + 
  scale_y_continuous(limits = c(0, 2.7), breaks = seq(0,2.7,0.75), expand = c(0 ,0)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8) +
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  ylab('Variance') +xlab('Variance component') +ggtitle('Female')+labs(tag = "B")+
  scale_x_discrete(breaks=waiver(),labels = c("MS","PS" ,"Fec"))+ 
  theme(panel.border = element_blank(),
        plot.margin = margin(0.1,2,0.1,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))

plot1<-grid.arrange(BarPlot_1,BarPlot_2, nrow = 2,ncol=1)

Figure 12: Variance decomposition for males (A) into mating success, insemination success, fertilization success and fecundity of the partners and females (B) into mating success and fecundity. Means and 95% confidence intervals.

BarPlot_1<- ggplot(PhenVarBoot_Table_plot_cov[1:24,], aes(x=Trait, y=Variance, fill=Density)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8) +
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  ylab('Variance') +xlab('') +ggtitle('Male')+labs(tag = "A")+
  scale_x_discrete(breaks=waiver(),labels = c('cov\n(MS, inSuc)','cov\n(MS, feSuc)','cov\n(MS, Fec)','cov\n(inSuc, feSuc)','cov\n(inSuc,Fec)','cov\n(feSuc, Fec)'))+ 
  theme(panel.border = element_blank(),
        plot.title = element_text(hjust = 0.5),
        plot.margin = margin(0.1,2.3,0.1,0.2,"cm"),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))

BarPlot_2<- ggplot(PhenVarBoot_Table_plot_cov[25:28,], aes(x=Trait, y=Variance, fill=Density)) + 
  geom_hline(yintercept=0, linetype="solid", color = "black", size=1) +
  geom_bar(stat="identity", color="black", position=position_dodge(), alpha=0.8) +
  geom_errorbar(aes(ymin=l95.CI, ymax=u95.CI), width=.3,size=1, position=position_dodge(.9)) +
  ylab('Variance') +xlab('Variance component') +ggtitle('Female')+labs(tag = "B")+
  scale_x_discrete(breaks=waiver(),labels = c('cov\n(MS, Fec)'))+ 
  theme(panel.border = element_blank(),
        plot.margin = margin(0.1,2.3,0.1,0.2,"cm"),
        plot.title = element_text(hjust = 0.5),
        panel.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        plot.tag.position=c(0.01,0.98),
        legend.position = c(1.05, 0.8),
        legend.text = element_text(colour="black", size=10),
        axis.line.x = element_line(colour = "black", size = 1),
        axis.line.y = element_line(colour = "black", size = 1),
        axis.text.x = element_text(face="plain", color="black", size=16, angle=0),
        axis.text.y = element_text(face="plain", color="black", size=16, angle=0),
        axis.title.x = element_text(size=16,face="plain", margin = margin(r=0,10,0,0)),
        axis.title.y = element_text(size=16,face="plain", margin = margin(r=10,0,0,0)),
        axis.ticks = element_line(size = 1),
        axis.ticks.length = unit(.3, "cm"))+
  scale_fill_manual(values=c(colpal[1],colpal[2],colpal[3],colpal[4]),name = "Density", labels = c("0.26",'0.52','0.67','1.33'))

plot1<-grid.arrange(BarPlot_1,BarPlot_2, nrow = 2,ncol=1)

Figure 13: Covariance components for variance decomposition in males (A) and females(B)


sessionInfo()
R version 4.2.0 (2022-04-22 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19043)

Matrix products: default

locale:
[1] LC_COLLATE=German_Germany.utf8  LC_CTYPE=German_Germany.utf8   
[3] LC_MONETARY=German_Germany.utf8 LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.utf8    

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
 [1] ICC_2.4.0          tidyr_1.2.0        data.table_1.14.2  boot_1.3-28       
 [5] RColorBrewer_1.1-3 car_3.1-0          carData_3.0-5      gridGraphics_0.5-1
 [9] cowplot_1.1.1      EnvStats_2.7.0     dplyr_1.0.9        readr_2.1.2       
[13] lmerTest_3.1-3     lme4_1.1-30        Matrix_1.4-1       gridExtra_2.3     
[17] ggplot2_3.3.6      ggeffects_1.1.3    workflowr_1.7.0   

loaded via a namespace (and not attached):
 [1] httr_1.4.3          sass_0.4.2          bit64_4.0.5        
 [4] vroom_1.5.7         jsonlite_1.8.0      splines_4.2.0      
 [7] bslib_0.4.0         getPass_0.2-2       highr_0.9          
[10] yaml_2.3.5          numDeriv_2016.8-1.1 pillar_1.8.0       
[13] lattice_0.20-45     glue_1.6.2          digest_0.6.29      
[16] promises_1.2.0.1    minqa_1.2.4         colorspace_2.0-3   
[19] htmltools_0.5.3     httpuv_1.6.5        pkgconfig_2.0.3    
[22] purrr_0.3.4         scales_1.2.0        processx_3.7.0     
[25] whisker_0.4         later_1.3.0         tzdb_0.3.0         
[28] git2r_0.30.1        tibble_3.1.7        mgcv_1.8-40        
[31] farver_2.1.1        generics_0.1.3      ellipsis_0.3.2     
[34] cachem_1.0.6        withr_2.5.0         cli_3.3.0          
[37] crayon_1.5.1        magrittr_2.0.3      evaluate_0.16      
[40] ps_1.7.1            fs_1.5.2            fansi_1.0.3        
[43] nlme_3.1-157        MASS_7.3-56         tools_4.2.0        
[46] hms_1.1.1           lifecycle_1.0.1     stringr_1.4.0      
[49] munsell_0.5.0       callr_3.7.1         compiler_4.2.0     
[52] jquerylib_0.1.4     rlang_1.0.2         nloptr_2.0.3       
[55] rstudioapi_0.13     labeling_0.4.2      rmarkdown_2.14     
[58] gtable_0.3.0        abind_1.4-5         R6_2.5.1           
[61] knitr_1.39          fastmap_1.1.0       bit_4.0.4          
[64] utf8_1.2.2          rprojroot_2.0.3     stringi_1.7.8      
[67] parallel_4.2.0      Rcpp_1.0.9          vctrs_0.4.1        
[70] tidyselect_1.1.2    xfun_0.31