Repository navigation
feat(workflow-operator): volcano plot labels follow columns - #9040
Open
eugenegujing wants to merge 3 commits into
Open
eugenegujing wants to merge 3 commits into
eugenegujing wants to merge 3 commits into
Conversation
Name the y column and its axis -log10(<p-value column>) instead of the fixed "-log10(pvalue)". Add optional Title, X Label, Y Label and Color Bar Label properties that override the column-derived text when set; an empty or blank field keeps the default.
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 #9040 +/- ##
=========================================
Coverage 91.87% 91.87%
Complexity 5049 5049
=========================================
Files 1265 1265
Lines 54915 54913 -2
Branches 6940 6940
=========================================
- Hits 50453 50452 -1
+ Misses 2769 2768 -1
Partials 1693 1693
*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 | 526 | 0.321 | 18,053/28,515/28,515 us | 🔴 +12.6% / 🔴 +100.3% |
| 🟢 | bs=100 sw=10 sl=64 | 1,233 | 0.752 | 80,266/90,358/90,358 us | 🟢 -40.9% / 🟢 -12.1% |
| 🔴 | bs=1000 sw=10 sl=64 | 1,443 | 0.88 | 691,544/763,007/763,007 us | 🔴 +6.7% / 🟢 +22.1% |
Baseline details
Latest main 98c6337 from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 526 tuples/sec | 592 tuples/sec | 879.16 tuples/sec | -11.1% | -40.2% |
| bs=10 sw=10 sl=64 | MB/s | 0.321 MB/s | 0.361 MB/s | 0.537 MB/s | -11.1% | -40.2% |
| bs=10 sw=10 sl=64 | p50 | 18,053 us | 16,032 us | 11,504 us | +12.6% | +56.9% |
| bs=10 sw=10 sl=64 | p95 | 28,515 us | 26,442 us | 14,234 us | +7.8% | +100.3% |
| bs=10 sw=10 sl=64 | p99 | 28,515 us | 26,442 us | 17,338 us | +7.8% | +64.5% |
| bs=100 sw=10 sl=64 | throughput | 1,233 tuples/sec | 1,219 tuples/sec | 1,147 tuples/sec | +1.1% | +7.5% |
| bs=100 sw=10 sl=64 | MB/s | 0.752 MB/s | 0.744 MB/s | 0.7 MB/s | +1.1% | +7.4% |
| bs=100 sw=10 sl=64 | p50 | 80,266 us | 77,479 us | 88,987 us | +3.6% | -9.8% |
| bs=100 sw=10 sl=64 | p95 | 90,358 us | 152,989 us | 96,473 us | -40.9% | -6.3% |
| bs=100 sw=10 sl=64 | p99 | 90,358 us | 152,989 us | 102,791 us | -40.9% | -12.1% |
| bs=1000 sw=10 sl=64 | throughput | 1,443 tuples/sec | 1,489 tuples/sec | 1,182 tuples/sec | -3.1% | +22.1% |
| bs=1000 sw=10 sl=64 | MB/s | 0.88 MB/s | 0.909 MB/s | 0.721 MB/s | -3.2% | +22.0% |
| bs=1000 sw=10 sl=64 | p50 | 691,544 us | 673,998 us | 872,751 us | +2.6% | -20.8% |
| bs=1000 sw=10 sl=64 | p95 | 763,007 us | 714,851 us | 910,151 us | +6.7% | -16.2% |
| bs=1000 sw=10 sl=64 | p99 | 763,007 us | 714,851 us | 941,479 us | +6.7% | -19.0% |
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,380.06,200,128000,526,0.321,18053.36,28514.66,28514.66
1,100,10,64,20,1622.43,2000,1280000,1233,0.752,80265.87,90357.90,90357.90
2,1000,10,64,20,13863.99,20000,12800000,1443,0.880,691544.10,763007.41,763007.41This 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?
Root cause:
VolcanoPlotOpDesc.generatePythonCodehard-codes the y column as the literal"-log10(pvalue)"and plots it under that name, so the y axis always says-log10(pvalue)even when the selected column ispadj. The title is the literal"Volcano Plot"and the x axis and color bar show the raw effect column name. None of this can be changed from the property panel.The y column is now named after the selected p-value column, so the axis and the hover text say which column was transformed. Four optional label properties are added, empty by default:
Volcano Plot-log10(<p-value column>)The labels go through
fig.update_layout(xaxis_title, yaxis_title, coloraxis_colorbar_title_text), same as Line Chart's X Label / Y Label. Each label is anEncodableString, so quotes and non-ASCII text are fine. A whitespace-only field counts as empty. The hover box still shows raw column names (plotly behaviour, same as Line Chart).Behavior change for saved workflows: a workflow with
padjas the p-value column now renders-log10(padj)instead of-log10(pvalue). That is the fix.Since #8504 merged, the operator also has an export path,
generateStandaloneCode(), which writes the same figure as a standalone script. It carried the same hard-coded"-log10(pvalue)"andtitle="Volcano Plot", so this PR applies the same change there: the y column is named after the selected p-value column and the four labels go throughfig.update_layoutas escaped Python literals (the export has no decoder, sopyStringLiteralescapes quotes and backslashes). The engine template and the exported script now label the figure the same way, and a spec checks that across the label combinations.Rebase note:
coloraxis_colorbar_title_textis emitted unconditionally, in both templates. Once the significance-coloring PR (#9039) lands, the categorical mode has nocoloraxis, so whichever branch rebases second needs to make that entry conditional.Figures below are the operator's generated Python from
mainand from this branch, run on the 430-gene example workflow from the issue; the third one has all four labels filled in.Any related issues, documentation, discussions?
Closes #9037
PR #8504 (merged) added the
generateStandaloneCode()export path with the same hard-coded"-log10(pvalue)"; the mirroring described above is the follow-up it needed.How was this PR tested?
New tests in
VolcanoPlotOpDescSpec, written before the source change:generateStandaloneCode: the y column and axis are named after the p-value column (including a name with a quote,p"adj), the labels fall back to the column-derived defaults, a set label is emitted as an escaped literal and the default title is gone, whitespace-only keeps the default, a saved workflow renders as a default-constructed operator, and a cross-path test checks that the engine template and the exported script carry the same title, axis and color bar labelsSmoke run: the generated code was executed outside Texera (pytexera stubbed, pandas + plotly 5.24.1) on the 430-gene mock table. Defaults give title
Volcano Plot, xlfc_shrunk, y-log10(padj), color barlfc_shrunk; with all four labels set the figure shows the typed text; whitespace-only title and y label fall back to the defaults. The exported script for the default and the all-labels configuration 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.