grassp.ds.gene_sets_go_cc

grassp.ds.gene_sets_go_cc#

gene_sets_go_cc(species='hsap', *, min_genes=None)[source]#

Cleaned, propagated GO cellular component, 1829 terms for human.

The finest of the bundled vocabularies. Raw GO CC is not usable as a label set – it mixes places a protein can be with groupings that only organise the ontology, and GOA’s high-throughput evidence codes dump most of the proteome into extracellular exosome – so this is the cleaned form: locational qualifiers only, high-throughput evidence dropped, propagated over is_a + part_of, generic terms removed, grouping terms whose descendants span three or more major organelles removed, and near-duplicates collapsed at Jaccard >= 0.9 keeping the most specific term.

At this granularity most terms are not separable in a fractionation profile, so set min_term_size when diffusing: of the 1829 terms only ~380 have 20 or more members in a typical 9,500-protein map, and a call to one of the remaining 1,400 is a statement about the annotation rather than about the data.

Labels are name (GO:id), matching both published grassp analyses; the bare GO id is also in the GMT’s description column.

Vendored build: 2026-09-24, from GO release 2026-06-19 (ontology 2026-06-15). grassp.datasets.gene_sets.provenance() returns the full record, and marker_curation/fetch_go_cc.py rebuilds it against another release.

Parameters:
species Literal['hsap', 'mmus', 'scer'] (default: 'hsap')

Only "hsap" is bundled.

min_genes int | None (default: None)

Drop terms with fewer than this many genes. This is a floor on the vocabulary; for a floor relative to the object being annotated – usually what you want – pass min_term_size to grassp.tl.independent_diffusion() instead.

Return type:

dict[str, list[str]]

Returns:

dict[str, list[str]] Mapping of name (GO:id) to gene symbols.

See also

gene_sets_curated

the coarse, experiment-resolvable compartments to start from.

grassp.tl.independent_diffusion

one-vs-rest diffusion, which these sets are for.

Examples

>>> import grassp as gr
>>> sets = gr.ds.gene_sets_go_cc()
>>> len(sets)
1829
>>> "nucleolus (GO:0005730)" in sets
True

Notes

The published builds additionally dropped terms covering over half of the dataset being annotated, which made the vocabulary dataset-dependent. Audited against both published populations that filter removed exactly one term, cytoplasm, so GO:0005737 is simply blacklisted here and the vocabulary is the same artifact for every dataset. 35 term names contain /, which h5ad rejects as an obsm column name.