Load Packages

library(mgcv)
library(voxel)
library('knitr')
library(visreg)

Read in r2star_factors & corrtraits data

Set age and sex variables

r2star_factors$sex <- ordered(r2star_factors$sex)
sex <- r2star_factors$sex
age <- (r2star_factors$ageAtScan1)/12

Set putamen

rputamen <- r2star_factors$Right.Putamen
lputamen <- r2star_factors$Left.Putamen
putamen <- (r2star_factors$Right.Putamen + r2star_factors$Left.Putamen)/2

Set factor variables

overallPsychopath <- r2star_factors$overall_psychopathology_4factor
overallPsychosis <- r2star_factors$Overall_Psychosis
pos2fac <- r2star_factors$F1_Positive_2Fac
pos3fac <- r2star_factors$F1_Positive_3Fac
posDelusional <- r2star_factors$F2_Positive_Delusional_3Fac
neg2fac <- r2star_factors$F2_Negative_2Fac
neg3fac <- r2star_factors$F3_Negative_3Fac

Factor Models

Overall Psychopathology

rputamen_overallPsychopath <- gam(rputamen ~ s(age) + sex + overallPsychopath, data=r2star_factors, method="REML")
visreg(rputamen_overallPsychopath,"overallPsychopath")

rput_overallPsychopath_pval <- as.data.frame(summary(rputamen_overallPsychopath)$p.table[3,4])
names(rput_overallPsychopath_pval) <- "rputamen_overallPsychopath_pval"
print(rput_overallPsychopath_pval)
##   rputamen_overallPsychopath_pval
## 1                      0.01177758
lputamen_overallPsychopath <- gam(lputamen ~ s(age) + sex + overallPsychopath, data=r2star_factors, method="REML")
visreg(lputamen_overallPsychopath,"overallPsychopath")

lput_overallPsychopath_pval <- as.data.frame(summary(lputamen_overallPsychopath)$p.table[3,4])
names(lput_overallPsychopath_pval) <- "lputamen_overallPsychopath_pval"
print(lput_overallPsychopath_pval)
##   lputamen_overallPsychopath_pval
## 1                      0.03246775
putamen_overallPsychopath <- gam(putamen ~ s(age) + sex + overallPsychopath, data=r2star_factors, method="REML")
visreg(putamen_overallPsychopath,"overallPsychopath")

put_overallPsychopath_pval <- as.data.frame(summary(putamen_overallPsychopath)$p.table[3,4])
names(put_overallPsychopath_pval) <- "putamen_overallPsychopath_pval"
print(put_overallPsychopath_pval)
##   putamen_overallPsychopath_pval
## 1                    0.005572039

Overall Psychosis

rputamen_overallPsychosis <- gam(rputamen ~ s(age) + sex + overallPsychosis, data=r2star_factors, method="REML")
visreg(rputamen_overallPsychosis,"overallPsychosis")

rput_overallPsychosis_pval <- as.data.frame(summary(rputamen_overallPsychosis)$p.table[3,4])
names(rput_overallPsychosis_pval) <- "rputamen_overallPsychosis_pval"
print(rput_overallPsychosis_pval)
##   rputamen_overallPsychosis_pval
## 1                     0.05586416
lputamen_overallPsychosis <- gam(lputamen ~ s(age) + sex + overallPsychosis, data=r2star_factors, method="REML")
visreg(lputamen_overallPsychosis,"overallPsychosis")

lput_overallPsychosis_pval <- as.data.frame(summary(lputamen_overallPsychosis)$p.table[3,4])
names(lput_overallPsychosis_pval) <- "lputamen_overallPsychosis_pval"
print(lput_overallPsychosis_pval)
##   lputamen_overallPsychosis_pval
## 1                     0.09013926
putamen_overallPsychosis <- gam(putamen ~ s(age) + sex + overallPsychosis, data=r2star_factors, method="REML")
visreg(putamen_overallPsychosis,"overallPsychosis")

put_overallPsychosis_pval <- as.data.frame(summary(putamen_overallPsychosis)$p.table[3,4])
names(put_overallPsychosis_pval) <- "putamen_overallPsychosis_pval"
print(put_overallPsychosis_pval)
##   putamen_overallPsychosis_pval
## 1                    0.04203662

Positive 2 Factors

rputamen_pos2fac <- gam(rputamen ~ s(age) + sex + pos2fac, data=r2star_factors, method="REML")
visreg(rputamen_pos2fac,"pos2fac")

rput_pos2fac_pval <- as.data.frame(summary(rputamen_pos2fac)$p.table[3,4])
names(rput_pos2fac_pval) <- "rputamen_pos2fac_pval"
print(rput_pos2fac_pval)
##   rputamen_pos2fac_pval
## 1            0.08876255
lputamen_pos2fac <- gam(lputamen ~ s(age) + sex + pos2fac, data=r2star_factors, method="REML")
visreg(lputamen_pos2fac,"pos2fac")

lput_pos2fac_pval <- as.data.frame(summary(lputamen_pos2fac)$p.table[3,4])
names(lput_pos2fac_pval) <- "lputamen_pos2fac_pval"
print(lput_pos2fac_pval)
##   lputamen_pos2fac_pval
## 1             0.1499444
putamen_pos2fac <- gam(putamen ~ s(age) + sex + pos2fac, data=r2star_factors, method="REML")
visreg(putamen_pos2fac,"pos2fac")

put_pos2fac_pval <- as.data.frame(summary(putamen_pos2fac)$p.table[3,4])
names(put_pos2fac_pval) <- "putamen_pos2fac_pval"
print(put_pos2fac_pval)
##   putamen_pos2fac_pval
## 1            0.0755877

Positive 3 Factors

rputamen_pos3fac <- gam(rputamen ~ s(age) + sex + pos3fac, data=r2star_factors, method="REML")
visreg(rputamen_pos3fac,"pos3fac")

rput_pos3fac_pval <- as.data.frame(summary(rputamen_pos3fac)$p.table[3,4])
names(rput_pos3fac_pval) <- "rputamen_pos3fac_pval"
print(rput_pos3fac_pval)
##   rputamen_pos3fac_pval
## 1            0.06067409
lputamen_pos3fac <- gam(lputamen ~ s(age) + sex + pos3fac, data=r2star_factors, method="REML")
visreg(lputamen_pos3fac,"pos3fac")

lput_pos3fac_pval <- as.data.frame(summary(lputamen_pos3fac)$p.table[3,4])
names(lput_pos3fac_pval) <- "lputamen_pos3fac_pval"
print(lput_pos3fac_pval)
##   lputamen_pos3fac_pval
## 1             0.1387836
putamen_pos3fac <- gam(putamen ~ s(age) + sex + pos3fac, data=r2star_factors, method="REML")
visreg(putamen_pos3fac,"pos3fac")

put_pos3fac_pval <- as.data.frame(summary(putamen_pos3fac)$p.table[3,4])
names(put_pos3fac_pval) <- "putamen_pos3fac_pval"
print(put_pos3fac_pval)
##   putamen_pos3fac_pval
## 1           0.05768895

Positive Delusional

rputamen_posDelusional <- gam(rputamen ~ s(age) + sex + posDelusional, data=r2star_factors, method="REML")
visreg(rputamen_posDelusional,"posDelusional")

rput_posDelusional_pval <- as.data.frame(summary(rputamen_posDelusional)$p.table[3,4])
names(rput_posDelusional_pval) <- "rputamen_posDelusional_pval"
print(rput_posDelusional_pval)
##   rputamen_posDelusional_pval
## 1                   0.2883771
lputamen_posDelusional <- gam(lputamen ~ s(age) + sex + posDelusional, data=r2star_factors, method="REML")
visreg(lputamen_posDelusional,"posDelusional")

lput_posDelusional_pval <- as.data.frame(summary(lputamen_posDelusional)$p.table[3,4])
names(lput_posDelusional_pval) <- "lputamen_posDelusional_pval"
print(lput_posDelusional_pval)
##   lputamen_posDelusional_pval
## 1                   0.2426038
putamen_posDelusional <- gam(putamen ~ s(age) + sex + posDelusional, data=r2star_factors, method="REML")
visreg(putamen_posDelusional,"posDelusional")

put_posDelusional_pval <- as.data.frame(summary(putamen_posDelusional)$p.table[3,4])
names(put_posDelusional_pval) <- "putamen_posDelusional_pval"
print(put_posDelusional_pval)
##   putamen_posDelusional_pval
## 1                  0.2051858

Negative 2 Factors

rputamen_neg2fac <- gam(rputamen ~ s(age) + sex + neg2fac, data=r2star_factors, method="REML")
visreg(rputamen_neg2fac,"neg2fac")

rput_neg2fac_pval <- as.data.frame(summary(rputamen_neg2fac)$p.table[3,4])
names(rput_neg2fac_pval) <- "rputamen_neg2fac_pval"
print(rput_neg2fac_pval)
##   rputamen_neg2fac_pval
## 1            0.01328065
lputamen_neg2fac <- gam(lputamen ~ s(age) + sex + neg2fac, data=r2star_factors, method="REML")
visreg(lputamen_neg2fac,"neg2fac")

lput_neg2fac_pval <- as.data.frame(summary(lputamen_neg2fac)$p.table[3,4])
names(lput_neg2fac_pval) <- "lputamen_neg2fac_pval"
print(lput_neg2fac_pval)
##   lputamen_neg2fac_pval
## 1            0.08208444
putamen_neg2fac <- gam(putamen ~ s(age) + sex + neg2fac, data=r2star_factors, method="REML")
visreg(putamen_neg2fac,"neg2fac")

put_neg2fac_pval <- as.data.frame(summary(putamen_neg2fac)$p.table[3,4])
names(put_neg2fac_pval) <- "putamen_neg2fac_pval"
print(put_neg2fac_pval)
##   putamen_neg2fac_pval
## 1           0.01289023

Negative 3 Factors

rputamen_neg3fac <- gam(rputamen ~ s(age) + sex + neg3fac, data=r2star_factors, method="REML")
visreg(rputamen_neg3fac,"neg3fac")

rput_neg3fac_pval <- as.data.frame(summary(rputamen_neg3fac)$p.table[3,4])
names(rput_neg3fac_pval) <- "rputamen_neg3fac_pval"
print(rput_neg3fac_pval)
##   rputamen_neg3fac_pval
## 1            0.01810835
lputamen_neg3fac <- gam(lputamen ~ s(age) + sex + neg3fac, data=r2star_factors, method="REML")
visreg(lputamen_neg3fac,"neg3fac")

lput_neg3fac_pval <- as.data.frame(summary(lputamen_neg3fac)$p.table[3,4])
names(lput_neg3fac_pval) <- "lputamen_neg3fac_pval"
print(lput_neg3fac_pval)
##   lputamen_neg3fac_pval
## 1            0.08058314
putamen_neg3fac <- gam(putamen ~ s(age) + sex + neg3fac, data=r2star_factors, method="REML")
visreg(putamen_neg3fac,"neg3fac")

put_neg3fac_pval <- as.data.frame(summary(putamen_neg3fac)$p.table[3,4])
names(put_neg3fac_pval) <- "putamen_neg3fac_pval"
print(put_neg3fac_pval)
##   putamen_neg3fac_pval
## 1           0.01431106

P values & FDR Corrections

# r putamen p values
rpvalues = list(rput_overallPsychopath_pval, rput_overallPsychosis_pval, rput_pos2fac_pval, rput_pos3fac_pval, rput_posDelusional_pval, rput_neg2fac_pval, rput_neg3fac_pval)
rpvals <- as.data.frame(rpvalues)
rpvalst <- t(rpvals)
# r fdr correctiosn
rfdr <- as.data.frame(p.adjust(rpvals[1,], "fdr"))
names(rfdr) <- "rfdr"
rpvals_fdr <- as.data.frame(cbind(rpvalst, rfdr))
print(rpvals_fdr)
##                                    rpvalst       rfdr
## rputamen_overallPsychopath_pval 0.01177758 0.04225283
## rputamen_overallPsychosis_pval  0.05586416 0.08494373
## rputamen_pos2fac_pval           0.08876255 0.10355631
## rputamen_pos3fac_pval           0.06067409 0.08494373
## rputamen_posDelusional_pval     0.28837706 0.28837706
## rputamen_neg2fac_pval           0.01328065 0.04225283
## rputamen_neg3fac_pval           0.01810835 0.04225283
# l putamen p values
lpvalues = list(lput_overallPsychopath_pval, lput_overallPsychosis_pval, lput_pos2fac_pval, lput_pos3fac_pval, lput_posDelusional_pval, lput_neg2fac_pval, lput_neg3fac_pval)
lpvals <- as.data.frame(lpvalues)
lpvalst <- t(lpvals)
# l fdr correctiosn
lfdr <- as.data.frame(p.adjust(lpvals[1,], "fdr"))
names(lfdr) <- "lfdr"
lpvals_fdr <- as.data.frame(cbind(lpvalst, rfdr))
print(lpvals_fdr)
##                                    lpvalst       rfdr
## lputamen_overallPsychopath_pval 0.03246775 0.04225283
## lputamen_overallPsychosis_pval  0.09013926 0.08494373
## lputamen_pos2fac_pval           0.14994437 0.10355631
## lputamen_pos3fac_pval           0.13878361 0.08494373
## lputamen_posDelusional_pval     0.24260378 0.28837706
## lputamen_neg2fac_pval           0.08208444 0.04225283
## lputamen_neg3fac_pval           0.08058314 0.04225283
# whole putamen p values
wpvalues = list(put_overallPsychopath_pval, put_overallPsychosis_pval, put_pos2fac_pval, put_pos3fac_pval, put_posDelusional_pval, put_neg2fac_pval, put_neg3fac_pval)
wpvals <- as.data.frame(wpvalues)
wpvalst <- t(wpvals)
# whole fdr correctiosn
wfdr <- as.data.frame(p.adjust(wpvals[1,], "fdr"))
names(wfdr) <- "wfdr"
wpvals_fdr <- as.data.frame(cbind(wpvalst, wfdr))
print(wpvals_fdr)
##                                    wpvalst       wfdr
## putamen_overallPsychopath_pval 0.005572039 0.03339247
## putamen_overallPsychosis_pval  0.042036624 0.07356409
## putamen_pos2fac_pval           0.075587700 0.08818565
## putamen_pos3fac_pval           0.057688948 0.08076453
## putamen_posDelusional_pval     0.205185769 0.20518577
## putamen_neg2fac_pval           0.012890230 0.03339247
## putamen_neg3fac_pval           0.014311056 0.03339247

Make plots

# putamen 3 fac
visreg(putamen_neg3fac,"neg3fac",main="R2* vs Negative 3 Factor",xlab="Negative: 3 Factor",ylab="R2* (1/sec)",partial=FALSE)
legend("bottomright", bty="n", legend=paste("R2 =", format(summary(putamen_neg3fac)$r.sq, digits=4)))
legend("topright", bty="n", legend=paste("p =", format(wpvals_fdr[7,1], digits=4)))

# putamen 2 fac
visreg(putamen_neg2fac,"neg2fac",main="R2* vs Negative 2 Factor",xlab="Negative: 2 Factor",ylab="R2* (1/sec)",partial=FALSE)
legend("bottomright", bty="n", legend=paste("R2 =", format(summary(putamen_neg2fac)$r.sq, digits=4)))
legend("topright", bty="n", legend=paste("p =", format(wpvals_fdr[6,1], digits=4)))

# overall psychosis
visreg(putamen_overallPsychosis,"overallPsychosis",main="R2* vs Overall Psychosis",xlab="Overall Psychosis",ylab="R2* (1/sec)",partial=FALSE)
legend("bottomright", bty="n", legend=paste("R2 =", format(summary(putamen_neg2fac)$r.sq, digits=4)))
legend("topright", bty="n", legend=paste("p =", format(wpvals_fdr[2,1], digits=4)))

# overall psychopathology
visreg(putamen_overallPsychopath,"overallPsychopath",main="R2* vs Overall Psychopathology",xlab="Overall Psychopathology",ylab="R2* (1/sec)",partial=FALSE)
legend("bottomright", bty="n", legend=paste("R2 =", format(summary(putamen_overallPsychopath)$r.sq, digits=4)))
legend("topright", bty="n", legend=paste("p =", format(wpvals_fdr[1,1], digits=4)))