Title: | graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture |
---|---|
Description: | Genome-wide association studies (GWAS) is a widely used tool for identification of genetic variants associated with phenotypes and diseases, though complex diseases featuring many genetic variants with small effects present difficulties for traditional these studies. By leveraging pleiotropy, the statistical power of a single GWAS can be increased. This package provides functions for fitting graph-GPA, a statistical framework to prioritize GWAS results by integrating pleiotropy. 'GGPA' package provides user-friendly interface to fit graph-GPA models, implement association mapping, and generate a phenotype graph. |
Authors: | Dongjun Chung, Hang J. Kim, Carter Allen |
Maintainer: | Dongjun Chung <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.19.0 |
Built: | 2024-12-21 05:57:19 UTC |
Source: | https://github.com/bioc/GGPA |
This package provides functions for fitting graph-GPA, a statistical framework to prioritize GWAS results by integrating pleiotropy.
Package: | GGPA |
Type: | Package |
Version: | 0.99.11 |
Date: | 2018-01-15 |
License: | GPL (>= 2) |
LazyLoad: | yes |
This package contains a main class, GGPA
, which represents graph-GPA model fit.
This package contains four main methods,
GGPA
, assoc
, and plot
.
GGPA
method fits the graph-GPA model
and assoc
method implements association mapping.
plot
method provides a graph representing genetic relationship among phenotypes.
Hang J. Kim and Dongjun Chung
Maintainer: Hang J. Kim <[email protected]>, Dongjun Chung <[email protected]>
Chung D, Kim H, and Zhao H (2016), "graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture," 13(2): e1005388
Kim H, Yu Z, Lawson A, Zhao H, and Chung D (2018), "Improving SNP prioritization and pleiotropic architecture estimation by incorporating prior knowledge using graph-GPA," Bioinformatics, bty061.
# load simulation data data(simulation) # fit graph-GPA model fit <- GGPA( simulation$pmat, nBurnin=200, nMain=200 ) fit # fit graph-GPA model using a prior phenotype graph # as an example, edge 6-7 added & edge 2-3 removed in pgraph pgraph <- matrix( 0, ncol(simulation$pmat), ncol(simulation$pmat) ) pgraph[1,2] <- pgraph[1,3] <- pgraph[6,7] <- pgraph[4,5] <- 1 fit.pg <- GGPA( simulation$pmat, pgraph, nBurnin=200, nMain=200 ) fit.pg # association mapping for each phenotype head(assoc( fit, FDR=0.1, fdrControl="global" )) # hypothesis testing for 1st and 2nd phenotype pair head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 )) # plot phenotype graph plot(fit) plot(fit.pg)
# load simulation data data(simulation) # fit graph-GPA model fit <- GGPA( simulation$pmat, nBurnin=200, nMain=200 ) fit # fit graph-GPA model using a prior phenotype graph # as an example, edge 6-7 added & edge 2-3 removed in pgraph pgraph <- matrix( 0, ncol(simulation$pmat), ncol(simulation$pmat) ) pgraph[1,2] <- pgraph[1,3] <- pgraph[6,7] <- pgraph[4,5] <- 1 fit.pg <- GGPA( simulation$pmat, pgraph, nBurnin=200, nMain=200 ) fit.pg # association mapping for each phenotype head(assoc( fit, FDR=0.1, fdrControl="global" )) # hypothesis testing for 1st and 2nd phenotype pair head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 )) # plot phenotype graph plot(fit) plot(fit.pg)
Association mapping.
assoc( object, ... ) ## S4 method for signature 'GGPA' assoc( object, FDR=0.05, fdrControl="global", i=NULL, j=NULL )
assoc( object, ... ) ## S4 method for signature 'GGPA' assoc( object, FDR=0.05, fdrControl="global", i=NULL, j=NULL )
object |
A GGPA model fit as obtained by GGPA(). |
FDR |
The desired FDR level. |
fdrControl |
Method to control FDR. Possible values are "global" (global FDR control) and "local" (local FDR control). Default is "global". |
i |
Index for the first phenotype used in association mapping. See the details about how users can specify the pattern. |
j |
Index for the second phenotype used in association mapping. See the details about how users can specify the pattern. |
... |
Other parameters to be passed through to generic |
assoc
uses the direct posterior probability approach of Newton et al. (2004)
to control global FDR in association mapping.
By default (i.e., i=NULL, j=NULL
), assoc
implements association mapping for each phenotype. If users are interested in identifying SNPs associated with a pair of phenotypes, users can specify indices of phenotypes of interest using the arguments i
and j
. Note that both i
and j
should be either NULL or numeric.
If i=NULL, j=NULL
, returns a binary matrix indicating association of SNPs for each phenotype,
where its rows and columns match those of input p-value matrix for function GGPA
.
Otherwise, returns a binary vector indicating association of SNPs for i-th and j-th phenotype pair.
Hang J. Kim and Dongjun Chung
Chung D, Kim H, and Zhao H (2016), "graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture," 13(2): e1005388
Kim H, Yu Z, Lawson A, Zhao H, and Chung D (2017), "Improving SNP prioritization and pleiotropic architecture estimation by incorporating prior knowledge using graph-GPA."
Newton MA, Noueiry A, Sarkar D, and Ahlquist P (2004), "Detecting differential gene expression with a semiparametric hierarchical mixture method," Biostatistics, Vol. 5, pp. 155-176.
# Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Association mapping with FDR of 0.1 and global control head(assoc( fit, FDR=0.1, fdrControl="global" )) # We may specift i = 1 and j = 2 if we are interested in that specific phenotype head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 ))
# Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Association mapping with FDR of 0.1 and global control head(assoc( fit, FDR=0.1, fdrControl="global" )) # We may specift i = 1 and j = 2 if we are interested in that specific phenotype head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 ))
Fit graph-GPA model.
GGPA( gwasPval, pgraph=NULL, nBurnin=10000, nMain=40000, lbPval=1e-10, verbose=1 )
GGPA( gwasPval, pgraph=NULL, nBurnin=10000, nMain=40000, lbPval=1e-10, verbose=1 )
gwasPval |
p-value matrix from GWAS data, where row and column correspond to SNP and phenotype, respectively. |
pgraph |
A binary matrix representing the prior phenotype graph,
where its rows and columns match the columns of |
nBurnin |
Number of burn-in iterations. Default is 10000. |
nMain |
Number of main MCMC iterations. Default is 40000. |
lbPval |
Lower bound for GWAS p-value.
Any GWAS p-values smaller than |
verbose |
Amount of progress report during the fitting procedure. Possible values are 0 (minimal output), 1, 2, or 3 (maximal output). Default is 1. |
GGPA
fits the graph-GPA model. It requires to provide GWAS p-value to gwasPval
. If a phenotype graph is provided in pgraph
, it is utilized to guide the phenotype graph estimation. Based on this GGPA fit, assoc
implements association mapping and plot
provides a phenotype graph.
Construct GGPA
class object.
Hang J. Kim and Dongjun Chung
Chung D, Kim H, and Zhao H (2016), "graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture," 13(2): e1005388
Kim H, Yu Z, Lawson A, Zhao H, and Chung D (2018), "Improving SNP prioritization and pleiotropic architecture estimation by incorporating prior knowledge using graph-GPA," Bioinformatics, bty061.
# Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Association mapping with FDR of 0.1 and global control head(assoc( fit, FDR=0.1, fdrControl="global" )) # We may specift i = 1 and j = 2 if we are interested in that specific phenotype head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 )) # plot the GGPA model fit plot(fit)
# Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Association mapping with FDR of 0.1 and global control head(assoc( fit, FDR=0.1, fdrControl="global" )) # We may specift i = 1 and j = 2 if we are interested in that specific phenotype head(assoc( fit, FDR=0.1, fdrControl="global", i=1, j=2 )) # plot the GGPA model fit plot(fit)
This class represents graph-GPA model fit.
Objects can be created by calls of the form new("GGPA", ...)
.
fit
:Object of class "list"
,
representing the MCMC draws.
summary
:Object of class "list"
,
representing the summary statistics.
setting
:Object of class "list"
,
representing the setting for graph-GPA model fitting.
gwasPval
:Object of class "matrix"
,
representing the p-value matrix from GWAS data.
pgraph
:Object of class "matrix"
,
representing the prior phenotype graph.
signature(object = "GGPA")
: provide brief summary of the object.
signature(x = "GGPA", y = "missing", pCutoff = 0.5, betaCI = 0.95)
: plot a phenotype graph.
Nodes i and j are connected if the posterior probability of E_ij > pCutoff
and the posterior probability of beta_ij > betaCI
.
signature(object = "GGPA", i=NULL, j=NULL)
: provide local FDR.
By default (i.e., i=NULL, j=NULL
),
it returns a matrix of local FDR that a SNP is not associated with each phenotype (i.e., marginal FDR),
where the order of columns is same as that in input GWAS data.
If phenotype indices i and j are specified, a vector of corresponding local FDR is provided.
signature(object = "GGPA")
:
extract parameter estimates from graph-GPA model fit.
Hang J. Kim, Dongjun Chung
Chung D, Kim H, and Zhao H (2016), "graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture," 13(2): e1005388
Kim H, Yu Z, Lawson A, Zhao H, and Chung D (2018), "Improving SNP prioritization and pleiotropic architecture estimation by incorporating prior knowledge using graph-GPA," Bioinformatics, bty061.
GGPA
.
showClass("GGPA") # Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Plot GGPA model fit plot(fit) head(fdr( fit )) head(fdr( fit, i=1, j=2 )) str(estimates( fit ))
showClass("GGPA") # Load the included simulation data data(simulation) # fit GGPA model with 200 iterations and a burn-in of 200 iterations # Note that we recommend more than 200 iterations in practice fit <- GGPA( simulation$pmat, nMain = 200, nBurnin = 200) # Plot GGPA model fit plot(fit) head(fdr( fit )) head(fdr( fit, i=1, j=2 )) str(estimates( fit ))
This is an simulation dataset.
data(simulation)
data(simulation)
simulation
list object containing simulation data (element Y) and its simulation setting (the remaining elements).
Hang J. Kim, Dongjun Chung
Chung D, Kim H, and Zhao H (2016), "graph-GPA: A graphical model for prioritizing GWAS results and investigating pleiotropic architecture," 13(2): e1005388
Kim H, Yu Z, Lawson A, Zhao H, and Chung D (2017), "Improving SNP prioritization and pleiotropic architecture estimation by incorporating prior knowledge using graph-GPA."
# The simulation data set is included with the GGPA package data(simulation) head(t(simulation$pmat))
# The simulation data set is included with the GGPA package data(simulation) head(t(simulation$pmat))