Two-sample Mendelian randomization Code

library(TwoSampleMR)
library(MRPRESSO)
lirary(data.table)
a<-extract_instruments(outcomes=c (' ebi-a-GCST90018947'),clump=T)
exp_d<-extract_outcome_data(snps=a$SNP, outcomes=" finn-b-K11_ABSCANAL", proxies=FALSE, maf_threshold=0.01)
mydata<-harmonise_data(exposure_dat=a, outcome_dat=exp_d, action=2)
mr_presso_result <- mr_presso(
  BetaOutcome = "beta.outcome", 
  BetaExposure = "beta.exposure", 
  SdOutcome = "se.outcome", 
  SdExposure = "se.exposure", 
  OUTLIERtest = TRUE,
  DISTORTIONtest = TRUE,
  data = mydata,
  NbDistribution = 1000,
  SignifThreshold = 0.05
)
res<-mr(mydata)
res_OR<-generate_odds_ratios(mr_res = mr(mydata))
het<-mr_heterogeneity(mydata)
pleio<-mr_pleiotropy_test(mydata)
write.csv(pleio," Horizontal pleiotropy.csv")
single<-mr_leaveoneout(mydata)
mr_leaveoneout_plot(single)
mr_scatter_plot(res2,mydata)
res_single<-mr_singlesnp(mydata)
mr_funnel_plot(res_single) 
res_single<-mr_singlesnp(mydata)
mr_forest_plot(res_single)


Multi-variable Mendelian randomization Code

library(MendelianRandomization)
library(TwoSampleMR)
library(MVMR)
library(data.table)
a<-fread("BMI.tsv")
b<-fread("T2DM.tsv")
c<-fread("FAD.tsv")
d<-fread("IR.tsv")
e<-fread("PA.tsv")
head(a)
head(b)
head(c)
head(d)
exp_a<-subset(a,p<5e-08)
exp_b<-subset(b,p<5e-08)
exp_c<-subset(c,p<5e-05)
exp_d<-subset(d,p<5e-08)
exp_a=clump_data(exp_a)
exp_b=clump_data(exp_b)
exp_c=clump_data(exp_c)
exp_d=clump_data(exp_d)
head(exp_a)
head(exp_b)
head(exp_c)
head(exp_d)
exp_a<-exp_a[,"SNP"]
exp_b<-exp_b[,"SNP"]
exp_c<-exp_c[,"SNP"]
exp_d<-exp_d[,"SNP"]
exp<-rbind(exp_a,exp_b,exp_c,exp_d)
exp<-unique(exp)   
exp<-clump_data(exp)
exp_a<-merge(exp,a,by.x = "SNP",by.y = "SNP")
exp_b<-merge(exp,b,by.x = "SNP",by.y = "SNP")
exp_c<-merge(exp,c,by.x = "SNP",by.y = "SNP")
exp_d<-merge(exp,d,by.x = "SNP",by.y = "SNP")
head(e)
exp_e<-merge(exp,e,by.x = "SNP",by.y = "SNP")
MRMVInputObject <- mr_mvinput(bx = cbind(exp_a$beta, exp_b$beta,exp_c$beta,exp_d$beta),
                              bxse = cbind(exp_a$se, exp_b$se,exp_c$se,exp_d$se),
                              by = exp_e$beta, 
                              byse = exp_e$se)
MRMVInputObject
#MV_IVW method
MRMVObject <- mr_mvivw(MRMVInputObject, 
                       model = "default",
                       correl = FALSE,
                       distribution = "normal",
                       alpha = 0.05)
MRMVObject
#MV_egger method
MRMVObject<-mr_mvegger(
  MRMVInputObject,
  orientate = 1,
  correl = FALSE,
  distribution = "normal",
  alpha = 0.05)
MRMVObject
#MV_LASSO method
MRMVObject<-mr_mvlasso(MRMVInputObject,
  orientate = 1,
  distribution = "normal",
  alpha = 0.05,
  lambda = numeric(0)
)
MRMVObject
#MV_median method
MRMVObject<-mr_mvmedian(
  MRMVInputObject,
  distribution = "normal",
  alpha = 0.05,
  iterations = 10000,
  seed = 314159265
)
MRMVObject
