Skip to content

pileup: settings carry across genes, Y locks the axis, marked genes stack; saves are PDF only (0.16.8) - #21

Merged
YPARK merged 5 commits into
mainfrom
pileup-stack
Oct 13, 2026
Merged

YPARK merged 5 commits into
mainfrom
pileup-stack

Conversation

@YPARK

@YPARK YPARK commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

What changes

  • Settings carry across genes. The pileup browser keeps how the bars are drawn when you open the next gene: the y scale, what c counts, mirrored or split, the contrast measure, images or text. Before, every gene opened at the defaults.
  • Y locks the y axis. The current maximum is kept for every gene opened after, so they compare. A taller gene still shows its bars whole, its axis raised to fit; Y again unlocks.
  • Several genes at once. In the gene list, Space marks genes ([x]) and Ctrl+R opens the marked ones stacked top to bottom, each with its tracks.
    • Tab moves the keys from gene to gene (▸ keys in its header); how the bars are drawn applies to all of them.
    • Y locks every gene to the tallest one's axis.
    • s saves the stack as one PDF, the genes one under another (figure::stack_svgs).
    • A search, the other modality, or zooming out past a gene needs one gene: the footer says so, and g/Esc goes back to the list, where the marks are kept.
  • PDF only. Every figure save (pileup, metagene, pwm, qc's view and qc_plots/) writes a PDF and no PNG; the save list's thumbnail is drawn in memory.

Checks

  • cargo test: all pass but pipeline::tui::tests::a_folder_with_files_is_refused_as_the_output, which fails only on this machine (it passes in CI).
  • cargo clippy --all-targets -D warnings is clean, with and without --features hdf5.
  • cargo fmt is applied.
  • A two-gene stack, saved, reads as GENE1 above GENE2 with one 0–36 axis after Y.

YPARK added 5 commits October 13, 2026 12:18
…tack; saves are PDF only (0.16.8)

- How the bars are drawn (y scale, what c counts, mirror, contrast
  measure, images) carries from one gene to the next.
- Y locks the y-axis maximum for every gene opened after; a taller gene
  still shows its bars whole.
- In the gene list, Space marks genes and Ctrl+R opens them stacked top
  to bottom: Tab moves the keys, settings apply to all, Y locks every gene
  to the tallest, s saves the stack as one PDF (figure::stack_svgs).
- Every figure save writes a PDF only; the gallery thumbnail is drawn in
  memory.
…ects

- A setting applied from the gene with the keys (y, c, Y) redraws the
  other genes' image plots too; they kept the old picture.
- Canvas::rect skips a shape that would print as 0.00 (or is not finite),
  which usvg warned about and skipped.
…ick a gene and a bar; Esc clears marks

- | cycles one under another, side by side and a grid, on screen and in
  the saved PDF (figure::tile_svgs).
- A click gives the gene under it the keys, and over its bars moves its
  cursor there; in the one-gene browser, a click moves the cursor.
- In the gene list, Esc clears the search, then every mark, then leaves.
…body, thicker exons

- The browser and the stack draw text plots only; the saved figure is the
  picture (no image mode, no i).
- Saved position ticks are turned 90° counter-clockwise (Bars, Mirror and
  Diverging take rotated); panels grow so the bars keep their height.
- A gene opens on its whole body, TSS to TES, once the annotation has
  arrived (unless already zoomed), rather than on its sites' span.
- Exons draw as full blocks on screen and a taller band in figures.
= and - zoom the gene with the keys; + and _ (Shift) zoom every gene, and )
(Shift+0) shows every gene whole.
@YPARK
YPARK merged commit f61f40d into main Oct 13, 2026
6 checks passed
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.

1 participant