-
Notifications
You must be signed in to change notification settings - Fork 2
Update binding perturbation pages (Draft PR) #111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR replaces the UpSet plots with interactive heatmap comparisons in both the perturbation response and binding tabs, updates the server logic to return reactive value selections, and cleans up outdated CSS and upset-related code.
- Swap
upset_plotUI/server calls forheatmap_comparisonUI/server - Update imports, server return types, and logging for selected heatmap cells
- Remove stale CSS blocks and adjust inline styling and description text
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tfbpshiny/tabs/perturbation_response_module.py | Replaced Upset plot with heatmap comparison, updated imports, server logic, and UI layout |
| tfbpshiny/tabs/binding_module.py | Same heatmap swap for binding tab, adjusted description, imports, server return, and styling |
Comments suppressed due to low confidence (4)
tfbpshiny/tabs/binding_module.py:22
- Remove the extra "the" in the description: it should read "TF binding datasets".
This page displays pairwise comparisons and correlation matrix for TF the binding datasets. The current binding datasets are:
tfbpshiny/tabs/binding_module.py:245
- Combine the split comment on correlation data into one line, e.g.,
# Pass correlation data for comparing heatmap and correlation matrices.
correlation_data=tf_binding_df, # Pass correlation data for correlation
tfbpshiny/tabs/perturbation_response_module.py:255
- [nitpick] Consider renaming
selected_celltoselected_heatmap_cellto clarify which UI element's selection it represents.
selected_cell = heatmap_comparison_server(
tfbpshiny/tabs/perturbation_response_module.py:244
- Reading the CSV synchronously in server init may cause redundant I/O; consider using a
reactive.extended_taskor caching to avoid reloading on each session.
tf_pr_df = pd.read_csv("tmp/shiny_data/response_data.csv")
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
Co-authored-by: Chase Mateusiak <chasem@wustl.edu>
The scatter-overlap hack didn't work out eventually. I suspect it was caused by limitations of python widget binding. I left the median rank correlation plot as a placeholder, which can be implemented quickly once we decide the new layout.