Skip to content

Example results in the Viewer, one per analysis, named after it - #152

Open
t0mdavid-m wants to merge 18 commits into
developfrom
claude/project-thread-bz4izy
Open

t0mdavid-m wants to merge 18 commits into
developfrom
claude/project-thread-bz4izy

Conversation

@t0mdavid-m

@t0mdavid-m t0mdavid-m commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Requested by Tom · project thread

What changes for users

A new workspace now opens the Viewer with ready results, one per default layout the example data covers, each named after what it shows:

Viewer entry Input Default layout it opens
Example: deconvolution only (protein mix, LC-MS) Deconvolution-only_ProteinMix_LC-MS.mzML Deconvolution only
Example: native, identified (GapA) Native-identified_GapA_HCD.mzML + example database Identification, native
Example: lysate, identified (E. coli + spike-in) Label-free_SpikeIn-1x_R1.mzML + example database Identification, lysate
Example: label-free comparison (spike-in 1x vs 0.1x) the four Label-free_SpikeIn-*.mzML runs Label-free comparison

Until now the demo workspace held its results in the folders of the former FLASHDeconv and FLASHTnT workflows, which the combined Viewer does not read, so a new workspace showed "No results to show yet".

  • The native example inputs are cut from nine to GapA. The other native E. coli spectra and the antibody spectrum opened the same native layout and are gone.
  • The lysate and label-free examples are four runs of the FLASHQuant SpikeIn dataset (MassIVE MSV000091923 / PXD042169): the six-protein mix spiked into an E. coli lysate at relative amounts 1 and 1/10, two replicates each, cut to 2.5 minutes of retention time (3990–4140 s) with FileFilter. The comparison uses conditions Spike-in 1x and Spike-in 0.1x.
  • A comparison keeps its own tables, so of the four SpikeIn runs only the first is kept as a run result.
  • Demo workspace: the result cache is 167 MB and the SpikeIn inputs 48 MB.
  • A comparison with a custom display name shows that name in choose experiment (quant_view.comparison_names).
  • Upload page and User Guide name the examples and say their results are already in the Viewer. The Upload page still falls back to the two small example runs when nothing is uploaded.

How the results are made

example-data/build_examples.py runs the Top-down analysis on each example the way the Run page does (deconvolution only; Native preset; Lysate preset with label-free quantification and an experimental design). It stores the results in the demo workspace's shared cache under fixed ids (example_deconvolution, example_native_identified, example_lysate_identified, example_label_free) and sets their display names. A missing SpikeIn input is downloaded from MassIVE and trimmed. The script needs the TOPP tools. It ran in ghcr.io/openms/flashapp:latest through a temporary workflow on this branch, which has been removed again (no change under .github/ in the diff).

Merge with squash. One intermediate commit on this branch holds a larger cache (466 MB) that was then reduced. A merge commit would keep it in the history of develop.

Tests

  • tests/test_examples.py:
    • every example is named after what it shows;
    • the identified examples open the Native and Lysate layouts;
    • the label-free example compares two conditions over four runs.
  • The tests that read the demo results use the new examples. The PrSM overview test now expects missing precursor charges only for the native example, since the lysate's data-dependent spectra carry them.
  • pytest tests/ passes locally (601 passed).
  • The desktop e2e scenario runs the two renamed inputs.

Not covered by an example

TMT/iTRAQ (with or without identification): no small public top-down isobaric dataset was found. This is left for a follow-up.

Screenshots

choose experiment lists the four examples:
experiments

Example: lysate, identified:
lysate

Example: label-free comparison:
label-free

Example: native, identified (GapA):
native

Example: deconvolution only:
deconv

Upload page:
upload

Videos: lysate-and-label-free-in-viewer.mp4, examples-in-viewer.mp4

The media files were added and removed again in separate commits; they are not in the diff.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5

claude and others added 6 commits November 3, 2026 22:09
Keep the protein mix LC-MS run (deconvolution only) and the native GapA
spectrum (identified, Native preset), named after the analysis they show.
Drop the other native spectra and the antibody spectrum, which open the same
layout, and the stored results of the former FLASHDeconv and FLASHTnT
workflows, which the combined Viewer no longer reads.
example-data/build_examples.py rebuilds the results into the demo
workspace's shared cache.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
@coderabbitai

coderabbitai Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2cabc715-2155-4043-af98-23bd2c0b87c5
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@t0mdavid-m t0mdavid-m self-assigned this Nov 3, 2026
claude and others added 12 commits November 3, 2026 22:47
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
The build script downloads four SpikeIn runs from MassIVE, keeps a
4-minute retention-time window and runs them identified with label-free
quantification. A comparison with a display name of its own keeps it in
the Viewer's experiment list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
The label-free comparison keeps its own tables, so the results of its
other three runs are dropped from the demo cache. The SpikeIn runs are
cut to 2.5 minutes. Together this takes the demo cache from 466 MB to
roughly 170 MB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
…build job

tests/test_examples.py checks that every example is named after what it
shows, opens its sample type's layout, and that the label-free example
compares two conditions over four runs. The lysate spectra carry
precursor charges, so the PrSM overview test now expects them only to be
missing on the native example. The temporary job that built the examples
is removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FkEGepokDF4C9QwY1TkrQ5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants