From f2694b87409fe7be4ab1ff79f7db8c0c2a4bb9af Mon Sep 17 00:00:00 2001 From: 3211895 <34554433+3211895@users.noreply.github.com> Date: Mon, 8 Jul 2019 16:32:29 -0400 Subject: [PATCH] update --- DESCRIPTION | 19 ++++--- NAMESPACE | 25 +++++++--- R/IMAGE.R | 46 ++++++++++++++--- R/IMAGE_package.R | 10 ++++ R/exampledata.R | 15 ++++++ build/partial.rdb | Bin 3572 -> 2357 bytes data/exampledata.rda | Bin 0 -> 60620 bytes man/IMAGE-package.Rd | 29 +++-------- man/exampledata.Rd | 24 +++++++++ man/image.Rd | 116 +++++++++++++++++-------------------------- 10 files changed, 166 insertions(+), 118 deletions(-) create mode 100644 R/IMAGE_package.R create mode 100644 R/exampledata.R create mode 100644 data/exampledata.rda create mode 100644 man/exampledata.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 5f7a5cd..fe95c84 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,15 +1,18 @@ Package: IMAGE Type: Package -Title: What the Package Does Using Title Case +Title: Title: High-Powered Detection of Genetic Effects on DNA + Methylation Using Integrated Methylation QTL Mapping and + Allele-Specific Analysis Version: 1.0 -Date: 2019-03-01 -Author: Your Name -Maintainer: Your Name -Description: More details about what the package does. See - - for details on how to write this part. +Date: 2019-07-08 +Author: Yue Fan, Shiquan Sun, Xiang Zhou +Maintainer: Yue Fan +Description: MQTL mapping in bisulfite sequencing studies by fitting a binomial mixed model, incorporating allelic-specific methylation pattern. +Encoding: UTF-8 License: GPL (>= 2) +Depends: R (>= 3.6.0) Imports: Rcpp (>= 0.12.19),foreach,doParallel,parallel,Matrix LinkingTo: Rcpp, RcppArmadillo +RoxygenNote: 6.1.1 NeedsCompilation: yes -Packaged: 2019-06-21 18:09:38 UTC; yuef +Packaged: 2019-07-08 20:14:35 UTC; yuef diff --git a/NAMESPACE b/NAMESPACE index ed7b33c..bfdae30 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,10 +1,19 @@ -useDynLib(IMAGE, .registration=TRUE) +# Generated by roxygen2: do not edit by hand + export(image) -importFrom(Rcpp, evalCpp) -importFrom("stats", "binomial", "glm", "model.frame", "model.matrix", - "na.omit", "na.pass", "pchisq", "poisson", "var") -import(parallel) -import(foreach) -import(doParallel) import(Matrix) - +import(doParallel) +import(foreach) +import(parallel) +importFrom("stats","binomial") +importFrom("stats","glm") +importFrom("stats","lm") +importFrom("stats","model.frame") +importFrom("stats","model.matrix") +importFrom("stats","na.omit") +importFrom("stats","na.pass") +importFrom("stats","pchisq") +importFrom("stats","poisson") +importFrom("stats","var") +importFrom(Rcpp,evalCpp) +useDynLib(IMAGE, .registration=TRUE) diff --git a/R/IMAGE.R b/R/IMAGE.R index 1ad8a06..8875fd1 100644 --- a/R/IMAGE.R +++ b/R/IMAGE.R @@ -8,6 +8,36 @@ # University of Michigan, Department of Biostatistics ######################################################################################################################## +#' High-powered detection of genetic effects on DNA methylation using integrated methylation QTL mapping and allele-specific analysis. +#' +#' mQTL mapping in bisulfite sequencing studies by fitting a binomial mixed model, incorporating allelic-specific methylation pattern. +#' +#' IMAGE properly accounts for the count nature of bisulfite sequencing data and incorporates allele-specific methylation patterns from heterozygous individuals to enable more powerful mQTL discovery. +#' Binomial mixed models (BMM) are fitted using the penalized quasi-likelihood (PQL) method proposed by Breslow and Clayton (1993). +#' +#' @param geno a data list containing the genotype data. +#' @param data a data list containing the methylation data. +#' @param K a known kinship matrix. This matrix should be a positive semi-definite matrix with dimensions equal to the samplie size. +#' @param Covariates a matrix containing the covariates subject to adjustment (Default = NULL). +#' @param numCore a positive integer specifying the number of cores for parallel computing (default = 1). +#' @param fit.maxiter a positive integer specifying the maximum number of iterations when fitting the generalized linear mixed model (default = 500). +#' @param fit.tol a positive number specifying tolerance, the difference threshold for parameter estimates below which iterations should be stopped (default = 1e-5). +#' @param verbose a logical switch for printing detailed information (parameter estimates in each iteration) for testing and debugging purpose (default = TRUE). +#' @return \item{loc}{ordinal number of SNP-CpG pair being analyzed} +#' @return \item{numIDV}{number of observations of SNP-CpG pair being analyzed} +#' @return \item{beta}{the fixed effect parameter estimate for the predictor of interest.} +#' @return \item{se_beta}{the standard deviation of fixed effect.} +#' @return \item{pvalue}{P value for the fixed effect, based on the wald test.} +#' @return \item{h2}{heritability of the transformed rate.} +#' @return \item{sigma2}{total variance component.} +#' @return \item{converged}{a logical indicator for convergence.} +#' @references Breslow, N.E. and Clayton, D.G. (1993) Approximate Inference in Generalized Linear Mixed Models. Journal of the American Statistical Association 88, 9-25. +#' @author Yue Fan, Shiquan Sun, Xiang Zhou +#' @examples +#' data(exampledata) +#' res=image(exampledata$geno,exampledata$data,exampledata$K) + + image <- function(geno,data,K,Covariates=NULL,numCore=1,fit.maxiter=500,fit.tol=1e-5,verbose=TRUE) { @@ -25,7 +55,7 @@ image <- function(geno,data,K,Covariates=NULL,numCore=1,fit.maxiter=500,fit.tol= numCov <- dim(Covariates)[2] Covariates <- as.matrix(Covariates) } - + iVar=0 resBMM <- foreach(iVar=1:m, .combine=rbind, .errorhandling = 'remove')%dopar%{ res <- data.frame() @@ -81,7 +111,7 @@ image <- function(geno,data,K,Covariates=NULL,numCore=1,fit.maxiter=500,fit.tol= n2 <- 0 CountData <- c(data$y[homo, iVar]) LibSize <- c(data$r[homo, iVar]) - genotypes <- c(pheno1[homo]) + genotypes <- c(geno1[homo]) if(numCov>0) { covariates=Covariates[homo,] @@ -258,7 +288,7 @@ data_modify <- function(genotypes,ratio,LibSize,CountData) { ########################################################## # PQLseq FIT FUNCTION # ########################################################## -#' @export + PQLseq.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim = "AI", maxiter = 500, tol = 1e-5, verbose = FALSE) { names(RelatednessMatrix) <- paste("kins", 1:length(RelatednessMatrix), sep="") @@ -282,7 +312,7 @@ PQLseq.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim ########################################################## # PQLseq FIT AVERAGE INFORMATION FUNCTION # ########################################################## -#' @export + PQLseq.AI <- function(model0, RelatednessMatrix, tau = rep(0, length(RelatednessMatrix)+1), fixtau = rep(0, length(RelatednessMatrix)+1), maxiter = 500, tol = 1e-5, verbose = FALSE) { if(model0$family$family %in% c("binomial")){ @@ -475,7 +505,7 @@ PQLseq.AI <- function(model0, RelatednessMatrix, tau = rep(0, length(Relatedness ########################################################## # PQLseq2 FIT FUNCTION # ########################################################## -#' @export + PQLseq2.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim = "AI", maxiter = 500, tol = 1e-5, verbose = FALSE) { names(RelatednessMatrix) <- paste("kins", 1:length(RelatednessMatrix), sep="") @@ -483,7 +513,7 @@ PQLseq2.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim if(method.optim == "AI") { fixtau.old <- rep(0, length(RelatednessMatrix)+1) # to use average information method to fit alternative model - model1 <- PQLseq.AI2(model0, RelatednessMatrix, maxiter = maxiter, tol = tol, verbose = verbose) + model1 <- PQLseq2.AI(model0, RelatednessMatrix, maxiter = maxiter, tol = tol, verbose = verbose) fixtau.new <- 1*(model1$theta < 1.01 * tol) @@ -497,7 +527,7 @@ PQLseq2.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim while(any(fixtau.new != fixtau.old)) { fixtau.old <- fixtau.new # to use average information method to fit alternative model - model1 <- PQLseq.AI2(model0, RelatednessMatrix, fixtau = fixtau.old, maxiter = maxiter, tol = tol, verbose = verbose) + model1 <- PQLseq2.AI(model0, RelatednessMatrix, fixtau = fixtau.old, maxiter = maxiter, tol = tol, verbose = verbose) @@ -513,7 +543,7 @@ PQLseq2.fit <- function(model0, RelatednessMatrix, method = "REML", method.optim ########################################################## # PQLseq2 FIT AVERAGE INFORMATION FUNCTION # ########################################################## -#' @export + PQLseq2.AI <- function(model0, RelatednessMatrix, tau = rep(0, length(RelatednessMatrix)+1), fixtau = rep(0, length(RelatednessMatrix)+1), maxiter = 500, tol = 1e-5, verbose = FALSE) { n=nrow(RelatednessMatrix[[1]]) diff --git a/R/IMAGE_package.R b/R/IMAGE_package.R new file mode 100644 index 0000000..6003930 --- /dev/null +++ b/R/IMAGE_package.R @@ -0,0 +1,10 @@ +#' @useDynLib IMAGE, .registration=TRUE +#' @importFrom Rcpp evalCpp +#' @importFrom "stats" "binomial" "glm" "model.frame" "model.matrix" "na.omit" "na.pass" "pchisq" "poisson" "var" "lm" +#' @import parallel +#' @import foreach +#' @import doParallel +#' @import Matrix +#' @export image +NULL + diff --git a/R/exampledata.R b/R/exampledata.R new file mode 100644 index 0000000..e2994d3 --- /dev/null +++ b/R/exampledata.R @@ -0,0 +1,15 @@ +#' Example dataset +#' +#' A simulated example dataset of IMAGE. +#' The variables are as follows: +#' +#' @format Contains the following objects: +#' \describe{ +#' \item{geno}{a data list containing 2 haplotypes.} +#' \item{data}{a data list containing the methylated read counts and total read counts for each allele.} +#' \item{K}{a genetic relationship matrix.} +#' } +#' @examples +#' data(exampledata) +#' res=image(exampledata$geno,exampledata$data,exampledata$K) +"exampledata" \ No newline at end of file diff --git a/build/partial.rdb b/build/partial.rdb index c148bb33a9fc748a353382f85cd65d96bf4481ed..dec1d960143ef87b8e55c3ef462d41c559851ef1 100644 GIT binary patch literal 2357 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 b{6~sEz|IV>(53X6(hvUyp6h$w@-YAadU2Fu literal 3572 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 diff --git a/data/exampledata.rda b/data/exampledata.rda new file mode 100644 index 0000000000000000000000000000000000000000..3f37af1d0ab8fd7748fbe2e9aa0b79e76858f3aa GIT binary patch literal 60620 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 NUC9*TLO@lRpR@w{GgSZp literal 0 HcmV?d00001 diff --git a/man/IMAGE-package.Rd b/man/IMAGE-package.Rd index 986d9b0..0013558 100644 --- a/man/IMAGE-package.Rd +++ b/man/IMAGE-package.Rd @@ -3,30 +3,13 @@ \alias{IMAGE} \docType{package} \title{\packageTitle{IMAGE}} -\description{\packageDescription{IMAGE}} -\details{ - The DESCRIPTION file: \packageDESCRIPTION{IMAGE} - \packageIndices{IMAGE} +\description{\packageDescription{IMAGE}mQTL mapping in bisulfite sequencing studies by fitting a binomial mixed model, incorporating allelic-specific methylation pattern.} - This section should provide a more detailed overview of how to use the - package, including the most important functions. -} \author{ - \packageAuthor{IMAGE} - - Maintainer: \packageMaintainer{IMAGE} -} -\references{ - This optional section can contain literature or other references for - background information. + Yue Fan, Shiquan Sun, Xiang Zhou + Maintainer: Yue Fan } -% Optionally other standard keywords, one per line, -% from the file KEYWORDS in the R documentation. + \keyword{package} -\seealso{ - Optional links to other man pages -} -\examples{ - ## Optional simple examples of the most important functions - ## Use \dontrun{} around code to be shown but not executed -} + + diff --git a/man/exampledata.Rd b/man/exampledata.Rd new file mode 100644 index 0000000..2cecbcc --- /dev/null +++ b/man/exampledata.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/exampledata.R +\docType{data} +\name{exampledata} +\alias{exampledata} +\title{Example dataset} +\format{Contains the following objects: +\describe{ + \item{geno}{a data list containing 2 haplotypes.} + \item{data}{a data list containing the methylated read counts and total read counts for each allele.} + \item{K}{a genetic relationship matrix.} +}} +\usage{ +exampledata +} +\description{ +A simulated example dataset of IMAGE. +The variables are as follows: +} +\examples{ +data(exampledata) +res=image(exampledata$geno,exampledata$data,exampledata$K) +} +\keyword{datasets} diff --git a/man/image.Rd b/man/image.Rd index 07c6516..92bffdc 100644 --- a/man/image.Rd +++ b/man/image.Rd @@ -1,86 +1,60 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/IMAGE.R \name{image} \alias{image} -%- Also NEED an '\alias' for EACH other topic documented here. -\title{High-powered detection of genetic effects on DNA methylation using integrated methylation QTL mapping and allele-specific analysis. -%% ~~function to do ... ~~ -} -\description{ -%% ~~ A concise (1-5 lines) description of what the function does. ~~ -mQTL mapping in bisulfite sequencing studies by fitting a binomial mixed model, incorporating allelic-specific methylation pattern. -} +\title{High-powered detection of genetic effects on DNA methylation using integrated methylation QTL mapping and allele-specific analysis.} \usage{ -image <- function(geno,data,K,Covariates=NULL,numCore=1,fit.maxiter=500,fit.tol=1e-5,verbose=TRUE) +image(geno, data, K, Covariates = NULL, numCore = 1, + fit.maxiter = 500, fit.tol = 1e-05, verbose = TRUE) } -%- maybe also 'usage' for other objects documented here. \arguments{ - \item{geno}{ -%% ~~Describe \code{geno} here~~ -a data list containing the genotype data. -} - \item{data}{ -%% ~~Describe \code{data} here~~ -a data list containing the methylation data. -} - \item{K}{ -%% ~~Describe \code{K} here~~ -a known kinship matrix. This matrix should be a positive semi-definite matrix with dimensions equal to the samplie size. -} - \item{Covariates}{ -%% ~~Describe \code{Covariates} here~~ -a matrix containing the covariates subject to adjustment (Default = NULL). -} - \item{numCore}{ -%% ~~Describe \code{numCore} here~~ -a positive integer specifying the number of cores for parallel computing (default = 1). -} - \item{fit.maxiter}{ -%% ~~Describe \code{numCore} here~~ -a positive integer specifying the maximum number of iterations when fitting the generalized linear mixed model (default = 500). +\item{geno}{a data list containing the genotype data.} + +\item{data}{a data list containing the methylation data.} + +\item{K}{a known kinship matrix. This matrix should be a positive semi-definite matrix with dimensions equal to the samplie size.} + +\item{Covariates}{a matrix containing the covariates subject to adjustment (Default = NULL).} + +\item{numCore}{a positive integer specifying the number of cores for parallel computing (default = 1).} + +\item{fit.maxiter}{a positive integer specifying the maximum number of iterations when fitting the generalized linear mixed model (default = 500).} + +\item{fit.tol}{a positive number specifying tolerance, the difference threshold for parameter estimates below which iterations should be stopped (default = 1e-5).} + +\item{verbose}{a logical switch for printing detailed information (parameter estimates in each iteration) for testing and debugging purpose (default = TRUE).} } - \item{fit.maxiter}{ -%% ~~Describe \code{numCore} here~~ -a positive number specifying tolerance, the difference threshold for parameter estimates below which iterations should be stopped (default = 1e-5). +\value{ +\item{loc}{ordinal number of SNP-CpG pair being analyzed} + +\item{numIDV}{number of observations of SNP-CpG pair being analyzed} + +\item{beta}{the fixed effect parameter estimate for the predictor of interest.} + +\item{se_beta}{the standard deviation of fixed effect.} + +\item{pvalue}{P value for the fixed effect, based on the wald test.} + +\item{h2}{heritability of the transformed rate.} + +\item{sigma2}{total variance component.} + +\item{converged}{a logical indicator for convergence.} } +\description{ +mQTL mapping in bisulfite sequencing studies by fitting a binomial mixed model, incorporating allelic-specific methylation pattern. } \details{ -%% ~~ If necessary, more details than the description above ~~ +IMAGE properly accounts for the count nature of bisulfite sequencing data and incorporates allele-specific methylation patterns from heterozygous individuals to enable more powerful mQTL discovery. +Binomial mixed models (BMM) are fitted using the penalized quasi-likelihood (PQL) method proposed by Breslow and Clayton (1993). } -\value{ - \item{loc}{ordinal number of SNP-CpG pair being analyzed} - \item{numIDV}{number of observations of SNP-CpG pair being analyzed} - \item{beta}{the fixed effect parameter estimate for the predictor of interest.} - \item{se_beta}{the standard deviation of fixed effect.} - \item{pvalue}{P value for the fixed effect, based on the wald test.} - \item{h2}{heritability of the transformed rate.} - \item{sigma2}{total variance component.} - \item{converged}{a logical indicator for convergence.} -%% ~Describe the value returned -%% If it is a LIST, use -%% \item{comp1 }{Description of 'comp1'} -%% \item{comp2 }{Description of 'comp2'} -%% ... +\examples{ +data(exampledata) +res=image(exampledata$geno,exampledata$data,exampledata$K) } \references{ -%% ~put references to the literature/web site here ~ +Breslow, N.E. and Clayton, D.G. (1993) Approximate Inference in Generalized Linear Mixed Models. Journal of the American Statistical Association 88, 9-25. } \author{ -%% ~~who you are~~ -} -\note{ -%% ~~further notes~~ -} - -%% ~Make other sections like Warning with \section{Warning }{....} ~ - -\seealso{ -%% ~~objects to See Also as \code{\link{help}}, ~~~ -} -\examples{ - -data(ExampleData) -res=image(geno,data,K) +Yue Fan, Shiquan Sun, Xiang Zhou } -% Add one or more standard keywords, see file 'KEYWORDS' in the -% R documentation directory. -\keyword{ ~kwd1 }% use one of RShowDoc("KEYWORDS") -\keyword{ ~kwd2 }% __ONLY ONE__ keyword per line