Skip to content

Conversation

@pinin4fjords
Copy link
Collaborator

@pinin4fjords pinin4fjords commented Oct 30, 2025

Polish and enhance Hello nf-core training materials

This PR significantly improves the Hello nf-core training course with comprehensive updates across all five parts, focusing on clarity, accuracy, consistency, and completeness.

We also remove the old nf-core side-quest to avoid confusion.

Major Changes

New Content

  • Added course overview in orientation (00_orientation.md) explaining the five core concepts covered and why they matter, setting expectations that the course focuses on essential concepts rather than being exhaustive
  • Added summary page (summary.md) to wrap up the course by highlighting what learners built, key skills acquired, and the transformation from research script to production pipeline
  • Added context for Hello Nextflow workflow in Part 2 for learners who may skip ahead without completing the Hello Nextflow course

Part 1: Run an nf-core pipeline (01_run_demo.md)

  • Updated to nf-core/demo version 1.0.2 and Nextflow 25.04.3
  • Refined test profile explanation to avoid implying parameter inference
  • Enhanced style consistency throughout
  • Fixed priority issues and improved content flow

Part 2: Rewrite Hello for nf-core (02_rewrite_hello.md)

  • Clarified section transitions and working context within the core-hello pipeline
  • Improved highlight placement for code changes
  • Fixed workflow listings and indentation issues
  • Enhanced learning flow with better contextual transitions
  • Added explanation of what the Hello Nextflow workflow does for context

Part 3: Use an nf-core module (03_use_module.md)

  • Removed legacy collectGreetings module to simplify the lesson
  • Reordered section 3.3 to show proper version channel pattern
  • Clarified nf-core module naming conventions
  • Enhanced explanations with better highlights and clearer instructions
  • Fixed attribution and content accuracy

Part 4: Make an nf-core module (04_make_module.md)

  • Renamed from 04_adapt_module.md to better reflect the content (creating your own module)
  • Enriched module creation section with environment/container details
  • Updated to use --empty-template flag for cleaner examples
  • Clarified ext.args usage and flexibility
  • Elevated and clarified centralized publishDir explanation
  • Enhanced explanation of nf-core conventions in the template
  • Added reference to nf-test side quest for testing
  • Fixed highlights and improved code examples throughout

Part 5: Input validation (05_input_validation.md)

  • Major restructure: Moved validation configuration to new section 1.4 for better pedagogical flow
  • Clarified nf-schema as a standalone plugin that's heavily adopted by nf-core
  • Replaced incorrect command-line flag with proper validation{} config block approach
  • Updated to use interactive nf-core pipelines schema build tool instead of manual JSON editing
  • Added screenshots showing the schema builder interface
  • Added before/after code blocks for schema_input.json changes
  • Fixed test command consistency (nextflow run . instead of nextflow run core-hello)
  • Removed redundant content and improved cross-references
  • Fixed image paths and file references
  • Simplified ending to point to new summary page

Minor Improvements

  • Fixed numerous linting errors across all parts
  • Improved consistency in file path references (using backticks for file paths)
  • Fixed nested list indentation and rendering issues
  • Enhanced code highlighting throughout
  • Corrected line numbers in code examples
  • Fixed image links and paths

Documentation Quality

  • All parts now have consistent "What's next?" sections that accurately preview the following content
  • Flow from Part 1 → Part 5 → Summary → Survey → Next Steps is now logical and clear
  • Before/after code blocks used consistently to show changes clearly
  • Better balance between teaching concepts and avoiding overwhelming detail

Testing

  • Verified all code examples and outputs are accurate
  • Confirmed all cross-references and links work correctly
  • Validated that the course flows logically from beginning to end

pinin4fjords and others added 14 commits October 30, 2025 13:09
The previous text suggested learners could infer required parameters
by examining what was present/absent in the test profile config.
This is misleading - the test profile only shows pre-configured values,
not requirements.

Changed section 2.1 to:
- Emphasize what the test profile *provides* (pre-configured input)
- Point to the usage example comment as the source for --outdir info
- Avoid suggesting we can infer requirements from config structure

This keeps the pedagogical value while being accurate about where
information comes from, deferring proper param discovery (via schema)
to later sections.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Standardized all Nextflow version references in the Hello nf-core
training materials to version 25.04.3.

Updated files:
- 01_run_demo.md: 24.10.0 → 25.04.3
- 02_rewrite_hello.md: 24.10.4 → 25.04.3 (4 occurrences)

Files 03_use_module.md and 05_input_validation.md already had
the correct version.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Updated all references to nf-core/demo from version 1.0.1 to 1.0.2
to reflect the current release.

Changes:
- Console output example showing pipeline version
- Documentation link to nf-co.re/demo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Fix typo: 'Netxflow' → 'Nextflow'
- Remove duplicate line in tree output
- Consolidate WoW side quest references (remove redundant mention)
- Add explanation of container profiles before first use
- Standardize cross-reference paths to use relative URLs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Standardize terminology: use 'pipeline documentation page' consistently
- Improve voice consistency: prefer inclusive 'we' over imperative
- Reduce passive voice: make Nextflow the active subject
- Fix grammar: 'specifics of what' and 'retrieve pipelines'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Add note about variable console output (timestamps, paths, names)
- Add transition paragraph between user and developer perspectives
- Clarify focus on file hierarchy vs code syntax

These improvements help set learner expectations and smooth pedagogical flow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@netlify
Copy link

netlify bot commented Oct 30, 2025

Deploy Preview for nextflow-training ready!

Name Link
🔨 Latest commit 1fb065c
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-training/deploys/690e754f7fe4fe0008c7f63b
😎 Deploy Preview https://deploy-preview-691--nextflow-training.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@pinin4fjords pinin4fjords marked this pull request as draft October 30, 2025 13:59
pinin4fjords and others added 14 commits October 30, 2025 14:10
Priority fixes:
- Fix grammar: 'inputs are handle' → 'inputs are handled'
- Fix directory typo: 'config' → 'conf'
- Remove incorrect line number reference
- Remove redundant WoW side quest reference (already mentioned earlier)
- Standardize WoW reference format to match Part 1

Style improvements:
- Add transitional text between sections 3 and 4
- Add motivation for dummy entrypoint workflow in section 2.6

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Section 3 was confusing because:
- No clear transition from testing composable workflow back to nf-core scaffold
- Ambiguous references to "original workflow" without specifying source/destination

Improvements:
- Add explicit transition at section 3 start explaining return to scaffold
- Clarify we're integrating work from section 2
- Make FROM/TO direction clear in section 3.1 (original-hello → core-hello)
- Specify directory paths explicitly to reduce ambiguity

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Move ch_versions initialization before workflow logic rather than after.
This reflects the correct pattern where:
1. Initialize empty versions channel
2. Run workflow processes (which would emit versions in real pipeline)
3. Collate versions at the end

Add explanation that this ordering allows processes to mix their version
outputs into ch_versions as the workflow runs, which is the intended
pattern even though we're not implementing version capture yet.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Make explicit that when copying workflow logic to nf-core scaffold,
learners should:
- Omit the `main:` keyword (already present)
- Remove the `.view` line (console output not needed in scaffold)

Update the "After" code block to show the workflow without the .view
line, matching the instruction.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The transition paragraph and first line of section 4 were saying the
same thing. Consolidated into single transition paragraph that flows
directly into section heading and first subsection.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
pinin4fjords and others added 4 commits October 31, 2025 15:13
Corrected the Hello Nextflow workflow description:
- sayHello writes greetings to files (doesn't add "world!")
- convertToUpper operates on the greeting text
- Added process names for clarity

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…core

Convert all instances of step labels and bold text pseudo-headings to proper
numbered headings for consistency and better navigation.

Changes:
- 03_use_module.md: Convert 5 "Step X:" labels to numbered headings (1.9.1-1.9.5)
- 04_make_module.md: Number 15 subsection headings (1.2.1-1.2.6, 1.3.1-1.3.4, 2.1.1-2.1.2, 2.2.1-2.2.3)
- 05_input_validation.md: Convert 3 bold labels to numbered headings (2.2.1, 3.7.1-3.7.2)
  and fix incorrectly numbered intro sections

Benefits:
- Consistent numbered heading structure throughout documentation
- All subsections appear in table of contents and sidebar navigation
- Sections can be directly linked with anchor links
- Easier to maintain with automated heading validation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Copy link
Collaborator

@vdauwera vdauwera left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed Parts 1-4 and the start of 5. I have a number of suggestions for clarifying and rearranging some bits. Happy to implement myself but it would be good to have you go over my comments first to see if there's anything you object to in principle, @pinin4fjords .

pinin4fjords and others added 16 commits November 4, 2025 10:59
This commit addresses the straightforward editorial feedback from
Geraldine's review of PR #691, focusing on improving clarity and
messaging for the research pipeline audience.

Changes:
- Strip em-dashes throughout (replace with periods/separate sentences)
- Revise messaging to avoid implying production vs research dichotomy
- Remove "production-ready" claims about the toy example
- Improve explanations of workflow summaries and technical concepts
- Clarify ext.args benefits (avoiding many optional input parameters)
- Replace jargon (e.g., "test harness") with simpler terms
- Make "learn by doing" messaging more specific and actionable

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Strip all remaining em-dashes from the hello nf-core documentation,
replacing them with periods, commas, or colons as appropriate for
cleaner, more straightforward technical writing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Add link to Hello Nextflow configuration section in 01_run_demo.md
- Rewrite workflow summary in 02_rewrite_hello.md to be more natural
- Remove redundant sentence about nf-core tooling in 04_make_module.md
- Restructure ext.args section with high-level overview first
- Improve ext.args explanation to be more specific about what it is
- Separate ext.args and publishDir discussions for better flow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Reorganize section 1.2.2 to present benefits first, then move the
default publishDir configuration details into a note box with a link
to nf-core documentation. This improves readability and flow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Expand the note box to explain the three parts of the default
publishDir configuration: path (with workflow hierarchy explanation),
mode, and saveAs. Acknowledge the complexity upfront and provide
concrete example of SAMTOOLS_SORT -> samtools/.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Change "understand" to "learned" for better flow
- Replace "boilerplate" with clearer "extra code"
- Expand resource label explanation to introduce the concept

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Addresses PR feedback about confusion around which parts of the
generated module template need customization vs work as-is.

Changes:
- Split features in section 2.1.1 into "work as-is" vs "placeholders
  to customize"
- Added three new sections (2.1.3-2.1.5) with before/after examples
  showing how to:
  - Define inputs and outputs for the specific tool
  - Write the script block with actual tool command
  - Implement the stub block to match script outputs
- Referenced manual module work from section 1 for consistency
- Clarified that features like tag, label, and when block are already
  functional

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Addresses PR feedback about section structure and overconfident language.

Changes:
- Moved intro material (sections 1.1-1.3) to top-level overview before
  numbered sections
- Moved configuration step (old 1.4) into section 1 as first practical
  step before examining schema
- Renumbered all sections (old section 2 → 1, old section 3 → 2)
- Updated takeaways to be less presumptuous: "You've learned" instead
  of "You now know", "seen in action" instead of "know how"
- Removed abrupt section ending - section 1 now flows naturally from
  config to schema examination to adding parameters

The structure now feels more complete with each section having clear
practical outcomes rather than ending on pure exposition.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The previous description "Control colored output" was vague. Changed to
"Disable colored output in validation messages when set to true" to be
more specific about what the parameter does.

Addresses PR feedback about vague wording.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Addresses two PR feedback items:

1. Clarified that input data validation is for sample sheet/manifest
   structure, NOT for validating contents of large data files (BAM,
   FASTQ, etc.). Added note explaining that data file validation should
   happen in processes on worker nodes for large-scale genomics.

2. Made monochromeLogs description more specific: "Disable colored
   output in validation messages when set to true" instead of vague
   "Control colored output"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Changed "Centralized configuration" to "Centralized publishing via
publishDir configured in modules.config rather than hardcoded in
modules" to be explicit about what this pattern covers.

Addresses PR feedback that the connection wasn't clear.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Changed testing section to check visual output first (faster and more
natural for workshops), with command file inspection as an optional
follow-up for those who want to see implementation details.

Addresses PR feedback about making workshop experience more efficient.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Changed "Use nf-core tooling to create modules" to "Generate modules
with nf-core tools" to avoid confusion between pipeline templates and
module templates.

Addresses: #691 (comment)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@vdauwera vdauwera added improve New feature or request nf-core labels Nov 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improve New feature or request nf-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants