OSCR

Integration of aged brain multi-omics reveals cross-system mechanisms underlying Alzheimer's disease heterogeneity.

Code ↔ Paper

12 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 12 matches · 3 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
  1. [1] § STAR★METHODS › EXPERIMENTAL MODEL AND STUDY PARTICIPANT DETAILS › Clinical and neuropathological evaluations ↔ 4.Phenotypes_analysis/2.F14_with_and_without_proteomics.R, lines 226–291 · score 0.93 · major depressive disorder, depressive symptoms, Lewy bodies, NIA Reagan, vascular pathologies, cognitive decline
  2. [2] § STAR★METHODS › METHOD DETAILS › Gene Set Enrichment Analysis (GSEA) ↔ 2.GSEA_analysis/1.Modules_GSEA_list.R, the whole file · a weak match · score 0.77 · plaque induced genes, associated microglia, DAM, HAM, PIGs, GSEA
  3. [3] § RESULTS › Discordant immune-related functions modulate the protective effects of factors 2 and 3 ↔ 2.GSEA_analysis/3.GSEA_top_terms_for_each_view.R, lines 179–227 · score 0.77 · Ast.5, Mic.4, Mic.7, OPC.3, pathways, cell
  4. [4] § STAR★METHODS › EXPERIMENTAL MODEL AND STUDY PARTICIPANT DETAILS › Cognitive function and Alzheimer’s dementia ↔ 4.Phenotypes_analysis/2.F14_with_and_without_proteomics.R, lines 120–178 · score 0.76 · Lewy body disease, cognitive resilience, vascular pathologies, cognitive decline, infarcts, dementia
  5. [5] § RESULTS › Identification of multi-omics molecular subtypes of AD ↔ 4.Phenotypes_analysis/2.F14_with_and_without_proteomics.R, lines 120–178 · score 0.71 · NIA Reagan scores, cerebral infarctions, cognitive decline, instrumental activities, daily living, gross
  6. [6] § RESULTS › Factor 8 emerges as a key disease multi-omics unifier ↔ 2.GSEA_analysis/4.Factors_characterization.R, lines 54–93 · score 0.71 · topologically incorrect proteins, heat shock, HSF1, folding, stress, cytoskeletal
  7. [7] § STAR★METHODS › METHOD DETAILS › Gene Set Enrichment Analysis (GSEA) ↔ 2.GSEA_analysis/3.GSEA_top_terms_for_each_view.R, lines 322–379 · score 0.70 · reduceSimMatrix, reduce term redundancy, msigdbr, threshold, Reactome, GSEA
  8. [8] § STAR★METHODS › EXPERIMENTAL MODEL AND STUDY PARTICIPANT DETAILS › Cognitive function and Alzheimer’s dementia ↔ 6.Manuscript_code/Supplementary_tables.R, lines 147–206 · score 0.64 · AD dementia, impairment, SD, status, neurofibrillary, resilience
  9. [9] § RESULTS › Additional factors reveal complex molecular mechanisms involved in AD ↔ 2.GSEA_analysis/1.Modules_GSEA_list.R, the whole file · a weak match · score 0.59 · extracellular matrix, heat shock, ribosome, transcriptomics, modules, protein
  10. [10] § RESULTS › MOFA of the aging human brain ↔ 1.MOFA_analysis/3.Samples_overview.R, the whole file · a weak match · score 0.56 · H3K9ac, PCG, proteomics, DLPFC, metabolomics, MOFA
  11. [11] § RESULTS › Additional factors reveal complex molecular mechanisms involved in AD ↔ 2.GSEA_analysis/3.GSEA_top_terms_for_each_view.R, lines 179–227 · score 0.56 · Peri.2, SMC.2, arteriole, pathways, cell
  12. [12] § RESULTS › Identification of AD-associated factors ↔ 2.GSEA_analysis/4.Factors_characterization.R, lines 139–193 · score 0.52 · RNA processing, lowest, synapses, proteostasis, ribosomes, cytoskeleton

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 · 291 lines · 14 KB · GPL-2.0 · 3 matches

  1. library(MOFA2)
  2. library(reshape2)
  3. library(stringr)
  4. library(circlize)
  5. library(RColorBrewer)
  6. library(ComplexHeatmap)
  7. library(tidyverse)
  8. # Function to add asterisks to significant terms
  9. my_cell_fun = function(j, i, x, y, width, height, fill, table_1) {
  10. if(!is.na(table_1[i, j]) & abs(table_1[i, j]) > -log10(0.001)) {
  11. grid.text("***", x, y, gp = gpar(fontsize = 12), vjust = 0.77)
  12. } else if(!is.na(table_1[i, j]) & abs(table_1[i, j]) > -log10(0.01)) {
  13. grid.text("**", x, y, gp = gpar(fontsize = 12), vjust = 0.77)
  14. } else if(!is.na(table_1[i, j]) & abs(table_1[i, j]) > -log10(0.05)) {
  15. grid.text("*", x, y, gp = gpar(fontsize = 12), vjust = 0.77)
  16. }
  17. }
  18. # Retriving omics and cell type data
  19. rna_AC = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/rnaseq_bulk_AC.rds")
  20. rna_DLPF = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/rnaseq_bulk_DLPFC.rds")
  21. rna_PCG = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/rnaseq_bulk_PCG.rds")
  22. tmt = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/dlpfc_tmt.rds")
  23. acetil = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/histoneAcetylation_H3K9ac.rds")
  24. metabol = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/brain_metabolomics.rds")
  25. load("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/sn_RNA_norm.RDATA") #cell_types (sn_RNA_norm)
  26. # Utils
  27. source("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Figuras_MOFA/Scripts/covars/util_covar.R")
  28. # Retrieving participants phenotypes data
  29. phenotypes = readRDS("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/basic_Apr2022_selected_list_Jul2024.rds")
  30. load("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/pheno_list_Jul2024.RData")
  31. # Retrieving MOFA
  32. load("C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Raw_data/mofas/standart_50f.RDATA")
  33. # Checking if samples are in the same order
  34. phenotype_dt = phenotypes[match(mofa@samples_metadata$sample, rownames(phenotypes)), ]
  35. identical(rownames(phenotype_dt), mofa@samples_metadata$sample)
  36. samples_metadata(mofa) <- samples_metadata(mofa) %>% left_join(phenotype_dt %>% rownames_to_column("projid"),by = c("sample"="projid"))
  37. rownames(samples_metadata(mofa)) = samples_metadata(mofa)$sample
  38. # MOFAs Z matrix
  39. mofa_factors = mofa@expectations$Z$group1 %>% as.data.frame()
  40. ####################################################################################################################################################
  41. all_samples <- unique(c(colnames(rna_AC),colnames(rna_DLPF),colnames(rna_PCG),colnames(acetil),colnames(tmt),colnames(metabol),colnames(sn_RNA_norm)))
  42. prot_samples <- intersect(colnames(tmt),all_samples)
  43. except_prot_samples <- setdiff(all_samples,prot_samples)
  44. set.seed(123)
  45. subset_except_prot <- sample(except_prot_samples, length(prot_samples))
  46. phenotype_prot <- phenotype_dt[prot_samples,]
  47. phenotype_except_prot <- phenotype_dt[subset_except_prot,]
  48. selected_factors = paste0("Factor",c(14))
  49. mofa_F14 = mofa_factors[,selected_factors, drop = FALSE]
  50. mofa_prot <- mofa_F14[prot_samples,,drop=FALSE]
  51. mofa_except_prot <- mofa_F14[subset_except_prot,,drop = FALSE]
  52. ################################################################################################################################################
  53. # Performing linear regressions (adjusted by age of death, sex and years of education)
  54. res_test = run_module_trait_association(data4linear_reg = mofa_prot,
  55. phenotype_dt = phenotype_prot,
  56. pheno_list = pheno_list,
  57. covariates = c("age_death","msex","educ"),
  58. verbose = F)
  59. res_beta <- res_test$matrix_beta
  60. # Adjusting P-values by all phenotypes together
  61. matrix_pvalue = res_test$matrix_pvalue
  62. adj_matrix_pvalue = matrix(p.adjust(as.vector(as.matrix(matrix_pvalue)), method='fdr'),ncol=ncol(matrix_pvalue))
  63. dimnames(adj_matrix_pvalue) = dimnames(matrix_pvalue)
  64. # Converting adjusted p-values to signed -log10 scale and transposing the matrix
  65. res_pvalues <- -log10(adj_matrix_pvalue)
  66. res_pvalues <- res_pvalues * sign(res_beta)
  67. res_pvalues <- t(res_pvalues)
  68. # Adjusting heatmap colors
  69. abs_max_logP = max(abs(res_pvalues), na.rm = T)
  70. coll <- colorRamp2(quantile(c(abs_max_logP, -abs_max_logP)),
  71. c("#0571B0", "#92C5DE", "#F7F7F7", "#F4A582", "#CA0020"))
  72. # Creating column annotations for heatmap
  73. column_annotation = data.frame(pheno_label = colnames(res_pvalues))
  74. column_annotation %>% left_join(pheno_data %>% rownames_to_column("pheno_label")) %>%
  75. dplyr::select(category, pheno_label, description) %>%
  76. column_to_rownames("pheno_label") -> column_annotation
  77. col_pal = RColorBrewer::brewer.pal(n = length(unique(column_annotation$category)), name ="Dark2")
  78. names(col_pal) = sort(unique(column_annotation$category))
  79. col_pal = c(Cognition="#66A61E",
  80. Pathology="#E6AB02",
  81. `Vascular Pathology`="#A6761D",
  82. Motor="#7570B3",
  83. Disabilities="#1B9E77",
  84. Depression="#D95F02",
  85. Genetics="#E7298A")
  86. column_order = order(column_annotation$description)
  87. column_annotation = column_annotation[column_order,,drop=F]
  88. col_ha = columnAnnotation(`Category` = column_annotation$category,
  89. col = list(`Category` = col_pal),
  90. height = unit(0.3,"mm"),
  91. annotation_height = unit(0.3, "mm"),
  92. simple_anno_size = unit(2, "mm"),
  93. annotation_label = " "
  94. )
  95. # Rearanging column and row orders for 'res_pvalues'
  96. res_pvalues = res_pvalues[,column_order, drop = FALSE]
  97. res_pvalues = res_pvalues[gtools::mixedorder(rownames(res_pvalues), decreasing = T),,drop = FALSE]
  98. colnames(res_pvalues) = column_annotation$description
  99. col_split = SetNames(column_annotation$category, column_annotation$category)
  100. # Abbreviating Depression to Depres.
  101. col_split_char <- as.character(col_split)
  102. col_split_char <- sub("Depression", "Depres.", col_split_char)
  103. col_split <- factor(col_split_char, levels = c("Cognition","Pathology","Vascular Pathology", "Motor","Disabilities", "Depres.","Genetics"))
  104. # Renaming some covariates
  105. colnames(res_pvalues)[colnames(res_pvalues) == "AD NIA-Reagan score"] <- "NIA-Reagan score"
  106. colnames(res_pvalues)[colnames(res_pvalues) == "Depressive symptoms (CES-D)"] <- "Depressive symptoms (mCES-D)"
  107. colnames(res_pvalues)[colnames(res_pvalues) == "Basic activities of daily living (ADL) "] <- "Basic activities of daily living"
  108. colnames(res_pvalues)[colnames(res_pvalues) == "Instrumental activities of daily living (IADL)"] <- "Instrumental activities of daily living"
  109. colnames(res_pvalues)[colnames(res_pvalues) == 'Cognitive decline'] <- 'Cognitive decline (slope)'
  110. colnames(res_pvalues)[colnames(res_pvalues) == 'Cognitive resilience'] <- 'Cognitive resilience (slope)'
  111. colnames(res_pvalues)[colnames(res_pvalues) == "Alzheimer's Dementia"] <- "Alzheimer's dementia"
  112. colnames(res_pvalues)[colnames(res_pvalues) == "Beta-Amyloid"] <- "Beta-amyloid"
  113. colnames(res_pvalues)[colnames(res_pvalues) == "Lewy Body disease"] <- "Lewy body disease"
  114. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Atherosclerosis"] <- "Cerebral atherosclerosis"
  115. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Infarctions (Gross)"] <- "Cerebral infarctions (Gross)"
  116. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Infarctions (Micro)"] <- "Cerebral infarctions (Micro)"
  117. colnames(res_pvalues)[colnames(res_pvalues) == "Major Depressive Disorder"] <- "Major depressive disorder"
  118. ht_opt$TITLE_PADDING = unit(c(4,4), "points")
  119. rownames(res_pvalues) <- 'Factor 14 \nn = 596'
  120. # Heatmap
  121. prot_heat <- Heatmap(
  122. res_pvalues,
  123. cell_fun = function(j, i, x, y, width, height, fill) {
  124. my_cell_fun(j, i, x, y, width, height, fill, res_pvalues)
  125. },
  126. heatmap_legend_param = list(
  127. col_fun = coll,
  128. title = bquote(-log[10](adj.~italic(P))~(signed)),
  129. title_position = "leftcenter-rot",
  130. legend_height = unit(4, "cm") ),
  131. #column_title = "Association of Factors and Phenotypes",
  132. col = coll,
  133. column_split = col_split,
  134. column_title_gp = gpar(
  135. fill = SetNames(rep("white",length(column_annotation$category)), column_annotation$category),
  136. alpha = 1,
  137. fontsize = 8
  138. ),
  139. row_names_side = "left", show_row_names = T,
  140. cluster_rows = F, cluster_columns = F,
  141. column_names_rot = 55,
  142. column_names_gp = gpar(fontsize = 8.5),
  143. row_names_gp = gpar(fontsize = 9),
  144. bottom_annotation = col_ha,
  145. show_row_dend = F, show_column_dend = F,
  146. rect_gp = gpar(col = "black", lwd = 1))
  147. ###################################################################################################################################################
  148. # Performing linear regressions (adjusted by age of death, sex and years of education)
  149. res_test = run_module_trait_association(data4linear_reg = mofa_except_prot,
  150. phenotype_dt = phenotype_except_prot,
  151. pheno_list = pheno_list,
  152. covariates = c("age_death","msex","educ"),
  153. verbose = F)
  154. res_beta <- res_test$matrix_beta
  155. # Adjusting P-values by all phenotypes together
  156. matrix_pvalue = res_test$matrix_pvalue
  157. adj_matrix_pvalue = matrix(p.adjust(as.vector(as.matrix(matrix_pvalue)), method='fdr'),ncol=ncol(matrix_pvalue))
  158. dimnames(adj_matrix_pvalue) = dimnames(matrix_pvalue)
  159. # Converting adjusted p-values to signed -log10 scale and transposing the matrix
  160. res_pvalues <- -log10(adj_matrix_pvalue)
  161. res_pvalues <- res_pvalues * sign(res_beta)
  162. res_pvalues <- t(res_pvalues)
  163. # Creating column annotations for heatmap
  164. column_annotation = data.frame(pheno_label = colnames(res_pvalues))
  165. column_annotation %>% left_join(pheno_data %>% rownames_to_column("pheno_label")) %>%
  166. dplyr::select(category, pheno_label, description) %>%
  167. column_to_rownames("pheno_label") -> column_annotation
  168. col_pal = RColorBrewer::brewer.pal(n = length(unique(column_annotation$category)), name ="Dark2")
  169. names(col_pal) = sort(unique(column_annotation$category))
  170. col_pal = c(Cognition="#66A61E",
  171. Pathology="#E6AB02",
  172. `Vascular Pathology`="#A6761D",
  173. Motor="#7570B3",
  174. Disabilities="#1B9E77",
  175. Depression="#D95F02",
  176. Genetics="#E7298A")
  177. column_order = order(column_annotation$description)
  178. column_annotation = column_annotation[column_order,,drop=F]
  179. col_ha = columnAnnotation(`Category` = column_annotation$category,
  180. col = list(`Category` = col_pal),
  181. height = unit(0.3,"mm"),
  182. annotation_height = unit(0.3, "mm"),
  183. simple_anno_size = unit(2, "mm"),
  184. annotation_label = " "
  185. )
  186. # Rearanging column and row orders for 'res_pvalues'
  187. res_pvalues = res_pvalues[,column_order, drop = FALSE]
  188. res_pvalues = res_pvalues[gtools::mixedorder(rownames(res_pvalues), decreasing = T),,drop = FALSE]
  189. colnames(res_pvalues) = column_annotation$description
  190. col_split = SetNames(column_annotation$category, column_annotation$category)
  191. # Abbreviating Depression to Depres.
  192. col_split_char <- as.character(col_split)
  193. col_split_char <- sub("Depression", "Depres.", col_split_char)
  194. col_split <- factor(col_split_char, levels = c("Cognition","Pathology","Vascular Pathology", "Motor","Disabilities", "Depres.","Genetics"))
  195. # Renaming some covariates
  196. colnames(res_pvalues)[colnames(res_pvalues) == "AD NIA-Reagan score"] <- "NIA-Reagan score"
  197. colnames(res_pvalues)[colnames(res_pvalues) == "Depressive symptoms (CES-D)"] <- "Depressive symptoms (mCES-D)"
  198. colnames(res_pvalues)[colnames(res_pvalues) == "Basic activities of daily living (ADL) "] <- "Basic activities of daily living"
  199. colnames(res_pvalues)[colnames(res_pvalues) == "Instrumental activities of daily living (IADL)"] <- "Instrumental activities of daily living"
  200. colnames(res_pvalues)[colnames(res_pvalues) == 'Cognitive decline'] <- 'Cognitive decline (slope)'
  201. colnames(res_pvalues)[colnames(res_pvalues) == 'Cognitive resilience'] <- 'Cognitive resilience (slope)'
  202. colnames(res_pvalues)[colnames(res_pvalues) == "Alzheimer's Dementia"] <- "Alzheimer's dementia"
  203. colnames(res_pvalues)[colnames(res_pvalues) == "Beta-Amyloid"] <- "Beta-amyloid"
  204. colnames(res_pvalues)[colnames(res_pvalues) == "Lewy Body disease"] <- "Lewy body disease"
  205. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Atherosclerosis"] <- "Cerebral atherosclerosis"
  206. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Infarctions (Gross)"] <- "Cerebral infarctions (Gross)"
  207. colnames(res_pvalues)[colnames(res_pvalues) == "Cerebral Infarctions (Micro)"] <- "Cerebral infarctions (Micro)"
  208. colnames(res_pvalues)[colnames(res_pvalues) == "Major Depressive Disorder"] <- "Major depressive disorder"
  209. ht_opt$TITLE_PADDING = unit(c(4,4), "points")
  210. rownames(res_pvalues) <- 'Factor 14 \nn = 596'
  211. # Heatmap
  212. except_heat <- Heatmap(
  213. res_pvalues,
  214. cell_fun = function(j, i, x, y, width, height, fill) {
  215. my_cell_fun(j, i, x, y, width, height, fill, res_pvalues)
  216. },
  217. heatmap_legend_param = list(
  218. col_fun = coll,
  219. title = bquote(-log[10](adj.~italic(P))~(signed)),
  220. title_position = "leftcenter-rot",
  221. legend_height = unit(4, "cm") ),
  222. col = coll,
  223. column_split = col_split,
  224. column_title_gp = gpar(
  225. fill = SetNames(rep("white",length(column_annotation$category)), column_annotation$category),
  226. alpha = 1,
  227. fontsize = 8
  228. ),
  229. row_names_side = "left", show_row_names = T,
  230. cluster_rows = F, cluster_columns = F,
  231. column_names_rot = 55,
  232. column_names_gp = gpar(fontsize = 8.5),
  233. row_names_gp = gpar(fontsize = 9),
  234. bottom_annotation = col_ha,
  235. show_row_dend = F, show_column_dend = F,
  236. rect_gp = gpar(col = "black", lwd = 1))
  237. prot_heat %v% except_heat
  238. pdf(file = "C:/Users/User/Documents/Drive_PC/Lucas/GitHub/ROSMAP-MOFA/MOFA_real/Figuras_MOFA/pre_inkscape/geral/covars_with_and_without_proteomics.pdf",
  239. width =11.5,
  240. height = 4)
  241. prot_heat %v% except_heat
  242. dev.off()

2.F14_with_and_without_proteomics.R at commit 356f0e2, under GPL-2.0 · at the source

Overview

Authors: Lucas P. Scheidemantel1, Katia de Paiva Lopes1,2, Chris Gaiteri2,3, Vilas Menon4, Philip L. De Jager4, Julie A. Schneider2, Aron S. Buchman2, Yanling Wang2, Shinya Tasaki2, Roberto T. Raittz1, David A. Bennett2, Ricardo A. Vialle1,2,5
  1. Laboratory of Artificial Intelligence Applied to Bioinformatics, Professional and Technological Education Sector (SEPT), Federal University of Parana, Curitiba 81520-260, Brazil
  2. Rush Alzheimer’s Disease Center, Rush University Medical Center, Chicago, IL 60612, USA
  3. Department of Psychiatry, SUNY Upstate Medical University, Syracuse, NY 13210, USA
  4. Center for Translational and Computational Neuroimmunology, Department of Neurology, Columbia University Irving Medical Center, New York, NY 10032, USA
  5. Lead contact
Journal: Cell reports, volume 45, issue 4, article 117235
Dates: published online 7 April 2026; in print April 2026
Type: Research article · Language: English
License: CC BY-NC
Identifiers: DOI 10.1016/j.celrep.2026.117235 · PMID 41950003 · PMCID PMC13244359 · OpenAlex W4414449626
Open access: gold, a free copy (OpenAlex)
Status: code verified
Categories: genetics / omics (modality), Alzheimer's / dementia (population), cellular / molecular (subfield)
Methods: Statistics, Smoothing, state filtering, decompositions, Machine learning, Preprocessing, Connectivity, Physiology & signal measures
Keywords: Biomarkers, Alzheimer’s disease, Molecular Subtypes, Multi-omics Integration, Mofa, Cp: Neuroscience
Topic: Bioinformatics and Genomic Networks (Molecular Biology, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: Rush University; NIA NIH HHS (R01 AG015819, P30 AG010161, R01 AG017917, P30 AG072975, U01 AG061356, U01 AG046152, U01 AG079847); Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (RC2AG036547, R01AG36836); National Institute on Aging (U01AG079847, U01AG46152, U01AG61356, P30AG72975, R01AG17917, P30AG10161, R01AG15819); Illinois Department of Public Health; Translational Genomics Research Institute
Citations: cited by 1 paper (Europe PMC); 126 references in the paper

Abstract

The molecular correlates of Alzheimer’s disease (AD) are increasingly being defined by multi-omics. However, findings from different data types are often difficult to reconcile. Here, we apply a data-driven multi-omics framework integrating seven omics layers from up to 1,358 aged human brain samples from the Religious Orders Study and Rush Memory and Aging Project. We demonstrate sprawling cross-omics biological factors relating to AD phenotypes. The strongest AD-associated factor (factor 8) is characterized by elevated immune activity at the epigenetic level, decreased heat shock gene expression in the transcriptome, and disrupted energy metabolism and cytoskeletal dynamics in the proteome. Unsupervised clustering reveals 11 molecular subtypes, including three AD-associated clusters displaying distinct molecular signatures and phenotypic characteristics. Our findings provide a comprehensive map of molecular mechanisms underlying AD heterogeneity, highlighting neuroinflammatory processes and yielding potential biomarkers and therapeutic targets for precision medicine approaches.

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

Repositories

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

Zenodo 18842083

License: GPL-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: “Data and code availability”
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: tidyverse (18 files), reshape2 (10 files), circlize (9 files), ComplexHeatmap (8 files), ggplot2 (8 files), ggpubr (3 files), patchwork (2 files), clusterProfiler (1 file), data.table (1 file), rstatix (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
  • 29 September 2026: the link answers (HTTP 200)
23 files

RushAlz/ROSMAP_MOFA_public_release

License: GPL-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Commit: 356f0e25ba1d73126a32881a61589fd88f6658de, 28 April 2026
Languages: R (21)
Size: 38 files, 21 scripts
Software Heritage: not archived
Found in: the text, “ADDITIONAL RESOURCES”
Holds: README, license file
Not found: CITATION.cff, environment file, tests, continuous integration, documentation
Tools: tidyverse (18 files), reshape2 (10 files), circlize (9 files), ComplexHeatmap (8 files), ggplot2 (8 files), ggpubr (3 files), patchwork (2 files), clusterProfiler (1 file), data.table (1 file), rstatix (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers
  • 29 September 2026: the link answers
23 files

Zenodo 18842084

License: GPL-2.0
State: the link answers, verified on 29 September 2026
Evidence: files inventoried
Size: 1 file
Software Heritage: not checked
Found in: DataCite
Not found: README, license file, CITATION.cff, environment file, tests, continuous integration, documentation
Tools: tidyverse (18 files), reshape2 (10 files), circlize (9 files), ComplexHeatmap (8 files), ggplot2 (8 files), ggpubr (3 files), patchwork (2 files), clusterProfiler (1 file), data.table (1 file), rstatix (1 file)
Availability: 1 check, the latest on 29 September 2026: the link answers (HTTP 200)
  • 29 September 2026: the link answers (HTTP 200)
23 files

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:

  • 3 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 63 scripts, each with its path and the digest of its content;
  • 12 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 and code availability

This paper analyzes existing previously published data. Raw data used in this article are available through the AD Knowledge Portal (https://adknowledgeportal.org). Accession numbers are listed in the key resources table.

The ROS/MAP phenotype data can be requested at the RADC Resource Sharing Hub. The URL is listed in the key resources table.

All original code has been deposited at Zenodo and is publicly available at https://doi.org/10.5281/zenodo.18842083 as of the date of publication.

Any additional information required to reanalyze the data reported in this paper is available from the lead contact upon request.

Reproduced under the paper's license (CC BY-NC), 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 1, 29 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 12 authors, 6 keywords, 6 funders, 125 references.

Cite

This paper

Scheidemantel, L. P., Lopes, K. d. P., Gaiteri, C., Menon, V., De Jager, P. L., Schneider, J. A., Buchman, A. S., Wang, Y., Tasaki, S., Raittz, R. T., Bennett, D. A., & Vialle, R. A. (2026). Integration of aged brain multi-omics reveals cross-system mechanisms underlying Alzheimer's disease heterogeneity. Cell reports, 45(4), 117235. https://doi.org/10.1016/j.celrep.2026.117235

BibTeX

@article{scheidemantel2026integration,
author = {Scheidemantel, Lucas P. and Lopes, Katia de Paiva and Gaiteri, Chris and Menon, Vilas and De Jager, Philip L. and Schneider, Julie A. and Buchman, Aron S. and Wang, Yanling and Tasaki, Shinya and Raittz, Roberto T. and Bennett, David A. and Vialle, Ricardo A.},
title = {{Integration of aged brain multi-omics reveals cross-system mechanisms underlying Alzheimer's disease heterogeneity}},
journal = {Cell reports},
year = {2026},
month = apr,
volume = {45},
number = {4},
pages = {117235},
publisher = {Cell Press},
issn = {2211-1247},
doi = {10.1016/j.celrep.2026.117235},
url = {https://doi.org/10.1016/j.celrep.2026.117235},
pmid = {41950003},
pmcid = {PMC13244359}
}

RIS

TY - JOUR
AU - Scheidemantel, Lucas P.
AU - Lopes, Katia de Paiva
AU - Gaiteri, Chris
AU - Menon, Vilas
AU - De Jager, Philip L.
AU - Schneider, Julie A.
AU - Buchman, Aron S.
AU - Wang, Yanling
AU - Tasaki, Shinya
AU - Raittz, Roberto T.
AU - Bennett, David A.
AU - Vialle, Ricardo A.
TI - Integration of aged brain multi-omics reveals cross-system mechanisms underlying Alzheimer's disease heterogeneity
T2 - Cell reports
J2 - Cell Rep
PY - 2026
DA - 2026/04/07
VL - 45
IS - 4
SP - 117235
SN - 2211-1247
PB - Cell Press
DO - 10.1016/j.celrep.2026.117235
UR - https://doi.org/10.1016/j.celrep.2026.117235
LA - en
ER -

CSL-JSON

{
"id": "10.1016/j.celrep.2026.117235",
"type": "article-journal",
"title": "Integration of aged brain multi-omics reveals cross-system mechanisms underlying Alzheimer's disease heterogeneity",
"container-title": "Cell reports",
"author": [
{
"family": "Scheidemantel",
"given": "Lucas P."
},
{
"family": "Lopes",
"given": "Katia de Paiva"
},
{
"family": "Gaiteri",
"given": "Chris"
},
{
"family": "Menon",
"given": "Vilas"
},
{
"family": "De Jager",
"given": "Philip L."
},
{
"family": "Schneider",
"given": "Julie A."
},
{
"family": "Buchman",
"given": "Aron S."
},
{
"family": "Wang",
"given": "Yanling"
},
{
"family": "Tasaki",
"given": "Shinya"
},
{
"family": "Raittz",
"given": "Roberto T."
},
{
"family": "Bennett",
"given": "David A."
},
{
"family": "Vialle",
"given": "Ricardo A."
}
],
"container-title-short": "Cell Rep",
"volume": "45",
"issue": "4",
"page": "117235",
"DOI": "10.1016/j.celrep.2026.117235",
"PMID": "41950003",
"PMCID": "PMC13244359",
"ISSN": "2211-1247",
"publisher": "Cell Press",
"URL": "https://doi.org/10.1016/j.celrep.2026.117235",
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
7
]
]
}
}

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.1093/brain/awag039 [code]
Mapping the causal chain from genetic risk variants to lipid dysmetabolism in Parkinson's disease.
Journal: Brain : a journal of neurology
In common: circlize, ComplexHeatmap, ggpubr, 3 other tools, Alzheimer's / dementia, genetics / omics, 7 references
[2] doi:10.1038/s41467-026-73007-1 [code]
Single-nucleus epigenomic dysregulation unmasks genetic risk-associated neurodegenerative glia states.
Journal: Nature communications
In common: circlize, ComplexHeatmap, reshape2, 5 other tools, Alzheimer's / dementia, genetics / omics, cellular / molecular, 5 references
[3] doi:10.1038/s41586-026-10793-0
Cell-type signatures of Alzheimer's disease shared across population groups.
Journal: Nature
In common: Alzheimer's / dementia, genetics / omics, cellular / molecular, 11 references
[4] doi:10.1523/eneuro.0468-25.2026 [code]
A Multi-Network Approach Identifies Proteins Related to Dendritic Spines in Alzheimer's Disease.
Journal: eNeuro
In common: reshape2, ggpubr, ggplot2, 1 other tool, Alzheimer's / dementia, genetics / omics, 7 references
[5] doi:10.1002/imt2.70163 [code]
Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.
Journal: iMeta
In common: rstatix, circlize, clusterProfiler, 7 other tools, genetics / omics, cellular / molecular, 1 reference
[6] doi:10.1016/j.isci.2026.116412 [code]
KOLF2.1J iTF-Microglia: A standardized platform to study microglial transcriptional regulatory networks in CNS disease.
Journal: iScience
In common: circlize, clusterProfiler, ComplexHeatmap, 4 other tools, genetics / omics, 4 references
[7] doi:10.1038/s41593-026-02367-0 [code]
A reproducible three-dimensional model of human brain tissue to investigate physiological and disease-associated microglia phenotypes.
Journal: Nature neuroscience
In common: circlize, clusterProfiler, ComplexHeatmap, 6 other tools, Alzheimer's / dementia, cellular / molecular, 2 references
[8] doi:10.1073/pnas.2609132123 [code]
A human lysosomal storage disorder toolkit for decoding proteome landscapes in cortical-like and dopaminergic-like induced neurons.
Journal: Proceedings of the National Academy of Sciences of the United States of America
In common: rstatix, circlize, clusterProfiler, 7 other tools, genetics / omics, cellular / molecular
[9] doi:10.1101/gr.281113.125 [code]
Single-nucleus multiomic profiling of the aging mouse substantia nigra reveals conserved gene alterations linked to Parkinson's disease.
Journal: Genome research
In common: circlize, clusterProfiler, ComplexHeatmap, 6 other tools, genetics / omics, cellular / molecular, 1 reference
[10] doi:10.1093/bioinformatics/btag592 [code]
Network-based stratification of allele-specific expression reveals patient subgroups in Huntington's disease.
Journal: Bioinformatics (Oxford, England)
In common: rstatix, circlize, clusterProfiler, 7 other tools, genetics / omics

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.