GPA-package {GPA} | R Documentation |
This package provides functions for fitting GPA, a statistical approach to prioritizing GWAS results by integrating pleiotropy information and annotation data, along with ShinyGPA, a visualization toolkit to investigate the pleiotropic architecture using GWAS results.
Package: | GPA |
Type: | Package |
Version: | 0.99.9 |
Date: | 2020-04-14 |
License: | GPL (>= 2) |
LazyLoad: | yes |
This package contains a main class, GPA
, which represents GPA model fit.
This package contains four main methods for the GPA framework (Chung et al., 2014),
GPA
, assoc
, pTest
, and aTest
.
GPA
method fits the GPA model
and assoc
method implements association mapping.
pTest
and aTest
methods implement hypothesis testing
for pleiotropy and annotation enrichment, respectively.
This package contains two main methods for the ShinyGPA visualization toolkit (Kortemeier et al., 2017), fitAll
and shinyGPA
. fitAll
function generates all the intermediate results needed to run shinyGPA
. shinyGPA
opens the ShinyGPA interface, which takes the results generated from fitAll
as input.
Dongjun Chung, Emma Kortemeier
Maintainer: Dongjun Chung <dongjun.chung@gmail.com>
Chung D*, Yang C*, Li C, Gelernter J, and Zhao H (2014), "GPA: A statistical approach to prioritizing GWAS results by integrating pleiotropy information and annotation data," PLoS Genetics, 10: e1004787. (* joint first authors)
Kortemeier E, Ramos PS, Hunt KJ, Kim HJ, Hardiman G, and Chung D (2018), "ShinyGPA: An interactive and dynamic visualization toolkit for genetic studies," PLOS One, 13(1): e0190949.
GPA
, assoc
, pTest
, aTest
,
GPA
, fitAll
, shinyGPA
.
## Not run: # simulation setting nBin <- 1000 pi1 <- 0.2 common <- 0.5 betaAlpha <- c( 0.6, 0.6 ) annP <- c( 0.2, 0.4, 0.4, 0.4 ) seed <- 12345 # simulation setting nCommon <- round( pi1 * common * nBin ) nUniq <- round( pi1 * ( 1 - common ) * nBin ) nBg <- nBin - 2 * nUniq - nCommon # M * K matrix of GWAS p-value set.seed( seed ) pvec1 <- c( rbeta( nCommon, betaAlpha[1], 1 ), rbeta( nUniq, betaAlpha[1], 1 ), runif( nUniq ), runif( nBg ) ) pvec2 <- c( rbeta( nCommon, betaAlpha[2], 1 ), runif( nUniq ), rbeta( nUniq, betaAlpha[2], 1 ), runif( nBg ) ) pmat <- cbind( pvec1, pvec2 ) # M * D matrix of annotation ann <- c( sample( c(1,0), nCommon, replace=TRUE, prob = c( annP[4], 1 - annP[4] ) ), sample( c(1,0), nUniq, replace=TRUE, prob = c( annP[2], 1 - annP[2] ) ), sample( c(1,0), nUniq, replace=TRUE, prob = c( annP[3], 1 - annP[3] ) ), sample( c(1,0), nBg, replace=TRUE, prob = c( annP[1], 1 - annP[1] ) ) ) # GPA without annotation data fit.GPA.noAnn <- GPA( pmat, NULL ) cov.GPA.noAnn <- cov( fit.GPA.noAnn ) # GPA with annotation data fit.GPA.wAnn <- GPA( pmat, ann ) cov.GPA.wAnn <- cov( fit.GPA.wAnn ) # GPA under pleiotropy H0 fit.GPA.pleiotropy.H0 <- GPA( pmat, NULL, pleiotropyH0=TRUE ) # association mapping assoc.GPA.wAnn <- assoc( fit.GPA.wAnn, FDR=0.05, fdrControl="global" ) # hypothesis testing for pleiotropy test.pleiotropy <- pTest( fit.GPA.noAnn, fit.GPA.pleiotropy.H0 ) # hypothesis testing for annotation enrichment test.annotation <- aTest( fit.GPA.noAnn, fit.GPA.wAnn ) # simulator function simulator <- function( risk.ind, nsnp=20000, alpha=0.6 ) { m <- length(risk.ind) p.sig <- rbeta( m, alpha, 1 ) pvec <- runif(nsnp) pvec[ risk.ind ] <- p.sig return(pvec) } # run simulation set.seed(12345) nsnp <- 1000 alpha <- 0.4 pmat <- matrix( NA, nsnp, 5 ) pmat[,1] <- simulator( c(1:200), nsnp=nsnp, alpha=alpha ) pmat[,2] <- simulator( c(51:250), nsnp=nsnp, alpha=alpha ) pmat[,3] <- simulator( c(401:600), nsnp=nsnp, alpha=alpha ) pmat[,4] <- simulator( c(451:750), nsnp=nsnp, alpha=alpha ) pmat[,5] <- simulator( c(801:1000), nsnp=nsnp, alpha=alpha ) # Fit GPA for all possible pairs of GWAS datasets out <- fitAll( pmat ) # Run the ShinyGPA app using the ouput from fitAll() shinyGPA(out) ## End(Not run)