Glossary:
Abbreviation | Meaning |
---|---|
A2, A2GRCH38 | Severe respiratory COVID data |
B2, B2GRCH38 | Hospitalized COVID data |
C2, C2GRCH38 | COVID data vs population |
AKI_J, J, FastGWA | Jiang L 2021 AKI dataset |
AKI_ZW, Z, SAIGE | Zhou W AKI data set |
The process for preparing the data is relatively the same for all the tests, so I will only be showing the process for A2 COVID-19 and Jiang L AKI.
exposure_path1 = "resources/A2eurGRCH38.tsv.gz"
exposure_c1 <- read_tsv(exposure_path1,comment = "##",
col_select = c(1,2,3,4,5,6,7,8,9,14,15))
## Rows: 12195847 Columns: 11
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (4): REF, ALT, SNP, rsid
## dbl (7): #CHR, POS, all_meta_N, all_inv_var_meta_beta, all_inv_var_meta_sebe...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(exposure_c1)<- c("CHR","POS","effect_allele.exposure","other_allele.exposure","SNP","N","beta.exposure","se.exposure","pval","eaf.exposure","rsid")
exposure_c1$exposure <- rep(c("COVID19"),times=nrow(exposure_c1));
clump_id<- "a2grch"
exposure_c1$z.exposure <- exposure_c1$beta.exposure/exposure_c1$se.exposure;
exposure_c1$id.exposure <- rep(c(clump_id),times=nrow(exposure_c1));
exposure1 <- exposure_c1 %>%
format_data(.,
type = "exposure",
snps = NULL,
header = TRUE,
phenotype_col = "exposure",
snp_col ="rsid",
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",
samplesize_col = "N",
z_col = "z.exposure",
chr_col = "CHR",
pos_col = "POS",
log_pval = FALSE
) %>%
as_tibble()
exposure_clump1 <-ld_clump(
#dplyr::tibble(rsid=exposure_c1$rsid, pval=exposure_c1$pval, id=exposure_c1$trait_id),
dat = exposure_c1,
plink_bin = genetics.binaRies::get_plink_binary(),
bfile = "1kgv3/EUR"
)
## Clumping H7JBQf, 12195847 variants, using EUR population reference
## Removing 12192919 of 12195847 variants due to LD with other variants or absence from LD reference panel
exposure_dat1 <- filter(exposure_clump1, pval < 5e-8)
exposure_clump1 <-ld_clump(
#dplyr::tibble(rsid=exposure_c1$rsid, pval=exposure_c1$pval, id=exposure_c1$trait_id),
dat = exposure_c1,
plink_bin = genetics.binaRies::get_plink_binary(),
bfile = "1kgv3/EUR"
)
## Clumping luq9sB, 12195847 variants, using EUR population reference
## Removing 12192919 of 12195847 variants due to LD with other variants or absence from LD reference panel
exposure_dat1 <- filter(exposure_clump1, pval < 5e-8)
outcome_path1 = "resources/JiangL2021.tsv"
outcome_ss1 <- read_tsv(outcome_path1)
## Rows: 11831932 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): variant_id, effect_allele, other_allele
## dbl (11): chromosome, base_pair_location, N, effect_allele_frequency, T, SE_...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
colnames(outcome_ss1)<- c("CHR","SNP","POS","effect_allele.outcome","other_allele.outcome","N","eaf.outcome","T","SE_T","P_NoSpa","beta.outcome","se.outcome","pval.outcome","CONVERGE")
outcome_ss1$Z <- outcome_ss1$se.outcome/outcome_ss1$beta.outcome;
outcome_ss1$outcome <- rep(c("AKI_J"),times=nrow(outcome_ss1));
clump_id <- "jiangl";
outcome_ss1$id.outcome <- rep(c(clump_id),times=nrow(outcome_ss1));
outcome1 <- outcome_ss1 %>%
format_data(.,
type = "outcome",
snps = NULL,
header = TRUE,
phenotype_col = "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 = "N",
z_col = "Z",
chr_col = "CHR",
pos_col = "POS",
log_pval = FALSE
) %>%
as_tibble()
exposure_snps <- exposure_dat1
outcome_clumped1 <- filter(outcome_ss1, SNP %in% exposure_snps$rsid)
outcome_filtered1 <- dplyr::tibble(SNP=outcome_clumped1$SNP, beta.outcome=outcome_clumped1$beta.outcome, se.outcome=outcome_clumped1$se.outcome, effect_allele.outcome = outcome_clumped1$effect_allele.outcome, other_allele.outcome = outcome_clumped1$other_allele.outcome,eaf.outcome = outcome_clumped1$eaf.outcome , outcome = outcome_clumped1$outcome, id.outcome = outcome_clumped1$id.outcome)
outcome_clumped <- outcome_clumped1
mr_dat <- harmonise_data(dplyr::tibble(SNP=exposure_snps$rsid, beta.exposure=exposure_snps$beta.exposure, se.exposure=exposure_snps$se.exposure, effect_allele.exposure = exposure_snps$effect_allele.exposure, other_allele.exposure = exposure_snps$other_allele.exposure,eaf.exposure = exposure_snps$eaf.exposure, id.exposure = exposure_snps$id.exposure, exposure = exposure_snps$exposure), dplyr::tibble(SNP=outcome_clumped$SNP, beta.outcome=outcome_clumped$beta.outcome, se.outcome=outcome_clumped$se.outcome, effect_allele.outcome = outcome_clumped$effect_allele.outcome, other_allele.outcome = outcome_clumped$other_allele.outcome,eaf.outcome = outcome_clumped$eaf.outcome , outcome = outcome_clumped$outcome, id.outcome = outcome_clumped$id.outcome), action = 2)
## Harmonising COVID19 (a2grch) and AKI_J (jiangl)
## Removing the following SNPs for being palindromic with intermediate allele frequencies:
## rs2569703
#write_csv(mr_dat, "data/harmonized_data_A2_JiangL2021.csv");
Severe respiratory COVID-19
mr_dat <- read_csv('data/harmonized_data_A2_JiangL2021.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_J | COVID19 | Maximum likelihood | 28 | 0.0055413 | 0.0608019 | 0.9273834 | -0.1136305 | 0.1247131 | 1.0055567 | 0.8925877 | 1.132823 |
AKI_J | COVID19 | MR Egger | 28 | 0.1306953 | 0.1165462 | 0.2723668 | -0.0977352 | 0.3591259 | 1.1396205 | 0.9068890 | 1.432077 |
AKI_J | COVID19 | MR Egger (bootstrap) | 28 | 0.1678180 | 0.1374111 | 0.1120000 | -0.1015078 | 0.4371438 | 1.1827214 | 0.9034742 | 1.548279 |
AKI_J | COVID19 | Simple median | 28 | -0.0591082 | 0.0957651 | 0.5370894 | -0.2468077 | 0.1285914 | 0.9426048 | 0.7812909 | 1.137225 |
AKI_J | COVID19 | Weighted median | 28 | 0.0865636 | 0.0917794 | 0.3455935 | -0.0933239 | 0.2664512 | 1.0904208 | 0.9108984 | 1.305324 |
AKI_J | COVID19 | Penalised weighted median | 28 | 0.0880535 | 0.0894570 | 0.3249626 | -0.0872822 | 0.2633893 | 1.0920466 | 0.9164184 | 1.301333 |
AKI_J | COVID19 | Inverse variance weighted (fixed effects) | 28 | 0.0054569 | 0.0604061 | 0.9280198 | -0.1129390 | 0.1238528 | 1.0054718 | 0.8932051 | 1.131849 |
AKI_J | COVID19 | Inverse variance weighted (multiplicative random effects) | 28 | 0.0054569 | 0.0632007 | 0.9311946 | -0.1184165 | 0.1293302 | 1.0054718 | 0.8883260 | 1.138066 |
AKI_J | COVID19 | Simple mode | 28 | -0.1475087 | 0.1651791 | 0.3797358 | -0.4712598 | 0.1762424 | 0.8628549 | 0.6242154 | 1.192727 |
AKI_J | COVID19 | Weighted mode | 28 | 0.0881540 | 0.0919664 | 0.3462930 | -0.0921002 | 0.2684082 | 1.0921563 | 0.9120138 | 1.307881 |
AKI_J | COVID19 | Weighted mode (NOME) | 28 | 0.0881540 | 0.0936157 | 0.3547172 | -0.0953328 | 0.2716409 | 1.0921563 | 0.9090703 | 1.312116 |
AKI_J | COVID19 | Simple mode (NOME) | 28 | -0.1475087 | 0.1694903 | 0.3918045 | -0.4797098 | 0.1846923 | 0.8628549 | 0.6189630 | 1.202848 |
#kable(odd[,3:14])
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19
## - outcome: AKI_J
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) 0.005456879 0.06320070 0.08634207 0.9311945
## Iterative 0.005456879 0.06320070 0.08634207 0.9311945
## Exact (FE) 0.005518292 0.06040619 0.09135309 0.9272120
## Exact (RE) 0.005538319 0.06726727 0.08233305 0.9349892
##
##
## Residual standard error: 1.046 on 27 degrees of freedom
##
## F-statistic: 0.01 on 1 and 27 DF, p-value: 0.932
## Q-Statistic for heterogeneity: 29.55593 on 27 DF , p-value: 0.3344711
##
## Outliers detected
## Number of iterations = 2
Severe respiratory COVID-19
mr_dat <- read_csv('data/harmonized_data_A2_Zhouw.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_ZW | COVID19 | Maximum likelihood | 28 | -0.0035256 | 0.0254308 | 0.8897391 | -0.0533698 | 0.0463187 | 0.9964806 | 0.9480293 | 1.047408 |
AKI_ZW | COVID19 | MR Egger | 28 | 0.0404825 | 0.0657675 | 0.5435494 | -0.0884218 | 0.1693868 | 1.0413131 | 0.9153747 | 1.184578 |
AKI_ZW | COVID19 | MR Egger (bootstrap) | 28 | 0.0712321 | 0.0640802 | 0.1310000 | -0.0543651 | 0.1968292 | 1.0738304 | 0.9470863 | 1.217536 |
AKI_ZW | COVID19 | Simple median | 28 | -0.0503876 | 0.0484078 | 0.2979225 | -0.1452669 | 0.0444917 | 0.9508608 | 0.8647915 | 1.045496 |
AKI_ZW | COVID19 | Weighted median | 28 | 0.0406463 | 0.0375678 | 0.2792775 | -0.0329866 | 0.1142792 | 1.0414836 | 0.9675515 | 1.121065 |
AKI_ZW | COVID19 | Penalised weighted median | 28 | 0.0450493 | 0.0388318 | 0.2460033 | -0.0310611 | 0.1211597 | 1.0460794 | 0.9694163 | 1.128805 |
AKI_ZW | COVID19 | Inverse variance weighted (fixed effects) | 28 | -0.0034876 | 0.0251371 | 0.8896538 | -0.0527563 | 0.0457812 | 0.9965185 | 0.9486111 | 1.046845 |
AKI_ZW | COVID19 | Inverse variance weighted (multiplicative random effects) | 28 | -0.0034876 | 0.0349165 | 0.9204369 | -0.0719240 | 0.0649488 | 0.9965185 | 0.9306017 | 1.067104 |
AKI_ZW | COVID19 | Simple mode | 28 | -0.2012512 | 0.1124614 | 0.0847561 | -0.4216755 | 0.0191731 | 0.8177070 | 0.6559469 | 1.019358 |
AKI_ZW | COVID19 | Weighted mode | 28 | 0.0398098 | 0.0388161 | 0.3141814 | -0.0362698 | 0.1158895 | 1.0406129 | 0.9643801 | 1.122872 |
AKI_ZW | COVID19 | Weighted mode (NOME) | 28 | 0.0398098 | 0.0418286 | 0.3496729 | -0.0421742 | 0.1217939 | 1.0406129 | 0.9587028 | 1.129521 |
AKI_ZW | COVID19 | Simple mode (NOME) | 28 | -0.2012512 | 0.1137572 | 0.0881686 | -0.4242152 | 0.0217129 | 0.8177070 | 0.6542830 | 1.021950 |
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19
## - outcome: AKI_ZW
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) -0.003487579 0.03491651 -0.09988336 0.9204369
## Iterative -0.003487579 0.03491651 -0.09988336 0.9204369
## Exact (FE) -0.003569377 0.02513723 -0.14199564 0.8870835
## Exact (RE) -0.003533037 0.03532745 -0.10000825 0.9210767
##
##
## Residual standard error: 1.389 on 27 degrees of freedom
##
## F-statistic: 0.01 on 1 and 27 DF, p-value: 0.921
## Q-Statistic for heterogeneity: 52.09437 on 27 DF , p-value: 0.002584395
##
## No significant outliers
## Number of iterations = 2
## [1] "No significant Outliers"
Hospitalized COVID-19
mr_dat <- read_csv('data/harmonized_data_B2_JiangL2021.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_J | COVID19_B2 | Maximum likelihood | 12 | -0.1149946 | 0.1443710 | 0.4257290 | -0.3979617 | 0.1679725 | 0.8913710 | 0.6716878 | 1.182904 |
AKI_J | COVID19_B2 | MR Egger | 12 | 0.5148575 | 0.5874303 | 0.4013456 | -0.6365060 | 1.6662209 | 1.6734000 | 0.5291380 | 5.292131 |
AKI_J | COVID19_B2 | MR Egger (bootstrap) | 12 | 0.3894218 | 0.4229849 | 0.1700000 | -0.4396286 | 1.2184722 | 1.4761271 | 0.6442757 | 3.382017 |
AKI_J | COVID19_B2 | Simple median | 12 | -0.1379878 | 0.2068251 | 0.5046626 | -0.5433650 | 0.2673894 | 0.8711093 | 0.5807906 | 1.306549 |
AKI_J | COVID19_B2 | Weighted median | 12 | -0.1215526 | 0.1998601 | 0.5430625 | -0.5132784 | 0.2701732 | 0.8855445 | 0.5985301 | 1.310191 |
AKI_J | COVID19_B2 | Penalised weighted median | 12 | -0.1115025 | 0.1998823 | 0.5769531 | -0.5032718 | 0.2802668 | 0.8944892 | 0.6045495 | 1.323483 |
AKI_J | COVID19_B2 | Inverse variance weighted (fixed effects) | 12 | -0.1162303 | 0.1428149 | 0.4157294 | -0.3961475 | 0.1636869 | 0.8902702 | 0.6729074 | 1.177846 |
AKI_J | COVID19_B2 | Inverse variance weighted (multiplicative random effects) | 12 | -0.1162303 | 0.1848688 | 0.5295340 | -0.4785732 | 0.2461127 | 0.8902702 | 0.6196669 | 1.279044 |
AKI_J | COVID19_B2 | Simple mode | 12 | -0.1647028 | 0.3026739 | 0.5971891 | -0.7579436 | 0.4285380 | 0.8481457 | 0.4686291 | 1.535012 |
AKI_J | COVID19_B2 | Weighted mode | 12 | -0.1121711 | 0.2580572 | 0.6722023 | -0.6179632 | 0.3936209 | 0.8938913 | 0.5390413 | 1.482339 |
AKI_J | COVID19_B2 | Weighted mode (NOME) | 12 | -0.1121711 | 0.2448357 | 0.6557638 | -0.5920490 | 0.3677067 | 0.8938913 | 0.5531926 | 1.444418 |
AKI_J | COVID19_B2 | Simple mode (NOME) | 12 | -0.1647028 | 0.3212717 | 0.6183274 | -0.7943954 | 0.4649898 | 0.8481457 | 0.4518543 | 1.591998 |
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19_B2
## - outcome: AKI_J
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) -0.1162353 0.1848668 -0.6287515 0.5295118
## Iterative -0.1162353 0.1848668 -0.6287515 0.5295118
## Exact (FE) -0.1188575 0.1428724 -0.8319135 0.4054578
## Exact (RE) -0.1177828 0.1727747 -0.6817134 0.5095189
##
##
## Residual standard error: 1.294 on 11 degrees of freedom
##
## F-statistic: 0.4 on 1 and 11 DF, p-value: 0.542
## Q-Statistic for heterogeneity: 18.41743 on 11 DF , p-value: 0.07238655
##
## Outliers detected
## Number of iterations = 2
Hospitalized COVID-19
mr_dat <- read_csv('data/harmonized_data_B2_Zhouw.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_ZW | COVID19_B2 | Maximum likelihood | 33 | 0.0124439 | 0.0362744 | 0.7315613 | -0.0586540 | 0.0835418 | 1.0125217 | 0.9430330 | 1.087131 |
AKI_ZW | COVID19_B2 | MR Egger | 33 | 0.0580105 | 0.0888887 | 0.5188123 | -0.1162114 | 0.2322324 | 1.0597261 | 0.8902870 | 1.261413 |
AKI_ZW | COVID19_B2 | MR Egger (bootstrap) | 33 | -0.0418543 | 0.0825360 | 0.2910000 | -0.2036249 | 0.1199162 | 0.9590095 | 0.8157683 | 1.127402 |
AKI_ZW | COVID19_B2 | Simple median | 33 | -0.0069752 | 0.0628845 | 0.9116792 | -0.1302287 | 0.1162784 | 0.9930491 | 0.8778946 | 1.123309 |
AKI_ZW | COVID19_B2 | Weighted median | 33 | 0.0606286 | 0.0569320 | 0.2869076 | -0.0509581 | 0.1722152 | 1.0625042 | 0.9503185 | 1.187933 |
AKI_ZW | COVID19_B2 | Penalised weighted median | 33 | 0.0658496 | 0.0604267 | 0.2758266 | -0.0525868 | 0.1842859 | 1.0680660 | 0.9487720 | 1.202360 |
AKI_ZW | COVID19_B2 | Inverse variance weighted (fixed effects) | 33 | 0.0122207 | 0.0358888 | 0.7334677 | -0.0581214 | 0.0825628 | 1.0122957 | 0.9435354 | 1.086067 |
AKI_ZW | COVID19_B2 | Inverse variance weighted (multiplicative random effects) | 33 | 0.0122207 | 0.0456394 | 0.7888785 | -0.0772325 | 0.1016739 | 1.0122957 | 0.9256746 | 1.107022 |
AKI_ZW | COVID19_B2 | Simple mode | 33 | -0.0463340 | 0.1216877 | 0.7058964 | -0.2848418 | 0.1921738 | 0.9547231 | 0.7521333 | 1.211881 |
AKI_ZW | COVID19_B2 | Weighted mode | 33 | 0.0426991 | 0.0626283 | 0.5002798 | -0.0800524 | 0.1654505 | 1.0436238 | 0.9230680 | 1.179925 |
AKI_ZW | COVID19_B2 | Weighted mode (NOME) | 33 | 0.0426991 | 0.0639973 | 0.5094265 | -0.0827356 | 0.1681337 | 1.0436238 | 0.9205946 | 1.183095 |
AKI_ZW | COVID19_B2 | Simple mode (NOME) | 33 | -0.0463340 | 0.1182215 | 0.6977117 | -0.2780481 | 0.1853801 | 0.9547231 | 0.7572604 | 1.203676 |
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19_B2
## - outcome: AKI_ZW
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) 0.01222076 0.04563936 0.2677679 0.7888780
## Iterative 0.01222076 0.04563936 0.2677679 0.7888780
## Exact (FE) 0.01248151 0.03588968 0.3477742 0.7280098
## Exact (RE) 0.01239948 0.04652568 0.2665083 0.7915576
##
##
## Residual standard error: 1.272 on 32 degrees of freedom
##
## F-statistic: 0.07 on 1 and 32 DF, p-value: 0.791
## Q-Statistic for heterogeneity: 51.74766 on 32 DF , p-value: 0.01501886
##
## No significant outliers
## Number of iterations = 2
## [1] "No significant Outliers"
COVID-19 vs Population
mr_dat <- read_csv('data/harmonized_data_C2_JiangL2021.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_J | COVID19_C2 | Maximum likelihood | 14 | 0.1212403 | 0.2269174 | 0.5931392 | -0.3235179 | 0.5659984 | 1.1288961 | 0.7235990 | 1.761205 |
AKI_J | COVID19_C2 | MR Egger | 14 | -0.2896660 | 0.3962789 | 0.4788309 | -1.0663727 | 0.4870408 | 0.7485136 | 0.3442550 | 1.627493 |
AKI_J | COVID19_C2 | MR Egger (bootstrap) | 14 | -0.9699419 | 0.6139944 | 0.0550000 | -2.1733709 | 0.2334870 | 0.3791051 | 0.1137934 | 1.262996 |
AKI_J | COVID19_C2 | Simple median | 14 | 0.5427759 | 0.3464651 | 0.1172057 | -0.1362956 | 1.2218474 | 1.7207770 | 0.8725847 | 3.393451 |
AKI_J | COVID19_C2 | Weighted median | 14 | -0.0654631 | 0.3250714 | 0.8404010 | -0.7026030 | 0.5716769 | 0.9366336 | 0.4952944 | 1.771235 |
AKI_J | COVID19_C2 | Penalised weighted median | 14 | -0.0654631 | 0.3133303 | 0.8345055 | -0.6795905 | 0.5486643 | 0.9366336 | 0.5068245 | 1.730940 |
AKI_J | COVID19_C2 | Inverse variance weighted (fixed effects) | 14 | 0.1196231 | 0.2262448 | 0.5969906 | -0.3238167 | 0.5630629 | 1.1270720 | 0.7233828 | 1.756043 |
AKI_J | COVID19_C2 | Inverse variance weighted (multiplicative random effects) | 14 | 0.1196231 | 0.1914222 | 0.5320252 | -0.2555644 | 0.4948106 | 1.1270720 | 0.7744792 | 1.640188 |
AKI_J | COVID19_C2 | Simple mode | 14 | 0.4345967 | 0.4910417 | 0.3922057 | -0.5278450 | 1.3970384 | 1.5443400 | 0.5898748 | 4.043208 |
AKI_J | COVID19_C2 | Weighted mode | 14 | -0.1161206 | 0.3426665 | 0.7401162 | -0.7877469 | 0.5555057 | 0.8903678 | 0.4548685 | 1.742822 |
AKI_J | COVID19_C2 | Weighted mode (NOME) | 14 | -0.1161206 | 0.3344368 | 0.7339884 | -0.7716168 | 0.5393756 | 0.8903678 | 0.4622651 | 1.714936 |
AKI_J | COVID19_C2 | Simple mode (NOME) | 14 | 0.4345967 | 0.5389195 | 0.4345046 | -0.6216856 | 1.4908789 | 1.5443400 | 0.5370385 | 4.440997 |
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19_C2
## - outcome: AKI_J
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) 0.1196221 0.1914224 0.6249121 0.5320288
## Iterative 0.1196221 0.1914224 0.6249121 0.5320288
## Exact (FE) 0.1203102 0.2262650 0.5317223 0.5949184
## Exact (RE) 0.1203221 0.2210885 0.5442261 0.5954976
##
##
## Residual standard error: 0.846 on 13 degrees of freedom
##
## F-statistic: 0.39 on 1 and 13 DF, p-value: 0.543
## Q-Statistic for heterogeneity: 9.304536 on 13 DF , p-value: 0.749574
##
## No significant outliers
## Number of iterations = 2
## [1] "No significant Outliers"
COVID-19 vs Population
mr_dat <- read_csv('data/harmonized_data_C2_Zhouw.csv')
mr_res <- mr(mr_dat, method_list = c(
"mr_two_sample_ml", "mr_egger_regression", "mr_egger_regression_bootstrap",
"mr_simple_median", "mr_weighted_median", "mr_penalised_weighted_median",
"mr_ivw_fe", "mr_ivw_mre",
"mr_simple_mode", "mr_weighted_mode", "mr_weighted_mode_nome", "mr_simple_mode_nome"
))
res_single <- mr_singlesnp(mr_dat, all_method = c("mr_ivw_fe", "mr_egger_regression", "mr_weighted_median", "mr_weighted_mode")) %>% as_tibble()
odd <- generate_odds_ratios(mr_res)
dt <-odd[,3:14]
kbl(dt) %>%
kable_styling(bootstrap_options = c("striped", "hover","bordered"))
outcome | exposure | method | nsnp | b | se | pval | lo_ci | up_ci | or | or_lci95 | or_uci95 |
---|---|---|---|---|---|---|---|---|---|---|---|
AKI_ZW | COVID19_C2 | Maximum likelihood | 14 | -0.0435677 | 0.0949501 | 0.6463426 | -0.2296698 | 0.1425344 | 0.9573677 | 0.7947960 | 1.1531927 |
AKI_ZW | COVID19_C2 | MR Egger | 14 | -0.4046554 | 0.2059765 | 0.0730472 | -0.8083694 | -0.0009415 | 0.6672067 | 0.4455841 | 0.9990589 |
AKI_ZW | COVID19_C2 | MR Egger (bootstrap) | 14 | -0.5959719 | 0.2714976 | 0.0160000 | -1.1281071 | -0.0638367 | 0.5510268 | 0.3236453 | 0.9381582 |
AKI_ZW | COVID19_C2 | Simple median | 14 | 0.2652062 | 0.1741118 | 0.1277099 | -0.0760529 | 0.6064654 | 1.3036998 | 0.9267672 | 1.8339376 |
AKI_ZW | COVID19_C2 | Weighted median | 14 | -0.2307044 | 0.1319721 | 0.0804416 | -0.4893697 | 0.0279610 | 0.7939742 | 0.6130126 | 1.0283556 |
AKI_ZW | COVID19_C2 | Penalised weighted median | 14 | -0.2414703 | 0.1358806 | 0.0755555 | -0.5077962 | 0.0248556 | 0.7854721 | 0.6018204 | 1.0251671 |
AKI_ZW | COVID19_C2 | Inverse variance weighted (fixed effects) | 14 | -0.0445776 | 0.0941724 | 0.6359554 | -0.2291556 | 0.1400004 | 0.9564014 | 0.7952048 | 1.1502743 |
AKI_ZW | COVID19_C2 | Inverse variance weighted (multiplicative random effects) | 14 | -0.0445776 | 0.1326073 | 0.7367484 | -0.3044879 | 0.2153327 | 0.9564014 | 0.7375010 | 1.2402745 |
AKI_ZW | COVID19_C2 | Simple mode | 14 | 0.4008670 | 0.2953012 | 0.1977260 | -0.1779233 | 0.9796573 | 1.4931187 | 0.8370067 | 2.6635432 |
AKI_ZW | COVID19_C2 | Weighted mode | 14 | -0.2241636 | 0.1345748 | 0.1196697 | -0.4879303 | 0.0396030 | 0.7991844 | 0.6138957 | 1.0403977 |
AKI_ZW | COVID19_C2 | Weighted mode (NOME) | 14 | -0.2241636 | 0.1412185 | 0.1364476 | -0.5009519 | 0.0526246 | 0.7991844 | 0.6059536 | 1.0540339 |
AKI_ZW | COVID19_C2 | Simple mode (NOME) | 14 | 0.4008670 | 0.2960719 | 0.1988220 | -0.1794339 | 0.9811679 | 1.4931187 | 0.8357432 | 2.6675700 |
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_errorbarh()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
## Converting:
## - exposure: COVID19_C2
## - outcome: AKI_ZW
##
## Radial IVW
##
## Estimate Std.Error t value Pr(>|t|)
## Effect (Mod.2nd) -0.04457683 0.13260732 -0.3361567 0.7367527
## Iterative -0.04457683 0.13260732 -0.3361567 0.7367527
## Exact (FE) -0.04533037 0.09417935 -0.4813196 0.6302894
## Exact (RE) -0.04494569 0.14202580 -0.3164614 0.7566764
##
##
## Residual standard error: 1.408 on 13 degrees of freedom
##
## F-statistic: 0.11 on 1 and 13 DF, p-value: 0.742
## Q-Statistic for heterogeneity: 25.77324 on 13 DF , p-value: 0.0182323
##
## No significant outliers
## Number of iterations = 2
## [1] "No significant Outliers"