goatools.goea.algorithms.elim module

The elim GOEA algorithm: decorrelate the GO graph by eliminating genes.

Alexa A, Rahnenfuehrer J, Lengauer T (2006). “Improved scoring of functional groups from gene expression data by decorrelating GO graph structure.” Bioinformatics 22(13):1600-1607.

Ported from topGO’s .sigGroups.elim (R/topGOalgo.R). The GO DAG is walked bottom-up. When a term is found significant, the genes annotated to it are marked “eliminated” in every one of its ancestors, so a broad parent term can no longer look enriched merely by inheriting the genes of a specific child.

class goatools.goea.algorithms.elim.ElimAlgorithm(cutoff=0.01, bonferroni=False)[source]

Bases: GoeaAlgorithm

Score GO terms bottom-up, eliminating the genes of significant children.

cutoff – a term is “significant”, and so eliminates its genes from its

ancestors, when its p-value is <= this. topGO’s default is 0.01, applied raw.

bonferroni – if True, use cutoff/N instead, where N is the number of terms

scored. The 2006 paper describes this Bonferroni-style adjustment, but topGO ships with the line commented out and uses the raw cutoff, so it is opt-in here.

name = 'elim'
default_alternative = 'greater'
pvals_precorrected = True
run(ctx)[source]

Score every GO ID in ctx.goids, bottom-up with gene elimination.