OSCR

Dissociable Mechanisms Underlie Differences Between Memory and Metamemory in Older Adults: The Differentiating Role of Anxiety and Depression Symptoms.

Code ↔ Paper

5 matches between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 5 matches
  1. [1] § Materials and Methods › Behavioral Assessments › Self‐Report Measures ↔ Analysis/BABS_metamem_MK.Rmd, lines 242–249 · score 0.84 · anxious arousal, general distress, Penn State Worry, anhedonic depression, Geriatric Depression, PSWQ
  2. [2] § Materials and Methods › Behavioral Assessments › Objective Cognitive Assessments ↔ Analysis/BABS_metamem_MK_supplement.Rmd, lines 81–108 · score 0.73 · visual reproduction, free recall, long delays, short delays, CVLT, correlates
  3. [3] § Materials and Methods › Behavioral Assessments ↔ Analysis/BABS_metamem_MK.Rmd, lines 8–58 · score 0.63 · Brandeis Aging Brain, neuropsychological battery, metamemory, depression
  4. [4] § Materials and Methods › Behavioral Assessments ↔ Analysis/BABS_metamem_MK_supplement.Rmd, lines 8–53 · score 0.63 · Brandeis Aging Brain, neuropsychological battery, metamemory
  5. [5] § Results › Exploring the Contribution of Anxiety and Depression Symptoms and Tau Burden on Different Facets of Metamemory ↔ Analysis/BABS_metamem_MK.Rmd, lines 187–216 · score 0.58 · metamemory sub scales, psychiatric history, reported memory, depression symptom, models, memory ability

Paper

Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

R Markdown · 426 lines · 33 KB · no license · 3 matches

  1. ---
  2. title: "Dissociable mechanisms underlie differences between objective and subjective assessments of memory in older adults"
  3. author: "J.L. Crawford et al.,"
  4. date: "`r Sys.Date()`"
  5. output: html_document
  6. ---
  7. ```{r setup, warning=FALSE, message=FALSE}
  8. rm(list=ls())
  9. # Packages
  10. library(knitr); library(easystats); library(ggpubr); library(sjPlot); library(tidyverse)
  11. #Create data directories
  12. demo.path<-"~/Library/CloudStorage/Box-Box/BABS_Neuropsych/Data/BABS_Demo.csv"
  13. NP.path<-"~/Library/CloudStorage/Box-Box/BABS_Neuropsych/Data/BABS_Neuropsych_Data_Validated.csv"
  14. sess.path <-"/Volumes/berry-lab/berry-lab/Brandeis_Aging_Brain_Study/BABS Data/"
  15. metamem.path <- "/Volumes/berry-lab/berry-lab/Brandeis_Aging_Brain_Study/BABS Data/Analysis/Qualtrics_Surveys/Metamemory_imputed_sum.csv"
  16. MASQ.path <- "/Volumes/berry-lab/berry-lab/Brandeis_Aging_Brain_Study/BABS Data/Analysis/Qualtrics_Surveys/MASQ_imputed_sum.csv"
  17. PSWQ.path <- "/Volumes/berry-lab/berry-lab/Brandeis_Aging_Brain_Study/BABS Data/Analysis/Qualtrics_Surveys/PSWQ_imputed_sum.csv"
  18. GDS.path <- "/Volumes/berry-lab/berry-lab/Brandeis_Aging_Brain_Study/BABS Data/Analysis/Qualtrics_Surveys/GDS_imputed_sum.csv"
  19. GDS.nonCog.path <-"~/Library/CloudStorage/Box-Box/BABS_Neuropsych/Data/GDS_noncog_imputed_sum.csv"
  20. psych.hx.path <- "~/Library/CloudStorage/Box-Box/BABS_Neuropsych/Data/BABS_Metamem_Dx_Hx.csv"
  21. scanTime.path <- "~/Library/CloudStorage/Box-Box/BABS_Neuropsych/Data/BABS_Tau_Dates.csv"
  22. SUVR.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_MK_SUVR/"
  23. MRI.vol.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_StructuralMRI/asegstats.csv"
  24. MRI.cort.vol.L.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_StructuralMRI/aparcstats_volume_lh.csv"
  25. MRI.cort.vol.R.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_StructuralMRI/aparcstats_volume_rh.csv"
  26. MRI.cort.thick.L.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_StructuralMRI/aparcstats_thickness_lh.csv"
  27. MRI.cort.thick.R.path <-"/Volumes/berry-lab/berry-lab/Aging_Norepinephrine_Tau/Data/ANETauTime01_StructuralMRI/aparcstats_thickness_rh.csv"
  28. #Make data frames for age and SUVR data
  29. BABS.demo <- read_csv(demo.path) %>% select(BABS_ID, Age_V1, Sex, Edu, Race, Ethnicity) %>%
  30. mutate(Subject = parse_number(BABS_ID),
  31. sexCode = factor(Sex, levels = c("Female","Male"), labels = c(0,1))) %>% select(-c(BABS_ID, Sex)) %>%
  32. rename(Age = Age_V1)
  33. BABS.demo$sexCode <- as.numeric(as.character(BABS.demo$sexCode))
  34. d.SUVR <- list.files(path = SUVR.path, pattern = ".csv", full.names = T) %>%
  35. lapply(read_csv) %>%
  36. bind_rows %>% as_tibble() %>% pivot_longer(values_to = "SUVR", names_to = "PVC", -c(BABSID,label, num_voxels)) %>%
  37. mutate(PVC = factor(PVC, levels = c("nonPVC_SUVR","PVC_SUVR"), labels = c("nonPVC","PVC")))
  38. d.tauTime <- read_csv(scanTime.path) %>% pivot_wider(id_cols = BABS_ID, names_from = Study, values_from = Date) %>%
  39. mutate(BABS = strptime(BABS, "%m/%d/%Y"),
  40. ANE = strptime(`ANE (LC)`, "%m/%d/%Y"),
  41. diffTime = as.numeric(difftime(ANE, BABS, units = "weeks"))) %>% select(-`ANE (LC)`) %>%
  42. mutate(diffTime_month = diffTime/4) %>%
  43. summarise(meanDelay = mean(diffTime_month), sdDelay = sd(diffTime_month))
  44. #Make data frames for neuropsych battery items
  45. BABS.NP.sess1 <- read.csv(NP.path, header = T) %>% filter(Session == 1)
  46. Metamem <- read.csv(metamem.path, header = T) %>% filter(Metamemory_Session == 1)
  47. MASQ <- read.csv(MASQ.path, header = T) %>% filter(MASQ_Session == 1)
  48. PSWQ <- read.csv(PSWQ.path, header = T) %>% filter(PSWQ_Session == 1)
  49. GDS <- read.csv(GDS.path, header = T) %>% filter(GDS_Session == 1)
  50. GDS.nonCog <- read.csv(GDS.nonCog.path, header = T) %>% filter(GDS_Session == 1) %>% rename(GDS_nonCog = GDS)
  51. psych.hx <- read.csv(psych.hx.path, header = T) %>% mutate(hxCode = if_else(Hx_Depression == "No", 0, 1)) %>%
  52. mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID)
  53. ```
  54. ```{r LearnMem, warning=FALSE, message=FALSE}
  55. sub.IDs <- c("BABS009", "BABS015","BABS019","BABS028", "BABS038","BABS040","BABS061", "BABS069", "BABS074", "BABS076", "BABS079", "BABS081", "BABS083", "BABS084", "BABS092", "BABS094", "BABS097", "BABS102", "BABS103", "BABS104", "BABS124", "BABS131", "BABS134", "BABS145", "BABS147", "BABS150", "BABS157", "BABS158", "BABS159", "BABS164", "BABS171", "BABS175", "BABS178", "BABS180", "BABS182", "BABS183", "BABS184", "BABS187", "BABS189", "BABS191", "BABS194", "BABS197", "BABS198", "BABS200", "BABS202", "BABS204", "BABS210", "BABS214", "BABS222", "BABS223", "BABS231", "BABS234", "BABS235", "BABS236", "BABS237", "BABS238", "BABS239", "BABS245", "BABS252", "BABS264", "BABS271", "BABS281", "BABS286", "BABS289", "BABS321", "BABS325", "BABS326", "BABS327", "BABS328", "BABS329", "BABS330", "BABS331", "BABS335")
  56. ```
  57. ```{r ROIs, message=FALSE, warning=FALSE}
  58. #Braak staging ROI groups
  59. BRAAK1 = c("L_entorhinal","R_entorhinal")
  60. BRAAK2 = c("L_hippocampus","R_hippocampus")
  61. ```
  62. ```{r tau_dataframes, warning=FALSE, message=FALSE}
  63. #creating data frame with relevant variables
  64. d.Braak1 <- d.SUVR %>% filter(label %in% BRAAK1) %>% group_by(BABSID, PVC) %>%
  65. summarise(mean_weighted_SUVR = (sum(num_voxels*SUVR)/sum(num_voxels))) %>% mutate(ROI = "Braak1") %>% filter(PVC == "PVC") %>% select(-PVC)
  66. d.Braak2 <- d.SUVR %>% filter(label %in% BRAAK2) %>% group_by(BABSID, PVC) %>%
  67. summarise(mean_weighted_SUVR = (sum(num_voxels*SUVR)/sum(num_voxels))) %>% mutate(ROI = "Braak2") %>% filter(PVC == "PVC") %>% select(-PVC)
  68. d.Tau <- rbind(d.Braak1, d.Braak2) %>%
  69. pivot_wider(id_cols = "BABSID",names_from = "ROI", values_from = "mean_weighted_SUVR") %>% ungroup() %>%
  70. mutate(Subject = parse_number(BABSID)) %>% select(-BABSID)
  71. ```
  72. ## Creating memory composite score
  73. ```{r LM_comp, warning=FALSE, message=FALSE}
  74. #merging data frames and cleaning data
  75. d.CVLT <- BABS.NP.sess1 %>% select(BABS_ID, starts_with("CVLT")) %>%
  76. distinct(BABS_ID, .keep_all = T) %>%
  77. mutate_at(vars(starts_with("CVLT")), as.numeric) %>%
  78. mutate(Learning_sum = CVLT_listA__Trial1 + CVLT_listA__Trial2 + CVLT_listA__Trial3 + CVLT_listA__Trial4 + CVLT_listA__Trial5) %>%
  79. select(-starts_with("CVLT_listA"))
  80. d.CVLT.trim <- d.CVLT %>% filter(BABS_ID %in% sub.IDs) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(Subject, Learning_sum, CVLT_listB, starts_with("CVLT_SD"), starts_with("CVLT_LD"))
  81. d.VR.trim <- BABS.NP.sess1 %>% filter(BABS_ID %in% sub.IDs) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(Subject, starts_with("WMS_V"))
  82. #creating data frame with all WM measures
  83. d.LM <- d.CVLT.trim %>% inner_join(d.VR.trim) %>% drop_na()
  84. d.LM.comp <- d.LM %>% mutate(across(Learning_sum:WMS_VR2, ~ c(scale(.))),
  85. LM_comp = CVLT_SD__FR + CVLT_LD__FR + WMS_VR1 + WMS_VR2) %>% select(Subject, LM_comp, Learning_sum)
  86. d.cog.comp <- d.LM.comp
  87. ```
  88. ## Creating data frame for MMSE
  89. ```{r MMSE, warning=FALSE, message=FALSE}
  90. #merging data frames and cleaning data
  91. d.MMSE <- BABS.NP.sess1 %>% select(BABS_ID, MMSE) %>%
  92. distinct(BABS_ID, .keep_all = T) %>%
  93. filter(BABS_ID %in% sub.IDs) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID)
  94. ```
  95. ## Examining self-reported metacognition
  96. ### Meta-cognitive questionnaires: Metamemory
  97. Higher scores indicate better self-reported metamemory function.
  98. ```{r metacog_import, warning=FALSE, message=FALSE}
  99. #import metamemory and examine correlation across domains
  100. d.metamem.trim <- Metamem %>% filter(BABS_ID %in% sub.IDs & Metamemory_Session == 1) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(-Metamemory_Session)
  101. #Metamemory
  102. metamem.comp <- d.metamem.trim %>% mutate(across(Able:Strat, ~ c(scale(.))),
  103. metamem_comp = Able + Gen + Strat)
  104. d.metacog.comp <- metamem.comp
  105. ```
  106. ## Figure 1: Memory ability and metamemory are not reliably associated with each other
  107. ```{r metacog_cog_lms, warning=FALSE, message=FALSE}
  108. d.cog.meta <- d.cog.comp %>% inner_join(d.metacog.comp) %>% inner_join(BABS.demo) %>%
  109. mutate(Age = scale(Age),
  110. Edu = scale(Edu))
  111. #relationship between cognitive function and self-reported memory
  112. m.metamem.cog <- lm(data = d.cog.meta, metamem_comp ~ LM_comp + Age + sexCode + Edu)
  113. tab_model(m.metamem.cog, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Age", "Sex", "Education"), dv.labels = c("Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  114. #plot
  115. d.metamem.LM.plot <- get_datagrid(m.metamem.cog, by = c("LM_comp"), preserve_range = TRUE)
  116. LM.metamem.result <- estimate_relation(m.metamem.cog, include_random = F, data = d.metamem.LM.plot)
  117. fig.1 <- plot(LM.metamem.result,
  118. point = list(color = "royalblue", alpha = 0.2, size = 4),
  119. line = list(color = "royalblue3", size = 2),
  120. ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, y = "Metamemory (Z-Scored)", x = "Memory Ability (Z-Scored)")
  121. fig.1
  122. ```
  123. ## Adding self-reported measures of depression and anxiety symptoms
  124. ### Depression and anxiety symptom questionnaires: GDS, MASQ, PSWQ
  125. ```{r anxdep_import, warning=FALSE, message=FALSE}
  126. #import GDS
  127. d.GDS.trim <- GDS %>% filter(BABS_ID %in% sub.IDs) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(Subject, GDS) %>% mutate(GDS = as.numeric(GDS))
  128. #import GDS (cognitive items excluded)
  129. d.GDS.nonCog.trim <- GDS.nonCog %>% filter(BABS_ID %in% sub.IDs) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(Subject, GDS_nonCog) %>% mutate(GDS_nonCog = as.numeric(GDS_nonCog))
  130. #import MASQ and examine correlation across domains
  131. d.MASQ.trim <- MASQ %>% filter(BABS_ID %in% sub.IDs & MASQ_Session == 1) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(-MASQ_Session)
  132. #MASQ
  133. MASQ.comp <- d.MASQ.trim %>% mutate(across(AA:GD, ~ c(scale(.))),
  134. MASQ_comp = AA + AD + GD) %>% select(Subject, MASQ_comp)
  135. #import PSWQ
  136. d.PSWQ.trim <- PSWQ %>% filter(BABS_ID %in% sub.IDs & PSWQ_Session == 1) %>% mutate(Subject = parse_number(BABS_ID)) %>% select(-BABS_ID) %>% select(-PSWQ_Session)
  137. #combine dataframes and examine correlation across questionnaires
  138. d.anxdep <- d.GDS.trim %>% inner_join(d.MASQ.trim) %>% inner_join(d.PSWQ.trim)
  139. anxdep.comp <- d.anxdep %>% mutate(across(GDS:PSWQ, ~ c(scale(.))),
  140. anxdep_comp = GDS + AA + AD + GD + PSWQ) %>% select(Subject, anxdep_comp, GDS, AA, AD, GD, PSWQ) %>% drop_na()
  141. #combine dataframes and examine correlation across questionnaires
  142. d.anxdep.nonCog <- d.GDS.nonCog.trim %>% inner_join(d.MASQ.trim) %>% inner_join(d.PSWQ.trim)
  143. anxdep.comp.nonCog <- d.anxdep.nonCog %>% mutate(across(GDS_nonCog:PSWQ, ~ c(scale(.))),
  144. anxdep_comp = GDS_nonCog + AA + AD + GD + PSWQ) %>% select(Subject, anxdep_comp, GDS_nonCog, AA, AD, GD, PSWQ) %>% drop_na()
  145. ```
  146. ## Table 1: Descriptive information
  147. ```{r Table1, warning=FALSE, message=FALSE}
  148. d.Table <- d.anxdep %>% inner_join(BABS.demo) %>% inner_join(d.MMSE) %>% inner_join(d.Tau) %>%
  149. select(-c(Race, Ethnicity, sexCode, Subject)) %>%
  150. pivot_longer(cols = everything()) %>%
  151. group_by(name) %>%
  152. summarize('mean' = mean(value),'sd' = sd(value))
  153. table.Race <- d.anxdep %>% inner_join(BABS.demo) %>%
  154. group_by(Race) %>% summarise(Percentage = n()/nrow(d.anxdep)*100)
  155. table.Ethnicity <- d.anxdep %>% inner_join(BABS.demo) %>%
  156. group_by(Ethnicity) %>% summarise(Percentage = n()/nrow(d.anxdep)*100)
  157. table.Sex <- d.anxdep %>% inner_join(BABS.demo) %>%
  158. group_by(sexCode) %>% summarise(Percentage = n()/nrow(d.anxdep)*100) %>%
  159. rename(Sex = sexCode) %>%
  160. mutate(Sex = factor(Sex, levels = c(0,1), labels = c("Female", "Male")))
  161. ```
  162. ## Testing for the associations between objectively assessed cognitive performance and self-reported cognition (with self-reported depression and anxiety symptoms)
  163. ```{r metacog_cog_anx_deplms, warning=FALSE, message=FALSE}
  164. d.cog.meta.anx <- d.cog.meta %>% inner_join(anxdep.comp) %>% inner_join(psych.hx)
  165. #basic descriptive models
  166. m.LM.covariates <- lm(data = d.cog.meta.anx, LM_comp ~ Age + sexCode + Edu)
  167. m.LM.learn.covariates <- lm(data = d.cog.meta.anx, LM_comp ~ Learning_sum + Age + sexCode + Edu)
  168. m.metamem.covariates <- lm(data = d.cog.meta.anx, metamem_comp ~ Age + sexCode + Edu)
  169. m.anxdep.covariates <- lm(data = d.cog.meta.anx, anxdep_comp ~ Age + sexCode + Edu)
  170. tab_model(m.LM.covariates, m.metamem.covariates, m.anxdep.covariates, digits = 2, show.stat = T, pred.labels = c("Intercept","Age", "Sex", "Education"), dv.labels = c("Memory Ability","Metamemory", "Anxiety and Depression Symptoms"), show.icc = F, show.re.var = F, show.obs = F)
  171. #relationship between anxiety and depression and memory ability
  172. m.LM.anx <- lm(data = d.cog.meta.anx, LM_comp ~ anxdep_comp + Age + sexCode + Edu)
  173. #relationship between anxiety and depression and memory ability controlling for psychiatric history
  174. m.LM.anx.psych <- lm(data = d.cog.meta.anx, LM_comp ~ anxdep_comp + Age + sexCode + Edu + hxCode)
  175. #relationship between cognitive function and self-reported memory
  176. m.metamem.cog.anx <- lm(data = d.cog.meta.anx, metamem_comp ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  177. #relationship between cognitive function and self-reported memory controlling for psychiatric history
  178. m.metamem.cog.anx.psych <- lm(data = d.cog.meta.anx, metamem_comp ~ LM_comp + anxdep_comp + Age + sexCode + Edu + hxCode)
  179. tab_model(m.metamem.cog.anx,m.metamem.cog.anx.psych, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Anxiety and Depression Symptoms", "Age", "Sex", "Education", "Psychiatric History"), dv.labels = c("Metamemory","Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  180. #testing for relationships between different metamemory sub-scales
  181. m.metamem.gen.cog.anx <- lm(data = d.cog.meta.anx, Gen ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  182. m.metamem.ability.cog.anx <- lm(data = d.cog.meta.anx, Able ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  183. m.metamem.strat.cog.anx <- lm(data = d.cog.meta.anx, Strat ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  184. tab_model(m.metamem.gen.cog.anx, m.metamem.ability.cog.anx, m.metamem.strat.cog.anx, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Anxiety and Depression Symptoms", "Age", "Sex", "Education"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  185. #testing for relationships between different metamemory sub-scales controlling for psychiatric history
  186. m.metamem.gen.cog.anx.psych <- lm(data = d.cog.meta.anx, Gen ~ LM_comp + anxdep_comp + Age + sexCode + Edu + hxCode)
  187. m.metamem.ability.cog.anx.psych <- lm(data = d.cog.meta.anx, Able ~ LM_comp + anxdep_comp + Age + sexCode + Edu + hxCode)
  188. m.metamem.strat.cog.anx.psych <- lm(data = d.cog.meta.anx, Strat ~ LM_comp + anxdep_comp + Age + sexCode + Edu + hxCode)
  189. tab_model(m.metamem.gen.cog.anx.psych, m.metamem.ability.cog.anx.psych, m.metamem.strat.cog.anx.psych, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Anxiety and Depression Symptoms", "Age", "Sex", "Education", "Psychiatric History"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  190. ```
  191. ## Figure 2: Metamemory, but not memory ability, is associated with anxiety and depression symptoms
  192. ```{r fig2, warning=FALSE, message=FALSE}
  193. #plotting relationships between memory ability & anxiety and depression symptoms
  194. d.LM.anx.plot <- get_datagrid(m.LM.anx, by = c("anxdep_comp"), preserve_range = TRUE)
  195. LM.anx.result <- estimate_relation(m.LM.anx, include_random = F, data = d.LM.anx.plot)
  196. fig.2a <- plot(LM.anx.result,
  197. point = list(color = "lightblue", alpha = 0.4, size = 4),
  198. line = list(color = "lightblue4", size = 2),
  199. ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, y = "Memory Ability (Z-Scored)", x = "Anxiety and Depression Symptoms (Z-Scored)")
  200. #relationship between anxiety and depression and subjective memory
  201. m.metamem.anx <- lm(data = d.cog.meta.anx, metamem_comp ~ anxdep_comp + Age + sexCode + Edu)
  202. #plotting relationships between memory ability & anxiety and depression symptoms
  203. d.metamem.anx.plot <- get_datagrid(m.metamem.anx, by = c("anxdep_comp"), preserve_range = TRUE)
  204. metamem.anx.result <- estimate_relation(m.metamem.anx, include_random = F, data = d.metamem.anx.plot)
  205. fig.2b <- plot(metamem.anx.result,
  206. point = list(color = "lightblue", alpha = 0.4, size = 4),
  207. line = list(color = "lightblue4", size = 2),
  208. ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, y = "Metamemory (Z-Scored)", x = "Anxiety and Depression Symptoms (Z-Scored)")
  209. #making paneled figure
  210. fig.2<- ggarrange(fig.2a, fig.2b)
  211. fig.2
  212. ```
  213. Sensitivity Analysis: Contribution of anxiety and depression facets towards metamemory
  214. ```{r sensivity_anxdep, warning=FALSE, message=FALSE}
  215. #relationship between cognitive function and self-reported memory
  216. m.metamem.cog.anx.facets <- lm(data = d.cog.meta.anx, metamem_comp ~ LM_comp + GDS + AA + AD + GD + PSWQ + Age + sexCode + Edu)
  217. tab_model(m.metamem.cog.anx.facets, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Geriatric Depression (GDS) Score", "MASQ: Anxious Arousal", "MASQ: Anhedonic Depression", "MASQ: General Distress", "Penn State Worry (PSWQ) Score", "Age", "Sex", "Education"), dv.labels = c("Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  218. check_model(m.metamem.cog.anx.facets)
  219. ```
  220. Sensitivity Analysis: Removing cognitive items from GDS
  221. ```{r sensivity_GDS, warning=FALSE, message=FALSE}
  222. d.cog.meta.anx.noncog <- d.cog.meta %>% inner_join(anxdep.comp.nonCog)
  223. #relationship between cognitive function and self-reported memory
  224. m.metamem.cog.anx.noncog <- lm(data = d.cog.meta.anx.noncog, metamem_comp ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  225. tab_model(m.metamem.cog.anx.noncog, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Anxiety and Depression Symptoms [GDS cognitive items removed]", "Age", "Sex", "Education", "Geriatric Depression (GDS) Score [cognitive items removed]", "MASQ: Anxious Arousal", "MASQ: Anhedonic Depression", "MASQ: General Distress", "Penn State Worry (PSWQ) Score"), dv.labels = c("Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  226. #testing for relationships between different metamemory sub-scales removing cognitive items from GDS
  227. m.metamem.gen.cog.anx.noncog <- lm(data = d.cog.meta.anx.noncog , Gen ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  228. m.metamem.ability.cog.anx.noncog <- lm(data = d.cog.meta.anx.noncog , Able ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  229. m.metamem.strat.cog.anx.noncog <- lm(data = d.cog.meta.anx.noncog , Strat ~ LM_comp + anxdep_comp + Age + sexCode + Edu)
  230. tab_model(m.metamem.gen.cog.anx.noncog, m.metamem.ability.cog.anx.noncog, m.metamem.strat.cog.anx.noncog, digits = 2, show.stat = T, pred.labels = c("Intercept","Memory Ability", "Anxiety and Depression Symptoms", "Age", "Sex", "Education"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  231. ```
  232. ```{r MRI_struct_cleaning, warning=FALSE, message=FALSE}
  233. #subcortical volume estimates
  234. d.MRI.vol <- read_csv(MRI.vol.path) %>%
  235. mutate(Subject = parse_number(BABSID)) %>% select(-BABSID) %>%
  236. select(Subject, ends_with("Hippocampus"), ends_with("Amygdala"), ends_with("IntraCranialVol")) %>%
  237. rename(total_ICV = EstimatedTotalIntraCranialVol, HC_R = `Right-Hippocampus`, HC_L = `Left-Hippocampus`,
  238. amygdala_R = `Right-Amygdala`, amygdala_L = `Left-Amygdala`)
  239. #calculating slopes for volume adjustment
  240. ##Hippocamppus
  241. m.HC.R <- lm(data = d.MRI.vol, HC_R ~ total_ICV)
  242. m.HC.R.coef <- m.HC.R$coefficients %>% as_data_frame() %>% slice(2) %>% as.numeric()
  243. m.HC.L <- lm(data = d.MRI.vol, HC_L ~ total_ICV)
  244. m.HC.L.coef <- m.HC.L$coefficients %>% as_data_frame() %>% slice(2) %>% as.numeric()
  245. #adjusted subcortical volume estimates
  246. d.MRI.vol.adj <- d.MRI.vol %>%
  247. mutate(HC_L_slope = m.HC.L.coef,
  248. HC_R_slope = m.HC.R.coef,
  249. mean_total_ICV = mean(total_ICV),
  250. ICV_diff = total_ICV - mean_total_ICV,
  251. HC_L_vol_adj = HC_L - (HC_L_slope*ICV_diff),
  252. HC_R_vol_adj = HC_R - (HC_R_slope*ICV_diff),
  253. HC_bilateral_sum_adj = HC_L_vol_adj + HC_R_vol_adj,
  254. HC_bilateral_mean_adj = (HC_L_vol_adj + HC_R_vol_adj)/2)
  255. #cortical volume estimates
  256. d.LH.cort.vol <- read_csv(MRI.cort.vol.L.path) %>%
  257. mutate(Subject = parse_number(BABSID)) %>% select(-BABSID) %>%
  258. select(Subject, starts_with("lh_entorhinal")) %>%
  259. rename(EC_L = lh_entorhinal_volume)
  260. d.RH.cort.vol <- read_csv(MRI.cort.vol.R.path) %>%
  261. mutate(Subject = parse_number(BABSID)) %>% select(-BABSID) %>%
  262. select(Subject, starts_with("rh_entorhinal")) %>%
  263. rename(EC_R = rh_entorhinal_volume)
  264. d.MRI.all.vol.adj <- d.LH.cort.vol %>% inner_join(d.RH.cort.vol) %>% inner_join(d.MRI.vol.adj, by = "Subject")
  265. #calculating slopes for volume adjustment
  266. ##Hippocamppus
  267. m.ERC.R <- lm(data = d.MRI.all.vol.adj, EC_R ~ total_ICV)
  268. m.ERC.R.coef <- m.ERC.R$coefficients %>% as_data_frame() %>% slice(2) %>% as.numeric()
  269. m.ERC.L <- lm(data = d.MRI.all.vol.adj, EC_L ~ total_ICV)
  270. m.ERC.L.coef <- m.ERC.L$coefficients %>% as_data_frame() %>% slice(2) %>% as.numeric()
  271. d.MRI.all.vol.adj <- d.MRI.all.vol.adj %>%
  272. mutate(ERC_L_slope = m.ERC.L.coef,
  273. ERC_R_slope = m.ERC.R.coef,
  274. ERC_L_vol_adj = EC_L - (ERC_L_slope*ICV_diff),
  275. ERC_R_vol_adj = EC_R - (ERC_R_slope*ICV_diff),
  276. ERC_bilateral_sum_adj = ERC_L_vol_adj + ERC_R_vol_adj,
  277. ERC_bilateral_mean_adj = (ERC_L_vol_adj + ERC_R_vol_adj)/2)
  278. ```
  279. ## Figure 3: Hippocampal (but not entorhinal cortex) volume is positively related to memory ability, but not metamemory
  280. ```{r metacog_leq_deplms_gmvol, warning=FALSE, message=FALSE}
  281. #import tau data
  282. d.cog.meta.tau <- d.cog.meta.anx %>% inner_join(d.Tau, by = "Subject") %>% inner_join(d.MRI.all.vol.adj, by = "Subject") %>%
  283. mutate(Braak1 = scale(Braak1, center = T, scale = T),
  284. Braak2 = scale(Braak2, center = T, scale = T),
  285. ERC_bilateral_sum_adj = scale(ERC_bilateral_sum_adj, center = T, scale = T),
  286. HC_bilateral_sum_adj = scale(HC_bilateral_sum_adj, center = T, scale = T))
  287. #relationship between cognitive ability and gray matter volume
  288. m.LM.gm.EC <- lm(data = d.cog.meta.tau, LM_comp ~ ERC_bilateral_sum_adj + Age + sexCode + Edu)
  289. m.LM.gm.HC <- lm(data = d.cog.meta.tau, LM_comp ~ HC_bilateral_sum_adj + Age + sexCode + Edu)
  290. tab_model(m.LM.gm.EC, m.LM.gm.HC, digits = 2, show.stat = T, pred.labels = c("Intercept", "Entorhinal Volume","Age", "Sex", "Education", "Hippocampal Volume"), dv.labels = c("Memory Ability", "Memory Ability"), show.icc = F, show.re.var = F, show.obs = F)
  291. #relationship between metamemory and gray matter volume
  292. m.metamem.gm.EC <- lm(data = d.cog.meta.tau, metamem_comp ~ ERC_bilateral_sum_adj + Age + sexCode + Edu)
  293. m.metamem.gm.HC <- lm(data = d.cog.meta.tau, metamem_comp ~ HC_bilateral_sum_adj + Age + sexCode + Edu)
  294. #relationship between metamemory and gray matter volume controlling for anxiety and depression symptoms
  295. m.metamem.gm.EC.anx <- lm(data = d.cog.meta.tau, metamem_comp ~ ERC_bilateral_sum_adj + Age + sexCode + Edu + anxdep_comp)
  296. m.metamem.gm.HC.anx <- lm(data = d.cog.meta.tau, metamem_comp ~ HC_bilateral_sum_adj + Age + sexCode + Edu + anxdep_comp)
  297. tab_model(m.metamem.gm.EC, m.metamem.gm.HC,m.metamem.gm.EC.anx,m.metamem.gm.HC.anx, digits = 3, show.stat = T, pred.labels = c("Intercept", "Entorhinal Volume","Age", "Sex", "Education", "Hippocampal Volume", "Anxiety and Depression Symptoms"), dv.labels = c("Metamemory", "Metamemory", "Metamemory", "Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  298. #plot
  299. d.HC.plot <- get_datagrid(m.LM.gm.HC, by = c("HC_bilateral_sum_adj"), preserve_range = TRUE)
  300. HC.result <- estimate_relation(m.LM.gm.HC, include_random = F, data = d.HC.plot)
  301. fig.3a <- plot(HC.result,
  302. point = list(color = "plum", alpha = 0.4, size = 4),
  303. line = list(color = "plum4", size = 2),
  304. ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, x = "Hippocampal Volume (Z-Scored)", y = "Memory Ability (Z-Scored)")
  305. d.HC.metamem.plot <- get_datagrid(m.metamem.gm.HC.anx, by = c("HC_bilateral_sum_adj"), preserve_range = TRUE)
  306. HC.vol.result <- estimate_relation(m.metamem.gm.HC.anx, include_random = F, data = d.HC.metamem.plot)
  307. fig.3b <- plot(HC.vol.result,
  308. point = list(color = "plum", alpha = 0.4, size = 4),
  309. line = list(color = "plum4", size = 2),
  310. ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, x = "Hippocampal Volume (Z-Scored)", y = "Metamemory (Z-Scored)")
  311. fig.3 <- ggarrange(fig.3a, fig.3b)
  312. fig.3
  313. ```
  314. ```{r metacog_deplms_tau, warning=FALSE, message=FALSE}
  315. #relationship between cognitive ability and tau burden
  316. m.LM.tau.EC <- lm(data = d.cog.meta.tau, LM_comp ~ Braak1 + Age + sexCode + Edu)
  317. m.LM.tau.HC <- lm(data = d.cog.meta.tau, LM_comp ~ Braak2 + Age + sexCode + Edu)
  318. tab_model(m.LM.tau.EC, m.LM.tau.HC, digits = 2, show.stat = T, pred.labels = c("Intercept", "Entorhinal Tau", "Age", "Sex", "Education", "Hippocampal Tau"), dv.labels = c("Memory Ability", "Memory Ability"), show.icc = F, show.re.var = F, show.obs = F)
  319. ```
  320. ```{r anxdep_tau, warning=FALSE, message=FALSE}
  321. #relationship between anxiety and depression symptoms and tau burden
  322. m.anxdep.tau.EC <- lm(data = d.cog.meta.tau, anxdep_comp ~ Braak1 + Age + sexCode + Edu)
  323. m.anxdep.tau.HC <- lm(data = d.cog.meta.tau, anxdep_comp ~ Braak2 + Age + sexCode + Edu)
  324. tab_model(m.anxdep.tau.EC, m.anxdep.tau.HC, digits = 2, show.stat = T, pred.labels = c("Intercept", "Entorhinal Tau", "Age", "Sex", "Education", "Hippocampal Tau"), dv.labels = c("Anxiety and Depression Symptoms", "Anxiety and Depression Symptoms"), show.icc = F, show.re.var = F, show.obs = F)
  325. ```
  326. ## Cognitive items from GDS removed
  327. ```{r anxdep_tau_noncog, warning=FALSE, message=FALSE}
  328. d.cog.meta.tau.noncog <- d.cog.meta.anx.noncog %>% inner_join(d.Tau, by = "Subject") %>%
  329. inner_join(d.MRI.all.vol.adj, by = "Subject") %>%
  330. mutate(Braak1 = scale(Braak1, center = T, scale = T),
  331. Braak2 = scale(Braak2, center = T, scale = T),
  332. ERC_bilateral_sum_adj = scale(ERC_bilateral_sum_adj, center = T, scale = T),
  333. HC_bilateral_sum_adj = scale(HC_bilateral_sum_adj, center = T, scale = T))
  334. #relationship between anxiety and depression symptoms and tau burden
  335. m.anxdep.tau.EC <- lm(data = d.cog.meta.tau.noncog, anxdep_comp ~ Braak1 + Age + sexCode + Edu)
  336. m.anxdep.tau.HC <- lm(data = d.cog.meta.tau.noncog, anxdep_comp ~ Braak2 + Age + sexCode + Edu)
  337. tab_model(m.anxdep.tau.EC, m.anxdep.tau.HC, digits = 2, show.stat = T, pred.labels = c("Intercept", "Entorhinal Tau", "Age", "Sex", "Education", "Hippocampal Tau"), dv.labels = c("Anxiety and Depression Symptoms", "Anxiety and Depression Symptoms"), show.icc = F, show.re.var = F, show.obs = F)
  338. ```
  339. ## Figure 4: Anxiety and depression symptoms and hippocampal tau pathology interact to predict metamemory
  340. ```{r fig4, warning=FALSE, message=FALSE}
  341. #relationship between self-reported metacognition and tau
  342. m.metamem.tau.braak1 <- lm(data = d.cog.meta.tau, metamem_comp ~ LM_comp + anxdep_comp*Braak1 + ERC_bilateral_sum_adj + Age + sexCode + Edu)
  343. m.metamem.tau.braak2 <- lm(data = d.cog.meta.tau, metamem_comp ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  344. m.metamem.tau.braak1.psych <- lm(data = d.cog.meta.tau, metamem_comp ~ LM_comp + anxdep_comp*Braak1 + ERC_bilateral_sum_adj + Age + sexCode + Edu + hxCode)
  345. m.metamem.tau.braak2.psych <- lm(data = d.cog.meta.tau, metamem_comp ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu + hxCode)
  346. tab_model(m.metamem.tau.braak2, m.metamem.tau.braak2.psych, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Anxiety & Depression Symptoms", "Hippocampal Tau", "Hippocampal Volume", "Age", "Sex", "Education", "Anxiety and Depression Symptoms*Hippocampal Tau", "Psychiatric History"), dv.labels = c("Metamemory", "Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  347. #plot
  348. d.tau.plot <- get_datagrid(m.metamem.tau.braak2, by = c("anxdep_comp*Braak2"), preserve_range = TRUE, length = 5)
  349. tau.result <- estimate_relation(m.metamem.tau.braak2, include_random = F, data = d.tau.plot)
  350. fig.4 <- plot(tau.result,
  351. point = list(size = 3, alpha = 0.85),
  352. line = list(size = 1), ribbon = list(alpha = 0.2)) + theme_classic() + labs(title = NULL, x = "Anxiety and Depression Symptoms (Z-Scored)", y = "Metamemory (Z-Scored)", colour = "Hippocampal Tau Burden (Z-Scored)", fill = "Hippocampal Tau Burden (Z-Scored)")
  353. fig.4
  354. #testing for effects on metamemory across different domains
  355. m.metamem.gen.tau.braak2 <- lm(data = d.cog.meta.tau, Gen ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  356. m.metamem.ability.tau.braak2 <- lm(data = d.cog.meta.tau, Able ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  357. m.metamem.strat.tau.braak2 <- lm(data = d.cog.meta.tau, Strat ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  358. tab_model(m.metamem.gen.tau.braak2 ,m.metamem.ability.tau.braak2, m.metamem.strat.tau.braak2, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Anxiety and Depression Symptoms", "Hippocampal Tau", "Hippocampal Volume", "Age", "Sex", "Education", "Anxiety and Depression Symptoms*Hippocampal Tau"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  359. #testing for effects on metamemory across different domains controlling for psychiatric history
  360. m.metamem.gen.tau.braak2.psych <- lm(data = d.cog.meta.tau, Gen ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu + hxCode)
  361. m.metamem.ability.tau.braak2.psych <- lm(data = d.cog.meta.tau, Able ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu + hxCode)
  362. m.metamem.strat.tau.braak2.psych <- lm(data = d.cog.meta.tau, Strat ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu + hxCode)
  363. tab_model(m.metamem.gen.tau.braak2.psych, m.metamem.ability.tau.braak2.psych, m.metamem.strat.tau.braak2.psych, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Anxiety and Depression Symptoms", "Hippocampal Tau", "Hippocampal Volume", "Age", "Sex", "Education", "Psychiatric History", "Anxiety and Depression Symptoms*Hippocampal Tau"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  364. ```
  365. ### Cognitive items from GDS removed
  366. ```{r fig4_noncog, warning=FALSE, message=FALSE}
  367. #relationship between self-reported metacognition and tau
  368. m.metamem.tau.braak1 <- lm(data = d.cog.meta.tau.noncog, metamem_comp ~ LM_comp + anxdep_comp*Braak1 + ERC_bilateral_sum_adj + Age + sexCode + Edu)
  369. m.metamem.tau.braak2 <- lm(data = d.cog.meta.tau.noncog, metamem_comp ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  370. tab_model(m.metamem.tau.braak2, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Anxiety and Depression Symptoms [cognitive GDS items removed]", "Hippocampal Tau", "Hippocampal Volume", "Age", "Sex", "Education", "Anxiety and Depression Symptoms [cognitive GDS items removed]*Hippocampal Tau"), dv.labels = c("Metamemory"), show.icc = F, show.re.var = F, show.obs = F)
  371. #plot
  372. d.tau.plot <- get_datagrid(m.metamem.tau.braak2, by = c("anxdep_comp*Braak2"), preserve_range = TRUE, length = 5)
  373. tau.result <- estimate_relation(m.metamem.tau.braak2, include_random = F, data = d.tau.plot)
  374. fig.4 <- plot(tau.result,
  375. line = list(size = 1),
  376. point = list(size = 3, alpha = 0.85)) + theme_classic() + labs(title = NULL, x = "Anxiety and Depression Symptoms [cognitive GDS items removed]", y = "Metamemory", colour = "Hippocampal Tau Burden", fill = "Hippocampal Tau Burden")
  377. fig.4
  378. #testing for effects on metamemory across different domains
  379. m.metamem.gen.tau.braak2 <- lm(data = d.cog.meta.tau, Gen ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  380. m.metamem.ability.tau.braak2 <- lm(data = d.cog.meta.tau, Able ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  381. m.metamem.strat.tau.braak2 <- lm(data = d.cog.meta.tau, Strat ~ LM_comp + anxdep_comp*Braak2 + HC_bilateral_sum_adj + Age + sexCode + Edu)
  382. tab_model(m.metamem.gen.tau.braak2 ,m.metamem.ability.tau.braak2, m.metamem.strat.tau.braak2, digits = 2, show.stat = T, pred.labels = c("Intercept", "Memory Ability", "Anxiety and Depression Symptoms [cognitive GDS items removed]", "Hippocampal Tau", "Hippocampal Volume", "Age", "Sex", "Education", "Anxiety and Depression Symptoms [cognitive GDS items removed]*Hippocampal Tau"), dv.labels = c("Metamemory: Contentment", "Metamemory: Ability", "Metamemory: Strategy"), show.icc = F, show.re.var = F, show.obs = F)
  383. ```

BABS_metamem_MK.Rmd, no license · at the source

Overview

Authors: Jennifer L Crawford1, Alex A Adornato1, Johanna Matulonis1, Xi Chen2, Jacob M Hooker3, Anne S Berry1
  1. Department of Psychology, Brandeis University, Waltham, Massachusetts, USA
  2. Department of Psychology, Stony Brook University, Stony Brook, New York, USA
  3. Martinos Center for Biomedical Imaging, Massachusetts General Hospital, Charlestown, Massachusetts, USA
Institutions: Brandeis University (United States); Stony Brook University (United States); Massachusetts General Hospital (United States); Athinoula A. Martinos Center for Biomedical Imaging (United States)
Journal: Hippocampus, volume 36, issue 3, article e70100
Dates: received 17 November 2025; accepted 9 April 2026; published online 19 April 2026; in print May 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.1002/hipo.70100 · PMID 42002884 · PMCID PMC13092649 · OpenAlex W7154948550
Open access: hybrid, a free copy (OpenAlex)
Status: code verified
Categories: structural MRI / diffusion (modality), PET / SPECT (modality), human (organism), other condition (population), Alzheimer's / dementia (population), depression (population)
Methods: Statistics, fMRI & imaging
Keywords: gray matter volume, hippocampus, neuropsychiatric symptoms, self‐reported memory, tau pathology
MeSH: Aging*, Anxiety*, Depression*, Hippocampus*, Memory*, Metacognition*, Aged, Aged, 80 and over, Female, Humans, Magnetic Resonance Imaging, Male, Middle Aged, Neuropsychological Tests, Positron-Emission Tomography, tau Proteins (* major topic)
Topic: Memory Processes and Influences (Cognitive Neuroscience, Neuroscience), according to OpenAlex
Funding: NIA NIH HHS (F32-AG085890, R01-AG074330, F32 AG085890, R01 AG074330); NINDS NIH HHS (T32-NS007292); National Institute on Aging (R01‐AG074330, F32‐AG085890); National Institute of Neurological Disorders and Stroke (T32‐NS007292)
Citations: not cited yet (Europe PMC); 81 references in the paper
Research resources: RRID:SCR_001847, RRID:SCR_002438, which is based on Nipype 1.8.5 RRID:SCR_002502, RRID:SCR_002823, distributed with ANTs 2.3.3 RRID:SCR_004757, RRID:SCR_008796, RRID:SCR_016216

Abstract

The ability to remember (i.e., memory ability) and to accurately discern memory function (i.e., metamemory) are both important facets of cognition. In the present study, we examined the shared and distinct sources of variance across memory ability and metamemory using psychometrically validated measures of memory ability, metamemory, and anxiety and depression symptoms in conjunction with multimodal imaging (i.e., structural MRI, tau PET) in a sample of cognitively normal older adults (N = 72). Replicating a growing body of work, we found that metamemory was more tightly linked to anxiety and depression symptoms relative to objective measures of memory ability. Our results also revealed that the hippocampus was a critical locus of both memory ability and metamemory—hippocampal volume was positively associated with memory ability, but not metamemory, whereas increased hippocampal tau pathology exacerbated the negative effect of anxiety and depression symptoms on metamemory. Importantly, we also found that after controlling for anxiety and depression symptoms and tau burden, there was a positive association between memory ability and metamemory. Our findings also demonstrated the importance of assessing different facets of metamemory; self‐reported memory contentment and ability, but not strategy use, showed the strongest relationships with both anxiety and depression symptoms and hippocampal tau burden. Together, these results suggest that both shared and distinct mechanisms underlie memory ability and metamemory processes in older adults. Chiefly, this work highlights the potential of metamemory measures as sensitive tools to understand affective processes that occur in both healthy and pathological aging, independent of memory ability.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 5 matches between paragraphs and lines of code.

OSF 6et32

License: none: the authors keep all their rights
State: the link answers, verified on 28 September 2026
Evidence: files inventoried
Languages: R (2)
Size: 5 files, 2 scripts
Software Heritage: not checked
Found in: “Data Availability Statement”
Holds: 2 notebooks
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: easystats (2 files), ggpubr (2 files), tidyverse (2 files), ggplot2 (1 file), psych (1 file)
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
  • 28 September 2026: the link answers (HTTP 200)
2 files
At the source: osf.io/6et32

The paper's code and data availability statement is in the Data section.

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 2 scripts, each with its path and the digest of its content;
  • 5 matches between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

No dataset and no data link were found in the paper.

Data Availability Statement

All data and analysis code are publicly available on the Open Science Framework: https://osf.io/6et32. Supporting Information provide additional descriptions and auxiliary analyses.

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 2, 28 September 2026

  • Publisher: n/a → Wiley

Version 1, 28 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 6 authors, 5 keywords, 16 MeSH terms, 4 funders, 78 references, 7 RRIDs.

Cite

This paper

Crawford, J. L., Adornato, A. A., Matulonis, J., Chen, X., Hooker, J. M., & Berry, A. S. (2026). Dissociable Mechanisms Underlie Differences Between Memory and Metamemory in Older Adults: The Differentiating Role of Anxiety and Depression Symptoms. Hippocampus, 36(3), e70100. https://doi.org/10.1002/hipo.70100

BibTeX

@article{crawford2026dissociable,
author = {Crawford, Jennifer L and Adornato, Alex A and Matulonis, Johanna and Chen, Xi and Hooker, Jacob M and Berry, Anne S},
title = {{Dissociable Mechanisms Underlie Differences Between Memory and Metamemory in Older Adults: The Differentiating Role of Anxiety and Depression Symptoms}},
journal = {Hippocampus},
year = {2026},
month = may,
volume = {36},
number = {3},
pages = {e70100},
publisher = {Wiley},
issn = {1050-9631},
doi = {10.1002/hipo.70100},
url = {https://doi.org/10.1002/hipo.70100},
pmid = {42002884},
pmcid = {PMC13092649}
}

RIS

TY - JOUR
AU - Crawford, Jennifer L
AU - Adornato, Alex A
AU - Matulonis, Johanna
AU - Chen, Xi
AU - Hooker, Jacob M
AU - Berry, Anne S
TI - Dissociable Mechanisms Underlie Differences Between Memory and Metamemory in Older Adults: The Differentiating Role of Anxiety and Depression Symptoms
T2 - Hippocampus
J2 - Hippocampus
PY - 2026
DA - 2026/05/01
VL - 36
IS - 3
SP - e70100
SN - 1050-9631
PB - Wiley
DO - 10.1002/hipo.70100
UR - https://doi.org/10.1002/hipo.70100
LA - en
ER -

CSL-JSON

{
"id": "10.1002/hipo.70100",
"type": "article-journal",
"title": "Dissociable Mechanisms Underlie Differences Between Memory and Metamemory in Older Adults: The Differentiating Role of Anxiety and Depression Symptoms",
"container-title": "Hippocampus",
"author": [
{
"family": "Crawford",
"given": "Jennifer L"
},
{
"family": "Adornato",
"given": "Alex A"
},
{
"family": "Matulonis",
"given": "Johanna"
},
{
"family": "Chen",
"given": "Xi"
},
{
"family": "Hooker",
"given": "Jacob M"
},
{
"family": "Berry",
"given": "Anne S"
}
],
"container-title-short": "Hippocampus",
"volume": "36",
"issue": "3",
"page": "e70100",
"DOI": "10.1002/hipo.70100",
"PMID": "42002884",
"PMCID": "PMC13092649",
"ISSN": "1050-9631",
"publisher": "Wiley",
"URL": "https://doi.org/10.1002/hipo.70100",
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
1
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.1016/j.neurobiolaging.2026.06.012 [code]
Brain structure in the cingulate cortex and locus coeruleus in late life is associated with engagement in complex mental activities across the life span.
Journal: Neurobiology of aging
In common: easystats, ggpubr, tidyverse, PET / SPECT, structural MRI / diffusion, 12 references, author Jennifer L. Crawford
[2] doi:10.1126/sciadv.aee2305 [code]
Prediction of mild cognitive impairment progression using time-sensitive multimodal biomarkers.
Journal: Science advances
In common: easystats, ggpubr, ggplot2, 1 other tool, PET / SPECT, Alzheimer's / dementia, structural MRI / diffusion, 4 references
[3] doi:10.1162/imag.a.1325 [code]
Decoding everyday levels of musical training from subcortical white-matter architecture.
Journal: Imaging neuroscience (Cambridge, Mass.)
In common: psych, ggpubr, ggplot2, 1 other tool, structural MRI / diffusion, 6 references
[4] doi:10.1002/hbm.70512 [code]
Precision Imaging for Intraindividual Investigation of the Reward Response.
Journal: Human brain mapping
In common: psych, easystats, ggplot2, 1 other tool, 3 references
[5] doi:10.1093/braincomms/fcag279 [code]
Network flexibility facilitates treatment-induced recovery in post-stroke aphasia.
Journal: Brain communications
In common: psych, easystats, ggpubr, 2 other tools, 2 references
[6] doi:10.1038/s41398-026-04010-9 [code]
Bullying victimization and brain development: a longitudinal structural magnetic resonance imaging study from adolescence to early adulthood.
Journal: Translational psychiatry
In common: psych, easystats, ggpubr, 2 other tools, structural MRI / diffusion, 1 reference
[7] doi:10.1038/s41531-026-01360-5 [code]
Hippocampal atrophy in untreated de novo Parkinson's disease with obstructive sleep apnea.
Journal: NPJ Parkinson's disease
In common: psych, easystats, ggpubr, 2 other tools, structural MRI / diffusion, 1 reference
[8] doi:10.1093/geront/gnaf277 [code]
What characterizes the exceptional cognition of superagers? A systematic review of multidomain biomarkers of successful cognitive aging.
Journal: The Gerontologist
In common: ggpubr, ggplot2, tidyverse, PET / SPECT, structural MRI / diffusion, 2 references
[9] doi:10.1038/s41467-026-73072-6 [code]
Mapping the spatiotemporal continuum of structural connectivity development across the human connectome in youth.
Journal: Nature communications
In common: psych, easystats, ggplot2, 1 other tool, structural MRI / diffusion, 2 references
[10] doi:10.7554/elife.103097 [code]
Canonical neurodevelopmental trajectories of structural and functional manifolds.
Journal: eLife
In common: ggpubr, ggplot2, tidyverse, structural MRI / diffusion, 4 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.

Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.