Serum ferritin and delirium risk: an integrative genomic analysis of causal inference and multi-tissue regulatory signals.
The 17 matches
- [1] § Methods › SMR/HEIDI across tissues ↔ code/Bonferroni Threshold on SMR results.R, lines 106–191 · score 0.89 · Bonferroni threshold, qtl_name, nsnp_heidi, unique probes, p_smr, omics
- [2] § Results › Transcriptomics mediation analysis ↔ code/Bonferroni Threshold on SMR results.R, lines 106–191 · score 0.87 · tissue omics, qtl_name, nsnp_heidi, passing probes, unique probes, p_smr
- [3] § Methods › Two-sample MR ↔ code/Ferritin-Delirium Two sample MR.R, lines 193–259 · score 0.69 · inverse variance weighted, MR Egger intercept, Instrument, IVW, SNP
- [4] § Methods › Bayesian colocalization and SuSiE-based fine-mapping ↔ code/SuSiE–coloc Delirium x APOE sQTL.R, lines 189–231 · score 0.68 · susie_rss, COLOC.SUSIE, refine, minimal, posterior, QC
- [5] § Methods › Bayesian colocalization and SuSiE-based fine-mapping ↔ code/SuSiE-coloc Ferritin x Delirium.R, lines 238–283 · score 0.66 · susie_rss, coloc.susie, posterior overlap, refine, pp, SNP
- [6] § Methods › Data sources and eligibility ↔ code/SuSiE–coloc Delirium x APOE sQTL.R, lines 1–51 · score 0.64 · GTEx v10, brain cortex, sQTL, phenotype, Molecular, delirium
- [7] § Methods › Two-sample MR ↔ code/Ferritin-Delirium Two sample MR.R, lines 47–105 · score 0.61 · weighted median, MR PRESSO, Steiger, distortion, global, Outlier
- [8] § Results › Locus-level variant sharing ↔ code/Delirium x eQTL(Brain Cortex)(CEACAM19 region).R, lines 134–208 · score 0.60 · delirium GWAS, eQTL, pp h4, overlapping SNPs, cortex, CEACAM19
- [9] § Methods › Bayesian colocalization and SuSiE-based fine-mapping ↔ code/Delirium x pQTL(APOE region).R, lines 80–129 · score 0.58 · coloc.abf, pp h4, shared causal, APOE, alleles, MAF
- [10] § Results › Primary causal inference ↔ code/Ferritin-Delirium Two sample MR.R, lines 110–169 · score 0.57 · outlier corrected, MR PRESSO, ferritin delirium, IVW, variance, causal
- [11] § Methods › Bayesian colocalization and SuSiE-based fine-mapping ↔ code/Delirium × GTEx v10 sQTL (Brain Cortex) (APOE region).R, lines 46–112 · score 0.57 · coloc.abf, pp h4, shared causal, APOE, Windows, MAF
- [12] § Methods › Two-sample MR ↔ code/Ferritin-Delirium Two sample MR.R, lines 47–105 · score 0.54 · MR Egger intercept, Cochran, pleiotropy, sensitivity, IVW
- [13] § Methods › Two-sample MR ↔ code/Ferritin-Delirium Two sample MR.R, lines 1–45 · score 0.53 · sample MR, clumped, r2, EUR, exposure, harmonized
- [14] § Results › Locus-level variant sharing ↔ code/Delirium x eQTL (whole blood)(APOE region).R, lines 1–34 · score 0.53 · 44421094–45421094, eQTLGen, chr19, blood, GRCh38, APOE
- [15] § Results › Primary causal inference ↔ code/Ferritin-Delirium Two sample MR.R, lines 193–259 · score 0.52 · MR Egger intercept, weighted median, ivw, slope
- [16] § Results › Locus-level variant sharing ↔ code/Ferritin x eQTL(whole blood)(SLC11A2 region).R, lines 144–232 · score 0.52 · eQTLGen, pp h4, mass, SLC11A2, blood, coloc
- [17] § Methods › Software, versions, and reproducibility ↔ code/SuSiE–coloc Delirium x APOE sQTL.R, lines 189–231 · score 0.50 · COLOC.SUSIE, LD matrices, scores
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 · 336 lines · 13 KB · MIT · 6 matches
- library(data.table)
- library(TwoSampleMR)
- library(MRPRESSO)
- exposure_raw <- fread("Ferritin_AF0p005.mr_ready.tsv.gz")
- outcome_raw <- fread("Delirium_AF0p005.mr_ready.tsv.gz")
- # Map to TwoSampleMR expected names
- exp_dat <- copy(exposure_raw)
- setnames(exp_dat, c("effect_allele","other_allele","beta","se","eaf","pval","samplesize"),
- c("effect_allele.exposure","other_allele.exposure","beta.exposure","se.exposure",
- "eaf.exposure","pval.exposure","samplesize.exposure"))
- exp_dat[, exposure := "Ferritin"]
- # Outcome mapping
- out_dat <- copy(outcome_raw)
- setnames(out_dat, c("effect_allele","other_allele","beta","se","eaf","pval","samplesize"),
- c("effect_allele.outcome","other_allele.outcome","beta.outcome","se.outcome",
- "eaf.outcome","pval.outcome","samplesize.outcome"))
- out_dat[, outcome := "Delirium"]
- # Start at p<5e-8; if <3 SNPs remain, relax to p<5e-6 as pre-specified sensitivity.
- exp_gws <- exp_dat[pval.exposure < 5e-8]
- if (nrow(exp_gws) < 3) exp_gws <- exp_dat[pval.exposure < 5e-6]
- #Here, (OPENGWAS_JWT = "") must include a token from https://api.opengwas.io
- Sys.setenv(OPENGWAS_JWT = "")
- exp_gws <- clump_data(
- exp_gws,
- clump_kb = 10000,
- clump_r2 = 0.001,
- pop = "EUR")
- # Harmonisation
- exp_fmt <- format_data(
- as.data.frame(exp_gws), type = "exposure", snp_col = "SNP",
- beta_col = "beta.exposure", se_col = "se.exposure",
- eaf_col = "eaf.exposure",
- effect_allele_col = "effect_allele.exposure",
- other_allele_col = "other_allele.exposure",
- pval_col = "pval.exposure",
- samplesize_col = "samplesize.exposure",
- phenotype_col = "exposure"
- )
- # Keep only outcome rows at IV SNPs, then format
- outcome_iv <- out_dat[SNP %in% exp_gws$SNP]
- out_fmt <- format_data(
- as.data.frame(outcome_iv), type = "outcome", snp_col = "SNP",
- beta_col = "beta.outcome", se_col = "se.outcome",
- eaf_col = "eaf.outcome",
- effect_allele_col = "effect_allele.outcome",
- other_allele_col = "other_allele.outcome",
- pval_col = "pval.outcome",
- samplesize_col = "samplesize.outcome",
- phenotype_col = "outcome"
- )
- exp_fmt$exposure <- "Ferritin"
- out_fmt$outcome <- "Delirium"
- dat_h <- harmonise_data(exp_fmt, out_fmt, action = 2)
- # F-stat per SNP ~ (beta.exposure^2 / se.exposure^2); mean F as a quick check
- dat_h$F_exposure <- (dat_h$beta.exposure^2) / (dat_h$se.exposure^2)
- mean_F <- mean(dat_h$F_exposure, na.rm=TRUE); mean_F
- # PRIMARY MR + SENSITIVITIES
- mr_main <- mr(dat_h, method_list = c("mr_ivw", "mr_ivw_mre",
- "mr_egger_regression", "mr_weighted_median"))
- het <- mr_heterogeneity(dat_h) # Cochran's Q
- pleio <- mr_pleiotropy_test(dat_h) # Egger intercept
- loo <- mr_leaveoneout(dat_h)
- # Plot
- p_loo <- mr_leaveoneout_plot(loo)
- print(p_loo[[1]])
- steiger <- directionality_test(dat_h) # Steiger
- # MR-PRESSO (global test + outliers + distortion)
- set.seed(1)
- mrp <- mr_presso(BetaOutcome = "beta.outcome",
- BetaExposure = "beta.exposure",
- SdOutcome = "se.outcome",
- SdExposure = "se.exposure",
- OUTLIERtest = TRUE,
- DISTORTIONtest = TRUE,
- data = as.data.frame(dat_h),
- NbDistribution = 1000, SignifThreshold = 0.05)
- # OUTPUTS
- print(mr_main)
- print(het)
- print(pleio)
- print(steiger)
- print(mrp)
- library(knitr)
- # print markdown table
- kable(mr_main, format = "markdown")
- #-------------------------------------------------------------------------------
- library(ggplot2)
- # 1) Pull rows from TwoSampleMR results
- get_row <- function(d, pattern) d[grepl(pattern, d$method), ][1, ]
- ivw_re <- get_row(mr_main, "Inverse variance weighted \\(multiplicative random effects\\)|Inverse variance weighted \\(random effects\\)")
- egger <- get_row(mr_main, "^MR Egger")
- wm <- get_row(mr_main, "^Weighted median")
- # 2) Pull MR-PRESSO outlier-corrected estimate (if available)
- presso_df <- tryCatch(as.data.table(mrp$`Main MR results`), error = function(e) NULL)
- oc <- if (!is.null(presso_df)) presso_df[grepl("Outlier", `MR Analysis`, ignore.case = TRUE)] else NULL
- # 3) Build a tidy table of estimates on the log-OR scale
- est <- rbindlist(list(
- data.table(Method = "IVW (RE)", beta = ivw_re$b, se = ivw_re$se),
- if (!is.null(oc) && nrow(oc)) data.table(Method = "IVW (MR-PRESSO outlier-corrected)",
- beta = as.numeric(oc$`Causal Estimate`),
- se = as.numeric(oc$Sd)) else NULL,
- data.table(Method = "MR-Egger", beta = egger$b, se = egger$se),
- data.table(Method = "Weighted median", beta = wm$b, se = wm$se)
- ), use.names = TRUE, fill = TRUE)
- # 4) Convert to ORs and 95% CIs
- est[, `:=`(
- OR = exp(beta),
- LCI = exp(beta - 1.96 * se),
- UCI = exp(beta + 1.96 * se)
- )]
- est[, Method := factor(Method, levels = c("IVW (RE)", "IVW (MR-PRESSO outlier-corrected)", "MR-Egger", "Weighted median"))]
- x_min <- floor(min(est$LCI, na.rm = TRUE) * 100) / 100
- x_max <- ceiling(max(est$UCI, na.rm = TRUE) * 100) / 100
- p_mr1 <- ggplot(est, aes(x = OR, y = Method)) +
- geom_vline(xintercept = 1, linetype = "dashed") +
- geom_point(size = 2) +
- geom_errorbarh(aes(xmin = LCI, xmax = UCI), height = 0.15) +
- scale_x_continuous(limits = c(x_min, x_max),
- expand = expansion(mult = c(0.02, 0.08))) +
- coord_cartesian(clip = "off") + # <- don't clip at panel edge
- labs(x = "Odds ratio (per SD higher Ferritin)", y = NULL,
- title = "Figure MR1. Causal estimates across MR estimators") +
- theme_minimal(base_size = 12) +
- theme(
- panel.grid.minor = element_blank(),
- plot.margin = margin(t = 8, r = 24, b = 8, l = 8) # extra right margin
- )
- print(p_mr1)
- ggsave("Figure_MR1_forest.png", p_mr1,
- width = 7.5, height = 4.0, dpi = 300, limitsize = FALSE)
- ggsave("Figure_MR1_forest.pdf", p_mr1,
- width = 7.5, height = 4.0, useDingbats = FALSE)
- print(p_mr1)
- ggsave("Figure_MR1_forest.png", p_mr1,
- width = 7.5, height = 4.0, dpi = 300, limitsize = FALSE)
- ggsave("Figure_MR1_forest.pdf", p_mr1, width = 6.0, height = 3.5)
- #-------------------------------------------------------------------------------
- suppressPackageStartupMessages({
- library(ggplot2)
- library(ggrepel)
- library(dplyr)
- library(scales)
- })
- # Pull MR-PRESSO outlier rsIDs
- get_presso_outliers <- function(mrp_obj){
- tryCatch({
- ot <- mrp_obj[["MR-PRESSO results"]][["Outlier Test"]][["Outliers"]]
- if (is.null(ot) || !is.data.frame(ot) || nrow(ot) == 0) return(character(0))
- pick <- intersect(c("SNP","rsid","Name","Outlier"), names(ot))
- if (length(pick) == 0) return(character(0))
- unique(as.character(ot[[pick[1]]]))
- }, error = function(e) character(0))
- }
- # pick one slope per method (prefer IVW random-effects if present)
- pick_b <- function(df, exact_names, fallback_pattern = NULL){
- hits <- which(df$method %in% exact_names)
- if (length(hits) > 0) return(df$b[hits[1]])
- if (!is.null(fallback_pattern)) {
- hits <- which(grepl(fallback_pattern, df$method))
- if (length(hits) > 0) return(df$b[hits[1]])
- }
- NA_real_
- }
- b_ivw <- pick_b(
- mr_main,
- exact_names = c("Inverse variance weighted (multiplicative random effects)",
- "Inverse variance weighted (random effects)"),
- fallback_pattern = "^Inverse variance weighted$"
- )
- b_egger <- pick_b(mr_main, exact_names = c("MR Egger"), fallback_pattern = "Egger")
- b_wmed <- pick_b(mr_main, exact_names = c("Weighted median"), fallback_pattern = "Weighted median")
- egger_int <- if (!is.null(pleio$egger_intercept)) pleio$egger_intercept[1] else NA_real_
- if (is.na(egger_int)) egger_int <- 0 # safe default if Egger intercept not returned
- # one row per line to draw
- line_df <- data.frame(
- method = c("IVW (RE)", "MR-Egger", "Weighted median"),
- slope = c(b_ivw, b_egger, b_wmed),
- intercept = c(0, egger_int, 0),
- linetype = c("solid", "dashed", "dotdash"),
- stringsAsFactors = FALSE
- )
- presso_outliers <- get_presso_outliers(mrp)
- # ======================================================================
- # S-MR1. MR scatter (with IVW / MR-Egger / weighted-median lines)
- # ======================================================================
- scatter_df <- as.data.frame(dat_h)
- scatter_df$group <- ifelse(scatter_df$SNP %in% presso_outliers,
- "PRESSO outlier", "Instrument")
- line_df <- tibble(
- method = c("IVW (RE)", "MR-Egger", "Weighted median"),
- slope = c(b_ivw, b_egger, b_wmed),
- intercept = c(0, egger_int, 0),
- linetype = c("solid", "dashed", "dotdash")
- )
- p_scatter <- ggplot(scatter_df, aes(beta.exposure, beta.outcome)) +
- geom_hline(yintercept = 0, colour = "grey85") +
- geom_vline(xintercept = 0, colour = "grey85") +
- geom_point(aes(shape = group), size = 2.4, alpha = 0.9) +
- geom_abline(data = line_df,
- aes(slope = slope, intercept = intercept, linetype = method),
- linewidth = 0.9, show.legend = TRUE) +
- scale_shape_manual(values = c("Instrument" = 16, "PRESSO outlier" = 17)) +
- scale_linetype_manual(values = c("solid", "dashed", "dotdash")) +
- labs(title = "Supplementary Figure S-MR1. MR scatter plot",
- x = "SNP effect on Ferritin (beta)",
- y = "SNP effect on Delirium (beta)",
- linetype = "Estimator", shape = NULL) +
- theme_minimal(base_size = 12) +
- theme(panel.grid.minor = element_blank(),
- legend.position = "bottom",
- plot.margin = margin(10, 70, 10, 10)) +
- coord_cartesian(clip = "off")
- if (length(presso_outliers) > 0) {
- p_scatter <- p_scatter +
- ggrepel::geom_text_repel(
- data = subset(scatter_df, SNP %in% presso_outliers),
- aes(label = SNP), size = 3, max.overlaps = Inf
- )
- }
- ggsave("Supp_Figure_S-MR1_scatter.png", p_scatter,
- width = 7.5, height = 5.0, dpi = 300, bg = "white", limitsize = FALSE)
- # ======================================================================
- # S-MR2. Funnel plot (per-SNP ratio estimates)
- # ======================================================================
- single <- mr_singlesnp(dat_h)
- p_funnel <- mr_funnel_plot(single)[[1]] +
- labs(title = "Supplementary Figure S-MR2. Funnel plot",
- x = "Causal estimate (Wald ratio per SNP)",
- y = "SE of ratio") +
- theme_minimal(base_size = 12) +
- theme(legend.position = "none")
- ggsave("Supp_Figure_S-MR2_funnel.png", p_funnel,
- width = 7.0, height = 5.0, dpi = 300, bg = "white", limitsize = FALSE)
- # ======================================================================
- # S-MR3. Leave-one-out influence plot
- # ======================================================================
- loo <- mr_leaveoneout(dat_h)
- p_loo <- mr_leaveoneout_plot(loo)[[1]] +
- labs(title = "Supplementary Figure S-MR3. Leave-one-out influence plot",
- y = "IVW estimate") +
- theme_minimal(base_size = 12)
- ggsave("Supp_Figure_S-MR3_leaveoneout.png", p_loo,
- width = 7.0, height = 5.0, dpi = 300, bg = "white", limitsize = FALSE)
- # ======================================================================
- # S-MR4. MR-PRESSO outlier map (studentized residuals vs leverage)
- # ======================================================================
- ivw_fit <- lm(beta.outcome ~ beta.exposure,
- weights = 1/(se.outcome^2),
- data = scatter_df)
- press_df <- scatter_df %>%
- mutate(leverage = hatvalues(ivw_fit),
- stud_res = rstudent(ivw_fit),
- outlier = SNP %in% presso_outliers)
- # Pull MR-PRESSO p-values (best-effort; shows NA if structure differs)
- safe_get <- function(x, path, default = NA){
- tryCatch({ for (nm in path) x <- x[[nm]]; x }, error = function(e) default)
- }
- p_glob <- safe_get(mrp, c("MR-PRESSO results","Global Test","Pvalue"))
- p_dist <- safe_get(mrp, c("MR-PRESSO results","Distortion Test","Pvalue"))
- subtxt <- sprintf("Global p = %s; Distortion p = %s; Outliers = %d",
- ifelse(is.na(p_glob), "NA", formatC(p_glob, format = "e", digits = 2)),
- ifelse(is.na(p_dist), "NA", formatC(p_dist, format = "e", digits = 2)),
- length(presso_outliers))
- p_presso <- ggplot(press_df, aes(leverage, stud_res, colour = outlier)) +
- geom_hline(yintercept = c(-3, 0, 3),
- linetype = c("dotted", "solid", "dotted"), colour = "grey70") +
- geom_point(size = 2.3, alpha = 0.9) +
- scale_color_manual(values = c("FALSE" = "grey30", "TRUE" = "firebrick"),
- labels = c("Instrument", "PRESSO outlier")) +
- labs(title = "Supplementary Figure S-MR4. MR-PRESSO outlier map",
- subtitle = subtxt,
- x = "Leverage (hat values from IVW fit)",
- y = "Studentized residuals",
- colour = NULL) +
- theme_minimal(base_size = 12) +
- theme(legend.position = "bottom",
- plot.margin = margin(10, 70, 10, 10)) +
- coord_cartesian(clip = "off")
- if (length(presso_outliers) > 0) {
- p_presso <- p_presso +
- ggrepel::geom_text_repel(
- data = subset(press_df, outlier),
- aes(label = SNP), size = 3, max.overlaps = Inf
- )
- }
- ggsave("Supp_Figure_S-MR4_presso_map.png", p_presso,
- width = 7.2, height = 5.2, dpi = 300, bg = "white", limitsize = FALSE)
Ferritin-Delirium Two sample MR.R at commit 1160c18, under MIT · at the source
Overview
- School of Medicine, Shahid Beheshti University of Medical Sciences,Tehran, Iran
- Cellular and Molecular Endocrine Research Center, Research Institute for Endocrine Molecular Biology, Research Institute for Endocrine Sciences, Shahid Beheshti University of Medical Sciences,PO Box: 1985717413, Tehran, Iran
- Endocrine Research Center, Research Institute for Endocrine Sciences, Shahid Beheshti University of Medical Sciences,Tehran, Iran
Abstract
Background: Delirium is an acute neuropsychiatric syndrome characterized by disrupted attention and cognition, often triggered by systemic inflammation and physiological stress. Elevated serum ferritin is frequently observed in patients with delirium. Since ferritin couples iron handling to inflammatory signaling during acute-phase responses, it remains unclear whether genetically influenced baseline serum ferritin is a modifiable causal risk factor for delirium, or whether ferritin elevations observed during illness mainly reflect downstream systemic states leading to brain network failure. We used genetic triangulation to assess baseline causality and identify regulatory mechanisms influencing delirium susceptibility.
Results: Using harmonized GWAS summary statistics for ferritin (GCST90270865; N = 270,794) and delirium (GCST90473243; 8461 cases, 449,979 controls), we found no evidence that genetically proxied increases in ferritin causally raise delirium risk (primary MR: IVW random-effects OR = 1.09 per 1/
Conclusions: Genetic evidence does not support baseline ferritin as a primary, modifiable causal factor for delirium risk. Instead, inherited susceptibility appears locus-specific and seems to align with brain regulatory mechanisms, including a cortical signal at 19q13, distinct from iron homeostasis. These findings emphasize the need for mechanistic and preventive research targeting brain-relevant pathways other than systemic iron management for delirium prevention.
Supplementary Information: The online version contains supplementary material available at10.1186/
Reproduced under the paper's license (CC BY), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 17 matches between paragraphs and lines of code.
amjahromizadeh/Ferritin-Delirium
1160c187e6a191803004addd2ad29c1d440ce5f4, 4 July 2026Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
18 files
- code/
Bonferroni Threshold on SMR results.R , R, 193 lines, 2 matches - code/
Delirium x eQTL (whole blood)(APOE region).R , R, 139 lines, 1 match - code/
Delirium x eQTL(Brain Cortex)(CEACAM19 region).R , R, 208 lines, 1 match - code/
Delirium x pQTL(APOE region).R , R, 130 lines, 1 match - code/
Delirium x pQTL(METTL25 region).R , R, 104 lines - code/
Ferritin CEACAM19 eQTL coloc.R , R, 105 lines - code/
Ferritin Delirium coloc.R , R, 142 lines - code/
Ferritin SMR results.R , R, 91 lines - code/
Ferritin x eQTL(Brain Cortex)(TOMM40 region).R , R, 103 lines - code/
Ferritin x eQTL(whole blood)(SLC11A2 region).R , R, 232 lines, 1 match - code/
Ferritin x pQTL(APOE region).R , R, 146 lines - code/
Ferritin x sQTL(TF, TOMM40 & CEACAM19 regions).R , R, 321 lines - code/
Ferritin-Delirium Two sample MR.R , R, 336 lines, 6 matches - code/
SuSiE-coloc Ferritin x APOE pQTL.R , R, 215 lines - code/
SuSiE-coloc Ferritin x Delirium.R , R, 334 lines, 1 match - docs/
Ferritin-Delirium report.Rmd , R, 1,295 lines - LICENSE, License, 21 lines
- README.md, Text, 136 lines
Zenodo 18135973
Availability: 1 check, the latest on 30 September 2026: the link answers (HTTP 200)
- 30 September 2026: the link answers (HTTP 200)
21 files
- code/
Bonferroni Threshold on SMR results.R , R, 193 lines - code/
Delirium x eQTL (whole blood)(APOE region).R , R, 139 lines - code/
Delirium x eQTL(Brain Cortex)(CEACAM19 region).R , R, 208 lines - code/
Delirium x pQTL(APOE region).R , R, 130 lines - code/
Delirium x pQTL(METTL25 region).R , R, 104 lines - code/
Delirium × GTEx v10 sQTL (Brain Cortex) (APOE region).R , R, 112 lines, 1 match - code/
Ferritin CEACAM19 eQTL coloc.R , R, 105 lines - code/
Ferritin Delirium coloc.R , R, 142 lines - code/
Ferritin SMR results.R , R, 91 lines - code/
Ferritin x eQTL(Brain Cortex)(TOMM40 region).R , R, 103 lines - code/
Ferritin x eQTL(whole blood)(SLC11A2 region).R , R, 232 lines - code/
Ferritin x pQTL(APOE region).R , R, 146 lines - code/
Ferritin x sQTL(TF, TOMM40 & CEACAM19 regions).R , R, 321 lines - code/
Ferritin-Delirium Two sample MR.R , R, 336 lines - code/
SuSiE-coloc Ferritin x APOE pQTL.R , R, 215 lines - code/
SuSiE-coloc Ferritin x Delirium.R , R, 334 lines - code/
SuSiE–coloc Delirium x APOE pQTL.R , R, 150 lines - code/
SuSiE–coloc Delirium x APOE sQTL.R , R, 461 lines, 3 matches - docs/
Ferritin-Delirium report.Rmd , R, 1,295 lines - LICENSE, License, 21 lines
- README.md, Text, 136 lines
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:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 35 scripts, each with its path and the digest of its content;
- 17 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
Datasets cited
- figshare:32656362, at figshare; found in DataCite
Data availability
Ferritin GWAS summary statistics are available via the GWAS Catalog (accession GCST90270865), and delirium GWAS summary statistics are available via the GWAS Catalog (accession GCST90473243). The QTL summary datasets used for SMR/
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 1, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 10 authors, 5 keywords, 10 MeSH terms, 27 references.
Cite
This paper
Saed, A., Akbarzadeh, M., Gohari, F., Asadrouh, N., Jahromizadeh, A. M., Sabaie, H., Zarkesh, M., Hedayati, M., Azizi, F., & Daneshpour, M. S. (2026). Serum ferritin and delirium risk: an integrative genomic analysis of causal inference and multi-tissue regulatory signals. Human genomics, 20(1), 97. https://
BibTeX
@article{saed2026serum,
author = {Saed, Amirhossein and Akbarzadeh, Mahdi and Gohari, Fatemeh and Asadrouh, Nafiseh and Jahromizadeh, Amir Mohammad and Sabaie, Hani and Zarkesh, Maryam and Hedayati, Mehdi and Azizi, Fereidoun and Daneshpour, Maryam Sadat},
title = {{Serum ferritin and delirium risk: an integrative genomic analysis of causal inference and multi-tissue regulatory signals}},
journal = {Human genomics},
year = {2026},
month = apr,
volume = {20},
number = {1},
pages = {97},
publisher = {BMC},
issn = {1473-9542},
doi = {10.1186/
url = {https://
pmid = {42035214},
pmcid = {PMC13262423}
}
RIS
TY - JOUR
AU - Saed, Amirhossein
AU - Akbarzadeh, Mahdi
AU - Gohari, Fatemeh
AU - Asadrouh, Nafiseh
AU - Jahromizadeh, Amir Mohammad
AU - Sabaie, Hani
AU - Zarkesh, Maryam
AU - Hedayati, Mehdi
AU - Azizi, Fereidoun
AU - Daneshpour, Maryam Sadat
TI - Serum ferritin and delirium risk: an integrative genomic analysis of causal inference and multi-tissue regulatory signals
T2 - Human genomics
J2 - Hum Genomics
PY - 2026
DA - 2026/
VL - 20
IS - 1
SP - 97
SN - 1473-9542
PB - BMC
DO - 10.1186/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1186/
"type": "article-journal",
"title": "Serum ferritin and delirium risk: an integrative genomic analysis of causal inference and multi-tissue regulatory signals",
"container-title": "Human genomics",
"author": [
{
"family": "Saed",
"given": "Amirhossein"
},
{
"family": "Akbarzadeh",
"given": "Mahdi"
},
{
"family": "Gohari",
"given": "Fatemeh"
},
{
"family": "Asadrouh",
"given": "Nafiseh"
},
{
"family": "Jahromizadeh",
"given": "Amir Mohammad"
},
{
"family": "Sabaie",
"given": "Hani"
},
{
"family": "Zarkesh",
"given": "Maryam"
},
{
"family": "Hedayati",
"given": "Mehdi"
},
{
"family": "Azizi",
"given": "Fereidoun"
},
{
"family": "Daneshpour",
"given": "Maryam Sadat"
}
],
"container-title-short":
"volume": "20",
"issue": "1",
"page": "97",
"DOI": "10.1186/
"PMID": "42035214",
"PMCID": "PMC13262423",
"ISSN": "1473-9542",
"publisher": "BMC",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
4,
25
]
]
}
}
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.1038/s41467-026-72164-7 [code]
- Multivariate genetic analysis reveals three distinct pathological dimensions in musculoskeletal disorders.Journal: Nature communicationsIn common: pheatmap, data.table, ggplot2, 1 other tool, genetics / omics, 2 references
- [2] doi:10.1038/s41588-026-02646-3 [code]
- Co-expression-based models improve eQTL predictions for transcriptome-wide association studies and highlight new schizophrenia-associated
genes. Journal: Nature geneticsIn common: pheatmap, data.table, tidyverse, genetics / omics, 2 references - [3] doi:10.1002/imt2.70163 [code]
- Spatial multi-omics unveils sphingolipid metabolic reprogramming within the retinal pathological niche.Journal: iMetaIn common: pheatmap, data.table, ggplot2, 1 other tool, genetics / omics, 1 reference
- [4] doi:10.3390/biomedicines14081677 [code]
- Exploratory Genome and Transcriptome-Wide Association Analyses of Addiction-Related Phenotypes in a Twin Cohort.Journal: BiomedicinesIn common: data.table, ggplot2, tidyverse, genetics / omics, other condition, 2 references
- [5] doi:10.1186/s12916-026-04869-x [code]
- The tissue-specific effects of glucose-lowering drug targets on aging mediated through DNA methylation: a multi-omics genetic study.Journal: BMC medicineIn common: data.table, ggplot2, tidyverse, genetics / omics, other condition, 2 references
- [6] doi:10.1038/s41467-026-75193-4 [code]
- Multi-ancestry gene expression models amplify transcriptome-wide association study discovery and validation.Journal: Nature communicationsIn common: pheatmap, data.table, ggplot2, 1 other tool, genetics / omics, 1 reference
- [7] doi:10.1038/s41467-026-72598-z [code]
- Functional impact of genetic background on variable expressivity in neurodevelopmental disorders.Journal: Nature communicationsIn common: pheatmap, data.table, ggplot2, 1 other tool, other condition, 1 reference
- [8] doi:10.1093/neuonc/noag128 [code]
- Spatially-resolved single-cell imaging of melanoma brain metastases identifies localized immune patterns predictive of immune checkpoint blockade response.Journal: Neuro-oncologyIn common: pheatmap, data.table, ggplot2, 1 other tool, clinical / translational, genetics / omics, other condition
- [9] doi:10.1038/s41562-026-02486-5 [code]
- Genome-wide association studies of infant and toddler temperament in European and multi-ancestry populations.Journal: Nature human behaviourIn common: data.table, ggplot2, tidyverse, genetics / omics, 2 references
- [10] doi:10.1038/s41467-026-71738-9 [code]
- Genetic landscape of adult executive function reveals a cell-type-specific developmental origin.Journal: Nature communicationsIn common: data.table, ggplot2, tidyverse, genetics / omics, 2 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.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 35 scripts, and 17 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:09df3000aa2863f7…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
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.
