-
Notifications
You must be signed in to change notification settings - Fork 26
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
Enable users to filter genes by differential expression metrics (SCP-5090) #1823
Conversation
…ortal_core into ew-de-range-filter
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.
Really great! Looking forward to this being available.
Side note that doesn't warrant action here: in the case were a user selects a comparison in the differential expression picker, and the applied filters result in no matches, should we consider some kind of notification to that effect? Otherwise, it is indistinguishable from being unable to retrieve results from the bucket.
@@ -166,7 +168,7 @@ function searchGenesFromTable(selectedGenes, searchGenes, logProps) { | |||
/** Table of DE data for genes */ | |||
function DifferentialExpressionTable({ | |||
genesToShow, searchGenes, clusterName, annotation, species, numRows, | |||
bucketId, deFilePath, handleClear, isAuthorDe | |||
bucketId, deFilePath, handleClear, isAuthorDe, facets |
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.
I'm wondering if facets
is potentially confusing here - we have plans to add actual search facets to many of our Explore tab plots this quarter, and this might get overloaded.
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.
Agreed, this confusion seems inherent in having two search UIs in view at the same time. The search UI in the DE panel queries a corpus of genes, and the search UI for the plots queries a corpus of cells.
To mitigate potential future confusion, in a489534 I just prefixed a lot these DE search variables with "de", so the cell search variables can be unambiguously named without a prefix.
Yes, that makes sense! For our reference, we just noted we'll do this as part of SCP-5227. |
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.
Looks good! confirmed works locally
app/javascript/components/explore/DifferentialExpressionFilters.jsx
Outdated
Show resolved
Hide resolved
Co-authored-by: ehanna4 <[email protected]>
The build failure seems like a false positive, since the cause was a Rails test failure but not Rails code changed.
The specific failure line essentially uninformative:
I saw no |
This enables users to find genes by significance and size of differential expression.
Previously (#1768), genes could only be sorted by these differential expression metrics. Now, DE genes can also be filtered to exclude results that aren't significant, or have low levels or differential expression, or both. New range slider facets let users filter by those metrics. This satisfies a stakeholder request to enable ranking genes by log2(fold change) after applying a <= 0.05 threshold for adjusted p-value.
Here's how it looks!
Range_filter_slider_facet_for_DE_genes_table__SCP_2023-07-13.mov
In addition to layout shown above, the facets are also somewhat responsive to different viewport widths. Analytics on changes to the range facets are logged to Mixpanel.
Test
Enhanced automated tests verify some range facet functionality. To manually test:
This satisfies SCP-5090.