From 0e258c25e1de1c32581af75bf184113c5f360567 Mon Sep 17 00:00:00 2001 From: Ben Gyori Date: Thu, 23 Jan 2025 13:24:33 -0500 Subject: [PATCH] Propagate background gene sets into ORA functions --- src/indra_cogex/analysis/gene_analysis.py | 6 ++++-- src/indra_cogex/client/enrichment/discrete.py | 20 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/indra_cogex/analysis/gene_analysis.py b/src/indra_cogex/analysis/gene_analysis.py index 277329bb3..0f2a8aa89 100644 --- a/src/indra_cogex/analysis/gene_analysis.py +++ b/src/indra_cogex/analysis/gene_analysis.py @@ -80,7 +80,8 @@ def discrete_analysis( ) if background_gene_list: - background_gene_ids, _ = list(parse_gene_list(background_gene_list)) + background_genes, _ = parse_gene_list(background_gene_list) + background_gene_ids = list(background_genes) else: background_gene_ids = None @@ -97,7 +98,8 @@ def discrete_analysis( if analysis_name in {"go", "wikipathways", "reactome", "phenotype"}: analysis_result = analysis_func( client=client, gene_ids=gene_set, method=method, alpha=alpha, - keep_insignificant=keep_insignificant + keep_insignificant=keep_insignificant, + background_gene_ids=background_gene_ids ) else: # Run INDRA analysis if enabled diff --git a/src/indra_cogex/client/enrichment/discrete.py b/src/indra_cogex/client/enrichment/discrete.py index 7a883f652..0b8c4082d 100644 --- a/src/indra_cogex/client/enrichment/discrete.py +++ b/src/indra_cogex/client/enrichment/discrete.py @@ -215,7 +215,9 @@ def go_ora( if not background_gene_ids else len(background_gene_ids) ) - return _do_ora(get_go(client=client), query=gene_ids, count=count, **kwargs) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None + return _do_ora(get_go(client=client, background_gene_ids=bg_genes), + query=gene_ids, count=count, **kwargs) def wikipathways_ora( @@ -249,8 +251,10 @@ def wikipathways_ora( if not background_gene_ids else len(background_gene_ids) ) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None return _do_ora( - get_wikipathways(client=client), query=gene_ids, count=count, **kwargs + get_wikipathways(client=client, background_gene_ids=bg_genes), + query=gene_ids, count=count, **kwargs ) @@ -285,7 +289,9 @@ def reactome_ora( if not background_gene_ids else len(background_gene_ids) ) - return _do_ora(get_reactome(client=client), query=gene_ids, count=count, **kwargs) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None + return _do_ora(get_reactome(client=client, background_gene_ids=bg_genes), + query=gene_ids, count=count, **kwargs) @autoclient() @@ -321,8 +327,10 @@ def phenotype_ora( if not background_gene_ids else len(background_gene_ids) ) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None return _do_ora( - get_phenotype_gene_sets(client=client), query=gene_ids, count=count, **kwargs + get_phenotype_gene_sets(client=client, background_gene_ids=bg_genes), + query=gene_ids, count=count, **kwargs ) @@ -367,11 +375,13 @@ def indra_downstream_ora( if not background_gene_ids else len(background_gene_ids) ) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None return _do_ora( get_entity_to_regulators( client=client, minimum_evidence_count=minimum_evidence_count, minimum_belief=minimum_belief, + background_gene_ids=bg_genes ), query=gene_ids, count=count, @@ -420,11 +430,13 @@ def indra_upstream_ora( if not background_gene_ids else len(background_gene_ids) ) + bg_genes = frozenset(background_gene_ids) if background_gene_ids else None return _do_ora( get_entity_to_targets( client=client, minimum_evidence_count=minimum_evidence_count, minimum_belief=minimum_belief, + background_gene_ids=bg_genes ), query=gene_ids, count=count,