###load example data for two studies:
### see ?seqMetaExample
data(seqMetaExample)
####run on each study:
cohort1 <- prepScores(Z=Z1, y~sex+bmi, SNPInfo = SNPInfo, data =pheno1)
cohort2 <- prepScores(Z=Z2, y~sex+bmi, SNPInfo = SNPInfo, data =pheno2)
#### combine results:
out <- singlesnpMeta(cohort1, cohort2, SNPInfo = SNPInfo)
head(out)
## Not run:
# ##compare
# bigZ <- matrix(NA,2*n,nrow(SNPInfo))
# colnames(bigZ) <- SNPInfo$Name
# for(gene in unique(SNPInfo$gene)) {
# snp.names <- SNPInfo$Name[SNPInfo$gene == gene]
# bigZ[1:n,SNPInfo$gene == gene][, snp.names \%in\% colnames(Z1)] <-
# Z1[, na.omit(match(snp.names,colnames(Z1)))]
# bigZ[(n+1):(2*n),SNPInfo$gene == gene][, snp.names \%in\% colnames(Z2)] <-
# Z2[, na.omit(match(snp.names,colnames(Z2)))]
# }
#
# pheno <- rbind(pheno1[ ,c("y","sex","bmi")], pheno2[ , c("y","sex","bmi")])
# out3 <- apply(bigZ, 2, function(z) {
# if(any(!is.na(z))) {
# z[is.na(z)] <- mean(z,na.rm=TRUE)
# mod <- lm(y ~ sex+bmi+c(rep(1,n),rep(0,n))+z, data=pheno)
# beta <- mod$coef["z"]
# se <- sqrt(vcov(mod)["z", "z"])
# p <- pchisq( (beta/se)^2,df=1,lower=F)
# return(c(beta,se,p))
# } else {
# return(c(0,Inf,1))
# }
# })
# out3 <- t(out3[,match(out$Name,colnames(out3))])
#
# ##plot
# par(mfrow=c(2,2))
# plot(x=out3[,1],y=out$beta, xlab="complete data (Wald)",
# ylab="meta-analysis (Score)", main="coefficients"); abline(0,1)
# plot(x=out3[,2],y=out$se, xlab="complete data (Wald)",
# ylab="meta-analysis (Score)", main="standard errors"); abline(0,1)
# plot(x=out3[,3],y=out$p, xlab="complete data (Wald)",
# ylab="meta-analysis (Score)", main="p-values"); abline(0,1)
# ## End(Not run)
Run the code above in your browser using DataLab