Load Packages

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

Read in r2star_factors & corrtraits data

r2star <- read.csv("r2star_finalSample_03152017.csv")
factors <- read.csv("n1601_goassess_itemwise_psychosis_JCPP_factor_scores_20161219.csv")
r2star_factors <- merge(r2star, factors, by=c("bblid","scanid"))

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.01181469
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.03228176
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.005561452

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.05588967
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.09014693
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.04203899

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.08880744
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.1499583
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.07562076

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.06069998
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.1387938
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.05769432

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.2885598
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.2425802
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.2052653

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.01332297
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.0820855
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.01288132

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.0180845
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.08058412
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.01430138

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.01181469 0.04219717
## rputamen_overallPsychosis_pval  0.05588967 0.08497997
## rputamen_pos2fac_pval           0.08880744 0.10360868
## rputamen_pos3fac_pval           0.06069998 0.08497997
## rputamen_posDelusional_pval     0.28855978 0.28855978
## rputamen_neg2fac_pval           0.01332297 0.04219717
## rputamen_neg3fac_pval           0.01808450 0.04219717
# 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.03228176 0.04219717
## lputamen_overallPsychosis_pval  0.09014693 0.08497997
## lputamen_pos2fac_pval           0.14995833 0.10360868
## lputamen_pos3fac_pval           0.13879377 0.08497997
## lputamen_posDelusional_pval     0.24258022 0.28855978
## lputamen_neg2fac_pval           0.08208550 0.04219717
## lputamen_neg3fac_pval           0.08058412 0.04219717
# 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.005561452 0.03336988
## putamen_overallPsychosis_pval  0.042038989 0.07356823
## putamen_pos2fac_pval           0.075620762 0.08822422
## putamen_pos3fac_pval           0.057694323 0.08077205
## putamen_posDelusional_pval     0.205265327 0.20526533
## putamen_neg2fac_pval           0.012881319 0.03336988
## putamen_neg3fac_pval           0.014301376 0.03336988
# all p values
pvalues = list(rput_overallPsychopath_pval, lput_overallPsychopath_pval, put_overallPsychopath_pval, rput_overallPsychosis_pval, lput_overallPsychosis_pval, put_overallPsychosis_pval, rput_pos2fac_pval, lput_pos2fac_pval, put_pos2fac_pval, rput_pos3fac_pval, lput_pos3fac_pval, put_pos3fac_pval, rput_posDelusional_pval, lput_posDelusional_pval, put_posDelusional_pval, rput_neg2fac_pval, lput_neg2fac_pval, put_neg2fac_pval, rput_neg3fac_pval, lput_neg3fac_pval, put_neg3fac_pval)
pvals <- as.data.frame(pvalues)
pvalst <- t(pvals)
# fdr corrections
fdr <- as.data.frame(p.adjust(pvals[1,], "fdr"))
names(fdr) <- "fdr"
pvals_fdr <- as.data.frame(cbind(pvalst, fdr))
print(pvals_fdr)
##                                      pvalst        fdr
## rputamen_overallPsychopath_pval 0.011814687 0.06006578
## lputamen_overallPsychopath_pval 0.032281756 0.09684527
## putamen_overallPsychopath_pval  0.005561452 0.06006578
## rputamen_overallPsychosis_pval  0.055889668 0.11588178
## lputamen_overallPsychosis_pval  0.090146927 0.11831784
## putamen_overallPsychosis_pval   0.042038989 0.11035235
## rputamen_pos2fac_pval           0.088807440 0.11831784
## lputamen_pos2fac_pval           0.149958328 0.17495138
## putamen_pos2fac_pval            0.075620762 0.11831784
## rputamen_pos3fac_pval           0.060699978 0.11588178
## lputamen_pos3fac_pval           0.138793770 0.17145113
## putamen_pos3fac_pval            0.057694323 0.11588178
## rputamen_posDelusional_pval     0.288559781 0.28855978
## lputamen_posDelusional_pval     0.242580219 0.25470923
## putamen_posDelusional_pval      0.205265327 0.22687220
## rputamen_neg2fac_pval           0.013322966 0.06006578
## lputamen_neg2fac_pval           0.082085499 0.11831784
## putamen_neg2fac_pval            0.012881319 0.06006578
## rputamen_neg3fac_pval           0.018084503 0.06329576
## lputamen_neg3fac_pval           0.080584119 0.11831784
## putamen_neg3fac_pval            0.014301376 0.06006578
visreg(putamen_neg2fac,"neg2fac",main="R2* vs Negative Symptoms",xlab="Negative Symptoms",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)))