#' 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.