New course: Nextflow Triathlon: plain Nextflow + nf-core + Seqera platform - #951
Draft
vdauwera wants to merge 28 commits into
Draft
New course: Nextflow Triathlon: plain Nextflow + nf-core + Seqera platform#951vdauwera wants to merge 28 commits into
vdauwera wants to merge 28 commits into
Conversation
✅ Deploy Preview for nextflow-training ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
Nextflow linting complete!
💡 Tip: Click filename locations to go directly to that code. View all 47 issuesView formatting changes
|
Adds the complete nextflow-triathlon/ working directory with scripts (1-hello.nf, 2-inputs.nf, main.nf), modules, data files, nextflow.config, and a solutions/ subdirectory with symlinks for self-contained testing. Rewrites 01_run_basics.md into four sections: Hello World, Process multiple inputs, Run a multi-step pipeline, and Configure the pipeline. The config section introduces nextflow.config structure and profiles, setting learners up for the nf-core pipeline demo in Part 2. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Part 1 exercises now live under nextflow-triathlon/basics/, and Parts 2/3 nf-core runs use nextflow-triathlon/nf-core/. This prevents the triathlon nextflow.config from overriding params.input when running nf-core pipelines from the same directory. Also adds laptop.config (withLabel overrides capping memory to 6 GB) for local development, and updates rnaseq docs to reflect the current pipeline version (3.26.0, revision e7ca46272c). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrite sections 4.2 and 4.3 to: - Show the memory failure when running rnaseq without config overrides - Explain nf-core process labels and the withLabel: fix via laptop.config - Transition to Seqera Platform as the path to real-scale analysis - Add link to Seqera academic program Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Comment out withName: 'cowpy' block in nextflow.config to prevent selector warning when running scripts without the cowpy process - Add -with-report section and executor note to 01_run_basics.md - Fix inline code formatting in headings (work/, -resume) - Update nf-core/demo pull revision hash and directory listing in 02_run_nfcore.md - Remove solutions/ directory from basics/ (not needed for this tutorial) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nd CLI-first workflow - Add section 1: sign up, Community Showcase, compute options (own infra vs Seqera Compute) - Simplify section 2 launch form with test profile pre-filled; fold form details into info admonition - Add tw CLI install instructions; fix tw launch to use workspace pipeline name - Restructure section 4 as CLI-first: tw pipelines add, verify in Launchpad, then launch Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add .seqera_config stub with comments pointing to where values are found in Seqera UI - Rewrite section 3.3 to use config file for token and workspace ID - Add tw --version expected output and recap sentence - Add tip about TOWER_COMPUTE_ENV and link to tw CLI reference docs - Add recap sentences after tw runs list and tw pipelines add outputs - Fix .seqera_config path consistency throughout Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update all path references in orientation, Part 1, Part 2, and Part 3 docs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update references in mkdocs.yml, index.md, and 00_orientation.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update references in mkdocs.yml and index.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Part 1: add output block code snippet and recap sentence; fold nextflow.config into collapsed admonition - Part 2: replace sections 3.1.3-3.1.4 with brief validation note; fold laptop.config into collapsed admonition - Part 3: address tw --version output, compute env tip, and workspace recap TODOs - index.md: comment out unfinished video section Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The index_page template requires a <!-- additional_information --> marker to split summary content from course overview. Its absence caused the Netlify build to error out. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Part 1: add -ansi-log false run to show per-call output; fix output block in 1.4.4 to show 1-hello.nf; update main.nf publish paths from 'main' to 'full_pipeline'; fix nextflow.config admonition type - Part 2: rewrite 4.2 memory error explanation with base.config context; improve 3.2.1/3.2.2 with touch/run instructions, command output admonitions, and -resume flag; add .command.sh admonition for ext.args; replace ls with tree for conf/ listing; fix laptop.config admonition type; convert TODO to tip admonition for academic program Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… triathlon Parts 1-3 Part 1 (01_run_nextflow.md): - Fix output filename (Hello World!-output.txt, not Hello-output.txt) - Update all console output hashes and revision IDs to match actual runs - Fix section 1.4.4 output block (was showing main.nf instead of 1-hello.nf) - Fix duplicate section 2.1 numbering (renumber to 2.1-2.4) - Fix resume command typo (csv-resume → csv -resume) and remove stray -ansi-log false - Add hl_lines to process output blocks, channel construction, container directive, and chaining Part 2 (02_run_nfcore.md): - Fix nf-core/demo asset tree path (pipelines/ → /workspaces/.nextflow/assets/) Part 3 (03_run_seqera.md): - Add explanation in 4.2 that input/outdir appear red (required, no defaults) - Rewrite 4.3 as web interface launch with manual parameter entry - Add new 4.4: CLI launch using -p test + --params-file for outdir - Explain why tw launch requires --params-file instead of individual flags - Update intro and summary to reflect two-path launch approach Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace "Course structure" with "Get ready to work" section matching other courses - Set working directory to triathlon/ + code . to focus VSCode - Add tree output showing full triathlon/ structure including .seqera_config - Simplify Part 1 tip to relative cd basics - Update Part 2 tip to include relative cd ../nf-core option Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update tip in section 4.4 to demonstrate passing --params-file and --profile to tw pipelines add, so defaults are saved with the pipeline registration rather than specified at launch time. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5 tasks
…g Collection Replaces the Nextflow Run course with Triathlon Part 1, extracts a new standalone nf-core Run course from Hello nf-core's demo-pipeline lesson (extended with a pull-and-run nf-core/rnaseq section from Triathlon Part 2), adds a new Seqera Platform side quest from Triathlon Part 3, and ties the three together in a new "Nextflow Triathlon" Training Collection. The old Nextflow Run course is retired to a browsable but unlisted archive path; the standalone Triathlon course and its exercise code are removed now that their content has been redistributed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Add non-clickable sidebar group labels (Users/Developers) via a custom nav.html override, driven by extra.nav_group_labels in mkdocs.yml - Move Help under Home; add new Run with Seqera course (moved out of Side Quests) under the Users group - Rename nf-core Run -> Run nf-core, Run on Seqera -> Run with Seqera, and Hello nf-core -> Build with nf-core for clarity - Flatten Training Collections into a Learning Paths label, then retire it entirely: fold Architect's Toolkit into a "Suggested path" section on the Side Quests index, drop Nextflow Triathlon (now redundant with the Users course ordering), and add redirects for the old URLs - Sync the corresponding renames/labels across all translated mkdocs.yml and content files where the old names were embedded as literal terms
- Introduce a generic nav_title_overrides mechanism in mkdocs_hooks.py so a section's sidebar title can differ from its index page's own title - Move Training Environment out of Help into its own top-level item, then group it with the version/help reference pages under a new "Setup & Help" label at the bottom of the nav - Rename each course section's first sub-item to "Overview" (Nextflow Run, Run nf-core, Run with Seqera, Hello Nextflow, Build with nf-core, Nextflow for Science, Side Quests) to avoid repeating the section name, without changing the underlying page's own title - Restructure the Side Quests catalog into a single HTML table with colspan category-separator rows, with matching CSS for the header/ category row styling - Sync all of the above to translated mkdocs.yml files, using each language's own already-translated titles where they exist
- Extend nav_title_overrides usage to Nextflow for Science and Side Quests so their first sub-item reads "Overview" too, and add a matching nav_child_title_overrides mechanism so that label can be translated per language (it was previously always English, set once in the shared nav list) - Reorder the Side Quests nav to match the catalog table's categories, and add a nav-item.html override so non-clickable category separators can be injected into a nested nav list, not just the top-level one (new nav_section_separators config, reusing the existing group-label styling) - Sync all of the above to translated mkdocs.yml files
The redirects plugin (enabled earlier for the retired Training Collections URLs) was only present because the local Docker preview image happens to bundle it via its squidfunk/mkdocs-material base image. Neither the Netlify preview build (_scripts/docs.py, via its uv inline deps) nor the production docs.yml workflow installed it, so both failed with "Config value 'plugins': The redirects plugin is not installed" the moment mkdocs.yml enabled it. Reproduced the Netlify build locally via uv run docs.py build-all and confirmed all 11 languages now build clean.
Covers content this branch moves that is currently live on master: the old Nextflow Run course (now archived), the Hello nf-core lessons renumbered down by one, and the demo lesson extracted into the new nf-core Run course. Verified each target resolves with no plugin warnings and spot-checked one end-to-end in the preview.
Resolves the 8 real conflicts from ~3 months of independent master work
overlapping with this branch's restructuring:
- docs/en/docs/hello_nf-core/01_rewrite_hello.md,
docs/en/docs/hello_nf-core/03_make_module.md,
docs/en/docs/nfcore_run/01_run_demo.md: these are rename conflicts from
the Hello nf-core lesson renumbering and the demo lesson's extraction
into the new Run nf-core course. Kept this branch's part numbering and
file structure, but adopted master's `channel.topic` (lowercase)
correction, which matches the capitalization used everywhere else in
that file.
- hello-nf-core/solutions/core-hello-part1/subworkflows/nf-core/
utils_nfcore_pipeline/tests/main.nf.test(.snap): rename-detection
misses; content is byte-identical to what's already at the renamed
location, so resolved as-is.
- hello-nf-core/solutions/core-hello-part{2,4}/modules.json and
core-hello-part1/modules.json (resurrected from part5 via a
modify/delete conflict): master bumped the utils_nfcore_pipeline and
utils_nfschema_plugin subworkflow pins; adopted those newer git_sha
values and normalized formatting to the 4-space style used by sibling
modules.json files elsewhere in the repo. Removed the resurrected
core-hello-part5/modules.json since that directory was intentionally
renamed to core-hello-part1 on this branch.
Verified with `uv run docs.py build-all` (the same command Netlify/CI
use) that all 11 languages still build cleanly after the merge.
When resolving the merge conflict in this file, I kept our branch's projectDir/launchDir/workDir values (correct: launchDir/workDir should say nfcore-run, not hello-nf-core, since this course was extracted into its own directory). But projectDir doesn't depend on which course directory the student is in - it reflects Nextflow's pipeline cache layout, which master had already updated to the current .repos/<repo>/clones/<sha> format everywhere else in this same file (including the configFiles line two lines below, which auto-merged without conflict). Picking "ours" for projectDir left it mismatched against that auto-merged configFiles line, a mismatch that didn't exist on either side before the merge. Updated projectDir to match.
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.
Creates a new training course (docs/en/docs/nextflow_triathlon/) designed as a fast-track introduction to the Nextflow ecosystem. The course covers three topics in sequence:
Also includes orientation, next steps, and survey pages, mkdocs.yml nav and plugin config updates, and a note in the orientation to upgrade the Codespaces machine to 8 cores for parallel execution demos.