# MR analyses
<- fread(
mr_results "./data/00_data_sensitivity_eur_mr.tsv",
header = TRUE, data.table = FALSE, sep = "\t"
)<- fread(
mr_studies "./data/00_data_sensitivity_eur_mr_studies.tsv",
header = TRUE, data.table = FALSE, sep = "\t"
)
# MR results
<- mr_studies %>%
mr_results select(id, pmid, trait, n, n_cases) %>%
inner_join(
x = .,
y = mr_results,
by = "id"
)
8 Sensitivity analyses
8.1 European only analyses
The same Mendelian randomization analyses as in Section 6.2 were performed using European only samples (where available).
README
id
- dataset ID
pmid
- PubMed ID
trait
- phenotype
n
- number of samples
n_cases
- number of cases
model
- MR model
n_snps
- number of SNPs
beta
- MR effect size (per SD lower sclerostin)
se
- MR standard error
pvalue
- MR p-value
8.1.1 Results
: Effect (in SD)
: Odds ratio
%>%
mr_results filter(model == "2_cis_pqtls") %>%
inner_join(
x = select(mr_studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "Y") %>%
distinct(trait, .keep_all = TRUE) %>%
qq_plot()
%>%
mr_results filter(model == "5_cis_pqtls") %>%
inner_join(
x = select(mr_studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "Y") %>%
distinct(trait, .keep_all = TRUE) %>%
qq_plot()
%>%
mr_results filter(model == "2_cis_pqtls") %>%
inner_join(
x = select(mr_studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "N") %>%
qq_plot()
%>%
mr_results filter(model == "5_cis_pqtls") %>%
inner_join(
x = select(mr_studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "N") %>%
qq_plot()
8.2 UK Biobank sclerostin pQTLs
Genetic variant associations with circulating sclerostin in the SOST region from UK Biobank using the Olink platform were obtained from Sun et al. (2023). Sclerostin pQTLs in cis of SOST (±100KB) were defined using LD clumping using LDlinkR setting \(r^2 < 0.2\) (Myers et al. 2020). Three sclerostin pQTLs were identified rs1513671, rs80107551 (this variant was included in the Zheng et al. (2023) sclerostin pQTLs) and rs865429. These sclerostin pQTLs were used to perform the same Mendelian randomization analyses as in Section 6.2 using the Zheng et al. (2023) sclerostin pQTLs.
source("./scripts/04_data_ukbb_pqtls_region.R")
source("./scripts/05_data_ukbb_pqtls.R")
source("./scripts/06_data_gwas_ukbb_pqtls.R")
8.2.1 Data
# Data
load("./data/01_data_ldmat.Rda")
load("./data/06_data_gwas_ukbb_pqtls.Rda")
# GWAS
<- gwas %>%
gwas filter(!(id %in% c("GCST006979", "GCST006980")))
8.2.2 Analyses
Mendelian randomization (MR) analyses of circulating sclerostin against cardiovascular events and risk factors were performed using the datasets in Table 2.2. The cis sclerostin pQTLs from UK Biobank were used as the genetic instruments. Since the sclerostin pQTLs are correlated, the generalized inverse-weighted method (Burgess et al. 2016) was used to perform the MR analyses.
# MR analyses
<- tibble()
mr_results for (id in unique(gwas$id)) {
## MR data
### GWAS
<- gwas %>%
mr_data filter(id == !!id) %>%
inner_join(
x = pqtls,
y = .,
by = c("rsid", "chr", "pos", "ref", "alt")
%>%
) relocate(id, .before = rsid)
### LD matrix
<- ld_mat[
mr_corr match(mr_data$rsid, rownames(ld_mat)),
match(mr_data$rsid, rownames(ld_mat)),
= FALSE
drop
]if (any(mr_data$rsid != rownames(mr_corr)))
stop("genetic varaints are not aligned between the GWAS data and the LD matrix")
## MR analysis
### Input
<- MendelianRandomization::mr_input(
mr_inputs bx = mr_data$beta.x,
bxse = mr_data$se.x,
by = mr_data$beta.y,
byse = mr_data$se.y,
correlation = mr_corr,
snps = mr_data$rsid
)
### Analysis
<- MendelianRandomization::mr_ivw(
mr_analysis
mr_inputs,model = "fixed",
correl = TRUE
)<- tibble(
mr_analysis id = !!id,
model = "UKBB cis pQTLs",
n_snps = !!nrow(mr_data),
beta = -1 * !!round(mr_analysis$Estimate, 6), # per lower SD sclerostin
se = !!round(mr_analysis$StdError, 6),
pvalue = !!signif(mr_analysis$Pvalue, 4)
)
### Results
<- mr_results %>%
mr_results bind_rows(mr_analysis)
}
# MR results
<- studies %>%
mr_results select(id, pmid, trait, n, n_cases) %>%
inner_join(
x = .,
y = mr_results,
by = "id"
)
README
id
- dataset ID
pmid
- PubMed ID
trait
- phenotype
n
- number of samples
n_cases
- number of cases
model
- MR model
n_snps
- number of SNPs
beta
- MR effect size (per SD lower sclerostin)
se
- MR standard error
pvalue
- MR p-value
8.2.3 Results
: Effect (in SD)
: Odds ratio
%>%
mr_results inner_join(
x = select(studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "Y") %>%
distinct(trait, .keep_all = TRUE) %>%
qq_plot()
%>%
mr_results inner_join(
x = select(studies, id, flag),
y = .,
by = "id"
%>%
) filter(flag == "N") %>%
qq_plot()