Skip to content

Commit 1c4ff25

Browse files
pinin4fjordsclaudeadamrtalbotvdauwera
authored
Polish and enhance Hello nf-core training materials (#691)
* Correct memory in test profile * Reframe test profile section to avoid implying param inference 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 <noreply@anthropic.com> * Update Nextflow version to 25.04.3 in nf-core materials 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 <noreply@anthropic.com> * Update nf-core/demo version to 1.0.2 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 <noreply@anthropic.com> * Updated nf-core/demo output * mend * update demo pipeline contents * Refine subworkflow coverage * correct tree level * Correct another tree level, params schema coverage * Update input schema content * Fix priority issues in nf-core Part 1 - 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 <noreply@anthropic.com> * Improve style consistency in nf-core Part 1 - 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 <noreply@anthropic.com> * Add content enhancements to nf-core Part 1 - 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 <noreply@anthropic.com> * Fix issues in nf-core Part 2 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 <noreply@anthropic.com> * fix workflow listing * Update first run output * Clarify section 3 transition in nf-core Part 2 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 <noreply@anthropic.com> * Add a highlight * Reorder section 3.3 to show proper version channel pattern 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 <noreply@anthropic.com> * fix line num * Fix highlights, indents * More highlight fixes * Fix indents * Add missing highlights * Clarify .view line removal in section 3.3 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 <noreply@anthropic.com> * Remove redundancy at section 4 start 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 <noreply@anthropic.com> * Update solution * Fix linting errors in core-hello-part2 solution files Add missing newlines at end of files: - utils_nextflow_pipeline/tests/main.function.nf.test.snap - utils_nfcore_pipeline/tests/main.function.nf.test.snap - utils_nfcore_pipeline/tests/main.workflow.nf.test.snap Remove extra blank line in: - utils_nfschema_plugin/main.nf 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * prettier * Correct attribution of pipeline_info contents in section 4.5 Previous text incorrectly attributed all pipeline_info contents to "nf-core utility subworkflows". In reality: - Execution reports (timeline, trace, report, dag) are produced by Nextflow's built-in reporting configured in nextflow.config - Software versions and params are from nf-core template features Changed to more accurate generic description: "execution reports and metadata" which correctly encompasses both sources without incorrectly attributing everything to utility subworkflows. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Clarify nf-core module naming conventions Fix the module naming convention note to accurately reflect that: - Modules use software/command format when tools have multiple commands (e.g., samtools/view, gatk/haplotypecaller) - Modules use single-level names when tools have only one main command (e.g., fastqc, multiqc) - Remove incorrect fastqc/fastqc example 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add info output * Update some outputs * Fix cat content * update some outputs * Fix highlight * Update part 3 solution * Remove legacy collectGreetings module from part 3 Changes: - Add Step 4 to lesson instructing removal of collectGreetings import - Remove collectGreetings import from part3 solution - Delete collectGreetings.nf module file from part3 solution - Fix code fence syntax: change name= to title= for consistency - Renumber final step from 4 to 5 The lesson now properly teaches users to clean up the replaced module rather than leaving unused imports and files in the codebase. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Improve learning flow with contextual transitions Part 2: - Add brief context before composability section explaining why it's needed for nf-core template integration - Clarify that composable workflows must be called from parent workflow Part 3: - Add motivation for replacing custom module with nf-core module - Emphasize benefits: community testing, maintenance, learning value These additions provide smoother conceptual transitions without duplicating content covered in side quests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Reframe Part 4 as 'Make an nf-core module' Renamed file: 04_adapt_module.md → 04_make_module.md Changes to emphasize module creation over adaptation: Title and Introduction: - Changed from "Adapt local modules" to "Make an nf-core module" - Explicitly acknowledge nf-core modules create exists - Frame manual approach as "learning by doing" for deeper understanding - Preview that official tooling will be shown at the end Section 1: - Renamed to "Transform cowpy into an nf-core module" - Added intro emphasizing transformation into community standards Section 2: - Updated: "Use nf-core tooling to create modules" - Better transition connecting manual learning to practical tooling - Enhanced code comments: "Pattern 1/2/3" linking to what was learned - Added: "Notice how all three patterns you applied manually are there!" Takeaway: - Opens with: "You now know how to create nf-core modules!" - Emphasizes manual learning equips you to work with, debug, and create - Reinforces learning-by-doing → practical tooling progression Cross-references: - Updated Part 3 link text to match new framing - Updated Part 5 prerequisite note with new title - Updated mkdocs.yml navigation The reframing maintains all technical content while shifting emphasis from "fixing local modules" to "learning to create nf-core modules." 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Highlight additional nf-core conventions in template Added note in section 2.1 explaining conventions that appear in the nf-core modules create template but weren't covered in the hands-on section: - tag "$meta.id" - for process tracking in logs - label 'process_single' - for resource configuration - versions.yml output - for reproducibility tracking - UPPERCASE process names - naming convention This helps students understand that the template provides more than just the three patterns they learned manually, preparing them for working with real nf-core modules. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Clarify working within core-hello pipeline context Added explicit reminders that students are working within their core-hello pipeline: Introduction: - Changed "our local cowpy module" to "the local cowpy module in your core-hello pipeline" to establish context early Section 1: - Updated intro to specify "in your core-hello pipeline" - Added prominent tip box reminding students to cd into core-hello - Provides explicit command: cd core-hello This addresses potential confusion about where students should be running commands and editing files, especially for those starting from a solution or returning after a break. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Minor changes to nf-core part 4 * Clarify ext.args usage and flexibility Fixed inaccurate description of when to use ext.args: Before: Implied ext.args is only for "optional" arguments and suggested a hard distinction between channel inputs and ext.args. After: - Clarified ext.args is for passing command-line arguments through configuration rather than as process inputs - Added note explaining ext.args can be dynamic and sample-specific using closures that access metadata - Example: ext.args = { meta.single_end ? '--single' : '--paired' } - Updated benefits to mention "including sample-specific values" This correction is important because: 1. ext.args is commonly used with closures for dynamic, per-sample args 2. The distinction isn't "mandatory vs optional" but rather "data inputs vs tool configuration" 3. Prevents students from thinking ext.args is limited to static values 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Elevate and clarify centralized publishDir explanation Made the publishDir centralization more prominent and clear: Before: Mentioned in a collapsed note, easy to miss After: Full section explaining the concept properly Key improvements: 1. New section header: "Centralized publishing configuration" 2. Shows the actual default publishDir config from modules.config: - path template using task.process - mode from params - saveAs to filter versions.yml 3. Explains the default behavior: auto-publishes to outdir/<process_name>/ 4. Clarifies customization is still possible via withName: blocks 5. Clear benefits: - Useful default that "just works" - Easy customization in config (not module code) - Portable modules without hardcoded paths This is a fundamental nf-core convention that deserves proper emphasis, not just a side note. Students need to understand why removing publishDir from the module is the right approach. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * tweak * Add subtle Babylon 5 reference with kosh character Changed the test example to use 'kosh' as the cowpy character with a subtle hint about its enigmatic nature. For B5 fans: You know exactly who Kosh is. Understanding dawns. Yes. For everyone else: It's just an unusual cowsay character option. This maintains accessibility while adding a fun easter egg for those in the know. The word "enigmatic" is appropriate whether or not you recognize the reference. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Enrich nf-core modules create section with environment/container details Updated section 2.1 based on actual command behavior: Interactive prompts: - Changed from generic list to qualitative description - Explains tool looks up info from Bioconda and bio.tools automatically - Describes the three key prompts: author, resource label, meta requirement - Emphasizes tool handles complexity, user focuses on logic Generated structure: - Shows actual output format: "INFO Created following files:" - Clarifies creates in modules/local/ (or modules/nf-core/ in modules repo) - Lists all 4 files with clear purpose explanations New section: Completing environment and container setup - Explains cowpy is in conda-forge (not Bioconda) - Shows how to write environment.yml for conda-forge packages - Introduces Seqera Containers for building containers from Conda packages - Tip box explaining Bioconda (BioContainers) vs conda-forge (Seqera Containers) - Links to https://seqera.io/containers/ This addresses the real-world scenario that not all tools are in Bioconda, and shows students how to handle conda-forge packages using Seqera Containers for containerization. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Use --empty-template flag for cleaner module creation example Updated the nf-core modules create command to include --empty-template: ```bash nf-core modules create --empty-template cowpy ``` Benefits: - Creates a minimal template without extra boilerplate - Makes it easier for learners to see the essential structure - Avoids overwhelming students with auto-generated comments and TODOs - Cleaner starting point for understanding the patterns Added brief explanation that this flag provides a clean starter template, making the essential nf-core conventions more visible. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Update module template to match actual --empty-template output Replaced the example template with the actual output from: nf-core modules create --empty-template cowpy Key changes: Template now shows: - Fixed typo: "pprocess" → "process" - Actual container placeholder structure for Singularity/Docker - when: block for conditional execution (task.ext.when) - stub: block for fast mock testing - More realistic placeholder comments Enhanced bullet list to include newly visible features: - when: block - conditional execution via task.ext.when - stub: block - fast mock implementation for testing without running tool - Container placeholders - template structure for both engines Added syntax highlighting to emphasize: - Lines 10-11: Metadata tuple input (Pattern 1) - Line 19: when block - Lines 25-26: ext.args and ext.prefix (Patterns 2 & 3) - Lines 40-41: stub block versions This gives students an accurate view of what they'll actually see when running the command, including important features like stub blocks that enable fast pipeline testing. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add reference to nf-test side quest for testing Added tip box after the generated files list that points students to the nf-test side quest for learning about module testing. The nf-core modules create command generates test files using nf-test, but we don't cover testing in this lesson. The tip box: - Explains the generated test file uses nf-test - Provides clear link to the nf-test side quest - Appears right after listing the test files, when students are naturally curious about them This helps students understand what the test files are for and where to learn more, without derailing the main lesson about module patterns. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix remaining file path links to use backticks Changed markdown link syntax to simple backticks for file paths where the link doesn't make sense: - Line 48: [core-hello/modules/local/cowpy.nf](...) → `core-hello/modules/local/cowpy.nf` - Line 110: [core-hello/workflows/hello.nf](...) → `core-hello/workflows/hello.nf` These are file paths that students should open in their editor, not clickable navigation links within the training site. Backticks are more appropriate for indicating file paths to edit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Clarify distinction between channel inputs and ext.args Fixed line 167 to better explain when to use channel inputs vs ext.args: Before: Confusing phrasing about "optional tool arguments" and "metadata plus mandatory value and file inputs" After: Clearer distinction: - Module interface focused on "essential data (files, metadata, and any mandatory per-sample parameters)" - these go via channels - "Tool configuration options" go through ext.args This clarifies that: - Files and metadata always go through channels - Mandatory per-sample parameters also go through channels - Tool configuration/options (whether optional or not) use ext.args The distinction is about data vs configuration, not mandatory vs optional. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix highlight * Fix highlight * Fix up part 4 solution * Try some linting fixes * Fix linting errors in nf-core solution files - Fixed markdown code fence formatting in 04_make_module.md - Fixed end-of-file formatting in all .snap test files - Removed extra blank lines from utils_nfschema_plugin/main.nf files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * prettier * Fix nested list indentation in input validation docs Changed sub-list indentation from 3 to 4 spaces to properly render nested bullet points under numbered list items. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix list rendering in input validation docs Changed from numbered list to bold headings with bullet lists to prevent all items from rendering as a single 10-item numbered list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove redundant sentence from validation section Removed repetitive statement about early failure that was already established in the "Why validation matters" section above. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Clarify nf-schema as standalone plugin Emphasized that nf-schema is a standalone Nextflow plugin that can be used in any pipeline, while also noting its heavy integration with and adoption by nf-core. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Update schema docs to use interactive builder tool Replaced manual JSON editing instructions with the interactive nf-core pipelines schema build workflow. Added screenshots showing the web interface for adding parameters. Emphasized that manual editing is error-prone and the GUI tool is the recommended approach. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix image links * Fix image paths in input validation docs Changed image paths from ./img/hello_nf-core/ to ./img/ to match the convention used in other hello_nf-core lessons. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix validation configuration approach Replaced incorrect --validationSchemaIgnoreParams command-line flag with proper nextflow.config validation block configuration. Added before/after code blocks showing how to temporarily ignore input validation during section 2 and re-enable it in section 3 after configuring the input data schema. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Improve schema_input.json section with before/after Changed section 3.3 to use before/after tabs showing the transition from the template's default paired-end sequencing schema to the simpler greetings schema. This helps users understand what they're changing and why. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Replace file link with backticked string Changed file path from markdown link to backticks to match repository conventions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Reorganize validation configuration section Moved validation configuration content from the oddly-placed section 3.5 note to a new section 1.4 that explains how nf-schema is installed and configured in nf-core pipelines. This section now includes: - Explanation of how nf-schema is pre-installed in the template - The validation{} configuration block - The before/after edit to add ignoreParams for input validation - Context for why we temporarily disable input file validation Removed the duplicate content from section 2.3 (now 2.3 is just testing). This provides better flow: users configure validation upfront in section 1, then work through parameter validation in section 2, and finally re-enable input validation in section 3. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Polish validation docs for consistency and clarity - Fixed test command to use 'nextflow run .' consistently - Fixed cross-reference from section 3.6 (was 2.3, should be 1.4) - Improved clarity of verification step with bold header - Updated test output examples to be more accurate 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add context about Hello Nextflow workflow Added a "What does the Hello Nextflow workflow do?" subsection at the start of section 2 to provide context for users who may not have completed the Hello Nextflow training course. This explains the workflow's purpose and functionality before diving into making it composable. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add course overview to orientation Added "What you'll learn" section to orientation that explains the five core concepts covered in the course and why they matter. Sets expectations that we can't be exhaustive but focus on essential concepts for getting started with nf-core. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Add summary page to Hello nf-core course Created a new summary page that wraps up the course by: - Highlighting what learners built (the core-hello pipeline) - Summarizing the five key skills acquired - Explaining the transformation from research script to production pipeline This provides closure before the survey and next steps pages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Update Part 5 ending to point to summary page Replaced the large Congratulations section with a simple "What's next?" that directs users to the new summary page. This avoids duplication and maintains consistent flow across all parts that end with "What's next?". 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix solutions * Some linting fixes * Fix linting errors in core-hello-part5 solution Remove trailing whitespace from cowpy module files to pass editorconfig checks. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix remaining linting issues in core-hello-part5 solution - Remove trailing whitespace from snap files - Add newlines at end of snap files - Remove extra blank line from utils_nfschema_plugin/main.nf 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Strip nf-core side quest in favour of 'hello nf-core' * Fix workflow description to match actual behavior 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 <noreply@anthropic.com> * Try some folding directory listings * Replace step labels and bold text with numbered headings in hello_nf-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 <noreply@anthropic.com> * Prettier * Address Geraldine's editorial comments on Hello nf-core 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 <noreply@anthropic.com> * Remove remaining em-dashes from Hello nf-core 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 <noreply@anthropic.com> * Address editorial comments from PR review - 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 <noreply@anthropic.com> * Move publishDir configuration details to note box 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 <noreply@anthropic.com> * Restore backticks * Improve publishDir configuration explanation 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 <noreply@anthropic.com> * Minor editorial improvements to module creation section - 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 <noreply@anthropic.com> * Clarify module template customization requirements 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 <noreply@anthropic.com> * Restructure validation intro and reduce overconfident claims 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 <noreply@anthropic.com> * Clarify monochromeLogs parameter description 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 <noreply@anthropic.com> * Clarify input data validation scope and monochromeLogs 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 <noreply@anthropic.com> * Make takeaway bullet more explicit about publishDir 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 <noreply@anthropic.com> * Prioritize visual output verification over command inspection 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 <noreply@anthropic.com> * Change section heading to avoid overloaded 'template' term 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 <noreply@anthropic.com> * prettier * Correct a highlight * Move "What you'll learn" content to index page * Improvements to the Orientation page If we like this new version we can implement it for all the course orientation pages that apply * minor tweaks * Reworked Part 1 (run demo) for clarity and flow * Add green start button * Completed updates to Part 2 plus a formatting fix to Part 1 * Header formatting fix * Improvements to Part 3 (add a module) Made minor rearrangements to the order of the content, broke it down into 3 subsections, fleshed out some of the explanations to be more accessible to less experienced developers. Also added a screenshot. Planning a diagram for additional clarity. * Partial revamp of Part 4 (some placeholders left) Mainly rearranged the content to make it more accessible. I was a bit confused on my first pass. This breaks things down into more separate buckets of work. Also some formatting fixes to Part 3 * Completed revamped Part 4 (minus a few optional TODOs) Will need to recheck all the code/line numbers etc * fix ghost lines * Minor fixes Mostly consistency and also the box on plugins was way out of place * Final tweaks to Part 1 * Minor updates and address TODO: add diagram * Fix image * SVG rendering not working within admonition? * Update Part 2 plus solutions * Minor updates to Part 3 (line numbers mostly) and solutions * Minor updates to 4 and 5 (line numbers mostly) * Consistency * Minor updates Going to need to update the validation part based on the three column format... --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Adam Talbot <12817534+adamrtalbot@users.noreply.github.com> Co-authored-by: Geraldine Van der Auwera <geraldinevdauwera@gmail.com>
1 parent 47b964b commit 1c4ff25

File tree

139 files changed

+7573
-3391
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+7573
-3391
lines changed

docs/hello_nextflow/img/hello_pipeline_complete.svg

Lines changed: 5 additions & 0 deletions
Loading
Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,34 @@
1-
# Orientation
1+
# Getting started
22

3-
## GitHub Codespaces
3+
To start the course, launch the training environment by clicking the "Open in GitHub Codespaces" button below.
4+
We recommend opening the training environment in a new browser tab (use right-click, ctrl-click or cmd-click depending on your equipment) so that you can read on while the environment loads.
5+
You will need to keep these instructions open in parallel.
46

5-
The GitHub Codespaces environment contains all the software, code and data necessary to work through this training course, so you don't need to install anything yourself.
6-
However, you do need a (free) GitHub account to log in, and you should take a few minutes to familiarize yourself with the interface.
7+
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master)
78

8-
If you have not yet done so, please go through the [Environment Setup](../../envsetup/) mini-course before going any further.
9+
## Training environment
10+
11+
Our training environment runs on GitHub Codespaces (free Github account required) and contains all the software, code and data necessary to work through this training course, so you don't need to install anything yourself.
12+
13+
The codespace is set up with a VSCode interface, which includes a filesystem explorer, a code editor and a terminal shell.
14+
All instructions given during the course (e.g. 'open the file', 'edit the code' or 'run this command') refer to those three parts of the VScode interface unless otherwise specified.
15+
16+
If you are working through this course by yourself, please go through the [Environment Setup](../../envsetup/) mini-course for further details before going any further.
917

1018
!!! warning
1119

12-
This training is designed for nf-core tools version 3.4.1, which should be the version installed in the codespace. If you use a different version of nf-core tooling you may have difficulty following along.
20+
This training is designed for nf-core tools version 3.4.1, which should be the version installed in the codespace we provide.
21+
If you use a different version of nf-core tooling, you may have difficulty following along.
1322

1423
You can check what version is installed using the command`nf-core --version`.
1524

16-
## Working directory
25+
## Get ready to work
26+
27+
Once your codespace is running, there are two things you need to do before diving into the training: set your working directory for this specific course, and take a look at the materials provided.
1728

18-
Throughout this training course, we'll be working in the `hello-nf-core/` directory.
29+
### Set the working directory
30+
31+
By default, the codespace opens with the work directory set at the root of all training courses, but for this course, we'll be working in the `hello-nf-core/` directory.
1932

2033
Change directory now by running this command in the terminal:
2134

@@ -25,15 +38,15 @@ cd hello-nf-core/
2538

2639
!!! tip
2740

28-
If for whatever reason you move out of this directory, you can always use the full path to return to it, assuming you're running this within the Github Codespaces training environment:
41+
If for whatever reason you move out of this directory (e.g. your codespace goes to sleep), you can always use the full path to return to it, assuming you're running this within the Github Codespaces training environment:
2942

3043
```bash
3144
cd /workspaces/training/hello-nf-core
3245
```
3346

3447
Now let's have a look at the contents of this directory.
3548

36-
## Materials provided
49+
### Check out the materials provided
3750

3851
You can explore the contents of this directory by using the file explorer on the left-hand side of the training workspace.
3952
Alternatively, you can use the `tree` command.
@@ -46,26 +59,33 @@ Here we generate a table of contents to the second level down:
4659
tree . -L 2
4760
```
4861

49-
If you run this inside `hello-nf-core`, you should see the following output:
50-
51-
```console title="Directory contents"
52-
.
53-
├── greetings.csv
54-
├── original-hello
55-
│ ├── hello.nf
56-
│ ├── modules
57-
│ └── nextflow.config
58-
└── solutions
59-
├── composable-hello
60-
├── core-hello-part2
61-
├── core-hello-part3
62-
├── core-hello-part4
63-
└── core-hello-start
64-
65-
8 directories, 3 files
66-
```
62+
If you run this inside `hello-nf-core`, you should see the following output.
63+
64+
??? example "Directory contents"
65+
66+
```console
67+
.
68+
├── greetings.csv
69+
├── original-hello
70+
│ ├── hello.nf
71+
│ ├── modules
72+
│ └── nextflow.config
73+
└── solutions
74+
├── composable-hello
75+
├── core-hello-part2
76+
├── core-hello-part3
77+
├── core-hello-part4
78+
└── core-hello-start
79+
80+
8 directories, 3 files
81+
```
6782

68-
**Here's a summary of what you should know to get started:**
83+
!!! note
84+
85+
We use collapsible sections like this to include expected command output in a concise way.
86+
Click on the colored box to expand the section and view its contents.
87+
88+
**Content guide:**
6989

7090
- **The `greetings.csv` file** is a CSV containing some minimal columnar data we use for testing purposes.
7191

@@ -74,4 +94,14 @@ If you run this inside `hello-nf-core`, you should see the following output:
7494
- **The `solutions` directory** contains the completed workflow scripts that result from each step of the course.
7595
They are intended to be used as a reference to check your work and troubleshoot any issues.
7696

77-
**Now, to begin the course, click on the arrow in the bottom right corner of this page.**
97+
## Readiness checklist
98+
99+
Think you're ready to dive in?
100+
101+
- [ ] I understand the goal of this course and its prerequisites
102+
- [ ] My codespace is up and running
103+
- [ ] I've set my working directory appropriately
104+
105+
If you can check all the boxes, you're good to go.
106+
107+
**To continue to Part 1, click on the arrow in the bottom right corner of this page.**

0 commit comments

Comments
 (0)