masterBIOGEN.R

#!!!!!!! write the makejags fuction: y should be numeric 0/1, t-matrix should have reference at the first column

# libraries
library(devtools)
library(R2jags)
install_github('htx-r/GenericModelNMA',force = T)
library(GenericModelNMA)

# load data
source('cleanData.R') # contains the FOUR different datasets
# RCT-IPD
rct.ipd <-MSrelapse
table(rct.ipd$TRT01A)
# RCT-AD

rct.ad<-rct.ad[which(rct.ad$study=="Bornstein" | rct.ad$study=="Johnson"),]

# NRS-IPD
library(readxl)
nrs.ipd <-nrs.ipd

## *** # 1 # RCT-IPD-NMA
ref.index <- 4 # placebo index
# compute number of arms
data <- rct.ipd
var <- 'TRT01A'
data$studyID <- as.numeric(factor(data$STUDYID))
study_id <- unique(data$studyID)
na <-sapply(study_id, function(i) length(unique(data[data$studyID==i,var])))

#t<-fun.mat(rct.ipd,'TRT01A')
#c(sort(t[1,])[t[1,]==ref],unique(sort(t[1,]))[-ref])
t <- rbind(c(4,1,NA),c(4,1,2),c(4,3,NA))
jagsdataIPDnetmeta <- with(rct.ipd,list(y=as.numeric(RELAPSE2year)-1,treat=as.numeric(factor(TRT01A)),baseline=rep(ref.index,nrow(rct.ipd)),studyid=as.numeric(factor(STUDYID)),
                           t=t,np=nrow(rct.ipd),na=na,nt=length(levels(factor(TRT01A))),nIPD=length(unique(STUDYID)),ref=ref.index))

jagsmodelIPDnetmeta <- jags.parallel(data = jagsdataIPDnetmeta,inits=NULL,parameters.to.save = c('d','tau'),model.file = modelIPDnetmeta,
                                     n.chains=3,n.iter = 10000,n.burnin = 2000,DIC=F,n.thin = 5)
jagsmodelIPDnetmeta

## *** # 2 #  RCT-IPD-AD NMA
jagsdataIPDADnetmeta<- with(rct.ipd,list(
  nIPD=3,
  np=nrow(rct.ipd),
  studyid=as.numeric(factor(STUDYID)),
  y=as.numeric(RELAPSE2year)-1,
  t= rbind(c(4,1,NA),c(4,1,2),c(4,3,NA), c(4,2,NA),c(4,2,NA)),
  na=c(2,3,2,2,2),
  treat=as.numeric(factor(TRT01A)),
  baseline=rep(4,nrow(rct.ipd)),
  ref=4,
  nt=4,
  nAD=2,
  r=rbind(c(NA,11,NA,19),c(NA,89,NA,97)),
  n=rbind(c(NA,25,NA,25),c(NA,125,NA,126))
)
)

jagsmodelIPDADnetmeta <- jags.parallel(data = jagsdataIPDADnetmeta,inits=NULL,parameters.to.save = c('d','tau'),model.file = modelIPDADnetmeta,
                                       n.chains=3,n.iter = 10000,n.burnin = 2000,DIC=F,n.thin = 1)
jagsmodelIPDADnetmeta



## *** # 3 #  RCT-IPD-AD NMR - all studies
jagsdataIPDADnetmetareg<- with(rct.ipd,list(
  nIPD=3,
  np=nrow(rct.ipd),
  studyid=as.numeric(factor(STUDYID)),
  y=as.numeric(RELAPSE2year)-1,
  x=as.numeric(AGE),
  #xbar=unlist(sapply(unique(rct.ipd$STUDYID),function(i) rep(round(mean(rct.ipd[rct.ipd$STUDYID==i,'AGE'],na.rm = T),1),nrow(rct.ipd[rct.ipd$STUDYID==i,])))),
  xbar=unlist(sapply(unique(rct.ipd$STUDYID),function(i) rep(c(28,32,38),nrow(rct.ipd[rct.ipd$STUDYID==i,])))),
  t= rbind(c(4,1,NA),c(4,1,2),c(4,3,NA), c(4,2,NA),c(4,2,NA)),
  na=c(2,3,2,2,2),
  treat=as.numeric(factor(TRT01A)),
  baseline=rep(4,nrow(rct.ipd)),
  ref=4,
  nt=4,
  nAD=2,
  r=rbind(c(NA,11,NA,19),c(NA,89,NA,97)),
  n=rbind(c(NA,25,NA,25),c(NA,125,NA,126)),
  xbar.a =c(34.3,30)
)
)

jagsmodelIPDADnetmetareg <- jags.parallel(data = jagsdataIPDADnetmetareg,inits=NULL,parameters.to.save = c('d','tau','bb','bw'),model.file = modelIPDADnetmetareg,
                                       n.chains=3,n.iter = 1000,n.burnin = 200,DIC=F,n.thin = 1)
jagsmodelIPDADnetmetareg
## *** # 4 #  RCT-IPD-AD NMR - only DEFINE as IPD and Johnson as AD

rct.ipd_DEFINE <- rct.ipd[rct.ipd$STUDYID=='DEFINE',]
rct.ipd_DEFINE$TRT01A <- factor(rct.ipd_DEFINE$TRT01A,levels = c('Dimethyl fumarate','Glatiramer acetate','Placebo'))
jagsdataIPDADnetmetareg<- with(rct.ipd_DEFINE,list(
  nIPD=1,
  np=nrow(rct.ipd_DEFINE),
  studyid=as.numeric(factor(STUDYID)),
  y=as.numeric(RELAPSE2year)-1,
  x=as.numeric(AGE),
  xbar=rep(mean(AGE),nrow(rct.ipd_DEFINE)),
  t= rbind(c(3,1),c(3,2)),
  na=c(2,2),
  treat=as.numeric(as.factor(TRT01A)),
  baseline=rep(3,nrow(rct.ipd)),
  ref=3,
  nt=3,
  nAD=1,
  r=rbind(c(NA,89,97)),
  n=rbind(c(NA,125,126)),
  xbar.a =34.3
)
)
jagsmodelIPDADnetmetareg <- jags.parallel(data = jagsdataIPDADnetmetareg,inits=NULL,parameters.to.save = c('d','tau','bb','bw','LOR'),model.file = modelIPDADnetmetaregOneStudy,
                                          n.chains=3,n.iter = 1000,n.burnin = 200,DIC=F,n.thin = 1)
jagsmodelIPDADnetmetareg


# RCT-NRS-IPD-AD-NMA (naive approach)


# RCT-NRS-IPD-AD NMA (design-adjusted)


# RCT-NRS-IPD-AD-NMA (prior)

#















# ref.index <- 4 # placebo index
# data <- rct.ipd
# data$TRT01A <- factor(c(as.character(data$TRT01A)),levels=mm)
# var <- 'TRT01A'
# data$studyID <- as.numeric(factor(data$STUDYID))
# study_id <- unique(data$studyID)
# na <-sapply(study_id, function(i) length(unique(data[data$studyID==i,var])))
# t <- rbind(c(1,4,NA),c(1,2,4),c(3,4,NA), c(2,4,NA),c(2,4,NA))
# jagsdataIPDnetmeta <- with(rct.ipd,list(y=as.numeric(RELAPSE2year)-1,treat=as.numeric(factor(TRT01A)),baseline=rep(ref.index,nrow(rct.ipd)),studyid=as.numeric(factor(STUDYID)),
#                                         t=t,np=nrow(rct.ipd),na=na,nt=length(levels(factor(TRT01A))),nIPD=length(unique(STUDYID)),ref=ref.index))
#
# treat.ipd <- unique(as.character(rct.ipd$TRT01A))
#
# mm <-  levels(factor(c(rct.ad$treat,as.character(rct.ipd$TRT01A))))
# as.numeric(factor(c(as.character(rct.ipd$TRT01A)),levels=mm))
#
# ipd.ad.treat <- data.frame(treat=c(15,4,15,4,6,15,14,15,2,factor(c(as.character(rct.ad$treat)),levels=mm)))
# aggregate(TRT01A~STUDYID,data=rct.ipd,FUN = unique)
# rct.ipd$TRT01A
htx-r/GenericModelNMA documentation built on Nov. 10, 2020, 2:36 a.m.