Fix empty sequence column options and add a loading state - #63
Merged
Merged
Conversation
The targetOptions output probes the result pool for a sequence column with the domain scClonotypeChain/index=primary to decide whether the dataset is paired. The probe had no axes constraint, so it matched the whole pool. In a project with a single-cell MiXCR block, every bulk dataset was marked as paired. The paired matcher then required the primary domain on the bulk clonotypeKey axis, found nothing, and the "Sequence column to match" dropdown was empty. Run stayed disabled. Add the dataset axis to the pairing probe and to the scFv probe, in the same way as the matchers that follow them.
kevindetry-milaboratories
force-pushed
the
fix-assay-target-options-bulk
branch
2 times, most recently
from
September 8, 2026 13:59
76f2bf5 to
cf08224
Compare
After a dataset change, "Sequence column to match" kept the options of the old dataset until the new list arrived, and then switched abruptly. The model now returns the options together with the dataset ref they were computed for. The UI passes undefined to the dropdown until the options for the selected dataset arrive. PlDropdown then shows a spinner and disables the field. When the new list arrives, a target that is not in the list is cleared and the label is refreshed. Without a dataset the dropdown is disabled and shows a hint.
kevindetry-milaboratories
force-pushed
the
fix-assay-target-options-bulk
branch
from
September 8, 2026 14:35
cf08224 to
c914876
Compare
erohinaelena
approved these changes
Sep 9, 2026
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.
Problem 1: empty "Sequence column to match" for bulk datasets
The dropdown is empty when the selected dataset is a bulk MiXCR dataset and the project also contains a single-cell MiXCR block.
targetOptionsreturns[], the dropdown shows no entries, and Run stays disabled without a message.Cause
model/src/index.ts,targetOptionsoutput. The probe that decides whether a dataset is paired callsgetAnchoredPColumnswith a selector that hasnameanddomainbut noaxes. A selector withoutaxesmatches the whole result pool. In a mixed project the probe hits the single-cell block'spl7.app/vdj/sequencecolumns withscClonotypeChain/index: "primary", soisPairedbecomes true for the bulk dataset. The paired matcher then requires that domain on the bulkclonotypeKeyaxis. No column has it, so the result is empty.The probe came in with 1.6.0 (#60). Before that, pairing was decided from the axis name only, which is correct for bulk MiXCR data.
Fix
Add
axes: [{ anchor: "main", idx: 1 }]to the pairing probe and to the scFv probe. This is the same axis constraint the matchers below them already use. Axis 1 is the clonotype axis by construction:datasetOptionsonly accepts anchors with exactly two axes,pl7.app/sampleIdat 0 and the clonotype, single-cell clonotype, or variant key at 1.Problem 2: abrupt update after a dataset change
After a dataset change the dropdown kept the options of the old dataset until the new list arrived, then switched at once. A stale target could stay selected.
Fix
targetOptionsreturns{ datasetRef, options }, the options tagged with the dataset they were computed for.undefinedas options until the options for the selected dataset arrive.PlDropdownthen shows a spinner and disables the field. When the list arrives, a target that is not in the list is cleared and the label is refreshed. Without a dataset the dropdown is disabled with the hint "Select a dataset first".Test
Dev build loaded into a project with one 10x MiXCR block and one bulk MiXCR block on
app.hz.platforma.bio:IGHeavy/umi-countabundance/IG/cell-countDataset switch 10x -> bulk with "Heavy CDR3 aa Primary" selected, sampled from the DOM: old value shown for 100 ms, then spinner and disabled field for 2.6 s, then the new options with the target cleared.
pnpm build:dev-no-softwareandpnpm checkpass.