Description of the procedures and analysis present in Manuscript 2, Establishing a baseline for human cortical folding morphological variables: a multicenter study, at the Doctorate Thesis presented to the Programa de Pós-Graduação em Ciências Médicas at the Instituto D’Or de Pesquisa e Ensino as a partial requirement to obtain the Doctorate Degree.

Part of the data used here cannot be shared due to restrictions of the Ethic Committee. Data can be shared upon reasonable request to the corresponding author. To fulfill these limitation, we will generate random data to simulate the results.

Get in touch with us () in case any help is needed, our aim is to improve the code as needed!

1 RMARKDOWN AND R SETUP

setwd("~/GitHub/Typical-values")
## define functions

# test angular coeficinet versus theoretical value
test_coef <- function(reg, coefnum, val){
  co <- coef(summary(reg))
  tstat <- (co[coefnum,1] - val)/co[coefnum,2]
  2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}

# wrap text
wrapper <- function(x, ...) paste(strwrap(x, ...), collapse = "\n")
library(readr)
library(tidyverse)
library(lubridate)
library(ggpubr)
library(kableExtra)
library(broom)
library(lme4)
library(lsmeans)
library(MuMIn)
library(arm)
library(effects)
# COLOR BLIND PALETTE WITH BLACK
cbbPalette <- c("#000000", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
cbbPalette2 <- c("#D55E00", "#E69F00", "#56B4E9", "#0072B2", "#CC79A7", "#009E73", "#F0E442")

2 set seed for random process

set.seed(1)
# dados_datasetscomp <- read_csv("dados_datasetscomp2.csv")
dados_datasetscomp <- read_csv("data_typical_values.csv")

dados_datasetscomp <- dados_datasetscomp %>%
  filter(Sample != "HCP500r", Diagnostic != "MCI")

3 DATA PREPARATION

# estimate cortical folding variables
dados_datasetscomp <- dados_datasetscomp %>%
  mutate(
    # create new variables
    GMvolume = ifelse(!is.na(GMvolume),GMvolume,AvgThickness*TotalArea),
    logAvgThickness = log10(AvgThickness),
    logTotalArea = log10(TotalArea),
    logExposedArea = log10(ExposedArea),
    localGI = TotalArea / ExposedArea,
    k = sqrt(AvgThickness) * TotalArea / (ExposedArea ^ 1.25),
    K = 1 / 4 * log10(AvgThickness ^ 2)  + log10(TotalArea) - 5 / 4 * log10(ExposedArea),
    S = 3 / 2 * log10(TotalArea) + 3 / 4 * log10(ExposedArea) - 9 /  4 * log10(AvgThickness ^
                                                                                 2) ,
    I = log10(TotalArea) + log10(ExposedArea) + log10(AvgThickness ^ 2),
    # c = as.double(ifelse(
    #   ROI == "hemisphere", NA, 4 * pi / GaussianCurvature
    # )),
    TotalArea_corrected = ifelse(ROI == "hemisphere", TotalArea, TotalArea * c),
    ExposedArea_corrected = ifelse(ROI == "hemisphere", ExposedArea, ExposedArea * c),
    logTotalArea_corrected = log10(TotalArea_corrected),
    logExposedArea_corrected = log10(ExposedArea_corrected),
    localGI_corrected = ifelse(
      ROI == "hemisphere",
      TotalArea / ExposedArea,
      TotalArea_corrected / ExposedArea_corrected
    ),
    k_corrected = ifelse(
      ROI == "hemisphere",
      sqrt(AvgThickness) * log10(TotalArea) / (log10(ExposedArea) ^ 1.25),
      sqrt(AvgThickness) * log10(TotalArea_corrected) / (log10(ExposedArea_corrected ^
                                                                 1.25))
    ),
    K_corrected =  ifelse(
      ROI == "hemisphere",
      1 / 4 * log10(AvgThickness ^ 2) + log10(TotalArea) - 5 / 4 * log10(ExposedArea),
      1 / 4 * log10(AvgThickness ^ 2) + log10(TotalArea_corrected) - 5 / 4 * log10(ExposedArea_corrected)
    ),
    I_corrected = ifelse(
      ROI == "hemisphere",
      log10(TotalArea) + log10(ExposedArea) + log10(AvgThickness ^ 2) ,
      log10(TotalArea_corrected) + log10(ExposedArea_corrected) + log10(AvgThickness ^ 2)
    ),
    S_corrected = ifelse(
      ROI == "hemisphere",
      3 / 2 * log10(TotalArea) + 3 / 4 * log10(ExposedArea) - 9 /  4 * log10(AvgThickness ^ 2) ,
      3 / 2 * log10(TotalArea_corrected) + 3 / 4 * log10(ExposedArea_corrected) - 9 /  4 * log10(AvgThickness ^ 2)
    ),
    Knorm = K_corrected / sqrt(1 + (1 / 4) ^ 2 + (5 / 4) ^ 2),
    Snorm = S_corrected / sqrt((3 / 2) ^ 2 + (3 / 4) ^ 2 + (9 / 4) ^ 2),
    Inorm = I_corrected / sqrt(1 ^ 2 + 1 ^ 2 + 1 ^ 1)
  )

# create age intervals
dados_datasetscomp$Age_interval <- cut(dados_datasetscomp$Age,
                                       breaks = c(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100),
                                       right = FALSE,
                                       include.lowest = TRUE)

dados_datasetscomp$Age_interval10 <- cut(dados_datasetscomp$Age,
                                         breaks = c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100),
                                         right = FALSE,
                                         include.lowest = TRUE)
dados_all <- dados_datasetscomp %>% filter(!is.na(logAvgThickness), ExposedArea != 0 | !is.na(localGI), !is.infinite(logExposedArea)) %>% 
  droplevels()

dados_datasetscomp <- dados_all

dados_datasetscomp$Diagnostic <- as.factor(dados_datasetscomp$Diagnostic)
dados_datasetscomp$Diagnostic <- relevel(dados_datasetscomp$Diagnostic, ref = "CTL")

4 Deaging

# define age for deaging
Age.cor = 25

# DEAGING + HARMONIZATION FULL DATA ----

dados_datasetscomp_rate <-
  filter(dados_datasetscomp, Diagnostic == "CTL")

dados_datasetscomp_rate$Sample <-
  as.factor(dados_datasetscomp_rate$Sample)

dados_datasetscomp_rate$ROI <-
  factor(dados_datasetscomp_rate$ROI,
         levels = c("hemisphere", "F", "O", "P", "T"))

4.1 GM volume

m.1 <-
  lme4::lmer(GMvolume ~ Age * ROI + (1|Sample:ROI), data = dados_datasetscomp_rate)

re <- as_tibble(ranef(m.1)) %>%
  filter(grpvar == "Sample:ROI") %>%
  mutate(
    GM_shift = condval,
    sd_GM_shift = condsd,
    Sample = str_split(grp, pattern = ":", simplify = TRUE)[, 1],
    ROI = str_split(grp, pattern = ":", simplify = TRUE)[, 2]
  ) %>%
  dplyr::select(-c(condval, grpvar, term, condsd, grp))

Age.trend <- as_tibble(lstrends(m.1, ~ ROI, var = "Age")) %>%
  mutate(Age.trend_GM = Age.trend) %>%
  dplyr::select(c(ROI, Age.trend_GM))

dados_datasetscomp <- full_join(dados_datasetscomp, Age.trend) %>%
  full_join(re) %>%
  mutate(
    GMvolume_shiftc = GMvolume - GM_shift,
    GMvolume_age_decay = GMvolume - Age.trend_GM * (Age - Age.cor),
    GMvolume_age_decay_shiftc = GMvolume - GM_shift - Age.trend_GM *
      (Age - Age.cor)
  )

4.2 AvgThickness

m.1 <-
  lme4::lmer(AvgThickness ~ Age * ROI + (1|Sample:ROI), data = dados_datasetscomp_rate)

re <- as_tibble(ranef(m.1)) %>%
  filter(grpvar == "Sample:ROI") %>%
  mutate(
    T_shift = condval,
    sd_T_shift = condsd,
    Sample = str_split(grp, pattern = ":", simplify = TRUE)[, 1],
    ROI = str_split(grp, pattern = ":", simplify = TRUE)[, 2]
  ) %>%
  dplyr::select(-c(condval, grpvar, term, condsd, grp))

Age.trend <- as_tibble(lstrends(m.1, ~ ROI, var = "Age")) %>%
  mutate(Age.trend_T = Age.trend) %>%
  dplyr::select(c(ROI, Age.trend_T))

dados_datasetscomp <- full_join(dados_datasetscomp, Age.trend) %>%
  full_join(re) %>%
  mutate(
    AvgThickness_shiftc = AvgThickness - T_shift,
    AvgThickness_age_decay = AvgThickness - Age.trend_T * (Age - Age.cor),
    AvgThickness_age_decay_shiftc = AvgThickness - T_shift - Age.trend_T *
      (Age - Age.cor),
    logAvgThickness_shiftc = log10(AvgThickness_shiftc),
    logAvgThickness_age_decay = log10(AvgThickness_age_decay),
    logAvgThickness_age_decay_shiftc = log10(AvgThickness_age_decay_shiftc)
  )

4.3 TotalArea

m.1 <-
  lme4::lmer(TotalArea_corrected ~ Age * ROI + (1 | Sample:ROI), data = dados_datasetscomp_rate)

re <- as_tibble(ranef(m.1)) %>%
  filter(grpvar == "Sample:ROI") %>%
  mutate(
    AT_shift = condval,
    sd_AT_shift = condsd,
    Sample = str_split(grp, pattern = ":", simplify = TRUE)[, 1],
    ROI = str_split(grp, pattern = ":", simplify = TRUE)[, 2]
  ) %>%
  dplyr::select(-c(condval, grpvar, term, condsd, grp))

Age.trend <-
  as_tibble(lstrends(m.1, ~ ROI, var = "Age")) %>%
  mutate(Age.trend_AT = Age.trend) %>%
  dplyr::select(c(ROI, Age.trend_AT))

dados_datasetscomp <- full_join(dados_datasetscomp, re) %>%
  full_join(Age.trend) %>%
  mutate(
    TotalArea_shiftc = TotalArea_corrected - AT_shift,
    TotalArea_age_decay = TotalArea_corrected - Age.trend_AT * (Age - Age.cor),
    TotalArea_age_decay_shiftc = TotalArea_corrected - AT_shift - Age.trend_AT *
      (Age - Age.cor),
    logTotalArea_shiftc = log10(TotalArea_shiftc),
    logTotalArea_age_decay = log10(TotalArea_age_decay),
    logTotalArea_age_decay_shiftc = log10(TotalArea_age_decay_shiftc)
  )

4.4 ExposedArea

m.1 <-
  lme4::lmer(
    ExposedArea_corrected  ~ Age * ROI + (1 | Sample:ROI), data = dados_datasetscomp_rate)

re <- as_tibble(ranef(m.1)) %>%
  filter(grpvar == "Sample:ROI") %>%
  mutate(
    AE_shift = condval,
    sd_AE_shift = condsd,
    Sample = str_split(grp, pattern = ":", simplify = TRUE)[, 1],
    ROI = str_split(grp, pattern = ":", simplify = TRUE)[, 2]
  ) %>%
  dplyr::select(-c(condval, grpvar, term, condsd, grp))

Age.trend <-
  as_tibble(lstrends(m.1, ~ ROI, var = "Age")) %>%
  mutate(Age.trend_AE = Age.trend) %>%
  dplyr::select(c(ROI, Age.trend_AE))

dados_datasetscomp <- full_join(dados_datasetscomp, re) %>%
  full_join(Age.trend) %>%
  mutate(
    ExposedArea_shiftc = ExposedArea_corrected - AE_shift,
    ExposedArea_age_decay = ExposedArea_corrected - Age.trend_AE * (Age - Age.cor),
    ExposedArea_age_decay_shiftc = ExposedArea_corrected - AE_shift - Age.trend_AE * (Age - Age.cor),
    logExposedArea_shiftc = log10(ExposedArea_shiftc),
    logExposedArea_age_decay = log10(ExposedArea_age_decay),
    logExposedArea_age_decay_shiftc = log10(ExposedArea_age_decay_shiftc)
  )

4.5 Lobes correction factor

m.1 <-
  lme4::lmer(c ~ Age * ROI + (1|Sample:ROI), data = dados_datasetscomp_rate)

re <- as_tibble(ranef(m.1)) %>%
  filter(grpvar == "Sample:ROI") %>%
  mutate(
    c_shift = condval,
    sd_c_shift = condsd,
    Sample = str_split(grp, pattern = ":", simplify = TRUE)[, 1],
    ROI = str_split(grp, pattern = ":", simplify = TRUE)[, 2]
  ) %>%
  dplyr::select(-c(condval, grpvar, term, condsd, grp))

Age.trend <- as_tibble(lstrends(m.1, ~ ROI, var = "Age")) %>%
  mutate(Age.trend_c = Age.trend) %>%
  dplyr::select(c(ROI, Age.trend_c))

dados_datasetscomp <- full_join(dados_datasetscomp, Age.trend) %>%
  full_join(re) %>%
  mutate(
    c_shiftc = c - c_shift,
    c_age_decay = c - Age.trend_c * (Age - Age.cor),
    c_age_decay_shiftc = c - c_shift - Age.trend_c *
      (Age - Age.cor)
  )
# ----
dados_datasetscomp <- dados_datasetscomp %>%
  mutate(
    localGI_age_decay = TotalArea_age_decay/ExposedArea_age_decay,
    localGI_shiftc = TotalArea_shiftc/ExposedArea_shiftc,
    localGI_age_decay_shiftc = TotalArea_age_decay_shiftc/ExposedArea_age_decay_shiftc,
    K_age_decay = log10(TotalArea_age_decay) + 1/4*log10(AvgThickness_age_decay^2) - 5/4*log10(ExposedArea_age_decay),
    K_shiftc = log10(TotalArea_shiftc) + 1/4*log10(AvgThickness_shiftc^2) - 5/4*log10(ExposedArea_shiftc),
    K_age_decay_shiftc = log10(TotalArea_age_decay_shiftc) + 1/4*log10(AvgThickness_age_decay_shiftc^2) - 5/4*log10(ExposedArea_age_decay_shiftc),
    I_age_decay = log10(TotalArea_age_decay) + log10(ExposedArea_age_decay) + log10(AvgThickness_age_decay^2),
    I_shiftc = log10(TotalArea_shiftc) + log10(ExposedArea_shiftc) + log10(AvgThickness_shiftc^2),
    I_age_decay_shiftc = log10(TotalArea_age_decay_shiftc) + log10(ExposedArea_age_decay_shiftc) + log10(AvgThickness_age_decay_shiftc^2),
    S_age_decay = 3/2*log10(TotalArea_age_decay) + 3/4*log10(ExposedArea_age_decay) - 9/4*log10(AvgThickness_age_decay^2),
    S_shiftc = 3/2*log10(TotalArea_shiftc) + 3/4*log10(ExposedArea_shiftc) - 9/4*log10(AvgThickness_shiftc^2),
    S_age_decay_shiftc = 3/2*log10(TotalArea_age_decay_shiftc) + 3/4*log10(ExposedArea_age_decay_shiftc) - 9/4*log10(AvgThickness_age_decay_shiftc^2),
    Knorm_shiftc = K_shiftc / sqrt(1 + (1 / 4) ^ 2 + (5 / 2) ^ 2),
    Snorm_shiftc = S_shiftc / sqrt((3 / 2) ^ 2 + (3 / 4) ^ 2 + (9 / 4) ^ 2),
    Inorm_shiftc = I_shiftc / sqrt(1 ^ 2 + 1 ^ 2 + 1 ^ 2),
    Knorm_age_decay = K_age_decay / sqrt(1 + (1 / 4) ^ 2 + (5 / 2) ^ 2),
    Snorm_age_decay = S_age_decay / sqrt((3 / 2) ^ 2 + (3 / 4) ^ 2 + (9 / 4) ^ 2),
    Inorm_age_decay = I_age_decay / sqrt(1 ^ 2 + 1 ^ 2 + 1 ^ 2),
    Knorm_age_decay_shiftc = K_age_decay_shiftc / sqrt(1 + (1 / 4) ^ 2 + (5 / 2) ^ 2),
    Snorm_age_decay_shiftc = S_age_decay_shiftc / sqrt((3 / 2) ^ 2 +  (3 / 4) ^ 2 + (9 / 4) ^ 2),
    Inorm_age_decay_shiftc = I_age_decay_shiftc / sqrt(1 ^ 2 + 1 ^ 2 + 1 ^ 2)
  )

5 RESULTS

5.1 Baseline and rate estimates and Diagnostic discrimination based on changing rates - Lobes

dados_datasetscomp_lobes <- filter(dados_datasetscomp, ROI != "hemisphere", Diagnostic == "CTL" | Diagnostic == "AD", Sample != "IDOR-CCD-Control")
dados_datasetscomp_lobes$Diagnostic <- factor(dados_datasetscomp_lobes$Diagnostic, levels = c("CTL", "MCI","AD"))
dados_datasetscomp_lobes$Sample <- as.factor(dados_datasetscomp_lobes$Sample)

5.1.1 AvgThickness ~ Age

## Linear mixed model fit by REML ['lmerMod']
## Formula: 
## AvgThickness_shiftc ~ Age * Diagnostic * ROI + (1 | Sample:Diagnostic:ROI)
##    Data: dados_datasetscomp_lobes
## 
## REML criterion at convergence: -43033.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -7.3354 -0.6219  0.0134  0.6502  4.3211 
## 
## Random effects:
##  Groups                Name        Variance Std.Dev.
##  Sample:Diagnostic:ROI (Intercept) 0.00000  0.0000  
##  Residual                          0.01332  0.1154  
## Number of obs: 29188, groups:  Sample:Diagnostic:ROI, 48
## 
## Fixed effects:
##                         Estimate Std. Error  t value
## (Intercept)            2.765e+00  3.326e-03  831.367
## Age                   -5.844e-03  6.479e-05  -90.196
## DiagnosticAD          -4.866e-01  3.295e-02  -14.768
## ROIO                  -5.327e-01  4.704e-03 -113.243
## ROIP                  -2.304e-01  4.704e-03  -48.967
## ROIT                   1.412e-01  4.704e-03   30.015
## Age:DiagnosticAD       4.892e-03  4.388e-04   11.148
## Age:ROIO               2.448e-03  9.163e-05   26.715
## Age:ROIP               1.006e-03  9.163e-05   10.975
## Age:ROIT               7.094e-04  9.163e-05    7.742
## DiagnosticAD:ROIO      2.571e-01  4.660e-02    5.518
## DiagnosticAD:ROIP     -9.344e-02  4.660e-02   -2.005
## DiagnosticAD:ROIT      1.087e-02  4.660e-02    0.233
## Age:DiagnosticAD:ROIO -2.668e-03  6.206e-04   -4.299
## Age:DiagnosticAD:ROIP  1.142e-03  6.206e-04    1.840
## Age:DiagnosticAD:ROIT -1.329e-03  6.206e-04   -2.142
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
##            R2m       R2c
## [1,] 0.8286405 0.8286405

5.1.2 GI ~ Age

## Linear mixed model fit by REML ['lmerMod']
## Formula: localGI_shiftc ~ Age * Diagnostic * ROI + (1 | Sample:Diagnostic:ROI)
##    Data: dados_datasetscomp_lobes
## 
## REML criterion at convergence: -41589.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.6246 -0.6650 -0.0183  0.6427  6.7829 
## 
## Random effects:
##  Groups                Name        Variance Std.Dev.
##  Sample:Diagnostic:ROI (Intercept) 0.00000  0.0000  
##  Residual                          0.01399  0.1183  
## Number of obs: 29188, groups:  Sample:Diagnostic:ROI, 48
## 
## Fixed effects:
##                         Estimate Std. Error t value
## (Intercept)            2.497e+00  3.410e-03 732.392
## Age                   -2.896e-03  6.641e-05 -43.605
## DiagnosticAD          -2.721e-01  3.378e-02  -8.054
## ROIO                   9.357e-02  4.822e-03  19.404
## ROIP                   6.297e-01  4.822e-03 130.584
## ROIT                   1.043e-01  4.822e-03  21.639
## Age:DiagnosticAD       3.277e-03  4.498e-04   7.285
## Age:ROIO               3.577e-04  9.392e-05   3.808
## Age:ROIP              -1.910e-03  9.392e-05 -20.337
## Age:ROIT              -5.665e-04  9.392e-05  -6.032
## DiagnosticAD:ROIO      8.109e-02  4.777e-02   1.697
## DiagnosticAD:ROIP     -1.542e-01  4.777e-02  -3.229
## DiagnosticAD:ROIT      8.861e-03  4.777e-02   0.186
## Age:DiagnosticAD:ROIO -1.225e-03  6.361e-04  -1.925
## Age:DiagnosticAD:ROIP  1.787e-03  6.361e-04   2.810
## Age:DiagnosticAD:ROIT -3.535e-04  6.361e-04  -0.556
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
##            R2m       R2c
## [1,] 0.7841759 0.7841759

5.1.3 K ~ Age

## Linear mixed model fit by REML ['lmerMod']
## Formula: K_shiftc ~ Age * Diagnostic * ROI + (1 | Sample:Diagnostic:ROI)
##    Data: dados_datasetscomp_lobes
## 
## REML criterion at convergence: -139166.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -6.3529 -0.6169  0.0203  0.6414  5.3896 
## 
## Random effects:
##  Groups                Name        Variance  Std.Dev.
##  Sample:Diagnostic:ROI (Intercept) 0.0000000 0.00000 
##  Residual                          0.0004934 0.02221 
## Number of obs: 29188, groups:  Sample:Diagnostic:ROI, 48
## 
## Fixed effects:
##                         Estimate Std. Error  t value
## (Intercept)           -5.062e-01  6.403e-04 -790.494
## Age                   -9.198e-04  1.247e-05  -73.752
## DiagnosticAD          -9.008e-02  6.343e-03  -14.201
## ROIO                   4.222e-02  9.055e-04   46.621
## ROIP                   4.204e-02  9.055e-04   46.429
## ROIT                   2.639e-02  9.055e-04   29.142
## Age:DiagnosticAD       9.744e-04  8.447e-05   11.536
## Age:ROIO               2.355e-04  1.764e-05   13.352
## Age:ROIP              -2.060e-04  1.764e-05  -11.680
## Age:ROIT              -3.828e-05  1.764e-05   -2.170
## DiagnosticAD:ROIO      3.362e-02  8.970e-03    3.748
## DiagnosticAD:ROIP     -4.009e-02  8.970e-03   -4.469
## DiagnosticAD:ROIT      6.636e-03  8.970e-03    0.740
## Age:DiagnosticAD:ROIO -4.070e-04  1.195e-04   -3.407
## Age:DiagnosticAD:ROIP  4.587e-04  1.195e-04    3.840
## Age:DiagnosticAD:ROIT -2.046e-04  1.195e-04   -1.713
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
##            R2m       R2c
## [1,] 0.6802282 0.6802282

5.1.4 S ~ Age

## Linear mixed model fit by REML ['lmerMod']
## Formula: S_shiftc ~ Age * Diagnostic * ROI + (1 | Sample:Diagnostic:ROI)
##    Data: dados_datasetscomp_lobes
## 
## REML criterion at convergence: -29380.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2192 -0.6718 -0.0240  0.6368  5.8473 
## 
## Random effects:
##  Groups                Name        Variance Std.Dev.
##  Sample:Diagnostic:ROI (Intercept) 0.00000  0.0000  
##  Residual                          0.02126  0.1458  
## Number of obs: 29188, groups:  Sample:Diagnostic:ROI, 48
## 
## Fixed effects:
##                         Estimate Std. Error  t value
## (Intercept)            8.731e+00  4.203e-03 2076.999
## Age                    2.681e-03  8.187e-05   32.752
## DiagnosticAD           2.785e-01  4.164e-02    6.689
## ROIO                  -2.149e-01  5.945e-03  -36.156
## ROIP                   6.513e-01  5.945e-03  109.566
## ROIT                  -4.981e-02  5.945e-03   -8.379
## Age:DiagnosticAD      -2.415e-03  5.545e-04   -4.355
## Age:ROIO              -1.212e-03  1.158e-04  -10.464
## Age:ROIP              -1.198e-04  1.158e-04   -1.035
## Age:ROIT              -5.236e-04  1.158e-04   -4.522
## DiagnosticAD:ROIO     -1.154e-01  5.889e-02   -1.960
## DiagnosticAD:ROIP      2.092e-01  5.889e-02    3.552
## DiagnosticAD:ROIT     -2.767e-02  5.889e-02   -0.470
## Age:DiagnosticAD:ROIO  9.338e-04  7.842e-04    1.191
## Age:DiagnosticAD:ROIP -2.442e-03  7.842e-04   -3.114
## Age:DiagnosticAD:ROIT  9.578e-04  7.842e-04    1.221
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
##            R2m       R2c
## [1,] 0.8568137 0.8568137

5.1.5 I ~ Age

## Linear mixed model fit by REML ['lmerMod']
## Formula: S_shiftc ~ Age * Diagnostic * ROI + (1 | Sample:Diagnostic:ROI)
##    Data: dados_datasetscomp_lobes
## 
## REML criterion at convergence: -29380.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2192 -0.6718 -0.0240  0.6368  5.8473 
## 
## Random effects:
##  Groups                Name        Variance Std.Dev.
##  Sample:Diagnostic:ROI (Intercept) 0.00000  0.0000  
##  Residual                          0.02126  0.1458  
## Number of obs: 29188, groups:  Sample:Diagnostic:ROI, 48
## 
## Fixed effects:
##                         Estimate Std. Error  t value
## (Intercept)            8.731e+00  4.203e-03 2076.999
## Age                    2.681e-03  8.187e-05   32.752
## DiagnosticAD           2.785e-01  4.164e-02    6.689
## ROIO                  -2.149e-01  5.945e-03  -36.156
## ROIP                   6.513e-01  5.945e-03  109.566
## ROIT                  -4.981e-02  5.945e-03   -8.379
## Age:DiagnosticAD      -2.415e-03  5.545e-04   -4.355
## Age:ROIO              -1.212e-03  1.158e-04  -10.464
## Age:ROIP              -1.198e-04  1.158e-04   -1.035
## Age:ROIT              -5.236e-04  1.158e-04   -4.522
## DiagnosticAD:ROIO     -1.154e-01  5.889e-02   -1.960
## DiagnosticAD:ROIP      2.092e-01  5.889e-02    3.552
## DiagnosticAD:ROIT     -2.767e-02  5.889e-02   -0.470
## Age:DiagnosticAD:ROIO  9.338e-04  7.842e-04    1.191
## Age:DiagnosticAD:ROIP -2.442e-03  7.842e-04   -3.114
## Age:DiagnosticAD:ROIT  9.578e-04  7.842e-04    1.221
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see ?isSingular
##            R2m       R2c
## [1,] 0.8568137 0.8568137
rate <- full_join(tableT, tableK) %>%
  full_join(tableS) %>%
  full_join(tableI) %>%
  full_join(tableGI) %>%
  mutate(TX = paste(signif(Age.trend, 2), "±", signif(SE.y, 2)),
         percent = signif(percent, 2)) %>%
  dplyr::select(-c(Age.trend, SE.y))
  
rate %>%
  kable() %>%
  kable_styling()
Diagnostic ROI percent Variable TX
CTL F -0.24000 T_shiftc -0.0058 ± 6.5e-05
AD F -0.04300 T_shiftc -0.00095 ± 0.00043
CTL O -0.16000 T_shiftc -0.0034 ± 6.5e-05
AD O -0.06000 T_shiftc -0.0012 ± 0.00043
CTL P -0.21000 T_shiftc -0.0048 ± 6.5e-05
AD P 0.05900 T_shiftc 0.0012 ± 0.00043
CTL T -0.19000 T_shiftc -0.0051 ± 6.5e-05
AD T -0.06700 T_shiftc -0.0016 ± 0.00043
CTL F -0.17000 K_shiftc -0.00092 ± 1.2e-05
AD F 0.00920 K_shiftc 5.5e-05 ± 8.4e-05
CTL O -0.14000 K_shiftc -0.00068 ± 1.2e-05
AD O -0.02200 K_shiftc -0.00012 ± 8.4e-05
CTL P -0.22000 K_shiftc -0.0011 ± 1.2e-05
AD P 0.05300 K_shiftc 0.00031 ± 8.4e-05
CTL T -0.18000 K_shiftc -0.00096 ± 1.2e-05
AD T -0.03300 K_shiftc -0.00019 ± 8.4e-05
CTL F 0.03000 S_shiftc 0.0027 ± 8.2e-05
AD F 0.00300 S_shiftc 0.00027 ± 0.00055
CTL O 0.01700 S_shiftc 0.0015 ± 8.2e-05
AD O -0.00013 S_shiftc -1.1e-05 ± 0.00055
CTL P 0.02700 S_shiftc 0.0026 ± 8.2e-05
AD P -0.02400 S_shiftc -0.0023 ± 0.00055
CTL T 0.02500 S_shiftc 0.0022 ± 8.2e-05
AD T 0.00780 S_shiftc 7e-04 ± 0.00055
CTL F 0.03000 I_shiftc 0.0027 ± 8.2e-05
AD F 0.00300 I_shiftc 0.00027 ± 0.00055
CTL O 0.01700 I_shiftc 0.0015 ± 8.2e-05
AD O -0.00013 I_shiftc -1.1e-05 ± 0.00055
CTL P 0.02700 I_shiftc 0.0026 ± 8.2e-05
AD P -0.02400 I_shiftc -0.0023 ± 0.00055
CTL T 0.02500 I_shiftc 0.0022 ± 8.2e-05
AD T 0.00780 I_shiftc 7e-04 ± 0.00055
CTL F -0.12000 localGI_shiftc -0.0029 ± 6.6e-05
AD F 0.01700 localGI_shiftc 0.00038 ± 0.00044
CTL O -0.10000 localGI_shiftc -0.0025 ± 6.6e-05
AD O -0.02000 localGI_shiftc -0.00049 ± 0.00044
CTL P -0.17000 localGI_shiftc -0.0048 ± 6.6e-05
AD P 0.00950 localGI_shiftc 0.00026 ± 0.00044
CTL T -0.14000 localGI_shiftc -0.0035 ± 6.6e-05
AD T -0.02300 localGI_shiftc -0.00054 ± 0.00044

5.2 Figures

fit_lobes

fig_TX_age_lobes_DIAG