Repository navigation
feat(workflow-operator): volcano plot hover column - #9042
Open
eugenegujing wants to merge 3 commits into
Open
eugenegujing wants to merge 3 commits into
eugenegujing wants to merge 3 commits into
Conversation
Add an optional Hover column property, as on Scatter Plot, used as the hover label of each point. An empty or blank field keeps the first input column as before; a set column missing from the input yields the operator's error page.
Contributor
Automated Reviewer SuggestionsBased on the
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9042 +/- ##
============================================
+ Coverage 91.87% 91.88% +0.01%
- Complexity 5049 5058 +9
============================================
Files 1265 1265
Lines 54915 54929 +14
Branches 6940 6940
============================================
+ Hits 50453 50472 +19
+ Misses 2769 2762 -7
- Partials 1693 1695 +2
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🔴 | bs=10 sw=10 sl=64 | 376 | 0.229 | 25,270/35,503/35,503 us | 🔴 +18.8% / 🔴 +149.4% |
| 🔴 | bs=100 sw=10 sl=64 | 805 | 0.491 | 122,481/157,747/157,747 us | 🔴 +18.3% / 🔴 +63.5% |
| 🔴 | bs=1000 sw=10 sl=64 | 949 | 0.579 | 1,041,279/1,209,850/1,209,850 us | 🔴 +10.0% / 🔴 +32.9% |
Baseline details
Latest main 98c6337 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 376 tuples/sec | 432 tuples/sec | 879.16 tuples/sec | -13.0% | -57.2% |
| bs=10 sw=10 sl=64 | MB/s | 0.229 MB/s | 0.264 MB/s | 0.537 MB/s | -13.3% | -57.3% |
| bs=10 sw=10 sl=64 | p50 | 25,270 us | 21,275 us | 11,504 us | +18.8% | +119.7% |
| bs=10 sw=10 sl=64 | p95 | 35,503 us | 36,636 us | 14,234 us | -3.1% | +149.4% |
| bs=10 sw=10 sl=64 | p99 | 35,503 us | 36,636 us | 17,338 us | -3.1% | +104.8% |
| bs=100 sw=10 sl=64 | throughput | 805 tuples/sec | 869 tuples/sec | 1,147 tuples/sec | -7.4% | -29.8% |
| bs=100 sw=10 sl=64 | MB/s | 0.491 MB/s | 0.531 MB/s | 0.7 MB/s | -7.5% | -29.9% |
| bs=100 sw=10 sl=64 | p50 | 122,481 us | 113,972 us | 88,987 us | +7.5% | +37.6% |
| bs=100 sw=10 sl=64 | p95 | 157,747 us | 133,363 us | 96,473 us | +18.3% | +63.5% |
| bs=100 sw=10 sl=64 | p99 | 157,747 us | 133,363 us | 102,791 us | +18.3% | +53.5% |
| bs=1000 sw=10 sl=64 | throughput | 949 tuples/sec | 958 tuples/sec | 1,182 tuples/sec | -0.9% | -19.7% |
| bs=1000 sw=10 sl=64 | MB/s | 0.579 MB/s | 0.585 MB/s | 0.721 MB/s | -1.0% | -19.7% |
| bs=1000 sw=10 sl=64 | p50 | 1,041,279 us | 1,047,839 us | 872,751 us | -0.6% | +19.3% |
| bs=1000 sw=10 sl=64 | p95 | 1,209,850 us | 1,099,561 us | 910,151 us | +10.0% | +32.9% |
| bs=1000 sw=10 sl=64 | p99 | 1,209,850 us | 1,099,561 us | 941,479 us | +10.0% | +28.5% |
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,532.01,200,128000,376,0.229,25270.45,35503.40,35503.40
1,100,10,64,20,2485.04,2000,1280000,805,0.491,122481.21,157747.16,157747.16
2,1000,10,64,20,21076.72,20000,12800000,949,0.579,1041279.29,1209849.70,1209849.70This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this PR?
The Volcano Plot uses
hover_name=table.columns[0], so the tooltip label is whatever column comes first in the input. That is fine for a DESeq2 table starting withgeneand useless for one starting with a composite id or a number, and there is no way to change it. This PR copies Scatter Plot'sHover columnproperty over, one column only.hover_name=table.columns[0], unchanged for saved workflowshover_name=<that column>Missing hover column in table., like the existing check for the two required columns (Scatter Plot lets plotly raise aValueErrorhere)Since #8504 merged, the operator also exports a standalone script through
generateStandaloneCode(), which hadhover_name=table.columns[0]hard-coded. This PR mirrors the property there: the hover column goes in as an escaped Python literal, and a set column that the input lacks adds one moreelifto the script's column checks, writing the same error page. Whether the field counts as empty is decided by one helper for both paths, so the exported figure and the engine's cannot disagree.Independent of the label-fix (#9037) and significance-threshold (#9039) PRs; all three touch neighbouring lines of
VolcanoPlotOpDesc.scala, so whichever lands second needs a small rebase.Figures below are the operator's generated Python from
mainand from this branch (Hover column =gene), run on the 430-gene example workflow from the issue whose first column istranscript|gene|chr|strand; the same point is hovered in both.Any related issues, documentation, discussions?
Closes #9038
PR #8504 (merged) added the
generateStandaloneCode()export path with the samehover_name=table.columns[0]; the mirroring described above is the follow-up it needed.How was this PR tested?
New tests in
VolcanoPlotOpDescSpec, written before the source change:hover_name=table.columns[0]and emits no hover checkhover_nameplus the presence check, and notable.columns[0]generateStandaloneCode: an empty field keepshover_name=table.columns[0]and adds no check; a set field is emitted as a literal plus an exact five-lineelifbranch between the required-column check and the drawing branch; a name with quotes, non-ASCII text or a backslash comes out escaped rather than decoded; whitespace-only equals empty; a saved workflow renders as a default-constructed operatorSmoke run outside Texera (pytexera stubbed, pandas + plotly 5.24.1) on the 430-gene mock table: defaults hover-label the first point as
ENST00000000000|GENE_0000|chr2|+; Hover column =genegivesGENE_0000; Hover column =no_such_columnyields<h1>Volcano Plot failed</h1><p>Missing hover column in table.</p>. The exported script for the default and thegeneconfiguration parses withast.parse.Was this PR authored or co-authored using generative AI tooling?
Yes. Generated-by: Claude Code (claude-fable-5-1). Co-authored with Claude; the author reviewed the change before submission.