Skip to content

fixtures: add funcprofiler and funcprofiler_upstream examples#337

Draft
pinin4fjords wants to merge 2 commits into
mainfrom
feat/funcprofiler-fixtures
Draft

fixtures: add funcprofiler and funcprofiler_upstream examples#337
pinin4fjords wants to merge 2 commits into
mainfrom
feat/funcprofiler-fixtures

Conversation

@pinin4fjords

Copy link
Copy Markdown
Member

Adds two .mmd fixtures for the nf-core/funcprofiler pipeline so the validators in #252 (and follow-up engine work) have a target.

Fixture Status Known issues
`examples/funcprofiler.mmd` (simplified) Has layout defects profiling->reporting trunk Y mismatch (~3px); qc line crosses non-consumer `merge` marker
`examples/funcprofiler_upstream.mmd` (real upstream) Has layout defects humann3 junction routing nearly horizontal

These fixtures currently fail layout invariants from #326 and validators from #252. Held back from the docs gallery (#239) until the engine work to lay them out cleanly lands.

DO NOT MERGE

This PR is intentionally draft. Land only after the underlying engine fixes resolve the documented defects.

Adds two .mmd fixtures for the nf-core/funcprofiler pipeline:

- examples/funcprofiler_upstream.mmd - the upstream pipeline as it
  actually renders, intended as a canonical bad-case stress test
- examples/funcprofiler.mmd - a simplified variant

Both fixtures currently exhibit layout defects under the current engine:

- funcprofiler.mmd: inter-section trunk-Y kink (profiling -> reporting,
  3px delta), qc line crosses non-consumer 'merge' marker
- funcprofiler_upstream.mmd: humann3 junction routing nearly horizontal,
  tracked by validators in #252

Held back from the main docs gallery (#239) until the underlying engine
issues are addressed; this PR lands the fixtures so the validators
work and engine fixes can iterate against them.
@github-actions

github-actions Bot commented May 16, 2026

Copy link
Copy Markdown
Contributor

Render preview is ready for review:
🖼️ https://pinin4fjords.github.io/nf-metro/_pr/337/

This preview shows only the renders that changed compared to main.

Updated nf-core/rnaseq fixture matching the upstream pipeline more
closely: adds ribodetector, fastqc_filtered, featurecounts, sylph
stations and a bowtie2_salmon line.

Currently exhibits two engine-side issues that need follow-up:

1. test_auto_y_spacing_fits_content fails - hisat2_align and
   bowtie2_align stack at gap=10px in genome_align section (need 40px
   for caption clearance).
2. Visual z-order divergence between fan-out (left of
   sortmerna/ribodetector/bbsplit) and fan-in (right) - the
   ribodetector loop is on top in the descent but the sortmerna loop
   sits on top in the ascent.

Held back from the gallery PR #239 until these are resolved; same
engine-needs-work bucket as the funcprofiler fixtures in this PR.
pinin4fjords added a commit that referenced this pull request May 16, 2026
These need engine-side follow-up work:
- funcprofiler.mmd: profiling->reporting trunk-Y kink, qc-crosses-merge
- funcprofiler_upstream.mmd: humann3 junction nearly horizontal
- rnaseq_auto.mmd (expanded): hisat2/bowtie2 stacking under y_spacing
  threshold, ascend-vs-descend z-order mismatch around
  bbsplit/sortmerna/ribodetector fan

Moved to PR #337.  Restored examples/rnaseq_auto.mmd to main's version
so this PR (docs gallery + hlatyping logo path + gallery script
infrastructure) lands without an engine block.
pinin4fjords added a commit that referenced this pull request May 16, 2026
* docs: add nf-core Pipelines page with renders for all adopted pipelines

New dedicated docs page showcasing real-world nf-core/sanger-tol pipelines
using nf-metro: rnaseq, epitopeprediction, hlatyping, variantprioritization,
variantbenchmarking, genomeassembly, and funcprofiler.

Removes pipeline-specific entries (genomeassembly, variantprioritization)
from the layout gallery, keeping it focused on layout patterns. Adds
funcprofiler.mmd from nf-core/funcprofiler dev branch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use explicit .md paths in cross-page links to silence mkdocs warnings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: sync rnaseq and hlatyping examples with upstream repos

Update rnaseq_auto.mmd from nf-core/rnaseq master (adds bowtie2_salmon
line, ribodetector, tximport/SummarizedExperiment, file icons, explicit
port directives, and section directions).

Update hlatyping.mmd from nf-core/hlatyping dev (different hidden station
routing with merge junction pattern, updated logo path).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: add funcprofiler upstream and simplified variants, debug renders

Add funcprofiler_upstream.mmd (original 11-line topology from nf-core)
and simplified funcprofiler.mmd (3-line version). Both rendered on the
pipelines page. Pipeline renders use debug mode for ongoing review.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Split out funcprofiler + rnaseq_auto fixture changes

These need engine-side follow-up work:
- funcprofiler.mmd: profiling->reporting trunk-Y kink, qc-crosses-merge
- funcprofiler_upstream.mmd: humann3 junction nearly horizontal
- rnaseq_auto.mmd (expanded): hisat2/bowtie2 stacking under y_spacing
  threshold, ascend-vs-descend z-order mismatch around
  bbsplit/sortmerna/ribodetector fan

Moved to PR #337.  Restored examples/rnaseq_auto.mmd to main's version
so this PR (docs gallery + hlatyping logo path + gallery script
infrastructure) lands without an engine block.

* Regenerate docs/pipelines/index.md from build_gallery.py

The PR initially committed a hand-edited version of the file; CI's
render-diff job runs the gallery script, which rewrites the file from
its PIPELINE_ENTRIES list, and the resulting diff blocked the base
branch checkout step.

Committing the script's output verbatim so the file matches what CI
regenerates and the workflow's base-branch checkout can proceed.

* chore: stop committing build_gallery.py-generated docs/pipelines/index.md

The file is regenerated from PIPELINE_ENTRIES by scripts/build_gallery.py
on every invocation, including the docs build in CI.  Committing it kept
us tied to a stale snapshot that diverged from the script's output and
broke the render-diff workflow's base-branch checkout step.

Add to .gitignore alongside docs/gallery/index.md (which has always
been generated and never committed).  CI and the mkdocs site builder
will regenerate the file from the script on demand.

* Remove funcprofiler fixtures (resurrected by accident; they live in #337)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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