R/fisherTestGO.R

Defines functions fisherTestGO

Documented in fisherTestGO

#' Performs Fisher's exact test for enrichment of GO annotation in given set of genes
#'
#' @param annotation GO ID
#' @param sig.genes genes in group of interest
#' @param gene.universe all genes
#' @param gene.list optional list of proteins to be enriched instead of an ontology
#' @param inverse inverse enrichment
#' @param GOdata GOdata object
#' @param silent print table
#'
#' @return
#' @export
#'
#'
fisherTestGO <- function(annotation, sig.genes, gene.universe, gene.list, inverse = F, GOdata, silent = T) {

  if(!hasArg(GOdata)) {

    GOdata <- build.GOdata()

  }

  gene.universe <- intersect(gene.universe, genes(GOdata))

  if(!hasArg(gene.list)) {
    go.genes <- intersect(gene.universe, genesInTerm(GOdata, annotation)[[1]])
  }

  else {
    go.genes <- intersect(gene.universe, gene.list)
  }


  sig.genes <- intersect(sig.genes, gene.universe)

  if(inverse) {
    sig.genes <- setdiff(gene.universe, sig.genes)
  }

  my.group <- new("classicCount", testStatistic = GOFisherTest, name = "fisher",
                  allMembers = gene.universe, groupMembers = go.genes,
                  sigMembers = sig.genes)


  if(!silent) {
    print(contTable(my.group))
  }

  runTest(my.group)


}
nicohuttmann/htmnanalysis documentation built on Dec. 6, 2020, 3:02 a.m.