SeqBench

Functional Enrichment Analysis — GO & Reactome Over-Representation

Test a gene list for enriched GO terms and Reactome pathways with hypergeometric p-values and BH-FDR correction.

🌐 Runs on the SeqBench API — also callable via REST & MCP, and in bulk from the batch tools

Paste a gene list — for example the significant genes from a differential-expression result — and find out which GO terms and Reactome pathways are statistically over-represented in it. Each term or pathway is tested with the hypergeometric distribution against a background (by default, every gene in the bundled dataset, not the whole genome), and every tested term across all selected collections is corrected together with Benjamini-Hochberg FDR. Results are shown as a sortable table and as a bubble chart (fold enrichment vs. significance, bubble size = overlap count), and you can restrict the background to your own gene universe. KEGG gene sets are not included — KEGG's license does not permit bundling them — so coverage is GO + Reactome only.

0 gene(s) parsed

Advanced: custom background gene list

Paste a gene list (or load the example) to run enrichment.

Hypergeometric over-representation test per term/pathway, Benjamini-Hochberg FDR-corrected across every term tested in the selected collections. GO annotations are propagated to ancestor terms (true-path rule). GO and Reactome data are human only; KEGG is not included.

How to use the Functional Enrichment tool

  1. 1Paste a list of gene symbols, one per line or separated by commas/whitespace (or load the example).
  2. 2Pick which collections to test (GO biological process/molecular function/cellular component, Reactome) and, optionally, a custom background gene list and min/max term size.
  3. 3Review the sortable results table and bubble chart — sorted by FDR-adjusted q-value — and export the figure or share the query.

Frequently asked questions

Which databases does this cover?

Gene Ontology (biological process, molecular function, cellular component) and Reactome pathways, both restricted to human. KEGG is deliberately not included, since KEGG's license does not permit bundling its gene sets for redistribution.

What statistical test is used, and how is multiple testing handled?

A one-sided (over-representation) hypergeometric test per term/pathway, using a numerically stable log-gamma computation so it works at whole-transcriptome scale. Every term tested across all selected collections is corrected together in a single Benjamini-Hochberg FDR pass, which is the standard, more conservative choice versus correcting each collection separately.

What background/universe is used?

By default, every gene present anywhere in the bundled GO + Reactome data (the \"only annotated genes\" convention used by tools like g:Profiler) rather than the whole genome, since testing against the whole genome systematically overstates significance. You can supply your own background gene list instead — for example, only the genes that were expressed/detected in your experiment, which is the statistically preferable choice when you have that information.

Does GO annotation propagation matter here?

Yes — a gene annotated to a specific child term (e.g. \"double-strand break repair via homologous recombination\") is also credited to every broader ancestor term (e.g. \"DNA repair\", \"cellular response to DNA damage stimulus\") via the is_a/part_of hierarchy, matching the true-path rule every standard enrichment tool (clusterProfiler, topGO, g:Profiler, GOATOOLS) applies. Skipping this would silently under-count broader terms.

Is my gene list stored, and can I run this from code?

Your gene list is sent to the SeqBench API to run the enrichment test and is not stored. The same stateless tool is available via the REST API and the MCP server.

Related tools