library(rcompanion)
library(rptR)
library(lme4)
library(lmerTest)
library(effects)
library(grid)
library(gridExtra)
library(ggplot2)
library(reshape2)
library(xlsx)
library(MuMIn)
library(emmeans)
library(car)
library(lsmeans)
library(multcomp)

d <- read.xlsx(file = "All_data_submitted.xlsx", sheetName = "shoaling")
                   
#adjust column types
d$LINE <- as.factor(d$LINE)
d$AGE <- as.factor(d$AGE)
d$trial <- as.factor(d$trial)

# Check normality and transform inter individual distance
plotNormalHistogram(d$IID.BL)
d$IID.BL_tuk = transformTukey(d$IID.BL, plotit=FALSE)
plotNormalHistogram(d$IID.BL_tuk)


# REPEATABILITY
## create variable for testing repeatability
d$group_R <- interaction(d$LINE,d$REPLICATE,d$group)

# Repeatability over time (repeat for: 1,3,5,7,9)
d_R <- subset(d, AGE %in% c(1,3))
plotNormalHistogram(d_R$IID.BL_tuk)

#check N
length(d_R$IID.BL_tuk)-sum(is.na(d_R$IID.BL_tuk))

# overall repeatability
options(scipen=999)

IID.rpt <- rpt(IID.BL_tuk ~ LINE + (1 | REPLICATE) + (1 | group_R),
               grname = c("REPLICATE","group_R"), data = d_R,
               datatype = "Gaussian", nboot = 1000, npermut = 0)

IID.rpt
summary(IID.rpt$mod)


# Repeatability for each selection line (repeat for: LH, RH, SH)
d_R <- subset(d, LINE == "RH")
plotNormalHistogram(d_R$IID.BL_tuk)

#check N
length(d_R$IID.BL_tuk)-sum(is.na(d_R$IID.BL_tuk))

# overall repeatability
options(scipen=999)

IID.rpt <- rpt(IID.BL_tuk ~ AGE + (1 | REPLICATE) + (1 | group_R),
               grname = c("REPLICATE","group_R"), data = d_R,
               datatype = "Gaussian", nboot = 1000, npermut = 0)

IID.rpt
summary(IID.rpt$mod)


# INTER INDIVIDUAL DISTANCE ANALYSIS
#adjust levels of age
levels(d$AGE)[levels(d$AGE) == "1"] <- "30"
levels(d$AGE)[levels(d$AGE) == "3"] <- "70"
levels(d$AGE)[levels(d$AGE) == "5"] <- "110"
levels(d$AGE)[levels(d$AGE) == "7"] <- "150"
levels(d$AGE)[levels(d$AGE) == "9"] <- "190"

# fit model for inter individual distance
mod <- lmer(IID.BL_tuk ~ AGE*LINE + (1|REP_mod) + (1|GROUP_mod), data = d)

#check model fitting
plot(mod)
hist(resid(mod))

#check model results
summary(mod)
Anova(mod, type="III")

emm1 <- emmeans(mod, specs = "AGE", by="LINE")
emm2 <- emmeans(mod, specs = "LINE", by="AGE")

pairs(emm1)
pairs(emm2)

cld(emm1)
cld(emm2)


### MONOAMINES
d2 <- read.xlsx(file = "All_data_submitted.xlsx", sheetName = "monoamines")

#adjust columns
d2$AGE <- as.factor(d2$AGE)
d2$LINE <- as.factor(d2$LINE)
levels(d2$LINE)[levels(d2$LINE) == "LS"] <- "LH"
levels(d2$LINE)[levels(d2$LINE) == "RS"] <- "RH"
levels(d2$LINE)[levels(d2$LINE) == "SS"] <- "SH"


d2$AGE <- factor(d2$AGE,levels=c("50","90", "130", "170", "210"))

#calculate turnover of monoamines
d2$DOPAC_DA <- d2$Dopac.ng.mg/d2$DA.ng.mg
d2$X5HIAA_5HT <- d2$X5HIAA.ng.mg/d2$X5HT.ng.mg

# STATISTICS OF MONOAMINES

# check normality and tranform response variable
d2$DOPAC_DA_tuk = transformTukey(d2$DOPAC_DA, plotit=FALSE)
plotNormalHistogram(d2$DOPAC_DA_tuk)

d2$X5HIAA_5HT_tuk = transformTukey(d2$X5HIAA_5HT, plotit=FALSE)
plotNormalHistogram(d2$X5HIAA_5HT_tuk)

# fit models for monoamines
mod_DA <- lmer(DOPAC_DA_tuk~AGE*LINE + (1|LINE_REP_mod),
               data = d2, na.action=na.omit)

mod_5HT <- lmer(X5HIAA_5HT_tuk~AGE*LINE + (1|LINE_REP_mod),
                data = d2, na.action=na.omit)

# check model fitting
plot(fitted(mod_DA), residuals(mod_DA))
qqnorm(resid(mod_DA))
hist(resid(mod_DA))

plot(fitted(mod_5HT), residuals(mod_5HT))
qqnorm(resid(mod_5HT))
hist(resid(mod_5HT))

#check model results
Anova(mod_DA, type="III")
Anova(mod_5HT, type="III")


D_emm1 <- emmeans(mod_DA, specs = "AGE", by="LINE")
D_emm2 <- emmeans(mod_DA, specs = "LINE", by="AGE")

pairs(D_emm1)
pairs(D_emm2)

cld(D_emm1)
cld(D_emm2)


S_emm1 <- emmeans(mod_5HT, specs = "AGE", by="LINE")
S_emm2 <- emmeans(mod_5HT, specs = "LINE", by="AGE")

pairs(S_emm1)
pairs(S_emm2)

cld(S_emm1)
cld(S_emm2)
