Skip to content

Commit

Permalink
Display parameters for summary table
Browse files Browse the repository at this point in the history
  • Loading branch information
memgonzales committed Dec 17, 2023
1 parent 569b199 commit f26df83
Show file tree
Hide file tree
Showing 4 changed files with 187 additions and 4 deletions.
6 changes: 4 additions & 2 deletions callbacks/coexpression/callbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,8 @@ def display_coexpression_submitted_input(coexpression_is_submitted, genes, netwo
Output('coexpression-results-module-tabs-container', 'style'),
Output('coexpression-module-stats', 'children'),
Output('summary-is-submitted', 'data'),
State('homepage-submitted-genomic-intervals', 'data'),
Input('coexpression-combined-genes', 'data'),
Expand Down Expand Up @@ -272,12 +274,12 @@ def perform_module_enrichment(genomic_intervals, combined_gene_ids, submitted_ad
first_module = enriched_modules[0]
module = first_module
else:
return enriched_modules, first_module, {'display': 'none'}, stats
return enriched_modules, first_module, {'display': 'none'}, stats, False

if module:
first_module = module

return enriched_modules, first_module, {'display': 'block'}, stats
return enriched_modules, first_module, {'display': 'block'}, stats, False

raise PreventUpdate

Expand Down
119 changes: 119 additions & 0 deletions callbacks/summary/callbacks.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,26 @@ def submit_summary_input(summary_submitted_n_clicks, homepage_is_submitted,

raise PreventUpdate

@app.callback(
Output('summary-results-container', 'style'),
Input('summary-is-submitted', 'data'),
)
def display_summary_output(summary_is_submitted):
if summary_is_submitted:
return {'display': 'block'}

else:
return {'display': 'none'}

# @app.callback(
# Output('summary-submit', 'disabled'),

# Input('summary-submit', 'n_clicks'),
# Input('summary-results-table', 'data')
# )
# def disable_summary_button_upon_run(n_clicks, *_):
# return ctx.triggered_id == 'summary-submit' and n_clicks > 0

@app.callback(
Output('summary-converter-modal', 'is_open'),
Input('summary-converter-tooltip', 'n_clicks'),
Expand All @@ -100,3 +120,102 @@ def open_modals(summary_converter_tooltip_n_clicks):
return True

raise PreventUpdate

@app.callback(
Output('summary-input', 'children'),
Input('summary-is-submitted', 'data'),
State('coexpression-is-submitted', 'data'),
State('summary-valid-addl-genes', 'data'),
State('coexpression-submitted-network', 'data'),
State('coexpression-submitted-clustering-algo', 'data'),
State('coexpression-submitted-parameter-slider', 'data')
)
def display_summary_submitted_input(summary_is_submitted, coexpression_is_submitted, addl_genes, network, algo, submitted_parameter_slider):
if coexpression_is_submitted:
parameters = 0
if submitted_parameter_slider and algo in submitted_parameter_slider:
parameters = submitted_parameter_slider[algo]['value']

else:
# Assume default coexpression network parameters
algo = 'clusterone'
network = 'OS-CX'
parameters = 30

if summary_is_submitted:
if not addl_genes:
addl_genes = 'None'
else:
addl_genes = '; '.join(set(addl_genes))

return [html.B('Additional Genes: '), addl_genes,
html.Br(),
html.B('Selected Co-Expression Network: '), coexpression_util.get_user_facing_network(
network),
html.Br(),
html.B('Selected Module Detection Algorithm: '), coexpression_util.get_user_facing_algo(
algo),
html.Br(),
html.B('Selected Algorithm Parameter: '), coexpression_util.get_user_facing_parameter(algo, parameters)]

raise PreventUpdate

# =================
# Table-related
# =================

# @app.callback(
# Output('summary-results-table', 'data'),
# Output('summary-results-table', 'columns'),

# State('homepage-submitted-genomic-intervals', 'data'),

# Input('summary-combined-genes', 'data'),
# Input('summary-submitted-addl-genes', 'data'),

# State('homepage-is-submitted', 'data'),
# State('tfbs-is-submitted', 'data')
# )
# def display_enrichment_results(genomic_intervals, combined_genes, submitted_addl_genes,
# homepage_submitted, tfbs_is_submitted):
# # if homepage_submitted and tfbs_is_submitted:

# # return enrichment_results_df.to_dict('records'), columns, stats

# raise PreventUpdate

@app.callback(
Output('summary-results-table', 'filter_query', allow_duplicate=True),
Output('summary-results-table', 'page_current', allow_duplicate=True),
Input('summary-reset-table', 'n_clicks'),
prevent_initial_call=True
)
def reset_table_filter_page(*_):
return '', 0

# @app.callback(
# Output('tfbs-download-df-to-csv', 'data'),
# Input('tfbs-export-table', 'n_clicks'),
# State('tfbs-results-table', 'data'),
# State('homepage-submitted-genomic-intervals', 'data')
# )
# def download_tfbs_table_to_csv(download_n_clicks, tfbs_df, genomic_intervals):
# if download_n_clicks >= 1:
# df = pd.DataFrame(purge_html_export_table(tfbs_df))
# return dcc.send_data_frame(df.to_csv, f'[{genomic_intervals}] Regulatory Feature Enrichment.csv', index=False)

# raise PreventUpdate

# =================
# Session-related
# =================

# @app.callback(
# Output('summary-addl-genes', 'value'),

# State('tfbs-submitted-addl-genes', 'data')
# )
# def get_input_tfbs_session_state(addl_genes):
# return addl_genes
2 changes: 2 additions & 0 deletions callbacks/summary/util.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def get_liftover_summary():
pass
64 changes: 62 additions & 2 deletions pages/analysis/summary.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from dash import html
from dash import dash_table, dcc, html
from callbacks.constants import Constants
import dash_bootstrap_components as dbc

Expand Down Expand Up @@ -89,5 +89,65 @@
n_clicks=0,
className='page-button'),
], className='analysis-intro p-3'),
]

html.Br(),

html.Div(
id='summary-results-container',
style={'display': 'none'},
children=[
dcc.Loading([
html.Hr(className='mt-3 mb-3'),

html.Br(),

html.Div(
id='summary-input',
className='analysis-intro p-3',
),

html.Br(),

html.P(
html.Div([
html.P(
'The table below summarizes the results of the different post-GWAS analyses.',
className='text-start'
),

dbc.Button([html.I(
className='bi bi-download me-2'),
'Export to CSV'],
id='summary-export-table',
n_clicks=0,
color='light', size='sm', className='table-button'),
dcc.Download(id='tfbs-download-df-to-csv'),
dbc.Button([html.I(
className='bi bi-arrow-clockwise me-2'),
'Reset Table'],
id='summary-reset-table',
color='light', size='sm', className='ms-3 table-button')
], style={'textAlign': 'right'})
),

html.Br(),

dash_table.DataTable(
id='summary-results-table',
style_cell={
'whiteSpace': 'pre-line'
},
markdown_options={'html': True},
sort_action='native',
filter_action='native',
filter_options={'case': 'insensitive',
'placeholder_text': '🔎︎ Search Column'},
page_action='native',
page_size=15,
cell_selectable=False,
style_table={'overflowX': 'auto'}
)
])
])
], className='mt-2 mb-4'
)

0 comments on commit f26df83

Please sign in to comment.