R/annotate.r

#' Annotate GWAS makers with genomic features
#' 
#' @param object \code{\link{GWAS}} object
#' @param feature.list \code{FeatureList} object created with 
#' \code{\link{hub.features}} or \code{\link{local.features}}
#' 
#' @exportMethod annotate.gwas
#' 
#' @return \code{\link{AnnotatedGWAS}} object
#' 
#' @examples
#' \dontrun{
#' query <- list(DNaseI = c("Dnasen", "broadPeak", "rep1"))
#' feature.list <- hub.features(query)
#' scz <- annotate.gwas(scz, feature.list)
#' }

setGeneric("annotate.gwas", 
  function(object, feature.list) {
    standardGeneric("annotate.gwas")
})

#' @rdname annotate.gwas
setMethod("annotate.gwas", c(object = "GWAS", feature.list = "FeatureList"), 
  function(object, feature.list) {
    
    overlaps <- featureOverlaps(query = object, subject = feature.list)
    
    f.index <- lapply(overlaps, function(x) make.names(names(x)))
    overlaps <- do.call("DataFrame", as(overlaps, "list"))
    names(overlaps) <- unlist(f.index)
    
    mcols(object) <- DataFrame(mcols(object), overlaps)
    
    object <- new("AnnotatedGWAS", object, 
                  featureIndex = as(f.index, "SimpleList"))
      
    return(object)
})
aaronwolen/bingd documentation built on May 10, 2019, 4:04 a.m.