Skip to content

Commit

Permalink
Fetch enriched modules when summary is generated
Browse files Browse the repository at this point in the history
  • Loading branch information
memgonzales committed Dec 20, 2023
1 parent 1918320 commit 5e1d257
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 14 deletions.
36 changes: 30 additions & 6 deletions callbacks/summary/callbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ def disable_summary_button_upon_run(n_clicks, *_):
State('coexpression-submitted-clustering-algo', 'data'),
State('coexpression-submitted-parameter-slider', 'data'),
)
def display_summary_submitted_input(summary_is_submitted,
coexpression_is_submitted, genes, network, algo, submitted_parameter_slider):
if coexpression_is_submitted:
def display_summary_submitted_input(summary_submitted,
coexpression_submitted, genes, network, algo, submitted_parameter_slider):
if coexpression_submitted:
parameters = 0
if submitted_parameter_slider and algo in submitted_parameter_slider:
parameters = submitted_parameter_slider[algo]['value']
Expand All @@ -87,7 +87,7 @@ def display_summary_submitted_input(summary_is_submitted,
parameters = 30
genes = 'None'

if summary_is_submitted:
if summary_submitted:
return [
html.B('Co-Expression Network Analysis'),
html.Br(),
Expand Down Expand Up @@ -116,14 +116,38 @@ def display_summary_submitted_input(summary_is_submitted,
Output('summary-results-table', 'page_current', allow_duplicate=True),
State('homepage-submitted-genomic-intervals', 'data'),
State('coexpression-combined-genes', 'data'),
State('coexpression-submitted-addl-genes', 'data'),
State('coexpression-submitted-network', 'data'),
State('coexpression-submitted-clustering-algo', 'data'),
State('coexpression-submitted-parameter-slider', 'data'),
State('homepage-is-submitted', 'data'),
Input('summary-is-submitted', 'data'),
State('coexpression-is-submitted', 'data'),
prevent_initial_call=True
)
def display_summary_results(genomic_intervals, homepage_submitted, summary_submitted):
def display_summary_results(genomic_intervals,
combined_gene_ids, submitted_addl_genes, submitted_network, submitted_algo, submitted_parameter_slider,
homepage_submitted, summary_submitted, coexpression_submitted):
if coexpression_submitted:
parameters = 0
if submitted_parameter_slider and submitted_algo in submitted_parameter_slider:
parameters = submitted_parameter_slider[submitted_algo]['value']

else:
# Assume default coexpression network parameters
submitted_algo = 'clusterone'
submitted_network = 'OS-CX'
parameters = 30
combined_gene_ids = lift_over_util.get_genes_in_Nb(genomic_intervals)[
1]
submitted_addl_genes = []

if homepage_submitted and summary_submitted:
summary_results_df = make_summary_table(
genomic_intervals)
genomic_intervals, combined_gene_ids, submitted_addl_genes, submitted_network, submitted_algo, parameters)

columns = [{'id': x, 'name': x, 'presentation': 'markdown'}
for x in summary_results_df.columns]
Expand Down
32 changes: 24 additions & 8 deletions callbacks/summary/util.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from ..lift_over.util import *
from ..general_util import *
from ..coexpression.util import *

from collections import defaultdict


def get_liftover_summary(implicated_genes):
# The Nipponbare IDs are in the second column
NB_IDX = 1
NB_PREFIX = 'LOC_Os'

Expand Down Expand Up @@ -37,30 +39,44 @@ def get_num_pubmed_pubs(pubmed_str):
return pubmed_str.count('pubmed')


def get_qtl_summary(genomic_interval):
genes = get_genes_in_Nb(genomic_interval)[0]
def get_qtl_summary(genomic_intervals):
genes = get_genes_in_Nb(genomic_intervals)[0]
genes['# QTL Analyses'] = genes.apply(
lambda x: get_num_qtl_pubs(x['QTL Analyses']), axis=1)

return genes[['Name', '# QTL Analyses']]


def get_pubmed_summary(genomic_interval):
genes = get_genes_in_Nb(genomic_interval)[0]
def get_pubmed_summary(genomic_intervals):
genes = get_genes_in_Nb(genomic_intervals)[0]
genes['# PubMed Article IDs'] = genes.apply(
lambda x: get_num_pubmed_pubs(x['PubMed Article IDs']), axis=1)

return genes[['Name', '# PubMed Article IDs']]


def make_summary_table(genomic_interval):
def get_module_summary(genomic_intervals, combined_gene_ids, submitted_addl_genes, network, algo, parameters):
enriched_modules = do_module_enrichment_analysis(
combined_gene_ids, genomic_intervals, submitted_addl_genes, network, algo, parameters)

print(enriched_modules)

return None


def make_summary_table(genomic_intervals, combined_gene_ids, submitted_addl_genes, network, algo, parameters):
implicated_genes = get_all_genes(other_ref_genomes.keys(),
genomic_interval).values.tolist()
genomic_intervals).values.tolist()

liftover_summary = get_liftover_summary(implicated_genes)
qtl_summary = get_qtl_summary(genomic_interval)
pubmed_summary = get_pubmed_summary(genomic_interval)

qtl_summary = get_qtl_summary(genomic_intervals)
pubmed_summary = get_pubmed_summary(genomic_intervals)

module_summary = get_module_summary(
genomic_intervals, combined_gene_ids, submitted_addl_genes, network, algo, parameters)

# Merge the summaries
summary = liftover_summary.merge(
qtl_summary, on='Name', how='left', validate='one_to_one')
summary = summary.merge(pubmed_summary, on='Name',
Expand Down

0 comments on commit 5e1d257

Please sign in to comment.