diff --git a/.claude/skills/shared/repo-conventions.md b/.claude/skills/shared/repo-conventions.md index 15114668f5..51a7b37056 100644 --- a/.claude/skills/shared/repo-conventions.md +++ b/.claude/skills/shared/repo-conventions.md @@ -17,7 +17,7 @@ Verify location before running commands. Use paths relative to repository root. | Content Type | Documentation | Working Directory | Solutions | | -------------------- | ------------------------------------ | ----------------------- | --------------------------------- | | hello_nextflow | `docs/en/docs/hello_nextflow/` | `hello-nextflow/` | `hello-nextflow/solutions/` | -| hello_nf-core | `docs/en/docs/hello_nf-core/` | `hello-nf-core/` | `hello-nf-core/solutions/` | +| nfcore_build | `docs/en/docs/nfcore_build/` | `nfcore-build/` | `nfcore-build/solutions/` | | nf4_science/genomics | `docs/en/docs/nf4_science/genomics/` | `nf4-science/genomics/` | `nf4-science/genomics/solutions/` | | nf4_science/rnaseq | `docs/en/docs/nf4_science/rnaseq/` | `nf4-science/rnaseq/` | `nf4-science/rnaseq/solutions/` | | side_quests/\* | `docs/en/docs/side_quests/.md` | `side-quests//` | `side-quests/solutions//` | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index b525b531d0..f5b7152a84 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -59,7 +59,7 @@ jobs: python-version: "3.12" - name: Install Dependencies - run: pip install mkdocs-material mkdocs-enumerate-headings-plugin mkdocs-quiz + run: pip install mkdocs-material mkdocs-enumerate-headings-plugin mkdocs-quiz mkdocs-redirects - name: Build ${{ matrix.lang }} docs env: diff --git a/.prettierignore b/.prettierignore index d32a379e50..4c2411a175 100644 --- a/.prettierignore +++ b/.prettierignore @@ -4,6 +4,7 @@ **/docs/help.md **/docs/envsetup/index.md **/docs/hello_nextflow/index.md +**/docs/training_events.md # Ignore all files in side-quests/solutions side-quests/solutions/nf-core/**/*.js diff --git a/CLAUDE.md b/CLAUDE.md index f2310e3234..089b21f2c1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -59,7 +59,7 @@ sudo uv run ./preview_release.py --version 3.0 - `docs/en/` - English training content (source) - `docs/` - Markdown content - `hello_nextflow/` - Basic Nextflow introduction - - `hello_nf-core/` - nf-core framework training + - `nfcore_build/` - nf-core framework training - `nf4_science/` - Domain-specific training (genomics, RNAseq) - `side_quests/` - Advanced topics - `mkdocs.yml` - Site navigation and configuration @@ -67,7 +67,7 @@ sudo uv run ./preview_release.py --version 3.0 - `glossary.yml` - Per-language glossary for deterministic post-processing - `llm-prompt.md` - Language-specific translation instructions for the LLM - `_scripts/` - Translation package (`translate/`) and build scripts (`docs.py`) -- `hello-nextflow/`, `hello-nf-core/`, `nf4-science/`, `side-quests/` - Runnable Nextflow scripts paired with the matching `docs/en/docs//` lesson tree. Lesson markdown imports from these dirs via `--8<--` snippets, so changes to a script usually need a matching markdown edit (and vice versa). +- `hello-nextflow/`, `nfcore-build/`, `nf4-science/`, `side-quests/` - Runnable Nextflow scripts paired with the matching `docs/en/docs//` lesson tree. Lesson markdown imports from these dirs via `--8<--` snippets, so changes to a script usually need a matching markdown edit (and vice versa). - `docs/en/hooks/index_page_hook.py` - mkdocs hook that renders the `index_page` frontmatter template (see Conventions) - `.github/check_headings.py` - Validates heading numbering diff --git a/_scripts/docs.py b/_scripts/docs.py index b721224267..1cd367da5f 100644 --- a/_scripts/docs.py +++ b/_scripts/docs.py @@ -11,6 +11,7 @@ # "pymdown-extensions>=10.12", # "mkdocs-enumerate-headings-plugin>=0.6.0", # "mkdocs-quiz>=1.5.4", +# "mkdocs-redirects>=1.2.2", # "mike", # ] # /// diff --git a/_scripts/mkdocs_hooks.py b/_scripts/mkdocs_hooks.py index 97827aa206..40b66f9d8b 100644 --- a/_scripts/mkdocs_hooks.py +++ b/_scripts/mkdocs_hooks.py @@ -141,8 +141,17 @@ def generate_renamed_section_items( items: list[Union[Page, Section, Link]], *, config: MkDocsConfig ) -> list[Union[Page, Section, Link]]: """ - Recursively process nav items to use page titles for section names. + Recursively process nav items to use page titles for section names, + unless overridden via extra.nav_title_overrides (keyed by the source + path of the section's index page, relative to docs_dir). + + Also applies extra.nav_child_title_overrides to any Page item's own + nav label (keyed the same way), for cases like the "Overview" label + on a section's first child, which is set explicitly in nav.yml and + otherwise can't vary per language. """ + title_overrides = config.extra.get("nav_title_overrides", {}) + child_title_overrides = config.extra.get("nav_child_title_overrides", {}) new_items: list[Union[Page, Section, Link]] = [] for item in items: if isinstance(item, Section): @@ -151,14 +160,22 @@ def generate_renamed_section_items( first_child = new_children[0] if new_children else None if isinstance(first_child, Page): if first_child.file.src_path.endswith("index.md"): - # Read the source so that the title is parsed and available - first_child.read_source(config=config) - new_title = first_child.title or new_title + override = title_overrides.get(first_child.file.src_path) + if override: + new_title = override + else: + # Read the source so that the title is parsed and available + first_child.read_source(config=config) + new_title = first_child.title or new_title # Modify existing section to preserve collapsed state item.title = new_title.split("{ #")[0].strip() item.children = new_children new_items.append(item) else: + if isinstance(item, Page): + child_override = child_title_overrides.get(item.file.src_path) + if child_override: + item.title = child_override new_items.append(item) return new_items diff --git a/_scripts/translate/config.py b/_scripts/translate/config.py index 58faf85f89..828f16b132 100644 --- a/_scripts/translate/config.py +++ b/_scripts/translate/config.py @@ -29,7 +29,7 @@ MAX_CONTINUATIONS = 5 # Max continuation requests for very large files MAX_VERIFY_RETRIES = 2 # Re-translation attempts after verification failure DEFAULT_PARALLEL = 10 -PRIORITY_DIRS = ["hello_nextflow", "hello_nf-core", "nf4_science", "envsetup"] +PRIORITY_DIRS = ["hello_nextflow", "nfcore_build", "nf4_science", "envsetup"] @lru_cache diff --git a/archive/nextflow-run/1-hello.nf b/archive/nextflow-run/1-hello.nf new file mode 100644 index 0000000000..050bade7e1 --- /dev/null +++ b/archive/nextflow-run/1-hello.nf @@ -0,0 +1,42 @@ +#!/usr/bin/env nextflow + +/* + * Use echo to print 'Hello World!' to a file + */ +process sayHello { + + input: + val greeting + + output: + path 'output.txt' + + script: + """ + echo '${greeting}' > output.txt + """ +} + +/* + * Pipeline parameters + */ +params { + input: String +} + +workflow { + + main: + // emit a greeting + sayHello(params.input) + + publish: + first_output = sayHello.out +} + +output { + first_output { + path '1-hello' + mode 'copy' + } +} diff --git a/nextflow-run/2a-inputs.nf b/archive/nextflow-run/2a-inputs.nf similarity index 100% rename from nextflow-run/2a-inputs.nf rename to archive/nextflow-run/2a-inputs.nf diff --git a/nextflow-run/2b-multistep.nf b/archive/nextflow-run/2b-multistep.nf similarity index 100% rename from nextflow-run/2b-multistep.nf rename to archive/nextflow-run/2b-multistep.nf diff --git a/nextflow-run/2c-modules.nf b/archive/nextflow-run/2c-modules.nf similarity index 100% rename from nextflow-run/2c-modules.nf rename to archive/nextflow-run/2c-modules.nf diff --git a/nextflow-run/2d-container.nf b/archive/nextflow-run/2d-container.nf similarity index 100% rename from nextflow-run/2d-container.nf rename to archive/nextflow-run/2d-container.nf diff --git a/nextflow-run/3-main.nf b/archive/nextflow-run/3-main.nf similarity index 100% rename from nextflow-run/3-main.nf rename to archive/nextflow-run/3-main.nf diff --git a/archive/nextflow-run/data/greetings.csv b/archive/nextflow-run/data/greetings.csv new file mode 100644 index 0000000000..c36050c017 --- /dev/null +++ b/archive/nextflow-run/data/greetings.csv @@ -0,0 +1,3 @@ +Hello,English,123 +Bonjour,French,456 +Hola,Spanish,789 diff --git a/nextflow-run/solutions/modules/collectGreetings.nf b/archive/nextflow-run/modules/collectGreetings.nf similarity index 100% rename from nextflow-run/solutions/modules/collectGreetings.nf rename to archive/nextflow-run/modules/collectGreetings.nf diff --git a/nextflow-run/solutions/modules/convertToUpper.nf b/archive/nextflow-run/modules/convertToUpper.nf similarity index 100% rename from nextflow-run/solutions/modules/convertToUpper.nf rename to archive/nextflow-run/modules/convertToUpper.nf diff --git a/archive/nextflow-run/modules/cowpy.nf b/archive/nextflow-run/modules/cowpy.nf new file mode 100644 index 0000000000..1c5f025b43 --- /dev/null +++ b/archive/nextflow-run/modules/cowpy.nf @@ -0,0 +1,17 @@ +// Generate ASCII art with cowpy (https://github.com/jeffbuttars/cowpy) +process cowpy { + + container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' + + input: + path input_file + val character + + output: + path "cowpy-${input_file}" + + script: + """ + cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file} + """ +} diff --git a/nextflow-run/solutions/modules/sayHello.nf b/archive/nextflow-run/modules/sayHello.nf similarity index 100% rename from nextflow-run/solutions/modules/sayHello.nf rename to archive/nextflow-run/modules/sayHello.nf diff --git a/hello-nf-core/original-hello/nextflow.config b/archive/nextflow-run/nextflow.config similarity index 100% rename from hello-nf-core/original-hello/nextflow.config rename to archive/nextflow-run/nextflow.config diff --git a/nextflow-run/solutions/3-main.nf b/archive/nextflow-run/solutions/3-main.nf similarity index 100% rename from nextflow-run/solutions/3-main.nf rename to archive/nextflow-run/solutions/3-main.nf diff --git a/archive/nextflow-run/solutions/modules/collectGreetings.nf b/archive/nextflow-run/solutions/modules/collectGreetings.nf new file mode 100644 index 0000000000..91685eb20b --- /dev/null +++ b/archive/nextflow-run/solutions/modules/collectGreetings.nf @@ -0,0 +1,20 @@ +/* + * Collect uppercase greetings into a single output file + */ +process collectGreetings { + + input: + path input_files + val batch_name + + output: + path "COLLECTED-${batch_name}-output.txt", emit: outfile + path "${batch_name}-report.txt", emit: report + + script: + count_greetings = input_files.size() + """ + cat ${input_files} > 'COLLECTED-${batch_name}-output.txt' + echo 'There were ${count_greetings} greetings in this batch.' > '${batch_name}-report.txt' + """ +} diff --git a/archive/nextflow-run/solutions/modules/convertToUpper.nf b/archive/nextflow-run/solutions/modules/convertToUpper.nf new file mode 100644 index 0000000000..de677c0eb4 --- /dev/null +++ b/archive/nextflow-run/solutions/modules/convertToUpper.nf @@ -0,0 +1,16 @@ +/* + * Use a text replacement tool to convert the greeting to uppercase + */ +process convertToUpper { + + input: + path input_file + + output: + path "UPPER-${input_file}" + + script: + """ + cat '${input_file}' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}' + """ +} diff --git a/nextflow-run/solutions/modules/cowpy.nf b/archive/nextflow-run/solutions/modules/cowpy.nf similarity index 100% rename from nextflow-run/solutions/modules/cowpy.nf rename to archive/nextflow-run/solutions/modules/cowpy.nf diff --git a/archive/nextflow-run/solutions/modules/sayHello.nf b/archive/nextflow-run/solutions/modules/sayHello.nf new file mode 100644 index 0000000000..45aad6f2ce --- /dev/null +++ b/archive/nextflow-run/solutions/modules/sayHello.nf @@ -0,0 +1,16 @@ +/* + * Use echo to print 'Hello World!' to a file + */ +process sayHello { + + input: + val greeting + + output: + path "${greeting}-output.txt" + + script: + """ + echo '${greeting}' > '${greeting}-output.txt' + """ +} diff --git a/nextflow-run/solutions/nextflow.config b/archive/nextflow-run/solutions/nextflow.config similarity index 100% rename from nextflow-run/solutions/nextflow.config rename to archive/nextflow-run/solutions/nextflow.config diff --git a/archive/nextflow-run/test-params.json b/archive/nextflow-run/test-params.json new file mode 100644 index 0000000000..a7effdb696 --- /dev/null +++ b/archive/nextflow-run/test-params.json @@ -0,0 +1,5 @@ +{ + "input": "data/greetings.csv", + "batch": "json", + "character": "turtle" +} diff --git a/archive/nextflow-run/test-params.yaml b/archive/nextflow-run/test-params.yaml new file mode 100644 index 0000000000..e3a834fc76 --- /dev/null +++ b/archive/nextflow-run/test-params.yaml @@ -0,0 +1,3 @@ +input: "data/greetings.csv" +batch: "yaml" +character: "stegosaurus" diff --git a/docs/ca/docs/hello_nextflow/next_steps.md b/docs/ca/docs/hello_nextflow/next_steps.md index 5e4f006726..587b1ce942 100644 --- a/docs/ca/docs/hello_nextflow/next_steps.md +++ b/docs/ca/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Ara esteu equipats amb el coneixement fonamental per començar a desenvolupar el Aquí teniu les nostres 3 principals suggerències sobre què fer a continuació: - Apliqueu Nextflow a un cas d'ús d'anàlisi científica amb [Nextflow for Science](../nf4_science/index.md) -- Inicieu-vos amb nf-core amb [Hello nf-core](../hello_nf-core/index.md) +- Inicieu-vos amb nf-core amb [Build with nf-core](../hello_nf-core/index.md) - Exploreu característiques més avançades de Nextflow amb les [Side Quests](../side_quests/index.md) Finalment, us recomanem que doneu una ullada a [**Seqera Platform**](https://seqera.io/), una plataforma basada en el núvol desenvolupada pels creadors de Nextflow que fa encara més fàcil llançar i gestionar els vostres workflows, així com gestionar les vostres dades i executar anàlisis de manera interactiva en qualsevol entorn. diff --git a/docs/ca/docs/hello_nf-core/01_run_demo.md b/docs/ca/docs/hello_nf-core/01_run_demo.md index c198fea38b..a07a2ee7aa 100644 --- a/docs/ca/docs/hello_nf-core/01_run_demo.md +++ b/docs/ca/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En aquesta primera part del curs de formació Hello nf-core, us mostrem com trobar i provar un pipeline nf-core, configurar i personalitzar la seva execució per a les vostres necessitats, i entendre com la validació d'entrada protegeix contra errors comuns. +En aquesta primera part del curs de formació Build with nf-core, us mostrem com trobar i provar un pipeline nf-core, configurar i personalitzar la seva execució per a les vostres necessitats, i entendre com la validació d'entrada protegeix contra errors comuns. Utilitzarem un pipeline anomenat nf-core/demo que és mantingut pel projecte nf-core com a part del seu inventari de pipelines per a finalitats de demostració i formació. diff --git a/docs/ca/docs/hello_nf-core/02_rewrite_hello.md b/docs/ca/docs/hello_nf-core/02_rewrite_hello.md index 73fbfdbc9a..1a737aea6e 100644 --- a/docs/ca/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/ca/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En aquesta segona part del curs de formació Hello nf-core, us mostrem com crear una versió compatible amb nf-core del pipeline produït pel curs per a principiants [Hello Nextflow](../hello_nextflow/index.md). +En aquesta segona part del curs de formació Build with nf-core, us mostrem com crear una versió compatible amb nf-core del pipeline produït pel curs per a principiants [Hello Nextflow](../hello_nextflow/index.md). Ho farem en dues fases: primer, utilitzarem les eines nf-core per crear una estructura de pipeline, i després injectarem el codi del pipeline 'regular' existent a aquesta estructura. diff --git a/docs/ca/docs/hello_nf-core/03_use_module.md b/docs/ca/docs/hello_nf-core/03_use_module.md index 6dd1c27612..d4e8766341 100644 --- a/docs/ca/docs/hello_nf-core/03_use_module.md +++ b/docs/ca/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En aquesta tercera part del curs de formació Hello nf-core, us mostrem com trobar, instal·lar i utilitzar un mòdul nf-core existent al vostre pipeline. +En aquesta tercera part del curs de formació Build with nf-core, us mostrem com trobar, instal·lar i utilitzar un mòdul nf-core existent al vostre pipeline. Un dels grans avantatges de treballar amb nf-core és la capacitat d'aprofitar mòduls preconstruïts i provats del repositori [nf-core/modules](https://github.com/nf-core/modules). En lloc d'escriure cada procés des de zero, podeu instal·lar i utilitzar mòduls mantinguts per la comunitat que segueixen les millors pràctiques. diff --git a/docs/ca/docs/hello_nf-core/04_make_module.md b/docs/ca/docs/hello_nf-core/04_make_module.md index 56f4f9fb0d..fb77367f25 100644 --- a/docs/ca/docs/hello_nf-core/04_make_module.md +++ b/docs/ca/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En aquesta quarta part del curs de formació Hello nf-core, et mostrem com crear un mòdul nf-core aplicant les convencions clau que fan que els mòduls siguin portables i mantenibles. +En aquesta quarta part del curs de formació Build with nf-core, et mostrem com crear un mòdul nf-core aplicant les convencions clau que fan que els mòduls siguin portables i mantenibles. El projecte nf-core proporciona una comanda (`nf-core modules create`) que genera plantilles de mòduls estructurades correctament de manera automàtica, similar al que vam utilitzar per al workflow a la Part 2. No obstant això, amb finalitats didàctiques, començarem fent-ho manualment: transformant el mòdul local `cowpy` del teu pipeline `core-hello` en un mòdul d'estil nf-core pas a pas. diff --git a/docs/ca/docs/hello_nf-core/05_input_validation.md b/docs/ca/docs/hello_nf-core/05_input_validation.md index 5c6ff023b1..2b4e32b341 100644 --- a/docs/ca/docs/hello_nf-core/05_input_validation.md +++ b/docs/ca/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En aquesta cinquena part del curs de formació Hello nf-core, us mostrem com utilitzar el plugin nf-schema per validar les entrades i els paràmetres del pipeline. +En aquesta cinquena part del curs de formació Build with nf-core, us mostrem com utilitzar el plugin nf-schema per validar les entrades i els paràmetres del pipeline. ??? info "Com començar des d'aquesta secció" @@ -808,6 +808,6 @@ Heu implementat i provat tant la validació de paràmetres com la validació de ### Què segueix? -Heu completat les cinc parts del curs de formació Hello nf-core! +Heu completat les cinc parts del curs de formació Build with nf-core! Continueu al [Resum](next_steps.md) per reflexionar sobre el que heu construït i après. diff --git a/docs/ca/docs/hello_nf-core/index.md b/docs/ca/docs/hello_nf-core/index.md index d452392f80..eb5dc29211 100644 --- a/docs/ca/docs/hello_nf-core/index.md +++ b/docs/ca/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Àmbit:** Tots els exercicis són independents del domini, per tant no es requereix coneixement científic previ." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core és una introducció pràctica a l'ús de recursos i bones pràctiques d'nf-core.** +**Build with nf-core és una introducció pràctica a l'ús de recursos i bones pràctiques d'nf-core.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/ca/docs/hello_nf-core/next_steps.md b/docs/ca/docs/hello_nf-core/next_steps.md index bf8cae9ef6..3bccf89c80 100644 --- a/docs/ca/docs/hello_nf-core/next_steps.md +++ b/docs/ca/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Felicitats per haver completat el curs de formació Hello nf-core! 🎉 +Felicitats per haver completat el curs de formació Build with nf-core! 🎉 diff --git a/docs/ca/docs/index.md b/docs/ca/docs/index.md index 792836da37..d7cb9b78e3 100644 --- a/docs/ca/docs/index.md +++ b/docs/ca/docs/index.md @@ -132,11 +132,11 @@ hide: Aquests cursos us ajuden a passar dels fonaments de Nextflow a les bones pràctiques de nf-core. Enteneu com i per què la comunitat nf-core construeix pipelines, i com podeu contribuir-hi i reutilitzar aquestes tècniques. - ??? courses "**Hello nf-core:** Primers passos amb nf-core" + ??? courses "**Build with nf-core:** Primers passos amb nf-core" Per a desenvolupadors que volen aprendre a executar i desenvolupar pipelines compatibles amb [nf-core](https://nf-co.re/). El curs cobreix l'estructura dels pipelines nf-core amb prou detall per permetre el desenvolupament de pipelines simples però completament funcionals que segueixen la plantilla nf-core i les bones pràctiques de desenvolupament, així com l'ús de mòduls nf-core existents. - [Comenceu la formació Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Comenceu la formació Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Exploreu els Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Col·leccions de formació:** Itineraris d'aprenentatge recomanats a través dels Side Quests" + ??? courses "**Itineraris d'Aprenentatge:** Rutes curades a través dels nostres cursos" - Les col·leccions de formació combinen múltiples Side Quests per proporcionar una experiència d'aprenentatge completa al voltant d'un tema o cas d'ús particular. + Els itineraris d'aprenentatge combinen múltiples Side Quests per proporcionar una experiència d'aprenentatge completa al voltant d'un tema o cas d'ús particular. - [Exploreu les col·leccions de formació :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Exploreu els itineraris d'aprenentatge :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/ca/docs/nextflow_run/03_config.md b/docs/ca/docs/nextflow_run/03_config.md index a4bee16052..affc198e94 100644 --- a/docs/ca/docs/nextflow_run/03_config.md +++ b/docs/ca/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Sabeu tot el que necessiteu saber per començar a executar i gestionar pipelines Això conclou aquest curs, però si esteu ansiosos per continuar aprenent, tenim dues recomanacions principals: - Si voleu aprofundir en el desenvolupament dels vostres propis pipelines, feu una ullada a [Hello Nextflow](../hello_nextflow/index.md), un curs per a principiants que cobreix la mateixa progressió general que aquest però entra en molt més detall sobre canals i operadors. -- Si us agradaria continuar aprenent a executar pipelines de Nextflow sense aprofundir en el codi, feu una ullada a la primera part de [Hello nf-core](../hello_nf-core/index.md), que introdueix les eines per trobar i executar pipelines del projecte [nf-core](https://nf-co.re/) enormement popular. +- Si us agradaria continuar aprenent a executar pipelines de Nextflow sense aprofundir en el codi, feu una ullada a la primera part de [Build with nf-core](../hello_nf-core/index.md), que introdueix les eines per trobar i executar pipelines del projecte [nf-core](https://nf-co.re/) enormement popular. Que us divertiu! diff --git a/docs/ca/docs/nextflow_run/next_steps.md b/docs/ca/docs/nextflow_run/next_steps.md index ef1afdb021..58f100bcf3 100644 --- a/docs/ca/docs/nextflow_run/next_steps.md +++ b/docs/ca/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Aquí tens les nostres principals suggerències sobre què fer a continuació: - No només executis Nextflow, escriu-lo! Converteix-te en desenvolupador de Nextflow amb [Hello Nextflow](../hello_nextflow/index.md) - Aplica Nextflow a un cas d'ús d'anàlisi científica amb [Nextflow for Science](../nf4_science/index.md) -- Comença amb nf-core amb [Hello nf-core](../hello_nf-core/index.md) +- Comença amb nf-core amb [Build with nf-core](../hello_nf-core/index.md) - Aprèn tècniques de resolució de problemes amb la [Missió Secundària de Depuració](../side_quests/debugging/index.md) Finalment, et recomanem que donis una ullada a [**Seqera Platform**](https://seqera.io/), una plataforma basada en el núvol desenvolupada pels creadors de Nextflow que fa encara més fàcil executar i gestionar els teus workflows, així com gestionar les teves dades i executar anàlisis de manera interactiva en qualsevol entorn. diff --git a/docs/ca/docs/nf4_science/_template/next_steps.md b/docs/ca/docs/nf4_science/_template/next_steps.md index 3e28de2367..969ac87a9d 100644 --- a/docs/ca/docs/nf4_science/_template/next_steps.md +++ b/docs/ca/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Ara estàs preparat/da per començar a aplicar Nextflow a workflows d'anàlisi d Aquí tens les nostres principals recomanacions sobre què fer a continuació: - Aplica Nextflow a altres casos d'ús d'anàlisi científica amb [Nextflow for Science](../index.md) -- Comença amb nf-core amb [Hello nf-core](../../hello_nf-core/index.md) +- Comença amb nf-core amb [Build with nf-core](../../hello_nf-core/index.md) - Explora funcionalitats més avançades de Nextflow amb les [Side Quests](../../side_quests/index.md) Finalment, et recomanem que donis una ullada a [**Seqera Platform**](https://seqera.io/), una plataforma basada en el núvol desenvolupada pels creadors de Nextflow que fa encara més fàcil llançar i gestionar els teus workflows, així com gestionar les teves dades i executar anàlisis de manera interactiva en qualsevol entorn. diff --git a/docs/ca/docs/nf4_science/genomics/next_steps.md b/docs/ca/docs/nf4_science/genomics/next_steps.md index 1bc207a35f..a08b51a350 100644 --- a/docs/ca/docs/nf4_science/genomics/next_steps.md +++ b/docs/ca/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Ara estàs preparat/da per començar a aplicar Nextflow a workflows d'anàlisi g Aquí tens les nostres principals recomanacions sobre què fer a continuació: - Aplica Nextflow a altres casos d'ús d'anàlisi científica amb [Nextflow for Science](../index.md) -- Comença amb nf-core amb [Hello nf-core](../../hello_nf-core/index.md) +- Comença amb nf-core amb [Build with nf-core](../../hello_nf-core/index.md) - Explora funcionalitats més avançades de Nextflow amb les [Side Quests](../../side_quests/index.md) Finalment, et recomanem que donis una ullada a [**Seqera Platform**](https://seqera.io/), una plataforma basada en el núvol desenvolupada pels creadors de Nextflow que fa encara més fàcil llançar i gestionar els teus workflows, així com gestionar les teves dades i executar anàlisis de manera interactiva en qualsevol entorn. diff --git a/docs/ca/docs/nf4_science/imaging/02_run_molkart.md b/docs/ca/docs/nf4_science/imaging/02_run_molkart.md index 0c943d25a8..168d937b9a 100644 --- a/docs/ca/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/ca/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Característiques clau dels pipelines nf-core: !!! tip "Voleu aprendre més sobre nf-core?" - Per a una introducció en profunditat al desenvolupament de pipelines nf-core, consulteu el curs de formació [Hello nf-core](../../hello_nf-core/index.md). + Per a una introducció en profunditat al desenvolupament de pipelines nf-core, consulteu el curs de formació [Build with nf-core](../../hello_nf-core/index.md). Cobreix com crear i personalitzar pipelines nf-core des de zero. ### 1.2. El pipeline molkart diff --git a/docs/ca/docs/nf4_science/imaging/04_config.md b/docs/ca/docs/nf4_science/imaging/04_config.md index ee3c85ebf5..26d2804e21 100644 --- a/docs/ca/docs/nf4_science/imaging/04_config.md +++ b/docs/ca/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Pròxims passos: - Omple l'enquesta del curs per proporcionar comentaris - Consulta [Hello Nextflow](../../hello_nextflow/index.md) per aprendre més sobre el desenvolupament de workflows -- Explora [Hello nf-core](../../hello_nf-core/index.md) per aprofundir en les eines d'nf-core +- Explora [Build with nf-core](../../hello_nf-core/index.md) per aprofundir en les eines d'nf-core - Navega per altres cursos a les [col·leccions de formació](../../training_collections/index.md) diff --git a/docs/ca/docs/nf4_science/rnaseq/next_steps.md b/docs/ca/docs/nf4_science/rnaseq/next_steps.md index 80ef5551bf..94a6fd0721 100644 --- a/docs/ca/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/ca/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Ara estàs preparat/da per començar a aplicar Nextflow a workflows d'anàlisi d Aquí tens les nostres principals recomanacions sobre què fer a continuació: - Aplica Nextflow a altres casos d'ús d'anàlisi científica amb [Nextflow for Science](../index.md) -- Comença amb nf-core amb [Hello nf-core](../../hello_nf-core/index.md) +- Comença amb nf-core amb [Build with nf-core](../../hello_nf-core/index.md) - Explora funcionalitats més avançades de Nextflow amb les [Side Quests](../../side_quests/index.md) Finalment, et recomanem que donis un cop d'ull a [**Seqera Platform**](https://seqera.io/), una plataforma basada en el núvol desenvolupada pels creadors de Nextflow que fa encara més fàcil llançar i gestionar els teus workflows, així com gestionar les teves dades i executar anàlisis de manera interactiva en qualsevol entorn. diff --git a/docs/ca/docs/side_quests/dev_environment/index.md b/docs/ca/docs/side_quests/dev_environment/index.md index ee0dadf69d..195c08d26c 100644 --- a/docs/ca/docs/side_quests/dev_environment/index.md +++ b/docs/ca/docs/side_quests/dev_environment/index.md @@ -624,7 +624,7 @@ No esperem que recordeu tot, però ara que sabeu que existeixen aquestes funcion Apliqueu aquestes habilitats de l'IDE mentre treballeu en altres mòduls de formació, per exemple: - **[nf-test](../nf_test/index.md)**: Creeu suites de proves exhaustives per als vostres workflows -- **[Hello nf-core](../../hello_nf-core/index.md)**: Construïu pipelines de qualitat de producció amb estàndards de la comunitat +- **[Build with nf-core](../../hello_nf-core/index.md)**: Construïu pipelines de qualitat de producció amb estàndards de la comunitat El veritable poder d'aquestes funcionalitats de l'IDE emergeix quan treballeu en projectes més grans i complexos. Comenceu a incorporar-les al vostre flux de treball gradualment: en poques sessions, es tornaran una segona naturalesa i transformaran la manera com abordeu el desenvolupament amb Nextflow. diff --git a/docs/ca/docs/side_quests/metadata/index.md b/docs/ca/docs/side_quests/metadata/index.md index 7817f44690..b631e66e63 100644 --- a/docs/ca/docs/side_quests/metadata/index.md +++ b/docs/ca/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Hi ha dos enfocaments complementaris per fer els workflows més robustos davant **1. Validació d'entrada** La solució més fiable és validar el full de dades abans que comenci qualsevol processament, de manera que els problemes es detectin aviat amb un missatge d'error clar en lloc de manifestar-se com una fallada críptica del procés a mig camí. -La formació de [Hello nf-core](../../hello_nf-core/05_input_validation.md) explica com afegir validació d'entrada utilitzant el connector nf-schema. +La formació de [Build with nf-core](../../hello_nf-core/05_input_validation.md) explica com afegir validació d'entrada utilitzant el connector nf-schema. **2. Entrades explícites del procés per als valors requerits** diff --git a/docs/ca/docs/side_quests/plugin_development/next_steps.md b/docs/ca/docs/side_quests/plugin_development/next_steps.md index 5915dae28c..60dbbdfe4b 100644 --- a/docs/ca/docs/side_quests/plugin_development/next_steps.md +++ b/docs/ca/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Si construïu un plugin útil, considereu compartir-lo amb la comunitat a travé Si encara no ho heu fet, consulteu els nostres altres cursos de formació: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Conceptes fonamentals de Nextflow -- **[Hello nf-core](../../hello_nf-core/index.md)**: Pipelines i bones pràctiques de nf-core +- **[Build with nf-core](../../hello_nf-core/index.md)**: Pipelines i bones pràctiques de nf-core - **[Side Quests](../index.md)**: Aprofundiment en temes específics diff --git a/docs/ca/docs/training_collections/architects_toolkit_1.md b/docs/ca/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index e990e08900..0000000000 --- a/docs/ca/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: The Architect's Toolkit I -hide: - - toc ---- - -# El Kit de Ferramentes de l'Arquitecte I - -:material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Les nostres Col·leccions de Formació proporcionen itineraris d'aprenentatge curats a través dels nostres materials de formació avançada (anomenats [Side Quests](../side_quests/index.md)). Aquesta col·lecció cobreix quatre temes essencials que s'utilitzen freqüentment junts per construir workflows robustos i escalables. - -## Objectius d'aprenentatge - -Al final d'aquesta col·lecció, tindràs experiència amb: - -- **Arquitectures de workflow modulars complexes** - Combinar múltiples workflows en pipelines cohesionats -- **Estratègies de proves exhaustives** - Assegurar que els teus workflows siguin fiables i mantenibles -- **Gestió de metadades** - Gestionar metadades específiques de mostres al llarg dels teus workflows de manera efectiva -- **Processament avançat de dades** - Implementar patrons eficients de divisió i agrupació de dades - -Aquestes habilitats et permetran construir workflows de Nextflow robustos, escalables i mantenibles per a aplicacions del món real. - -## Audiència i prerequisits - -Aquesta col·lecció està dissenyada per a usuaris que han completat la formació bàsica de Nextflow i volen aprofundir en patrons avançats de workflow, estratègies de proves i tècniques de gestió de dades i metadades. - -**Prerequisits** - -- Completar la formació [Hello Nextflow](../hello_nextflow/index.md) o experiència equivalent -- Familiaritat bàsica amb la sintaxi i els conceptes de Nextflow -- Comprensió dels patrons bàsics de desenvolupament de workflows -- Experiència amb eines de línia de comandes - -## Continguts de la col·lecció - -Aquesta col·lecció consisteix en quatre Side Quests que cobreixen temes complementaris d'enginyeria de workflows: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Arquitectura i composició complexa de workflows -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Estratègies de proves per a workflows de Nextflow -3. **[Metadata](../side_quests/metadata/index.md)** - Gestió de metadades per a elements en canals de Nextflow -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Patrons avançats de processament de dades - -Cada Side Quest és autocontingut i cobreix conceptes independents, però recomanem completar-los en l'ordre llistat anteriorment per a una progressió lògica a través dels temes. - -## Com utilitzar aquesta col·lecció - -Primer, fes clic amb el botó de comanda al botó "Open in GitHub Codespaces" a continuació per llançar l'entorn de formació en una pestanya separada, després continua llegint mentre es carrega. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Un cop el teu entorn estigui en funcionament, treballa a través de la col·lecció de la manera següent: - -1. En aquesta pestanya: Navega al primer Side Quest llistat anteriorment, que descriu exercicis de desenvolupament pas a pas. -2. En la teva pestanya de Codespaces: Treballa a través dels exercicis del Side Quest. -3. Quan completis un Side Quest, torna a aquesta pàgina i navega al següent de la llista anterior. -4. Quan hagis completat la col·lecció, fes clic al botó a continuació per omplir una enquesta molt breu. Els teus comentaris ens permeten continuar millorant els materials de formació per a tothom. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Preparat per començar? Comença amb el primer mòdul anterior! diff --git a/docs/ca/docs/training_collections/index.md b/docs/ca/docs/training_collections/index.md deleted file mode 100644 index fe5e471b2e..0000000000 --- a/docs/ca/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Training Collections -hide: - - toc ---- - -# Col·leccions de formació - -:material-information-outline:{ .ai-translation-notice-icon } Traducció assistida per IA - [més informació i suggeriments](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Aquesta secció conté col·leccions curades de mòduls de formació anomenats [Side Quests](../side_quests/index.md) que tenen com a objectiu proporcionar una experiència d'aprenentatge completa al voltant d'un tema o cas d'ús particular. - -## Prerequisits - -Cada col·lecció té prerequisits específics documentats a la seva pàgina d'índex. No obstant això, la majoria de col·leccions assumeixen: - -- Experiència amb la línia de comandes -- Conceptes i eines fonamentals de Nextflow coberts al curs de formació per a principiants [Hello Nextflow](../hello_nextflow/index.md) - -Per als requisits tècnics i la configuració de l'entorn, consulteu el mini-curs [Configuració de l'entorn](../envsetup/index.md). - -## Col·leccions disponibles - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - Una col·lecció de quatre Side Quests que cobreixen patrons d'arquitectura de workflows per a l'assemblatge de pipelines complexos, la implementació d'estratègies de proves, la gestió de metadades i l'agrupació i divisió de dades. _Durada estimada: 4 hores en formació grupal._ - -## Suggerir noves col·leccions - -Estem treballant activament en el desenvolupament de Side Quests i Col·leccions addicionals. -Si us plau, no dubteu a suggerir temes que creieu que tindria sentit cobrir en una Col·lecció publicant a la [secció de Formació](https://community.seqera.io/c/training/) del fòrum de la comunitat. diff --git a/docs/ca/mkdocs.yml b/docs/ca/mkdocs.yml index 16c763b564..4b6ce8d0d9 100644 --- a/docs/ca/mkdocs.yml +++ b/docs/ca/mkdocs.yml @@ -14,3 +14,35 @@ extra: com utilitzem les cookies. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Entorn de Formació": "Configuració i Ajuda" + "Nextflow Run": "Usuaris" + "Hello Nextflow": "Desenvolupadors" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow per a la Ciència" + nf4_science/genomics/index.md: "Genòmica" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Imaging" + side_quests/index.md: "Side Quests" + envsetup/index.md: "Entorn de Formació" + nav_child_title_overrides: + nextflow_run/index.md: "Visió general" + nfcore_run/index.md: "Visió general" + seqera_run/index.md: "Visió general" + hello_nextflow/index.md: "Visió general" + hello_nf-core/index.md: "Visió general" + nf4_science/index.md: "Visió general" + nf4_science/genomics/index.md: "Visió general" + nf4_science/rnaseq/index.md: "Visió general" + nf4_science/imaging/index.md: "Visió general" + side_quests/index.md: "Visió general" + nav_section_separators: + side_quests/dev_environment/index.md: "Eines i Trucs per a Desenvolupadors" + side_quests/working_with_files/index.md: "Immersió en el Flux de Dades" + side_quests/workflows_of_workflows/index.md: "Arquitectura Modular en Acció" + side_quests/nf_test/index.md: "L'Univers Estès de Nextflow" diff --git a/docs/de/docs/hello_nextflow/next_steps.md b/docs/de/docs/hello_nextflow/next_steps.md index 702d225778..32e8a728a1 100644 --- a/docs/de/docs/hello_nextflow/next_steps.md +++ b/docs/de/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Du bist jetzt mit dem grundlegenden Wissen ausgestattet, um mit der Entwicklung Hier sind unsere Top-3-Empfehlungen, was du als Nächstes tun kannst: - Wende Nextflow auf einen wissenschaftlichen Analyse-Anwendungsfall an mit [Nextflow for Science](../nf4_science/index.md) -- Steig ein mit nf-core durch [Hello nf-core](../hello_nf-core/index.md) +- Steig ein mit nf-core durch [Build with nf-core](../hello_nf-core/index.md) - Erkunde fortgeschrittenere Nextflow-Funktionen mit den [Side Quests](../side_quests/index.md) Abschließend empfehlen wir dir, einen Blick auf [**Seqera Platform**](https://seqera.io/) zu werfen, eine cloudbasierte Plattform, die von den Entwickler\*innen von Nextflow entwickelt wurde und es noch einfacher macht, deine Workflows zu starten und zu verwalten sowie deine Daten zu managen und Analysen interaktiv in jeder Umgebung auszuführen. diff --git a/docs/de/docs/hello_nf-core/01_run_demo.md b/docs/de/docs/hello_nf-core/01_run_demo.md index 54ddcce69e..97ee34352b 100644 --- a/docs/de/docs/hello_nf-core/01_run_demo.md +++ b/docs/de/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Im ersten Teil des Hello nf-core Trainingskurses zeigen wir dir, wie du eine nf-core Pipeline findest und ausprobierst, ihre Ausführung für deine Bedürfnisse konfigurierst und anpasst, und wie die Eingabevalidierung vor häufigen Fehlern schützt. +Im ersten Teil des Build with nf-core Trainingskurses zeigen wir dir, wie du eine nf-core Pipeline findest und ausprobierst, ihre Ausführung für deine Bedürfnisse konfigurierst und anpasst, und wie die Eingabevalidierung vor häufigen Fehlern schützt. Wir werden eine Pipeline namens nf-core/demo verwenden, die vom nf-core-Projekt als Teil seines Pipeline-Inventars für Demonstrations- und Trainingszwecke gepflegt wird. diff --git a/docs/de/docs/hello_nf-core/02_rewrite_hello.md b/docs/de/docs/hello_nf-core/02_rewrite_hello.md index f4d3c526b8..bccc44e8ea 100644 --- a/docs/de/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/de/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In diesem zweiten Teil des Hello nf-core Trainingskurses zeigen wir dir, wie du eine nf-core-kompatible Version der Pipeline erstellst, die im [Hello Nextflow](../hello_nextflow/index.md) Einsteigerkurs entwickelt wurde. +In diesem zweiten Teil des Build with nf-core Trainingskurses zeigen wir dir, wie du eine nf-core-kompatible Version der Pipeline erstellst, die im [Hello Nextflow](../hello_nextflow/index.md) Einsteigerkurs entwickelt wurde. Wir gehen das in zwei Phasen an: Zuerst verwenden wir nf-core-Werkzeuge, um ein Pipeline-Gerüst zu erstellen, und pfropfen dann den bestehenden 'normalen' Pipeline-Code auf das Gerüst auf. diff --git a/docs/de/docs/hello_nf-core/03_use_module.md b/docs/de/docs/hello_nf-core/03_use_module.md index 052b705fdc..c2759883dc 100644 --- a/docs/de/docs/hello_nf-core/03_use_module.md +++ b/docs/de/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In diesem dritten Teil des Hello nf-core Trainingskurses zeigen wir dir, wie du ein existierendes nf-core-Modul findest, installierst und in deiner Pipeline verwendest. +In diesem dritten Teil des Build with nf-core Trainingskurses zeigen wir dir, wie du ein existierendes nf-core-Modul findest, installierst und in deiner Pipeline verwendest. Einer der großen Vorteile der Arbeit mit nf-core ist die Möglichkeit, vorgefertigte, getestete Module aus dem [nf-core/modules](https://github.com/nf-core/modules) Repository zu nutzen. Anstatt jeden Prozess von Grund auf neu zu schreiben, kannst du von der Community gepflegte Module installieren und verwenden, die Best Practices folgen. diff --git a/docs/de/docs/hello_nf-core/04_make_module.md b/docs/de/docs/hello_nf-core/04_make_module.md index 4bf235b222..8bdbf7fa06 100644 --- a/docs/de/docs/hello_nf-core/04_make_module.md +++ b/docs/de/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In diesem vierten Teil des Hello nf-core Trainingskurses zeigen wir dir, wie du ein nf-core-Modul erstellst, indem du die wichtigsten Konventionen anwendest, die Module portabel und wartbar machen. +In diesem vierten Teil des Build with nf-core Trainingskurses zeigen wir dir, wie du ein nf-core-Modul erstellst, indem du die wichtigsten Konventionen anwendest, die Module portabel und wartbar machen. Das nf-core-Projekt stellt einen Befehl (`nf-core modules create`) bereit, der automatisch korrekt strukturierte Modulvorlagen generiert, ähnlich wie bei dem, was wir für den Workflow in Teil 2 verwendet haben. Zu Lehrzwecken werden wir jedoch damit beginnen, es manuell zu machen: Wir transformieren das lokale `cowpy`-Modul in deiner `core-hello`-Pipeline Schritt für Schritt in ein Modul im nf-core-Stil. diff --git a/docs/de/docs/hello_nf-core/05_input_validation.md b/docs/de/docs/hello_nf-core/05_input_validation.md index 0833e57545..f024ef507c 100644 --- a/docs/de/docs/hello_nf-core/05_input_validation.md +++ b/docs/de/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In diesem fünften Teil des Hello nf-core Trainingskurses zeigen wir dir, wie du das nf-schema Plugin verwendest, um Pipeline-Eingaben und Parameter zu validieren. +In diesem fünften Teil des Build with nf-core Trainingskurses zeigen wir dir, wie du das nf-schema Plugin verwendest, um Pipeline-Eingaben und Parameter zu validieren. ??? info "Wie du von diesem Abschnitt aus beginnst" @@ -808,6 +808,6 @@ Du hast sowohl Parametervalidierung als auch Eingabedatenvalidierung implementie ### Wie geht es weiter? -Du hast alle fünf Teile des Hello nf-core Trainingskurses abgeschlossen! +Du hast alle fünf Teile des Build with nf-core Trainingskurses abgeschlossen! Fahre mit der [Zusammenfassung](next_steps.md) fort, um über das Gelernte und Gebaute zu reflektieren. diff --git a/docs/de/docs/hello_nf-core/index.md b/docs/de/docs/hello_nf-core/index.md index 7f57f3de63..4cc519e363 100644 --- a/docs/de/docs/hello_nf-core/index.md +++ b/docs/de/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Fachgebiet:** Die Übungen sind alle fachgebietsneutral, daher ist kein spezifisches wissenschaftliches Vorwissen erforderlich." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core ist eine praktische Einführung in die Nutzung von nf-core Ressourcen und Best Practices.** +**Build with nf-core ist eine praktische Einführung in die Nutzung von nf-core Ressourcen und Best Practices.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/de/docs/hello_nf-core/next_steps.md b/docs/de/docs/hello_nf-core/next_steps.md index 77a6a8a5ee..97c6189b41 100644 --- a/docs/de/docs/hello_nf-core/next_steps.md +++ b/docs/de/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Herzlichen Glückwunsch zum Abschluss des Hello nf-core Trainingskurses! 🎉 +Herzlichen Glückwunsch zum Abschluss des Build with nf-core Trainingskurses! 🎉 diff --git a/docs/de/docs/index.md b/docs/de/docs/index.md index 38a48b90ad..2b8834b48a 100644 --- a/docs/de/docs/index.md +++ b/docs/de/docs/index.md @@ -132,11 +132,11 @@ hide: Diese Kurse führen dich von den Nextflow-Grundlagen zu den nf-core-Best-Practices. Verstehe, wie und warum die nf-core-Community Pipelines entwickelt, und lerne, wie du diese Techniken einsetzen und dazu beitragen kannst. - ??? courses "**Hello nf-core:** Erste Schritte mit nf-core" + ??? courses "**Build with nf-core:** Erste Schritte mit nf-core" Für Entwickler\*innen, die lernen möchten, [nf-core](https://nf-co.re/)-konforme Pipelines auszuführen und zu entwickeln. Der Kurs behandelt die Struktur von nf-core-Pipelines in ausreichendem Detail, um einfache, aber voll funktionsfähige Pipelines zu entwickeln, die dem nf-core-Template und den Entwicklungs-Best-Practices folgen, sowie bestehende nf-core-Module zu verwenden. - [Hello nf-core Training starten :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Build with nf-core Training starten :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Side Quests durchsuchen :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Empfohlene Lernpfade durch die Side Quests" + ??? courses "**Learning Paths:** Empfohlene Lernpfade durch die Side Quests" - Training Collections kombinieren mehrere Side Quests, um ein umfassendes Lernerlebnis rund um ein bestimmtes Thema oder einen Anwendungsfall zu bieten. + Learning Paths kombinieren mehrere Side Quests, um ein umfassendes Lernerlebnis rund um ein bestimmtes Thema oder einen Anwendungsfall zu bieten. - [Training Collections durchsuchen :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Learning Paths durchsuchen :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/de/docs/nextflow_run/03_config.md b/docs/de/docs/nextflow_run/03_config.md index b5e12e4c6b..cfc347b690 100644 --- a/docs/de/docs/nextflow_run/03_config.md +++ b/docs/de/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Du weißt alles, was du wissen musst, um mit dem Ausführen und Verwalten von Ne Das schließt diesen Kurs ab, aber wenn du eifrig weiterlernen möchtest, haben wir zwei Hauptempfehlungen: - Wenn du tiefer in die Entwicklung eigener Pipelines eintauchen möchtest, schau dir [Hello Nextflow](../hello_nextflow/index.md) an, einen Einsteigerkurs, der denselben allgemeinen Verlauf wie dieser abdeckt, aber viel mehr ins Detail über channels und Operatoren geht. -- Wenn du weiterhin lernen möchtest, wie man Nextflow Pipelines ausführt, ohne tiefer in den Code einzusteigen, schau dir den ersten Teil von [Hello nf-core](../hello_nf-core/index.md) an, der die Tools zum Finden und Ausführen von Pipelines aus dem äußerst beliebten [nf-core](https://nf-co.re/) Projekt vorstellt. +- Wenn du weiterhin lernen möchtest, wie man Nextflow Pipelines ausführt, ohne tiefer in den Code einzusteigen, schau dir den ersten Teil von [Build with nf-core](../hello_nf-core/index.md) an, der die Tools zum Finden und Ausführen von Pipelines aus dem äußerst beliebten [nf-core](https://nf-co.re/) Projekt vorstellt. Viel Spaß! diff --git a/docs/de/docs/nextflow_run/next_steps.md b/docs/de/docs/nextflow_run/next_steps.md index cc7ead92af..cd30d92909 100644 --- a/docs/de/docs/nextflow_run/next_steps.md +++ b/docs/de/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Hier sind unsere Top-Vorschläge, was du als Nächstes tun kannst: - Führe Nextflow nicht nur aus, schreibe es! Lerne die Nextflow-Entwicklung mit [Hello Nextflow](../hello_nextflow/index.md) - Wende Nextflow auf einen wissenschaftlichen Analyse-Anwendungsfall an mit [Nextflow for Science](../nf4_science/index.md) -- Starte mit nf-core mit [Hello nf-core](../hello_nf-core/index.md) +- Starte mit nf-core mit [Build with nf-core](../hello_nf-core/index.md) - Lerne Troubleshooting-Techniken mit der [Debugging Side Quest](../side_quests/debugging/index.md) Schließlich empfehlen wir dir einen Blick auf [**Seqera Platform**](https://seqera.io/), eine Cloud-basierte Plattform, die von den Erstellern von Nextflow entwickelt wurde und es noch einfacher macht, deine Workflows zu starten und zu verwalten, deine Daten zu verwalten und Analysen interaktiv in jeder Umgebung auszuführen. diff --git a/docs/de/docs/nf4_science/_template/next_steps.md b/docs/de/docs/nf4_science/_template/next_steps.md index d50abf612b..ccabc0c3b3 100644 --- a/docs/de/docs/nf4_science/_template/next_steps.md +++ b/docs/de/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Du bist jetzt bereit, Nextflow auf {DOMAIN}-Analyse-Workflows in deiner eigenen Hier sind unsere Top-Empfehlungen für die nächsten Schritte: - Wende Nextflow auf andere wissenschaftliche Analyse-Anwendungsfälle an mit [Nextflow for Science](../index.md) -- Steige ein mit nf-core durch [Hello nf-core](../../hello_nf-core/index.md) +- Steige ein mit nf-core durch [Build with nf-core](../../hello_nf-core/index.md) - Erkunde fortgeschrittenere Nextflow-Features mit den [Side Quests](../../side_quests/index.md) Abschließend empfehlen wir dir, einen Blick auf [**Seqera Platform**](https://seqera.io/) zu werfen, eine cloudbasierte Plattform, die von den Entwickler\*innen von Nextflow entwickelt wurde und es noch einfacher macht, deine Workflows zu starten und zu verwalten sowie deine Daten zu managen und Analysen interaktiv in jeder Umgebung auszuführen. diff --git a/docs/de/docs/nf4_science/genomics/next_steps.md b/docs/de/docs/nf4_science/genomics/next_steps.md index 22793e4c68..850f6f988f 100644 --- a/docs/de/docs/nf4_science/genomics/next_steps.md +++ b/docs/de/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Du bist jetzt bereit, Nextflow auf Genomik-Analyse-Workflows in deiner eigenen A Hier sind unsere Top-Empfehlungen für die nächsten Schritte: - Wende Nextflow auf andere wissenschaftliche Analyse-Anwendungsfälle an mit [Nextflow for Science](../index.md) -- Starte mit nf-core durch [Hello nf-core](../../hello_nf-core/index.md) +- Starte mit nf-core durch [Build with nf-core](../../hello_nf-core/index.md) - Erkunde fortgeschrittenere Nextflow-Features mit den [Side Quests](../../side_quests/index.md) Abschließend empfehlen wir dir, einen Blick auf [**Seqera Platform**](https://seqera.io/) zu werfen, eine cloudbasierte Plattform, die von den Entwickler\*innen von Nextflow erstellt wurde und es noch einfacher macht, deine Workflows zu starten und zu verwalten sowie deine Daten zu managen und Analysen interaktiv in jeder Umgebung auszuführen. diff --git a/docs/de/docs/nf4_science/imaging/02_run_molkart.md b/docs/de/docs/nf4_science/imaging/02_run_molkart.md index 930dbc9684..b51ede8296 100644 --- a/docs/de/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/de/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Hauptmerkmale von nf-core-Pipelines: !!! tip "Möchtest du mehr über nf-core erfahren?" - Für eine ausführliche Einführung in die Entwicklung von nf-core-Pipelines sieh dir den Kurs [Hello nf-core](../../hello_nf-core/index.md) an. + Für eine ausführliche Einführung in die Entwicklung von nf-core-Pipelines sieh dir den Kurs [Build with nf-core](../../hello_nf-core/index.md) an. Er behandelt, wie man nf-core-Pipelines von Grund auf erstellt und anpasst. ### 1.2. Die molkart-Pipeline diff --git a/docs/de/docs/nf4_science/imaging/04_config.md b/docs/de/docs/nf4_science/imaging/04_config.md index 3ca2517993..33fbaaac6c 100644 --- a/docs/de/docs/nf4_science/imaging/04_config.md +++ b/docs/de/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Nächste Schritte: - Fülle die Kursumfrage aus, um Feedback zu geben - Schau dir [Hello Nextflow](../../hello_nextflow/index.md) an, um mehr über die Entwicklung von Workflows zu lernen -- Erkunde [Hello nf-core](../../hello_nf-core/index.md), um tiefer in die nf-core Werkzeuge einzutauchen +- Erkunde [Build with nf-core](../../hello_nf-core/index.md), um tiefer in die nf-core Werkzeuge einzutauchen - Durchsuche andere Kurse in den [Trainingssammlungen](../../training_collections/index.md) diff --git a/docs/de/docs/nf4_science/rnaseq/next_steps.md b/docs/de/docs/nf4_science/rnaseq/next_steps.md index 798d092551..9612b490db 100644 --- a/docs/de/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/de/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Du bist jetzt bereit, Nextflow auf RNAseq-Analyse-Workflows in deiner eigenen Ar Hier sind unsere wichtigsten Empfehlungen, was du als Nächstes tun kannst: - Wende Nextflow auf andere wissenschaftliche Analyse-Anwendungsfälle an mit [Nextflow for Science](../index.md) -- Starte mit nf-core durch [Hello nf-core](../../hello_nf-core/index.md) +- Starte mit nf-core durch [Build with nf-core](../../hello_nf-core/index.md) - Erkunde fortgeschrittenere Nextflow-Features mit den [Side Quests](../../side_quests/index.md) Abschließend empfehlen wir dir, einen Blick auf die [**Seqera Platform**](https://seqera.io/) zu werfen, eine cloudbasierte Plattform, die von den Entwickler\*innen von Nextflow erstellt wurde und es noch einfacher macht, deine Workflows zu starten und zu verwalten sowie deine Daten zu verwalten und Analysen interaktiv in jeder Umgebung auszuführen. diff --git a/docs/de/docs/side_quests/dev_environment/index.md b/docs/de/docs/side_quests/dev_environment/index.md index a07aad0a75..6a55176964 100644 --- a/docs/de/docs/side_quests/dev_environment/index.md +++ b/docs/de/docs/side_quests/dev_environment/index.md @@ -620,7 +620,7 @@ Wir erwarten nicht, dass du dir alles merkst, aber jetzt weißt du, dass diese F Wende diese IDE-Kenntnisse an, während du andere Trainingsmodule durcharbeitest, zum Beispiel: - **[nf-test](../nf_test/index.md)**: Erstelle umfassende Test-Suites für deine Workflows -- **[Hello nf-core](../../hello_nf-core/index.md)**: Baue produktionsreife Pipelines mit Community-Standards +- **[Build with nf-core](../../hello_nf-core/index.md)**: Baue produktionsreife Pipelines mit Community-Standards Die wahre Stärke dieser IDE-Funktionen zeigt sich, wenn du an größeren, komplexeren Projekten arbeitest. Integriere sie schrittweise in deinen Workflow – nach wenigen Sitzungen werden sie zur zweiten Natur und verändern, wie du an die Nextflow-Entwicklung herangehst. diff --git a/docs/de/docs/side_quests/metadata/index.md b/docs/de/docs/side_quests/metadata/index.md index 8368be3484..7bae1278e7 100644 --- a/docs/de/docs/side_quests/metadata/index.md +++ b/docs/de/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Es gibt zwei sich ergänzende Ansätze, um Workflows robuster gegen fehlende Met **1. Eingabevalidierung** Die zuverlässigste Lösung ist, das Datenblatt zu validieren, bevor die Verarbeitung beginnt, damit Probleme frühzeitig mit einer klaren Fehlermeldung erkannt werden, anstatt als kryptischer Prozessfehler mitten in der Ausführung aufzutauchen. -Das [Hello nf-core](../../hello_nf-core/05_input_validation.md)-Training zeigt, wie man Eingabevalidierung mit dem nf-schema-Plugin hinzufügt. +Das [Build with nf-core](../../hello_nf-core/05_input_validation.md)-Training zeigt, wie man Eingabevalidierung mit dem nf-schema-Plugin hinzufügt. **2. Explizite Prozesseingaben für erforderliche Werte** diff --git a/docs/de/docs/side_quests/plugin_development/next_steps.md b/docs/de/docs/side_quests/plugin_development/next_steps.md index 2583775cea..e56d9a0b47 100644 --- a/docs/de/docs/side_quests/plugin_development/next_steps.md +++ b/docs/de/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Wenn du ein nützliches Plugin entwickelst, erwäge, es über das Plugin-Registr Falls du es noch nicht getan hast, schau dir unsere anderen Trainingskurse an: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Grundlegende Nextflow-Konzepte -- **[Hello nf-core](../../hello_nf-core/index.md)**: nf-core-Pipelines und Best Practices +- **[Build with nf-core](../../hello_nf-core/index.md)**: nf-core-Pipelines und Best Practices - **[Side Quests](../index.md)**: Tiefe Einblicke in spezifische Themen diff --git a/docs/de/docs/training_collections/architects_toolkit_1.md b/docs/de/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 08f74c0acb..0000000000 --- a/docs/de/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: The Architect's Toolkit I -hide: - - toc ---- - -# The Architect's Toolkit I - -:material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Unsere Training Collections bieten kuratierte Lernpfade durch unsere fortgeschrittenen Trainingsmaterialien (genannt [Side Quests](../side_quests/index.md)). Diese Sammlung behandelt vier wesentliche Themen, die häufig zusammen verwendet werden, um robuste und skalierbare Workflows zu erstellen. - -## Lernziele - -Am Ende dieser Sammlung wirst du Erfahrung haben mit: - -- **Komplexen modularen Workflow-Architekturen** - Kombination mehrerer Workflows zu zusammenhängenden Pipelines -- **Umfassenden Teststrategien** - Sicherstellen, dass deine Workflows zuverlässig und wartbar sind -- **Metadaten-Management** - Effektive Handhabung probenspezifischer Metadaten in deinen Workflows -- **Fortgeschrittener Datenverarbeitung** - Implementierung effizienter Muster zum Aufteilen und Gruppieren von Daten - -Diese Fähigkeiten ermöglichen es dir, robuste, skalierbare und wartbare Nextflow-Workflows für reale Anwendungen zu erstellen. - -## Zielgruppe & Voraussetzungen - -Diese Sammlung ist für alle konzipiert, die das grundlegende Nextflow-Training abgeschlossen haben und tiefer in fortgeschrittene Workflow-Muster, Teststrategien und Techniken zur Daten- und Metadatenhandhabung einsteigen möchten. - -**Voraussetzungen** - -- Abschluss des [Hello Nextflow](../hello_nextflow/index.md)-Trainings oder gleichwertige Erfahrung -- Grundlegende Vertrautheit mit Nextflow-Syntax und -Konzepten -- Verständnis grundlegender Workflow-Entwicklungsmuster -- Erfahrung mit Kommandozeilen-Tools - -## Inhalte der Sammlung - -Diese Sammlung besteht aus vier Side Quests, die ergänzende Themen des Workflow-Engineerings behandeln: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Komplexe Workflow-Architektur und -Komposition -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Teststrategien für Nextflow-Workflows -3. **[Metadata](../side_quests/metadata/index.md)** - Handhabung von Metadaten für Elemente in Nextflow-Channels -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Fortgeschrittene Datenverarbeitungsmuster - -Jeder Side Quest ist eigenständig und behandelt unabhängige Konzepte, aber wir empfehlen, sie in der oben aufgeführten Reihenfolge zu absolvieren, um eine logische Progression durch die Themen zu gewährleisten. - -## Wie du diese Sammlung verwendest - -Führe zuerst einen Strg+Klick (bzw. Cmd+Klick) auf die Schaltfläche "Open in GitHub Codespaces" unten aus, um die Trainingsumgebung in einem separaten Tab zu öffnen, und lies dann weiter, während sie lädt. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Sobald deine Umgebung läuft, arbeite die Sammlung wie folgt durch: - -1. In diesem Tab: Navigiere zum ersten oben aufgelisteten Side Quest, der schrittweise Entwicklungsübungen beschreibt. -2. In deinem Codespaces-Tab: Arbeite die Übungen für den Side Quest durch. -3. Wenn du einen Side Quest abgeschlossen hast, kehre zu dieser Seite zurück und navigiere zum nächsten in der obigen Liste. -4. Wenn du die Sammlung abgeschlossen hast, klicke auf die Schaltfläche unten, um eine sehr kurze Umfrage auszufüllen. Dein Feedback ermöglicht es uns, die Trainingsmaterialien für alle weiter zu verbessern. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Bereit anzufangen? Beginne mit dem ersten Modul oben! diff --git a/docs/de/docs/training_collections/index.md b/docs/de/docs/training_collections/index.md deleted file mode 100644 index c4b21dee2e..0000000000 --- a/docs/de/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Training-Sammlungen -hide: - - toc ---- - -# Training-Sammlungen - -:material-information-outline:{ .ai-translation-notice-icon } KI-gestützte Übersetzung - [mehr erfahren & Verbesserungen vorschlagen](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Dieser Abschnitt enthält kuratierte Sammlungen von Trainingsmodulen, die [Side Quests](../side_quests/index.md) genannt werden und darauf abzielen, eine umfassende Lernerfahrung zu einem bestimmten Thema oder Anwendungsfall zu bieten. - -## Voraussetzungen - -Jede Sammlung hat spezifische Voraussetzungen, die auf ihrer Indexseite dokumentiert sind. Die meisten Sammlungen setzen jedoch Folgendes voraus: - -- Erfahrung mit der Kommandozeile -- Grundlegende Nextflow-Konzepte und -Werkzeuge, die im [Hello Nextflow](../hello_nextflow/index.md) Einsteiger-Trainingskurs behandelt werden - -Für technische Anforderungen und die Einrichtung der Umgebung siehe den [Environment Setup](../envsetup/index.md) Mini-Kurs. - -## Verfügbare Sammlungen - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - Eine Sammlung von vier Side Quests, die Workflow-Architekturmuster für die Zusammenstellung komplexer Pipelines, die Implementierung von Teststrategien, das Metadaten-Management und das Gruppieren und Aufteilen von Daten behandeln. _Geschätzte Dauer: 4 Stunden im Gruppentraining._ - -## Neue Sammlungen vorschlagen - -Wir arbeiten aktiv an der Entwicklung zusätzlicher Side Quests und Sammlungen. -Du kannst gerne Themen vorschlagen, die deiner Meinung nach sinnvoll in einer Sammlung behandelt werden sollten, indem du im [Training-Bereich](https://community.seqera.io/c/training/) des Community-Forums postest. diff --git a/docs/de/mkdocs.yml b/docs/de/mkdocs.yml index 20fa06ec0d..7cb0faa4a2 100644 --- a/docs/de/mkdocs.yml +++ b/docs/de/mkdocs.yml @@ -14,3 +14,35 @@ extra: wie wir Cookies verwenden. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Schulungsumgebung": "Einrichtung & Hilfe" + "Nextflow Run": "Nutzer*innen" + "Hello Nextflow": "Entwickler*innen" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow für die Wissenschaft" + nf4_science/genomics/index.md: "Genomics" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Bildgebung" + side_quests/index.md: "Side Quests" + envsetup/index.md: "Schulungsumgebung" + nav_child_title_overrides: + nextflow_run/index.md: "Überblick" + nfcore_run/index.md: "Überblick" + seqera_run/index.md: "Überblick" + hello_nextflow/index.md: "Überblick" + hello_nf-core/index.md: "Überblick" + nf4_science/index.md: "Überblick" + nf4_science/genomics/index.md: "Überblick" + nf4_science/rnaseq/index.md: "Überblick" + nf4_science/imaging/index.md: "Überblick" + side_quests/index.md: "Überblick" + nav_section_separators: + side_quests/dev_environment/index.md: "Entwickler-Tools & Tricks" + side_quests/working_with_files/index.md: "Vertiefung in den Datenfluss" + side_quests/workflows_of_workflows/index.md: "Modulare Architektur in Aktion" + side_quests/nf_test/index.md: "Das erweiterte Nextflow-Universum" diff --git a/docs/en/docs/assets/stylesheets/extra.css b/docs/en/docs/assets/stylesheets/extra.css index d82d5ee56b..d05a69e190 100644 --- a/docs/en/docs/assets/stylesheets/extra.css +++ b/docs/en/docs/assets/stylesheets/extra.css @@ -21,6 +21,9 @@ .mt-1 { margin-top: 1rem !important; } +.mb-4 { + margin-bottom: 4rem !important; +} /* Seqera style typography */ .md-typeset h1 { @@ -142,14 +145,10 @@ h3 .enumerate-headings-plugin { background-color: #17191e; } -/* Homepage logos */ -.homepage_logos { - text-align: center; -} -.homepage_logos img { - height: 2rem; - max-width: 100%; - margin: 1rem auto 0; +/* Compact admonition for minor asides, e.g. "coming soon" notes */ +.md-typeset .admonition.compact, +.md-typeset details.compact { + font-size: 0.65rem; } /* Custom right-hand-side sidebar */ @@ -201,11 +200,11 @@ h3 .enumerate-headings-plugin { .md-typeset .admonition.catalog, .md-typeset details.catalog { border-color: rgb(142, 142, 142); - font-size: 0.8rem; } .md-typeset .catalog > .admonition-title, .md-typeset .catalog > summary { background-color: rgba(153, 153, 153, 0.1); + font-weight: normal; } .md-typeset .catalog > .admonition-title::before, .md-typeset .catalog > summary::before { @@ -263,6 +262,22 @@ h3 .enumerate-headings-plugin { mask-image: var(--md-admonition-icon--full-code); } +/* optional */ +.md-typeset .admonition.optional, +.md-typeset details.optional { + border-color: rgb(100, 116, 139); +} +.md-typeset .optional > .admonition-title, +.md-typeset .optional > summary { + background-color: rgba(100, 116, 139, 0.1); +} +.md-typeset .optional > .admonition-title::before, +.md-typeset .optional > summary::before { + background-color: rgb(100, 116, 139); + -webkit-mask-image: var(--md-admonition-icon--optional); + mask-image: var(--md-admonition-icon--optional); +} + /* learning */ .md-typeset .admonition.learning, .md-typeset details.learning { @@ -383,6 +398,28 @@ h3 .enumerate-headings-plugin { font-size: 0.8rem; } +/* Category separator rows within a single continuous data table, + e.g. Category in the side quests catalog. + Default theme CSS only puts border-top on , not , since + normally only appears once in - add it back here since these + sit mid- and need the same row divider as regular data rows. */ +.md-typeset table tbody th[colspan] { + background-color: var(--md-default-fg-color--lightest); + border-top: 0.05rem solid var(--md-typeset-table-color); + text-align: left; +} + +/* Distinguish the real column-header row from category separator rows + above: brand-color fill plus the same uppercase/letter-spaced treatment + used for the sidebar group labels (see .md-nav__item--group-label). */ +.md-typeset table thead th { + background-color: var(--md-primary-fg-color); + color: var(--md-primary-bg-color); + font-size: 0.65rem; + text-transform: uppercase; + letter-spacing: 0.08em; +} + /* YouTube video embeds */ .md-typeset figure:has(.video-wrapper) { width: 100%; @@ -449,6 +486,30 @@ h3 .enumerate-headings-plugin { text-decoration: underline; } +/* Sidebar group labels (non-clickable) - see overrides/partials/nav.html */ +.md-nav__item--group-label { + padding-right: 0.6rem; + margin-top: 1.2rem; + font-size: 0.65rem; + font-weight: 700; + line-height: 1.4; + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--md-default-fg-color--light); +} +.md-nav--primary > .md-nav__list > .md-nav__item--group-label:first-child { + margin-top: 0; +} + +/* Set "Training Events" apart from the Setup & Help utility pages it's + nested under, since it's community/events content rather than setup */ +.md-nav--primary a.md-nav__link[href*="training_events"] { + margin-top: 0.8rem; + padding-top: 0.6rem; + border-top: 1px solid var(--md-default-fg-color--lightest); + font-weight: 700; +} + /* Language selector dropdown - allow dynamic height */ .md-select:focus-within .md-select__inner, .md-select:hover .md-select__inner { diff --git a/docs/en/docs/envsetup/02_local.md b/docs/en/docs/envsetup/02_local.md index e6800587fd..d59727188b 100644 --- a/docs/en/docs/envsetup/02_local.md +++ b/docs/en/docs/envsetup/02_local.md @@ -39,7 +39,6 @@ We recommend using the self-install option for Nextflow and the PyPI option for !!! warning "Version compatibility" - **As of January 2026, all of our Nextflow training courses require Nextflow version 25.10.2 or later, with strict v2 syntax activated, unless otherwise noted.** For more information about version requirements and strict v2 syntax, please see the [Nextflow versions](../info/nxf_versions.md) guide. diff --git a/docs/en/docs/execution_config/00_orientation.md b/docs/en/docs/execution_config/00_orientation.md new file mode 100644 index 0000000000..c10318a30c --- /dev/null +++ b/docs/en/docs/execution_config/00_orientation.md @@ -0,0 +1,92 @@ +# Getting started + +## Start a training environment + +To use the pre-built environment we provide on GitHub Codespaces, click the "Open in GitHub Codespaces" button below. For other options, see [Environment options](../envsetup/index.md). + +We recommend opening the training environment in a new browser tab or window (use right-click, ctrl-click or cmd-click depending on your equipment) so that you can read on while the environment loads. +You will need to keep these instructions open in parallel to work through the course. + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) + +### Environment basics + +This training environment contains all the software, code and data necessary to work through the training course, so you don't need to install anything yourself. + +The codespace is set up with a VSCode interface, which includes a filesystem explorer, a code editor and a terminal shell. +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. + +If you are working through this course by yourself, please acquaint yourself with the [environment basics](../envsetup/01_setup.md) for further details. + +### Version requirements + +This course requires Nextflow 25.10.2 or later, with the v2 syntax parser enabled (the default in 25.10+). +If you are using a local or custom environment, please make sure you are using the correct settings as documented [here](../info/nxf_versions.md). + +## Get ready to work + +Once your codespace is running, there are two things to do before diving in: set your working directory, and take a look at the materials provided. + +### Set the working directory + +By default, the codespace opens at the root of all training courses. +For this course, change to the `execution-config/` directory: + +```bash +cd execution-config/ +``` + +Then set VSCode to focus on this directory, so only the relevant files appear in the file explorer sidebar: + +```bash +code . +``` + +!!! tip + + 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: + + ```bash + cd /workspaces/training/execution-config + ``` + +### Explore the materials provided + +You can explore the course materials using the file explorer on the left, or with the `tree` command. +Run the following from the terminal to see the full structure: + +```bash +tree . -L 2 +``` + +??? abstract "Directory contents" + + ```console + . + ├── data + │ └── greetings.csv + ├── main.nf + ├── modules + │ ├── collectGreetings.nf + │ ├── convertToUpper.nf + │ ├── cowpy.nf + │ └── sayHello.nf + └── nextflow.config + ``` + +The **`main.nf`** and **`modules/`** files are the same multi-step pipeline from [Nextflow Run](../nextflow_run/index.md), and the **`nextflow.config`** file is the same configuration you already saw there. +You'll extend both over the course of these exercises. + +The **`data/`** directory contains the CSV input file the pipeline reads from. + +## Readiness checklist + +Think you're ready to dive in? + +- [ ] I understand the goal of this course and its prerequisites +- [ ] My environment is up and running +- [ ] I've set my working directory appropriately + +If you can check all the boxes, you're good to go. + +**To continue to [Part 1: Adapt to your compute environment](./01_packaging_and_execution.md), click on the arrow in the bottom right corner of this page.** diff --git a/docs/en/docs/execution_config/01_packaging_and_execution.md b/docs/en/docs/execution_config/01_packaging_and_execution.md new file mode 100644 index 0000000000..346c7f7064 --- /dev/null +++ b/docs/en/docs/execution_config/01_packaging_and_execution.md @@ -0,0 +1,240 @@ +# Part 1: Adapt to your compute environment + +In [Nextflow Run](../nextflow_run/index.md), you configured a pipeline's inputs, parameters, and outputs. +This course covers the other half of the picture: adapting a pipeline's execution to whatever compute environment it happens to run on, without changing the workflow code. + +!!! example "Scenario" + + You developed and tested your pipeline on your laptop using Docker. + Now you need to hand it off: a collaborator only has Conda set up, and your institution's HPC cluster expects jobs to go through its own scheduler with its own resource limits. + None of that should require rewriting the pipeline itself. + +The same pipeline code can run in all of these places, because none of that is baked into the workflow. +Software packaging, execution platform, and resource allocation are all controlled through configuration, layered on top of the code, and that's what this course covers: how to adapt the same pipeline to a new environment by changing config, not code. + +--- + +## 1. Select a software packaging technology + +In [Nextflow Run](../nextflow_run/index.md), you saw a `conda` profile already set up in `nextflow.config` as an alternative to Docker. +Here you'll build that same switch yourself, and see what it takes to make a process actually usable with Conda. + +### 1.1. Disable Docker and enable Conda + +Switch `docker.enabled` to `false` and add a directive enabling Conda. + +=== "After" + + ```groovy title="nextflow.config" linenums="1" hl_lines="1-2" + docker.enabled = false + conda.enabled = true + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="1" + docker.enabled = true + ``` + +This lets Nextflow create and use Conda environments for any process that has a Conda package specified. +The `cowpy` process doesn't have one yet, so let's add one, entirely from config. + +### 1.2. Add a Conda package via config + +A `conda` directive can be set in the process definition itself, the same way `container` already is in `modules/cowpy.nf`, but it doesn't have to be: `withName` lets you set it from config instead, scoped to just the `cowpy` process. + +=== "After" + + ```groovy title="nextflow.config" linenums="6" hl_lines="3-5" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + } + } + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="6" + process { + memory = 1.GB + } + ``` + +This doesn't replace the `container` directive already in the pipeline code, it adds an alternative alongside it, without touching that code at all. + +!!! tip + + The [Seqera Containers](https://seqera.io/containers/) search is a convenient way to look up the Conda package URI for a given tool, even if you're not planning to build a container from it. + +### 1.3. Run the workflow to verify that it can use Conda + +```bash +nextflow run main.nf --batch conda +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [extravagant_mccarthy] DSL2 - revision: c3c85dec78 + + executor > local (8) + [c3/1a514c] sayHello (2) | 3 of 3 ✔ + [14/615655] convertToUpper (3) | 3 of 3 ✔ + [78/4d519c] collectGreetings | 1 of 1 ✔ + Creating env using conda: conda-forge::cowpy==1.1.5 [cache /workspaces/training/execution-config/work/conda/env-898314d566668b6587ad714ae06b8520] + [0a/2e4f16] cowpy | 1 of 1 ✔ + ``` + +This produces the same output as running with Docker, even though the mechanics are different behind the scenes: Nextflow retrieves the Conda package and builds an environment from it, instead of pulling a container image. + +!!! info + + Building a new Conda environment can take a bit longer than pulling a container the first time around, but the package used here is small so it should be quick. + +Now switch back to Docker for the rest of this course. + +```groovy title="nextflow.config" linenums="1" +docker.enabled = true +``` + +??? tip "Mixing and matching Docker and Conda" + + Because these settings are scoped per process, you can mix and match: some processes use Docker, others use Conda, depending on what's available for each tool. + If both a `container` directive (in the pipeline code) and a `conda` directive (here, from config) are set for the same process and both packaging systems are enabled, Nextflow prioritizes containers. + +### Takeaway + +You know how to configure which software packaging technology a process should use, and how to switch between Docker and Conda. + +### What's next? + +Learn how to change the execution platform Nextflow uses to actually run your tasks. + +--- + +## 2. Select an execution platform + +Every pipeline you've run so far has used the local executor: each task runs on the same machine as Nextflow itself. +Nextflow checks the available CPUs and memory, and holds tasks back until enough resources free up. + +The local executor is convenient, but it doesn't scale past a single machine. +Nextflow supports [many other execution backends](https://nextflow.io/docs/latest/executor.html), including HPC schedulers (Slurm, LSF, SGE, PBS, and others) and cloud platforms (AWS Batch, Google Cloud Batch, Azure Batch, Kubernetes, and more). + +### 2.1. Target a different backend + +The executor is set by a process directive called `executor`. +By default it's `local`, so the following is implied: + +```groovy title="Built-in configuration" +process { + executor = 'local' +} +``` + +To target a different backend, set the directive to the executor you want. + +```groovy title="nextflow.config" +process { + executor = 'slurm' +} +``` + +!!! warning + + The training environment isn't connected to an HPC cluster, so this isn't something you can run here. + +### 2.2. Backend-specific syntax is abstracted away + +Most HPC platforms require job submissions to specify resource requests, such as CPUs, memory, and a queue name, using their own syntax. +The same request for 8 CPUs and 4 GB of RAM on a queue called `my-science-work` looks completely different depending on the scheduler. + +??? abstract "Examples" + + ```bash title="Config for SLURM / submit using sbatch" + #SBATCH -o /path/to/my/task/directory/my-task-1.log + #SBATCH --no-requeue + #SBATCH -c 8 + #SBATCH --mem 4096M + #SBATCH -p my-science-work + ``` + + ```bash title="Config for PBS / submit using qsub" + #PBS -o /path/to/my/task/directory/my-task-1.log + #PBS -j oe + #PBS -q my-science-work + #PBS -l nodes=1:ppn=8 + #PBS -l mem=4gb + ``` + + ```bash title="Config for SGE / submit using qsub" + #$ -o /path/to/my/task/directory/my-task-1.log + #$ -j y + #$ -terse + #$ -notify + #$ -q my-science-work + #$ -l slots=8 + #$ -l h_rss=4096M,mem_free=4096M + ``` + +Nextflow abstracts all of this away: you specify standardized properties such as `cpus`, `memory`, and `queue` once (see [process directives](https://nextflow.io/docs/latest/reference/process.html#process-directives) for the full list), and Nextflow translates them into the appropriate backend-specific scripts at runtime. + +### 2.3. See what Nextflow actually runs + +That translation isn't just a config-file convenience: it's backed by something concrete you can inspect right now, even with the local executor. +In [Nextflow Run, section 1.3](../nextflow_run/01_run_nextflow.md#13-explore-the-work-directory), you looked inside a task directory under `work/` and found `.command.sh`, the exact command Nextflow ran. +That same directory also contains a file you didn't look at yet: `.command.run`. + +```bash +cat work/0a/0df4a1*/.command.run +``` + +??? success "Command output (excerpt)" + + ```console + #!/bin/bash + ### --- + ### name: 'convertToUpper (3)' + ### container: 'null' + ### outputs: + ### - 'UPPER-Bonjour-output.txt' + ### ... + set -e + set -u + ... + nxf_launch() { + /bin/bash -ue /workspaces/training/nextflow-run/work/0a/0df4a1028c2001758b1841cff92fc7/.command.sh + } + ... + ``` + +`.command.run` is the real script Nextflow hands off for execution. +It wraps `.command.sh` with everything needed to actually run it: environment setup, input/output staging, and reporting the result back to Nextflow. +With the `local` executor, Nextflow simply runs this script on the same machine. + +This is exactly what changes when you set a different `executor`. +For an HPC scheduler such as Slurm or PBS, Nextflow generates that same kind of wrapper script, adds the scheduler-specific header you saw in [2.2](#22-backend-specific-syntax-is-abstracted-away) (translated from your `cpus`, `memory`, and `queue` settings), and hands the result to that scheduler's own submission command, for example `sbatch` for Slurm. +From there, Nextflow polls the scheduler for job status instead of watching a local process directly. +Cloud batch backends work a little differently, since they're driven by API calls rather than a submission command, but the same underlying idea applies: the same task script runs, only how it gets launched and tracked changes. + +### Takeaway + +You know how to change the executor to target different compute infrastructure, that Nextflow abstracts away backend-specific submission syntax, and what actually happens behind the scenes when a task runs on a different backend. + +### What's next? + +Head on to [Part 2](./02_resources_and_retries.md), where you'll learn how to profile and allocate compute resources, and handle task failures with retries. + +--- + +## Summary + +In this part you learned to: + +- Switch software packaging technology between Docker and Conda +- Add a `conda` directive to a process definition +- Change the execution platform with the `executor` directive +- Inspect what Nextflow actually generates and runs for a task, and how that changes across executors diff --git a/docs/en/docs/execution_config/02_resources_and_retries.md b/docs/en/docs/execution_config/02_resources_and_retries.md new file mode 100644 index 0000000000..0b1276b6dd --- /dev/null +++ b/docs/en/docs/execution_config/02_resources_and_retries.md @@ -0,0 +1,308 @@ +# Part 2: Manage compute resources and failures + +In [Part 1](./01_packaging_and_execution.md), you adapted where and how a pipeline's tasks run. +Here you'll adapt how much compute each task gets, and what happens when a task fails despite your best guess at an allocation. + +--- + +## 1. Control compute resource allocations + +By default, Nextflow allocates a single CPU to each process via the `cpus` directive, and does not impose a memory limit unless you set one: + +```groovy title="Built-in configuration" +process { + cpus = 1 +} +``` + +You already know from [Nextflow Run](../nextflow_run/index.md) that this pipeline's configuration sets `memory` to 1 GB for all processes. +But how do you know what values to actually use for your own pipelines? + +### 1.1. Generate a resource utilization report + +You already generated an execution report with `-with-report` in [Nextflow Run](../nextflow_run/02_configure_pipeline.md). +That same report is how you find out how much CPU and memory your processes actually need: run the workflow with some default allocations, record actual usage, then adjust from there. + +```bash +nextflow run main.nf -with-report report-config-1.html +``` + +The report is an HTML file you can open in a browser. +It breaks down runtime and resource utilization per process, including what percentage of the allocated resources was actually used. +Here's what it shows for `cowpy` with the current defaults (1 CPU, 1 GB memory): + +| Metric | Value | +| ---------------- | ------ | +| CPU usage | 116% | +| Peak memory used | 6.4 MB | +| Allocated memory | 1 GB | + +`cowpy` uses well under 1% of its 1 GB allocation; the `%cpu` above 100% just means it briefly uses more than one CPU's worth of processing inside the container, in short bursts. + +See [Reports](https://nextflow.io/docs/latest/reports.html) for the full list of available features. + +### 1.2. Set resource allocations for a specific process + +The report above shows `cowpy` comfortably within its current allocation, but say you wanted to give it more headroom anyway, for example because you expect larger inputs in production. +You can override the defaults for a single process with `withName`. + +=== "After" + + ```groovy title="nextflow.config" linenums="6" hl_lines="5-6" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + memory = 2.GB + cpus = 2 + } + } + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="6" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + } + } + ``` + +With this in place, every process requests 1 GB of memory and a single CPU, except `cowpy`, which requests 2 GB and 2 CPUs (on top of the `conda` setting from [Part 1](./01_packaging_and_execution.md)). + +!!! info + + If your machine has few CPUs and you allocate a high number per process, task calls may queue up behind each other, since Nextflow won't request more CPUs than are available. + +Run it again with a different report filename, so you can compare before and after. + +```bash +nextflow run main.nf -with-report report-config-2.html +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [furious_roentgen] DSL2 - revision: c3c85dec78 + + executor > local (8) + [e8/1584eb] sayHello (2) | 3 of 3 ✔ + [0f/b88085] convertToUpper (3) | 3 of 3 ✔ + [11/d81bfa] collectGreetings | 1 of 1 ✔ + [a7/ca287f] cowpy | 1 of 1 ✔ + ``` + +Comparing the two reports for `cowpy`: + +| Metric | Before (1 CPU, 1 GB) | After (2 CPUs, 2 GB) | +| ---------------- | -------------------- | -------------------- | +| Peak memory used | 6.4 MB | 6.4 MB | +| CPU usage | 116% | 118% | + +Doubling the allocation didn't change actual usage at all, which tells you the original 1 GB / 1 CPU was already generous for this toy workload. +On a real pipeline processing non-trivial data, you'd expect the numbers themselves to differ meaningfully between processes, which is exactly why you profile before deciding what to allocate, rather than guessing. + +### 1.3. Add resource limits + +Depending on your compute infrastructure, there may be hard constraints on what you can request, for example a cluster-wide cap. +The `resourceLimits` directive lets you set those limits: + +```groovy title="Syntax example" +process { + resourceLimits = [ + memory: 750.GB, + cpus: 200, + time: 30.d + ] +} +``` + +Nextflow translates these into whatever the target executor expects. +If a process requests more than the limit, the request gets capped rather than rejected. + +!!! warning + + This isn't something you can run in the training environment, since it requires HPC infrastructure to have an effect. + +??? info "Institutional reference configurations" + + The nf-core project maintains a [collection of configuration files](https://nf-co.re/configs/) shared by institutions worldwide, covering a wide range of HPC and cloud executors. + They're a useful starting point whether or not your own institution is among them. + +### Takeaway + +You know how to generate a profiling report to assess resource utilization, override resource allocations for a specific process, and cap allocations with `resourceLimits`. + +### What's next? + +Learn how to make a pipeline recover automatically when a task fails, whether or not your resource allocation guess was right. + +--- + +## 2. Handle task failures with retries + +Profiling tells you what a process needs most of the time, but real workloads vary: an allocation that's comfortable for most inputs can still be too tight for an unusually large one, and guesses can simply be wrong. +Rather than letting a single failed task bring down the whole run, Nextflow can retry a failed task automatically, optionally giving it more resources on each attempt. + +### 2.1. Retry a failed task automatically + +To see this in action, deliberately set `cowpy`'s memory allocation below what it actually needs: recall from [1.1](#11-generate-a-resource-utilization-report) that it peaks at around 6.4 MB, so 6 MB should be just short of enough. + +=== "After" + + ```groovy title="nextflow.config" linenums="6" hl_lines="5-7" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + memory = 6.MB + errorStrategy = 'retry' + maxRetries = 2 + } + } + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="6" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + memory = 2.GB + cpus = 2 + } + } + ``` + +`errorStrategy` tells Nextflow what to do when a task fails: `'retry'` resubmits the task instead of stopping the whole pipeline. +`maxRetries` caps how many extra attempts it gets before Nextflow gives up. + +```bash +nextflow run main.nf +``` + +??? failure "Command output (abridged)" + + ```console + [PROCESS 20/24eec4] cowpy + [ERROR] cowpy + exit: 137 + cmd: cat COLLECTED-batch-output.txt | cowpy -c "turkey" > cowpy-COLLECTED-batch-output.txt + workdir: .../work/20/24eec4... + [PROCESS 7f/5814b3] cowpy + [ERROR] cowpy + exit: 1 + cmd: cat COLLECTED-batch-output.txt | cowpy -c "turkey" > cowpy-COLLECTED-batch-output.txt + workdir: .../work/7f/5814b3... + [PROCESS 12/4c9601] cowpy + [ERROR] ERROR ~ Error executing process > 'cowpy' + + Caused by: + Process `cowpy` terminated with an error exit status (137) + + Command exit status: + 137 + + Work dir: + .../work/12/4c9601... + + Tip: when you have fixed the problem you can continue the execution adding the option `-resume` to the run command line + + [FAILED] completed=10 failed=3 cached=0 + ``` + +Exit code 137 is the standard signal for an out-of-memory kill: the container didn't have enough memory to run `cowpy` at all. +Nextflow retried the task twice, three attempts in total, matching `maxRetries = 2`. +Since the memory allocation never changed between attempts, every attempt hit the same wall; once retries are exhausted, Nextflow reports the failure in full and stops the pipeline, exiting with a non-zero status. + +Retrying on its own doesn't fix anything if the underlying cause doesn't change between attempts. + +### 2.2. Increase resources on each retry + +Inside a process directive, `task.attempt` holds the current attempt number, starting at 1. +You can use it in a closure to scale a resource allocation up with each retry. + +=== "After" + + ```groovy title="nextflow.config" linenums="6" hl_lines="5 7" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + memory = { 6.MB * task.attempt } + errorStrategy = 'retry' + maxRetries = 3 + } + } + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="6" + process { + memory = 1.GB + withName: 'cowpy' { + conda = 'conda-forge::cowpy==1.1.5' + memory = 6.MB + errorStrategy = 'retry' + maxRetries = 2 + } + } + ``` + +Run the workflow again: + +```bash +nextflow run main.nf +``` + +??? success "Command output (abridged)" + + ```console + [PROCESS 99/b9c7f4] cowpy + [ERROR] cowpy + exit: 137 + cmd: cat COLLECTED-batch-output.txt | cowpy -c "turkey" > cowpy-COLLECTED-batch-output.txt + workdir: .../work/99/b9c7f4... + [PROCESS d6/d3627d] cowpy + + Outputs: + + ... + cowpy_art: full_pipeline/cowpy-COLLECTED-batch-output.txt + + [FAILED] completed=9 failed=1 cached=0 + ``` + +The first attempt still fails at 6 MB, but the retry runs with 12 MB (`6.MB * 2`) and succeeds, and the pipeline completes with all outputs published. + +!!! warning + + The console summary tag above still reads `[FAILED]`, even though the pipeline as a whole succeeded: that tag reflects individual task attempts, not overall outcome, and one attempt did fail along the way. + Check for the `Outputs:` listing, or the command's exit status, to see whether the run actually succeeded. + +See [Dynamic computing resources](https://nextflow.io/docs/latest/process.html#dynamic-task-resources) in the Nextflow documentation for more advanced retry patterns, including scaling based on which specific error occurred. + +### Takeaway + +You know how to make a pipeline automatically retry failed tasks, and how to scale resource allocations with each retry using `task.attempt`. + +### What's next? + +Head on to [Part 3](./03_profiles.md), where you'll learn how to bundle configuration like this into switchable profiles. + +--- + +## Summary + +In this part you learned to: + +- Generate a resource profiling report and set per-process resource allocations +- Cap resource requests with `resourceLimits` +- Automatically retry a failed task with `errorStrategy` and `maxRetries` +- Scale a resource allocation up with each retry using `task.attempt` diff --git a/docs/en/docs/execution_config/03_profiles.md b/docs/en/docs/execution_config/03_profiles.md new file mode 100644 index 0000000000..74d198b1aa --- /dev/null +++ b/docs/en/docs/execution_config/03_profiles.md @@ -0,0 +1,223 @@ +# Part 3: Use profiles to switch configurations + +Across [Part 1](./01_packaging_and_execution.md) and [Part 2](./02_resources_and_retries.md), you accumulated a few configuration options: software packaging, execution platform, and resource allocations. +In practice, you'll often want to switch between whole sets of these options depending on where you're running, for example a laptop for development and an HPC cluster for production. + +Nextflow lets you set up any number of [profiles](https://nextflow.io/docs/latest/config.html#profiles) describing different configurations, and select one (or several) at runtime with a single flag. + +You've already used one: the `test` profile from [Nextflow Run](../nextflow_run/index.md) overrides the input parameters to a small, well-defined set. +Now you'll create your own infrastructure profiles and combine them with it. + +--- + +## 1. Create profiles for different environments + +### 1.1. Set up the profiles + +Add two profiles to `nextflow.config`: one for running on a regular laptop with Docker, and one for a university HPC cluster with a Slurm scheduler and Conda. + +=== "After" + + ```groovy title="nextflow.config" linenums="35" hl_lines="10-19" + profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } + my_laptop { + process.executor = 'local' + docker.enabled = true + } + univ_hpc { + process.executor = 'slurm' + conda.enabled = true + process.resourceLimits = [ + memory: 750.GB, + cpus: 200, + time: 30.d + ] + } + } + ``` + +=== "Before" + + ```groovy title="nextflow.config" linenums="35" + profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } + } + ``` + +The `univ_hpc` profile also sets resource limits, since that's typically required on shared HPC infrastructure. + +### 1.2. Run the workflow with a profile + +Select a profile at runtime with `-profile`. + +```bash +nextflow run main.nf -profile my_laptop +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [cheeky_goldstine] DSL2 - revision: c3c85dec78 + + executor > local (8) + [da/0111e3] sayHello (1) | 3 of 3 ✔ + [db/e19e47] convertToUpper (2) | 3 of 3 ✔ + [71/ad2bde] collectGreetings | 1 of 1 ✔ + [85/afb958] cowpy | 1 of 1 ✔ + ``` + +!!! warning + + The `univ_hpc` profile won't run in the training environment, since there's no Slurm scheduler available. + +If you find other settings that always belong together, add them to the corresponding profile. +You can also create additional profiles to group any other combination you need. + +### 1.3. Run with multiple profiles + +Profiles aren't mutually exclusive. +You can activate several at once with `-profile ,`. +Combine `my_laptop` with the `test` profile you already know from Nextflow Run. + +```bash +nextflow run main.nf -profile my_laptop,test +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [sleepy_minsky] DSL2 - revision: c3c85dec78 + + executor > local (8) + [b2/103b0d] sayHello (3) | 3 of 3 ✔ + [00/6a7642] convertToUpper (2) | 3 of 3 ✔ + [b1/3df765] collectGreetings | 1 of 1 ✔ + [d1/4e5ae1] cowpy | 1 of 1 ✔ + ``` + +The individual file names correctly pick up `batch = 'test'` from the `test` profile (`COLLECTED-test-output.txt`, and so on). + +If you combine profiles that set the same option, Nextflow resolves the conflict using whichever value it reads last, that is, whichever comes later in the file. +If the conflicting settings come from different configuration sources entirely, the standard [order of precedence](https://www.nextflow.io/docs/latest/config.html) applies. + +### Takeaway + +You know how to define profiles that bundle infrastructure-specific configuration, select one at runtime with `-profile`, combine multiple profiles in a single run, and how Nextflow resolves conflicts when more than one profile sets the same option. + +### What's next? + +Learn how to inspect the fully resolved configuration before you run anything. + +--- + +## 2. Inspect the resolved configuration + +You already used `nextflow config -profile test` in [Nextflow Run](../nextflow_run/02_configure_pipeline.md) to check what a single profile resolves to. +That command becomes especially useful once you're combining multiple profiles: as you just saw, when two profiles set the same option, it can be tricky to work out by hand which value actually wins. +The `nextflow config` command resolves all of that for you, without running the pipeline. + +### 2.1. Resolve the default configuration + +```bash +nextflow config +``` + +??? success "Command output" + + ```groovy + docker { + enabled = true + } + + process { + memory = '1 GB' + withName:cowpy { + conda = 'conda-forge::cowpy==1.1.5' + memory = '2 GB' + cpus = 2 + } + } + + params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' + } + ``` + +This is exactly what would apply if you ran the pipeline with no extra flags. + +### 2.2. Resolve the configuration with profiles activated + +Add the same profiles you'd use for an actual run. + +```bash +nextflow config -profile my_laptop,test +``` + +??? success "Command output" + + ```groovy + docker { + enabled = true + } + + process { + memory = '1 GB' + withName:cowpy { + conda = 'conda-forge::cowpy==1.1.5' + memory = '2 GB' + cpus = 2 + } + executor = 'local' + } + + params { + input = 'data/greetings.csv' + batch = 'test' + character = 'tux' + } + ``` + +Comparing the two confirms what changed: `params.batch`, `params.character`, and `process.executor` all reflect the `my_laptop,test` profiles. +This gets especially valuable for pipelines with many layers of configuration, where working out the resolved settings by hand would be tedious and error-prone. + +### Takeaway + +You know how to use `nextflow config` to inspect the fully resolved configuration for any combination of profiles, before running anything. + +### What's next? + +You've covered the essentials of configuring Nextflow pipelines. +See [Course summary](next_steps.md) for where to go from here. + +--- + +## Summary + +In this part you learned to: + +- Define profiles that bundle infrastructure-specific configuration +- Combine multiple profiles in a single run, and understand how conflicts between them resolve +- Use `nextflow config` to inspect the fully resolved configuration diff --git a/docs/en/docs/execution_config/index.md b/docs/en/docs/execution_config/index.md new file mode 100644 index 0000000000..2b31f5a64e --- /dev/null +++ b/docs/en/docs/execution_config/index.md @@ -0,0 +1,48 @@ +--- +title: Execution Config +hide: + - toc +page_type: index_page +index_type: course +additional_information: + technical_requirements: true + learning_objectives: + - Switch software packaging technology between Docker and Conda + - Select an execution platform and understand how Nextflow adapts task execution to it + - Control compute resource allocations, and automatically retry tasks that fail + - Define and combine profiles to switch between preset configurations + audience_prerequisites: + - "**Audience:** This course is designed for learners who already know how to launch local Nextflow pipelines and want to configure execution in more depth." + - "**Skills:** Some familiarity with the command line is assumed." + - "**Courses:** Must have completed [Nextflow Run](../nextflow_run/index.md) or otherwise be comfortable running a local pipeline with `nextflow run`." +--- + +# Execution Config + +**Execution Config is a hands-on introduction to adapting Nextflow pipeline execution to different compute environments.** + +Working through goal-oriented exercises, you will learn how to switch software packaging technology, select an execution platform, control compute resource allocations and retries, and bundle configuration into switchable profiles. + +You will take away the skills and confidence to configure Nextflow pipeline execution like a pro. + + + +## Course overview + +This course is hands-on, and builds on the skills covered in [Nextflow Run](../nextflow_run/index.md). + +You will take the same multi-step pipeline from that course and progressively adapt its configuration to different compute environments, then bundle everything into profiles you can switch between at runtime. + +### Lesson plan + +| Course chapter | Summary | Estimated duration | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------- | ------------------ | +| [Part 1: Adapt to your compute environment](./01_packaging_and_execution.md) | Switch software packaging technology and select an execution platform | 20 mins | +| [Part 2: Manage compute resources and failures](./02_resources_and_retries.md) | Control resource allocations, and automatically retry tasks that fail | 15 mins | +| [Part 3: Use profiles to switch configurations](./03_profiles.md) | Define and combine profiles, and inspect the fully resolved configuration | 15 mins | + +By the end of this course, you will be comfortable configuring Nextflow pipelines for a range of compute environments, and switching between them with minimal hassle. + +Ready to take the course? + +[Start learning :material-arrow-right:](00_orientation.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/execution_config/next_steps.md b/docs/en/docs/execution_config/next_steps.md new file mode 100644 index 0000000000..9781522282 --- /dev/null +++ b/docs/en/docs/execution_config/next_steps.md @@ -0,0 +1,39 @@ +# Course summary + +Congratulations on completing the Execution Config training course! 🎉 + +## Your journey + +You started by adapting a pipeline's execution to different compute environments: switching software packaging technology and selecting an execution platform. +Next, you learned to control resource allocations and automatically retry tasks that fail. +Finally, you learned how to bundle configuration into profiles, combine them at runtime, and inspect the fully resolved configuration. + +### Skills acquired + +Through this hands-on course, you've learned how to: + +- Switch software packaging technology between Docker and Conda +- Select an execution platform, and understand what changes behind the scenes when you do +- Control per-process resource allocations, and automatically retry tasks that fail +- Define and combine profiles, and inspect resolved configuration with `nextflow config` + +You're now equipped to configure Nextflow pipelines for a range of compute environments with confidence. + +## Next steps to build your skills + +Here are our top suggestions for what to do next: + +- Learn to run nf-core community pipelines with [Use nf-core](../nfcore_use/index.md) +- Launch and monitor pipelines at scale with [Scale with Seqera](../seqera_scale/index.md) +- Don't just run Nextflow, write it! Become a Nextflow developer with [Hello Nextflow](../hello_nextflow/index.md) +- Apply Nextflow to a scientific analysis use case with [Nextflow for Science](../nf4_science/index.md) + +## Getting help + +For help resources and community support, see the [Help page](../help.md). + +## Feedback survey + +Before you move on, please take a minute to complete the course survey! Your feedback helps us improve our training materials for everyone. + +[Take the survey :material-arrow-right:](survey.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/execution_config/survey.md b/docs/en/docs/execution_config/survey.md new file mode 100644 index 0000000000..332ee2e221 --- /dev/null +++ b/docs/en/docs/execution_config/survey.md @@ -0,0 +1,7 @@ +# Feedback survey + +Before you move on, please complete this short 5-question survey to rate the training, share any feedback you may have about your experience, and let us know what else we could do to help you in your Nextflow journey. + +This should take you only a minute or two to complete. Thank you for helping us improve our training materials for everyone! + +
diff --git a/docs/en/docs/hello_nextflow/next_steps.md b/docs/en/docs/hello_nextflow/next_steps.md index 3dce831cbd..6559da3a7a 100644 --- a/docs/en/docs/hello_nextflow/next_steps.md +++ b/docs/en/docs/hello_nextflow/next_steps.md @@ -52,7 +52,7 @@ You're now equipped with the foundational knowledge to start developing your own Here are our top 3 suggestions for what to do next: - Apply Nextflow to a scientific analysis use case with [Nextflow for Science](../nf4_science/index.md) -- Get started with nf-core with [Hello nf-core](../hello_nf-core/index.md) +- Get started with nf-core with [Build with nf-core](../nfcore_build/index.md) - Explore more advanced Nextflow features with the [Side Quests](../side_quests/index.md) Finally, we recommend you have a look at [**Seqera Platform**](https://seqera.io/), a cloud-based platform developed by the creators of Nextflow that makes it even easier to launch and manage your workflows, as well as manage your data and run analyses interactively in any environment. diff --git a/docs/en/docs/hello_nf-core/01_run_demo.md b/docs/en/docs/hello_nf-core/01_run_demo.md deleted file mode 100644 index 0f9985263f..0000000000 --- a/docs/en/docs/hello_nf-core/01_run_demo.md +++ /dev/null @@ -1,979 +0,0 @@ -# Part 1: Run a demo pipeline - -In this first part of the Hello nf-core training course, we show you how to find and try out an nf-core pipeline, configure and customize its execution for your needs, and understand how input validation protects against common errors. - -We are going to use a pipeline called nf-core/demo that is maintained by the nf-core project as part of its inventory of pipelines for demonstration and training purposes. - -Make sure your working directory is set to `hello-nf-core/` as instructed on the [Getting started](./00_orientation.md) page. - ---- - -## 1. Find and retrieve the nf-core/demo pipeline - -Let's start by locating the nf-core/demo pipeline on the project website at [nf-co.re](https://nf-co.re), which centralizes all information such as: general documentation and help articles, documentation for each of the pipelines, blog posts, event announcements and so forth. - -### 1.1. Find the pipeline on the website - -In your web browser, go to [https://nf-co.re/pipelines/](https://nf-co.re/pipelines/) and type `demo` in the search bar. - -![search results](./img/search-results.png) - -Click on the pipeline name, `demo`, to access the pipeline documentation page. - -Each released pipeline has a dedicated page that includes the following documentation sections: - -- **Introduction:** An introduction and overview of the pipeline -- **Usage:** Descriptions of how to execute the pipeline -- **Parameters:** Grouped pipeline parameters with descriptions -- **Output:** Descriptions and examples of the expected output files -- **Results:** Example output files generated from the full test dataset -- **Releases & Statistics:** Pipeline version history and statistics - -Whenever you are considering adopting a new pipeline, you should read the pipeline documentation carefully first to understand what it does and how it should be configured before attempting to run it. - -Have a look now and see if you can find out: - -- Which tools the pipeline will run (Check the tab: `Introduction`) -- Which inputs and parameters the pipeline accepts or requires (Check the tab: `Parameters`) -- What are the outputs produced by the pipeline (Check the tab: `Output`) - -#### 1.1.1. Pipeline overview - -The `Introduction` tab provides an overview of the pipeline, including a visual representation (called a subway map) and a list of tools that are run as part of the pipeline. - -![pipeline subway map](./img/nf-core-demo-subway-cropped.png) - -1. Read QC ([FASTQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) -2. Adapter and quality trimming ([SEQTK_TRIM](https://github.com/lh3/seqtk)) -3. Present QC for raw reads ([MULTIQC](http://multiqc.info/)) -4. Generate a lighthearted text message from a cow ([COWPY](https://github.com/jeffbuttars/cowpy)) - -#### 1.1.2. Example command line - -The documentation also provides an example input file (discussed further below) and an example command line. - -```bash -nextflow run nf-core/demo \ - -profile \ - --input samplesheet.csv \ - --outdir -``` - -You'll notice that the example command does NOT specify a workflow file, just the reference to the pipeline repository, `nf-core/demo`. - -When invoked this way, Nextflow will assume that the code is organized in a certain way. -Let's retrieve the code so we can examine this structure. - -### 1.2. Retrieve the pipeline code - -Once we've determined that the pipeline appears to be suitable for our purposes, let's try it out. -Fortunately Nextflow makes it easy to retrieve pipelines from correctly-formatted repositories without having to download anything manually. - -#### 1.2.1. Use `nextflow pull` - -Let's return to the terminal and run the following: - -```bash -nextflow pull nf-core/demo -``` - -??? success "Command output" - - ```console - Checking nf-core/demo ... - downloaded from https://github.com/nf-core/demo.git - revision: 32893afef8 [master] - ``` - -Nextflow does a `pull` of the pipeline code, meaning it downloads the full repository to your local drive. - -To be clear, you can do this with any Nextflow pipeline that is appropriately set up in GitHub, not just nf-core pipelines. -However nf-core is the largest open-source collection of Nextflow pipelines. - -#### 1.2.2. Use `nextflow list` - -You can get Nextflow to give you a list of what pipelines you have retrieved in this way: - -```bash -nextflow list -``` - -??? success "Command output" - - ```console - nf-core/demo - ``` - -You can try pulling a few other pipelines to see how they get listed when you have more than one. - -#### 1.2.3. Find where the pipeline was downloaded - -You'll notice that the files are not in your current work directory. -By default, Nextflow saves pulled pipelines under `$NXF_HOME/assets`. - -To find where a specific pipeline lives, ask Nextflow directly: - -```bash -nextflow info nf-core/demo -``` - -??? success "Command output" - - ```console - project name: nf-core/demo - repository : https://github.com/nf-core/demo - local path : /workspaces/.nextflow/assets/.repos/nf-core/demo - main script : main.nf - description : An nf-core demo pipeline - revisions : - TEMPLATE - bumper - dev - fix-nxfversion - manually-merge-3_0_2 - > master (default) - nf-core-template-merge-2.13.2.dev0 - nf-core-template-merge-2.14.0 - nf-core-template-merge-2.14.1 - nf-core-template-merge-3.0.0 - nf-core-template-merge-3.0.1 - nf-core-template-merge-3.0.2 - nf-core-template-merge-3.1.0 - nf-core-template-merge-3.1.2 - nf-core-template-merge-3.2.0 - nf-core-template-merge-3.2.1 - nf-core-template-merge-3.3.1 - nf-core-template-merge-3.3.2 - nf-core-template-merge-4.0.0 - 1.0.0 [t] - 1.0.1 [t] - 1.0.2 [t] - 1.1.0 [t] - > 1.2.0 [t] - ``` - -!!! info - - The full path may differ on your system if you're not using our training environment. - -Nextflow keeps the downloaded source code intentionally 'out of the way' on the principle that these pipelines should be used more like libraries than code that you would directly interact with. - -Under the hood, Nextflow stores each pulled pipeline as a git repository under `$NXF_HOME/assets/.repos/`, and checks out the code for each revision into a `clones//` subdirectory. -Because `.repos` is a hidden directory, a plain `tree -L 2 $NXF_HOME/assets/` will look empty. - -#### 1.2.4. Create a symlink to access the source code easily - -We're not going to look at the code in detail, but let's take a quick peek just to get a sense of what the overall organization looks like. - -To make it easier to browse the pipeline source code, create a symbolic link pointing at the checked-out copy of the pipeline: - -```bash -mkdir -p pipelines/nf-core -ln -s "$(echo $NXF_HOME/assets/.repos/nf-core/demo/clones/*/)" pipelines/nf-core/demo -``` - -This creates a shortcut so you can explore the code with `tree -L 2 pipelines/nf-core/demo` or open files directly. - -#### 1.2.5. Overview of the code organization - -You can either use `tree` or use the file explorer to find and open the `nf-core/demo` directory. - -```bash -tree -L 1 pipelines/nf-core/demo -``` - -??? abstract "Directory contents" - - ```console - pipelines/nf-core/demo - ├── assets - ├── CHANGELOG.md - ├── CITATIONS.md - ├── CODE_OF_CONDUCT.md - ├── conf - ├── docs - ├── LICENSE - ├── main.nf - ├── modules - ├── modules.json - ├── nextflow.config - ├── nextflow_schema.json - ├── nf-test.config - ├── README.md - ├── ro-crate-metadata.json - ├── subworkflows - ├── tests - ├── tower.yml - └── workflows - - 7 directories, 12 files - ``` - -As you can see, there's a lot going on in there, most of which you don't need to worry about. - -Briefly, let's note that at the top level, you can find a README file with summary information, as well as accessory files that summarize project information such as licensing, contribution guidelines, citation and code of conduct. -Detailed pipeline documentation is located in the `docs` directory. -All of this content is used to generate the web pages on the nf-core website programmatically, so they're always up to date with the code. - -For the rest, we can distinguish three functional groups of code files: - -1. Pipeline code components (`main.nf`, `workflows`, `subworkflows`, `modules`) -2. Pipeline configuration -3. Pipeline parameters / inputs and validation - -We won't go over the pipeline code components in this part of the course, but we will touch on elements of configuration and validation that are likely to be relevant to you as an end user of nf-core pipelines. - -!!! tip - - You can also browse any nf-core pipeline's source code on GitHub, e.g. [github.com/nf-core/demo](https://github.com/nf-core/demo). - Every nf-core pipeline follows the same directory layout, so once you know the structure, you can find configuration files, modules, and workflows for any pipeline the same way. - -For now, on to running the pipeline! - -### Takeaway - -You now know how to find a pipeline via the nf-core website and retrieve a local copy of the source code. - -### What's next? - -Learn how to try out an nf-core pipeline with minimal effort. - ---- - -## 2. Try out the pipeline with its test profile - -Conveniently, every nf-core pipeline comes with a test profile. -This is a minimal set of configuration settings for the pipeline to run using a small test dataset hosted in the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. -It's a great way to quickly try out a pipeline at small scale. - -!!! tip - - Nextflow's configuration profile system allows you to easily switch between different container engines or execution environments. - For more details, see [Hello Nextflow Part 6: Configuration](../hello_nextflow/06_hello_config.md). - -### 2.1. Examine the test profile - -It's good practice to check what a pipeline's test profile specifies before running it. -The `test` profile for `nf-core/demo` lives in the configuration file `conf/test.config`. -You can find it locally inside the pipeline source that `nextflow pull` downloaded, via the `pipelines` symlink created in section 1.2.4: - -```bash -code pipelines/nf-core/demo/conf/test.config -``` - -Here is the content of that file: - -```groovy title="conf/test.config" linenums="1" hl_lines="8 26" -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Nextflow config file for running minimal tests -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Defines input files and everything required to run a fast and simple pipeline test. - - Use as follows: - nextflow run nf-core/demo -profile test, --outdir - ----------------------------------------------------------------------------------------- -*/ - -process { - resourceLimits = [ - cpus: 2, - memory: '4.GB', - time: '1.h', - ] -} - -params { - config_profile_name = 'Test profile' - config_profile_description = 'Minimal test dataset to check pipeline function' - - // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' -} -``` - -You'll notice right away that the comment block at the top includes a usage example showing how to run the pipeline with this test profile. - -```groovy title="conf/test.config" linenums="7" - Use as follows: - nextflow run nf-core/demo -profile test, --outdir -``` - -The only things we need to supply are what's shown between carets in the example command: `` and ``. - -As a reminder, `` refers to the choice of container system. All nf-core pipelines are designed to be usable with containers (Docker, Singularity, etc.) to ensure reproducibility and eliminate software installation issues. -So we'll need to specify whether we want to use Docker or Singularity to test the pipeline. - -The `--outdir ` part refers to the directory where Nextflow will write the pipeline's outputs. -We need to provide a name for it, which we can just make up. -If it does not exist already, Nextflow will create it for us at runtime. - -Moving on to the section after the comment block, the test profile shows us what has been pre-configured for testing: most notably, the `input` parameter is already set to point to a test dataset, so we don't need to provide our own data. -If you follow the link to the pre-configured input, you'll see it is a csv file containing sample identifiers and file paths for several experimental samples. - -```csv title="samplesheet_test_illumina_amplicon.csv" -sample,fastq_1,fastq_2 -SAMPLE1_PE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R2.fastq.gz -SAMPLE2_PE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R2.fastq.gz -SAMPLE3_SE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R1.fastq.gz, -SAMPLE3_SE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R1.fastq.gz, -``` - -This is called a samplesheet, and is the most common form of input to nf-core pipelines. -Don't worry if you're not familiar with the data formats and types, it's not important for what follows. - -We now have everything we need to try out the pipeline. - -### 2.2. Run the pipeline - -As noted above, we can use the example testing command almost as-is; we just need to specify what software packaging to use, and what to name the output directory. -Here we'll use Docker for the container system and `demo-results`, respectively. - -With that, we can run the test command: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Downloading plugin nf-schema@2.7.2 - Launching `https://github.com/nf-core/demo` [cranky_curry] revision: 32893afef8 [master] - - - ------------------------------------------------------ - ,--./,-. - ___ __ __ __ ___ /,-._.--~' - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' - nf-core/demo 1.2.0 - ------------------------------------------------------ - - Input/output options - input : https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv - outdir : demo-results - - Institutional config options - config_profile_name : Test profile - config_profile_description: Minimal test dataset to check pipeline function - - Generic options - trace_report_suffix : 2026-07-03_21-31-35 - - Core Nextflow options - revision : master - runName : cranky_curry - containerEngine : docker - launchDir : /workspaces/training/hello-nf-core - workDir : /workspaces/training/hello-nf-core/work - projectDir : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2 - userName : root - profile : docker,test - configFiles : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2/nextflow.config - - !! Only displaying parameters that differ from the pipeline defaults !! - ------------------------------------------------------ - - * The pipeline - https://doi.org/10.5281/zenodo.12192442 - - * The nf-core framework - https://doi.org/10.1038/s41587-020-0439-x - - * Software dependencies - https://github.com/nf-core/demo/blob/master/CITATIONS.md - - executor > local (8) - [ca/5b0f3e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ - [b7/cb6812] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE3_SE) [100%] 3 of 3 ✔ - [ff/6ebd98] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ - [09/bbd1b4] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ - -[nf-core/demo] Pipeline completed successfully- - ``` - -If your output matches that, congratulations! You've just run your first nf-core pipeline. - -You'll notice that there is a lot more console output than when you run a basic Nextflow pipeline. -There's a header that includes a summary of the pipeline's version, inputs and outputs, and a few elements of configuration. - -!!! info - - Your output will show different timestamps, execution names, and file paths, but the overall structure and process execution should be similar. - -Notice the line near the top of the output: - -```console -Launching `https://github.com/nf-core/demo` [cranky_curry] revision: 32893afef8 [master] -``` - -This tells you which revision of the pipeline was used. -Because we did not specify a version, Nextflow used the latest commit on `master`. -For reproducible runs, you should pin a specific release using the `-r` flag: - -```bash -nextflow run nf-core/demo -r 1.2.0 -profile docker,test --outdir demo-results -``` - -This ensures that the same pipeline code is used every time, regardless of new commits or releases. -For this training we omit `-r` for simplicity, but in production you should always specify it. - -Moving on to the execution output, let's have a look at the lines that tell us what processes were run: - -```console -executor > local (8) -[ca/5b0f3e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ -[b7/cb6812] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE3_SE) [100%] 3 of 3 ✔ -[ff/6ebd98] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ -[09/bbd1b4] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ --[nf-core/demo] Pipeline completed successfully- -``` - -This tells us that four processes were run, corresponding to the four tools shown in the pipeline documentation page on the nf-core website: `FASTQC`, `SEQTK_TRIM`, `MULTIQC` and `COWPY`. - -The full process names as shown here, such as `NFCORE_DEMO:DEMO:MULTIQC`, are longer than what you may have seen in the introductory Hello Nextflow material. -These include the names of their parent workflows and reflect the modularity of the pipeline code. -We'll go into more detail about that in Part 2 of this course. - -### 2.3. Examine the pipeline's outputs - -Finally, let's have a look at the `demo-results` directory produced by the pipeline. - -```bash -tree -L 2 demo-results -``` - -??? abstract "Directory contents" - - ```console - demo-results - ├── cowpy - │ └── cowpy.txt - ├── fastqc - │ ├── SAMPLE1_PE - │ ├── SAMPLE2_PE - │ └── SAMPLE3_SE - ├── fq - │ ├── SAMPLE1_PE - │ ├── SAMPLE2_PE - │ └── SAMPLE3_SE - ├── multiqc - │ ├── multiqc_data - │ └── multiqc_report.html - └── pipeline_info - ├── execution_report_2026-07-03_21-31-35.html - ├── execution_timeline_2026-07-03_21-31-35.html - ├── execution_trace_2026-07-03_21-31-35.txt - ├── nf_core_demo_software_mqc_versions.yml - ├── params_2026-07-03_21-31-43.json - └── pipeline_dag_2026-07-03_21-31-35.html - - 12 directories, 8 files - ``` - -That might seem like a lot. -To learn more about the `nf-core/demo` pipeline's outputs, check out its [documentation page](https://nf-co.re/demo/1.2.0/docs/output/). - -At this stage, what's important to observe is that the results are organized by module, and there is additionally a directory called `pipeline_info` containing various timestamped reports about the pipeline execution. - -For example, the `execution_timeline_*` file shows you what processes were run, in what order and how long they took to run: - -![execution timeline report](./img/execution_timeline.png) - -!!! info - - Here the tasks were not run in parallel because we are running on a minimalist machine in Github Codespaces. - To see these run in parallel, try increasing the CPU allocation of your codespace and the resource limits in the test configuration. - -These reports are generated automatically for all nf-core pipelines. - -### Takeaway - -You know how to run an nf-core pipeline using its built-in test profile and where to find its outputs. - -### What's next? - -Learn how to configure the pipeline to customize its execution. - ---- - -## 3. Configure pipeline execution - -As explained in [Hello Config](../hello_nextflow/06_hello_config.md), we want to be able to change what data our pipeline will run on and how it will run without changing the pipeline code itself. -To that end, Nextflow supports multiple ways of controlling pipeline configuration, which can be a bit overwhelming. - -The nf-core project specifies conventions for organizing configuration elements, distinguishing two kinds of configuration at the top level: **pipeline parameters** and **configuration** in the strict sense. - -- **Pipeline parameters** (set through the `params` system) typically include things like input files, tool behavior flags and analysis parameters. -- **Configuration** in the strict sense refers to the logistics of how the pipeline gets run, i.e. the executor, compute resource allocations and so on. - -
- --8<-- "docs/en/docs/hello_nf-core/img/params_vs_config.excalidraw.svg" -
- -Let's start by tackling pipeline parameters, then we'll look at configuration in the strict sense. - -### 3.1. Pipeline parameters - -For all nf-core pipelines, you can obtain a full list of pipeline parameters directly from the command line by using the `--help` flag, which is itself a pipeline parameter. - -#### 3.1.1. Get the list of parameters with `--help` - -Run the help command for the demo pipeline: - -```bash -nextflow run nf-core/demo --help -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `https://github.com/nf-core/demo` [adoring_meucci] revision: 32893afef8 [master] - - - ------------------------------------------------------ - ,--./,-. - ___ __ __ __ ___ /,-._.--~' - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' - nf-core/demo 1.2.0 - ------------------------------------------------------ - Typical pipeline command: - - nextflow run nf-core/demo -profile --input samplesheet.csv --outdir - - Input/output options - --input [string] Path to a metadata file containing information about the samples in the experiment. - --outdir [string] The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure. - - --email [string] Email address for completion summary. - --multiqc_title [string] MultiQC report title. Printed as page header, used for filename if not otherwise specified. - - Reference genome options - --genome [string] Name of iGenomes reference. - --fasta [string] Path to FASTA genome file. - - Process skipping options - --skip_trim [boolean] Skip trimming fastq files with seqtk - - Generic options - --multiqc_methods_description [string] Custom MultiQC yaml file containing HTML including a methods description. - --help [boolean, string] Display the help message. - --help_full [boolean] Display the full detailed help message. - --show_hidden [boolean] Display hidden parameters in the help message (only works when --help or --help_full are provided). - !! Hiding 19 param(s), use the `--showHidden` parameter to show them !! - ------------------------------------------------------ - - * The pipeline - https://doi.org/10.5281/zenodo.12192442 - - * The nf-core framework - https://doi.org/10.1038/s41587-020-0439-x - - * Software dependencies - https://github.com/nf-core/demo/blob/master/CITATIONS.md - ``` - -As you can see, the output groups parameters into categories (Input/output options, Reference genome options, etc.) with types and descriptions for each one. - -This categorization is determined by a schema file, which is covered further below. -In plain Nextflow pipelines, `--help` only works if the developer implemented it manually. - -!!! tip - - Use `--help --show_hidden` to see additional parameters that are hidden by default, such as `--publish_dir_mode` or `--monochrome_logs`. - -#### 3.1.2. Set parameter values - -As covered in [Hello Config](../hello_nextflow/06_hello_config.md), you can set parameter values on the command line with `--param_name` or collect a set of parameters in a YAML file and pass it with `-params-file`. -Both approaches work the same way with nf-core pipelines. - -For example, to skip the trimming step, we want to set the boolean parameter `skip_trim` to `true`. -A params file called `my_params.yml` is provided in your working directory with that value already set: - -```yaml title="my_params.yml" -skip_trim: true -``` - -Pass it with `-params-file`: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results-notrim -params-file my_params.yml -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `https://github.com/nf-core/demo` [focused_heisenberg] revision: 32893afef8 [master] - - - ------------------------------------------------------ - ,--./,-. - ___ __ __ __ ___ /,-._.--~' - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' - nf-core/demo 1.2.0 - ------------------------------------------------------ - - Input/output options - input : https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv - outdir : demo-results-notrim - - Process skipping options - skip_trim : true - - Institutional config options - config_profile_name : Test profile - config_profile_description: Minimal test dataset to check pipeline function - - Generic options - trace_report_suffix : 2026-07-03_22-08-47 - - Core Nextflow options - revision : master - runName : focused_heisenberg - containerEngine : docker - launchDir : /workspaces/training/hello-nf-core - workDir : /workspaces/training/hello-nf-core/work - projectDir : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2 - userName : root - profile : docker,test - configFiles : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2/nextflow.config - - !! Only displaying parameters that differ from the pipeline defaults !! - ------------------------------------------------------ - - * The pipeline - https://doi.org/10.5281/zenodo.12192442 - - * The nf-core framework - https://doi.org/10.1038/s41587-020-0439-x - - * Software dependencies - https://github.com/nf-core/demo/blob/master/CITATIONS.md - - executor > local (5) - [7a/f3599e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ - [b0/2f0bdc] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ - [c3/3c2278] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ - -[nf-core/demo] Pipeline completed successfully- - ``` - -The `SEQTK_TRIM` process no longer appears in the output. - -!!! warning "Important limitations about parameter inputs" - - **Setting boolean parameters on the command line** - - Starting with Nextflow version 26.04, all values supplied on the command line are typed as strings. - For a boolean parameter like `skip_trim`, passing it as a bare flag (`--skip_trim`) or as `--skip_trim true` is evaluated as the **string** `"true"`, which fails schema validation: - - ```console - * --skip_trim (true): Value is [string] but should be [boolean] - ``` - - To set a boolean parameter to a genuine `true`/`false` value, use a `-params-file` as shown above, or set it in a config file. - String, integer and file-path parameters are unaffected and can still be set directly on the command line. - This course uses this pattern throughout for boolean parameters. - - **Using custom configuration files** - - Although it is technically possible to set pipeline parameters in a custom configuration file passed with `-c`, this may not override defaults already set in the pipeline's own `nextflow.config`, depending on Nextflow's configuration precedence rules. - Using `--param_name` on the command line or `-params-file` is more reliable, as these always take precedence. - - As a rule of thumb: If it appears in the `--help` output, set it via the command line or a params file rather than a config file. - -#### 3.1.3. Parameter validation - -Fun fact: the `--help` command works for all nf-core pipelines because the nf-core project requires developers to define all pipeline parameters formally in a JSON schema file (`nextflow_schema.json`). -This schema records each parameter's type, description, default value, and grouping. - -In addition to powering the `--help` output, the schema file also enables automated validation at launch time. -This means that Nextflow can check that every parameter you pass exists and has been given an appropriate value (of appropriate type, within the allowed range of values etc). - -We cover this in more detail in [Part 5: Input Validation](05_input_validation.md), but you can already see it in action by giving the demo pipeline some invalid parameter input. - -##### 3.1.3.1. Unrecognized parameters - -Try passing a parameter that does not exist: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results --foobar "invalid" -``` - -The console output includes a warning: - -```console -WARN: The following invalid input values have been detected: - -* --foobar: invalid -``` - -The pipeline still runs, but the warning alerts you right away that `--foobar` is not a recognized parameter. -This is meant to draw your attention to non-breaking typos, like `--outDir` being used instead of `--outdir`, which can help you avoid wasting time and compute. - -##### 3.1.3.2. Invalid parameter values - -Validation also checks parameter **values**. -The `--skip_trim` parameter is a boolean flag, so passing a string value causes the pipeline to fail immediately: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results --skip_trim yes -``` - -```console -ERROR ~ Validation of pipeline parameters failed! - - -- Check '.nextflow.log' file for details -The following invalid input values have been detected: - -* --skip_trim (yes): Value is [string] but should be [boolean] -``` - -The pipeline stops before any processes run, saving you from a failed or incorrect execution. -As noted in section 3.1.2, boolean parameters should be set to a genuine `true`/`false` value in a params file rather than passed on the command line, since command-line values are typed as strings. - -#### 3.1.4. Input validation - -The same validation logic can also be used to check the validity of input files. -For example, if a pipeline expects a samplesheet as its main data input (which is the case of many if not most nf-core pipelines), the developer can provide an input schema (distinct from the parameters schema) describing how the input file should be structured. - -Then, at runtime, Nextflow can check that the input file provided is valid. - -We also cover this in more detail in [Part 5: Input Validation](05_input_validation.md), but you can already see it in action by giving the demo pipeline an invalid input samplesheet. - -The `nf-core/demo` pipeline expects a CSV file with columns `sample`, `fastq_1`, and `fastq_2`. -This is defined in a schema file (`assets/schema_input.json`) that specifies the expected structure, column types, and constraints. - -??? abstract "Schema file for inputs" - - ```json title="assets/schema_input.json" - { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/nf-core/demo/master/assets/schema_input.json", - "title": "nf-core/demo pipeline - params.input schema", - "description": "Schema for the file provided with params.input", - "type": "array", - "items": { - "type": "object", - "properties": { - "sample": { - "type": "string", - "pattern": "^\\S+$", - "errorMessage": "Sample name must be provided and cannot contain spaces", - "meta": ["id"] - }, - "fastq_1": { - "type": "string", - "format": "file-path", - "exists": true, - "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", - "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" - }, - "fastq_2": { - "type": "string", - "format": "file-path", - "exists": true, - "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", - "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" - } - }, - "required": ["sample", "fastq_1"] - } - } - ``` - -The schema specifies that `sample` and `fastq_1` are required, while `fastq_2` is optional (supporting both paired-end and single-end data). -File paths are validated for existence and extension pattern. - -To demonstrate this, we provide a malformed samplesheet called `malformed_samplesheet.csv` in your working directory: - -```csv title="malformed_samplesheet.csv" -sample,fastq_2 -SAMPLE1,/not/a/real/file.fastq.gz -``` - -This samplesheet is missing the required `fastq_1` column and has a non-existent file path in `fastq_2`. - -Run the demo pipeline using `malformed_samplesheet.csv` as the input: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results --input malformed_samplesheet.csv -``` - -```console -ERROR ~ Validation of pipeline parameters failed! - - -- Check '.nextflow.log' file for details -The following invalid input values have been detected: - -* --input (malformed_samplesheet.csv): Validation of file failed: - -> Entry 1: Error for field 'fastq_2' (/not/a/real/file.fastq.gz): the file or directory - '/not/a/real/file.fastq.gz' does not exist (FastQ file for reads 2 cannot contain spaces - and must have extension '.fq.gz' or '.fastq.gz') - -> Entry 1: Missing required field(s): fastq_1 -``` - -As you can see, the pipeline fails immediately and reports **all** validation errors at once. -nf-schema does not stop at the first error — it collects every problem and lists them together, so you can fix everything in one go rather than discovering issues one by one. - -Each error identifies the exact entry and field that caused the problem, so you can fix your samplesheet then re-launch the pipeline with confidence that it's not going to fail at some later point when Nextflow actually goes to access the file path. - -For developers, all of this is covered in more detail in [Part 5](./05_input_validation.md) of this course. - -### 3.2. Configuration - -Configuration in the strict sense controls **how** the pipeline runs: resource allocation, tool-specific arguments, where jobs execute, and which software packaging system to use. - -nf-core pipelines include default configuration in `nextflow.config` and the `conf/` directory. -Before overriding anything, it helps to know where the defaults live. - -You already saw in section 2.1 that the pipeline source code lives under `$NXF_HOME/assets`. -Using the `pipelines` symlink from section 1.2.4, list the config files to see what's available: - -```bash -ls pipelines/nf-core/demo/conf/ -``` - -```console -base.config -containers_conda_lock_files_amd64.config -containers_conda_lock_files_arm64.config -containers_docker_amd64.config -containers_docker_arm64.config -containers_singularity_https_amd64.config -containers_singularity_https_arm64.config -containers_singularity_oras_amd64.config -containers_singularity_oras_arm64.config -igenomes.config -igenomes_ignored.config -modules.config -test.config -test_full.config -``` - -
---8<-- "docs/en/docs/hello_nf-core/img/nfcore_config_files.excalidraw.svg" -
- -The most important configuration files are: - -- **`conf/base.config`**: Defines resource labels (`process_low`, `process_medium`, `process_high`) that assign CPUs, memory, and time to processes. When you see a process using more resources than expected, this is where those defaults come from. -- **`conf/modules.config`**: Sets per-process tool arguments (`ext.args`) and output publishing settings (`publishDir`). Open this file to see what arguments each tool receives by default. -- **`conf/test.config`**: The test profile you used in section 2.1, which caps resources via `resourceLimits` and sets a test samplesheet. Activated with `-profile test`. - There is also a `conf/test_full.config` for running with a full-sized test dataset, useful for benchmarking. - -The central `nextflow.config` loads all of the above and sets the appropriate default values for everything. - -If you wish to modify any of the settings specified in these files, do not modify any of them files directly. -Instead, create your own config file and pass it with `-c`. -The values you specify will override the default values set in those other files. - -Let's try this in practice. - -#### 3.2.1. Customize process resources and tool arguments - -nf-core modules support two common types of configuration override: **resource allocation** (CPUs, memory, time) and **tool arguments** via `ext.args`. - -Many command-line tools have arguments that are not commonly enough used to be exposed as pipeline parameters. -The `ext.args` convention lets you pass these arguments to the underlying tool through a config file instead. - -The `custom.config` file provided in your working directory demonstrates both overrides: - -```groovy title="custom.config" linenums="1" -process { - withName: 'FASTQC' { - cpus = 2 - memory = 4.GB - } - withName: 'SEQTK_TRIM' { - ext.args = '-b 5' - } -} -``` - -The first block overrides `FASTQC` resource allocation. -By default, `FASTQC` uses the `process_medium` label from `base.config`, which allocates 6 CPUs and 36 GB of memory; here we cap it at 2 CPUs and 4 GB. - -The second block passes an extra argument to `SEQTK_TRIM` via `ext.args`. -The `-b 5` flag tells `seqtk trimfq` to trim 5 bases from the beginning of each read in addition to quality trimming. - -Run the pipeline with this config: - -```bash -nextflow run nf-core/demo -profile docker,test --outdir demo-results-custom -c custom.config -``` - -??? success "Command output" - - ```console - executor > local (8) - [95/b32876] NFCORE_DEMO:DEMO:FASTQC (SAMPLE1_PE) | 3 of 3 ✔ - [17/428668] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE1_PE) | 3 of 3 ✔ - [cf/85991a] NFCORE_DEMO:DEMO:COWPY | 1 of 1 ✔ - [3c/94a7a0] NFCORE_DEMO:DEMO:MULTIQC (demo) | 1 of 1 ✔ - -[nf-core/demo] Pipeline completed successfully- - ``` - -The `-c` flag adds your config on top of the pipeline's built-in configuration. - -To verify the `ext.args` override took effect, find the `SEQTK_TRIM` work directory hash from the run output (e.g. `work/17/428668...`) and check the `.command.sh` file inside it: - -```bash -cat work/17/428668/.command.sh -``` - -??? success "Command output" - - ```console - #!/usr/bin/env bash -e -u -o pipefail - printf "%s\n" sample1_R1.fastq.gz sample1_R2.fastq.gz | while read f; - do - seqtk \ - trimfq \ - -b 5 \ - $f \ - | gzip --no-name > SAMPLE1_PE_$(basename $f) - done - ... - ``` - -You should see `-b 5` in the `seqtk trimfq` command. - -One important thing to know about `ext.args`: if a module already has a default value set, your value will **completely replace** it rather than append to it. -For example, `FASTQC` has `ext.args = '--quiet'` set by default in `conf/modules.config`: - -```groovy title="conf/modules.config" linenums="21" hl_lines="2" - withName: FASTQC { - ext.args = '--quiet' - publishDir = [ - path: { "${params.outdir}/fastqc/${meta.id}" }, - mode: params.publish_dir_mode, - pattern: "*.{html,json}", - ] - } -``` - -If you set `ext.args = '--kmers 8'` for `FASTQC`, the `--quiet` flag will no longer be applied. -To keep both, set `ext.args = '--quiet --kmers 8'`. - -You should always check a module's default configuration before overriding `ext.args`. - -### Takeaway - -You know how to get help from an nf-core pipeline, set parameters and understand how they are validated, and customize configuration through config files. - -### What's next? - -If you just want to run nf-core pipelines, you're done! - -If you want to learn to develop your own pipelines according to nf-core standards, take a break, and move on to Part 2 when you're ready. You will learn to create your own nf-core compatible pipeline using the nf-core template-based tools. diff --git a/docs/en/docs/help.md b/docs/en/docs/help.md index 8739695abf..7e64548911 100644 --- a/docs/en/docs/help.md +++ b/docs/en/docs/help.md @@ -63,13 +63,3 @@ Here are the main options available depending on what you're looking for. [Get in touch:material-arrow-right:](https://seqera.io/demo/){ .md-button .md-button--primary .mt-1 } - ---- - -
- -![Seqera](assets/img/seqera_logo.png#only-light) - -![Seqera](assets/img/seqera_logo_dark.png#only-dark) - -
diff --git a/docs/en/docs/index.md b/docs/en/docs/index.md index 7c27187fec..7301a112d2 100644 --- a/docs/en/docs/index.md +++ b/docs/en/docs/index.md @@ -16,153 +16,158 @@ hide: **Welcome to the Nextflow community training portal!** - The training courses listed below are designed to be usable as a self-service resource. - You can work through them on your own at any time either in the web-based environment we provide via Github Codespaces or in your own environment. + Work through the courses below at your own pace, in our web-based environment or your own. + Each course is hands-on, with goal-oriented exercises you can complete independently. - [Explore the courses :material-arrow-right:](#catalog-of-nextflow-training-courses){ .md-button .md-button--primary .mt-1 } + [Explore the courses :material-arrow-down:](#catalog-of-nextflow-training-courses){ .md-button .md-button--primary .mt-1 } -- :material-information-outline:{ .lg .middle } __Additional information__ +- :material-account-group-outline:{ .lg .middle } __Training Events__ --- - ??? warning "Version compatibility" + **Looking for something beyond self-service?** - - **As of January 2026, all of our Nextflow training courses require Nextflow version 25.10.2 or later, with strict syntax activated, unless otherwise noted.** + Find structured training events, guidance for running your own trainings, and our open-source license and contribution policy. - For more information about version requirements and strict syntax, please see the [Nextflow docs migration guide](https://nextflow.io/docs/latest/strict-syntax.html). + [See training events :material-arrow-right:](training_events.md){ .md-button .md-button--secondary .mt-1 } - Older versions of the training material corresponding to prior syntax are available via the version selector in the menu bar of this webpage. + - ??? terminal "Environment options" +## Catalog of Nextflow training courses - We provide a web-based training environment where everything you need to take the training is preinstalled, available through Github Codespaces (requires a free GitHub account). +
- [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) +- :material-account:{ .lg .middle } __For users__ - If this does not suit your needs, please see the other [Environment options](./envsetup/index.md). + --- - ??? learning "Training events" + ### :material-play-circle:{.nextflow-primary} Run pipelines {.mt-1} - If you'd prefer to take Nextflow training as part of a structured event, there are many opportunities to do so. We recommend checking out the following options: + Learn to run existing pipelines without writing any code. - - **[Training Weeks]()** organized quarterly by the Community team - - **[Seqera Events](https://seqera.io/events/)** include in-person training events organized by Seqera (search for 'Seqera Sessions' and 'Nextflow Summit') - - **[Nextflow Ambassadors]()** organize events for their local community - - **[nf-core events](https://nf-co.re/events)** include community hackathons + ??? courses "**Nextflow Run:** Run pipelines with Nextflow" - ??? people "Information for trainers" + A fast-track introduction to running Nextflow pipelines that does not require understanding code. Covers launching pipelines, retrieving outputs, using containers, and configuring execution at a basic level. - If you are an instructor running your own trainings, you are welcome to use our materials directly from the training portal as long as you attribute proper credit. See 'Credits and contributions' below for details. + [View the training :material-arrow-right:](nextflow_run/index.md){ .md-button .md-button--secondary } - In addition, we'd love to hear from you on how we could better support your training efforts! Please contact us at [community@seqera.io](mailto:community@seqera.io) or on the community forum (see [Help](help.md) page). + ??? courses "**Use nf-core:** Find and run community-curated pipelines" - ??? licensing "Open-source license and contribution policy" + A fast-track introduction to finding, running, and configuring pipelines from the nf-core community project, starting with a minimal demo pipeline then scaling up to a production-scale analysis pipeline. - [![Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](assets/img/cc_by-nc-sa.svg){ align=right }](https://creativecommons.org/licenses/by-nc-sa/4.0/) + [View the training :material-arrow-right:](nfcore_use/index.md){ .md-button .md-button--secondary } - This training material is developed and maintained by [Seqera](https://seqera.io) and released under an open-source license ([CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)) for the benefit of the community. If you wish to use this material in a way that falls outside the scope of the license (note the limitations on commercial use and redistribution), please contact us at [community@seqera.io](mailto:community@seqera.io) to discuss your request. + ??? courses "**Scale with Seqera:** Launch and monitor pipelines at scale" - We welcome improvements, fixes and bug reports from the community. Every page has a :material-file-edit-outline: icon in the top right of the page linking to the code repository, where you can report issues or propose changes to the training source material via a pull request. See the `README.md` in the repository for more details. + A hands-on introduction to launching and monitoring Nextflow pipelines with Seqera Platform, from both the web interface and the command line. -
+ [View the training :material-arrow-right:](seqera_scale/index.md){ .md-button .md-button--secondary } -## Catalog of Nextflow training courses + --- -
+ ### :material-tune:{.nextflow-primary} Manage execution {.mt-1} -- :material-walk:{ .lg .middle } __Introductory track__ + Learn to manage pipeline execution effectively. + + ??? courses "**Execution Config:** Configure pipelines like a pro" + + A hands-on introduction to configuring Nextflow pipeline execution: adapting to different compute environments, controlling resource allocations and retries, and switching between preset configuration profiles. + + [View the training :material-arrow-right:](execution_config/index.md){ .md-button .md-button--secondary } + + !!! info compact "More topics coming" + + Performance tuning, HPC/cloud execution, and more are planned for this section. + Vote on what to cover next in our [short interest poll](https://seqera.typeform.com/to/JCs91e8v). + +- :material-code-tags:{ .lg .middle } __For developers__ --- - ### :material-compass:{.nextflow-primary} Nextflow for Newcomers {.mt-1} + ### :material-wrench:{.nextflow-primary} Write pipelines {.mt-1} - Domain-agnostic courses intended for those who are completely new to Nextflow. Each course consists of a series of training modules that are designed to help learners build up their skills progressively. + Learn to develop your own Nextflow pipelines. - ??? courses "**Hello Nextflow:** Learn to develop your own pipelines" + ??? courses "**Hello Nextflow:** Develop your own pipelines from scratch" This course covers the core components of the Nextflow language in enough detail to enable developing simple but fully functional pipelines, plus key elements of pipeline design, development and configuration practices. - [Start the Hello Nextflow training :material-arrow-right:](hello_nextflow/index.md){ .md-button .md-button--secondary } + [View the training :material-arrow-right:](hello_nextflow/index.md){ .md-button .md-button--secondary } - ??? courses "**Nextflow Run:** Learn to run existing pipelines" + ??? courses "**Build with nf-core:** Use the nf-core tools and rules" - A concise introduction to running and configuring Nextflow pipelines, based on the Hello Nextflow developer's course but with less focus on code. Covers execution, outputs, basic code structure, and configuration for different compute environments." + For Nextflow developers who wish to learn to develop [nf-core](https://nf-co.re/) compliant pipelines. + The course covers the structure of nf-core pipelines in enough detail to enable developing simple but fully functional pipelines that leverage the nf-core template and development best practices, as well as use existing nf-core modules. - [Start the Nextflow Run training :material-arrow-right:](nextflow_run/index.md){ .md-button .md-button--secondary } + [View the training :material-arrow-right:](nfcore_build/index.md){ .md-button .md-button--secondary } - --- + ??? catalog "**Side Quests:** Dive into advanced Nextflow topics" - ### :material-microscope:{.nextflow-primary} Nextflow for Science {.mt-1} - - Learn to apply the concepts and components presented in 'Hello Nextflow' to specific scientific use cases. + A collection of standalone mini-courses intended for Nextflow developers who wish to widen their range and/or deepen their skills on particular topics. + They are presented linearly but can be taken in any order (see dependencies in each mini-course overview). - ??? courses "**Nextflow for Genomics** (variant calling)" + [Browse the Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - For researchers who wish to learn how to develop their own genomics pipelines. The course uses a variant calling use case to demonstrate how to develop a simple but functional genomics pipeline. + --- - [Start the Nextflow for Genomics training :material-arrow-right:](nf4_science/genomics/index.md){ .md-button .md-button--secondary } + ### :material-microscope:{.nextflow-primary} Nextflow for Science {.mt-1} - ??? courses "**Nextflow for RNAseq** (bulk RNAseq)" + Learn to develop Nextflow pipelines for specific scientific applications. - For researchers who wish to learn how to develop their own RNAseq pipelines. The course uses a bulk RNAseq processing use case to demonstrate how to develop a simple but functional RNAseq pipeline. + ??? courses "**Genomics:** Develop a variant calling pipeline" - [Start the Nextflow for RNAseq training :material-arrow-right:](nf4_science/rnaseq/index.md){ .md-button .md-button--secondary } + A course for researchers who wish to learn how to develop their own genomics pipelines, using a variant calling use case to demonstrate essential Nextflow development patterns. - ??? courses "**Nextflow for Imaging** (spatial omics)" + [View the training :material-arrow-right:](nf4_science/genomics/index.md){ .md-button .md-button--secondary } - For researchers in imaging and spatial omics who wish to learn how to run and customize analysis pipelines. The course uses the nf-core/molkart pipeline to provide a biologically-relevant pipeline demonstrate how to run, configure, and manage inputs for Nextflow pipelines workflows. + ??? courses "**RNAseq:** Develop a bulk RNAseq processing pipeline" - [Start the Nextflow for Imaging training :material-arrow-right:](nf4_science/imaging/index.md){ .md-button .md-button--secondary } + A course for researchers who wish to learn how to develop their own RNAseq pipelines, using a bulk RNAseq processing use case to demonstrate essential Nextflow development patterns. -- :material-run:{ .lg .middle } __Advanced track__ + [View the training :material-arrow-right:](nf4_science/rnaseq/index.md){ .md-button .md-button--secondary } - --- + ??? courses "**Bioimaging:** Run and configure imaging pipelines" - ### :material-bridge:{.nextflow-primary} From Nextflow to nf-core {.mt-1} + A course for researchers who wish to learn how to run and configure bioimaging pipelines, using nf-core/molkart to demonstrate essential Nextflow usage patterns. - Learn to utilize code and best practices from the [nf-core](https://nf-co.re/) community project. + [View the training :material-arrow-right:](nf4_science/imaging/index.md){ .md-button .md-button--secondary } - These courses help you go from Nextflow fundamentals to nf-core best practices. - Understand how and why the nf-core community builds pipelines, and how you can contribute and reuse these techniques. +
- ??? courses "**Hello nf-core:** Get started with nf-core" +## Setup & Help - For developers who wish to learn run and develop [nf-core](https://nf-co.re/) compliant pipelines. The course covers the structure of nf-core pipelines in enough detail to enable developing simple but fully functional pipelines that follow the nf-core template and development best practices, as well as use existing nf-core modules. +
- [Start the Hello nf-core training :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } +- :material-cog-outline:{ .lg .middle } __Training Environment__ --- - ### :material-rocket-launch:{.nextflow-primary} Advanced Nextflow Training {.mt-1} + Options for setting up your environment for the Nextflow trainings. - Learn advanced concepts and mechanisms for developing and deploying Nextflow pipelines to address real-world use cases. + [View the training environments :material-arrow-right:](envsetup/index.md){ .md-button .md-button--secondary } - ??? courses "**Side Quests:** Deep dives into standalone topics" +- :material-tag-outline:{ .lg .middle } __Nextflow versions__ - Standalone mini-courses intended for Nextflow developers who wish to widen their range and/or deepen their skills on particular topics. They are presented linearly but can be taken in any order (see dependencies in each mini-course overview). - - [Browse the Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } + --- - ??? courses "**Training Collections:** Recommended learning paths through the Side Quests" + Understanding and managing the evolution of Nextflow's syntax versions. - Training Collections combine multiple Side Quests in order to provide a comprehensive learning experience around a particular theme or use case. + [Check version requirements :material-arrow-right:](info/nxf_versions.md){ .md-button .md-button--secondary } - [Browse the Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } +- :material-file-code-outline:{ .lg .middle } __The Hello pipeline__ -
+ --- -!!! info "Looking for archived training materials?" + Recap of what the Hello pipeline does and how it is structured. - Older training materials (Fundamentals Training, Advanced Training, and other experimental courses) have been removed from the training portal as they are incompatible with Nextflow 3.0 strict syntax. - If you need access to these materials, they are available in the [git history](https://github.com/nextflow-io/training) prior to January 2026. + [Read the recap :material-arrow-right:](info/hello_pipeline.md){ .md-button .md-button--secondary } ---- +- :material-lifebuoy:{ .lg .middle } __Getting help__ -
+ --- -![Seqera](assets/img/seqera_logo.png#only-light) + Helpful resources when you have a problem with Nextflow training. -![Seqera](assets/img/seqera_logo_dark.png#only-dark) + [Find help :material-arrow-right:](help.md){ .md-button .md-button--secondary }
diff --git a/docs/en/docs/info/hello_pipeline.md b/docs/en/docs/info/hello_pipeline.md index 85d10e5dd4..a1ffdbd8dd 100644 --- a/docs/en/docs/info/hello_pipeline.md +++ b/docs/en/docs/info/hello_pipeline.md @@ -67,13 +67,3 @@ The results are published to a directory called `results/`, and the final output ``` You may encounter some variations in the specifics depending on the course the pipeline is featured in. - ---- - -
- -![Seqera](../assets/img/seqera_logo.png#only-light) - -![Seqera](../assets/img/seqera_logo_dark.png#only-dark) - -
diff --git a/docs/en/docs/info/nxf_versions.md b/docs/en/docs/info/nxf_versions.md index 8e69b27f23..bf41602d8f 100644 --- a/docs/en/docs/info/nxf_versions.md +++ b/docs/en/docs/info/nxf_versions.md @@ -94,13 +94,3 @@ See the CLI reference for [`lint`](https://www.nextflow.io/docs/latest/reference We hope this will be helpful. If you need help, reach out on Slack or on the forum. - ---- - -
- -![Seqera](../assets/img/seqera_logo.png#only-light) - -![Seqera](../assets/img/seqera_logo_dark.png#only-dark) - -
diff --git a/docs/en/docs/nextflow_run/00_orientation.md b/docs/en/docs/nextflow_run/00_orientation.md index e2cfbae68d..35445e7671 100644 --- a/docs/en/docs/nextflow_run/00_orientation.md +++ b/docs/en/docs/nextflow_run/00_orientation.md @@ -14,30 +14,29 @@ You will need to keep these instructions open in parallel to work through the co This training environment contains all the software, code and data necessary to work through the training course, so you don't need to install anything yourself. The codespace is set up with a VSCode interface, which includes a filesystem explorer, a code editor and a terminal shell. -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. +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. If you are working through this course by yourself, please acquaint yourself with the [environment basics](../envsetup/01_setup.md) for further details. ### Version requirements -This training works with Nextflow 25.10.2 or later **with the v2 syntax parser ENABLED**. +This course requires Nextflow 25.10.2 or later, with the v2 syntax parser enabled (the default in 25.10+). If you are using a local or custom environment, please make sure you are using the correct settings as documented [here](../info/nxf_versions.md). ## Get ready to work -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. +Once your codespace is running, there are two things to do before diving in: set your working directory, and take a look at the materials provided. ### Set the working directory -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 `nextflow-run/` directory. - -Change directory now by running this command in the terminal: +By default, the codespace opens at the root of all training courses. +For this course, change to the `nextflow-run/` directory: ```bash cd nextflow-run/ ``` -You can set VSCode to focus on this directory, so that only the relevant files show in the file explorer sidebar: +Then set VSCode to focus on this directory, so only the relevant files appear in the file explorer sidebar: ```bash code . @@ -51,16 +50,10 @@ code . cd /workspaces/training/nextflow-run ``` -Now let's have a look at the contents. - ### Explore the materials provided -You can explore the contents of this directory by using the file explorer on the left-hand side of the training workspace. -Alternatively, you can use the `tree` command. - -Throughout the course, we use the output of `tree` to represent directory structure and contents in a readable form, sometimes with minor modifications for clarity. - -Here we generate a table of contents to the second level down: +You can explore the course materials using the file explorer on the left, or with the `tree` command. +Run the following from the terminal to see the full structure: ```bash tree . -L 2 @@ -71,41 +64,26 @@ tree . -L 2 ```console . ├── 1-hello.nf - ├── 2a-inputs.nf - ├── 2b-multistep.nf - ├── 2c-modules.nf - ├── 2d-container.nf - ├── 3-main.nf + ├── 2-inputs.nf ├── data + │ ├── greetings-extended.csv │ └── greetings.csv + ├── main.nf ├── modules │ ├── collectGreetings.nf │ ├── convertToUpper.nf │ ├── cowpy.nf │ └── sayHello.nf - ├── nextflow.config - ├── solutions - │ ├── 3-main.nf - │ ├── modules - │ └── nextflow.config - ├── test-params.json - └── test-params.yaml + └── nextflow.config ``` -Click on the colored box to expand the section and view its contents. -We use collapsible sections like this to display expected command output as well as directory and file contents in a concise way. - -- **The `.nf` files** are workflow scripts that are numbered based on what part of the course they're used in. - -- **The file `nextflow.config`** is a configuration file that sets minimal environment properties. - You can ignore it for now. +The **`.nf` files** are workflow scripts of increasing complexity, used in that order through the course. -- **The file `greetings.csv`** under `data/` contains input data we'll use in most of the course. It is described in Part 2 (Run pipelines), when we introduce it for the first time. +The **`data/`** directory contains the CSV input files we'll use starting in section 2. -- **The `test-params.*`** files are configuration files we'll use in Part 3 (Configuration). You can ignore them for now. +The **`modules/`** directory contains the process definitions used by `main.nf`. -- **The `solutions` directory** contains the final state of the workflow and its accessory files (config and modules) that result from completing the course. - They are intended to be used as a reference to check your work and troubleshoot any issues. +The **`nextflow.config`** file is a configuration file that sets minimal environment properties. You can ignore it for now; we'll go over it in section 4. ## Readiness checklist @@ -117,4 +95,4 @@ Think you're ready to dive in? If you can check all the boxes, you're good to go. -**To continue to [Part 1: Run Basic operations](./01_basics.md), click on the arrow in the bottom right corner of this page.** +**To continue to [Part 1: Run Nextflow](./01_run_nextflow.md), click on the arrow in the bottom right corner of this page.** diff --git a/docs/en/docs/nextflow_run/01_basics.md b/docs/en/docs/nextflow_run/01_basics.md deleted file mode 100644 index a110cfba9e..0000000000 --- a/docs/en/docs/nextflow_run/01_basics.md +++ /dev/null @@ -1,863 +0,0 @@ -# Part 1: Run basic operations - -In this first part of the Nextflow Run training course, we ease into the topic with a very basic domain-agnostic Hello World example, which we'll use to demonstrate essential operations and point out the corresponding Nextflow code components. - -??? info "What is a Hello World example?" - - A "Hello World!" is a minimalist example that is meant to demonstrate the basic syntax and structure of a programming language or software framework. - The example typically consists of printing the phrase "Hello, World!" to the output device, such as the console or terminal, or writing it to a file. - ---- - -## 1. Run a Hello World directly - -Let's demonstrate this concept with a simple command that we run directly in the terminal, to show what it does before we wrap it in Nextflow. - -!!! tip - - Remember that you should now be inside the `nextflow-run/` directory as described on the [Getting Started](00_orientation.md) page. - -### 1.1. Make the terminal say hello - -Run the following command in your terminal. - -```bash -echo 'Hello World!' -``` - -??? success "Command output" - - ```console - Hello World! - ``` - -This outputs the text 'Hello World' right there in the terminal. - -### 1.2. Write the output to a file - -Running pipelines mostly involves reading data from files and writing results to other files, so let's modify the command to write the text output to a file to make the example a bit more relevant. - -```bash -echo 'Hello World!' > output.txt -``` - -??? success "Command output" - - ```console - - ``` - -This does not output anything to the terminal. - -### 1.3. Find the output - -The text 'Hello World' should now be in the output file we specified, named `output.txt`. -You can open it in the file explorer or from the command line using the `cat` utility, for example. - -??? abstract "File contents" - - ```console title="output.txt" linenums="1" - Hello World! - ``` - -This is what we're going to try to replicate with our very first Nextflow workflow. - -### Takeaway - -You now know how to run a simple command in the terminal that outputs some text, and optionally, how to make it write the output to a file. - -### What's next? - -Find out what it takes to run a Nextflow workflow that achieves the same result. - ---- - -## 2. Run the workflow - -We provide you with a workflow script named `1-hello.nf` that takes an input greeting via a command-line argument named `--input` and produces a text file containing that greeting. - -We're not going to look at the code yet; first let's see what it looks like to run it. - -### 2.1. Launch the workflow and monitor execution - -In the terminal, run the following command. - -```bash -nextflow run 1-hello.nf --input 'Hello World!' -``` - -??? success "Command output" - - ```console hl_lines="6" - N E X T F L O W ~ version 26.04.4 - - Launching `1-hello.nf` [goofy_torvalds] revision: c33d41f479 - - executor > local (1) - [a3/7be2fa] sayHello | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: 1-hello/output.txt - ``` - -If your console output looks something like that, then congratulations, you just ran your first Nextflow workflow! - -??? question "If it didn't work" - - If that failed with an error that looks like this: - - ``` - Parameter `input` was specified on the command line or params file but is not declared in the script or config - - -- Check script '1-hello.nf' at line: 23 or see '.nextflow.log' file for more details - ``` - - Then you're probably using the older v1 Nextflow language parser. - This was mentioned at the start of the course, but maybe you missed it. - Check the [Nextflow versions](../info/nxf_versions.md) help material. - - The v2 parser is the default from Nextflow 26.04 onward, so you will only see this on earlier versions. - On a version before 26.04 you need to enable the v2 language parser: - - ```bash - export NXF_SYNTAX_PARSER=v2 - ``` - -The most important part here is the highlighted line: - -```console -[a3/7be2fa] sayHello | 1 of 1 ✔ -``` - -This tells us that the `sayHello` process was successfully executed once (`1 of 1 ✔`). - -That's great, but you may be wondering: where is the output? - -### 2.2. Find the output file in the `results` directory - -This workflow is configured to publish its output to a results directory. -If you look at your current directory, you will see that when you ran the workflow, Nextflow created a new directory called `results`, as well as a subdirectory called `1-hello` under that, containing a file called `output.txt`. - -```console title="results/" -results -└── 1-hello - └── output.txt -``` - -Open the file; the contents should match the string you specified on the command line. - -```console title="results/1-hello/output.txt" linenums="1" -Hello World! -``` - -That's great, our workflow did what it was supposed to do! - -### 2.3. Save the results to a different directory - -By default, Nextflow will save pipeline outputs to a directory called `results` in your current path. -To change where your files are published to, use the `-output-dir` CLI flag (or `-o` for short) - -!!! danger - - Note that `--input` has two hyphens and `-output-dir` has one! - This is because `--input` is a pipeline _parameter_ and `-output-dir` is a core Nextflow CLI flag. - More on these later. - -```bash -nextflow run 1-hello.nf --input 'Hello World!' -output-dir hello_results -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `1-hello.nf` [hungry_celsius] revision: f048d6ea78 - - executor > local (1) - [a3/1e1535] sayHello | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/hello_results - - first_output: 1-hello/output.txt - ``` - -You should see that your outputs are now published to a directory called `hello_results` instead of `results`: - -```console title="hello_results/" -hello_results -└── 1-hello - └── output.txt -``` - -The files within this directory are just the same as before, it's just the top-level directory that's different. -However, be aware in both cases that the 'published' result is a copy (or in some cases a symbolic link) of the actual output produced by Nextflow when it executed the workflow. - -So now, we are going to peek under the hood to see where Nextflow actually executed the work. - -!!! Warning - - Not all workflows will be set up to publish outputs to a results directory, and/or the directory names and structure may be different. - A little further in this section, we will show you how to find out where this behavior is specified. - -### 2.4. Find the original output and logs in the `work/` directory - -When you run a workflow, Nextflow creates a distinct 'task directory' for every single invocation of each process in the workflow (=every step in the pipeline). -For each one, it will stage the necessary inputs, execute the relevant instruction(s) and write outputs and log files within that one directory, which is named automatically using a hash in order to make it unique. - -All of these task directories will live under a directory called `work` within your current directory (where you're running the command). - -That may sound confusing, so let's see what that looks like in practice. - -Going back to the console output for the workflow we ran earlier, we had this line: - -```console -[a3/1e1535] sayHello | 1 of 1 ✔ -``` - -See how the line starts with `[a3/1e1535]`? -That is a truncated form of the task directory path for that one process call, and tells you where to find the output of the `sayHello` process call within the `work/` directory path. - -You can find the full path by typing the following command (replacing `a3/1e1535` with what you see in your own terminal) and pressing the tab key to autocomplete the path or adding an asterisk: - -```bash -ls work/a3/1e1535* -``` - -This should yield the full path directory path: `work/a3/1e153543b0a7f9d2c4735ddb4ab231` - -Let's take a look at what's in there. - -??? abstract "Directory contents" - - ```console - work - ├── a3 - │ └── 1e153543b0a7f9d2c4735ddb4ab231 - │ ├── .command.begin - │ ├── .command.err - │ ├── .command.log - │ ├── .command.out - │ ├── .command.run - │ ├── .command.sh - │ ├── .exitcode - │ └── output.txt - └── a4 - └── aa3694b8808bdcc1135ef4a1187a4d - ├── .command.begin - ├── .command.err - ├── .command.log - ├── .command.out - ├── .command.run - ├── .command.sh - ├── .exitcode - └── output.txt - ``` - -??? question "Don't see the same thing?" - - The exact subdirectory names will be different on your system. - - If you browse the contents of the task subdirectory in the VSCode file explorer, you'll see all the files right away. - However, the log files are set to be invisible in the terminal, so if you want to use `ls` or `tree` to view them, you'll need to set the relevant option for displaying invisible files. - - ```bash - tree -a work - ``` - -There are two sets of directories in `work/`, from the two different pipeline runs that we have done. -Each task execution gets its own, isolated, directory to work in. -In this case the pipeline did the same thing both times, so the contents of each task directory are identical - -You should immediately recognize the `output.txt` file, which is in fact the original output of the `sayHello` process that got published to the `results` directory. -If you open it, you will find the `Hello World!` greeting again. - -```console title="work/a3/1e153543b0a7f9d2c4735ddb4ab231/output.txt" -Hello World! -``` - -So what about all those other files? - -These are the helper and log files that Nextflow wrote as part of the task execution: - -- **`.command.begin`**: Sentinel file created as soon as the task is launched. -- **`.command.err`**: Error messages (`stderr`) emitted by the process call -- **`.command.log`**: Complete log output emitted by the process call -- **`.command.out`**: Regular output (`stdout`) by the process call -- **`.command.run`**: Full script run by Nextflow to execute the process call -- **`.command.sh`**: The command that was actually run by the process call -- **`.exitcode`**: The exit code resulting from the command - -The `.command.sh` file is especially useful because it shows you the main command Nextflow executed, not including all the bookkeeping and task/environment setup. - -```console title="work/a3/1e153543b0a7f9d2c4735ddb4ab231/.command.sh" -#!/bin/bash -ue -echo 'Hello World!' > output.txt - -``` - -So this confirms that the workflow composed the same command we ran directly on the command-line earlier. - -When something goes wrong and you need to troubleshoot what happened, it can be useful to look at the `command.sh` script to check exactly what command Nextflow composed based on the workflow instructions, variable interpolation and so on. - -### 2.5. Re-run the workflow with different greetings - -Try re-running the workflow a few times with different values for the `--input` argument, then look at the task directories. - -??? abstract "Directory contents" - - ```console - work/ - ├── 09 - │ └── 5ea8665939daf6f04724286c9b3c8a - │ ├── .command.begin - │ ├── .command.err - │ ├── .command.log - │ ├── .command.out - │ ├── .command.run - │ ├── .command.sh - │ ├── .exitcode - │ └── output.txt - ├── 92 - │ └── ceb95e05d87621c92a399da9bd2067 - │ ├── .command.begin - │ ├── .command.err - │ ├── .command.log - │ ├── .command.out - │ ├── .command.run - │ ├── .command.sh - │ ├── .exitcode - │ └── output.txt - ├── 93 - │ └── 6708dbc20c7efdc6769cbe477061ec - │ ├── .command.begin - │ ├── .command.err - │ ├── .command.log - │ ├── .command.out - │ ├── .command.run - │ ├── .command.sh - │ ├── .exitcode - │ └── output.txt - ├── a3 - │ └── 1e153543b0a7f9d2c4735ddb4ab231 - │ ├── .command.begin - │ ├── .command.err - │ ├── .command.log - │ ├── .command.out - │ ├── .command.run - │ ├── .command.sh - │ ├── .exitcode - │ └── output.txt - └── a4 - └── aa3694b8808bdcc1135ef4a1187a4d - ├── .command.begin - ├── .command.err - ├── .command.log - ├── .command.out - ├── .command.run - ├── .command.sh - ├── .exitcode - └── output.txt - ``` - -You see that a new subdirectory with a complete set of output and log files has been created for each run. - -In contrast, if you look at the `results` directory, there is still only one set of results, and the content of the output file corresponds to whatever you ran last. - -??? abstract "Directory contents" - - ```console title="results/" - results - └── 1-hello - └── output.txt - ``` - -This shows you that the published results will get overwritten by subsequent executions, whereas the task directories under `work/` are preserved. - -### Takeaway - -You know how to run a simple Nextflow script, monitor its execution and find its outputs. - -### What's next? - -Learn how to read a basic Nextflow script and identify how its components relate to its functionality. - ---- - -## 3. Examine the Hello World workflow starter script - -What we did there was basically treating the workflow script like a black box. -Now that we've seen what it does, let's open the box and look inside. - -Our goal here is not to memorize the syntax of Nextflow code, but to form some basic intuition of what are the main components and how they are organized. - -### 3.1. Examine the overall code structure - -You'll find the `1-hello.nf` script in your current directory, which should be `nextflow-run`. Open it in the editor pane. - -??? full-code "Full code file" - - ```groovy title="1-hello.nf" linenums="1" - #!/usr/bin/env nextflow - - /* - * Use echo to print 'Hello World!' to a file - */ - process sayHello { - - input: - val greeting - - output: - path 'output.txt' - - script: - """ - echo '${greeting}' > output.txt - """ - } - - /* - * Pipeline parameters - */ - params { - input: String - } - - workflow { - - main: - // emit a greeting - sayHello(params.input) - - publish: - first_output = sayHello.out - } - - output { - first_output { - path '1-hello' - mode 'copy' - } - } - ``` - -A Nextflow workflow script typically includes one or more **process** definitions, the **workflow** itself, and a few optional blocks such as **params** and **output**. - -Each **process** describes what operation(s) the corresponding step in the pipeline should accomplish, while the **workflow** describes the dataflow logic that connects the various steps. - -Let's take a closer look at the **process** block first, then we'll look at the **workflow** block. - -### 3.2. The `process` definition - -The first block of code describes a [**process**](https://nextflow.io/docs/latest/process.html). -The process definition starts with the keyword `process`, followed by the process name and finally the process body delimited by curly braces. -The process body must contain a script block which specifies the command to run, which can be anything you would be able to run in a command line terminal. - -```groovy title="1-hello.nf" linenums="3" -/* -* Use echo to print a greeting to a file -*/ -process sayHello { - - input: - val greeting - - output: - path 'output.txt' - - script: - """ - echo '${greeting}' > output.txt - """ -} -``` - -Here we have a **process** called `sayHello` that takes an **input** variable called `greeting` and writes its **output** to a file named `output.txt`. - -
---8<-- "docs/en/docs/nextflow_run/img/sayhello_with_input.svg" -
- -This is a very minimal process definition that just contains an `input` definition, an `output` definition and the `script` to execute. - -The `input` definition includes the `val` qualifier, which tells Nextflow to expect a value of some kind (can be a string, a number, whatever). - -The `output` definition includes the `path` qualifier, which tells Nextflow this should be handled as a path (includes both directory paths and files). - -### 3.3. The `workflow` definition - -The second block of code describes the [**workflow**](https://nextflow.io/docs/latest/workflow.html) itself. -The workflow definition starts with the keyword `workflow`, followed by an optional name, then the workflow body delimited by curly braces. - -Here we have a **workflow** that consists of a `main:` block and a `publish:` block. -The `main:` block is the main body of the workflow and the `publish:` block lists the outputs that should be published to the `results` directory. - -```groovy title="1-hello.nf" linenums="27" -workflow { - - main: - // emit a greeting - sayHello(params.input) - - publish: - first_output = sayHello.out -} -``` - -In this case the `main:` block contains a call to the `sayHello` process and gives it an input called `params.input` to use as the greeting. - -As we'll discuss in more detail in a moment, `params.input` holds the value we gave to the `--input` parameter in our command line. - -The `publish:` block lists the output of the `sayHello()` process call, which it refers to as `sayHello.out` and gives the name `first_output` (this can be anything the workflow author wants). - -This is a very minimal **workflow** definition. -In a real-world pipeline, the workflow typically contains multiple calls to **processes** connected by **channels**, and there may be default values set up for the variable inputs. - -We'll get into that in Part 2 of the course. -For now, let's take a closer look at how our workflow is handling inputs and outputs. - -### 3.4. The `params` system of command-line parameters - -The `params.input` we provide to the `sayHello()` process call is a neat bit of Nextflow code and is worth spending an extra minute on. - -As mentioned above, that's how we pass the value of the `--input` command-line parameter to the `sayHello()` process call. -In fact, simply declaring `params.someParameterName` is enough to give the workflow a parameter named `--someParameterName` from the command-line. - -Here we've formalized that parameter declaration by setting up a `params` block that specifies the type of input the workflow expects (Nextflow 25.10.2 and later). - -```groovy title="1-hello.nf" linenums="20" -/* - * Pipeline parameters - */ -params { - input: String -} -``` - -Supported types include `String`, `Integer`, `Float`, `Boolean`, and `Path`. -To learn more, see [Workflow parameters](https://nextflow.io/docs/latest/config.html#workflow-parameters)in the Nextflow reference documentation. - -!!! tip - - Remember that _workflow_ parameters declared using the `params` system always take two dashes on the command line (`--`). - This distinguishes them from _Nextflow-level_ CLI flags, which only take one dash (`-`). - -### 3.5. The `publish` directive - -On the other end of the workflow, we've already glanced at the `publish:` block. -That's one half of the output handling system; the other half is the `output` block located below. - -```groovy title="1-hello.nf" linenums="37" -output { - first_output { - path '1-hello' - mode 'copy' - } -} -``` - -This specifies that the `first_output` output listed in the `publish:` block should be copied to a subdirectory called `1-hello` under the default `results` output directory. - -The `mode 'copy'` line overrides the system's default behavior, which is to make a symbolic link (or symlink) to the original file in the `work/` directory instead of a proper copy. - -There are more options than displayed here for controlling the publishing behavior; we'll cover a few later on. -You'll also see that when a workflow generates multiple outputs, each one gets listed this way in the `output` block. - -To learn more, see [Publishing outputs](https://nextflow.io/docs/latest/workflow.html#publishing-outputs) in the Nextflow reference documentation. - -??? info "Older syntax for publishing outputs using `publishDir`" - - Until very recently, the established way to publish outputs was to do it at the level of each individual process using a `publishDir` directive. - - You will still find this code pattern all over the place in older Nextflow pipelines and process modules, so it's important to be aware of it. - - Instead of having a `publish:` block in the workflow and an `output` block at the top level, you would see a `publishDir` line in the sayHello` process definition: - - ```groovy title="Syntax example" linenums="1" hl_lines="3" - process sayHello { - - publishDir 'results/1-hello', mode: 'copy' - - output: - path 'output.txt' - - script: - """ - echo 'Hello World!' > output.txt - """ - } - ``` - - However, we do not recommend using this in any new work as it will eventually be disallowed in future versions of the Nextflow language. - -### Takeaway - -You now know how a simple Nextflow workflow is structured, and how the basic components relate to its functionality. - -### What's next? - -Learn to manage your workflow executions conveniently. - ---- - -## 4. Manage workflow executions - -Knowing how to launch workflows and retrieve outputs is great, but you'll quickly find there are a few other aspects of workflow management that will make your life easier. - -Here we show you how to take advantage of the `resume` feature for when you need to re-launch the same workflow, how to inspect the execution logs with `nextflow log`, and how to delete older work directories with `nextflow clean`. - -### 4.1. Re-launch a workflow with `-resume` - -Sometimes, you're going to want to re-run a pipeline that you've already launched previously without redoing any work that was already completed successfully. - -Nextflow has an option called `-resume` that allows you to do this. -Specifically, in this mode, any processes that have already been run with the exact same code, settings and inputs will be skipped. -This means Nextflow will only run processes that you've added or modified since the last run, or to which you're providing new settings or inputs. - -There are two key advantages to doing this: - -- If you're in the middle of developing a pipeline, you can iterate more rapidly since you only have to run the process(es) you're actively working on in order to test your changes. -- If you're running a pipeline in production and something goes wrong, in many cases you can fix the issue and relaunch the pipeline, and it will resume running from the point of failure, which can save you a lot of time and compute. - -To use it, simply add `-resume` to your command and run it: - -```bash -nextflow run 1-hello.nf --input 'Hello World!' -resume -``` - -??? success "Command output" - - ```console linenums="1" - N E X T F L O W ~ version 26.04.4 - - Launching `1-hello.nf` [tiny_noyce] revision: c33d41f479 - - [a3/7be2fa] sayHello | 1 of 1, cached: 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: 1-hello/output.txt - ``` - -The console output should look familiar, but there's one thing that's a little different compared to before. - -Look for the `cached:` bit that has been added in the process status line (line 5), which means that Nextflow has recognized that it has already done this work and simply reused the result from the previous successful run. - -You can also see that the work subdirectory hash is the same as in the previous run. -Nextflow is literally pointing you to the previous execution and saying "I already did that over there." - -!!! tip - - When your re-run a pipeline with `resume`, Nextflow does not overwrite any files published outside of the work directory by any executions that were run successfully previously. - - To learn more, see [Cache and resume](https://nextflow.io/docs/latest/cache-and-resume.html) in the Nextflow reference documentation. - -### 4.2. Inspect the log of past executions - -Whenever you launch a nextflow workflow, a line gets written to a log file called `history`, under a hidden directory called `.nextflow` in the current working directory. - -??? abstract "File contents" - - ```txt title=".nextflow/history" linenums="1" - 2025-07-04 19:27:09 1.8s wise_watson OK 3539118582ccde68dde471cc2c66295c a02c9c46-c3c7-4085-9139-d1b9b5b194c8 nextflow run 1-hello.nf --input 'Hello World' - 2025-07-04 19:27:20 2.9s spontaneous_blackwell OK 3539118582ccde68dde471cc2c66295c 59a5db23-d83c-4c02-a54e-37ddb73a337e nextflow run 1-hello.nf --input Bonjour - 2025-07-04 19:27:31 1.8s gigantic_yonath OK 3539118582ccde68dde471cc2c66295c 5acaa83a-6ad6-4509-bebc-cb25d5d7ddd0 nextflow run 1-hello.nf --input 'Dobry den' - 2025-07-04 19:27:45 2.4s backstabbing_swartz OK 3539118582ccde68dde471cc2c66295c 5f4b3269-5b53-404a-956c-cac915fbb74e nextflow run 1-hello.nf --input Konnichiwa - 2025-07-04 19:27:57 2.1s goofy_wilson OK 3539118582ccde68dde471cc2c66295c 5f4b3269-5b53-404a-956c-cac915fbb74e nextflow run 1-hello.nf --input Konnichiwa -resume - ``` - -This file gives you the timestamp, run name, status, revision ID, session ID and full command line for every Nextflow run that has been launched from within the current working directory. - -A more convenient way to access this information is to use the [`nextflow log`](https://nextflow.io/docs/latest/reference/cli.html#log) command. - -```bash -nextflow log -``` - -??? success "Command output" - - ```console linenums="1" - TIMESTAMP DURATION RUN NAME STATUS REVISION ID SESSION ID COMMAND - 2025-07-04 19:27:09 1.8s wise_watson OK 3539118582 a02c9c46-c3c7-4085-9139-d1b9b5b194c8 nextflow run 1-hello.nf --input 'Hello World' - 2025-07-04 19:27:20 2.9s spontaneous_blackwell OK 3539118582 59a5db23-d83c-4c02-a54e-37ddb73a337e nextflow run 1-hello.nf --input Bonjour - 2025-07-04 19:27:31 1.8s gigantic_yonath OK 3539118582 5acaa83a-6ad6-4509-bebc-cb25d5d7ddd0 nextflow run 1-hello.nf --input 'Dobry den' - 2025-07-04 19:27:45 2.4s backstabbing_swartz OK 3539118582 5f4b3269-5b53-404a-956c-cac915fbb74e nextflow run 1-hello.nf --input Konnichiwa - 2025-07-04 19:27:57 2.1s goofy_wilson OK 3539118582 5f4b3269-5b53-404a-956c-cac915fbb74e nextflow run 1-hello.nf --input Konnichiwa -resume - ``` - -This will output the contents of the log file to the terminal, augmented with a header line. - -You'll notice that the session ID changes whenever you run a new `nextflow run` command, EXCEPT if you're using the `-resume` option. -In that case, the session ID stays the same. - -Nextflow uses the session ID to group run caching information under the `cache` directory, also located under `.nextflow`. - -### 4.3. Delete older work directories - -If you run a lot of pipelines, you may end up accumulating very many files across many subdirectories. -Since the subdirectories are named randomly, it is difficult to tell from their names what are older vs. more recent runs. - -Fortunately Nextflow includes a helpful command called [`nextflow clean`](https://www.nextflow.io/docs/latest/reference/cli.html#clean) that can automatically delete the work subdirectories for past runs that you no longer care about. - -#### 4.3.1. Determine deletion criteria - -There are multiple options to determine what to delete, which you can explore in the documentation linked above. -Here we show you an example that deletes all subdirectories from runs before a given run, specified using its run name. - -Look up the most recent successful run where you didn't use `-resume`; in our case the run name was `backstabbing_swartz`. - -The run name is the machine-generated two-part string shown in square brackets in the `Launching (...)` console output line. -You can also use the Nextflow log to look up a run based on its timestamp and/or command line. - -#### 4.3.2. Do a dry run - -First we use the dry run flag `-n` to check what will be deleted given the command: - -```bash -nextflow clean -before backstabbing_swartz -n -``` - -??? success "Command output" - - ```console - Would remove /workspaces/training/hello-nextflow/work/eb/1a5de36637b475afd88fca7f79e024 - Would remove /workspaces/training/hello-nextflow/work/6b/19b0e002ea13486d3a0344c336c1d0 - Would remove /workspaces/training/hello-nextflow/work/45/9a6dd7ab771f93003d040956282883 - ``` - -Your output will have different task directory names and may have a different number of lines, but it should look similar to the example. - -If you don't see any lines output, you either did not provide a valid run name or there are no past runs to delete. Make sure to change `backstabbing_swartz` in the example command to whatever is the corresponding latest run name in your log. - -#### 4.3.3. Proceed with deletion - -If the output looks as expected and you want to proceed with the deletion, re-run the command with the `-f` flag instead of `-n`: - -```bash -nextflow clean -before backstabbing_swartz -f -``` - -??? success "Command output" - - ```console - Removed /workspaces/training/hello-nextflow/work/eb/1a5de36637b475afd88fca7f79e024 - Removed /workspaces/training/hello-nextflow/work/6b/19b0e002ea13486d3a0344c336c1d0 - Removed /workspaces/training/hello-nextflow/work/45/9a6dd7ab771f93003d040956282883 - ``` - -The output should be similar to before, but now saying 'Removed' instead of 'Would remove'. -Note that this does not remove the two-character subdirectories (like `eb/` above) but it does empty their contents. - -!!! Warning - - Deleting work subdirectories from past runs removes them from Nextflow's cache and deletes any outputs that were stored in those directories. - That means it breaks Nextflow's ability to resume execution without re-running the corresponding processes. - - You are responsible for saving any outputs that you care about! That is the main reason we prefer to use the `copy` mode rather than the `symlink` mode for the `publish` directive. - -### Takeaway - -You know how to relaunch a pipeline without repeating steps that were already run in an identical way, inspect the execution log, and use the `nextflow clean` command to clean up old work directories. - -### What's next? - -Take a little break! You've just absorbed the building blocks of Nextflow syntax and basic usage instructions. - -In the next section of this training, we're going to look at four successively more realistic versions of the Hello World pipeline that will demonstrate how Nextflow allows you to process multiple inputs efficiently, run workflows composed of multiple steps connected together, leverage modular code components, and utilize containers for greater reproducibility and portability. - ---- - -## Quiz - - -In the console output line `[a3/7be2fa] SAYHELLO | 1 of 1 ✔`, what does `[a3/7be2fa]` represent? -- [ ] The process version number -- [ ] A unique run identifier -- [x] The truncated path to the task's work directory -- [ ] The checksum of the output file - -Learn more: [2.3. Find the original output and logs in the `work/` directory](#23-find-the-original-output-and-logs-in-the-work-directory) - - - -What is the purpose of the `.command.sh` file in a task directory? -- [ ] It stores the task's configuration settings -- [x] It shows the actual command that was executed by the process -- [ ] It contains error messages from failed tasks -- [ ] It lists input files staged for the task - -Learn more: [2.3. Find the original output and logs in the `work/` directory](#23-find-the-original-output-and-logs-in-the-work-directory) - - - -What happens to published results when you re-run a workflow without `-resume`? -- [ ] They are preserved in separate timestamped directories -- [x] They get overwritten by the new execution -- [ ] Nextflow prevents overwriting and fails -- [ ] They are automatically backed up - -Learn more: [2.4. Re-run the workflow with different greetings](#24-re-run-the-workflow-with-different-greetings) - - - -What does this console output indicate? - -```console -[a3/7be2fa] sayHello | 1 of 1, cached: 1 ✔ -``` - -- [ ] The task failed and was skipped -- [ ] The task is waiting in a queue -- [x] Nextflow reused results from a previous identical execution -- [ ] The task was manually cancelled - -Learn more: [4.1. Re-launch a workflow with `-resume`](#41-re-launch-a-workflow-with--resume) - - - -Where does Nextflow store the execution history that the `nextflow log` command displays? -- [ ] In the results directory -- [ ] In the work directory -- [x] In the `.nextflow/history` file -- [ ] In `nextflow.config` - -Learn more: [4.2. Inspect the log of past executions](#42-inspect-the-log-of-past-executions) - - - -What is the purpose of the `params` block in a workflow file? -- [ ] To define process resource requirements -- [ ] To configure the executor -- [x] To declare and type workflow input parameters -- [ ] To specify output publishing options - -Learn more: [3.4. The params system of command-line parameters](#34-the-params-system-of-command-line-parameters) - - - -In the workflow's `output` block, what does `mode 'copy'` do? -- [ ] Creates a backup of the work directory -- [x] Makes a full copy of files instead of symbolic links -- [ ] Copies the workflow script to results -- [ ] Enables incremental file copying - -Learn more: [3.5. The publish directive](#35-the-publish-directive) - - - -What is the recommended flag to use with the `nextflow clean` command before actually deleting files? -- [x] `-n` (dry run) to preview what would be deleted -- [ ] `-v` (verbose) to see detailed output -- [ ] `-a` (all) to select all directories -- [ ] `-q` (quiet) to suppress warnings - -Learn more: [4.3. Delete older work directories](#43-delete-older-work-directories) - diff --git a/docs/en/docs/nextflow_run/01_run_nextflow.md b/docs/en/docs/nextflow_run/01_run_nextflow.md new file mode 100644 index 0000000000..1f745c98f1 --- /dev/null +++ b/docs/en/docs/nextflow_run/01_run_nextflow.md @@ -0,0 +1,591 @@ +# Part 1: Run Nextflow + +In this part, we introduce the core concepts of running Nextflow pipelines. +We start with a simple Hello World workflow, then progress to a complete multi-step pipeline that processes multiple inputs in parallel using containers. + +--- + +## 1. Hello World + +The workflow `1-hello.nf` takes a greeting via a command-line argument and writes it to a file. + +
+--8<-- "docs/en/docs/hello_nextflow/img/hello_world.svg" +
+ +### 1.1. Launch the workflow + +Run the following command in your terminal. + +```bash +nextflow run 1-hello.nf --input 'Hello World!' +``` + +??? success "Command output" + + ```console hl_lines="6" + N E X T F L O W ~ version 26.04.4 + + Launching `1-hello.nf` [infallible_volhard] DSL2 - revision: 82d40dbf94 + + executor > local (1) + [6d/740edd] sayHello | 1 of 1 ✔ + ``` + +The most important line in the output is the last one: + +```console +[6d/740edd] sayHello | 1 of 1 ✔ +``` + +This tells us that the `sayHello` process ran successfully once. +The `[6d/740edd]` prefix is a truncated path to the task's working directory — more on that below. + +### 1.2. Find the output + +This workflow is configured to publish its output to a `results` directory. +After running, you should find the output there: + +```console title="results/" +results +└── 1-hello + └── Hello World!-output.txt +``` + +Open the file to confirm it contains `Hello World!`. + +### 1.3. Explore the `work/` directory + +Behind the scenes, Nextflow creates a unique task directory for every process call inside a directory named `work/`. +The hash shown in the console output (`[6d/740edd]`) is the path to that directory. + +```bash +ls work/6d/740edd* +``` + +Inside you will find the output file along with several hidden log files: + +- **`.command.sh`**: the exact command Nextflow ran +- **`.command.out`** / **`.command.err`**: stdout and stderr from the process +- **`.command.log`**: combined log output +- **`.exitcode`**: the process exit code + +The `.command.sh` file is especially useful when debugging — it shows precisely what was executed. + +### 1.4. Optional: Code walkthrough + +Understanding the code isn't essential if you just want to run pipelines, but if you're curious, it's worth a look. + +??? optional "Click to explore the code associated with this exercise" + + Let's open `1-hello.nf` and look at its main components. + + ```groovy title="1-hello.nf" linenums="1" + #!/usr/bin/env nextflow + + include { sayHello } from './modules/sayHello.nf' + + /* + * Pipeline parameters + */ + params { + input: String + } + + workflow { + + main: + // emit a greeting + sayHello(params.input) + + publish: + first_output = sayHello.out + } + + output { + first_output { + path '1-hello' + mode 'copy' + } + } + ``` + + We see the following: + + - an `include` statement pointing to a `process` module + - a `params` block defining pipeline parameters + - a `workflow` block describing the work to be done + - an `output` block describing what to do with the outputs + + Let's take a look at each in turn. + + ### The `process` module + + The `include` statement tells Nextflow to load something called `sayHello` from a separate code file. + + ```groovy title="1-hello.nf" linenums="3" + include { sayHello } from './modules/sayHello.nf' + ``` + + In that file, we find the definition for a process called `sayHello`: + + ```groovy title="modules/sayHello.nf" linenums="4" + process sayHello { + + input: + val greeting + + output: + path "${greeting}-output.txt" + + script: + """ + echo '${greeting}' > '${greeting}-output.txt' + """ + } + ``` + + A **process** defines a single step in the pipeline. + It declares its inputs, outputs, and the script to execute. + The `val` qualifier means the input is a plain value (string, number, etc.). + The `path` qualifier means the output is a file path. + + It is possible to write the process definition in the main workflow file, but keeping them in separate module files makes them reusable: the same module can be imported by multiple workflow scripts. + + ### The `params` block + + The `params` block declares the command-line parameters the workflow accepts: + + ```groovy title="1-hello.nf" linenums="8" + params { + input: String + } + ``` + + Any parameter declared here becomes available on the command line with a double-dash (`--input`). + Supported types include `String`, `Integer`, `Float`, `Boolean`, and `Path`. + + !!! tip + + Workflow parameters always use two dashes (`--input`) to distinguish them from Nextflow's own CLI flags, which use one dash (e.g. `-resume`). + + ### The `workflow` block + + The **workflow** block defines the dataflow logic: which processes to run and in what order. + + ```groovy title="1-hello.nf" linenums="12" + workflow { + + main: + // emit a greeting + sayHello(params.input) + + publish: + first_output = sayHello.out + } + ``` + + Here there is only one process being called so it's very simple; we will cover more realistic examples later. + + The `main:` section calls the `sayHello` process with the `--input` value. + The `publish:` section lists which outputs should be copied to the results directory. + + ### The `output` block + + The `output` block at the bottom of the file specifies the destination path and copy mode. + + ```groovy title="1-hello.nf" linenums="22" + output { + first_output { + path '1-hello' + mode 'copy' + } + } + ``` + + Each named entry corresponds to a `publish:` label in the workflow and maps it to a subdirectory under `results/`. + +### Takeaway + +You know how to run a Nextflow pipeline and find its outputs, and you know that the work is executed in task directories under `work/`. + +### What's next? + +Find out how Nextflow handles multiple inputs efficiently. + +--- + +## 2. Process multiple inputs + +Real-world pipelines typically process many pieces of data, not just one. +The workflow `2-inputs.nf` reads from a CSV file and runs `sayHello` once per row, in parallel. + +
+--8<-- "docs/en/docs/hello_nextflow/img/hello-pipeline-multi-inputs-csv.svg" +
+ +Let's run the workflow first, then we'll take a look at what mechanism Nextflow uses to handle these multiple inputs. + +### 2.1. Run the workflow + +Run the following command in your terminal. + +```bash +nextflow run 2-inputs.nf --input data/greetings.csv +``` + +??? success "Command output" + + ```console hl_lines="6" + N E X T F L O W ~ version 26.04.4 + + Launching `2-inputs.nf` [nauseous_babbage] DSL2 - revision: b90778224d + + executor > local (3) + [66/de7844] sayHello (3) | 3 of 3 ✔ + ``` + +The `3 of 3` tells us the `sayHello` process was called three times, once per row in the CSV. + +In the `results` directory, you should now see three output files, one per greeting: + +```console title="results/2-inputs/" +2-inputs +├── Bonjour-output.txt +├── Hello-output.txt +└── Hola-output.txt +``` + +Open any of the output files to confirm each one contains a greeting. + +The condensed output above shows a single summary line for `sayHello`, but Nextflow actually launched three separate task executions behind it, one per row in the CSV, and ran them in parallel as soon as your machine had the resources to do so. + +Just like the single task you explored in [1.3](#13-explore-the-work-directory), each of these three executions gets its own task directory under `work/`, completely isolated from the others: + +```console title="work/" +work +├── 2d/276c63.../ +│ ├── .command.sh +│ └── Hola-output.txt +├── ab/007682.../ +│ ├── .command.sh +│ └── Bonjour-output.txt +└── d9/2476082.../ + ├── .command.sh + └── Hello-output.txt +``` + +Each `.command.sh` only ever contains the command for that one greeting: + +```console title="work/2d/276c63.../.command.sh" +#!/bin/bash -ue +echo 'Hola' > 'Hola-output.txt' +``` + +This isolation is what makes parallel execution safe: three tasks running at the same time never share a working directory, so nothing one task writes can collide with or overwrite what another task writes, even if they happen to produce files with the same name. +It's also why `-resume` (covered next) can cache and reuse individual tasks independently: each task's inputs, outputs, and logs live entirely inside its own directory, with nothing shared between tasks that could get out of sync. + +### 2.2. Run the workflow again with `-ansi-log false` + +By default, Nextflow condenses the output to a single summary line per process. +To see each process call listed individually, add `-ansi-log false`: + +```bash +nextflow run 2-inputs.nf --input data/greetings.csv -ansi-log false +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `2-inputs.nf` [extravagant_bardeen] DSL2 - revision: b90778224d + [43/0bac1c] Submitted process > sayHello (1) + [2d/99f604] Submitted process > sayHello (2) + [6d/7578d7] Submitted process > sayHello (3) + ``` + +This shows all three process calls and the unique work subdirectory created for each one. + +### 2.3. Use `-resume` to skip completed work + +Now switch to the extended input file, which adds two more greetings, and add `-resume` to the command line: + +```bash +nextflow run 2-inputs.nf --input data/greetings-extended.csv -resume +``` + +??? success "Command output" + + ```console hl_lines="6" + N E X T F L O W ~ version 26.04.4 + + Launching `2-inputs.nf` [adoring_mayer] DSL2 - revision: b90778224d + + executor > local (2) + [84/2f3067] sayHello (5) | 5 of 5, cached: 3 ✔ + ``` + +Nextflow ran only the two new inputs. +The three greetings processed in the previous run were cached and reused automatically. + +This also works to skip executing processes for steps that have already been run successfully in a multi-step pipeline. +For example, if a pipeline run was interrupted by a system error, or if you added new steps to a pipeline in development. + +The `-resume` capability is especially valuable in long pipelines where recovering from failure can save critical time and resources. + +### 2.4. Optional: Code walkthrough + +Understanding the code isn't essential if you just want to run pipelines, but if you're curious, it's worth a look. + +??? optional "Click to explore the code associated with this exercise" + + The key change in `2-inputs.nf` is in the `main:` section of the workflow: + + ```groovy title="2-inputs.nf" linenums="14" hl_lines="3 4 5" + main: + // create a channel for inputs from a CSV file + greeting_ch = channel.fromPath(params.input) + .splitCsv() + .map { line -> line[0] } + // emit a greeting + sayHello(greeting_ch) + ``` + + What you see here is called a **channel**: a queue construct that handles input data in a way that makes it easy to parallelize operations. + + - `channel.fromPath(params.input)` creates a channel from the file path given with `--input` + - `.splitCsv()` parses the CSV into rows + - `#!groovy .map { line -> line[0] }` extracts the first column from each row + + The result is a channel containing `Hello`, `Bonjour`, and `Hola`. + When passed to `sayHello(greeting_ch)`, Nextflow automatically calls the process once per item, running them in parallel when resources allow. + +### Takeaway + +You know how to process multiple inputs from a CSV file in parallel, and how to use `-resume` to avoid repeating completed work. + +### What's next? + +Learn how a complete multi-step pipeline chains processes together using channels, and how to use containers to manage analysis tools and their dependencies. + +--- + +## 3. Run a multi-step pipeline + +So far you've run a single process, then run it multiple times in parallel over a set of inputs. +Real pipelines usually go further: they chain several processes together, feeding the output of one into the next, and often rely on more than one piece of software along the way. +The workflow `main.nf` puts both of these together into a complete pipeline. + +
+--8<-- "docs/en/docs/hello_nextflow/img/hello_pipeline_complete.svg" +
+ +Each input greeting flows through all four steps: `sayHello` writes it to a file, `convertToUpper` converts the text to uppercase, `collectGreetings` merges all results into one file, and `cowpy` generates ASCII art from the merged output using a containerized tool. +Nextflow wires these steps together with channels: the output of one process becomes the input of the next, so the whole chain runs automatically as data becomes available, without you having to orchestrate each step by hand. + +Note that this workflow uses modules: each process is defined in its own file under `modules/`, and `main.nf` imports them with `include` statements instead of defining them inline. +This makes each process reusable across multiple workflows without duplicating code. To learn more, see the code exploration section further below. + +### 3.1. Run the workflow + +Run the following command in your terminal. + +```bash +nextflow run main.nf --input data/greetings.csv +``` + +The `character` parameter defaults to `turkey` in `nextflow.config`, so the ASCII art uses a turkey unless you override it (try adding `--character tux`). + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [nostalgic_brahmagupta] DSL2 - revision: ce74f81996 + + executor > local (8) + [56/8499f6] sayHello (3) | 3 of 3 ✔ + [cc/0ee42a] convertToUpper (3) | 3 of 3 ✔ + [eb/0f2e24] collectGreetings | 1 of 1 ✔ + [b5/34e07f] cowpy | 1 of 1 ✔ + ``` + +Four processes ran, but not the same number of times. +`sayHello` and `convertToUpper` each ran once per input (3 of 3): every greeting needs to be written out and uppercased on its own. +`collectGreetings` and `cowpy` each ran only once (1 of 1): merging the greetings and generating the ASCII art only makes sense once every individual result is in. +This fan-out-then-fan-in shape, several parallel tasks feeding into a smaller number of downstream tasks, is common in real pipelines. + +Nextflow doesn't wait for an entire step to finish before starting the next one. +As soon as one `sayHello` output is ready, the matching `convertToUpper` task can start, so tasks from different processes run concurrently rather than in strict batches. +`collectGreetings` and `cowpy` do have to wait, since each of them depends on every upstream result being available first. + +The `results` directory reflects that fan-in, plus whatever the pipeline author chose to publish and where: recall the `output` block from the code walkthrough in 1.4, which is what defines this structure. + +```console title="results/" +results +└── batch + ├── batch-report.txt + ├── cowpy-COLLECTED-batch-output.txt + └── intermediates + ├── Bonjour-output.txt + ├── COLLECTED-batch-output.txt + ├── Hello-output.txt + ├── Hola-output.txt + ├── UPPER-Bonjour-output.txt + ├── UPPER-Hello-output.txt + └── UPPER-Hola-output.txt +``` + +The top-level directory is named after the `batch` parameter, which defaults to `batch`; you'll see it change in later exercises. + +Check `cowpy-COLLECTED-batch-output.txt` for the ASCII art file. + +??? abstract "File contents" + + ```console title="results/batch/cowpy-COLLECTED-batch-output.txt" + _________ + / HELLO \ + | BONJOUR | + \ HOLA / + --------- + \ ,+*^^*+___+++_ + \ ,*^^^^ ) + \ _+* ^**+_ + \ +^ _ _++*+_+++_, ) + _+^^*+_ ( ,+*^ ^ \+_ ) + { ) ( ,( ,_+--+--, ^) ^\ + { (\@) } f ,( ,+-^ __*_*_ ^^\_ ^\ ) + {:;-/ (_+*-+^^^^^+*+*<_ _++_)_ ) ) / + ( / ( ( ,___ ^*+_+* ) < < \ + U _/ ) *--< ) ^\-----++__) ) ) ) + ( ) _(^)^^)) ) )\^^^^^))^*+/ / / + ( / (_))_^)) ) ) ))^^^^^))^^^)__/ +^^ + ( ,/ (^))^)) ) ) ))^^^^^^^))^^) _) + *+__+* (_))^) ) ) ))^^^^^^))^^^^^)____*^ + \ \_)^)_)) ))^^^^^^^^^^))^^^^) + (_ ^\__^^^^^^^^^^^^))^^^^^^^) + ^\___ ^\__^^^^^^))^^^^^^^^)\\ + ^^^^^\uuu/^^\uuu/^^^^\^\^\^\^\^\^\^\ + ___) >____) >___ ^\_\_\_\_\_\_\) + ^^^//\\_^^//\\_^ ^(\_\_\_\) + ^^^ ^^ ^^^ ^ + ``` + +Just like in [2.1](#21-run-the-workflow), every one of these 8 task executions, across all four processes, gets its own directory under `work/`, completely isolated from the others. +`collectGreetings` is a good illustration of why that matters: it depends on the outputs of all three `convertToUpper` tasks, which live in three different task directories, so Nextflow stages symlinks to those files inside `collectGreetings`'s own directory rather than having it read from its upstream tasks' directories directly: + +```console title="work/eb/0f2e24.../" +COLLECTED-batch-output.txt +UPPER-Bonjour-output.txt -> ../../69/e6c057.../UPPER-Bonjour-output.txt +UPPER-Hello-output.txt -> ../../cc/ba7d19.../UPPER-Hello-output.txt +UPPER-Hola-output.txt -> ../../cc/0ee42a.../UPPER-Hola-output.txt +batch-report.txt +.command.sh +``` + +Each task only ever sees the specific files it needs, wherever they came from, and never the internal contents of another task's directory. +Across a whole pipeline, that same isolation you saw with a single process in [2.1](#21-run-the-workflow) is what lets Nextflow run every task from every process concurrently, safely. + +!!! note + + The `cowpy` step runs inside a Docker container rather than relying on software installed locally. + A container packages an application together with everything it needs to run, so you don't have to install and manage dependencies yourself, and the pipeline behaves the same way on any machine that can run the container. + Nextflow also supports Conda as an alternative to containers; see [Part 2](./02_configure_pipeline.md) for how to switch between them. + +### 3.2. Optional: Code walkthrough + +Understanding the code isn't essential if you just want to run pipelines, but if you're curious, it's worth a look. + +??? optional "Click to explore the code associated with this exercise" + + ### How data flows from one step to the next + + Each process passes its output channel to the next: + + ```groovy title="main.nf" linenums="19" hl_lines="7 8 9" + main: + // create a channel for inputs from a CSV file + greeting_ch = channel.fromPath(params.input) + .splitCsv() + .map { line -> line[0] } + sayHello(greeting_ch) + convertToUpper(sayHello.out) + collectGreetings(convertToUpper.out.collect(), params.batch) + cowpy(collectGreetings.out.outfile, params.character) + ``` + + The pattern `processName.out` refers to a process's output channel. + + The `.collect()` operator gathers all individual outputs from `convertToUpper` into a single channel item before passing them to `collectGreetings`. + + ### Using process modules + + `main.nf` doesn't define any process code directly. + Instead, it imports each process from its own file under `modules/`: + + ```groovy title="main.nf" linenums="3" + include { sayHello } from './modules/sayHello.nf' + include { convertToUpper } from './modules/convertToUpper.nf' + include { collectGreetings } from './modules/collectGreetings.nf' + include { cowpy } from './modules/cowpy.nf' + ``` + + Each module file contains a single process definition, structured the same way as the `sayHello` module in [1.4](#14-optional-code-walkthrough). + Keeping processes in separate files makes them reusable across multiple workflows without duplicating code. + +
+ --8<-- "docs/en/docs/hello_nextflow/img/modules.svg" +
+ + ### Using containerized software + + The `cowpy` process runs inside a Docker container specified in its module file: + + ```groovy title="modules/cowpy.nf" linenums="2" hl_lines="3" + process cowpy { + + container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' + + input: + path input_file + val character + + output: + path "cowpy-${input_file}" + + script: + """ + cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file} + """ + } + ``` + + Nextflow automatically pulls the image, runs the script inside the container, and cleans up afterward. + Docker is enabled for this project in `nextflow.config`: + + ```groovy title="nextflow.config" + docker.enabled = true + ``` + + This single line enables Docker for any process in the pipeline that has a container specified. + +### Takeaway + +You've run a complete multi-step pipeline that processes multiple inputs in parallel using a containerized tool. + +### What's next? + +Head on to [Part 2](./02_configure_pipeline.md), where you'll learn how to configure pipeline behavior using `nextflow.config`. + +--- + +## Summary + +In this part you learned to: + +- Run a Nextflow workflow and find its outputs +- Explore the `work/` directory and its log files +- Process multiple inputs from a CSV file in parallel +- Use `-resume` to skip completed work when adding new inputs +- Run a multi-step pipeline that uses a containerized tool diff --git a/docs/en/docs/nextflow_run/02_configure_pipeline.md b/docs/en/docs/nextflow_run/02_configure_pipeline.md new file mode 100644 index 0000000000..1218e7ce8b --- /dev/null +++ b/docs/en/docs/nextflow_run/02_configure_pipeline.md @@ -0,0 +1,452 @@ +# Part 2: Configure the pipeline + +In [Part 1](./01_run_nextflow.md), you ran a complete multi-step pipeline that processes multiple inputs in parallel using containers. +Now we're going to look at how to configure pipeline behavior using `nextflow.config`: first by examining the configuration file we already gave you, then by exploring a couple of other ways to supply configuration, and finally by controlling how and where outputs get published. + +--- + +## 1. Examine the main configuration file + +Nextflow automatically picks up `nextflow.config` from the working directory and applies its settings to every run. + +We provide you with a configuration file that covers four areas: software packaging, process settings, pipeline parameters, and execution profiles. + +??? full-code "nextflow.config" + + ```groovy title="nextflow.config" linenums="1" + /* + * Software packaging + */ + docker.enabled = true + + /* + * Process settings + */ + process { + cpus = 1 + memory = 1.GB + } + + /* + * Pipeline parameters + */ + params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' + } + + /* + * Profiles + */ + profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } + } + ``` + +Let's go through each one, then put profiles to use by running the pipeline with one. + +!!! note + + This config covers local execution on a single machine. + Nextflow also supports HPC schedulers (SLURM, PBS, LSF) and cloud executors (AWS Batch, Google Cloud Batch, Azure Batch), all configured through the same `nextflow.config` mechanism. + See [Part 1: Adapt to your compute environment](../execution_config/01_packaging_and_execution.md) in the [Execution Config](../execution_config/index.md) course for a full walkthrough of these options. + +### 1.1. Software packaging + +Software packaging is how Nextflow supplies the actual tools your processes need, whether that's a container image, a Conda environment, or something else. + +```groovy title="nextflow.config" linenums="1" +/* + * Software packaging + */ +docker.enabled = true +``` + +This line enables Docker for every process. +Any process that declares a `container` directive runs inside the specified image. + +### 1.2. Process settings + +Remember that a process is a single step in your pipeline, like `sayHello` or `cowpy`. +Nextflow lets you configure a number of things about how each one actually runs: how much CPU and memory it gets, which container or Conda environment it uses, and more. + +```groovy title="nextflow.config" linenums="6" +/* + * Process settings + */ +process { + cpus = 1 + memory = 1.GB +} +``` + +This caps every process at a single CPU and 1 GB of memory. + +Nextflow also lets you set different values for individual named processes or groups of processes; you'll learn how in [Part 2: Manage compute resources and failures](../execution_config/02_resources_and_retries.md#12-set-resource-allocations-for-a-specific-process) of the [Execution Config](../execution_config/index.md) course. + +### 1.3. Pipeline parameters + +Parameters are the pipeline's command-line inputs, the same `--input`, `--batch` and `--character` flags you've already been setting directly on the command line. +Setting defaults for them here means you don't have to type them out every time, though as you'll see later in this part, there are a couple of other ways to supply them too. + +```groovy title="nextflow.config" linenums="14" +/* + * Pipeline parameters + */ +params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' +} +``` + +These defaults kick in whenever a parameter isn't supplied on the command line, so running `nextflow run main.nf` with no flags still works. + +### 1.4. Profiles + +Profiles let you bundle up a set of settings under a single name, so you can switch between whole configurations with one flag instead of changing values by hand every time. + +```groovy title="nextflow.config" linenums="23" +/* + * Profiles + */ +profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } +} +``` + +The `test` profile overrides three parameters to run the pipeline with a small, well-defined input set; every nf-core pipeline ships with one of these for quick validation, and it's a convention worth following in your own pipelines too. + +The `conda` profile switches software packaging from Docker to Conda. + +You activate a profile by passing `-profile ` on the command line. + +Let's put the `test` profile to use. + +```bash +nextflow run main.nf -profile test +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [reverent_heisenberg] DSL2 - revision: ce74f81996 + + executor > local (8) + [3d/8a12c7] sayHello (3) | 3 of 3 ✔ + [e7/e0934f] convertToUpper (2) | 3 of 3 ✔ + [1d/616569] collectGreetings | 1 of 1 ✔ + [44/7d46cf] cowpy | 1 of 1 ✔ + ``` + +The pipeline runs with `batch = 'test'` and `character = 'tux'`. +Check `results/test/`: the batch name is now part of the directory path itself, and the ASCII art features the tux penguin instead of a turkey. + +!!! note + + You can activate several profiles at once, and use `nextflow config -profile ,` to see the fully resolved result before running anything. + Combining profiles, and how Nextflow resolves conflicts between them, is covered in depth in [Part 3: Use profiles to switch configurations](../execution_config/03_profiles.md) of the [Execution Config](../execution_config/index.md) course. + +### Takeaway + +You know what the most common elements of a `nextflow.config` file do, and how to activate a profile. + +### What's next? + +Learn a couple of other ways to supply configuration values without modifying the main `nextflow.config` file, useful for configuring individual runs and for sharing an exact set of settings with someone else. + +--- + +## 2. Provide configuration via supplemental files + +Setting defaults in `nextflow.config` works well for values that rarely change. +Nextflow also gives you two more targeted mechanisms: a run-specific configuration file for adapting execution to a particular environment, and a parameter file for sharing an exact set of input values with a collaborator. + +### 2.1. Use a run-specific configuration file + +Say you're moving the pipeline to a machine that doesn't have Docker, and you want to give every process more room to work with. +Create a new configuration file with just the overrides you need: + +```groovy title="custom.config" linenums="1" +process { + cpus = 2 + memory = 2.GB +} + +docker.enabled = false +conda.enabled = true +``` + +Pass it alongside your main pipeline with `-c`: + +```bash +nextflow run main.nf -c custom.config +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [exotic_cray] DSL2 - revision: ce74f81996 + + executor > local (8) + [77/e02315] sayHello (1) | 3 of 3 ✔ + [a6/ccf44b] convertToUpper (3) | 3 of 3 ✔ + [56/fd1296] collectGreetings | 1 of 1 ✔ + [2c/205a94] cowpy | 1 of 1 ✔ + ``` + +Nextflow merges `custom.config` on top of the pipeline's own `nextflow.config`, so every process now gets 2 CPUs and 2 GB of memory instead of the defaults, and runs through Conda instead of Docker. +`cowpy` is the only process with a Conda package declared alongside its container, so it's the one you'll see Nextflow actually build an environment for: + +```console +Creating env using conda: conda-forge::cowpy==1.1.5 [cache /path/to/work/conda/env-898314d566668b6587ad714ae06b8520] +``` + +A small file that only overrides resource allocation and packaging, without touching pipeline parameters, is exactly the pattern nf-core pipelines expect from institutional configs. +Browse the [nf-core/configs](https://github.com/nf-core/configs) repository for real-world examples. + +That gives you a disposable way to adapt a pipeline to a new environment without touching your normal configuration. + +### 2.2. Use a parameter file + +Say instead you need to share an exact set of run parameters with a collaborator, or record them for a publication. + +Nextflow allows you to supply [parameter files](https://nextflow.io/docs/latest/config.html#parameter-file) in YAML or JSON format, which are a simpler way to distribute an exact, reproducible set of values. + +A parameter file called `test-params.yaml` is already provided in your working directory: + +```yaml title="test-params.yaml" linenums="1" +input: "data/greetings.csv" +batch: "yaml" +character: "stegosaurus" +``` + +The syntax uses colons (`:`) instead of the equal signs (`=`) used in `nextflow.config`, since this file is plain YAML rather than Groovy. + +!!! info + + A JSON version, `test-params.json`, is also provided. Feel free to try it on your own; the syntax for passing it is identical. + +Pass the file with `-params-file`: + +```bash +nextflow run main.nf -params-file test-params.yaml +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [sharp_faraday] DSL2 - revision: ce74f81996 + + executor > local (8) + [1c/9ff63e] sayHello (1) | 3 of 3 ✔ + [3b/bb5691] convertToUpper (2) | 3 of 3 ✔ + [cd/2c1f6e] collectGreetings | 1 of 1 ✔ + [89/c333bc] cowpy | 1 of 1 ✔ + ``` + +??? abstract "File contents" + + ```console title="results/yaml/cowpy-COLLECTED-yaml-output.txt" + _________ + / BONJOUR \ + | HOLA | + \ HELLO / + --------- + \ . . + \ / `. .' " + \ .---. < > < > .---. + \ | \ \ - ~ ~ - / / | + _____ ..-~ ~-..-~ + | | \~~~\.' `./~~~/ + --------- \__/ \__/ + .' O \ / / \ " + (_____, `._.' | } \/~~~/ + `----. / } | / \__/ + `-. | / | / `. ,~~| + ~-.__| /_ - ~ ^| /- _ `..-' + | / | / ~-. `-. _ _ _ + |_____| |_____| ~ - . _ _ _ _ _> + ``` + +A parameter file is especially valuable once a pipeline has more than a handful of parameters: it lets you supply them all at once, without a sprawling command line or any change to the workflow script, and it's easy to distribute alongside your results. + +### Takeaway + +You know two more ways to supply configuration: a run-specific configuration file for adapting execution to a new environment, and a parameter file for sharing exact, reproducible input values. + +### What's next? + +Learn how to control how and where your pipeline's outputs get published. + +--- + +## 3. Manage pipeline outputs + +A pipeline author decides how outputs are organized in code, but you don't need to touch that code to control where they end up or how they get there. +Nextflow gives you config-level ways to do that instead: set a base output directory, and choose whether files get copied or symlinked. + +### 3.1. Customize the output directory + +By default, Nextflow publishes outputs under `results/`. +Point it elsewhere with `-output-dir` (or its short form, `-o`): + +```bash +nextflow run main.nf -output-dir outputs +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [serene_kimura] DSL2 - revision: ce74f81996 + + executor > local (8) + [31/df5c15] sayHello (3) | 3 of 3 ✔ + [08/8bb2e5] convertToUpper (1) | 3 of 3 ✔ + [e5/5814da] collectGreetings | 1 of 1 ✔ + [cf/8ab8c6] cowpy | 1 of 1 ✔ + ``` + +??? abstract "Directory contents" + + ```console + outputs/batch + ├── batch-report.txt + ├── cowpy-COLLECTED-batch-output.txt + └── intermediates + ├── Bonjour-output.txt + ├── COLLECTED-batch-output.txt + ├── Hello-output.txt + ├── Hola-output.txt + ├── UPPER-Bonjour-output.txt + ├── UPPER-Hello-output.txt + └── UPPER-Hola-output.txt + ``` + +The outputs now land under `outputs/batch/` instead of the built-in `results/batch/` default. +The pipeline's own code still decides the structure within that base directory, like the `batch/` and `intermediates/` subdirectories; `-output-dir` only controls where that structure starts. + +`-output-dir` is really just a command-line shortcut for the `outputDir` configuration option, so it can go anywhere configuration can: directly in `nextflow.config`, inside a profile, or in a `-c` overlay file like the one you used earlier in this part. +For example, this snippet shows the same setting placed directly in `nextflow.config` instead of passed on the command line: + +```groovy title="nextflow.config" +outputDir = 'outputs' +``` + +See [Configuration file](https://nextflow.io/docs/latest/config.html) in the Nextflow reference for the full list of places a configuration option like this can live. + +### 3.2. Choose how outputs get published + +By default, Nextflow publishes outputs as symlinks that point to the locations of the outputs under `work/`, not real copies: + +```console +$ ls -l results/batch/intermediates/Hello-output.txt +lrwxr-xr-x ... Hello-output.txt -> /workspaces/training/nextflow-run/work/b7/b8c4d1.../Hello-output.txt +``` + +Pipeline authors can set the 'publish mode' to either `'copy'` or `'move'` for each individual process in the workflow code. +They typically do this for the final outputs of the pipeline, while leaving the default `'symlink'` behavior set for intermediate files that can be deleted once the full pipeline has been run. + +That avoids duplicating data on disk, but it means you can't delete the task directories under `work/` without breaking the link, losing the ability to use `-resume`. +If you want all output files to be properly copied instead, set [`workflow.output.mode`](https://nextflow.io/docs/latest/reference/config.html#workflow) to `'copy'` in your pipeline configuration. (Unlike `-output-dir`, there's no command-line flag for this; it's config-only.) + +Try setting it in `nextflow.config`: + +=== "After" + + ```groovy title="nextflow.config" hl_lines="7" + params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' + } + + workflow.output.mode = 'copy' + ``` + +=== "Before" + + ```groovy title="nextflow.config" + params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' + } + ``` + +Then run the pipeline, changing the batch name so that you can see the difference in the outputs: + +```bash +nextflow run main.nf --batch withmode +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [angry_noether] DSL2 - revision: ce74f81996 + + executor > local (8) + [41/2b478d] sayHello (3) | 3 of 3 ✔ + [bf/dd2840] convertToUpper (2) | 3 of 3 ✔ + [ea/364e97] collectGreetings | 1 of 1 ✔ + [10/76fe7b] cowpy | 1 of 1 ✔ + ``` + +Have a look at one of the output files like before: + +```console +$ ls -l results/withmode/intermediates/Hello-output.txt +-rw-r--r-- ... Hello-output.txt +``` + +Now it's a real, independent file that will stay available even if `work/` gets cleaned up. + +!!! warning + + The `workflow.output.mode` setting only fills in a default for outputs that don't already have a mode set in the pipeline code. + It cannot override a mode the author hardcoded, no matter what you set it to. + +### Takeaway + +You know how to customize the base output directory and choose between copied and symlinked outputs, both without touching the pipeline's code. + +### What's next? + +Head on to [Part 3](./03_manage_executions.md), where you'll learn how to inspect the history of past runs, generate execution reports, and clean up old work directories. + +--- + +## Summary + +In this part you learned to: + +- Configure pipeline behavior using `nextflow.config` and profiles +- Supply configuration via a run-specific configuration file or a parameter file +- Customize the output directory and choose between copied and symlinked outputs diff --git a/docs/en/docs/nextflow_run/02_pipeline.md b/docs/en/docs/nextflow_run/02_pipeline.md deleted file mode 100644 index ec7a4bc5db..0000000000 --- a/docs/en/docs/nextflow_run/02_pipeline.md +++ /dev/null @@ -1,1735 +0,0 @@ -# Part 2: Run real pipelines - -In Part 1 of this course (Run Basic Operations), we started with an example workflow that had only minimal features in order to keep the code complexity low. -For example, `1-hello.nf` used a command-line parameter (`--input`) to provide a single value at a time. - -However, most real-world pipelines use more sophisticated features in order to enable efficient processing of large amounts of data at scale, and apply multiple processing steps chained together by sometimes complex logic. - -In this part of the training, we demonstrate key features of real-world pipelines by trying out expanded versions of the original Hello World pipeline. - -## 1. Processing input data from a file - -In a real-world pipeline, we typically want to process multiple data points (or data series) contained in one or more input files. -And wherever possible, we want to run the processing of independent data in parallel, to shorten the time spent waiting for analysis. - -To demonstrate how Nextflow does this, we've prepared a a CSV file called `greetings.csv` that contains several input greetings, mimicking the kind of columnar data you might want to process in a real data analysis. -Note that the numbers are not meaningful, they are just there for illustrative purposes. - -```csv title="data/greetings.csv" linenums="1" -Hello,English,123 -Bonjour,French,456 -Hola,Spanish,789 -``` - -We've also written an improved version of the original workflow, now called `2a-inputs.nf`, that will read in the CSV file, extract the greetings and write each of them to a separate file. - -
---8<-- "docs/en/docs/nextflow_run/img/hello-pipeline-multi-inputs.svg" -
- -Let's run the workflow first, and we'll take a look at the relevant Nextflow code afterward. - -### 1.1. Run the workflow - -Run the following command in your terminal. - -```bash -nextflow run 2a-inputs.nf --input data/greetings.csv -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `2a-inputs.nf` [mighty_sammet] revision: 29fb5352b3 - - executor > local (3) - [8e/0eb066] sayHello (2) | 3 of 3 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2a-inputs/Hello-output.txt - - 2a-inputs/Bonjour-output.txt - - 2a-inputs/Hola-output.txt - ``` - -Excitingly, this seems to indicate that '3 of 3' calls were made for the process, which is encouraging, since there were three rows of data in the CSV we provided as input. -This suggests the `sayHello()` process was called three times, once on each input row. - -### 1.2. Find the published outputs in the `results` directory - -Let's look at the 'results' directory to see if our workflow is still writing a copy of our outputs there. - -??? abstract "Directory contents" - - ```console linenums="1" hl_lines="4-7" - results - ├── 1-hello - | └── output.txt - └── 2a-inputs - ├── Bonjour-output.txt - ├── Hello-output.txt - └── Hola-output.txt - ``` - -Yes! We see a new directory called `2a-inputs` with three output files with different names, conveniently enough. - -You can open each of them to satisfy yourself that they contain the appropriate greeting string. - -??? abstract "File contents" - - ```console title="results/2a-inputs/Hello-output.txt" - Hello - ``` - - ```console title="results/2a-inputs/Bonjour-output.txt" - Bonjour - ``` - - ```console title="results/2a-inputs/Hola-output.txt" - Hola - ``` - -This confirms each greeting in the input file has been processed appropriately. - -### 1.3. Find the original outputs and logs - -You may have noticed that the console output above referred to only one task directory. -Does that mean all three calls to `sayHello()` were executed within that one task directory? - -#### 1.3.1. Examine the task directory given in the terminal - -Let's have a look inside that `8e/0eb066` task directory. - -??? abstract "Directory contents" - - ```console title="8e/0eb066" - work/8e/0eb066071cdb4123906b7b4ea8b047/ - └── Bonjour-output.txt - ``` - -We only find the output corresponding to one of the greetings (as well as the accessory files if we enable display of hidden files). - -So what's going on here? - -By default, the ANSI logging system writes the status information for all calls to the same process on the same line. -As a result, it only showed us one of the three task directory paths (`8e/0eb066`) in the console output. -There are two others that are not listed there. - -#### 1.3.2. Make the terminal show more details - -We can modify the logging behavior to see the full list of process calls by adding the `-ansi-log false` to the command as follows: - -```bash -nextflow run 2a-inputs.nf --input data/greetings.csv -ansi-log false -``` - -??? success "Command output" - - ```console linenums="1" - N E X T F L O W ~ version 26.04.4 - Launching `2a-inputs.nf` [pedantic_hamilton] - revision: 6bbc42e49f - [ab/1a8ece] Submitted process > sayHello (1) - [0d/2cae24] Submitted process > sayHello (2) - [b5/0df1d6] Submitted process > sayHello (3) - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2a-inputs/Hello-output.txt - - 2a-inputs/Bonjour-output.txt - - 2a-inputs/Hola-output.txt - ``` - -This time we see all three process runs and their associated work subdirectories listed in the output. -Disabling ANSI logging also prevented Nextflow from using colours in the terminal output. - -Notice that the way the status is reported is a bit different between the two logging modes. -In the condensed mode, Nextflow reports whether calls were completed successfully or not. -In this expanded mode, it only reports that they were submitted. - -This confirms that the `sayHello()` process gets called three times, and a separate task directory is created for each one. - -If we look inside each of the task directories listed there, we can verify that each one corresponds to one of the greetings. - -??? abstract "Directory contents" - - ```console title="ab/1a8ece" - work/ab/1a8ece307e53f03fce689dde904b64/ - └── Hello-output.txt - ``` - - ```console title="0d/2cae24" - work/0d/2cae2481a53593bc607077c80c9466/ - └── Bonjour-output.txt - ``` - - ```console title="b5/0df1d6" - work/b5/0df1d642353269909c2ce23fc2a8fa/ - └── Hola-output.txt - ``` - -This confirms that each process call is executed in isolation from all the others. -That has many advantages, including avoiding collisions if the process produces any intermediate files with non-unique names. - -!!! tip - - For a complex workflow, or a large number of inputs, having the full list output to the terminal might get a bit overwhelming, so people don't normally use `-ansi-log false` in routine usage. - -### 1.4. Examine the workflow code - -So this version of the workflow is capable of reading in a CSV file of inputs, processing the inputs separately, and naming the outputs uniquely. - -Let's take a look at what makes that possible in the workflow code. - -??? full-code "Full code file" - - ```groovy title="2a-inputs.nf" linenums="1" hl_lines="31-33 35" - #!/usr/bin/env nextflow - - /* - * Use echo to print 'Hello World!' to a file - */ - process sayHello { - - input: - val greeting - - output: - path "${greeting}-output.txt" - - script: - """ - echo '${greeting}' > '${greeting}-output.txt' - """ - } - - /* - * Pipeline parameters - */ - params { - input: Path - } - - workflow { - - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) - - publish: - first_output = sayHello.out - } - - output { - first_output { - path '2a-inputs' - mode 'copy' - } - } - ``` - -Once again, you don't need to memorize code syntax, but it's good to learn to recognize key components of the workflow that provide important functionality. - -#### 1.4.1. Loading the input data from the CSV - -This is the most interesting part: how did we switch from taking a single value from the command-line, to taking a CSV file, parsing it and processing the individual greetings it contains? - -In Nextflow, we do that with a [**channel**](https://nextflow.io/docs/latest/channel.html): a queue construct designed to handle inputs efficiently and shuttle them from one step to another in multi-step workflows, while providing built-in parallelism and many additional benefits. - -Let's break it down. - -```groovy title="2a-inputs.nf" linenums="29" hl_lines="3-5" - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) -``` - -This code creates a channel called `greeting_ch` that reads the CSV file, parses it, and extracts the first column from each row. -The result is a channel containing `Hello`, `Bonjour`, and `Hola`. - -??? tip "How does this work?" - - Here's what that line means in plain English: - - - `channel.fromPath` is a **channel factory** that creates a channel from file path(s) - - `(params.input)` specifies the filepath is provided by `--input` on the command line - - In other words, that line tells Nextflow: take the filepath given with `--input` and get ready to treat its contents as input data. - - Then the next two lines apply **operators** that do the actual parsing of the file and loading of the data into the appropriate data structure: - - - `.splitCsv()` tells Nextflow to parse the CSV file into an array representing rows and columns - - `.map { line -> line[0] }` tells Nextflow to take only the element in the first column from each row - - So in practice, starting from the following CSV file: - - ```csv title="greetings.csv" linenums="1" - Hello,English,123 - Bonjour,French,456 - Hola,Spanish,789 - ``` - - We have transformed that into an array that looks like this: - - ```txt title="Array contents" - [[Hello,English,123],[Bonjour,French,456],[Hola,Spanish,789]] - ``` - - And then we've taken the first element from each of the three rows and loaded them into a Nextflow channel that now contains: `Hello`, `Bonjour`, and `Hola`. - - If you want to understand channels and operators in depth, including how to write them yourself, see [Hello Nextflow Part 2: Hello Channels](../hello_nextflow/02_hello_channels.md#4-read-input-values-from-a-csv-file). - -#### 1.4.2. Call the process on each greeting - -Next, in the last line of the workflow's `main:` block, we provide the loaded `greeting_ch` channel as input to the `sayHello()` process. - -```groovy title="2a-inputs.nf" linenums="29" hl_lines="7" - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) -``` - -This tells Nextflow to run the process individually on each element in the channel, _i.e._ on each greeting. -And because Nextflow is smart like that, it will run these process calls in parallel if possible, depending on the available computing infrastructure. - -That is how you can achieve efficient and scalable processing of a lot of data (many samples, or data points, whatever is your unit of research) with comparatively very little code. - -#### 1.4.3. How the outputs are named - -Finally, it's worth taking a quick look at the process code to see how we get the output files to be named uniquely. - -```groovy title="2a-inputs.nf" linenums="6" hl_lines="7 11" -process sayHello { - - input: - val greeting - - output: - path "${greeting}-output.txt" - - script: - """ - echo '${greeting}' > '${greeting}-output.txt' - """ -} -``` - -You see that, compared to the version of this process in `1-hello.nf`, the output declaration and the relevant bit of the command have changed to include the greeting value in the output file name. - -This is one way to ensure that the output file names won't collide when they get published to the common results directory. - -And that's the only change we've had to make inside the process declaration! - -### Takeaway - -You understand at a basic level how channels and operators enable us to process multiple inputs efficiently. - -### What's next? - -Discover how multi-step workflows are constructed and how they operate. - ---- - -## 2. Running multi-step workflows - -Most real-world workflows involve more than one step. -Let's build on what we just learned about channels, and look at how Nextflow uses channels and operators to connect processes together in a multi-step workflow. - -To that end, we provide you with an example workflow that chains together three separate steps and demonstrates the following: - -1. Making data flow from one process to the next -2. Collecting outputs from multiple process calls into a single process call - -Specifically, we made an expanded version of the workflow called `2b-multistep.nf` that takes each input greeting, converts it to uppercase, then collects all the uppercased greetings into a single output file. - -
---8<-- "docs/en/docs/nextflow_run/img/hello-pipeline-multi-steps.svg" -
- -As previously, we'll run the workflow first then look at the code to see what is new. - -### 2.1. Run the workflow - -Run the following command in your terminal: - -```bash -nextflow run 2b-multistep.nf --input data/greetings.csv -``` - -??? success "Command output" - - ```console linenums="1" - N E X T F L O W ~ version 26.04.4 - - Launching `2b-multistep.nf` [soggy_franklin] revision: bc8e1b2726 - - [d6/cdf466] sayHello (1) | 3 of 3 ✔ - [99/79394f] convertToUpper (2) | 3 of 3 ✔ - [1e/83586c] collectGreetings | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2b-multistep/intermediates/Hello-output.txt - - 2b-multistep/intermediates/Bonjour-output.txt - - 2b-multistep/intermediates/Hola-output.txt - - uppercased: - - 2b-multistep/intermediates/UPPER-Hello-output.txt - - 2b-multistep/intermediates/UPPER-Bonjour-output.txt - - 2b-multistep/intermediates/UPPER-Hola-output.txt - - collected: 2b-multistep/COLLECTED-batch-output.txt - - batch_report: 2b-multistep/batch-report.txt - ``` - -You see that as promised, multiple steps were run as part of the workflow; the first two (`sayHello` and `convertToUpper`) were presumably run on each individual greeting, and the third (`collectGreetings`) will have been run only once, on the outputs of all three of the `convertToUpper` calls. - -### 2.2. Find the outputs - -Let's verify that that is in fact what happened by taking a look in the `results` directory. - -??? abstract "Directory contents" - - ```console linenums="1" hl_lines="8-16" - results - ├── 1-hello - | └── output.txt - ├── 2a-inputs - | ├── Bonjour-output.txt - | ├── Hello-output.txt - | └── Hola-output.txt - └── 2b-multistep - ├── COLLECTED-batch-output.txt - ├── batch-report.txt - └── intermediates - ├── Bonjour-output.txt - ├── Hello-output.txt - ├── Hola-output.txt - ├── UPPER-Bonjour-output.txt - ├── UPPER-Hello-output.txt - └── UPPER-Hola-output.txt - - ``` - -As you can see, we have a new directory called `2b-multistep`, and it contains quite a few more files than before. -Some of the files have been grouped into a subdirectory called `intermediates`, while two files are located at the top level. - -Those two are the final results of the multi-step workflow. -Take a minute to look at the file names and check their contents to confirm that they are what you expect. - -??? abstract "File contents" - - ```txt title="results/2b-multistep/COLLECTED-batch-output.txt" - HELLO - BONJOUR - HOLA - ``` - - ```txt title="results/2b-multistep/batch-report.txt" - There were 3 greetings in this batch. - ``` - -The first contains our three greetings, uppercased and collected back into a single file as promised. -The second is a report file that summarizes some information about the run. - -### 2.3. Examine the code - -Let's look at the code and identify the key patterns for multi-step workflows. - -??? full-code "Full code file" - - ```groovy title="2b-multistep.nf" linenums="1" hl_lines="63 75-78 82-84" - #!/usr/bin/env nextflow - - /* - * Use echo to print 'Hello World!' to a file - */ - process sayHello { - - input: - val greeting - - output: - path "${greeting}-output.txt" - - script: - """ - echo '${greeting}' > '${greeting}-output.txt' - """ - } - - /* - * Use a text replacement tool to convert the greeting to uppercase - */ - process convertToUpper { - - input: - path input_file - - output: - path "UPPER-${input_file}" - - script: - """ - cat '${input_file}' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}' - """ - } - - /* - * Collect uppercase greetings into a single output file - */ - process collectGreetings { - - input: - path input_files - val batch_name - - output: - path "COLLECTED-${batch_name}-output.txt", emit: outfile - path "${batch_name}-report.txt", emit: report - - script: - count_greetings = input_files.size() - """ - cat ${input_files} > 'COLLECTED-${batch_name}-output.txt' - echo 'There were ${count_greetings} greetings in this batch.' > '${batch_name}-report.txt' - """ - } - - /* - * Pipeline parameters - */ - params { - input: Path - batch: String = 'batch' - } - - workflow { - - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) - // convert the greeting to uppercase - convertToUpper(sayHello.out) - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) - - publish: - first_output = sayHello.out - uppercased = convertToUpper.out - collected = collectGreetings.out.outfile - batch_report = collectGreetings.out.report - } - - output { - first_output { - path '2b-multistep/intermediates' - mode 'copy' - } - uppercased { - path '2b-multistep/intermediates' - mode 'copy' - } - collected { - path '2b-multistep' - mode 'copy' - } - batch_report { - path '2b-multistep' - mode 'copy' - } - } - ``` - -There's a lot going on in there, but the most obvious difference compared to the previous version of the workflow is that now there are multiple process definitions, and correspondingly, several process calls in the workflow block. - -Let's take a closer look and see if we can identify the most interesting pieces. - -#### 2.3.1. Visualizing workflow structure - -If you're using VSCode with the Nextflow extension, you can get a helpful diagram of how the processes are connected by clicking on the small `DAG preview` link displayed just above the workflow block in any Nextflow script. - -
---8<-- "docs/en/docs/nextflow_run/img/DAG-multistep.svg" -
- -This gives you a nice overview of how the processes are connected and what they produce. - -You see that in addition to the original `sayHello` process, we now also have `convertToUpper` and `collectGreetings`, which match the names of the processes we saw in the console output. -The two new process definitions are structured in the same way as the `sayHello` process, except `collectGreetings` takes an additional input parameter called `batch` and produces two outputs. - -We won't go into the code for each in detail, but if you're curious, you can look up the details in [Part 2 of Hello Nextflow](../hello_nextflow/03_hello_workflow.md). - -For now, let's dig into how the processes are connected to one another. - -#### 2.3.2. How the processes are connected - -The really interesting thing to look at here is how the process calls are chained together in the workflow's `main:` block. - -```groovy title="2b-multistep.nf" linenums="68" hl_lines="9 11" - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) - // convert the greeting to uppercase - convertToUpper(sayHello.out) - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) -``` - -You can see that the first process call, `sayHello(greeting_ch)`, is unchanged. -Then the next process call, to `convertToUpper`, refers to the output of `sayHello` as `sayHello.out`. - -The pattern is simple: `processName.out` refers to a process's output channel, which can be passed directly to the next process. -This is how we shuttle data from one step to the next in Nextflow. - -#### 2.3.3. A process can take multiple inputs - -The third process call, to `collectGreetings`, is a little different. - -```groovy title="2b-multistep.nf" linenums="77" - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) -``` - -You see this call is given two inputs, `convertToUpper.out.collect()` and `params.batch`. -Ignoring the `.collect()` bit for now, we can generalize this as `collectGreetings(input1, input2)`. - -That matches the two input declarations in the process module: - -```groovy title="2b-multistep.nf" linenums="40" -process collectGreetings { - - input: - path input_files - val batch_name -``` - -When Nextflow parses this, it will assign the first input in the call to `path input_files`, and the second to `val batch_name`. - -So now you know a process can take multiple inputs, and what the call looks like in the workflow block. - -Now let's take a closer look at that first input, `convertToUpper.out.collect()`. - -#### 2.3.4. What `collect()` does in the `collectGreetings` call - -To pass the output of `sayHello` to `convertToUpper`, we simply referred to the output channel of `sayHello` as `sayHello.out`. But for the next step, we're seeing a reference to `convertToUpper.out.collect()`. - -What is this `collect()` bit and what does it do? - -It's an operator, of course. Just like the `splitCsv` and `map` operators we encountered earlier. -This time the operator is called `collect`, and is applied to the output channel produced by `convertToUpper`. - -The `collect` operator is used to collect the outputs from multiple calls to the same process and package them into a single channel element. - -In the context of this workflow, it's taking the three uppercased greetings in the `convertToUpper.out` channel (which are three separate channel items, and would normally be handled in separate calls by the next process) and packaging them into a single item. -That's how we get all the greetings back into the same file. - -
---8<-- "docs/en/docs/nextflow_run/img/with-collect-operator.svg" -
- -In contrast, if we didn't apply `collect()` to the output of `convertToUpper()` before feeding it to `collectGreetings()`, Nextflow would simply run `collectGreetings()` independently on each greeting, which would not achieve our goal. - -
---8<-- "docs/en/docs/nextflow_run/img/without-collect-operator.svg" -
- -There are many other [operators](https://nextflow.io/docs/latest/reference/operator.html) available to apply transformations to the contents of channels between process calls. - -This gives pipeline developers a lot of flexibility for customizing the flow logic of their pipeline. -The downside is that it can sometimes make it harder to decipher what the pipeline is doing. - -#### 2.3.5. An input parameter can have a default value - -You may have noticed that `collectGreetings` takes a second input, `params.batch`: - -```groovy title="2b-multistep.nf" linenums="77" - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) -``` - -This passes a CLI parameter named `--batch` to the workflow. -However, when we launched the workflow earlier, we didn't specify a `--batch` parameter. - -What's going on there? -Have a look at the `params` block: - -```groovy title="2b-multistep.nf" linenums="61" hl_lines="3" -params { - input: Path - batch: String = 'batch' -} -``` - -There is a default value configured in the workflow, so we don't have to provide it. -But if we do provide one on the command line, the value we specify will be used instead of the default. - -Try it: - -```bash -nextflow run 2b-multistep.nf --input data/greetings.csv --batch test -``` - -??? success "Command output" - - ```console linenums="1" - N E X T F L O W ~ version 26.04.4 - - Launching `2b-multistep.nf` [soggy_franklin] revision: bc8e1b2726 - - [a5/cdff26] sayHello (1) | 3 of 3 ✔ - [c5/78794f] convertToUpper (2) | 3 of 3 ✔ - [d3/b4d86c] collectGreetings | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2b-multistep/intermediates/Bonjour-output.txt - - 2b-multistep/intermediates/Hello-output.txt - - 2b-multistep/intermediates/Hola-output.txt - - uppercased: - - 2b-multistep/intermediates/UPPER-Hola-output.txt - - 2b-multistep/intermediates/UPPER-Bonjour-output.txt - - 2b-multistep/intermediates/UPPER-Hello-output.txt - - collected: 2b-multistep/COLLECTED-test-output.txt - - batch_report: 2b-multistep/test-report.txt - ``` - -You should see new final outputs named with your custom batch name. - -??? abstract "Directory contents" - - ```console linenums="1" hl_lines="10 12" - results - ├── 1-hello - | └── output.txt - ├── 2a-inputs - | ├── Bonjour-output.txt - | ├── Hello-output.txt - | └── Hola-output.txt - └── 2b-multistep - ├── COLLECTED-batch-output.txt - ├── COLLECTED-test-output.txt - ├── batch-report.txt - ├── test-report.txt - └── intermediates - ├── Bonjour-output.txt - ├── Hello-output.txt - ├── Hola-output.txt - ├── UPPER-Bonjour-output.txt - ├── UPPER-Hello-output.txt - └── UPPER-Hola-output.txt - ``` - -This is an aspect of input configuration, which we'll cover in more detail in Part 3, but for now the important thing is to know that input parameters can be given default values. - -#### 2.3.6. A process can produce multiple outputs - -In the `collectGreetings` process definition, we see the following output declarations: - -```groovy title="2b-multistep.nf" linenums="46" - output: - path "COLLECTED-${batch_name}-output.txt", emit: outfile - path "${batch_name}-report.txt", emit: report -``` - -Which are then referred to by the name given with `emit:` in the `publish:` block: - -```groovy title="2b-multistep.nf" linenums="80" hl_lines="4 5" - publish: - first_output = sayHello.out - uppercased = convertToUpper.out - collected = collectGreetings.out.outfile - batch_report = collectGreetings.out.report -``` - -This makes it easy to then pass specific outputs individually to other processes in the workflow, in combination with various operators. - -#### 2.3.7. Published outputs can be organized - -In the `output` block, we've used custom paths to group intermediate results in order to make it easier to pick out just the final outputs of the workflow. - -```groovy title="2b-multistep.nf" linenums="87" hl_lines="3 7 11 15" -output { - first_output { - path '2b-multistep/intermediates' - mode 'copy' - } - uppercased { - path '2b-multistep/intermediates' - mode 'copy' - } - collected { - path '2b-multistep' - mode 'copy' - } - batch_report { - path '2b-multistep' - mode 'copy' - } -} -``` - -There are more sophisticated ways to organize published outputs; we'll touch on a few in the part on configuration. - -!!! tip "Want to learn more about building workflows?" - - For detailed coverage of building multi-step workflows, see [Hello Nextflow Part 3: Hello Workflow](../hello_nextflow/03_hello_workflow.md). - -### Takeaway - -You understand at a basic level how multi-step workflows are constructed using channels and operators and how they operate. -You've also seen that processes can take multiple inputs and produce multiple outputs, and that these can be published in a structured way. - -### What's next? - -Learn how Nextflow pipelines can be modularized to promote code reuse and maintainability. - ---- - -## 3. Running modularized pipelines - -So far, all the workflows we've looked at have consisted of one single workflow file containing all the relevant code. - -However, real-world pipelines typically benefit from being _modularized_, meaning that the code is split into different files. -This can make their development and maintenance more efficient and sustainable. - -Here we are going to demonstrate the most common form of code modularity in Nextflow, which is the use of **modules**. - -In Nextflow, a [**module**](https://nextflow.io/docs/latest/module.html) is a single process definition that is encapsulated by itself in a standalone code file. -To use a module in a workflow, you just add a single-line import statement to your workflow code file; then you can integrate the process into the workflow the same way you normally would. -That makes it possible to reuse process definitions in multiple workflows without producing multiple copies of the code. - -Until now we've been running workflows that had all their processes included in a monolithic code file. -Now we're going to see what it looks like when the processes are stored in individual modules. - -We have of course once again prepared a suitable workflow for demonstration purposes, called `2c-modules.nf`, along with a set of modules located in the `modules/` directory. - -
---8<-- "docs/en/docs/nextflow_run/img/modules.svg" -
- -??? abstract "Directory contents" - - ```console - modules/ - ├── collectGreetings.nf - ├── convertToUpper.nf - ├── cowpy.nf - └── sayHello.nf - ``` - -You see there are four Nextflow files, each named after one of the processes. -You can ignore the `cowpy.nf` file for now; we'll get to that one later. - -### 3.1. Examine the code - -This time we're going to look at the code first. -Start by opening the `2c-modules.nf` workflow file. - -??? full-code "Full code file" - - ```groovy title="2c-modules.nf" linenums="1" - #!/usr/bin/env nextflow - - // Include modules - include { sayHello } from './modules/sayHello.nf' - include { convertToUpper } from './modules/convertToUpper.nf' - include { collectGreetings } from './modules/collectGreetings.nf' - - /* - * Pipeline parameters - */ - params { - input: Path - batch: String = 'batch' - } - - workflow { - - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) - // convert the greeting to uppercase - convertToUpper(sayHello.out) - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) - - publish: - first_output = sayHello.out - uppercased = convertToUpper.out - collected = collectGreetings.out.outfile - batch_report = collectGreetings.out.report - } - - output { - first_output { - path '2c-modules/intermediates' - mode 'copy' - } - uppercased { - path '2c-modules/intermediates' - mode 'copy' - } - collected { - path '2c-modules' - mode 'copy' - } - batch_report { - path '2c-modules' - mode 'copy' - } - } - ``` - -You see that the workflow logic is exactly the same as in the previous version of the workflow. -However, the process code is gone from the workflow file, and instead there are `include` statements pointing to separate files under `modules`. - -```groovy title="hello-modules.nf" linenums="3" -// Include modules -include { sayHello } from './modules/sayHello.nf' -include { convertToUpper } from './modules/convertToUpper.nf' -include { collectGreetings } from './modules/collectGreetings.nf' -``` - -Open up one of those files and you'll find the code for the corresponding process. - -??? full-code "Full code file" - - ```groovy title="modules/sayHello.nf" linenums="1" - #!/usr/bin/env nextflow - - /* - * Use echo to print 'Hello World!' to a file - */ - process sayHello { - - input: - val greeting - - output: - path "${greeting}-output.txt" - - script: - """ - echo '${greeting}' > '${greeting}-output.txt' - """ - } - ``` - -As you can see, the process code has not changed; it's just been copied into an individual module file instead of being in the main workflow file. -The same applies to the other two processes. - -So let's see what it looks like to run this new version. - -### 3.2. Run the workflow - -Run this command in your terminal, with the `-resume` flag: - -```bash -nextflow run 2c-modules.nf --input data/greetings.csv -resume -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `2c-modules.nf` [soggy_franklin] revision: bc8e1b2726 - - [d6/cdf466] sayHello (1) | 3 of 3, cached: 3 ✔ - [99/79394f] convertToUpper (2) | 3 of 3, cached: 3 ✔ - [1e/83586c] collectGreetings | 1 of 1, cached: 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2c-modules/intermediates/Hello-output.txt - - 2c-modules/intermediates/Bonjour-output.txt - - 2c-modules/intermediates/Hola-output.txt - - uppercased: - - 2c-modules/intermediates/UPPER-Hello-output.txt - - 2c-modules/intermediates/UPPER-Bonjour-output.txt - - 2c-modules/intermediates/UPPER-Hola-output.txt - - collected: 2c-modules/COLLECTED-batch-output.txt - - batch_report: 2c-modules/batch-report.txt - ``` - -You'll notice that the process executions all cached successfully, meaning that Nextflow recognized that it has already done the requested work, even though the code has been split up and the main workflow file has been renamed. - -None of that matters to Nextflow; what matters is the job script that is generated once all the code has been pulled together and evaluated. - -!!! tip - - It is also possible to encapsulate a section of a workflow as a 'subworkflow' that can be imported into a larger pipeline, but that is outside the scope of this course. - - You can learn more about developing composable workflows in the Side Quest on [Workflows of Workflows](https://training.nextflow.io/latest/side_quests/workflows_of_workflows/). - -### Takeaway - -You know how processes can be stored in standalone modules to promote code reuse and improve maintainability. - -### What's next? - -Learn to use containers for managing software dependencies. - ---- - -## 4. Using containerized software - -So far the workflows we've been using as examples just needed to run very basic text processing operations using UNIX tools available in our environment. - -However, real-world pipelines typically require specialized tools and packages that are not included by default in most environments. -Usually, you'd need to install these tools, manage their dependencies, and resolve any conflicts. - -That is all very tedious and annoying. -A much better way to address this problem is to use **containers**. - -A **container** is a lightweight, standalone, executable unit of software created from a container **image** that includes everything needed to run an application including code, system libraries and settings. - -!!! Tip - - We teach this using the technology [Docker](https://www.docker.com/get-started/), but Nextflow supports several other container technologies as well. - You can learn more about Nextflow support for containers [here](https://nextflow.io/docs/latest/container.html). - -### 4.1. Use a container directly - -First, let's try interacting with a container directly. -This will help solidify your understanding of what containers are before we start using them in Nextflow. - -#### 4.1.1. Pull the container image - -To use a container, you usually download or "pull" a container image from a container registry, and then run the container image to create a container instance. - -The general syntax is as follows: - -```bash title="Syntax" -docker pull '' -``` - -- `docker pull` is the instruction to the container system to pull a container image from a repository. -- `''` is the URI address of the container image. - -As an example, let's pull a container image that contains [cowpy](https://github.com/jeffbuttars/cowpy), a python implementation of a tool called `cowsay` that generates ASCII art to display arbitrary text inputs in a fun way. - -There are various repositories where you can find published containers. -We used the [Seqera Containers](https://seqera.io/containers/) service to generate this Docker container image from the `cowpy` Conda package: `'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273'`. - -Run the complete pull command: - -```bash -docker pull 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' -``` - -??? success "Command output" - - ```console - Unable to find image 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' locally - 131d6a1b707a8e65: Pulling from library/cowpy - dafa2b0c44d2: Pull complete - dec6b097362e: Pull complete - f88da01cff0b: Pull complete - 4f4fb700ef54: Pull complete - 92dc97a3ef36: Pull complete - 403f74b0f85e: Pull complete - 10b8c00c10a5: Pull complete - 17dc7ea432cc: Pull complete - bb36d6c3110d: Pull complete - 0ea1a16bbe82: Pull complete - 030a47592a0a: Pull complete - 622dd7f15040: Pull complete - 895fb5d0f4df: Pull complete - Digest: sha256:fa50498b32534d83e0a89bb21fec0c47cc03933ac95c6b6587df82aaa9d68db3 - Status: Downloaded newer image for community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273 - community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273 - ``` - -This tells the system to download the image specified. -Once the download is complete, you have a local copy of the container image. - -#### 4.1.2. Spin up the container - -Containers can be run as a one-off command, but you can also use them interactively, which gives you a shell prompt inside the container and allows you to play with the command. - -The general syntax is as follows: - -```bash title="Syntax" -docker run --rm '' [tool command] -``` - -- `docker run --rm ''` is the instruction to the container system to spin up a container instance from a container image and execute a command in it. -- `--rm` tells the system to shut down the container instance after the command has completed. - -Fully assembled, the container execution command looks like this: - -```bash -docker run --rm -it 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' -``` - -Run that command, and you should see your prompt change to something like `(base) root@b645838b3314:/tmp#`, which indicates that you are now inside the container. - -You can verify this by running `ls` to list directory contents: - -```bash -ls / -``` - -??? success "Command output" - - ```console - bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var - ``` - -You see that the filesystem inside the container is different from the filesystem on your host system. - -!!! Tip - - When you run a container, it is isolated from the host system by default. - This means that the container can't access any files on the host system unless you explicitly allow it to do so by specifying that you want to mount a volume as part of the `docker run` command using the following syntax: - - ```bash title="Syntax" - -v : - ``` - - This effectively establishes a tunnel through the container wall that you can use to access that part of your filesystem. - - This is covered in more detail in [Part 5 of Hello Nextflow](../hello_nextflow/05_hello_containers.md). - -#### 4.1.3. Run the `cowpy` tool - -From inside the container, you can run the `cowpy` command directly. - -```bash -echo "Hello Containers" | cowpy -``` - -??? success "Command output" - - ```console - __________________ - < Hello Containers > - ------------------ - \ ^__^ - \ (oo)\_______ - (__)\ )\/\ - ||----w | - || || - ``` - -This produces ASCII art of the default cow character (or 'cowacter') with a speech bubble containing the text we specified. - -Now that you have tested the basic usage, you can try giving it some parameters. -For example, the tool documentation says we can set the character with `-c`. - -```bash -echo "Hello Containers" | cowpy -c tux -``` - -??? success "Command output" - - ```console - __________________ - < Hello Containers > - ------------------ - \ - \ - .--. - |o_o | - |:_/ | - // \ \ - (| | ) - /'\_ _/`\ - \___)=(___/ - ``` - -This time the ASCII art output shows the Linux penguin, Tux, because we specified the `-c tux` parameter. - -Since you're inside the container, you can run the cowpy command as many times as you like, varying the input parameters, without having to worry about install any libraries on your system itself. - -??? tip "Other available characters" - - Use the '-c' flag to pick a different character, including: - - `beavis`, `cheese`, `daemon`, `dragonandcow`, `ghostbusters`, `kitty`, `moose`, `milk`, `stegosaurus`, `turkey`, `turtle`, `tux` - -Feel free to play around with this. -When you're done, exit the container using the `exit` command: - -```bash -exit -``` - -You will find yourself back in your normal shell. - -### 4.2. Use a container in a workflow - -When we run a pipeline, we want to be able to tell Nextflow what container to use at each step, and importantly, we want it to handle all that work we just did: pull the container, spin it up, run the command and tear the container down when it's done. - -Good news: that's exactly what Nextflow is going to do for us. -We just need to specify a container for each process. - -To demonstrate how this work, we made another version of our workflow that runs `cowpy` on the file of collected greetings produced in the third step. - -
---8<-- "docs/en/docs/hello_nextflow/img/hello-pipeline-cowpy.svg" -
- -This should output a file containing the ASCII art with the three greetings in the speech bubble. - -#### 4.2.1. Examine the code - -The workflow is very similar to the previous one, plus the extra step to run `cowpy`. - -??? full-code "Full code file" - - ```groovy title="2d-container.nf" linenums="1" hl_lines="7 15 32 39 59-62" - #!/usr/bin/env nextflow - - // Include modules - include { sayHello } from './modules/sayHello.nf' - include { convertToUpper } from './modules/convertToUpper.nf' - include { collectGreetings } from './modules/collectGreetings.nf' - include { cowpy } from './modules/cowpy.nf' - - /* - * Pipeline parameters - */ - params { - input: Path - batch: String = 'batch' - character: String - } - - workflow { - - main: - // create a channel for inputs from a CSV file - greeting_ch = channel.fromPath(params.input) - .splitCsv() - .map { line -> line[0] } - // emit a greeting - sayHello(greeting_ch) - // convert the greeting to uppercase - convertToUpper(sayHello.out) - // collect all the greetings into one file - collectGreetings(convertToUpper.out.collect(), params.batch) - // generate ASCII art of the greetings with cowpy - cowpy(collectGreetings.out.outfile, params.character) - - publish: - first_output = sayHello.out - uppercased = convertToUpper.out - collected = collectGreetings.out.outfile - batch_report = collectGreetings.out.report - cowpy_art = cowpy.out - } - - output { - first_output { - path '2d-container/intermediates' - mode 'copy' - } - uppercased { - path '2d-container/intermediates' - mode 'copy' - } - collected { - path '2d-container/intermediates' - mode 'copy' - } - batch_report { - path '2d-container' - mode 'copy' - } - cowpy_art { - path '2d-container' - mode 'copy' - } - } - ``` - -You see that this workflow imports a `cowpy` process from a module file, and calls it on the output of the `collectGreetings()` call, plus an input parameter called `params.character`. - -```groovy title="2d-container.nf" linenums="31" -// generate ASCII art of the greetings with cowpy -cowpy(collectGreetings.out.outfile, params.character) -``` - -The `cowpy` process, which wraps the cowpy command to generate ASCII art, is defined in the `cowpy.nf` module. - -??? full-code "Full code file" - - ```groovy title="modules/cowpy.nf" linenums="1" - #!/usr/bin/env nextflow - - // Generate ASCII art with cowpy (https://github.com/jeffbuttars/cowpy) - process cowpy { - - container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' - - input: - path input_file - val character - - output: - path "cowpy-${input_file}" - - script: - """ - cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file} - """ - } - ``` - -The `cowpy` process requires two inputs: the path to an input file containing the text to put in the speech bubble (`input_file`), and a value for the character variable. - -Importantly, it also includes the line `container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273'`, which points to the container URI we used earlier. - -#### 4.2.2. Check that Docker is enabled in the configuration - -We're going to slightly anticipate Part 3 of this training course by introducing the `nextflow.config` configuration file, which is one of the main ways Nextflow offers for configuring workflow execution. -When a file named `nextflow.config` is present in the current directory, Nextflow will automatically load it in and apply any configuration it contains. - -To that end, we included a `nextflow.config` file with a single line of code that enables Docker. - -```groovy title="nextflow.config" linenums="1" -docker.enabled = true -``` - -This configuration tells Nextflow to use Docker for any process that specifies a compatible container. - -!!! tip - - It is technically possible to enable Docker execution from the command-line, on a per-run basis, using the `-with-docker ` parameter. - However, that only allows us to specify one container for the entire workflow, whereas the approach we just showed you allows us to specify a different container per process. - The latter is much better for modularity, code maintenance and reproducibility. - -#### 4.2.3. Run the workflow - -Just to recap, this is what we are about to run: - -
---8<-- "docs/en/docs/hello_nextflow/img/hello_pipeline_complete.svg" -
- -Do you think it's going to work? - -Let's run the workflow with the `-resume` flag, and specify that we want the character to be the turkey. - -```bash -nextflow run 2d-container.nf --input data/greetings.csv --character turkey -resume -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `2d-container.nf` [elegant_brattain] revision: 028a841db1 - - executor > local (1) - [95/fa0bac] sayHello (3) | 3 of 3, cached: 3 ✔ - [92/32533f] convertToUpper (3) | 3 of 3, cached: 3 ✔ - [aa/e697a2] collectGreetings | 1 of 1, cached: 1 ✔ - [7f/caf718] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 2d-container/intermediates/Bonjour-output.txt - - 2d-container/intermediates/Hola-output.txt - - 2d-container/intermediates/Hello-output.txt - - uppercased: - - 2d-container/intermediates/UPPER-Hola-output.txt - - 2d-container/intermediates/UPPER-Hello-output.txt - - 2d-container/intermediates/UPPER-Bonjour-output.txt - - collected: 2d-container/intermediates/COLLECTED-batch-output.txt - - batch_report: 2d-container/batch-report.txt - - cowpy_art: 2d-container/cowpy-COLLECTED-batch-output.txt - ``` - -The first three steps cached since we've already run them before, but the `cowpy` process is new so that actually gets run. - -You can find the output of the `cowpy` step in the `results` directory. - -??? abstract "File contents" - - ```console title="results/2d-container/cowpy-COLLECTED-batch-output.txt" - _________ - / HOLA \ - | HELLO | - \ BONJOUR / - --------- - \ ,+*^^*+___+++_ - \ ,*^^^^ ) - \ _+* ^**+_ - \ +^ _ _++*+_+++_, ) - _+^^*+_ ( ,+*^ ^ \+_ ) - { ) ( ,( ,_+--+--, ^) ^\ - { (\@) } f ,( ,+-^ __*_*_ ^^\_ ^\ ) - {:;-/ (_+*-+^^^^^+*+*<_ _++_)_ ) ) / - ( / ( ( ,___ ^*+_+* ) < < \ - U _/ ) *--< ) ^\-----++__) ) ) ) - ( ) _(^)^^)) ) )\^^^^^))^*+/ / / - ( / (_))_^)) ) ) ))^^^^^))^^^)__/ +^^ - ( ,/ (^))^)) ) ) ))^^^^^^^))^^) _) - *+__+* (_))^) ) ) ))^^^^^^))^^^^^)____*^ - \ \_)^)_)) ))^^^^^^^^^^))^^^^) - (_ ^\__^^^^^^^^^^^^))^^^^^^^) - ^\___ ^\__^^^^^^))^^^^^^^^)\\ - ^^^^^\uuu/^^\uuu/^^^^\^\^\^\^\^\^\^\ - ___) >____) >___ ^\_\_\_\_\_\_\) - ^^^//\\_^^//\\_^ ^(\_\_\_\) - ^^^ ^^ ^^^ ^ - ``` - -You see that the character is saying all the greetings, since it ran on the file of collected uppercased greetings. - -More to the point, we were able to run this as part of our pipeline without having to do a proper installation of cowpy and all its dependencies. -And we can now share the pipeline with collaborators and have them run it on their infrastructure without them needing to install anything either, aside from Docker or one of its alternatives (such as Singularity/Apptainer) as mentioned above. - -#### 4.2.4. Inspect how Nextflow launched the containerized task - -As a final coda to this section, let's take a look at the work subdirectory for one of the `cowpy` process calls to get a bit more insight on how Nextflow works with containers under the hood. - -Check the output from your `nextflow run` command to find the path to the work subdirectory for the `cowpy` process. -Looking at what we got for the run shown above, the console log line for the `cowpy` process starts with `[7f/caf718]`. -That corresponds to the following truncated directory path: `work/7f/caf718`. - -In that directory, you will find the `.command.run` file that contains all the commands Nextflow ran on your behalf in the course of executing the pipeline. - -??? abstract "File contents" - - ```console title="work/7f/caf71890cce1667c094d880f4b6dcc/.command.run" - #!/bin/bash - ### --- - ### name: 'cowpy' - ### container: 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' - ### outputs: - ### - 'cowpy-COLLECTED-batch-output.txt' - ### ... - set -e - set -u - NXF_DEBUG=${NXF_DEBUG:=0}; [[ $NXF_DEBUG > 1 ]] && set -x - NXF_ENTRY=${1:-nxf_main} - - - nxf_sleep() { - sleep $1 2>/dev/null || sleep 1; - } - - nxf_date() { - local ts=$(date +%s%3N); - if [[ ${#ts} == 10 ]]; then echo ${ts}000 - elif [[ $ts == *%3N ]]; then echo ${ts/\%3N/000} - elif [[ $ts == *3N ]]; then echo ${ts/3N/000} - elif [[ ${#ts} == 13 ]]; then echo $ts - else echo "Unexpected timestamp value: $ts"; exit 1 - fi - } - - nxf_env() { - echo '============= task environment =============' - env | sort | sed "s/\(.*\)AWS\(.*\)=\(.\{6\}\).*/\1AWS\2=\3xxxxxxxxxxxxx/" - echo '============= task output ==================' - } - - nxf_kill() { - declare -a children - while read P PP;do - children[$PP]+=" $P" - done < <(ps -e -o pid= -o ppid=) - - kill_all() { - [[ $1 != $$ ]] && kill $1 2>/dev/null || true - for i in ${children[$1]:=}; do kill_all $i; done - } - - kill_all $1 - } - - nxf_mktemp() { - local base=${1:-/tmp} - mkdir -p "$base" - if [[ $(uname) = Darwin ]]; then mktemp -d $base/nxf.XXXXXXXXXX - else TMPDIR="$base" mktemp -d -t nxf.XXXXXXXXXX - fi - } - - nxf_fs_copy() { - local source=$1 - local target=$2 - local basedir=$(dirname $1) - mkdir -p $target/$basedir - cp -fRL $source $target/$basedir - } - - nxf_fs_move() { - local source=$1 - local target=$2 - local basedir=$(dirname $1) - mkdir -p $target/$basedir - mv -f $source $target/$basedir - } - - nxf_fs_rsync() { - rsync -rRl $1 $2 - } - - nxf_fs_rclone() { - rclone copyto $1 $2/$1 - } - - nxf_fs_fcp() { - fcp $1 $2/$1 - } - - on_exit() { - local last_err=$? - local exit_status=${nxf_main_ret:=0} - [[ ${exit_status} -eq 0 && ${nxf_unstage_ret:=0} -ne 0 ]] && exit_status=${nxf_unstage_ret:=0} - [[ ${exit_status} -eq 0 && ${last_err} -ne 0 ]] && exit_status=${last_err} - printf -- $exit_status > /workspaces/training/nextflow-run/work/7f/caf71890cce1667c094d880f4b6dcc/.exitcode - set +u - docker rm $NXF_BOXID &>/dev/null || true - exit $exit_status - } - - on_term() { - set +e - docker stop $NXF_BOXID - } - - nxf_launch() { - docker run -i --cpu-shares 1024 -e "NXF_TASK_WORKDIR" -v /workspaces/training/nextflow-run/work:/workspaces/training/nextflow-run/work -w "$NXF_TASK_WORKDIR" --name $NXF_BOXID community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273 /bin/bash -ue /workspaces/training/nextflow-run/work/7f/caf71890cce1667c094d880f4b6dcc/.command.sh - } - - nxf_stage() { - true - # stage input files - rm -f COLLECTED-batch-output.txt - ln -s /workspaces/training/nextflow-run/work/7f/f435e3f2cf95979b5f3d7647ae6696/COLLECTED-batch-output.txt COLLECTED-batch-output.txt - } - - nxf_unstage_outputs() { - true - } - - nxf_unstage_controls() { - true - } - - nxf_unstage() { - if [[ ${nxf_main_ret:=0} == 0 ]]; then - (set -e -o pipefail; (nxf_unstage_outputs | tee -a .command.out) 3>&1 1>&2 2>&3 | tee -a .command.err) - nxf_unstage_ret=$? - fi - nxf_unstage_controls - } - - nxf_main() { - trap on_exit EXIT - trap on_term TERM INT USR2 - trap '' USR1 - - [[ "${NXF_CHDIR:-}" ]] && cd "$NXF_CHDIR" - export NXF_BOXID="nxf-$(dd bs=18 count=1 if=/dev/urandom 2>/dev/null | base64 | tr +/ 0A | tr -d '\r\n')" - NXF_SCRATCH='' - [[ $NXF_DEBUG > 0 ]] && nxf_env - touch /workspaces/training/nextflow-run/work/7f/caf71890cce1667c094d880f4b6dcc/.command.begin - set +u - set -u - [[ $NXF_SCRATCH ]] && cd $NXF_SCRATCH - export NXF_TASK_WORKDIR="$PWD" - nxf_stage - - set +e - (set -o pipefail; (nxf_launch | tee .command.out) 3>&1 1>&2 2>&3 | tee .command.err) & - pid=$! - wait $pid || nxf_main_ret=$? - nxf_unstage - } - - $NXF_ENTRY - ``` - -If you search for `nxf_launch` in this file, you should see something like this: - -```console -nxf_launch() { - docker run -i --cpu-shares 1024 -e "NXF_TASK_WORKDIR" -v /workspaces/training/nextflow-run/work:/workspaces/training/nextflow-run/work -w "$NXF_TASK_WORKDIR" --name $NXF_BOXID community.wave.seqera.io/library/pip_cowpy:131d6a1b707a8e65 /bin/bash -ue /workspaces/training/nextflow-run/work/7f/caf7189fca6c56ba627b75749edcb3/.command.sh -} -``` - -This launch command shows that Nextflow is using a very similar `docker run` command to launch the process call as we did when we ran it manually. -It also mounts the corresponding work subdirectory into the container, sets the working directory inside the container accordingly, and runs our templated bash script in the `.command.sh` file. - -This confirms that all the hard work we had to do manually in the previous section is now done for us by Nextflow! - -### Takeaway - -You understand what role containers play in managing software tool versions and ensuring reproducibility. - -More generally, you have a basic understanding of what are the core components of real-world Nextflow pipelines and how they are organized. -You know the fundamentals of how Nextflow can process multiple inputs efficiently, run workflows composed of multiple steps connected together, leverage modular code components, and utilize containers for greater reproducibility and portability. - -### What's next? - -Take another break! That was a big pile of information about how Nextflow pipelines work. - -In the last section of this training, we're going to delve deeper into the topic of configuration. -You will learn how to configure the execution of your pipeline to fit your infrastructure as well as manage configuration of inputs and parameters. - ---- - -## Quiz - - -Why does Nextflow create a separate task directory for each process call? -- [ ] To improve execution speed -- [ ] To reduce memory usage -- [x] To isolate executions and avoid collisions between outputs -- [ ] To enable parallel file compression - -Learn more: [1.3. Find the original outputs and logs](#13-find-the-original-outputs-and-logs) - - - -What does the `-ansi-log false` option do when running a workflow? -- [ ] Disables all console output -- [x] Removes color from the output -- [x] Shows all task directory paths instead of condensing them on one line -- [ ] Enables verbose debugging mode - -Learn more: [1.3.2. Make the terminal show more details](#132-make-the-terminal-show-more-details) - -You can also use either of the following environment variables if you prefer this style: - -```bash -export NXF_ANSI_LOG=0 -# or -export NO_COLOR=1 -``` - - - - -In the code `#!groovy channel.fromPath(params.input).splitCsv().map { line -> line[0] }`, what does `#!groovy .map { line -> line[0] }` do? -- [ ] Filters out empty lines -- [ ] Sorts the lines alphabetically -- [x] Extracts the first column from each CSV row -- [ ] Counts the number of lines - -Learn more: [1.4.1. Loading the input data from the CSV](#141-loading-the-input-data-from-the-csv) - - - -Why is it important to include the input value in output filenames (e.g., `#!groovy "${greeting}-output.txt"`)? -- [ ] To improve processing speed -- [ ] To enable resume functionality -- [x] To prevent output files from overwriting each other when processing multiple inputs -- [ ] To make files easier to compress - -Learn more: [1.4.3. How the outputs are named](#143-how-the-outputs-are-named) - - - -What is the purpose of the `include` statement in a modularized workflow? -- [ ] To copy process code into the workflow file -- [x] To import a process definition from an external module file -- [ ] To include configuration settings -- [ ] To add documentation comments - -Learn more: [3. Running modularized pipelines](#3-running-modularized-pipelines) - - - -When you modularize a workflow and run it with `-resume`, what happens? -- [ ] Caching is disabled for modular processes -- [ ] All tasks must be re-executed -- [x] Caching works normally based on the generated job scripts -- [ ] Only the main workflow file is cached - -Learn more: [3.2. Run the workflow](#32-run-the-workflow) - - - -What does the `container` directive in a process definition specify? -- [ ] The working directory for the process -- [ ] The maximum memory allocation -- [x] The container image URI to use for running the process -- [ ] The output file format - -Learn more: [4.2. Use a container in a workflow](#42-use-a-container-in-a-workflow) - - - -In the `.command.run` file, what does the `nxf_launch` function contain? -- [ ] The Nextflow version information -- [ ] The workflow parameters -- [x] The `docker run` command with volume mounts and container settings -- [ ] The process input declarations - -Learn more: [4.2.4. Inspect how Nextflow launched the containerized task](#424-inspect-how-nextflow-launched-the-containerized-task) - - - -What does Nextflow automatically handle when running a containerized process? (Select all that apply) -- [x] Pulling the container image if needed -- [x] Mounting the work directory into the container -- [x] Running the process script inside the container -- [x] Cleaning up the container instance after execution - -Learn more: [4. Using containerized software](#4-using-containerized-software) - diff --git a/docs/en/docs/nextflow_run/03_config.md b/docs/en/docs/nextflow_run/03_config.md deleted file mode 100644 index eb8e2ff4e7..0000000000 --- a/docs/en/docs/nextflow_run/03_config.md +++ /dev/null @@ -1,1866 +0,0 @@ -# Part 3: Run configuration - -This section will explore how to manage the configuration of a Nextflow pipeline in order to customize its behavior, adapt it to different environments, and optimize resource usage _without altering a single line of the workflow code itself_. - -There are multiple ways to do this, which can be used in combination and are interpreted according to the order of precedence described in the [Configuration](https://nextflow.io/docs/latest/config.html) documentation. - -In this part of the course, we are going to show you the simplest and most common configuration file mechanism, the `nextflow.config` file, which you already encountered in the section on containers in Part 2. - -We'll go over essential components of Nextflow configuration such as process directives, executors, profiles, and parameter files. -By learning to utilize these configuration options effectively, you can take full advantage of the flexibility, scalability, and performance of Nextflow pipelines. - -To exercise these elements of configuration, we're going to be running a fresh copy of the workflow we last ran at the end of Part 2 of this training course, renamed `3-main.nf`. - -If you're not familiar with the Hello pipeline or you could use a reminder, see [this info page](../info/hello_pipeline.md). - ---- - -## 1. Manage workflow input parameters - -??? example "Scenario" - - You've downloaded a pipeline and want to run it repeatedly with the same input files and settings, but you don't want to type out all the parameters every time. - Or perhaps you're setting up the pipeline for a colleague who isn't comfortable with command-line arguments. - -We're going to start with an aspect of configuration that is simply an extension of what we've been working with so far: the management of input parameters. - -Currently, our workflow is set up to accept several parameter values via the command-line, declared in a `params` block in the workflow script itself. -One has a default value set as part of its declaration. - -However, you might want to set defaults for all of them, or override the existing default without having to either specify parameters on the command line, or modify the original script file. - -There are multiple ways of doing that; we're going to show you three basic ways that are very commonly used. - -### 1.1. Set up values in `nextflow.config` - -This is the simplest approach, though it's possibly the least flexible since the main `nextflow.config` file is not something you want to be editing for every run. -But it does have the advantage of separating the concerns of _declaring_ the parameters in the workflow (which definitely belongs there) versus supplying _default values_, which are more at home in a configuration file. - -Let's do this in two steps. - -#### 1.1.1. Create a `params` block in the configuration file - -Make the following code changes in the `nextflow.config` file: - -=== "After" - - ```groovy title="nextflow.config" linenums="1" hl_lines="3-10" - docker.enabled = true - - /* - * Pipeline parameters - */ - params { - input = 'data/greetings.csv' - batch = 'batch' - character = 'turkey' - } - ``` - -=== "Before" - - ```groovy title="nextflow.config" linenums="1" - docker.enabled = true - ``` - -Note that we didn't simply copy the `params` block from the workflow to the configuration file. -For the `batch` parameter that had a default value declared already, the syntax is a little different. -In the workflow file, that's a typed declaration. -In the configuration, those are value assignments. - -Technically, this is sufficient for overriding the default values still specified in the workflow file. -You could modify the default value for `batch` and run the workflow to satisfy yourself that the value set in the configuration file overrides the one set in the workflow file. - -But in the spirit of moving configuration completely to the configuration file, let's remove that default value from the workflow file entirely. - -#### 1.1.2. Remove the default value for `batch` in the workflow file - -Make the following code change to the `3-main.nf` workflow file: - -=== "After" - - ```groovy title="3-main.nf" linenums="9" hl_lines="6" - /* - * Pipeline parameters - */ - params { - input: Path - batch: String - character: String - } - ``` - -=== "Before" - - ```groovy title="3-main.nf" linenums="9" hl_lines="6" - /* - * Pipeline parameters - */ - params { - input: Path - batch: String = 'batch' - character: String - } - ``` - -Now the workflow file itself does not set any default values for these parameters. - -#### 1.1.3. Run the pipeline - -Let's test that it works correctly without specifying any parameters in the command line. - -```bash -nextflow run 3-main.nf -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [disturbed_einstein] revision: ede9037d02 - - executor > local (8) - [f0/35723c] sayHello (2) | 3 of 3 ✔ - [40/3efd1a] convertToUpper (3) | 3 of 3 ✔ - [17/e97d32] collectGreetings | 1 of 1 ✔ - [98/c6b57b] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 3-main/intermediates/Hello-output.txt - - 3-main/intermediates/Bonjour-output.txt - - 3-main/intermediates/Hola-output.txt - - uppercased: - - 3-main/intermediates/UPPER-Hello-output.txt - - 3-main/intermediates/UPPER-Bonjour-output.txt - - 3-main/intermediates/UPPER-Hola-output.txt - - collected: 3-main/intermediates/COLLECTED-batch-output.txt - - batch_report: 3-main/batch-report.txt - - cowpy_art: 3-main/cowpy-COLLECTED-batch-output.txt - ``` - -This still produces the same output as previously. - -The final ASCII art output is in the `results/3-main/` directory, under the name `cowpy-COLLECTED-batch-output.txt`, same as before. - -??? abstract "File contents" - - ```console title="results/3-main/cowpy-COLLECTED-batch-output.txt" - _________ - / HOLA \ - | HELLO | - \ BONJOUR / - --------- - \ ,+*^^*+___+++_ - \ ,*^^^^ ) - \ _+* ^**+_ - \ +^ _ _++*+_+++_, ) - _+^^*+_ ( ,+*^ ^ \+_ ) - { ) ( ,( ,_+--+--, ^) ^\ - { (\@) } f ,( ,+-^ __*_*_ ^^\_ ^\ ) - {:;-/ (_+*-+^^^^^+*+*<_ _++_)_ ) ) / - ( / ( ( ,___ ^*+_+* ) < < \ - U _/ ) *--< ) ^\-----++__) ) ) ) - ( ) _(^)^^)) ) )\^^^^^))^*+/ / / - ( / (_))_^)) ) ) ))^^^^^))^^^)__/ +^^ - ( ,/ (^))^)) ) ) ))^^^^^^^))^^) _) - *+__+* (_))^) ) ) ))^^^^^^))^^^^^)____*^ - \ \_)^)_)) ))^^^^^^^^^^))^^^^) - (_ ^\__^^^^^^^^^^^^))^^^^^^^) - ^\___ ^\__^^^^^^))^^^^^^^^)\\ - ^^^^^\uuu/^^\uuu/^^^^\^\^\^\^\^\^\^\ - ___) >____) >___ ^\_\_\_\_\_\_\) - ^^^//\\_^^//\\_^ ^(\_\_\_\) - ^^^ ^^ ^^^ ^ - ``` - -Functionally, this move has changed nothing, but conceptually it's a little cleaner to have the default values set in the configuration file. - -### 1.2. Use a run-specific configuration file - -??? example "Scenario" - - You want to experiment with different settings without modifying your main configuration file. - -You can do that by creating a new `nextflow.config` file in a subdirectory that you'll use as working directory for your experiments. - -#### 1.2.1. Create the working directory with a blank configuration - -Let's start by creating a new directory and moving into it: - -```bash -mkdir -p tux-run -cd tux-run -``` - -Then, create a blank configuration file in that directory: - -```bash -touch nextflow.config -``` - -This produces an empty file. - -#### 1.2.2. Set up the experimental configuration - -Now open the new file and add the parameters you want to customize: - -```groovy title="tux-run/nextflow.config" linenums="1" -params { - input = '../data/greetings.csv' - batch = 'experiment' - character = 'tux' -} -``` - -Note that the path to the input file must reflect the directory structure. - -#### 1.2.3. Run the pipeline - -We can now run our pipeline from within our new working directory. -Make sure to adapt the path accordingly! - -```bash -nextflow run ../3-main.nf -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `../3-main.nf` [trusting_escher] revision: 356df0818d - - executor > local (8) - [59/b66913] sayHello (2) | 3 of 3 ✔ - [ad/f06364] convertToUpper (3) | 3 of 3 ✔ - [10/714895] collectGreetings | 1 of 1 ✔ - [88/3ece98] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/tux-run/results - - first_output: - - 3-main/intermediates/Hola-output.txt - - 3-main/intermediates/Bonjour-output.txt - - 3-main/intermediates/Hello-output.txt - - uppercased: - - 3-main/intermediates/UPPER-Bonjour-output.txt - - 3-main/intermediates/UPPER-Hello-output.txt - - 3-main/intermediates/UPPER-Hola-output.txt - - collected: 3-main/intermediates/COLLECTED-experiment-output.txt - - batch_report: 3-main/experiment-report.txt - - cowpy_art: 3-main/cowpy-COLLECTED-experiment-output.txt - ``` - -This will create a new set of directories under `tux-run/` including `tux-run/work/` and `tux-run/results/`. - -In this run, Nextflow combines the `nextflow.config` in our current directory with the `nextflow.config` in the root directory of the pipeline, and thereby overrides the default character (turkey) with the tux character. - -The final output file should contain the tux character saying the greetings. - -??? abstract "File contents" - - ```console title="tux-run/results/3-main/cowpy-COLLECTED-experiment-output.txt" - _________ - / HELLO \ - | BONJOUR | - \ HOLA / - --------- - \ - \ - .--. - |o_o | - |:_/ | - // \ \ - (| | ) - /'\_ _/`\ - \___)=(___/ - - ``` - -That's it; now you have a space for experimenting without modifying your 'normal' configuration. - -!!! warning - - Make sure to change back to the previous directory before moving to the next section! - - ```bash - cd .. - ``` - -Now let's look at another useful way to set parameter values. - -### 1.3. Use a parameter file - -??? example "Scenario" - - You need to share exact run parameters with a collaborator, or record them for a publication. - -The subdirectory approach works great for experimenting, but it does involve a bit of setup and requires that you adapt paths accordingly. -There's a simpler approach for when you want to run your pipeline with a specific set of values, or enable someone else to do it with minimal effort. - -Nextflow allows us to specify parameters via a [parameter file](https://nextflow.io/docs/latest/config.html#parameter-file) in either YAML or JSON format, which makes it very convenient to manage and distribute alternative sets of default values, for example, as well as run-specific parameter values. - -#### 1.3.1. Examine the example parameter file - -To demonstrate this, we provide an example parameter file in the current directory, called `test-params.yaml`: - -```yaml title="test-params.yaml" linenums="1" -input: "data/greetings.csv" -batch: "yaml" -character: "stegosaurus" -``` - -This parameter file contains a key-value pair for each of the inputs that we want to specify. -Note the use of colons (`:`) instead of equal signs (`=`) if you compare the syntax to the configuration file. -The config file is written in Groovy, whereas the parameter file is written in YAML. - -!!! info - - We also provide a JSON version of the parameter file as an example but we're not going to run with it here. - Feel free to try that one on your own. - -#### 1.3.2. Run the pipeline - -To run the workflow with this parameter file, simply add `-params-file ` to the base command. - -```bash -nextflow run 3-main.nf -params-file test-params.yaml -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [disturbed_sammet] revision: ede9037d02 - - executor > local (8) - [2b/9a7d1e] sayHello (2) | 3 of 3 ✔ - [5c/8f3b2a] convertToUpper (3) | 3 of 3 ✔ - [a3/29d8fb] collectGreetings | 1 of 1 ✔ - [b7/83ef12] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results - - first_output: - - 3-main/intermediates/Hola-output.txt - - 3-main/intermediates/Hello-output.txt - - 3-main/intermediates/Bonjour-output.txt - - uppercased: - - 3-main/intermediates/UPPER-Hola-output.txt - - 3-main/intermediates/UPPER-Hello-output.txt - - 3-main/intermediates/UPPER-Bonjour-output.txt - - collected: 3-main/intermediates/COLLECTED-yaml-output.txt - - batch_report: 3-main/yaml-report.txt - - cowpy_art: 3-main/cowpy-COLLECTED-yaml-output.txt - ``` - -The final output file should contain the stegosaurus character saying the greetings. - -??? abstract "File contents" - - ```console title="results/3-main/cowpy-COLLECTED-yaml-output.txt" - _________ - / HELLO \ - | HOLA | - \ BONJOUR / - --------- - \ . . - \ / `. .' " - \ .---. < > < > .---. - \ | \ \ - ~ ~ - / / | - _____ ..-~ ~-..-~ - | | \~~~\.' `./~~~/ - --------- \__/ \__/ - .' O \ / / \ " - (_____, `._.' | } \/~~~/ - `----. / } | / \__/ - `-. | / | / `. ,~~| - ~-.__| /_ - ~ ^| /- _ `..-' - | / | / ~-. `-. _ _ _ - |_____| |_____| ~ - . _ _ _ _ _> - ``` - -Using a parameter file may seem like overkill when you only have a few parameters to specify, but some pipelines expect dozens of parameters. -In those cases, using a parameter file will allow us to provide parameter values at runtime without having to type massive command lines and without modifying the workflow script. - -It also makes it easier to distribute sets of parameters to collaborators, or as supporting information for a publication, for example. -This makes your work more reproducible by others. - -### Takeaway - -You know how to take advantage of key configuration options for managing workflow inputs. - -### What's next? - -Learn how to manage where and how your workflow outputs get published. - ---- - -## 2. Manage workflow outputs - -??? example "Scenario" - - Your pipeline publishes outputs to a hardcoded directory, but you want to organize results by project or experiment name without editing the workflow code each time. - -The workflow we inherited uses paths for workflow-level output declarations, which isn't terribly flexible and involves a lot of repetition. - -Let's look at a few common ways you might configure this to be more flexible. - -### 2.1. Customize the `outputDir` directory name - -Each version of the workflow we've run so far has published its outputs to a different subdirectory hardcoded into the output definitions. - -We changed where that subdirectory was in Part 1 by using the `-output-dir` CLI flag, but that's still just a static string. -Let's instead configure this in a config file, where we can define more complex dynamic paths. -We could create a whole new parameter for this, but let's use the `batch` parameter since it's right there. - -#### 2.1.1. Set a value for `outputDir` in the configuration file - -The path Nextflow uses for publishing outputs is controlled by the `outputDir` option. -To change the path for all outputs, you can set a value for this option in the `nextflow.config` configuration file. - -Add the following code to the `nextflow.config` file: - -=== "After" - - ```groovy title="nextflow.config" linenums="9" hl_lines="10-13" - /* - * Pipeline parameters - */ - params { - input = 'data/greetings.csv' - batch = 'batch' - character = 'turkey' - } - - /* - * Output settings - */ - outputDir = "results_config/${params.batch}" - ``` - -=== "Before" - - ```groovy title="nextflow.config" linenums="9" - /* - * Pipeline parameters - */ - params { - input = 'data/greetings.csv' - batch = 'batch' - character = 'turkey' - } - ``` - -This will replace the built-in default path, `results/`, with `results_config/` plus the value of the `batch` parameter as subdirectory. - -Remember that you can also set this option from the command-line using the `-output-dir` parameter in your command (`-o` for short), but then you couldn't use the `batch` parameter value. -Using the CLI flag will overwrite `outputDir` in the config if it is set. - -#### 2.1.2. Remove the repeated part of the hardcoded path - -We still have a subdirectory hardcoded in the output options, so let's get rid of that now. - -Make the following code changes in the workflow file: - -=== "After" - - ```groovy title="3-main.nf" linenums="42" hl_lines="3 7 11 15 19" - output { - first_output { - path 'intermediates' - mode 'copy' - } - uppercased { - path 'intermediates' - mode 'copy' - } - collected { - path 'intermediates' - mode 'copy' - } - batch_report { - path '' - mode 'copy' - } - cowpy_art { - path '' - mode 'copy' - } - } - ``` - -=== "Before" - - ```groovy title="3-main.nf" linenums="42" hl_lines="3 7 11 15 19" - output { - first_output { - path '3-main/intermediates' - mode 'copy' - } - uppercased { - path '3-main/intermediates' - mode 'copy' - } - collected { - path '3-main/intermediates' - mode 'copy' - } - batch_report { - path '3-main' - mode 'copy' - } - cowpy_art { - path '3-main' - mode 'copy' - } - } - ``` - -We could also have just added `${params.batch}` to each path instead of modifying the `outputDir` default, but this is more concise. - -#### 2.1.3. Run the pipeline - -Let's test that it works correctly, setting the batch name to `outdir` from the command line. - -```bash -nextflow run 3-main.nf --batch outdir -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [amazing_church] revision: 6e18cd130e - - executor > local (8) - [9c/6a03ea] sayHello (2) | 3 of 3 ✔ - [11/9e58a6] convertToUpper (3) | 3 of 3 ✔ - [c8/1977e5] collectGreetings | 1 of 1 ✔ - [38/f01eda] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/outdir - - first_output: - - intermediates/Bonjour-output.txt - - intermediates/Hello-output.txt - - intermediates/Hola-output.txt - - uppercased: - - intermediates/UPPER-Bonjour-output.txt - - intermediates/UPPER-Hola-output.txt - - intermediates/UPPER-Hello-output.txt - - collected: intermediates/COLLECTED-outdir-output.txt - - batch_report: outdir-report.txt - - cowpy_art: cowpy-COLLECTED-outdir-output.txt - ``` - -This still produces the same output as previously, except this time we find our outputs under `results_config/outdir/`. - -??? abstract "Directory contents" - - ```console - results_config/outdir - ├── cowpy-COLLECTED-outdir-output.txt - ├── intermediates - │ ├── Bonjour-output.txt - │ ├── COLLECTED-outdir-output.txt - │ ├── Hello-output.txt - │ ├── Hola-output.txt - │ ├── UPPER-Bonjour-output.txt - │ ├── UPPER-Hello-output.txt - │ └── UPPER-Hola-output.txt - └── outdir-report.txt - ``` - -You can combine this approach with custom path definitions to construct any directory hierarchy you like. - -### 2.2. Organize outputs by process - -One popular way to organize outputs further is to do it by process, _i.e._ create subdirectories for each process run in the pipeline. - -#### 2.2.1. Replace the output paths by a reference to process names - -All you need to do is reference the name of the process as `.name` in the output path declaration. - -Make the following changes in the workflow file: - -=== "After" - - ```groovy title="3-main.nf" linenums="42" hl_lines="3 7 11 15 19" - output { - first_output { - path { sayHello.name } - mode 'copy' - } - uppercased { - path { convertToUpper.name } - mode 'copy' - } - collected { - path { collectGreetings.name } - mode 'copy' - } - batch_report { - path { collectGreetings.name } - mode 'copy' - } - cowpy_art { - path { cowpy.name } - mode 'copy' - } - } - ``` - -=== "Before" - - ```groovy title="3-main.nf" linenums="42" hl_lines="3 7 11 15 19" - output { - first_output { - path 'intermediates' - mode 'copy' - } - uppercased { - path 'intermediates' - mode 'copy' - } - collected { - path 'intermediates' - mode 'copy' - } - batch_report { - path '' - mode 'copy' - } - cowpy_art { - path '' - mode 'copy' - } - } - ``` - -This removes the remaining hardcoded elements from the output path configuration. - -#### 2.2.2. Run the pipeline - -Let's test that it works correctly, setting the batch name to `pnames` from the command line. - -```bash -nextflow run 3-main.nf --batch pnames -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [jovial_mcclintock] revision: ede9037d02 - - executor > local (8) - [4a/c2e6b8] sayHello (2) | 3 of 3 ✔ - [6f/d4a172] convertToUpper (3) | 3 of 3 ✔ - [e8/4f19d7] collectGreetings | 1 of 1 ✔ - [f2/a85c36] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/pnames - - first_output: - - sayHello/Bonjour-output.txt - - sayHello/Hola-output.txt - - sayHello/Hello-output.txt - - uppercased: - - convertToUpper/UPPER-Bonjour-output.txt - - convertToUpper/UPPER-Hola-output.txt - - convertToUpper/UPPER-Hello-output.txt - - collected: collectGreetings/COLLECTED-pnames-output.txt - - batch_report: collectGreetings/pnames-report.txt - - cowpy_art: cowpy/cowpy-COLLECTED-pnames-output.txt - ``` - -This still produces the same output as previously, except this time we find our outputs under `results_config/pnames/`, and they are grouped by process. - -??? abstract "Directory contents" - - ```console - results_config/pnames/ - ├── collectGreetings - │ ├── COLLECTED-pnames-output.txt - │ └── pnames-report.txt - ├── convertToUpper - │ ├── UPPER-Bonjour-output.txt - │ ├── UPPER-Hello-output.txt - │ └── UPPER-Hola-output.txt - ├── cowpy - │ └── cowpy-COLLECTED-pnames-output.txt - └── sayHello - ├── Bonjour-output.txt - ├── Hello-output.txt - └── Hola-output.txt - ``` - -!!! note - - Note that here we've erased the distinction between `intermediates` versus final outputs being at the top level. - You can mix and match these approaches and even include multiple variables, for example by setting the first output's path as `#!groovy "${params.batch}/intermediates/${sayHello.name}"` - -### 2.3. Set the publish mode at the workflow level - -Finally, in the spirit of reducing the amount of repetitive code, we can replace the per-output `mode` declarations with a single line in the configuration. - -#### 2.3.1. Add `workflow.output.mode` to the configuration file - -Add the following code to the `nextflow.config` file: - -=== "After" - - ```groovy title="nextflow.config" linenums="2" hl_lines="5" - /* - * Output settings - */ - outputDir = "results_config/${params.batch}" - workflow.output.mode = 'copy' - ``` - -=== "Before" - - ```groovy title="nextflow.config" linenums="12" - /* - * Output settings - */ - outputDir = "results_config/${params.batch}" - ``` - -Just like the `outputDir` option, giving `workflow.output.mode` a value in the configuration file would be sufficient to override what is set in the workflow file, but let's remove the unnecessary code anyway. - -#### 2.3.2. Remove output mode from the workflow file - -Make the following changes in the workflow file: - -=== "After" - - ```groovy title="3-main.nf" linenums="42" - output { - first_output { - path { sayHello.name } - } - uppercased { - path { convertToUpper.name } - } - collected { - path { collectGreetings.name } - } - batch_report { - path { collectGreetings.name } - } - cowpy_art { - path { cowpy.name } - } - } - ``` - -=== "Before" - - ```groovy title="3-main.nf" linenums="42" hl_lines="3 7 11 15 19" - output { - first_output { - path { sayHello.name } - mode 'copy' - } - uppercased { - path { convertToUpper.name } - mode 'copy' - } - collected { - path { collectGreetings.name } - mode 'copy' - } - batch_report { - path { collectGreetings.name } - mode 'copy' - } - cowpy_art { - path { cowpy.name } - mode 'copy' - } - } - ``` - -That's more concise, isn't it? - -#### 2.3.3. Run the pipeline - -Let's test that it works correctly, setting the batch name to `outmode` from the command line. - -```bash -nextflow run 3-main.nf --batch outmode -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [rowdy_sagan] revision: ede9037d02 - - executor > local (8) - [5b/d91e3c] sayHello (2) | 3 of 3 ✔ - [8a/f6c241] convertToUpper (3) | 3 of 3 ✔ - [89/cd3a48] collectGreetings | 1 of 1 ✔ - [9e/71fb52] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/outmode - - first_output: - - sayHello/Bonjour-output.txt - - sayHello/Hola-output.txt - - sayHello/Hello-output.txt - - uppercased: - - convertToUpper/UPPER-Bonjour-output.txt - - convertToUpper/UPPER-Hola-output.txt - - convertToUpper/UPPER-Hello-output.txt - - collected: collectGreetings/COLLECTED-outmode-output.txt - - batch_report: collectGreetings/outmode-report.txt - - cowpy_art: cowpy/cowpy-COLLECTED-outmode-output.txt - ``` - -This still produces the same output as previously, except this time we find our outputs under `results_config/outmode/`. -They are still all proper copies, not symlinks. - -??? abstract "Directory contents" - - ```console - results_config/outmode/ - ├── collectGreetings - │ ├── COLLECTED-outmode-output.txt - │ └── outmode-report.txt - ├── convertToUpper - │ ├── UPPER-Bonjour-output.txt - │ ├── UPPER-Hello-output.txt - │ └── UPPER-Hola-output.txt - ├── cowpy - │ └── cowpy-COLLECTED-outmode-output.txt - └── sayHello - ├── Bonjour-output.txt - ├── Hello-output.txt - └── Hola-output.txt - ``` - -The main reason you might still want to use the per-output way of setting mode is if you want to mix and match within the same workflow, _i.e._ have some outputs be copied and some be symlinked. - -There are plenty of other options that you can customize in this way, but hopefully this gives you a sense of the range of options and how to utilize them effectively to suit your preferences. - -### Takeaway - -You know how to control the naming and structure of the directories where your outputs are published, as well as the workflow output publishing mode. - -### What's next? - -Learn how to adapt your workflow configuration to your compute environment, starting with the software packaging technology. - ---- - -## 3. Select a software packaging technology - -So far we've been looking at configuration elements that control how inputs go in and where inputs come out. Now it's time to focus more specifically on adapting your workflow configuration to your compute environment. - -The first step on that path is specifying where the software packages that will get run in each step are going to be coming from. -Are they already installed in the local compute environment? -Do we need to retrieve images and run them via a container system? -Or do we need to retrieve Conda packages and build a local Conda environment? - -In the very first part of this training course (Parts 1-4) we just used locally installed software in our workflow. -Then in Part 5, we introduced Docker containers and the `nextflow.config` file, which we used to enable the use of Docker containers. - -Now let's see how we can configure an alternative software packaging option via the `nextflow.config` file. - -### 3.1. Disable Docker and enable Conda in the config file - -??? example "Scenario" - - You're moving your pipeline to an HPC cluster where Docker isn't allowed for security reasons. - The cluster supports Singularity and Conda, so you need to switch your configuration accordingly. - -As noted previously, Nextflow supports multiple container technologies including Singularity (which is more widely used on HPC), as well as software package managers such as Conda. - -We can change our configuration file to use Conda instead of Docker. -To do so, let's switch the value of `docker.enabled` to `false`, and add a directive enabling the use of Conda: - -=== "After" - - ```groovy title="nextflow.config" linenums="1" hl_lines="1-2" - docker.enabled = false - conda.enabled = true - ``` - -=== "Before" - - ```groovy title="nextflow.config" linenums="1" hl_lines="1" - docker.enabled = true - ``` - -This will allow Nextflow to create and utilize Conda environments for processes that have Conda packages specified. -Which means we now need to add one of those to our `cowpy` process! - -### 3.2. Specify a Conda package in the process definition - -We've already retrieved the URI for a Conda package containing the `cowpy` tool: `conda-forge::cowpy==1.1.5` - -Now we add the URI to the `cowpy` process definition using the `conda` directive: - -=== "After" - - ```groovy title="modules/cowpy.nf" linenums="4" hl_lines="4" - process cowpy { - - container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' - conda 'conda-forge::cowpy==1.1.5' - - input: - ``` - -=== "Before" - - ```groovy title="modules/cowpy.nf" linenums="4" - process cowpy { - - container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' - - input: - ``` - -To be clear, we're not _replacing_ the `docker` directive, we're _adding_ an alternative option. - -!!! tip - - There are a few different ways to get the URI for a given conda package. - We recommend using the [Seqera Containers](https://seqera.io/containers/) search query, which will give you a URI that you can copy and paste, even if you're not planning to create a container from it. - -### 3.3. Run the workflow to verify that it can use Conda - -Let's try it out. - -```bash -nextflow run 3-main.nf --batch conda -``` - -??? success "Command output" - - ```console title="Output" - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [trusting_lovelace] revision: 028a841db1 - - executor > local (8) - [ee/4ca1f2] sayHello (3) | 3 of 3 ✔ - [20/2596a7] convertToUpper (1) | 3 of 3 ✔ - [b3/e15de5] collectGreetings | 1 of 1 ✔ - [c5/af5f88] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/conda - - first_output: - - sayHello/Bonjour-output.txt - - sayHello/Hola-output.txt - - sayHello/Hello-output.txt - - uppercased: - - convertToUpper/UPPER-Bonjour-output.txt - - convertToUpper/UPPER-Hello-output.txt - - convertToUpper/UPPER-Hola-output.txt - - collected: collectGreetings/COLLECTED-conda-output.txt - - batch_report: collectGreetings/conda-report.txt - - cowpy_art: cowpy/cowpy-COLLECTED-conda-output.txt - ``` - -This should work without issue and produce the same outputs as previously under `results_config/conda`. - -Behind the scenes, Nextflow has retrieved the Conda packages and created the environment, which normally takes a bit of work; so it's nice that we don't have to do any of that ourselves! - -!!! info - - This runs quickly because the `cowpy` package is quite small, but if you're working with large packages, it may take a bit longer than usual the first time, and you might see the console output stay 'stuck' for a minute or so before completing. - This is normal and is due to the extra work Nextflow does the first time you use a new package. - -From our standpoint, it looks like it works exactly the same as running with Docker, even though on the backend the mechanics are a bit different. - -This means we're all set to run with Conda environments if needed. - -??? info "Mixing and matching Docker and Conda" - - Since these directives are assigned per process, it is possible 'mix and match', _i.e._ configure some of the processes in your workflow to run with Docker and others with Conda, for example, if the compute infrastructure you are using supports both. - In that case, you would enable both Docker and Conda in your configuration file. - If both are available for a given process, Nextflow will prioritize containers. - - And as noted earlier, Nextflow supports multiple other software packaging and container technologies, so you are not limited to just those two. - -### Takeaway - -You know how to configure which software package each process should use, and how to switch between technologies. - -### What's next? - -Learn how to change the execution platform used by Nextflow to actually do the work. - ---- - -## 4. Select an execution platform - -??? example "Scenario" - - You've been developing and testing your pipeline on your laptop, but now you need to run it on thousands of samples. - Your institution has an HPC cluster with a Slurm scheduler that you'd like to use instead. - -Until now, we've been running our pipeline with the local executor. -This executes each task on the machine that Nextflow is running on. -When Nextflow begins, it looks at the available CPUs and memory. -If the resources of the tasks ready to run exceed the available resources, Nextflow will hold the last tasks back from execution until one or more of the earlier tasks have finished, freeing up the necessary resources. - -The local executor is convenient and efficient, but it is limited to that single machine. For very large workloads, you may discover that your local machine is a bottleneck, either because you have a single task that requires more resources than you have available, or because you have so many tasks that waiting for a single machine to run them would take too long. - -Nextflow supports [many different execution backends](https://nextflow.io/docs/latest/executor.html), including HPC schedulers (Slurm, LSF, SGE, PBS, Moab, OAR, Bridge, HTCondor and others) as well as cloud execution backends such (AWS Batch, Google Cloud Batch, Azure Batch, Kubernetes and more). - -### 4.1. Targeting a different backend - -The choice of executor is set by a process directive called `executor`. -By default it is set to `local`, so the following configuration is implied: - -```groovy title="Built-in configuration" -process { - executor = 'local' -} -``` - -To set the executor to target a different backend, you would simply specify the executor you want using similar syntax as described above for resource allocations (see [Executors](https://nextflow.io/docs/latest/executor.html) for all options). - -```groovy title="nextflow.config" -process { - executor = 'slurm' -} -``` - -!!! warning - - We can't actually test this in the training environment because it's not set up to connect to an HPC. - -### 4.2. Dealing with backend-specific syntax for execution parameters - -Most high-performance computing platforms allow (and sometimes require) that you specify certain parameters such as resource allocation requests and limitations (for e.g. number of CPUs and memory) and name of the job queue to use. - -Unfortunately, each of these systems uses different technologies, syntaxes and configurations for defining how a job should be defined and submitted to the relevant scheduler. - -??? abstract "Examples" - - For example, the same job requiring 8 CPUs and 4GB of RAM to be executed on the queue "my-science-work" needs to be expressed in different following ways depending on the backend. - - ```bash title="Config for SLURM / submit using sbatch" - #SBATCH -o /path/to/my/task/directory/my-task-1.log - #SBATCH --no-requeue - #SBATCH -c 8 - #SBATCH --mem 4096M - #SBATCH -p my-science-work - ``` - - ```bash title="Config for PBS / submit using qsub" - #PBS -o /path/to/my/task/directory/my-task-1.log - #PBS -j oe - #PBS -q my-science-work - #PBS -l nodes=1:ppn=5 - #PBS -l mem=4gb - ``` - - ```bash title="Config for SGE / submit using qsub" - #$ -o /path/to/my/task/directory/my-task-1.log - #$ -j y - #$ -terse - #$ -notify - #$ -q my-science-work - #$ -l slots=5 - #$ -l h_rss=4096M,mem_free=4096M - ``` - -Fortunately, Nextflow simplifies all of this. -It provides a standardized syntax so that you can specify the relevant properties such as `cpus`, `memory` and `queue` just once (see [Process directives](https://nextflow.io/docs/latest/reference/process.html#process-directives) for all available options). -Then, at runtime, Nextflow will use those settings to generate the appropriate backend-specific scripts based on the executor setting. - -We'll cover that standardized syntax in the next section. - -### Takeaway - -You now know how to change the executor to use different kinds of computing infrastructure. - -### What's next? - -Learn how to evaluate and express resource allocations and limitations in Nextflow. - ---- - -## 5. Control compute resource allocations - -??? example "Scenario" - - Your pipeline keeps failing on the cluster because tasks are being killed for exceeding memory limits. - Or perhaps you're being charged for resources you're not using and want to optimize costs. - -Most high-performance computing platforms allow (and sometimes require) that you specify certain resource allocation parameters such as number of CPUs and memory. - -By default, Nextflow will use a single CPU and 2GB of memory for each process. -The corresponding process directives are called `cpus` and `memory`, so the following configuration is implied: - -```groovy title="Built-in configuration" linenums="1" -process { - cpus = 1 - memory = 2.GB -} -``` - -You can modify these values, either for all processes or for specific named processes, using additional process directives in your configuration file. -Nextflow will translate them into the appropriate instructions for the chosen executor. - -But how do you know what values to use? - -### 5.1. Run the workflow to generate a resource utilization report - -??? example "Scenario" - - You don't know how much memory or CPU your processes need and want to avoid wasting resources or having jobs killed. - -If you don't know up front how much CPU and memory your processes are likely to need, you can do some resource profiling, meaning you run the workflow with some default allocations, record how much each process used, and from there, estimate how to adjust the base allocations. - -Conveniently, Nextflow includes built-in tools for doing this, and will happily generate a report for you on request. - -To do so, add `-with-report .html` to your command line. - -```bash -nextflow run 3-main.nf -with-report report-config-1.html -``` - -The report is an html file, which you can download and open in your browser. You can also right click it in the file explorer on the left and click on `Show preview` in order to view it in the training environment. - -Take a few minutes to look through the report and see if you can identify some opportunities for adjusting resources. -Make sure to click on the tabs that show the utilization results as a percentage of what was allocated. - -See [Reports](https://nextflow.io/docs/latest/reports.html) for documentation on all available features. - -### 5.2. Set resource allocations for all processes - -The profiling shows that the processes in our training workflow are very lightweight, so let's reduce the default memory allocation to 1GB per process. - -Add the following to your `nextflow.config` file, before the pipeline parameters section: - -```groovy title="nextflow.config" linenums="4" -/* -* Process settings -*/ -process { - memory = 1.GB -} -``` - -That will help reduce the amount of compute we consume. - -### 5.3. Set resource allocations for a specific process - -At the same time, we're going to pretend that the `cowpy` process requires more resources than the others, just so we can demonstrate how to adjust allocations for an individual process. - -=== "After" - - ```groovy title="nextflow.config" linenums="4" hl_lines="6-9" - /* - * Process settings - */ - process { - memory = 1.GB - withName: 'cowpy' { - memory = 2.GB - cpus = 2 - } - } - ``` - -=== "Before" - - ```groovy title="nextflow.config" linenums="4" - /* - * Process settings - */ - process { - memory = 1.GB - } - ``` - -With this configuration, all processes will request 1GB of memory and a single CPU (the implied default), except the `cowpy` process, which will request 2GB and 2 CPUs. - -!!! info - - If you have a machine with few CPUs and you allocate a high number per process, you might see process calls getting queued behind each other. - This is because Nextflow ensures we don't request more CPUs than are available. - -### 5.4. Run the workflow with the updated configuration - -Let's try that out, supplying a different filename for the profiling report so we can compare performance before and after the configuration changes. - -```bash -nextflow run 3-main.nf -with-report report-config-2.html -``` - -You will probably not notice any real difference since this is such a small workload, but this is the approach you would use to analyze the performance and resource requirements of a real-world workflow. - -It is very useful when your processes have different resource requirements. It empowers you to right-size the resource allocations you set up for each process based on actual data, not guesswork. - -!!! tip - - This is just a tiny taster of what you can do to optimize your use of resources. - Nextflow itself has some really neat [dynamic retry logic](https://nextflow.io/docs/latest/process.html#dynamic-task-resources) built in to retry jobs that fail due to resource limitations. - Additionally, the Seqera Platform offers AI-driven tooling for optimizing your resource allocations automatically as well. - -### 5.5. Add resource limits - -Depending on what computing executor and compute infrastructure you're using, there may be some constraints on what you can (or must) allocate. -For example, your cluster may require you to stay within certain limits. - -You can use the `resourceLimits` directive to set the relevant limitations. The syntax looks like this when it's by itself in a process block: - -```groovy title="Syntax example" -process { - resourceLimits = [ - memory: 750.GB, - cpus: 200, - time: 30.d - ] -} -``` - -Nextflow will translate these values into the appropriate instructions depending on the executor that you specified. - -We're not going to run this, since we don't have access to relevant infrastructure in the training environment. -However, if you were to try running the workflow with resource allocations that exceed these limits, then look up the `sbatch` command in the `.command.run` script file, you would see that the requests that actually get sent to the executor are capped at the values specified by `resourceLimits`. - -??? info "Institutional reference configurations" - - The nf-core project has compiled a [collection of configuration files](https://nf-co.re/configs/) shared by various institutions around the world, covering a wide range of HPC and cloud executors. - - Those shared configs are valuable both for people who work there and can therefore just utilize their institution's configuration out of the box, and as a model for people who are looking to develop a configuration for their own infrastructure. - -### Takeaway - -You know how to generate a profiling report to assess resource utilization and how to modify resource allocations for all processes and/or for individual processes, as well as set resource limitations for running on HPC. - -### What's next? - -Learn how to set up preset configuration profiles and switch between them at runtime. - ---- - -## 6. Use profiles to switch between preset configurations - -??? example "Scenario" - - You regularly switch between running pipelines on your laptop for development and on your institution's HPC for production runs. - You're tired of manually changing configuration settings every time you switch environments. - -We've shown you a number of ways that you can customize your pipeline configuration depending on the project you're working on or the compute environment you're using. - -You may want to switch between alternative settings depending on what computing infrastructure you're using. For example, you might want to develop and run small-scale tests locally on your laptop, then run full-scale workloads on HPC or cloud. - -Nextflow lets you set up any number of [**profiles**](https://nextflow.io/docs/latest/config.html#profiles) that describe different configurations, which you can then select at runtime using a command-line argument, rather than having to modify the configuration file itself. - -### 6.1. Create profiles for switching between local development and execution on HPC - -Let's set up two alternative profiles; one for running small scale loads on a regular computer, where we'll use Docker containers, and one for running on a university HPC with a Slurm scheduler, where we'll use Conda packages. - -#### 6.1.1. Set up the profiles - -Add the following to your `nextflow.config` file, after the pipeline parameters section but before the output settings: - -```groovy title="nextflow.config" linenums="24" -/* -* Profiles -*/ -profiles { - my_laptop { - process.executor = 'local' - docker.enabled = true - } - univ_hpc { - process.executor = 'slurm' - conda.enabled = true - process.resourceLimits = [ - memory: 750.GB, - cpus: 200, - time: 30.d - ] - } -} -``` - -You see that for the university HPC, we're also specifying resource limitations. - -#### 6.1.2. Run the workflow with a profile - -To specify a profile in our Nextflow command line, we use the `-profile` argument. - -Let's try running the workflow with the `my_laptop` configuration. - -```bash -nextflow run 3-main.nf -profile my_laptop -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [gigantic_brazil] revision: ede9037d02 - - executor > local (8) - [58/da9437] sayHello (3) | 3 of 3 ✔ - [35/9cbe77] convertToUpper (2) | 3 of 3 ✔ - [67/857d05] collectGreetings | 1 of 1 ✔ - [37/7b51b5] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/batch - - first_output: - - sayHello/Hello-output.txt - - sayHello/Hola-output.txt - - sayHello/Bonjour-output.txt - - uppercased: - - convertToUpper/UPPER-Hello-output.txt - - convertToUpper/UPPER-Hola-output.txt - - convertToUpper/UPPER-Bonjour-output.txt - - collected: collectGreetings/COLLECTED-batch-output.txt - - batch_report: collectGreetings/batch-report.txt - - cowpy_art: cowpy/cowpy-COLLECTED-batch-output.txt - ``` - -As you can see, this allows us to toggle between configurations very conveniently at runtime. - -!!! warning - - The `univ_hpc` profile will not run properly in the training environment since we do not have access to a Slurm scheduler. - -If in the future we find other elements of configuration that are always co-occurring with these, we can simply add them to the corresponding profile(s). -We can also create additional profiles if there are other elements of configuration that we want to group together. - -### 6.2. Create a profile of test parameters - -??? example "Scenario" - - You want others to be able to try your pipeline quickly without gathering their own input data. - -Profiles are not only for infrastructure configuration. -We can also use them to set default values for workflow parameters, to make it easier for others to try out the workflow without having to gather appropriate input values themselves. -You can consider this an alternative to using a parameter file. - -#### 6.2.1. Set up the profile - -The syntax for expressing default values in this context looks like this, for a profile that we name `test`: - -```groovy title="Syntax example" - test { - params. - params. - ... - } -``` - -If we add a test profile for our workflow, the `profiles` block becomes: - -```groovy title="nextflow.config" linenums="24" -/* -* Profiles -*/ -profiles { - my_laptop { - process.executor = 'local' - docker.enabled = true - } - univ_hpc { - process.executor = 'slurm' - conda.enabled = true - process.resourceLimits = [ - memory: 750.GB, - cpus: 200, - time: 30.d - ] - } - test { - params.input = 'data/greetings.csv' - params.batch = 'test' - params.character = 'dragonandcow' - } -} -``` - -Just like for technical configuration profiles, you can set up multiple different profiles specifying parameters under any arbitrary name you like. - -#### 6.2.2. Run the workflow locally with the test profile - -Conveniently, profiles are not mutually exclusive, so we can specify multiple profiles in our command line using the following syntax `-profile ,` (for any number of profiles). - -If you combine profiles that set values for the same elements of configuration and are described in the same configuration file, Nextflow will resolve the conflict by using whichever value it read in last (_i.e._ whatever comes later in the file). -If the conflicting settings are set in different configuration sources, the default [order of precedence](https://www.nextflow.io/docs/latest/config.html) applies. - -Let's try adding the test profile to our previous command: - -```bash -nextflow run 3-main.nf -profile my_laptop,test -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `3-main.nf` [jovial_coulomb] revision: 46a6763141 - - executor > local (8) - [9b/687cdc] sayHello (2) | 3 of 3 ✔ - [ca/552187] convertToUpper (3) | 3 of 3 ✔ - [e8/83e306] collectGreetings | 1 of 1 ✔ - [fd/e84fa9] cowpy | 1 of 1 ✔ - - Outputs: - - /workspaces/training/nextflow-run/results_config/test - - first_output: - - sayHello/Hola-output.txt - - sayHello/Bonjour-output.txt - - sayHello/Hello-output.txt - - uppercased: - - convertToUpper/UPPER-Bonjour-output.txt - - convertToUpper/UPPER-Hola-output.txt - - convertToUpper/UPPER-Hello-output.txt - - collected: collectGreetings/COLLECTED-test-output.txt - - batch_report: collectGreetings/test-report.txt - - cowpy_art: cowpy/cowpy-COLLECTED-test-output.txt - ``` - -This will use Docker where possible and produce outputs under `results_config/test`, and this time the character is the comedic duo `dragonandcow`. - -??? abstract "File contents" - - ```console title="results_config/test/" - _________ - / HOLA \ - | HELLO | - \ BONJOUR / - --------- - \ ^ /^ - \ / \ // \ - \ |\___/| / \// .\ - \ /O O \__ / // | \ \ *----* - / / \/_/ // | \ \ \ | - \@___\@` \/_ // | \ \ \/\ \ - 0/0/| \/_ // | \ \ \ \ - 0/0/0/0/| \/// | \ \ | | - 0/0/0/0/0/_|_ / ( // | \ _\ | / - 0/0/0/0/0/0/`/,_ _ _/ ) ; -. | _ _\.-~ / / - ,-} _ *-.|.-~-. .~ ~ - \ \__/ `/\ / ~-. _ .-~ / - \____(oo) *. } { / - ( (--) .----~-.\ \-` .~ - //__\\ \__ Ack! ///.----..< \ _ -~ - // \\ ///-._ _ _ _ _ _ _{^ - - - - ~ - ``` - -This means that as long as we distribute any test data files with the workflow code, anyone can quickly try out the workflow without having to supply their own inputs via the command line or a parameter file. - -!!! tip - - We can point to URLs for larger files that are stored externally. - Nextflow will download them automatically as long as there is an open connection. - - For more details, see the Side Quest [Working with Files](../side_quests/working_with_files/index.md) - -### 6.3. Use `nextflow config` to see the resolved configuration - -As noted above, sometimes the same parameter can be set to different values in profiles that you want to combine. -And more generally, there are numerous places where elements of configuration can be stored, and sometimes the same properties can be set to different values in different places. - -Nextflow applies a set [order of precedence](https://nextflow.io/docs/latest/config.html#configuration-file) to resolve any conflicts, but that can be tricky to determine yourself. -And even if nothing is conflicting, it can be tedious to look up all the possible places where things could be configured. - -Fortunately, Nextflow includes a convenient utility tool called `config` that can automate that whole process for you. - -The `config` tool will explore all the contents in your current working directory, hoover up any configuration files, and produce the fully resolved configuration that Nextflow would use to run the workflow. -This allows you to find out what settings will be used without having to launch anything. - -#### 6.3.1. Resolve the default configuration - -Run this command to resolve the configuration that would be applied by default. - -```bash -nextflow config -``` - -??? success "Command output" - - ```groovy - params { - input = 'data/greetings.csv' - batch = 'batch' - character = 'turkey' - } - - docker { - enabled = false - } - - conda { - enabled = true - } - - process { - memory = '1 GB' - withName:cowpy { - memory = '2 GB' - cpus = 2 - } - } - - outputDir = 'results_config/batch' - - workflow { - output { - mode = 'copy' - } - } - ``` - -This shows you the base configuration you get if you don't specify anything extra in the command line. - -#### 6.3.2. Resolve the configuration with specific settings activated - -If you provide command-line parameters, e.g. enabling one or more profiles or loading a parameter file, the command will additionally take those into account. - -```bash -nextflow config -profile my_laptop,test -``` - -??? success "Command output" - - ```groovy - params { - input = 'data/greetings.csv' - batch = 'test' - character = 'dragonandcow' - } - - docker { - enabled = true - } - - conda { - enabled = true - } - - process { - memory = '1 GB' - withName:cowpy { - memory = '2 GB' - cpus = 2 - } - executor = 'local' - } - - outputDir = 'results_config/test' - - workflow { - output { - mode = 'copy' - } - } - ``` - -This gets especially useful for complex projects that involve multiple layers of configuration. - -### Takeaway - -You know how to use profiles to select a preset configuration at runtime with minimal hassle. -More generally, you know how to configure your workflow executions to suit different compute platforms and enhance the reproducibility of your analyses. - -### What's next? - -Learn how to run pipelines directly from remote repositories like GitHub. - ---- - -## 7. Run pipelines from remote repositories - -??? example "Scenario" - - You want to run a well-established pipeline like those from nf-core without having to download and manage the code yourself. - -So far we've been running workflow scripts located in the current directory. -In practice, you'll often want to run pipelines stored in remote repositories, such as GitHub. - -Nextflow makes this straightforward: you can run any pipeline directly from a Git repository URL without manually downloading it first. - -### 7.1. Run a pipeline from GitHub - -The basic syntax for running a remote pipeline is `nextflow run `, where `` can be a GitHub repository path like `nextflow-io/hello`, a full URL, or a path to GitLab, Bitbucket, or other Git hosting services. - -Try running the official Nextflow "hello" demo pipeline: - -```bash -nextflow run nextflow-io/hello -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Pulling nextflow-io/hello ... - downloaded from https://github.com/nextflow-io/hello.git - Launching `https://github.com/nextflow-io/hello` [sleepy_swanson] revision: 3c2cdc9823 [master] - - executor > local (4) - [ba/08236d] sayHello (4) | 4 of 4 ✔ - Ciao world! - - Hello world! - - Bonjour world! - - Hola world! - ``` - -The first time you run a remote pipeline, Nextflow downloads it and caches it locally. -Subsequent runs use the cached version unless you explicitly request an update. - -### 7.2. Specify a version for reproducibility - -By default, Nextflow runs the latest version from the default branch. -You can specify a particular version (tag), branch, or commit using the `-r` flag: - -```bash -nextflow run nextflow-io/hello -r v1.3 -``` - -??? success "Command output" - - ```console - N E X T F L O W ~ version 26.04.4 - - Launching `https://github.com/nextflow-io/hello` [sick_carson] revision: 2ce0b0e294 [v1.3] - - executor > local (4) - [61/e11f77] sayHello (4) | 4 of 4 ✔ - Ciao world! - - Bonjour world! - - Hello world! - - Hola world! - ``` - -Specifying exact versions is essential for reproducibility. - -### Takeaway - -You know how to run pipelines directly from GitHub and other remote repositories, and how to specify versions for reproducibility. - -### What's next? - -Give yourself a big pat on the back! -You know everything you need to know to get started running and managing Nextflow pipelines. - -That concludes this course, but if you're eager to keep learning, we have two main recommendations: - -- If you want to dig deeper into developing your own pipelines, have a look at [Hello Nextflow](../hello_nextflow/index.md), a course for beginners that covers the same general progression as this one but goes into much more detail about channels and operators. -- If you would like to continue learning how to run Nextflow pipelines without going deeper into the code, have a look at the first part of [Hello nf-core](../hello_nf-core/index.md), which introduces the tooling for finding and running pipelines from the hugely popular [nf-core](https://nf-co.re/) project. - -Have fun! - ---- - -## Quiz - - -When parameter values are set in both the workflow file and `nextflow.config`, which takes precedence? -- [ ] The workflow file value -- [x] The configuration file value -- [ ] The first value encountered -- [ ] It causes an error - -Learn more: [1.1. Set up values in `nextflow.config`](#11-set-up-values-in-nextflowconfig) - - - -What is the syntax difference between setting a parameter default in a workflow file vs. a config file? -- [ ] They use the same syntax -- [x] Workflow uses typed declaration (`#!groovy param: Type = value`), config uses assignment (`#!groovy param = value`) -- [ ] Config uses typed declaration, workflow uses assignment -- [ ] Only config files can set default values - -Learn more: [1.1. Set up values in `nextflow.config`](#11-set-up-values-in-nextflowconfig) - - - -How do you specify a parameter file when running a workflow? -- [ ] `--params params.yaml` -- [ ] `-config params.yaml` -- [x] `-params-file params.yaml` -- [ ] `--input-params params.yaml` - -Learn more: [1.3. Use a parameter file](#13-use-a-parameter-file) - - - -What does the `outputDir` configuration option control? -- [ ] The location of the work directory -- [x] The base path where workflow outputs are published -- [ ] The directory for log files -- [ ] The location of module files - -Learn more: [2.1. Customize the outputDir directory name](#21-customize-the-outputdir-directory-name) - - - -How do you reference a process name dynamically in output path configuration? -- [ ] `#!groovy ${processName}` -- [ ] `#!groovy path ".name"` -- [x] `#!groovy path { .name }` -- [ ] `@processName` - -Learn more: [2.2. Organize outputs by process](#22-organize-outputs-by-process) - - - -If both Docker and Conda are enabled and a process has both directives, which is prioritized? -- [x] Docker (containers) -- [ ] Conda -- [ ] The first one defined in the process -- [ ] It causes an error - -Learn more: [3. Select a software packaging technology](#3-select-a-software-packaging-technology) - - - -What is the default executor in Nextflow? -- [x] `local` -- [ ] `slurm` -- [ ] `kubernetes` -- [ ] `aws` - -Learn more: [4. Select an execution platform](#4-select-an-execution-platform) - - - -What command generates a resource utilization report? -- [ ] `nextflow run workflow.nf -with-metrics` -- [ ] `nextflow run workflow.nf -with-stats` -- [x] `nextflow run workflow.nf -with-report report.html` -- [ ] `nextflow run workflow.nf -profile report` - -Learn more: [5.1. Run the workflow to generate a resource utilization report](#51-run-the-workflow-to-generate-a-resource-utilization-report) - - - -How do you set resource requirements for a specific process named `cowpy` in the config file? -- [ ] `#!groovy cowpy.memory = '2.GB'` -- [ ] `#!groovy process.cowpy.memory = '2.GB'` -- [x] `#!groovy process { withName: 'cowpy' { memory = '2.GB' } }` -- [ ] `#!groovy resources.cowpy.memory = '2.GB'` - -Learn more: [5.3. Set resource allocations for a specific process](#53-set-resource-allocations-for-a-specific-process) - - - -What does the `resourceLimits` directive do? -- [ ] Sets minimum resource requirements -- [ ] Allocates resources to processes -- [x] Caps the maximum resources that can be requested -- [ ] Monitors resource usage in real-time - -Learn more: [5.5. Add resource limits](#55-add-resource-limits) - - - -How do you specify multiple profiles in a single command? -- [ ] `-profile profile1 -profile profile2` -- [ ] `-profiles profile1,profile2` -- [x] `-profile profile1,profile2` -- [ ] `--profile profile1 --profile profile2` - -Learn more: [6. Use profiles to switch between preset configurations](#6-use-profiles-to-switch-between-preset-configurations) - - - -What command shows the fully resolved configuration that Nextflow would use? -- [ ] `nextflow show-config` -- [ ] `nextflow settings` -- [x] `nextflow config` -- [ ] `nextflow resolve` - -Learn more: [6.3. Use `nextflow config` to see the resolved configuration](#63-use-nextflow-config-to-see-the-resolved-configuration) - - - -What can profiles be used for? (Select all that apply) -- [x] Defining infrastructure-specific settings (executors, containers) -- [x] Setting resource limits for different environments -- [x] Providing test parameters for easy workflow testing -- [ ] Defining new processes - -Learn more: [6. Use profiles to switch between preset configurations](#6-use-profiles-to-switch-between-preset-configurations) - diff --git a/docs/en/docs/nextflow_run/03_manage_executions.md b/docs/en/docs/nextflow_run/03_manage_executions.md new file mode 100644 index 0000000000..6034ef0c29 --- /dev/null +++ b/docs/en/docs/nextflow_run/03_manage_executions.md @@ -0,0 +1,237 @@ +# Part 3: Manage workflow executions + +As you run and re-run pipelines, you accumulate execution history and old `work/` directories. +In [Part 1](./01_run_nextflow.md#23-use-resume-to-skip-completed-work) you already used `-resume` to skip work that was already done. +Here you'll learn how to generate reports about a run, inspect the history of past runs with [`nextflow log`](https://nextflow.io/docs/latest/reference/cli.html#log), and delete old work directories you no longer need with [`nextflow clean`](https://nextflow.io/docs/latest/reference/cli.html#clean). + +--- + +## 1. Generate pipeline reports + +Nextflow can generate several kinds of reports about a run, each added with its own `-with-*` flag: an execution report (`-with-report`), an execution timeline (`-with-timeline`), a task trace file (`-with-trace`), and a workflow diagram (`-with-dag`). +We'll generate the first two here; see [Execution reports](https://nextflow.io/docs/latest/reports.html) in the Nextflow reference for the rest. + +### 1.1. Generate an execution report + +Add `-with-report` to any `nextflow run` command to generate an HTML report after the pipeline completes: + +```bash +nextflow run main.nf --input data/greetings.csv --character turkey -with-report +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [intergalactic_dalembert] DSL2 - revision: ce74f81996 + + executor > local (8) + [34/23f10f] sayHello (2) | 3 of 3 ✔ + [af/cab69d] convertToUpper (3) | 3 of 3 ✔ + [9e/d73afb] collectGreetings | 1 of 1 ✔ + [3c/392db0] cowpy | 1 of 1 ✔ + ``` + +Nextflow writes the report to a file named `report-.html` in the working directory. +Open it in a browser to see an execution summary, a table of every task with its status and runtime, and resource usage charts broken down by process. + +The **Tasks** tab lists every task the pipeline ran, with its process name, status, and resource usage: + +![Execution report tasks table](img/execution_report_tasks.png) + +The report is especially useful when a pipeline takes longer than expected or a task fails: the task table shows exactly where time was spent and which tasks succeeded or failed. + +### 1.2. Generate an execution timeline + +Add `-with-timeline` to a run to get a Gantt-chart-style view of when each task ran: + +```bash +nextflow run main.nf --input data/greetings.csv --character turkey -with-timeline +``` + +??? success "Command output" + + ```console hl_lines="6 7 8 9" + N E X T F L O W ~ version 26.04.4 + + Launching `main.nf` [jolly_noyce] DSL2 - revision: ce74f81996 + + executor > local (8) + [ad/e92ef3] sayHello (3) | 3 of 3 ✔ + [2a/df8a8d] convertToUpper (2) | 3 of 3 ✔ + [be/7fb72a] collectGreetings | 1 of 1 ✔ + [63/dc9bd6] cowpy | 1 of 1 ✔ + ``` + +Nextflow writes the timeline to a file named `timeline-.html`. +Open it in a browser to see a bar for every task, positioned and sized by when it ran and how long it took: + +![Execution timeline](img/execution_timeline.png) + +The timeline makes the fan-out-then-fan-in shape from [Part 1](./01_run_nextflow.md#31-run-the-workflow) visible at a glance: the three `sayHello` tasks run in parallel, then the three `convertToUpper` tasks, then `collectGreetings` and `cowpy` run one after the other since each depends on everything before it. + +### Takeaway + +You know how to generate an HTML execution report with `-with-report` and an execution timeline with `-with-timeline`, and where to look for the other report types Nextflow supports. + +### What's next? + +Learn how to inspect the history of past runs. + +--- + +## 2. Inspect the log of past executions + +Whether you're developing a pipeline or running it in production, at some point you'll need to look up information about past runs. + +### 2.1. The history file + +Every time you launch a Nextflow workflow, a line gets written to a log file called `history`, under a hidden directory called `.nextflow` in the current working directory. + +??? abstract "File contents" + + ```txt title=".nextflow/history" linenums="1" + 2026-09-13 01:47:58 2.8s determined_ramanujan OK ce74f81996b8ce999853fdbb25ba7969 03078950-5011-414f-992b-8fe1bd219ac2 nextflow run main.nf --input data/greetings.csv --character turkey + 2026-09-13 01:48:03 3s prickly_cuvier OK ce74f81996b8ce999853fdbb25ba7969 5a9e8bf7-a7db-4c2c-b1d8-3bd4c7266528 nextflow run main.nf --input data/greetings.csv --character tux + 2026-09-13 01:48:09 2.3s elegant_panini OK ce74f81996b8ce999853fdbb25ba7969 517ccc29-9db7-4d8d-8ea0-c8db6e9ac653 nextflow run main.nf --input data/greetings.csv --character stegosaurus + 2026-09-13 01:48:14 1.5s deadly_lamport OK ce74f81996b8ce999853fdbb25ba7969 517ccc29-9db7-4d8d-8ea0-c8db6e9ac653 nextflow run main.nf --input data/greetings.csv --character stegosaurus -resume + ``` + +Each line gives you the timestamp, duration, run name, status, revision ID, session ID, and full command line for a run launched from this directory. + +Look at the last two lines: they're two separate invocations (one plain, one with `-resume`) of the exact same command, and they share the same session ID. +The session ID only changes when you launch a genuinely new run; using `-resume` keeps it, which is how Nextflow knows which cache to reuse. + +### 2.2. Use `nextflow log` for a friendlier view + +Reading the raw history file works, but `nextflow log` formats the same information with a header: + +```bash +nextflow log +``` + +??? success "Command output" + + ```console linenums="1" + TIMESTAMP DURATION RUN NAME STATUS REVISION ID SESSION ID COMMAND + 2026-09-13 01:47:58 2.8s determined_ramanujan OK ce74f81996 03078950-5011-414f-992b-8fe1bd219ac2 nextflow run main.nf --input data/greetings.csv --character turkey + 2026-09-13 01:48:03 3s prickly_cuvier OK ce74f81996 5a9e8bf7-a7db-4c2c-b1d8-3bd4c7266528 nextflow run main.nf --input data/greetings.csv --character tux + 2026-09-13 01:48:09 2.3s elegant_panini OK ce74f81996 517ccc29-9db7-4d8d-8ea0-c8db6e9ac653 nextflow run main.nf --input data/greetings.csv --character stegosaurus + 2026-09-13 01:48:14 1.5s deadly_lamport OK ce74f81996 517ccc29-9db7-4d8d-8ea0-c8db6e9ac653 nextflow run main.nf --input data/greetings.csv --character stegosaurus -resume + ``` + +Nextflow groups the caching information it uses for `-resume` under `.nextflow/cache`, keyed by session ID. +That's why looking up the right run name or session ID here is the first step whenever you need to investigate or clean up a past execution. + +### Takeaway + +You know where Nextflow records the history of past runs, and how to inspect it with `nextflow log`. + +### What's next? + +Learn how to remove old work directories you no longer need. + +--- + +## 3. Delete older work directories + +Every run leaves its task directories behind under `work/`, even after you've copied the outputs you care about to `results/`. +Run enough pipelines during development and those subdirectories add up, so Nextflow provides `nextflow clean` to remove the ones you no longer need. + +### 3.1. Determine deletion criteria + +`nextflow clean` supports several ways to select what to remove; see the [reference documentation](https://www.nextflow.io/docs/latest/reference/cli.html#clean) for the full list. +Here you'll delete everything from runs before a given run, using its run name. + +Look up the most recent run you want to keep using `nextflow log`; in the [example from 2.2](#22-use-nextflow-log-for-a-friendlier-view) that's `elegant_panini`, the last plain run before the `-resume` one. +The run name is the machine-generated two-part string shown in the `Launching (...)` console line, or in the `RUN NAME` column of `nextflow log`. + +### 3.2. Do a dry run + +Add `-n` first to check what a given command would delete without actually deleting anything: + +```bash +nextflow clean -before elegant_panini -n +``` + +??? success "Command output" + + ```console + Would remove /workspaces/training/nextflow-run/work/e5/9ec3fe24deb5d1ffa478dff5e5e1d4 + Would remove /workspaces/training/nextflow-run/work/75/36b1ece86b213c331852d0a3dc659b + Would remove /workspaces/training/nextflow-run/work/be/8157808f28699259b5ff37e4bf9f72 + Would remove /workspaces/training/nextflow-run/work/f3/d828b7ba6b315eb08e0f96168119f5 + Would remove /workspaces/training/nextflow-run/work/94/7a2d7ef67d81b6e66430f300816698 + Would remove /workspaces/training/nextflow-run/work/eb/e37c5c8638c45916de3d9794d6d22f + Would remove /workspaces/training/nextflow-run/work/3f/f56a705a6370f6c615aff22d3f240a + Would remove /workspaces/training/nextflow-run/work/25/4922fa35ba2c6087777ddce20e9f2f + Would remove /workspaces/training/nextflow-run/work/a4/2de7bcc2f8fc974261f7280c1480f7 + Would remove /workspaces/training/nextflow-run/work/48/8c49bded446d4fcb78c8125318c5e3 + Would remove /workspaces/training/nextflow-run/work/8e/c9834a9bdd7c21de2991d959201a9d + Would remove /workspaces/training/nextflow-run/work/d5/a9055dc8c817c6c1f436494685955c + Would remove /workspaces/training/nextflow-run/work/27/9473df9e55e35c8869d9571b480926 + Would remove /workspaces/training/nextflow-run/work/d3/ebc066e1d844232b9f5ee0a7d87464 + Would remove /workspaces/training/nextflow-run/work/91/17ef1815ed06b8f177d0135d8ef0dc + Would remove /workspaces/training/nextflow-run/work/12/0443f9fcff27a552d4bc73aaedf24a + ``` + +That's 16 task directories: the 8 tasks from the `turkey` run plus the 8 from the `tux` run, exactly as many as you'd expect for two full runs of this four-process pipeline. +The `elegant_panini` run itself, and the cached tasks the `-resume` run reused from it, are left alone. + +Your output will list different directory names, and how many lines you get depends on how many runs you've done; if you don't see any lines, either the run name doesn't match one in your log, or there's nothing to delete before it. + +### 3.3. Proceed with deletion + +Once the dry run looks right, re-run the same command with `-f` instead of `-n`: + +```bash +nextflow clean -before elegant_panini -f +``` + +??? success "Command output" + + ```console + Removed /workspaces/training/nextflow-run/work/e5/9ec3fe24deb5d1ffa478dff5e5e1d4 + Removed /workspaces/training/nextflow-run/work/75/36b1ece86b213c331852d0a3dc659b + Removed /workspaces/training/nextflow-run/work/be/8157808f28699259b5ff37e4bf9f72 + Removed /workspaces/training/nextflow-run/work/f3/d828b7ba6b315eb08e0f96168119f5 + Removed /workspaces/training/nextflow-run/work/94/7a2d7ef67d81b6e66430f300816698 + Removed /workspaces/training/nextflow-run/work/eb/e37c5c8638c45916de3d9794d6d22f + Removed /workspaces/training/nextflow-run/work/3f/f56a705a6370f6c615aff22d3f240a + Removed /workspaces/training/nextflow-run/work/25/4922fa35ba2c6087777ddce20e9f2f + Removed /workspaces/training/nextflow-run/work/a4/2de7bcc2f8fc974261f7280c1480f7 + Removed /workspaces/training/nextflow-run/work/48/8c49bded446d4fcb78c8125318c5e3 + Removed /workspaces/training/nextflow-run/work/8e/c9834a9bdd7c21de2991d959201a9d + Removed /workspaces/training/nextflow-run/work/d5/a9055dc8c817c6c1f436494685955c + Removed /workspaces/training/nextflow-run/work/27/9473df9e55e35c8869d9571b480926 + Removed /workspaces/training/nextflow-run/work/d3/ebc066e1d844232b9f5ee0a7d87464 + Removed /workspaces/training/nextflow-run/work/91/17ef1815ed06b8f177d0135d8ef0dc + Removed /workspaces/training/nextflow-run/work/12/0443f9fcff27a552d4bc73aaedf24a + ``` + +`nextflow clean` empties the task directories but leaves the two-character parent directories (like `e5/`) in place. + +!!! warning + + Deleting work directories from past runs removes them from Nextflow's cache and deletes any outputs stored only there. + That breaks Nextflow's ability to resume execution without re-running the corresponding processes, so only clean up runs you're confident you won't need to resume from. + This is also why it's worth publishing anything you care about to `results/` with `mode 'copy'` rather than relying on the `work/` directory or a `symlink` publish mode. + +### Takeaway + +You know how to remove old work directories with `nextflow clean`, and why doing so trades away the ability to resume from those runs. + +### What's next? + +Learn how to run pipelines directly from remote repositories such as GitHub in [Part 4](./04_remote_repositories.md). + +--- + +## Summary + +In this part you learned to: + +- Generate an HTML execution report with `-with-report` and an execution timeline with `-with-timeline` +- Inspect the history of past runs with `nextflow log` +- Remove old work directories with `nextflow clean`, and understand the resume trade-off that comes with it diff --git a/docs/en/docs/nextflow_run/04_remote_repositories.md b/docs/en/docs/nextflow_run/04_remote_repositories.md new file mode 100644 index 0000000000..33698ed678 --- /dev/null +++ b/docs/en/docs/nextflow_run/04_remote_repositories.md @@ -0,0 +1,186 @@ +# Part 4: Run remote pipelines + +So far, you've run workflow scripts stored locally. +In practice, you'll often want to run pipelines published in remote repositories, such as GitHub, without downloading them yourself. + +Nextflow makes this straightforward: you can run any pipeline directly from a Git repository URL. + +--- + +## 1. Run a pipeline from GitHub + +The basic syntax for running a remote pipeline is `nextflow run `, where `` can be a GitHub repository path like `nextflow-io/hello`, a full URL, or a path to GitLab, Bitbucket, or another Git hosting service. + +### 1.1. Launch the pipeline + +Run the official Nextflow "hello" demo pipeline. +This is a different, much simpler pipeline than the one you've been running in this course: it predates the "Hello" pipeline used throughout this training, and just prints a greeting for each of a few hardcoded languages, so don't expect the CSV input or ASCII art you're used to. + +```bash +nextflow run nextflow-io/hello +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Pulling nextflow-io/hello ... + downloaded from https://github.com/nextflow-io/hello.git + Launching `https://github.com/nextflow-io/hello` [sleepy_swanson] revision: 3c2cdc9823 [master] + + executor > local (4) + [ba/08236d] sayHello (4) | 4 of 4 ✔ + Ciao world! + + Hello world! + + Bonjour world! + + Hola world! + ``` + +### 1.2. Find where the pipeline is cached + +The first time you run a remote pipeline, Nextflow downloads it and caches it locally. +Subsequent runs reuse the cached version unless you explicitly request an update. + +By default, Nextflow saves pulled pipelines under `$NXF_HOME/assets`. +To find where a specific pipeline landed, and which revisions are available, ask Nextflow directly: + +```bash +nextflow info nextflow-io/hello +``` + +??? success "Command output" + + ```console + project name: nextflow-io/hello + repository : https://github.com/nextflow-io/hello + local path : /workspaces/.nextflow/assets/nextflow-io/hello + main script : main.nf + revisions : + * master (default) + mybranch + testing + v1.1 [t] + v1.2 [t] + v1.3 [t] + ``` + +You can also list every pipeline you've pulled so far with `nextflow list`: + +```bash +nextflow list +``` + +??? success "Command output" + + ```console + nextflow-io/hello + ``` + +The [Use nf-core](../nfcore_use/01_run_demo.md#12-retrieve-the-pipeline-code) course covers this caching mechanism in more depth, including how to browse a pulled pipeline's source code. + +### Takeaway + +You know how to run a pipeline directly from a GitHub repository without downloading it yourself, and where to find it locally afterwards. + +### What's next? + +Learn how to pin a specific version of a remote pipeline for reproducibility. + +--- + +## 2. Specify a version for reproducibility + +By default, Nextflow runs the latest revision from the default branch. +You can pin a particular version (tag), branch, or commit using the `-r` flag. + +### 2.1. Pin a specific revision + +```bash +nextflow run nextflow-io/hello -r v1.3 +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nextflow-io/hello` [sick_carson] revision: 2ce0b0e294 [v1.3] + + executor > local (4) + [61/e11f77] sayHello (4) | 4 of 4 ✔ + Ciao world! + + Bonjour world! + + Hello world! + + Hola world! + ``` + +Pinning an exact revision is essential for reproducibility. +It guarantees that you and your collaborators run the exact same pipeline code, regardless of what has changed in the repository since. + +### 2.2. Unpin a pipeline + +Pinning a revision doesn't just apply to that one run: Nextflow checks out that revision in the local cache, so it also becomes what any later run without `-r` uses. +Try running the pipeline again without `-r`: + +```bash +nextflow run nextflow-io/hello +``` + +??? failure "Command output" + + ```console + Project `nextflow-io/hello` is currently stuck on revision: v1.3 -- you need to explicitly specify a revision with the option `-r` in order to use it + ``` + +Nextflow refuses to guess, since silently running a different revision than the one you pinned would defeat the purpose of pinning it in the first place. +To go back to running the default branch, pass it explicitly with `-r`: + +```bash +nextflow run nextflow-io/hello -r master +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nextflow-io/hello` [hungry_maxwell] DSL2 - revision: 3c2cdc9823 [master] + + executor > local (4) + [ba/08236d] sayHello (4) | 4 of 4 ✔ + Ciao world! + + Hello world! + + Bonjour world! + + Hola world! + ``` + +You can find the name of a pipeline's default branch by running `nextflow info `; it's the one marked `(default)`. +Once you've run it, the pipeline is unstuck: plain `nextflow run nextflow-io/hello` commands go back to using that branch until you pin it to something else again. + +### Takeaway + +You know how to pin a remote pipeline to a specific version, branch, or commit for reproducible execution, and how to unpin it again. + +### What's next? + +You've covered the fundamentals of running and managing Nextflow pipelines. +See [Course summary](next_steps.md) for where to go from here. + +--- + +## Summary + +In this part you learned to: + +- Run a pipeline directly from a GitHub repository without downloading it +- Pin a remote pipeline to a specific revision for reproducibility, and unpin it again diff --git a/docs/en/docs/nextflow_run/img/DAG-multistep.svg b/docs/en/docs/nextflow_run/img/DAG-multistep.svg deleted file mode 100644 index 65a74c1624..0000000000 --- a/docs/en/docs/nextflow_run/img/DAG-multistep.svg +++ /dev/null @@ -1 +0,0 @@ -

publish

params

first_output

input

sayHello

convertToUpper

collectGreetings

batch

uppercased

collected

batch_report

\ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/DAG-preview.png b/docs/en/docs/nextflow_run/img/DAG-preview.png deleted file mode 100644 index df76cc45e5..0000000000 Binary files a/docs/en/docs/nextflow_run/img/DAG-preview.png and /dev/null differ diff --git a/docs/en/docs/nextflow_run/img/dag-workflow.svg b/docs/en/docs/nextflow_run/img/dag-workflow.svg deleted file mode 100644 index c5411bd340..0000000000 --- a/docs/en/docs/nextflow_run/img/dag-workflow.svg +++ /dev/null @@ -1 +0,0 @@ -

params

input

sayHello

convertToUpper

collectGreetings

cowpy

character

\ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/execution_report_tasks.png b/docs/en/docs/nextflow_run/img/execution_report_tasks.png new file mode 100644 index 0000000000..220bcc8a28 Binary files /dev/null and b/docs/en/docs/nextflow_run/img/execution_report_tasks.png differ diff --git a/docs/en/docs/nextflow_run/img/execution_timeline.png b/docs/en/docs/nextflow_run/img/execution_timeline.png new file mode 100644 index 0000000000..cd2eca0a1b Binary files /dev/null and b/docs/en/docs/nextflow_run/img/execution_timeline.png differ diff --git a/docs/en/docs/nextflow_run/img/hello-pipeline-multi-inputs.svg b/docs/en/docs/nextflow_run/img/hello-pipeline-multi-inputs.svg deleted file mode 100644 index c89763e447..0000000000 --- a/docs/en/docs/nextflow_run/img/hello-pipeline-multi-inputs.svg +++ /dev/null @@ -1,4 +0,0 @@ - - -sayHello*-output.txtHelloBonjourHolaHello,English,123 Bonjour,French,456Hola,Spanish,789greetings.csvHello-output.txtBonjour-output.txtHola-output.txt \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/hello-pipeline-multi-steps.svg b/docs/en/docs/nextflow_run/img/hello-pipeline-multi-steps.svg deleted file mode 100644 index 69b7ea2fd0..0000000000 --- a/docs/en/docs/nextflow_run/img/hello-pipeline-multi-steps.svg +++ /dev/null @@ -1,4 +0,0 @@ - - -sayHello*-output.txtconvertToUpperUPPER-*collectGreetingsCOLLECTED-output.txtHELLOBONJOURHOLAHello,English,123 Bonjour,French,456Hola,Spanish,789greetings.csvHELLOBONJOURHOLAUPPER-Hello-output.txtUPPER-Bonjour-output.txtUPPER-Hola-output.txt \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/modules.svg b/docs/en/docs/nextflow_run/img/modules.svg deleted file mode 100644 index d888f393ea..0000000000 --- a/docs/en/docs/nextflow_run/img/modules.svg +++ /dev/null @@ -1,5 +0,0 @@ - - -2c-modules.nfsayHello.nfconvertToUpper.nfcollectGreetings.nfincludemodules/sayHelloconvertToUppercollectGreetings \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/sayhello_with_input.svg b/docs/en/docs/nextflow_run/img/sayhello_with_input.svg deleted file mode 100644 index d00b7c6cea..0000000000 --- a/docs/en/docs/nextflow_run/img/sayhello_with_input.svg +++ /dev/null @@ -1,4 +0,0 @@ - - -sayHellooutput.txt"Hello World!"Hello World! \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/with-collect-operator.svg b/docs/en/docs/nextflow_run/img/with-collect-operator.svg deleted file mode 100644 index e60fbb9d5a..0000000000 --- a/docs/en/docs/nextflow_run/img/with-collect-operator.svg +++ /dev/null @@ -1,4 +0,0 @@ - - -collectGreetingsCOLLECTED-output.txtHELLOBONJOURHOLAUPPER-Hello-output.txtUPPER-Bonjour-output.txtUPPER-Hola-output.txtWITH THE collect() OPERATOR \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/img/without-collect-operator.svg b/docs/en/docs/nextflow_run/img/without-collect-operator.svg deleted file mode 100644 index fe5b085146..0000000000 --- a/docs/en/docs/nextflow_run/img/without-collect-operator.svg +++ /dev/null @@ -1,4 +0,0 @@ - - -UPPER-Hello-output.txtUPPER-Bonjour-output.txtUPPER-Hola-output.txtcollectGreetingscollectGreetingscollectGreetingsCOLLECTED-output.txtCOLLECTED-output.txtCOLLECTED-output.txtHELLOBONJOURHOLAWITHOUT THE collect() OPERATOR \ No newline at end of file diff --git a/docs/en/docs/nextflow_run/index.md b/docs/en/docs/nextflow_run/index.md index 0749a4e231..b4d798e0ba 100644 --- a/docs/en/docs/nextflow_run/index.md +++ b/docs/en/docs/nextflow_run/index.md @@ -7,11 +7,12 @@ index_type: course additional_information: technical_requirements: true learning_objectives: - - Launch and manage execution of Nextflow workflows - - Find and interpret outputs (results) and log files - - Recognize core Nextflow components in a simple multi-step workflow - - Configure pipeline execution to run on common computing platforms including HPC and cloud - - Summarize best practices for reproducibility, portability and code re-use that make pipelines FAIR, including code modularity and software containers + - Launch and manage Nextflow pipelines from the command line + - Understand how channels and operators enable efficient multi-input, multi-step workflows + - Use containers to manage software dependencies and ensure reproducibility + - Configure pipeline execution and outputs + - Generate execution reports, inspect the history of past runs, and clean up old work directories + - Run pipelines directly from remote repositories such as GitHub audience_prerequisites: - "**Audience:** This course is designed for learners who are completely new to Nextflow and want to run existing pipelines." - "**Skills:** Some familiarity with the command line, basic scripting concepts and common file formats is assumed." @@ -22,7 +23,7 @@ additional_information: **Nextflow Run is a hands-on introduction to running reproducible and scalable data analysis workflows.** -Working through practical examples and guided exercises, you will learn the fundamentals of using Nextflow, including how to execute pipelines, manage files and software dependencies, parallelize execution effortlessly, and run workflows across different computing environments. +Working through a series of goal-oriented exercises, you will learn the essentials of launching and managing Nextflow pipelines, understand how channels and operators enable parallel processing of multiple inputs, and use containers to manage software dependencies. You will take away the skills and confidence to start running workflows with Nextflow. @@ -30,25 +31,25 @@ You will take away the skills and confidence to start running workflows with Nex ## Course overview -### What you'll do - This course is hands-on, with goal-oriented exercises structured to introduce information gradually. -You will execute several versions of a Nextflow pipeline that processes text inputs. -You'll start with a simple version that consists of a single step, and eventually progress to a multi-step version that takes a CSV file of tabular text inputs, runs a few transformation steps, and outputs a single text file containing an ASCII picture of a character saying the transformed text. +You will execute several versions of a Nextflow pipeline that processes text inputs, starting with a simple single-step version and progressing to a multi-step version that takes a CSV file of inputs, runs a few transformation steps, and outputs a single text file containing ASCII art generated by a containerized tool. This course focuses on running pipelines (named after the core `nextflow run` command). If you're looking for an intro to developing Nextflow pipelines, see [Hello Nextflow](../hello_nextflow/index.md). -### Lesson plan +!!! note -We've broken this down into three parts that will each focus on specific aspects of running and managing pipelines written in Nextflow. + Looking for the previous version of this course? It's superseded by the version on this page, but still browsable in the [3.6.1 release](https://training.nextflow.io/3.6.1/nextflow_run/) of the training site. + +### Lesson plan -| Course chapter | Summary | Estimated duration | -| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------ | -| [Part 1: Run basic operations](./01_basics.md) | Launching and managing execution of a simple workflow | 30 mins | -| [Part 2: Run real pipelines](./02_pipeline.md) | Processing complex inputs, running multi-step workflows, using containers and parallelizing execution effortlessly | 60 mins | -| [Part 3: Run configuration](./03_config.md) | Customizing pipeline behavior and optimizing usage in different computational environments | 60 mins | +| Course chapter | Summary | Estimated duration | +| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------ | +| [Part 1: Run Nextflow](./01_run_nextflow.md) | Launch and manage Nextflow pipelines, and understand essential workflow mechanics | 25 mins | +| [Part 2: Configure the pipeline](./02_configure_pipeline.md) | Configure pipeline execution and outputs using `nextflow.config` | 20 mins | +| [Part 3: Manage workflow executions](./03_manage_executions.md) | Generate execution reports, inspect the history of past runs, and clean up old work directories | 10 mins | +| [Part 4: Run remote pipelines](./04_remote_repositories.md) | Run a pipeline directly from GitHub and pin it to a specific revision | 10 mins | By the end of this course, you will be well-prepared for tackling the next steps in your journey to run reproducible workflows for your scientific computing needs. diff --git a/docs/en/docs/nextflow_run/next_steps.md b/docs/en/docs/nextflow_run/next_steps.md index d9d8a64c28..d5dd4bd423 100644 --- a/docs/en/docs/nextflow_run/next_steps.md +++ b/docs/en/docs/nextflow_run/next_steps.md @@ -6,39 +6,26 @@ Congratulations on completing the Nextflow Run training course! 🎉 ## Your journey -You started with a very basic workflow, and learned to run it, find the outputs, and manage its execution. -Then, you worked your way through increasingly more complex versions of that workflow and learned to recognize the essential concepts and mechanisms that power Nextflow pipelines, including channels and operators, code modularization, and containers. -Finally, you learned how to customize the configuration of a pipeline to fit your preferences and your computational infrastructure. - -### What you learned - -You are now able to manage the execution of the Hello pipeline, describe how it is structured, and identify the main pieces of code involved. - -- The final form of the Hello workflow takes as input a CSV file containing text greetings. -- The four steps are implemented as Nextflow processes (`sayHello`, `convertToUpper`, `collectGreetings`, and `cowpy`) stored in separate module files. -- The results are published to a directory called `results/`. -- The final output of the pipeline is a plain text file containing ASCII art of a character saying the uppercased greetings. - -
---8<-- "docs/en/docs/hello_nextflow/img/hello_pipeline_complete.svg" -
- -1. **`sayHello`:** Writes each greeting to its own output file (_e.g._ "Hello-output.txt") -2. **`convertToUpper`:** Converts each greeting to uppercase (_e.g._ "HELLO") -3. **`collectGreetings`:** Collects all uppercase greetings into a single batch file -4. **`cowpy`:** Generates ASCII art using the `cowpy` tool - -The workflow configuration supports providing inputs and parameters in a flexible, reproducible way. +You started with a very basic workflow, and learned to run it and find its outputs. +Then, you ran progressively more realistic versions of that pipeline: processing multiple inputs from a CSV file in parallel, using `-resume` to skip completed work, and using containers to manage the software a pipeline depends on. +Next, you learned how to customize the configuration of a pipeline using `nextflow.config` and profiles, and how to control where and how its outputs get published. +After that, you learned how to generate execution reports, inspect the history of past runs, and clean up old work directories. +Finally, you learned how to run pipelines directly from remote repositories such as GitHub. ### Skills acquired Through this hands-on course, you've learned how to: -- Launch a Nextflow workflow locally -- Find and interpret outputs (results) and log files generated by Nextflow -- Recognize the core Nextflow components that constitute a simple multi-step workflow -- Describe next-step concepts such as operators and channel factories -- Configure pipelines for different computing environments +- Launch a Nextflow workflow locally and find its outputs +- Run a multi-step pipeline that processes multiple inputs in parallel +- Use `-resume` to avoid repeating completed work +- Use containers to manage software dependencies +- Configure pipelines using `nextflow.config` and profiles +- Customize where and how outputs get published +- Generate an HTML execution report with `-with-report` and an execution timeline with `-with-timeline` +- Inspect the history of past runs with `nextflow log` +- Clean up old work directories with `nextflow clean` +- Run a pipeline directly from a remote repository, and pin it to a specific revision (and unpin it again) for reproducibility You're now equipped with the foundational knowledge to start integrating existing Nextflow pipelines into your own work. @@ -46,12 +33,11 @@ You're now equipped with the foundational knowledge to start integrating existin Here are our top suggestions for what to do next: -- Don't just run Nextflow, write it! Become a Nextflow developer with [Hello Nextflow](../hello_nextflow/index.md) -- Apply Nextflow to a scientific analysis use case with [Nextflow for Science](../nf4_science/index.md) -- Get started with nf-core with [Hello nf-core](../hello_nf-core/index.md) -- Learn troubleshooting techniques with the [Debugging Side Quest](../side_quests/debugging/index.md) +- Dive deeper into pipeline configuration with [Execution Config](../execution_config/index.md) +- Learn to run nf-core community pipelines with [Use nf-core](../nfcore_use/index.md) +- Launch and monitor pipelines at scale with [Scale with Seqera](../seqera_scale/index.md) -Finally, we recommend you have a look at [**Seqera Platform**](https://seqera.io/), a cloud-based platform developed by the creators of Nextflow that makes it even easier to launch and manage your workflows, as well as manage your data and run analyses interactively in any environment. +Or, if you're ready to stop just running Nextflow and start writing it, become a Nextflow developer with [Hello Nextflow](../hello_nextflow/index.md). ## Getting help diff --git a/docs/en/docs/nextflow_run/survey.md b/docs/en/docs/nextflow_run/survey.md index 983d69135b..176dc6760c 100644 --- a/docs/en/docs/nextflow_run/survey.md +++ b/docs/en/docs/nextflow_run/survey.md @@ -4,4 +4,4 @@ Before you move on, please complete this short 5-question survey to rate the tra This should take you only a minute or two to complete. Thank you for helping us improve our training materials for everyone! -
+
diff --git a/docs/en/docs/nf4_science/_template/03_multi_sample.md b/docs/en/docs/nf4_science/_template/03_multi_sample.md index 5105154457..fcc5ac1441 100644 --- a/docs/en/docs/nf4_science/_template/03_multi_sample.md +++ b/docs/en/docs/nf4_science/_template/03_multi_sample.md @@ -49,8 +49,8 @@ We've broken this down into two steps: !!! note - Make sure you're in the correct working directory: - `cd /workspaces/training/nf4-science/{DOMAIN_DIR}` + Make sure you're in the correct working directory: + `cd /workspaces/training/nf4-science/{DOMAIN_DIR}` --- diff --git a/docs/en/docs/nf4_science/_template/next_steps.md b/docs/en/docs/nf4_science/_template/next_steps.md index 9cb948d244..e94a5b6c21 100644 --- a/docs/en/docs/nf4_science/_template/next_steps.md +++ b/docs/en/docs/nf4_science/_template/next_steps.md @@ -30,7 +30,7 @@ You're now equipped to start applying Nextflow to {DOMAIN} analysis workflows in Here are our top suggestions for what to do next: - Apply Nextflow to other scientific analysis use cases with [Nextflow for Science](../index.md) -- Get started with nf-core with [Hello nf-core](../../hello_nf-core/index.md) +- Get started with nf-core with [Build with nf-core](../../nfcore_build/index.md) - Explore more advanced Nextflow features with the [Side Quests](../../side_quests/index.md) Finally, we recommend you have a look at [**Seqera Platform**](https://seqera.io/), a cloud-based platform developed by the creators of Nextflow that makes it even easier to launch and manage your workflows, as well as manage your data and run analyses interactively in any environment. diff --git a/docs/en/docs/nf4_science/genomics/02_per_sample_variant_calling.md b/docs/en/docs/nf4_science/genomics/02_per_sample_variant_calling.md index 51fb97bbaa..3887524e69 100644 --- a/docs/en/docs/nf4_science/genomics/02_per_sample_variant_calling.md +++ b/docs/en/docs/nf4_science/genomics/02_per_sample_variant_calling.md @@ -108,8 +108,8 @@ Each step focuses on a specific aspect of workflow development. !!! tip - Make sure you're in the correct working directory: - `cd /workspaces/training/nf4-science/genomics` + Make sure you're in the correct working directory: + `cd /workspaces/training/nf4-science/genomics` --- diff --git a/docs/en/docs/nf4_science/genomics/03_joint_calling.md b/docs/en/docs/nf4_science/genomics/03_joint_calling.md index 0e422433c0..fa236ab598 100644 --- a/docs/en/docs/nf4_science/genomics/03_joint_calling.md +++ b/docs/en/docs/nf4_science/genomics/03_joint_calling.md @@ -51,8 +51,8 @@ This automates the steps from the second section of [Part 1: Method overview](./ !!! tip - Make sure you're in the correct working directory: - `cd /workspaces/training/nf4-science/genomics` + Make sure you're in the correct working directory: + `cd /workspaces/training/nf4-science/genomics` --- diff --git a/docs/en/docs/nf4_science/genomics/next_steps.md b/docs/en/docs/nf4_science/genomics/next_steps.md index b9c6938544..9d7deddbcb 100644 --- a/docs/en/docs/nf4_science/genomics/next_steps.md +++ b/docs/en/docs/nf4_science/genomics/next_steps.md @@ -30,7 +30,7 @@ You're now equipped to start applying Nextflow to genomics analysis workflows in Here are our top suggestions for what to do next: - Apply Nextflow to other scientific analysis use cases with [Nextflow for Science](../index.md) -- Get started with nf-core with [Hello nf-core](../../hello_nf-core/index.md) +- Get started with nf-core with [Build with nf-core](../../nfcore_build/index.md) - Explore more advanced Nextflow features with the [Side Quests](../../side_quests/index.md) Finally, we recommend you have a look at [**Seqera Platform**](https://seqera.io/), a cloud-based platform developed by the creators of Nextflow that makes it even easier to launch and manage your workflows, as well as manage your data and run analyses interactively in any environment. diff --git a/docs/en/docs/nf4_science/imaging/02_run_molkart.md b/docs/en/docs/nf4_science/imaging/02_run_molkart.md index 0394de693b..4611e9e753 100644 --- a/docs/en/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/en/docs/nf4_science/imaging/02_run_molkart.md @@ -25,7 +25,7 @@ Key features of nf-core pipelines: !!! tip "Want to learn more about nf-core?" - For an in-depth introduction to nf-core pipeline development, check out the [Hello nf-core](../../hello_nf-core/index.md) training course. + For an in-depth introduction to nf-core pipeline development, check out the [Build with nf-core](../../nfcore_build/index.md) training course. It covers how to create and customize nf-core pipelines from scratch. ### 1.2. The molkart pipeline diff --git a/docs/en/docs/nf4_science/imaging/04_config.md b/docs/en/docs/nf4_science/imaging/04_config.md index 9e19f9b2fb..61e0f1098d 100644 --- a/docs/en/docs/nf4_science/imaging/04_config.md +++ b/docs/en/docs/nf4_science/imaging/04_config.md @@ -447,5 +447,5 @@ Next steps: - Fill out the course survey to provide feedback - Check out [Hello Nextflow](../../hello_nextflow/index.md) to learn more about developing workflows -- Explore [Hello nf-core](../../hello_nf-core/index.md) to dive deeper into nf-core tooling -- Browse other courses in the [training collections](../../training_collections/index.md) +- Explore [Build with nf-core](../../nfcore_build/index.md) to dive deeper into nf-core tooling +- Explore more advanced topics in the [Side Quests](../../side_quests/index.md) diff --git a/docs/en/docs/nf4_science/rnaseq/01_method.md b/docs/en/docs/nf4_science/rnaseq/01_method.md index 04285c77fc..57d2896e23 100644 --- a/docs/en/docs/nf4_science/rnaseq/01_method.md +++ b/docs/en/docs/nf4_science/rnaseq/01_method.md @@ -38,7 +38,7 @@ These tools are not installed in the GitHub Codespaces environment, so we'll use !!! tip - Make sure you're in the `nf4-science/rnaseq` directory. The last part of the path shown when you type `pwd` should be `rnaseq`. + Make sure you're in the `nf4-science/rnaseq` directory. The last part of the path shown when you type `pwd` should be `rnaseq`. --- diff --git a/docs/en/docs/nf4_science/rnaseq/02_single-sample.md b/docs/en/docs/nf4_science/rnaseq/02_single-sample.md index 4066947fc8..5f58c6e246 100644 --- a/docs/en/docs/nf4_science/rnaseq/02_single-sample.md +++ b/docs/en/docs/nf4_science/rnaseq/02_single-sample.md @@ -153,8 +153,8 @@ Each step focuses on a specific aspect of workflow development. !!! tip - Make sure you're in the correct working directory: - `cd /workspaces/training/nf4-science/rnaseq` + Make sure you're in the correct working directory: + `cd /workspaces/training/nf4-science/rnaseq` --- diff --git a/docs/en/docs/nf4_science/rnaseq/03_multi-sample.md b/docs/en/docs/nf4_science/rnaseq/03_multi-sample.md index 79881034e2..de0a15bd30 100644 --- a/docs/en/docs/nf4_science/rnaseq/03_multi-sample.md +++ b/docs/en/docs/nf4_science/rnaseq/03_multi-sample.md @@ -55,8 +55,8 @@ This implements the method described in [Part 1: Method Overview](./01_method.md !!! tip - Make sure you're in the correct working directory: - `cd /workspaces/training/nf4-science/rnaseq` + Make sure you're in the correct working directory: + `cd /workspaces/training/nf4-science/rnaseq` --- diff --git a/docs/en/docs/nf4_science/rnaseq/next_steps.md b/docs/en/docs/nf4_science/rnaseq/next_steps.md index 24061fd36a..716a8f508f 100644 --- a/docs/en/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/en/docs/nf4_science/rnaseq/next_steps.md @@ -31,7 +31,7 @@ You're now equipped to start applying Nextflow to RNAseq analysis workflows in y Here are our top suggestions for what to do next: - Apply Nextflow to other scientific analysis use cases with [Nextflow for Science](../index.md) -- Get started with nf-core with [Hello nf-core](../../hello_nf-core/index.md) +- Get started with nf-core with [Build with nf-core](../../nfcore_build/index.md) - Explore more advanced Nextflow features with the [Side Quests](../../side_quests/index.md) Finally, we recommend you have a look at [**Seqera Platform**](https://seqera.io/), a cloud-based platform developed by the creators of Nextflow that makes it even easier to launch and manage your workflows, as well as manage your data and run analyses interactively in any environment. diff --git a/docs/en/docs/hello_nf-core/00_orientation.md b/docs/en/docs/nfcore_build/00_orientation.md similarity index 88% rename from docs/en/docs/hello_nf-core/00_orientation.md rename to docs/en/docs/nfcore_build/00_orientation.md index 98113e39af..fa2789a243 100644 --- a/docs/en/docs/hello_nf-core/00_orientation.md +++ b/docs/en/docs/nfcore_build/00_orientation.md @@ -40,12 +40,12 @@ Once your codespace is running, there are two things you need to do before divin ### Set the working directory -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. +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 `nfcore-build/` directory. Change directory now by running this command in the terminal: ```bash -cd hello-nf-core/ +cd nfcore-build/ ``` !!! tip @@ -53,7 +53,7 @@ cd hello-nf-core/ 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: ```bash - cd /workspaces/training/hello-nf-core + cd /workspaces/training/nfcore-build ``` Next, explore the contents of this directory. @@ -75,20 +75,17 @@ tree . -L 2 ```console . - ├── custom.config ├── greetings.csv - ├── malformed_samplesheet.csv - ├── my_params.yml ├── original-hello │ ├── hello.nf │ ├── modules │ └── nextflow.config └── solutions ├── composable-hello + ├── core-hello-part1 ├── core-hello-part2 ├── core-hello-part3 ├── core-hello-part4 - ├── core-hello-part5 └── core-hello-start ``` @@ -97,17 +94,23 @@ We use collapsible sections like this to include expected command output in a co - **The `greetings.csv` file** is a CSV containing some minimal columnar data we use for testing purposes. -- **The `custom.config` file** is an example Nextflow configuration file used in Part 1 to demonstrate process resource overrides and `ext.args`. - -- **The `malformed_samplesheet.csv` file** is an intentionally broken samplesheet used in Part 1 to demonstrate input validation. - -- **The `my_params.yml` file** is an example params file used in Part 1 to demonstrate how to pass boolean parameters to a pipeline. - - **The `original-hello` directory** contains a copy of the source code produced by working through the complete Hello Nextflow training series (with Docker enabled). - **The `solutions` directory** contains the completed workflow scripts that result from each step of the course. They are intended to be used as a reference to check your work and troubleshoot any issues. +### Set up the pipeline reference + +Part 1 of this course refers to the `nf-core/demo` pipeline's source code for reference. +Retrieve it and create a shortcut to browse it easily: + +```bash +nextflow pull nf-core/demo +ln -s $NXF_HOME/assets pipelines +``` + +If you've already completed the [Use nf-core](../nfcore_use/index.md) course, `nf-core/demo` is already cached locally, but the symlink above still needs to be created fresh in this directory. + ## Readiness checklist Think you're ready to dive in? diff --git a/docs/en/docs/hello_nf-core/02_rewrite_hello.md b/docs/en/docs/nfcore_build/01_rewrite_hello.md similarity index 96% rename from docs/en/docs/hello_nf-core/02_rewrite_hello.md rename to docs/en/docs/nfcore_build/01_rewrite_hello.md index 735b0570fe..4eb6473de3 100644 --- a/docs/en/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/en/docs/nfcore_build/01_rewrite_hello.md @@ -1,6 +1,6 @@ -# Part 2: Rewrite Hello for nf-core +# Part 1: Rewrite Hello for nf-core -In this second part of the Hello nf-core training course, we show you how to create an nf-core compatible version of the pipeline produced by the [Hello Nextflow](../hello_nextflow/index.md) beginners' course. +In this first part of the Build with nf-core training course, we show you how to create an nf-core compatible version of the pipeline produced by the [Hello Nextflow](../hello_nextflow/index.md) beginners' course. We're going to do this in two phases: first, we'll use nf-core tooling to create a pipeline scaffold, then graft the existing 'regular' pipeline code onto the scaffold. @@ -23,8 +23,7 @@ If you're not familiar with the Hello pipeline or you could use a reminder, see The nf-core project enforces strong guidelines for how pipelines are structured, and for how the code is organized, configured and documented. Before we tackle our pipeline creation project, we need to understand that structure and organization. -So let's have a look at how the pipeline code is organized in the `nf-core/demo` repository, using the `pipelines` symlink we created in Part 1. -Make sure you are starting in the `hello-nf-core` directory in your terminal. +So let's have a look at how the pipeline code is organized in the `nf-core/demo` repository, using the `pipelines` symlink you created during [Getting started](00_orientation.md). As a reminder, you can either use `tree` or use the file explorer to find and open the `nf-core/demo` directory. @@ -71,7 +70,7 @@ If you look inside the `main.nf` file, you'll see it imports a workflow called ` Here is what the relationships between the relevant code components look like:
- --8<-- "docs/en/docs/hello_nf-core/img/nf-core_demo_code_organization.svg" + --8<-- "docs/en/docs/nfcore_build/img/nf-core_demo_code_organization.svg"
The unnamed workflow in `main.nf` is called an _entrypoint_ script. It acts as a wrapper for two kinds of nested workflows: the `DEMO` workflow containing the actual analysis logic, located in `workflows/demo.nf`, and a set of housekeeping workflows located under `subworkflows/`. @@ -377,12 +376,12 @@ nextflow run ./core-hello -profile docker,test --outdir core-hello-results Core Nextflow options runName : cheesy_avogadro containerEngine : docker - launchDir : /workspaces/training/hello-nf-core - workDir : /workspaces/training/hello-nf-core/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build + workDir : /workspaces/training/nfcore-build/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : docker,test - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -431,7 +430,7 @@ That is the direct equivalent to the `DEMO` workflow, though at the moment it's And accordingly, this is what the overall structure of the pipeline scaffold looks like:
---8<-- "docs/en/docs/hello_nf-core/img/core-hello-initial.svg" +--8<-- "docs/en/docs/nfcore_build/img/core-hello-initial.svg"
This should remind you of the `nf-core/demo` pipeline structure! @@ -522,7 +521,7 @@ These are optional features of Nextflow that make the workflow **composable**, m You may have noticed the `def topic_versions = channel.topic("versions")` block starting at line 28. This is boilerplate housekeeping code that collects software version information from all modules automatically. nf-core is rolling out this mechanism across all pipelines in 2026, so you'll see it in all new pipelines going forward. - Part 4 of this course explains how it works in detail. + Part 3 of this course explains how it works in detail. We are going to need to plug the relevant logic from our workflow of interest into that structure. @@ -548,7 +547,7 @@ In order to map clearly what parts of the original workflow should go where in t This is what we are trying to build right now:
---8<-- "docs/en/docs/hello_nf-core/img/composable-hello.svg" +--8<-- "docs/en/docs/nfcore_build/img/composable-hello.svg"
Effectively, we want to mimic the modular structure of the nf-core scaffold, but with less complexity to start with. @@ -895,7 +894,7 @@ If you made all the changes correctly, this should run to completion. [c0/3c336a] HELLO:convertToUpper (2) | 3 of 3 ✔ [5c/47bb4f] HELLO:collectGreetings | 1 of 1 ✔ [07/bfc706] HELLO:cowpy | 1 of 1 ✔ - Output: /workspaces/training/hello-nf-core/work/07/bfc7061fa521e86f4e1954191ab4c4/cowpy-COLLECTED-test-batch-output.txt + Output: /workspaces/training/nfcore-build/work/07/bfc7061fa521e86f4e1954191ab4c4/cowpy-COLLECTED-test-batch-output.txt ``` This means we've successfully upgraded our `HELLO` workflow to be composable. @@ -916,7 +915,7 @@ Now that we've verified our composable workflow works correctly, let's return to We want to integrate the composable workflow we just developed into the nf-core template structure, so the end result should look something like this.
---8<-- "docs/en/docs/hello_nf-core/img/core-hello.svg" +--8<-- "docs/en/docs/nfcore_build/img/core-hello.svg"
So how do we make that happen? Let's have a look at the current content of the `HELLO` workflow in `core-hello/workflows/hello.nf` (the nf-core scaffold). @@ -985,9 +984,9 @@ workflow HELLO { */ ``` -This is the composable workflow structure: a named `workflow HELLO {` block with `take:`, `main:`, and `emit:`. -The block under `// Collate and save software versions` is more substantial: it handles software version capture using topic channels, a mechanism nf-core is rolling out across all pipelines in 2026. -We'll explain it in Part 4; for now, treat it as boilerplate that you can leave untouched. +The highlighted lines define the composable workflow structure: `workflow HELLO {`, `take:`, `main:`, and `emit:`. +The large block between lines 17–34 is more substantial: it handles software version capture using topic channels, a mechanism nf-core is rolling out across all pipelines in 2026. +We'll explain it in Part 3; for now, treat it as boilerplate that you can leave untouched. We need to add the relevant code from the composable version of the original workflow that we developed in section 2. @@ -1001,7 +1000,7 @@ We're going to tackle this in the following stages: !!! info We're going to ignore the version capture block for this first pass. - Part 4 explains how it works. + Part 3 explains how it works. ### 4.1. Copy the modules and set up module imports @@ -1386,7 +1385,7 @@ What matters here is that there are two workflows defined: Here is a diagram of how they relate to each other:
---8<-- "docs/en/docs/hello_nf-core/img/hello-nested-workflows.svg" +--8<-- "docs/en/docs/nfcore_build/img/hello-nested-workflows.svg"
Importantly, we cannot find any code constructing an input channel at this level, only references to a samplesheet provided via the `--input` parameter. @@ -1657,7 +1656,7 @@ If you've done all of the modifications correctly, it should run to completion. Launching `core-hello/main.nf` [voluminous_caravaggio] revision: d6bbba9521 Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -1671,12 +1670,12 @@ If you've done all of the modifications correctly, it should run to completion. Core Nextflow options runName : voluminous_caravaggio containerEngine : docker - launchDir : /workspaces/training/hello-nf-core - workDir : /workspaces/training/hello-nf-core/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build + workDir : /workspaces/training/nfcore-build/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -1775,4 +1774,4 @@ As part of that, you learned how to make a workflow composable, and how to ident ### What's next? -Take a break, that was hard work! When you're ready, move on to [Part 3: Use an nf-core module](./03_use_module.md) to learn how to leverage community-maintained modules from the nf-core/modules repository. +Take a break, that was hard work! When you're ready, move on to [Part 2: Use an nf-core module](./02_use_module.md) to learn how to leverage community-maintained modules from the nf-core/modules repository. diff --git a/docs/en/docs/hello_nf-core/03_use_module.md b/docs/en/docs/nfcore_build/02_use_module.md similarity index 97% rename from docs/en/docs/hello_nf-core/03_use_module.md rename to docs/en/docs/nfcore_build/02_use_module.md index ea692370a5..1de552f95d 100644 --- a/docs/en/docs/hello_nf-core/03_use_module.md +++ b/docs/en/docs/nfcore_build/02_use_module.md @@ -1,6 +1,6 @@ -# Part 3: Use an nf-core module +# Part 2: Use an nf-core module -In this third part of the Hello nf-core training course, we show you how to find, install, and use an existing nf-core module in your pipeline. +In this second part of the Build with nf-core training course, we show you how to find, install, and use an existing nf-core module in your pipeline. One of the great benefits of working with nf-core is the ability to leverage pre-built, tested modules from the [nf-core/modules](https://github.com/nf-core/modules) repository. Rather than writing every process from scratch, you can install and use community-maintained modules that follow best practices. @@ -9,13 +9,13 @@ To demonstrate how this works, we'll replace the custom `collectGreetings` modul ??? info "How to begin from this section" - This section of the course assumes you have completed [Part 2: Rewrite Hello for nf-core](./02_rewrite_hello.md) and have a working `core-hello` pipeline. + This section of the course assumes you have completed [Part 1: Rewrite Hello for nf-core](./01_rewrite_hello.md) and have a working `core-hello` pipeline. - If you did not complete Part 2 or want to start fresh for this part, you can use the `core-hello-part2` solution as your starting point. - Run this command from within the `hello-nf-core/` directory: + If you did not complete Part 1 or want to start fresh for this part, you can use the `core-hello-part1` solution as your starting point. + Run this command from within the `nfcore-build/` directory: ```bash - cp -r solutions/core-hello-part2 core-hello + cp -r solutions/core-hello-part1 core-hello cd core-hello ``` @@ -488,7 +488,7 @@ Note also that by default, the output file will be named based on an identifier This may seem like a lot to keep track of just looking at the code, so here's a diagram to help you visualize how everything fits together.
---8<-- "docs/en/docs/hello_nf-core/img/module_comparison.svg" +--8<-- "docs/en/docs/nfcore_build/img/module_comparison.svg"
You can see that the two modules have similar input requirements in terms of content (a set of input files plus some metadata) but very different expectations for how that content is packaged. @@ -825,7 +825,7 @@ This should run reasonably quickly. Launching `./main.nf` [cheesy_bhabha] revision: d6bbba9521 Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -839,12 +839,12 @@ This should run reasonably quickly. Core Nextflow options runName : cheesy_bhabha containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ diff --git a/docs/en/docs/hello_nf-core/04_make_module.md b/docs/en/docs/nfcore_build/03_make_module.md similarity index 94% rename from docs/en/docs/hello_nf-core/04_make_module.md rename to docs/en/docs/nfcore_build/03_make_module.md index 0254e0946a..e650631e57 100644 --- a/docs/en/docs/hello_nf-core/04_make_module.md +++ b/docs/en/docs/nfcore_build/03_make_module.md @@ -1,20 +1,20 @@ -# Part 4: Make an nf-core module +# Part 3: Make an nf-core module -In this fourth part of the Hello nf-core training course, we show you how to create an nf-core module by applying the key conventions that make modules portable and maintainable. +In this third part of the Build with nf-core training course, we show you how to create an nf-core module by applying the key conventions that make modules portable and maintainable. -The nf-core project provides a command (`nf-core modules create`) that generates properly structured module templates automatically, similar to what we used for the workflow in Part 2. +The nf-core project provides a command (`nf-core modules create`) that generates properly structured module templates automatically, similar to what we used for the workflow in Part 1. However, for teaching purposes, we're going to start by doing it manually: transforming the local `cowpy` module in your `core-hello` pipeline into an nf-core-style module step-by-step. After that, we'll show you how to use the template-based module creation to work more efficiently in the future. ??? info "How to begin from this section" - This section assumes you have completed [Part 3: Use an nf-core module](./03_use_module.md) and have integrated the `FIND_CONCATENATE` module into your pipeline. + This section assumes you have completed [Part 2: Use an nf-core module](./02_use_module.md) and have integrated the `FIND_CONCATENATE` module into your pipeline. - If you did not complete Part 3 or want to start fresh for this part, you can use the `core-hello-part3` solution as your starting point. - Run these commands from inside the `hello-nf-core/` directory: + If you did not complete Part 2 or want to start fresh for this part, you can use the `core-hello-part2` solution as your starting point. + Run these commands from inside the `nfcore-build/` directory: ```bash - cp -r solutions/core-hello-part3 core-hello + cp -r solutions/core-hello-part2 core-hello cd core-hello ``` @@ -256,7 +256,7 @@ nextflow run . --outdir core-hello-results -profile test,docker Launching `./main.nf` [elegant_plateau] revision: b9e9b3b8de Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -270,12 +270,12 @@ nextflow run . --outdir core-hello-results -profile test,docker Core Nextflow options runName : elegant_plateau containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -294,7 +294,7 @@ Alright, this works! Now let's move on to making more substantial changes. In the current version of the `core-hello` pipeline, we're extracting the file from `FIND_CONCATENATE`'s output tuple to pass to `COWPY`, as shown in the top half of the diagram below.
- --8<-- "docs/en/docs/hello_nf-core/img/cowpy-inputs.svg" + --8<-- "docs/en/docs/nfcore_build/img/cowpy-inputs.svg"
It would be better to have `COWPY` accept metadata tuples directly, allowing metadata to flow on through the workflow, as shown in the bottom half of the diagram. @@ -333,7 +333,7 @@ Return to the `cowpy.nf` module file and modify it to accept metadata tuples as path "cowpy-${input_file}" ``` -As you can see, we changed both the **main input** and the **output** to a tuple that follows the `tuple val(meta), path(input_file)` pattern introduced in Part 3 of this training. +As you can see, we changed both the **main input** and the **output** to a tuple that follows the `tuple val(meta), path(input_file)` pattern introduced in Part 2 of this training. For the output, we also took this opportunity to add `emit: cowpy_output` in order to give the output channel a descriptive name. Now that we've changed what the process expects, we need to update what we provide to it in the process call. @@ -405,7 +405,7 @@ nextflow run . --outdir core-hello-results -profile test,docker Downloading plugin nf-schema@2.7.2 Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -419,12 +419,12 @@ nextflow run . --outdir core-hello-results -profile test,docker Core Nextflow options runName : modest_saha containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -632,7 +632,7 @@ nextflow run . --outdir core-hello-results -profile test,docker --character kosh Launching `./main.nf` [exotic_planck] revision: b9e9b3b8de Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -646,12 +646,12 @@ nextflow run . --outdir core-hello-results -profile test,docker --character kosh Core Nextflow options runName : exotic_planck containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -850,7 +850,7 @@ nextflow run . --outdir core-hello-results -profile test,docker Launching `./main.nf` [admiring_turing] revision: b9e9b3b8de Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -864,12 +864,12 @@ nextflow run . --outdir core-hello-results -profile test,docker Core Nextflow options runName : admiring_turing containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -987,7 +987,7 @@ nextflow run . --outdir core-hello-results -profile test,docker Launching `./main.nf` [silly_caravaggio] revision: b9e9b3b8de Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -1001,12 +1001,12 @@ nextflow run . --outdir core-hello-results -profile test,docker Core Nextflow options runName : silly_caravaggio containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -1194,7 +1194,7 @@ Workflow: Nextflow: 26.04.4 ``` -The workflow-side collection — the `channel.topic("versions")` block you saw in the placeholder workflow in Part 2 — subscribes to the topic and writes this combined report automatically. +The workflow-side collection — the `channel.topic("versions")` block you saw in the placeholder workflow in Part 1 — subscribes to the topic and writes this combined report automatically. !!! info "Backwards compatibility" @@ -1589,7 +1589,7 @@ nextflow run . --outdir core-hello-results -profile test,docker Launching `./main.nf` [prickly_neumann] revision: b9e9b3b8de Input/output options - input : /workspaces/training/hello-nf-core/core-hello/assets/greetings.csv + input : /workspaces/training/nfcore-build/core-hello/assets/greetings.csv outdir : core-hello-results Institutional config options @@ -1603,12 +1603,12 @@ nextflow run . --outdir core-hello-results -profile test,docker Core Nextflow options runName : prickly_neumann containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : test,docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -1681,4 +1681,4 @@ Finally, you learned how to contribute modules to the nf-core community, making ### What's next? -When you're ready, continue to [Part 5: Input validation](./05_input_validation.md) to learn how to add schema-based input validation to your pipeline. +When you're ready, continue to [Part 4: Input validation](./04_input_validation.md) to learn how to add schema-based input validation to your pipeline. diff --git a/docs/en/docs/hello_nf-core/05_input_validation.md b/docs/en/docs/nfcore_build/04_input_validation.md similarity index 97% rename from docs/en/docs/hello_nf-core/05_input_validation.md rename to docs/en/docs/nfcore_build/04_input_validation.md index 7ae0185a36..7f9350227e 100644 --- a/docs/en/docs/hello_nf-core/05_input_validation.md +++ b/docs/en/docs/nfcore_build/04_input_validation.md @@ -1,16 +1,16 @@ -# Part 5: Input validation +# Part 4: Input validation -In this fifth part of the Hello nf-core training course, we show you how to use the nf-schema plugin to validate pipeline inputs and parameters. +In this fourth part of the Build with nf-core training course, we show you how to use the nf-schema plugin to validate pipeline inputs and parameters. ??? info "How to begin from this section" - This section assumes you have completed [Part 4: Make an nf-core module](./04_make_module.md) and have updated the `COWPY` process module to nf-core standards in your pipeline. + This section assumes you have completed [Part 3: Make an nf-core module](./03_make_module.md) and have updated the `COWPY` process module to nf-core standards in your pipeline. - If you did not complete Part 4 or want to start fresh for this part, you can use the `core-hello-part4` solution as your starting point. - Run these commands from inside the `hello-nf-core/` directory: + If you did not complete Part 3 or want to start fresh for this part, you can use the `core-hello-part3` solution as your starting point. + Run these commands from inside the `nfcore-build/` directory: ```bash - cp -r solutions/core-hello-part4 core-hello + cp -r solutions/core-hello-part3 core-hello cd core-hello ``` @@ -763,12 +763,12 @@ nextflow run . --input assets/invalid_greetings.csv --outdir test-results -profi Core Nextflow options runName : trusting_ochoa containerEngine : docker - launchDir : /workspaces/training/hello-nf-core/core-hello - workDir : /workspaces/training/hello-nf-core/core-hello/work - projectDir : /workspaces/training/hello-nf-core/core-hello + launchDir : /workspaces/training/nfcore-build/core-hello + workDir : /workspaces/training/nfcore-build/core-hello/work + projectDir : /workspaces/training/nfcore-build/core-hello userName : root profile : docker - configFiles : /workspaces/training/hello-nf-core/core-hello/nextflow.config + configFiles : /workspaces/training/nfcore-build/core-hello/nextflow.config !! Only displaying parameters that differ from the pipeline defaults !! ------------------------------------------------------ @@ -806,6 +806,6 @@ You've implemented and tested both parameter validation and input data validatio ### What's next? -You've completed all five parts of the Hello nf-core training course! +You've completed all five parts of the Build with nf-core training course! Continue to the [Summary](next_steps.md) to reflect on what you've built and learned. diff --git a/docs/en/docs/hello_nf-core/img/composable-hello.svg b/docs/en/docs/nfcore_build/img/composable-hello.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/composable-hello.svg rename to docs/en/docs/nfcore_build/img/composable-hello.svg diff --git a/docs/en/docs/hello_nf-core/img/core-hello-initial.svg b/docs/en/docs/nfcore_build/img/core-hello-initial.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/core-hello-initial.svg rename to docs/en/docs/nfcore_build/img/core-hello-initial.svg diff --git a/docs/en/docs/hello_nf-core/img/core-hello.svg b/docs/en/docs/nfcore_build/img/core-hello.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/core-hello.svg rename to docs/en/docs/nfcore_build/img/core-hello.svg diff --git a/docs/en/docs/hello_nf-core/img/cowpy-inputs.svg b/docs/en/docs/nfcore_build/img/cowpy-inputs.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/cowpy-inputs.svg rename to docs/en/docs/nfcore_build/img/cowpy-inputs.svg diff --git a/docs/en/docs/hello_nf-core/img/execution_timeline_empty.png b/docs/en/docs/nfcore_build/img/execution_timeline_empty.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/execution_timeline_empty.png rename to docs/en/docs/nfcore_build/img/execution_timeline_empty.png diff --git a/docs/en/docs/hello_nf-core/img/execution_timeline_hello.png b/docs/en/docs/nfcore_build/img/execution_timeline_hello.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/execution_timeline_hello.png rename to docs/en/docs/nfcore_build/img/execution_timeline_hello.png diff --git a/docs/en/docs/hello_nf-core/img/hello-nested-workflows.svg b/docs/en/docs/nfcore_build/img/hello-nested-workflows.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/hello-nested-workflows.svg rename to docs/en/docs/nfcore_build/img/hello-nested-workflows.svg diff --git a/docs/en/docs/hello_nf-core/img/module-search-results.png b/docs/en/docs/nfcore_build/img/module-search-results.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/module-search-results.png rename to docs/en/docs/nfcore_build/img/module-search-results.png diff --git a/docs/en/docs/hello_nf-core/img/module_comparison.svg b/docs/en/docs/nfcore_build/img/module_comparison.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/module_comparison.svg rename to docs/en/docs/nfcore_build/img/module_comparison.svg diff --git a/docs/en/docs/hello_nf-core/img/nf-core-logo-darkbg.png b/docs/en/docs/nfcore_build/img/nf-core-logo-darkbg.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/nf-core-logo-darkbg.png rename to docs/en/docs/nfcore_build/img/nf-core-logo-darkbg.png diff --git a/docs/en/docs/hello_nf-core/img/nf-core-logo.png b/docs/en/docs/nfcore_build/img/nf-core-logo.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/nf-core-logo.png rename to docs/en/docs/nfcore_build/img/nf-core-logo.png diff --git a/docs/en/docs/hello_nf-core/img/nf-core_demo_code_organization.svg b/docs/en/docs/nfcore_build/img/nf-core_demo_code_organization.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/nf-core_demo_code_organization.svg rename to docs/en/docs/nfcore_build/img/nf-core_demo_code_organization.svg diff --git a/docs/en/docs/hello_nf-core/img/schema_add.png b/docs/en/docs/nfcore_build/img/schema_add.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/schema_add.png rename to docs/en/docs/nfcore_build/img/schema_add.png diff --git a/docs/en/docs/hello_nf-core/img/schema_build.png b/docs/en/docs/nfcore_build/img/schema_build.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/schema_build.png rename to docs/en/docs/nfcore_build/img/schema_build.png diff --git a/docs/en/docs/hello_nf-core/img/search-results.png b/docs/en/docs/nfcore_build/img/search-results.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/search-results.png rename to docs/en/docs/nfcore_build/img/search-results.png diff --git a/docs/en/docs/hello_nf-core/index.md b/docs/en/docs/nfcore_build/index.md similarity index 83% rename from docs/en/docs/hello_nf-core/index.md rename to docs/en/docs/nfcore_build/index.md index b7ed46c255..bc3f6e696f 100644 --- a/docs/en/docs/hello_nf-core/index.md +++ b/docs/en/docs/nfcore_build/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -7,7 +7,6 @@ index_type: course additional_information: technical_requirements: true learning_objectives: - - Retrieve, launch and manage execution of nf-core pipelines - Describe the code structure and project organization of nf-core pipelines - Create a basic nf-core compatible pipeline from a template - Upgrade a plain Nextflow workflow to fit nf-core standards @@ -17,13 +16,13 @@ additional_information: audience_prerequisites: - "**Audience:** This course is designed for learners who are already familiar with basic Nextflow and want to learn to use nf-core resources and best practices." - "**Skills:** Familiarity with the command line, basic scripting concepts and common file formats is assumed." - - "**Courses:** Must have completed the [Hello Nextflow](../hello_nextflow/index.md) course or equivalent." + - "**Courses:** Must have completed [Hello Nextflow](../hello_nextflow/index.md) and [Use nf-core](../nfcore_use/index.md), or have equivalent experience." - "**Domain:** The exercises are all domain-agnostic, so no prior scientific knowledge is required." --- -# Hello nf-core +# Build with nf-core -**Hello nf-core is a hands-on introduction to using nf-core resources and best practices.** +**Build with nf-core is a hands-on introduction to using nf-core resources and best practices.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) @@ -49,15 +48,14 @@ Instead, we will focus on the essential concepts that will help you get started ### Lesson plan -We've broken this down into five parts that will each focus on specific aspects of using nf-core resources. +We've broken this down into four parts that will each focus on specific aspects of using nf-core resources. | Course chapter | Summary | Estimated duration | | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------ | -| [Part 1: Run a demo pipeline](./01_run_demo.md) | Run an existing nf-core pipeline and examine its code structure to get a sense of what makes these pipelines different from basic Nextflow workflows | 30 mins | -| [Part 2: Rewrite Hello for nf-core](./02_rewrite_hello.md) | Adapt an existing workflow to the nf-core template scaffold, starting from the simple workflow produced in the [Hello Nextflow](../hello_nextflow/index.md) course | 60 mins | -| [Part 3: Use an nf-core module](./03_use_module.md) | Explore the community modules library and learn to integrate pre-built, tested modules that wrap common bioinformatics tools | 30 mins | -| [Part 4: Make an nf-core module](./04_make_module.md) | Create your own nf-core-style module using the specific structure, naming conventions, and metadata requirements established by nf-core | 30 mins | -| [Part 5: Add input validation](./05_input_validation.md) | Implement input validation for both command-line parameters and input data files using nf-schema | 30 mins | +| [Part 1: Rewrite Hello for nf-core](./01_rewrite_hello.md) | Adapt an existing workflow to the nf-core template scaffold, starting from the simple workflow produced in the [Hello Nextflow](../hello_nextflow/index.md) course | 60 mins | +| [Part 2: Use an nf-core module](./02_use_module.md) | Explore the community modules library and learn to integrate pre-built, tested modules that wrap common bioinformatics tools | 30 mins | +| [Part 3: Make an nf-core module](./03_make_module.md) | Create your own nf-core-style module using the specific structure, naming conventions, and metadata requirements established by nf-core | 30 mins | +| [Part 4: Add input validation](./04_input_validation.md) | Implement input validation for both command-line parameters and input data files using nf-schema | 30 mins | By the end of this course, you will be able to take advantage of the enormous wealth of resources offered by the nf-core project. diff --git a/docs/en/docs/hello_nf-core/next_steps.md b/docs/en/docs/nfcore_build/next_steps.md similarity index 92% rename from docs/en/docs/hello_nf-core/next_steps.md rename to docs/en/docs/nfcore_build/next_steps.md index c9f8c1e2fa..b963287557 100644 --- a/docs/en/docs/hello_nf-core/next_steps.md +++ b/docs/en/docs/nfcore_build/next_steps.md @@ -1,12 +1,12 @@ # Course summary -Congratulations on completing the Hello nf-core training course! 🎉 +Congratulations on completing the Build with nf-core training course! 🎉 ## Your journey -You started by learning retrieve and run a demo pipeline, then tackled the conversion of a simple Nextflow workflow into an nf-core pipeline. +You started by tackling the conversion of a simple Nextflow workflow into an nf-core pipeline. You learned how to create a pipeline scaffold using a template and grafted the existing pipeline onto that scaffold. Then you gradually refined the pipeline by replacing one of the local modules with an nf-core module, transformed another one of the local modules to fit nf-core standards, and added input validation. diff --git a/docs/en/docs/hello_nf-core/survey.md b/docs/en/docs/nfcore_build/survey.md similarity index 86% rename from docs/en/docs/hello_nf-core/survey.md rename to docs/en/docs/nfcore_build/survey.md index 01f3f96a07..48f77bd876 100644 --- a/docs/en/docs/hello_nf-core/survey.md +++ b/docs/en/docs/nfcore_build/survey.md @@ -4,4 +4,4 @@ Before you move on, please complete this short 5-question survey to rate the tra This should take you less than a minute to complete. Thank you for helping us improve our training materials for everyone! -
+
diff --git a/docs/en/docs/nfcore_use/00_orientation.md b/docs/en/docs/nfcore_use/00_orientation.md new file mode 100644 index 0000000000..65cae1eeca --- /dev/null +++ b/docs/en/docs/nfcore_use/00_orientation.md @@ -0,0 +1,101 @@ +# Getting started + +## Start a training environment + +To use the pre-built environment we provide on GitHub Codespaces, click the "Open in GitHub Codespaces" button below. For other options, see [Environment options](../envsetup/index.md). + +We recommend opening the training environment in a new browser tab or window (use right-click, ctrl-click or cmd-click depending on your equipment) so that you can read on while the environment loads. +You will need to keep these instructions open in parallel to work through the course. + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) + +### Environment basics + +This training environment contains all the software, code and data necessary to work through the training course, so you don't need to install anything yourself. + +The codespace is set up with a VSCode interface, which includes a filesystem explorer, a code editor and a terminal shell. +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. + +If you are working through this course by yourself, please acquaint yourself with the [environment basics](../envsetup/01_setup.md) for further details. + +### Version requirements + +This training works with Nextflow 25.10.2 or later **with the v2 syntax parser**, which is the default from Nextflow 26.04 onward. +In our training environment you don't need to do anything: it runs Nextflow 26.04.4 with the v2 parser. If you are using a local or custom environment, see the [version notes](../info/nxf_versions.md). + +!!! warning "nf-core/demo requires Nextflow 25.10.4 or later" + + The `nf-core/demo` pipeline used in Part 1 enforces its own minimum Nextflow version (`>=25.10.4`), which is stricter than the general training floor of 25.10.2. + Our training environment already satisfies this; if you are using a local or custom environment, make sure you are on Nextflow 25.10.4 or later. + +This training additionally requires **nf-core tools 4.0.2**. +If you use a different version of nf-core tooling, you may have difficulty following along. + +You can check what version is installed in your environment using the command `nf-core --version`. + +!!! warning "v2 parser compatibility" + + Many nf-core pipelines do not yet support the v2 syntax parser. + If you run an nf-core pipeline other than those used in this course and encounter errors, you may need to switch to the v1 parser by setting `export NXF_SYNTAX_PARSER=v1`. + See the [version notes](../info/nxf_versions.md) for details. + +## Get ready to work + +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. + +### Set the working directory + +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 `nfcore-use/` directory. + +Change directory now by running this command in the terminal: + +```bash +cd nfcore-use/ +``` + +!!! tip + + 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: + + ```bash + cd /workspaces/training/nfcore-use + ``` + +Next, explore the contents of this directory. + +### Explore the materials provided + +You can explore the contents of this directory by using the file explorer on the left-hand side of the training workspace. +Alternatively, you can use the `tree` command. + +```bash +tree . +``` + +??? abstract "Directory contents" + + ```console + . + ├── custom.config + ├── laptop.config + ├── malformed_samplesheet.csv + └── my_params.yml + ``` + +- **The `laptop.config` file** is a configuration file we'll use in section 4 to cap resource usage when running a production-scale pipeline locally. + You can ignore it until then. +- **The `my_params.yml`, `malformed_samplesheet.csv`, and `custom.config` files** are used in Part 2, to demonstrate setting parameters from a file, input validation, and process-level configuration overrides. + You can ignore them until then too. + +## Readiness checklist + +Think you're ready to dive in? + +- [ ] I understand the goal of this course and its prerequisites +- [ ] My environment is up and running +- [ ] I'm using nf-core tools 4.0.2 (check with `nf-core --version`) +- [ ] I've set my working directory appropriately + +If you can check all the boxes, you're good to go. + +**To continue to Part 1, click on the arrow in the bottom right corner of this page.** diff --git a/docs/en/docs/nfcore_use/01_run_demo.md b/docs/en/docs/nfcore_use/01_run_demo.md new file mode 100644 index 0000000000..4ee58960a1 --- /dev/null +++ b/docs/en/docs/nfcore_use/01_run_demo.md @@ -0,0 +1,507 @@ +# Part 1: Run a demo pipeline + +In this first part of the Use nf-core training course, we show you how to find an nf-core pipeline and try it out using its built-in test profile. + +We are going to use a pipeline called nf-core/demo that is maintained by the nf-core project as part of its inventory of pipelines for demonstration and training purposes. + +Make sure your working directory is set to `nfcore-use/` as instructed on the [Getting started](./00_orientation.md) page. + +--- + +## 1. Find and retrieve the nf-core/demo pipeline + +Let's start by locating the nf-core/demo pipeline on the project website at [nf-co.re](https://nf-co.re), which centralizes all information such as: general documentation and help articles, documentation for each of the pipelines, blog posts, event announcements and so forth. + +### 1.1. Find the pipeline on the website + +In your web browser, go to [https://nf-co.re/pipelines/](https://nf-co.re/pipelines/) and type `demo` in the search bar. + +![search results](./img/search-results.png) + +Click on the pipeline name, `demo`, to access the pipeline documentation page. + +Each released pipeline has a dedicated page that includes the following documentation sections: + +- **Introduction:** An introduction and overview of the pipeline +- **Usage:** Descriptions of how to execute the pipeline +- **Parameters:** Grouped pipeline parameters with descriptions +- **Output:** Descriptions and examples of the expected output files +- **Results:** Example output files generated from the full test dataset +- **Releases & Statistics:** Pipeline version history and statistics + +Whenever you are considering adopting a new pipeline, you should read the pipeline documentation carefully first to understand what it does and how it should be configured before attempting to run it. + +Have a look now and see if you can find out: + +- Which tools the pipeline will run (Check the tab: `Introduction`) +- Which inputs and parameters the pipeline accepts or requires (Check the tab: `Parameters`) +- What are the outputs produced by the pipeline (Check the tab: `Output`) + +#### 1.1.1. Pipeline overview + +The `Introduction` tab provides an overview of the pipeline, including a visual representation (called a subway map) and a list of tools that are run as part of the pipeline. + +![pipeline subway map](./img/nf-core-demo-subway-cropped.png) + +1. Read QC ([FASTQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)) +2. Adapter and quality trimming ([SEQTK_TRIM](https://github.com/lh3/seqtk)) +3. Present QC for raw reads ([MULTIQC](http://multiqc.info/)) +4. Generate a lighthearted text message from a cow ([COWPY](https://github.com/jeffbuttars/cowpy)) + +#### 1.1.2. Example command line + +The documentation also provides an example input file (discussed further below) and an example command line. + +```bash +nextflow run nf-core/demo \ + -profile \ + --input samplesheet.csv \ + --outdir +``` + +You'll notice that the example command does NOT specify a workflow file, just the reference to the pipeline repository, `nf-core/demo`. + +When invoked this way, Nextflow will assume that the code is organized in a certain way. +Let's retrieve the code so we can examine this structure. + +### 1.2. Retrieve the pipeline code + +Once we've determined that the pipeline appears to be suitable for our purposes, let's try it out. +Fortunately Nextflow makes it easy to retrieve pipelines from correctly-formatted repositories without having to download anything manually. + +#### 1.2.1. Use `nextflow pull` + +Let's return to the terminal and run the following: + +```bash +nextflow pull nf-core/demo +``` + +??? success "Command output" + + ```console + Checking nf-core/demo ... + downloaded from https://github.com/nf-core/demo.git - revision: 32893afef8 [master] + ``` + +Nextflow does a `pull` of the pipeline code, meaning it downloads the full repository to your local drive. + +To be clear, you can do this with any Nextflow pipeline that is appropriately set up in GitHub, not just nf-core pipelines. +However nf-core is the largest open-source collection of Nextflow pipelines. + +#### 1.2.2. Use `nextflow list` + +You can get Nextflow to give you a list of what pipelines you have retrieved in this way: + +```bash +nextflow list +``` + +??? success "Command output" + + ```console + nf-core/demo + ``` + +You can try pulling a few other pipelines to see how they get listed when you have more than one. + +#### 1.2.3. Find where the pipeline was downloaded + +You'll notice that the files are not in your current work directory. +By default, Nextflow saves pulled pipelines under `$NXF_HOME/assets`. + +To find where a specific pipeline lives, ask Nextflow directly: + +```bash +nextflow info nf-core/demo +``` + +??? success "Command output" + + ```console + project name: nf-core/demo + repository : https://github.com/nf-core/demo + local path : /workspaces/.nextflow/assets/.repos/nf-core/demo + main script : main.nf + description : An nf-core demo pipeline + revisions : + TEMPLATE + bumper + dev + fix-nxfversion + manually-merge-3_0_2 + > master (default) + nf-core-template-merge-2.13.2.dev0 + nf-core-template-merge-2.14.0 + nf-core-template-merge-2.14.1 + nf-core-template-merge-3.0.0 + nf-core-template-merge-3.0.1 + nf-core-template-merge-3.0.2 + nf-core-template-merge-3.1.0 + nf-core-template-merge-3.1.2 + nf-core-template-merge-3.2.0 + nf-core-template-merge-3.2.1 + nf-core-template-merge-3.3.1 + nf-core-template-merge-3.3.2 + nf-core-template-merge-4.0.0 + 1.0.0 [t] + 1.0.1 [t] + 1.0.2 [t] + 1.1.0 [t] + > 1.2.0 [t] + ``` + +!!! info + + The full path may differ on your system if you're not using our training environment. + +Nextflow keeps the downloaded source code intentionally 'out of the way' on the principle that these pipelines should be used more like libraries than code that you would directly interact with. + +Under the hood, Nextflow stores each pulled pipeline as a git repository under `$NXF_HOME/assets/.repos/`, and checks out the code for each revision into a `clones//` subdirectory. +Because `.repos` is a hidden directory, a plain `tree -L 2 $NXF_HOME/assets/` will look empty. + +#### 1.2.4. Create a symlink to access the source code easily + +We're not going to look at the code in detail, but let's take a quick peek just to get a sense of what the overall organization looks like. + +To make it easier to browse the pipeline source code, create a symbolic link pointing at the checked-out copy of the pipeline: + +```bash +mkdir -p pipelines/nf-core +ln -s "$(echo $NXF_HOME/assets/.repos/nf-core/demo/clones/*/)" pipelines/nf-core/demo +``` + +This creates a shortcut so you can explore the code with `tree -L 2 pipelines/nf-core/demo` or open files directly. + +#### 1.2.5. Overview of the code organization + +You can either use `tree` or use the file explorer to find and open the `nf-core/demo` directory. + +```bash +tree -L 1 pipelines/nf-core/demo +``` + +??? abstract "Directory contents" + + ```console + pipelines/nf-core/demo + ├── assets + ├── CHANGELOG.md + ├── CITATIONS.md + ├── CODE_OF_CONDUCT.md + ├── conf + ├── docs + ├── LICENSE + ├── main.nf + ├── modules + ├── modules.json + ├── nextflow.config + ├── nextflow_schema.json + ├── nf-test.config + ├── README.md + ├── ro-crate-metadata.json + ├── subworkflows + ├── tests + ├── tower.yml + └── workflows + + 7 directories, 12 files + ``` + +As you can see, there's a lot going on in there, most of which you don't need to worry about. + +Briefly, let's note that at the top level, you can find a README file with summary information, as well as accessory files that summarize project information such as licensing, contribution guidelines, citation and code of conduct. +Detailed pipeline documentation is located in the `docs` directory. +All of this content is used to generate the web pages on the nf-core website programmatically, so they're always up to date with the code. + +For the rest, we can distinguish three functional groups of code files: + +1. Pipeline code components (`main.nf`, `workflows`, `subworkflows`, `modules`) +2. Pipeline configuration +3. Pipeline parameters / inputs and validation + +We won't go over the pipeline code components in this part of the course, but we will touch on elements of configuration and validation that are likely to be relevant to you as an end user of nf-core pipelines. + +!!! tip + + You can also browse any nf-core pipeline's source code on GitHub, e.g. [github.com/nf-core/demo](https://github.com/nf-core/demo). + Every nf-core pipeline follows the same directory layout, so once you know the structure, you can find configuration files, modules, and workflows for any pipeline the same way. + +For now, on to running the pipeline! + +### Takeaway + +You now know how to find a pipeline via the nf-core website and retrieve a local copy of the source code. + +### What's next? + +Learn how to try out an nf-core pipeline with minimal effort. + +--- + +## 2. Try out the pipeline with its test profile + +Conveniently, every nf-core pipeline comes with a test profile. +This is a minimal set of configuration settings for the pipeline to run using a small test dataset hosted in the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. +It's a great way to quickly try out a pipeline at small scale. + +!!! tip + + Nextflow's configuration profile system allows you to easily switch between different container engines or execution environments. + For more details, see [Hello Nextflow Part 6: Configuration](../hello_nextflow/06_hello_config.md). + +### 2.1. Examine the test profile + +It's good practice to check what a pipeline's test profile specifies before running it. +The `test` profile for `nf-core/demo` lives in the configuration file `conf/test.config`. +You can find it locally inside the pipeline source that `nextflow pull` downloaded, via the `pipelines` symlink created in section 1.2.4: + +```bash +code pipelines/nf-core/demo/conf/test.config +``` + +Here is the content of that file: + +```groovy title="conf/test.config" linenums="1" hl_lines="8 26" +/* +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Nextflow config file for running minimal tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Defines input files and everything required to run a fast and simple pipeline test. + + Use as follows: + nextflow run nf-core/demo -profile test, --outdir + +---------------------------------------------------------------------------------------- +*/ + +process { + resourceLimits = [ + cpus: 2, + memory: '4.GB', + time: '1.h', + ] +} + +params { + config_profile_name = 'Test profile' + config_profile_description = 'Minimal test dataset to check pipeline function' + + // Input data + input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' +} +``` + +You'll notice right away that the comment block at the top includes a usage example showing how to run the pipeline with this test profile. + +```groovy title="conf/test.config" linenums="7" + Use as follows: + nextflow run nf-core/demo -profile test, --outdir +``` + +The only things we need to supply are what's shown between carets in the example command: `` and ``. + +As a reminder, `` refers to the choice of container system. All nf-core pipelines are designed to be usable with containers (Docker, Singularity, etc.) to ensure reproducibility and eliminate software installation issues. +So we'll need to specify whether we want to use Docker or Singularity to test the pipeline. + +The `--outdir ` part refers to the directory where Nextflow will write the pipeline's outputs. +We need to provide a name for it, which we can just make up. +If it does not exist already, Nextflow will create it for us at runtime. + +Moving on to the section after the comment block, the test profile shows us what has been pre-configured for testing: most notably, the `input` parameter is already set to point to a test dataset, so we don't need to provide our own data. +If you follow the link to the pre-configured input, you'll see it is a csv file containing sample identifiers and file paths for several experimental samples. + +```csv title="samplesheet_test_illumina_amplicon.csv" +sample,fastq_1,fastq_2 +SAMPLE1_PE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R2.fastq.gz +SAMPLE2_PE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R1.fastq.gz,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R2.fastq.gz +SAMPLE3_SE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample1_R1.fastq.gz, +SAMPLE3_SE,https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/illumina/amplicon/sample2_R1.fastq.gz, +``` + +This is called a samplesheet, and is the most common form of input to nf-core pipelines. +Don't worry if you're not familiar with the data formats and types, it's not important for what follows. + +We now have everything we need to try out the pipeline. + +### 2.2. Run the pipeline + +As noted above, we can use the example testing command almost as-is; we just need to specify what software packaging to use, and what to name the output directory. +Here we'll use Docker for the container system and `demo-results`, respectively. + +With that, we can run the test command: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Downloading plugin nf-schema@2.7.2 + Launching `https://github.com/nf-core/demo` [cranky_curry] revision: 32893afef8 [master] + + ------------------------------------------------------ + ,--./,-. + ___ __ __ __ ___ /,-._.--~' + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' + nf-core/demo 1.2.0 + ------------------------------------------------------ + + Input/output options + input : https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv + outdir : demo-results + + Institutional config options + config_profile_name : Test profile + config_profile_description: Minimal test dataset to check pipeline function + + Generic options + trace_report_suffix : 2026-07-03_21-31-35 + + Core Nextflow options + revision : master + runName : cranky_curry + containerEngine : docker + launchDir : /workspaces/training/nfcore-use + workDir : /workspaces/training/nfcore-use/work + projectDir : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2 + userName : root + profile : test,docker + configFiles : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2/nextflow.config + + !! Only displaying parameters that differ from the pipeline defaults !! + ------------------------------------------------------ + + * The pipeline + https://doi.org/10.5281/zenodo.12192442 + + * The nf-core framework + https://doi.org/10.1038/s41587-020-0439-x + + * Software dependencies + https://github.com/nf-core/demo/blob/master/CITATIONS.md + + executor > local (8) + [ca/5b0f3e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ + [b7/cb6812] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE3_SE) [100%] 3 of 3 ✔ + [ff/6ebd98] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ + [09/bbd1b4] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ + -[nf-core/demo] Pipeline completed successfully- + ``` + +If your output matches that, congratulations! You've just run your first nf-core pipeline. + +You'll notice that there is a lot more console output than when you run a basic Nextflow pipeline. +There's a header that includes a summary of the pipeline's version, inputs and outputs, and a few elements of configuration. + +!!! info + + Your output will show different timestamps, execution names, and file paths, but the overall structure and process execution should be similar. + +Notice the line near the top of the output: + +```console +Launching `https://github.com/nf-core/demo` [cranky_curry] revision: 32893afef8 [master] +``` + +This tells you which revision of the pipeline was used. +Because we did not specify a version, Nextflow used the latest commit on `master`. +For reproducible runs, you should pin a specific release using the `-r` flag: + +```bash +nextflow run nf-core/demo -r 1.2.0 -profile test,docker --outdir demo-results +``` + +This ensures that the same pipeline code is used every time, regardless of new commits or releases. +For this training we omit `-r` for simplicity, but in production you should always specify it. + +Moving on to the execution output, let's have a look at the lines that tell us what processes were run: + +```console +executor > local (8) +[ca/5b0f3e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ +[b7/cb6812] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE3_SE) [100%] 3 of 3 ✔ +[ff/6ebd98] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ +[09/bbd1b4] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ +-[nf-core/demo] Pipeline completed successfully- +``` + +This tells us that four processes were run, corresponding to the four tools shown in the pipeline documentation page on the nf-core website: `FASTQC`, `SEQTK_TRIM`, `MULTIQC` and `COWPY`. + +The full process names as shown here, such as `NFCORE_DEMO:DEMO:MULTIQC`, are longer than what you may have seen in the introductory Hello Nextflow material. +These include the names of their parent workflows and reflect the modularity of the pipeline code. +If you want to learn to develop nf-core-style pipelines yourself, see the [Build with nf-core](../nfcore_build/index.md) course. + +### 2.3. Examine the pipeline's outputs + +Finally, let's have a look at the `demo-results` directory produced by the pipeline. + +```bash +tree -L 2 demo-results +``` + +??? abstract "Directory contents" + + ```console + demo-results + ├── cowpy + │ └── cowpy.txt + ├── fastqc + │ ├── SAMPLE1_PE + │ ├── SAMPLE2_PE + │ └── SAMPLE3_SE + ├── fq + │ ├── SAMPLE1_PE + │ ├── SAMPLE2_PE + │ └── SAMPLE3_SE + ├── multiqc + │ ├── multiqc_data + │ └── multiqc_report.html + └── pipeline_info + ├── execution_report_2026-07-03_21-31-35.html + ├── execution_timeline_2026-07-03_21-31-35.html + ├── execution_trace_2026-07-03_21-31-35.txt + ├── nf_core_demo_software_mqc_versions.yml + ├── params_2026-07-03_21-31-43.json + └── pipeline_dag_2026-07-03_21-31-35.html + + 12 directories, 8 files + ``` + +That might seem like a lot. +To learn more about the `nf-core/demo` pipeline's outputs, check out its [documentation page](https://nf-co.re/demo/1.2.0/docs/output/). + +At this stage, what's important to observe is that the results are organized by module, and there is additionally a directory called `pipeline_info` containing various timestamped reports about the pipeline execution. + +For example, the `execution_timeline_*` file shows you what processes were run, in what order and how long they took to run: + +![execution timeline report](./img/execution_timeline.png) + +!!! info + + Here the tasks were not run in parallel because we are running on a minimalist machine in Github Codespaces. + To see these run in parallel, try increasing the CPU allocation of your codespace and the resource limits in the test configuration. + +These reports are generated automatically for all nf-core pipelines. + +### Takeaway + +You know how to run an nf-core pipeline using its built-in test profile and where to find its outputs. + +### What's next? + +Head on to [Part 2](./02_configure_execution.md), where you'll learn how to configure pipeline execution. + +--- + +## Summary + +In this part you learned to: + +- Find and retrieve an nf-core pipeline and examine its code structure +- Run a pipeline using its built-in test profile diff --git a/docs/en/docs/nfcore_use/02_configure_execution.md b/docs/en/docs/nfcore_use/02_configure_execution.md new file mode 100644 index 0000000000..658fb572e5 --- /dev/null +++ b/docs/en/docs/nfcore_use/02_configure_execution.md @@ -0,0 +1,501 @@ +# Part 2: Configure pipeline execution + +In [Part 1](./01_run_demo.md), you found and ran the nf-core/demo pipeline using its test profile. +Now we look at how to configure pipeline execution: setting parameters, understanding validation, and customizing resource allocation and tool arguments. + +As explained in [Hello Config](../hello_nextflow/06_hello_config.md), we want to be able to change what data our pipeline will run on and how it will run without changing the pipeline code itself. +To that end, Nextflow supports multiple ways of controlling pipeline configuration, which can be a bit overwhelming. + +The nf-core project specifies conventions for organizing configuration elements, distinguishing two kinds of configuration at the top level: **pipeline parameters** and **configuration** in the strict sense. + +- **Pipeline parameters** (set through the `params` system) typically include things like input files, tool behavior flags and analysis parameters. +- **Configuration** in the strict sense refers to the logistics of how the pipeline gets run, i.e. the executor, compute resource allocations and so on. + +
+ --8<-- "docs/en/docs/nfcore_use/img/params_vs_config.excalidraw.svg" +
+ +Let's start by tackling pipeline parameters, then we'll look at configuration in the strict sense. + +--- + +## 1. Pipeline parameters + +For all nf-core pipelines, you can obtain a full list of pipeline parameters directly from the command line by using the `--help` flag, which is itself a pipeline parameter. + +### 1.1. Get the list of parameters with `--help` + +Run the help command for the demo pipeline: + +```bash +nextflow run nf-core/demo --help +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nf-core/demo` [adoring_meucci] revision: 32893afef8 [master] + + + ------------------------------------------------------ + ,--./,-. + ___ __ __ __ ___ /,-._.--~' + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' + nf-core/demo 1.2.0 + ------------------------------------------------------ + Typical pipeline command: + + nextflow run nf-core/demo -profile --input samplesheet.csv --outdir + + Input/output options + --input [string] Path to a metadata file containing information about the samples in the experiment. + --outdir [string] The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure. + + --email [string] Email address for completion summary. + --multiqc_title [string] MultiQC report title. Printed as page header, used for filename if not otherwise specified. + + Reference genome options + --genome [string] Name of iGenomes reference. + --fasta [string] Path to FASTA genome file. + + Process skipping options + --skip_trim [boolean] Skip trimming fastq files with seqtk + + Generic options + --multiqc_methods_description [string] Custom MultiQC yaml file containing HTML including a methods description. + --help [boolean, string] Display the help message. + --help_full [boolean] Display the full detailed help message. + --show_hidden [boolean] Display hidden parameters in the help message (only works when --help or --help_full are provided). + !! Hiding 19 param(s), use the `--showHidden` parameter to show them !! + ------------------------------------------------------ + + * The pipeline + https://doi.org/10.5281/zenodo.12192442 + + * The nf-core framework + https://doi.org/10.1038/s41587-020-0439-x + + * Software dependencies + https://github.com/nf-core/demo/blob/master/CITATIONS.md + ``` + +As you can see, the output groups parameters into categories (Input/output options, Reference genome options, etc.) with types and descriptions for each one. + +This categorization is determined by a schema file, which is covered further below. +In plain Nextflow pipelines, `--help` only works if the developer implemented it manually. + +!!! tip + + Use `--help --show_hidden` to see additional parameters that are hidden by default, such as `--publish_dir_mode` or `--monochrome_logs`. + +### 1.2. Set parameter values + +As covered in [Hello Config](../hello_nextflow/06_hello_config.md), you can set parameter values on the command line with `--param_name` or collect a set of parameters in a YAML file and pass it with `-params-file`. +Both approaches work the same way with nf-core pipelines. + +For example, to skip the trimming step, we want to set the boolean parameter `skip_trim` to `true`. +A params file called `my_params.yml` is provided in your working directory with that value already set: + +```yaml title="my_params.yml" +skip_trim: true +``` + +Pass it with `-params-file`: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results-notrim -params-file my_params.yml +``` + +??? success "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nf-core/demo` [focused_heisenberg] revision: 32893afef8 [master] + + + ------------------------------------------------------ + ,--./,-. + ___ __ __ __ ___ /,-._.--~' + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' + nf-core/demo 1.2.0 + ------------------------------------------------------ + + Input/output options + input : https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv + outdir : demo-results-notrim + + Process skipping options + skip_trim : true + + Institutional config options + config_profile_name : Test profile + config_profile_description: Minimal test dataset to check pipeline function + + Generic options + trace_report_suffix : 2026-07-03_22-08-47 + + Core Nextflow options + revision : master + runName : focused_heisenberg + containerEngine : docker + launchDir : /workspaces/training/nfcore-build + workDir : /workspaces/training/nfcore-build/work + projectDir : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2 + userName : root + profile : test,docker + configFiles : /workspaces/.nextflow/assets/.repos/nf-core/demo/clones/32893afef8076a03a2767a020b3f0cab2e0b40b2/nextflow.config + + !! Only displaying parameters that differ from the pipeline defaults !! + ------------------------------------------------------ + + * The pipeline + https://doi.org/10.5281/zenodo.12192442 + + * The nf-core framework + https://doi.org/10.1038/s41587-020-0439-x + + * Software dependencies + https://github.com/nf-core/demo/blob/master/CITATIONS.md + + executor > local (5) + [7a/f3599e] NFCORE_DEMO:DEMO:FASTQC (SAMPLE3_SE) [100%] 3 of 3 ✔ + [b0/2f0bdc] NFCORE_DEMO:DEMO:COWPY [100%] 1 of 1 ✔ + [c3/3c2278] NFCORE_DEMO:DEMO:MULTIQC (demo) [100%] 1 of 1 ✔ + -[nf-core/demo] Pipeline completed successfully- + ``` + +The `SEQTK_TRIM` process no longer appears in the output. + +!!! warning "Important limitations about parameter inputs" + + **Setting boolean parameters on the command line** + + Starting with Nextflow version 26.04, all values supplied on the command line are typed as strings. + For a boolean parameter like `skip_trim`, passing it as a bare flag (`--skip_trim`) or as `--skip_trim true` is evaluated as the **string** `"true"`, which fails schema validation: + + ```console + * --skip_trim (true): Value is [string] but should be [boolean] + ``` + + To set a boolean parameter to a genuine `true`/`false` value, use a `-params-file` as shown above, or set it in a config file. + String, integer and file-path parameters are unaffected and can still be set directly on the command line. + This course uses this pattern throughout for boolean parameters. + + **Using custom configuration files** + + Although it is technically possible to set pipeline parameters in a custom configuration file passed with `-c`, this may not override defaults already set in the pipeline's own `nextflow.config`, depending on Nextflow's configuration precedence rules. + Using `--param_name` on the command line or `-params-file` is more reliable, as these always take precedence. + + As a rule of thumb: If it appears in the `--help` output, set it via the command line or a params file rather than a config file. + +### 1.3. Parameter validation + +Fun fact: the `--help` command works for all nf-core pipelines because the nf-core project requires developers to define all pipeline parameters formally in a JSON schema file (`nextflow_schema.json`). +This schema records each parameter's type, description, default value, and grouping. + +In addition to powering the `--help` output, the schema file also enables automated validation at launch time. +This means that Nextflow can check that every parameter you pass exists and has been given an appropriate value (of appropriate type, within the allowed range of values etc). + +We cover this in more detail in [input validation section](../nfcore_build/04_input_validation.md), but you can already see it in action by giving the demo pipeline some invalid parameter input. + +#### 1.3.1. Unrecognized parameters + +Try passing a parameter that does not exist: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results --foobar "invalid" +``` + +The console output includes a warning: + +```console +WARN: The following invalid input values have been detected: + +* --foobar: invalid +``` + +The pipeline still runs, but the warning alerts you right away that `--foobar` is not a recognized parameter. +This is meant to draw your attention to non-breaking typos, like `--outDir` being used instead of `--outdir`, which can help you avoid wasting time and compute. + +#### 1.3.2. Invalid parameter values + +Validation also checks parameter **values**. +The `--skip_trim` parameter is a boolean flag, so passing a string value causes the pipeline to fail immediately: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results --skip_trim yes +``` + +```console +ERROR ~ Validation of pipeline parameters failed! + + -- Check '.nextflow.log' file for details +The following invalid input values have been detected: + +* --skip_trim (yes): Value is [string] but should be [boolean] +``` + +The pipeline stops before any processes run, saving you from a failed or incorrect execution. +As noted in [1.2](#12-set-parameter-values), boolean parameters should be set to a genuine `true`/`false` value in a params file rather than passed on the command line, since command-line values are typed as strings. + +### 1.4. Input validation + +The same validation logic can also be used to check the validity of input files. +For example, if a pipeline expects a samplesheet as its main data input (which is the case of many if not most nf-core pipelines), the developer can provide an input schema (distinct from the parameters schema) describing how the input file should be structured. + +Then, at runtime, Nextflow can check that the input file provided is valid. + +We also cover this in more detail in [input validation section](../nfcore_build/04_input_validation.md), but you can already see it in action by giving the demo pipeline an invalid input samplesheet. + +The `nf-core/demo` pipeline expects a CSV file with columns `sample`, `fastq_1`, and `fastq_2`. +This is defined in a schema file (`assets/schema_input.json`) that specifies the expected structure, column types, and constraints. + +??? abstract "Schema file for inputs" + + ```json title="assets/schema_input.json" + { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://raw.githubusercontent.com/nf-core/demo/master/assets/schema_input.json", + "title": "nf-core/demo pipeline - params.input schema", + "description": "Schema for the file provided with params.input", + "type": "array", + "items": { + "type": "object", + "properties": { + "sample": { + "type": "string", + "pattern": "^\\S+$", + "errorMessage": "Sample name must be provided and cannot contain spaces", + "meta": ["id"] + }, + "fastq_1": { + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + }, + "fastq_2": { + "type": "string", + "format": "file-path", + "exists": true, + "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.f(ast)?q\\.gz$", + "errorMessage": "FastQ file for reads 2 cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" + } + }, + "required": ["sample", "fastq_1"] + } + } + ``` + +The schema specifies that `sample` and `fastq_1` are required, while `fastq_2` is optional (supporting both paired-end and single-end data). +File paths are validated for existence and extension pattern. + +To demonstrate this, we provide a malformed samplesheet called `malformed_samplesheet.csv` in your working directory: + +```csv title="malformed_samplesheet.csv" +sample,fastq_2 +SAMPLE1,/not/a/real/file.fastq.gz +``` + +This samplesheet is missing the required `fastq_1` column and has a non-existent file path in `fastq_2`. + +Run the demo pipeline using `malformed_samplesheet.csv` as the input: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results --input malformed_samplesheet.csv +``` + +```console +ERROR ~ Validation of pipeline parameters failed! + + -- Check '.nextflow.log' file for details +The following invalid input values have been detected: + +* --input (malformed_samplesheet.csv): Validation of file failed: + -> Entry 1: Error for field 'fastq_2' (/not/a/real/file.fastq.gz): the file or directory + '/not/a/real/file.fastq.gz' does not exist (FastQ file for reads 2 cannot contain spaces + and must have extension '.fq.gz' or '.fastq.gz') + -> Entry 1: Missing required field(s): fastq_1 +``` + +As you can see, the pipeline fails immediately and reports **all** validation errors at once. +nf-schema does not stop at the first error — it collects every problem and lists them together, so you can fix everything in one go rather than discovering issues one by one. + +Each error identifies the exact entry and field that caused the problem, so you can fix your samplesheet then re-launch the pipeline with confidence that it's not going to fail at some later point when Nextflow actually goes to access the file path. + +For developers, all of this is covered in more detail in [Part 4 of Build with nf-core](../nfcore_build/04_input_validation.md). + +### Takeaway + +You know how to get a full list of a pipeline's parameters with `--help`, set them via the command line or a params file, and how Nextflow validates both parameter values and input files against the pipeline's schemas. + +### What's next? + +Learn about the other kind of configuration: how the pipeline runs, covering resource allocation and tool arguments. + +--- + +## 2. Configuration + +Configuration in the strict sense controls **how** the pipeline runs: resource allocation, tool-specific arguments, where jobs execute, and which software packaging system to use. + +nf-core pipelines include default configuration in `nextflow.config` and the `conf/` directory. +Before overriding anything, it helps to know where the defaults live. + +### 2.1. Explore configuration files + +You already saw in [Part 1](./01_run_demo.md) that the pipeline source code lives under `$NXF_HOME/assets`. +Using the `pipelines` symlink you created in [Part 1](./01_run_demo.md), list the config files to see what's available: + +```bash +ls pipelines/nf-core/demo/conf/ +``` + +```console +base.config +containers_conda_lock_files_amd64.config +containers_conda_lock_files_arm64.config +containers_docker_amd64.config +containers_docker_arm64.config +containers_singularity_https_amd64.config +containers_singularity_https_arm64.config +containers_singularity_oras_amd64.config +containers_singularity_oras_arm64.config +igenomes.config +igenomes_ignored.config +modules.config +test.config +test_full.config +``` + +
+--8<-- "docs/en/docs/nfcore_use/img/nfcore_config_files.excalidraw.svg" +
+ +The most important configuration files are: + +- **`conf/base.config`**: Defines resource labels (`process_low`, `process_medium`, `process_high`) that assign CPUs, memory, and time to processes. When you see a process using more resources than expected, this is where those defaults come from. +- **`conf/modules.config`**: Sets per-process tool arguments (`ext.args`) and output publishing settings (`publishDir`). Open this file to see what arguments each tool receives by default. +- **`conf/test.config`**: The test profile you used in [Part 1](./01_run_demo.md), which caps resources via `resourceLimits` and sets a test samplesheet. Activated with `-profile test`. + There is also a `conf/test_full.config` for running with a full-sized test dataset, useful for benchmarking. + +The central `nextflow.config` loads all of the above and sets the appropriate default values for everything. + +If you wish to modify any of the settings specified in these files, do not modify any of them files directly. +Instead, create your own config file and pass it with `-c`. +The values you specify will override the default values set in those other files. + +Let's try this in practice. + +### 2.2. Customize process resources and tool arguments + +nf-core modules support two common types of configuration override: **resource allocation** (CPUs, memory, time) and **tool arguments** via `ext.args`. + +Many command-line tools have arguments that are not commonly enough used to be exposed as pipeline parameters. +The `ext.args` convention lets you pass these arguments to the underlying tool through a config file instead. + +The `custom.config` file provided in your working directory demonstrates both overrides: + +```groovy title="custom.config" linenums="1" +process { + withName: 'FASTQC' { + cpus = 2 + memory = 4.GB + } + withName: 'SEQTK_TRIM' { + ext.args = '-b 5' + } +} +``` + +The first block overrides `FASTQC` resource allocation. +By default, `FASTQC` uses the `process_medium` label from `base.config`, which allocates 6 CPUs and 36 GB of memory; here we cap it at 2 CPUs and 4 GB. + +The second block passes an extra argument to `SEQTK_TRIM` via `ext.args`. +The `-b 5` flag tells `seqtk trimfq` to trim 5 bases from the beginning of each read in addition to quality trimming. + +Run the pipeline with this config: + +```bash +nextflow run nf-core/demo -profile test,docker --outdir demo-results-custom -c custom.config +``` + +??? success "Command output" + + ```console + executor > local (8) + [95/b32876] NFCORE_DEMO:DEMO:FASTQC (SAMPLE1_PE) | 3 of 3 ✔ + [17/428668] NFCORE_DEMO:DEMO:SEQTK_TRIM (SAMPLE1_PE) | 3 of 3 ✔ + [cf/85991a] NFCORE_DEMO:DEMO:COWPY | 1 of 1 ✔ + [3c/94a7a0] NFCORE_DEMO:DEMO:MULTIQC (demo) | 1 of 1 ✔ + -[nf-core/demo] Pipeline completed successfully- + ``` + +The `-c` flag adds your config on top of the pipeline's built-in configuration. + +To verify the `ext.args` override took effect, find the `SEQTK_TRIM` work directory hash from the run output (e.g. `work/17/428668...`) and check the `.command.sh` file inside it: + +```bash +cat work/17/428668/.command.sh +``` + +??? success "Command output" + + ```console + #!/usr/bin/env bash -e -u -o pipefail + printf "%s\n" sample1_R1.fastq.gz sample1_R2.fastq.gz | while read f; + do + seqtk \ + trimfq \ + -b 5 \ + $f \ + | gzip --no-name > SAMPLE1_PE_$(basename $f) + done + ... + ``` + +You should see `-b 5` in the `seqtk trimfq` command. + +One important thing to know about `ext.args`: if a module already has a default value set, your value will **completely replace** it rather than append to it. +For example, `FASTQC` has `ext.args = '--quiet'` set by default in `conf/modules.config`: + +```groovy title="conf/modules.config" linenums="21" hl_lines="2" + withName: FASTQC { + ext.args = '--quiet' + publishDir = [ + path: { "${params.outdir}/fastqc/${meta.id}" }, + mode: params.publish_dir_mode, + pattern: "*.{html,json}", + ] + } +``` + +If you set `ext.args = '--kmers 8'` for `FASTQC`, the `--quiet` flag will no longer be applied. +To keep both, set `ext.args = '--quiet --kmers 8'`. + +You should always check a module's default configuration before overriding `ext.args`. + +### Takeaway + +You know where nf-core pipeline configuration defaults live, and how to override resource allocations and tool arguments with a custom config file. + +### What's next? + +Head on to [Part 3](./03_run_production_pipeline.md), where you'll apply what you've learned to a real production pipeline. + +--- + +## Summary + +In this part you learned to: + +- Get help, set parameters, and understand parameter and input validation +- Customize resource allocation and tool arguments through configuration files diff --git a/docs/en/docs/nfcore_use/03_run_production_pipeline.md b/docs/en/docs/nfcore_use/03_run_production_pipeline.md new file mode 100644 index 0000000000..3ec8af44ec --- /dev/null +++ b/docs/en/docs/nfcore_use/03_run_production_pipeline.md @@ -0,0 +1,199 @@ +# Part 3: Run a production pipeline + +In [Part 2](./02_configure_execution.md), you learned how to set parameters and customize configuration for nf-core/demo. +Now we apply what you've learned to a real production pipeline, nf-core/rnaseq. + +--- + +## 1. Pull and run nf-core/rnaseq + +So far we have used `nf-core/demo`, which is a minimal pipeline designed for training. +Now we pull a real production pipeline and run it with its test profile. + +The `nf-core/rnaseq` pipeline performs the core steps of bulk RNA sequencing analysis: quality control, adapter trimming, read alignment, and gene-level quantification. +It is probably the most widely used nf-core pipeline to date. + +### 1.1. Pull the pipeline + +Run the following command to download it. + +```bash +nextflow pull nf-core/rnaseq +``` + +??? success "Command output" + + ```console + Checking nf-core/rnaseq ... + downloaded from https://github.com/nf-core/rnaseq.git - revision: e7ca46272c [master] + ``` + +The pipeline is now cached locally and ready to run. + +### 1.2. Run the test profile + +Run it with the test profile and Docker: + +```bash +nextflow run nf-core/rnaseq -profile test,docker --outdir rnaseq-results +``` + +??? failure "Command output" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nf-core/rnaseq` [suspicious_dijkstra] DSL2 - revision: e7ca46272c [master] + + ------------------------------------------------------ + ,--./,-. + ___ __ __ __ ___ /,-._.--~' + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' + nf-core/rnaseq 3.26.0 + ------------------------------------------------------ + ... + [- ] NFCORE_RNASEQ:RNASEQ:FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS:FQ_LINT - + Plus 47 more processes waiting for tasks… + + Execution cancelled -- Finishing pending tasks before exit + -[nf-core/rnaseq] Pipeline completed with errors- + ERROR ~ Error executing process > 'NFCORE_RNASEQ:RNASEQ:FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS:FQ_LINT (WT_REP2)' + + Caused by: + Process requirement exceeds available memory -- req: 12 GB; avail: 7.7 GB + + Command executed: + fq lint \ + --disable-validator P001 \ + SRR6357072_1.fastq.gz SRR6357072_2.fastq.gz > WT_REP2.fq_lint.txt + + Command exit status: + - + + Command output: + (empty) + + Work dir: + /workspaces/training/nfcore-use/work/xx/xxxxxxxxxxxxxxxxxxxxxx + + Container: + quay.io/biocontainers/fq:0.12.0--h9ee0642_0 + + Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` + -- Check '.nextflow.log' file for details + ERROR ~ Pipeline failed. Please refer to troubleshooting docs for common issues: https://nf-co.re/docs/running/troubleshooting + -- Check '.nextflow.log' file for details + ``` + +The key line in that error is: + +```console +Process requirement exceeds available memory -- req: 12 GB; avail: 7.7 GB +``` + +The default Codespaces machine has 8 GB of RAM, which is also the typical default for Docker Desktop. +The pipeline is requesting 12 GB for the `FQ_LINT` process — more than the machine can provide. + +That 12 GB comes from the `process_low` resource label defined in `conf/base.config`: + +```groovy title="conf/base.config" +withLabel:process_low { + cpus = { 2 * task.attempt } + memory = { 12.GB * task.attempt } + time = { 4.h * task.attempt } +} +``` + +One option would be to use a larger machine type, but for testing purposes we want to be able to run on whatever hardware is available. +The better approach is to override the resource defaults in a custom config file. + +### 1.3. Re-run with a custom configuration + +We provide you with a custom config file that overrides the label-based resource defaults. + +??? full-code "laptop.config" + + ```groovy title="laptop.config" + process { + withLabel: 'process_low' { + cpus = 2 + memory = 6.GB + } + withLabel: 'process_medium' { + cpus = 4 + memory = 6.GB + } + withLabel: 'process_high' { + cpus = 6 + memory = 6.GB + } + withLabel: 'process_high_memory' { + memory = 6.GB + } + } + ``` + +[Part 2](./02_configure_execution.md) introduced `withName:` to target a single process by name. +Here we use `withLabel:` to target all processes that share a label at once. + +This file is already present in your working directory. +Pass it with `-c` to apply the overrides: + +```bash +nextflow run nf-core/rnaseq -profile test,docker -c laptop.config --outdir rnaseq-results +``` + +??? success "Command output (pipeline launching)" + + ```console + N E X T F L O W ~ version 26.04.4 + + Launching `https://github.com/nf-core/rnaseq` [romantic_faraday] DSL2 - revision: e7ca46272c [master] + + ------------------------------------------------------ + ,--./,-. + ___ __ __ __ ___ /,-._.--~' + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' + nf-core/rnaseq 3.26.0 + ------------------------------------------------------ + ... + executor > local + [xx/xxxxxx] NFCORE_RNASEQ:RNASEQ:FQ_LINT (RAP1_IAA_30M_REP1) | 3 of 5, running + [xx/xxxxxx] NFCORE_RNASEQ:RNASEQ:FASTQC (RAP1_IAA_30M_REP1) | 2 of 5, running + ... + ``` + +The pipeline is now running, and you can watch tasks completing one by one. +On this minimal test dataset it will complete in 15–20 minutes, executing over 200 tasks in total. + +Real RNA-seq experiments typically involve dozens of samples and run for hours or days. +Nextflow supports HPC schedulers (SLURM, PBS, LSF) and cloud platforms (AWS, Google Cloud, Azure), which can dramatically reduce wall-clock time by distributing work across many nodes. +Setting up those environments, however, adds significant complexity. + +The Seqera platform (developed by the creators of Nextflow) provides a web-based interface for launching Nextflow pipelines on HPC or cloud infrastructure (either your own or one managed for you), with compute and data management capabilities that streamline the process of running pipelines at scale. + +!!! tip + + Academic researchers can access Seqera Platform free of charge through the [Seqera academic program](https://seqera.io/academic-program/). + +### Takeaway + +You have pulled `nf-core/rnaseq`, seen how nf-core resource labels work, and learned to override them with a custom config file. +More importantly, you have seen why local execution is a starting point rather than a destination for real-scale analysis. + +### What's next? + +You've covered the fundamentals of running nf-core pipelines. +See [Next steps](next_steps.md) for where to go from here. + +--- + +## Summary + +In this part you learned to: + +- Pull and run a production-scale pipeline (nf-core/rnaseq), and override its default resource labels diff --git a/docs/en/docs/hello_nf-core/img/execution_timeline.png b/docs/en/docs/nfcore_use/img/execution_timeline.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/execution_timeline.png rename to docs/en/docs/nfcore_use/img/execution_timeline.png diff --git a/docs/en/docs/hello_nf-core/img/nf-core-demo-subway-cropped.png b/docs/en/docs/nfcore_use/img/nf-core-demo-subway-cropped.png similarity index 100% rename from docs/en/docs/hello_nf-core/img/nf-core-demo-subway-cropped.png rename to docs/en/docs/nfcore_use/img/nf-core-demo-subway-cropped.png diff --git a/docs/en/docs/hello_nf-core/img/nfcore_config_files.excalidraw.svg b/docs/en/docs/nfcore_use/img/nfcore_config_files.excalidraw.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/nfcore_config_files.excalidraw.svg rename to docs/en/docs/nfcore_use/img/nfcore_config_files.excalidraw.svg diff --git a/docs/en/docs/hello_nf-core/img/params_vs_config.excalidraw.svg b/docs/en/docs/nfcore_use/img/params_vs_config.excalidraw.svg similarity index 100% rename from docs/en/docs/hello_nf-core/img/params_vs_config.excalidraw.svg rename to docs/en/docs/nfcore_use/img/params_vs_config.excalidraw.svg diff --git a/docs/en/docs/nfcore_use/img/search-results.png b/docs/en/docs/nfcore_use/img/search-results.png new file mode 100644 index 0000000000..d25ba7f91f Binary files /dev/null and b/docs/en/docs/nfcore_use/img/search-results.png differ diff --git a/docs/en/docs/nfcore_use/index.md b/docs/en/docs/nfcore_use/index.md new file mode 100644 index 0000000000..51139c1995 --- /dev/null +++ b/docs/en/docs/nfcore_use/index.md @@ -0,0 +1,52 @@ +--- +title: Use nf-core +hide: + - toc +page_type: index_page +index_type: course +additional_information: + technical_requirements: true + learning_objectives: + - Find, retrieve, and run nf-core community pipelines + - Configure pipeline execution using parameters and configuration files + - Understand how nf-core pipelines validate parameters and input data + - Run a production-scale pipeline (nf-core/rnaseq) and override its default resource allocations + audience_prerequisites: + - "**Audience:** This course is designed for learners who already know how to run local Nextflow pipelines and are new to nf-core, and want to run existing community pipelines." + - "**Skills:** Some familiarity with the command line, basic scripting concepts and common file formats is assumed." + - "**Courses:** Must have completed [Nextflow Run](../nextflow_run/index.md) or otherwise be comfortable running a local pipeline with `nextflow run`." + - "**Domain:** The exercises use bioinformatics pipelines, but no prior scientific domain knowledge is required." +--- + +# Use nf-core + +**Use nf-core is a hands-on introduction to finding, running, and configuring nf-core community pipelines.** + +Working through practical examples and guided exercises, you will learn to find and retrieve nf-core pipelines, run them using their built-in test profiles, and customize their execution through parameters and configuration files. + +You will take away the skills and confidence to start running nf-core pipelines for your own analyses. + + + +## Course overview + +This course is hands-on, with goal-oriented exercises structured to introduce information gradually. + +You will start with `nf-core/demo`, a minimal pipeline maintained by the nf-core project for training purposes, then apply what you've learned to `nf-core/rnaseq`, a widely-used production pipeline for bulk RNA sequencing analysis. + +This course focuses on running pipelines. +If you're looking for an intro to developing nf-core-compatible pipelines, see [Build with nf-core](../nfcore_build/index.md). + +### Lesson plan + +| Course chapter | Summary | Estimated duration | +| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------ | +| [Part 1: Run a demo pipeline](./01_run_demo.md) | Find and retrieve an nf-core pipeline and run it using its test profile | 20 mins | +| [Part 2: Configure pipeline execution](./02_configure_execution.md) | Set parameters, understand validation, and customize resource allocation and tool arguments | 20 mins | +| [Part 3: Run a production pipeline](./03_run_production_pipeline.md) | Pull and run nf-core/rnaseq, and override its default resource allocations | 20 mins | + +By the end of this course, you will be able to take advantage of the wealth of community pipelines offered by the nf-core project. + +Ready to take the course? + +[Start learning :material-arrow-right:](00_orientation.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/nfcore_use/next_steps.md b/docs/en/docs/nfcore_use/next_steps.md new file mode 100644 index 0000000000..67508c2a2d --- /dev/null +++ b/docs/en/docs/nfcore_use/next_steps.md @@ -0,0 +1,53 @@ +# Course summary + +Congratulations on completing the Use nf-core training course! 🎉 + + + +## Your journey + +You started by finding and retrieving the `nf-core/demo` pipeline, then learned to run it using its test profile and examine its outputs. +Next, you configured its execution through pipeline parameters and configuration files, and saw how nf-core pipelines validate parameters and input data. +Finally, you applied those same skills to `nf-core/rnaseq`, a production-scale pipeline, and learned how to override its default resource allocations to fit the hardware available to you. + +### What you learned + +You are now able to find, retrieve, run, and configure nf-core pipelines. + +- nf-core pipelines are retrieved with `nextflow pull` and follow a standard code organization. +- Every nf-core pipeline ships with a `test` profile for quick validation on a small dataset. +- Pipeline parameters (set via `--param_name` or `-params-file`) and configuration (set via `-c`) serve different purposes: inputs and analysis options versus execution logistics like resource allocation. +- nf-core pipelines validate parameters and input files automatically, catching errors before any work is done. +- Resource defaults are assigned through labels (`process_low`, `process_medium`, `process_high`) defined in `conf/base.config`, which you can override with a custom configuration file. + +### Skills acquired + +Through this hands-on course, you've learned how to: + +- Find an nf-core pipeline on the nf-co.re website and retrieve its source code +- Run a pipeline using its built-in test profile and examine its outputs +- Get help, set parameters, and understand parameter and input validation +- Customize resource allocation and tool arguments through configuration files +- Pull and run a production-scale pipeline, and override its default resource labels + +You're now equipped with the foundational knowledge to start running nf-core pipelines for your own analyses. + +## Next steps to build your skills + +Here are our top suggestions for what to do next: + +- Launch and monitor these pipelines at scale with [Scale with Seqera](../seqera_scale/index.md) +- Don't just run nf-core pipelines, develop them! Learn nf-core best practices with [Build with nf-core](../nfcore_build/index.md) +- New to Nextflow itself? Start with [Nextflow Run](../nextflow_run/index.md) +- Apply Nextflow to a scientific analysis use case with [Nextflow for Science](../nf4_science/index.md) +- Explore more advanced Nextflow features with the [Side Quests](../side_quests/index.md) + +## Getting help + +For help resources and community support, see the [Help page](../help.md). + +## Feedback survey + +Before you move on, please take a minute to complete the course survey! Your feedback helps us improve our training materials for everyone. + +[Take the survey :material-arrow-right:](survey.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/nfcore_use/survey.md b/docs/en/docs/nfcore_use/survey.md new file mode 100644 index 0000000000..7c3f7113e9 --- /dev/null +++ b/docs/en/docs/nfcore_use/survey.md @@ -0,0 +1,7 @@ +# Feedback survey + +Before you move on, please complete this short 5-question survey to rate the training, share any feedback you may have about your experience, and let us know what else we could do to help you in your Nextflow journey. + +This should take you only a minute or two to complete. Thank you for helping us improve our training materials for everyone! + +
diff --git a/docs/en/docs/seqera_scale/00_orientation.md b/docs/en/docs/seqera_scale/00_orientation.md new file mode 100644 index 0000000000..0327cd1d91 --- /dev/null +++ b/docs/en/docs/seqera_scale/00_orientation.md @@ -0,0 +1,76 @@ +# Getting started + +## Start a training environment + +To use the pre-built environment we provide on GitHub Codespaces, click the "Open in GitHub Codespaces" button below. For other options, see [Environment options](../envsetup/index.md). + +We recommend opening the training environment in a new browser tab or window (use right-click, ctrl-click or cmd-click depending on your equipment) so that you can read on while the environment loads. +You will need to keep these instructions open in parallel to work through the course. + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) + +### Environment basics + +This training environment contains all the software, code and data necessary to work through the training course, so you don't need to install anything yourself. + +The codespace is set up with a VSCode interface, which includes a filesystem explorer, a code editor and a terminal shell. +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. + +If you are working through this course by yourself, please acquaint yourself with the [environment basics](../envsetup/01_setup.md) for further details. + +## Get ready to work + +Once your codespace is running, there are two things to do before diving in: set your working directory, and take a look at the materials provided. + +### Set the working directory + +By default, the codespace opens at the root of all training courses. +For this course, change to the `seqera-scale/` directory: + +```bash +cd seqera-scale/ +``` + +Then set VSCode to focus on this directory, so only the relevant files appear in the file explorer sidebar: + +```bash +code . +``` + +!!! tip + + 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: + + ```bash + cd /workspaces/training/seqera-scale + ``` + +### Explore the materials provided + +You can explore the course materials using the file explorer on the left, or with the `tree` command. +Run the following from the terminal to see the full structure: + +```bash +tree -a . +``` + +??? abstract "Directory contents" + + ```console + . + └── .seqera_config + ``` + +The **`.seqera_config`** file is a stub you will fill in during section 3 to configure the `tw` CLI with your Seqera access token and workspace. + +## Readiness checklist + +Think you're ready to dive in? + +- [ ] I understand the goal of this course and its prerequisites +- [ ] My environment is up and running +- [ ] I've set my working directory appropriately + +If you can check all the boxes, you're good to go. + +**To continue to [Part 1: Launch pipelines from the web interface](./01_run_with_seqera.md), click on the arrow in the bottom right corner of this page.** diff --git a/docs/en/docs/seqera_scale/01_run_with_seqera.md b/docs/en/docs/seqera_scale/01_run_with_seqera.md new file mode 100644 index 0000000000..d9cdfd9e51 --- /dev/null +++ b/docs/en/docs/seqera_scale/01_run_with_seqera.md @@ -0,0 +1,143 @@ +# Part 1: Launch pipelines from the web interface + +In this part of the Scale with Seqera training course, you will set up access to Seqera Platform and launch a production-scale pipeline from the web interface. + +Make sure your working directory is set to `seqera-scale/` as instructed on the [Getting started](./00_orientation.md) page. + +--- + +## 1. Get started with Seqera + +Seqera provides a comprehensive platform for launching, monitoring, and managing Nextflow pipelines. +This section walks you through signing up and getting oriented before running your first pipeline. + +### 1.1. Sign up for a free account + +Go to [cloud.seqera.io](https://cloud.seqera.io) and create a free account. +You can sign up using your email address, GitHub, or Google credentials. + +A free account gives you: + +- **Personal workspace**: your own space to add pipelines, configure compute environments, and manage runs +- **Access to the Community Showcase**: a curated collection of nf-core and community pipelines with pre-configured settings and example run data + +See the [Seqera documentation](https://docs.seqera.io) for a full overview of account tiers and available features. + +### 1.2. Explore the Community Showcase + +Before launching your own pipelines, take a few minutes to explore the Community Showcase. +It gives you a realistic preview of what the Platform looks like with real pipelines and data. + +1. Log in at [cloud.seqera.io](https://cloud.seqera.io). +2. In the left sidebar, click **Showcase**. +3. Browse the available pipelines — you will recognize several nf-core pipelines from the Use nf-core course. +4. Click a pipeline to view its configuration and launch settings. +5. Click **Runs** to explore example run histories, including task-level details and reports from previous executions. + +This is a read-only view, but it shows you how the interface works before you run anything yourself. + +### 1.3. Access a workspace with compute + +Launching pipelines requires a workspace with a configured compute environment. + +Seqera supports two ways to provide compute: + +- **Connect your own infrastructure**: AWS, Azure, Google Cloud, and HPC schedulers (SLURM, LSF, PBS, and others). + See the [compute environments documentation](https://docs.seqera.io) for setup guides. +- **Seqera Compute**: a managed service that provides pre-provisioned compute environments on AWS, for a fee, with no cloud account setup required. + You can activate it directly from your workspace settings. + +**Group training:** +If you are attending a group training session, you may have been added to an organization and workspace that already has compute configured. +Your instructor will give you the organization name, workspace name, and any other details you need. + +**Working independently:** +If you are working through this training by yourself, you will need to set up a compute environment in your personal workspace using one of the options above. +Free credits to try out Seqera Compute are [available on request](https://seqera.io/platform/compute/). + +!!! note + + The rest of this course assumes you have access to a workspace with a configured compute environment. + If you are in a group training session, your instructor will confirm which workspace and compute environment to use. + +### Takeaway + +You have a Seqera account, you've explored the Community Showcase, and you're able to access a workspace with compute. + +### What's next? + +Launch a production-scale RNA-seq pipeline from the Seqera Cloud web interface. + +--- + +## 2. Launch nf-core/rnaseq from the web interface + +As covered in Use nf-core, the nf-core/rnaseq pipeline is a community-curated pipeline for bulk RNA sequence data analysis. + +In this section, you will add the pipeline to your workspace, launch a run, and monitor its execution. + +### 2.1. Add the pipeline to your workspace + +Conveniently, nf-core/rnaseq is part of a curated collection of pipelines that can be added to your workspace in a few clicks through the Seqera Pipelines service. + +_We'll show you how to add your own pipelines later in this course._ + +1. Navigate to [**Seqera Pipelines**](https://seqera.io/pipelines) to browse the community collection. +2. Search for `rnaseq` and select **nf-core/rnaseq**. +3. Click **Launch Pipeline** or scroll to the bottom of the page to the **Launch Pipeline** section. +4. Make sure you are logged in and select the appropriate values from the **Organizations**, **Workspace** and **Compute Environment** dropdown menus. + **Tip for groups:** If you are using a shared workspace, add a unique identifier (such as your username) to the pipeline name. +5. Click **Add pipeline to your Seqera account** + +A box will appear showing the message: **Pipeline added: View Pipeline**. +Clicking the link will take you to the pipeline entry in your launchpad. + +The pipeline is now listed in your workspace's **Launchpad** panel and is ready to launch. + +### 2.2. Launch the pipeline + +Click the pipeline's **Launch** button, either in the **Launchpad** panel or on the pipeline details page. +This opens the configuration interface. + +The pipeline is already configured with the `test` profile, so the input data, output directory, and genome reference are pre-filled. +You can ignore the rest of the parameters and advanced settings for now. + +Click the blue **Launch** button to actually start the run. + +### 2.3. Monitor execution + +After launching, you will be taken to the **Runs** panel for your pipeline. + +The run view shows: + +- **Status**: current state of the run (submitted, running, succeeded, failed) +- **Command line**: the exact `nextflow run` command that Platform constructed and submitted +- **Parameters**: all parameter values used for this run +- **Tasks**: a table of every process call, with status, duration, and resource usage + +Click on any task row to inspect its execution details, including: + +- The `.command.sh` script that was run +- stdout and stderr logs +- CPU, memory, and I/O metrics + +The **Reports** tab will show a MultiQC report once the run completes, aggregating quality control metrics across all samples. + +This will take a while to run, so we'll continue on for now and circle back later to look at outputs and so on. + +### Takeaway + +You know how to add a pipeline to a Seqera workspace, configure and launch a run, and monitor execution at scale. + +### What's next? + +Head on to [Part 2](./02_launch_from_cli.md), where you'll learn how to do all of this from the command line using the `tw` CLI. + +--- + +## Summary + +In this part you learned to: + +- Sign up for a Seqera account and explore the Community Showcase +- Add a pipeline from the curated catalog, launch a production-scale run, and monitor execution diff --git a/docs/en/docs/seqera_scale/02_launch_from_cli.md b/docs/en/docs/seqera_scale/02_launch_from_cli.md new file mode 100644 index 0000000000..e4656843fc --- /dev/null +++ b/docs/en/docs/seqera_scale/02_launch_from_cli.md @@ -0,0 +1,320 @@ +# Part 2: Launch pipelines from the command line + +In [Part 1](./01_run_with_seqera.md), you launched nf-core/rnaseq from the Seqera web interface. +Now we do the same from the command line using the `tw` CLI, and add a new pipeline to your workspace. + +--- + +## 1. Launch pipelines from the command line + +In the run view, click the **Command line** tab. +You will see the exact `nextflow run` command that Platform constructed and submitted on your behalf — the same kind of command you have been running manually in the Use nf-core course. + +Platform does not replace Nextflow; it orchestrates it. +Everything you can do through the web interface, you can also do from a terminal using the `tw` CLI, the command-line tool for interacting with the Platform API. +This is useful for automating launches from scripts or CI/CD pipelines. + +We're going to do this now from the same codespace you used for the earlier courses. + +### 1.1. Install the tw CLI + +Run the following commands in your Codespace terminal to download and install the `tw` binary: + +```bash +curl -fsSL https://github.com/seqeralabs/tower-cli/releases/latest/download/tw-linux-x86_64 -o tw +chmod +x tw +sudo mv tw /usr/local/bin/ +``` + +Verify the installation: + +```bash +tw --version +``` + +??? success "Command output" + + ```console + Tower CLI version 0.40.0 (build 26db579) + ``` + +The `tw` CLI is installed and ready to configure. + +### 1.2. Get an access token + +The `tw` CLI authenticates with Seqera using a personal access token. + +1. In the Seqera web interface, click your avatar in the top-right corner and select **Your tokens**. +2. Click **Add token**, give it a name (e.g. `training`), and click **Add**. +3. Copy the token value — it will only be shown once. + If you don't save it somewhere right away, you will need to generate another one. + +### 1.3. Configure the CLI + +For convenience, we're going to set up a configuration file containing the +access token you just generated and the workspace identifier. + +Open the `.seqera_config` file in this directory in the editor and set the two variables: + +- **`TOWER_ACCESS_TOKEN`**: the token you generated in section 1.2 +- **`TOWER_WORKSPACE_ID`**: the numeric ID of your workspace (the `ID` column in `tw workspaces list`, which you run in section 1.4) + +Once the values are filled in, load the config: + +```bash +source .seqera_config +``` + +Verify the connection: + +```bash +tw info +``` + +??? success "Command output" + + ```console + Details + -------------------------+----------------------------- + Tower API endpoint | https://api.cloud.seqera.io + Tower API version | 1.150.0 + Tower version | 26.1.0-cycle54 + CLI version | 0.30.0 (fde9dec) + CLI minimum API version | 1.148.0 + Authenticated user | + + System health status + ---------------------------------------+---- + Remote API server connection check | OK + Tower API version check | OK + Authentication API credential's token | OK + ``` + +The `tw` CLI is now authenticated and connected to your Seqera account. +Run `source .seqera_config` at the start of each Codespace session to reload the config. + +!!! tip + + If your workspace does not have a primary compute environment set, you can add `export TOWER_COMPUTE_ENV=` to your config file to set a default. + Any config value can be overridden on the command line by passing the flag explicitly (e.g. `--compute-env other-env`). + See the [tw CLI reference](https://docs.seqera.io/platform/latest/cli/reference) for the full list of options and environment variables. + +### 1.4. Explore your workspace from the CLI + +List the workspaces you have access to: + +```bash +tw workspaces list +``` + +??? success "Command output" + + ```console + Available workspaces: + ID | Name | Full Name | Visibility + --------------- | --------------- | ------------------------ | ---------- + | my-workspace | my-org/my-workspace | PRIVATE + ``` + +View the runs in your workspace, including the nf-core/rnaseq run you just launched: + +```bash +tw runs list +``` + +??? success "Command output" + + ```console + Pipeline runs for my-org/my-workspace workspace: + ID | Status | Name | Pipeline | Run name + --------- | -------- | ------------- | ---------------------- | -------- + | RUNNING | ... | nf-core/rnaseq | happy_curie + ``` + +The same run you are monitoring in the web interface is visible here. + +!!! note + + Because `TOWER_WORKSPACE_ID` is set in `.seqera_config`, you can omit `--workspace` from all `tw` commands. + Without the config, you would pass it explicitly: + + ```bash + tw runs list --workspace / + ``` + +Everything visible in the web interface is accessible from the CLI. + +### 1.5. Launch nf-core/rnaseq from the CLI + +The pipeline you added to your workspace in [Part 1](./01_run_with_seqera.md) is available by name in the CLI. +Launch it with the `test` profile: + +```bash +tw launch nf-core-rnaseq --profile test +``` + +??? success "Command output" + + ```console + Launching pipeline nf-core-rnaseq + Run name: focused_einstein + https://cloud.seqera.io/orgs/my-org/workspaces/my-workspace/watch/ + ``` + +Open the link in your browser and confirm the run appears in the **Runs** panel. + +Once you can see it running, you have confirmed that the CLI and the web interface are two views onto the same workspace. + +!!! note + + You can also pass a full GitHub URL directly to `tw launch` without adding the pipeline to a workspace first. + However, adding the pipeline explicitly before launching it is generally better: it saves the pipeline configuration for future runs, makes it available by name, and makes it visible to all workspace members in the Launchpad. + + It is possible to add a pipeline to a workspace directly from the command line using `tw`. + The next section shows how to do this with the nf-core/demo pipeline. + +### Takeaway + +You know how to authenticate the `tw` CLI, inspect your workspace, and launch a saved pipeline from the terminal. + +### What's next? + +Add a new pipeline to your workspace from the command line and launch it. + +--- + +## 2. Add a new pipeline and run it + +Any Nextflow pipeline on GitHub can be added to your workspace with `tw pipelines add`, as long as it has a `main.nf` entry point and a `nextflow.config` at its root. +nf-core/demo is a good example to practice with: you already ran it in the Use nf-core course, so you know what it does and what to expect. + +### 2.1. Add nf-core/demo to your workspace + +Run the following command to register the pipeline in your workspace: + +```bash +tw pipelines add \ + --name nf-core-demo \ + https://github.com/nf-core/demo +``` + +??? success "Command output" + + ```console + New pipeline 'nf-core-demo' added at my-org/my-workspace workspace + ``` + +The pipeline is now registered and will appear in the Launchpad. + +### 2.2. Verify it appears in the Launchpad + +List the pipelines in your workspace to confirm it was added: + +```bash +tw pipelines list +``` + +??? success "Command output" + + ```console + Pipelines at my-org/my-workspace: + ID | Name | Repository + ---- | --------------- | ----------------------------------------- + ... | nf-core-demo | https://github.com/nf-core/demo + ... | nf-core-rnaseq | ... + ``` + +Open your workspace in the browser and click **Launchpad** to confirm nf-core/demo now appears alongside nf-core/rnaseq. + +!!! tip + + You can also add pipelines via the web interface: in the left sidebar, click **Launchpad**, then **Add pipeline**, and fill out the form accordingly. + +Click the **Launch** button on the nf-core/demo entry to open its launch form. +You will see that the `input` and `outdir` parameters are highlighted in red — they are required fields with no default values, because `tw pipelines add` registers only the pipeline source without pre-configuring any parameters. +The next two sections walk through how to provide those values: first through the web form, then from the command line. + +### 2.3. Launch nf-core/demo from the web interface + +With the launch form open, fill in the two required parameters. + +For `input`, enter the test samplesheet URL from the nf-core/demo test profile. +You can find it in `conf/test.config` inside the pipeline repository, which you examined in the Use nf-core course: + +``` +https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv +``` + +For `outdir`, enter a cloud storage path where the pipeline can write its results. +Use the bucket configured for your workspace, with a subdirectory to keep runs organized: + +``` +s3://my-bucket/demo-results +``` + +Once both fields are filled, click the blue **Launch** button. + +The run appears in the **Runs** panel and should complete in a few minutes on the test dataset. +Click into the run to explore the task table and any execution reports. + +### 2.4. Launch nf-core/demo from the CLI + +Unlike `nextflow run`, the `tw launch` command does not accept individual parameter flags like `--input` or `--outdir`. +Parameters must be provided through a file in YAML or JSON format, passed with `--params-file`. +This encourages reproducibility: a saved parameter file documents exactly what values were used for a run, making it easy to repeat or share a run configuration. + +Create a parameters file in your working directory: + +```bash +touch params.yaml +``` + +Open it in the editor and add the output path: + +```yaml title="params.yaml" +outdir: "s3://my-bucket/demo-results-cli" +``` + +Now you can launch the pipeline using the `test` profile (which provides the `input` samplesheet) and the params file (which provides `outdir`): + +```bash +tw launch nf-core-demo --profile test --params-file params.yaml +``` + +??? success "Command output" + + ```console + Launching pipeline nf-core-demo + Run name: focused_feynman + https://cloud.seqera.io/orgs/my-org/workspaces/my-workspace/watch/ + ``` + +Open the link to confirm the run appears in the **Runs** panel. + +!!! tip + + You can include the parameter file during the initial setup step if you would like to set some defaults, as well as some additional properties to match what we did earlier through the web form: + + ```bash + tw pipelines add \ + --name nf-core-demo-gg \ + --description "Demo pipeline with defaults for testing" \ + --params-file params.yaml \ + --profile test \ + https://github.com/nf-core/demo + ``` + +### Takeaway + +You know how to add any GitHub-hosted Nextflow pipeline to your workspace and launch it, both from the web interface by filling in parameters manually, and from the `tw` CLI by combining a profile with a parameter file. + +--- + +## Summary + +In this part you learned to: + +- Authenticate the `tw` CLI and launch a saved pipeline from the terminal +- Add a new pipeline from GitHub using the CLI and verify it appears in the Launchpad +- Launch a pipeline from the Seqera web interface by filling in required parameters manually +- Launch a pipeline from the CLI using a Nextflow profile and a parameter file diff --git a/docs/en/docs/seqera_scale/index.md b/docs/en/docs/seqera_scale/index.md new file mode 100644 index 0000000000..e9ea192c1e --- /dev/null +++ b/docs/en/docs/seqera_scale/index.md @@ -0,0 +1,48 @@ +--- +title: Scale with Seqera +hide: + - toc +page_type: index_page +index_type: course +additional_information: + technical_requirements: true + learning_objectives: + - Sign up for Seqera Platform and explore the Community Showcase + - Add a pipeline to a workspace and launch it from the web interface + - Authenticate and launch pipelines from the command line with the `tw` CLI + - Register a GitHub-hosted pipeline and launch it both ways + audience_prerequisites: + - "**Audience:** This course is designed for learners who want to run Nextflow pipelines at scale using Seqera Platform." + - "**Skills:** Familiarity with running nf-core pipelines from the command line is assumed." + - "**Courses:** Must have completed [Nextflow Run](../nextflow_run/index.md) and [Use nf-core](../nfcore_use/index.md), or otherwise be comfortable running local and `nf-core/rnaseq` pipelines." +--- + +# Scale with Seqera + +**Scale with Seqera is a hands-on introduction to launching and monitoring Nextflow pipelines with Seqera Platform.** + +Working through practical examples, you will set up access to Seqera Platform, launch a production-scale pipeline from both the web interface and the command line, and add a new pipeline to your workspace. + +You will take away the skills and confidence to run and monitor your own pipelines on Seqera Platform. + + + +## Course overview + +This course is hands-on, and builds on the pipelines you already ran in [Use nf-core](../nfcore_use/index.md). + +You will start by signing up for Seqera Platform and launching `nf-core/rnaseq`, a production-scale pipeline, from the web interface. +Then you'll switch to the `tw` command-line tool to do the same from a terminal, and finally register a new pipeline, `nf-core/demo`, and launch it both ways. + +### Lesson plan + +| Course chapter | Summary | Estimated duration | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------ | +| [Part 1: Launch pipelines from the web interface](./01_run_with_seqera.md) | Set up Seqera Platform access and launch a production-scale pipeline from the web interface | 20 mins | +| [Part 2: Launch pipelines from the command line](./02_launch_from_cli.md) | Authenticate the `tw` CLI, launch a saved pipeline, and register a new pipeline from the CLI | 25 mins | + +By the end of this course, you will be comfortable launching and monitoring Nextflow pipelines on Seqera Platform, whether you prefer working from the web interface or the command line. + +Ready to take the course? + +[Start learning :material-arrow-right:](00_orientation.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/seqera_scale/next_steps.md b/docs/en/docs/seqera_scale/next_steps.md new file mode 100644 index 0000000000..fe9c4316f1 --- /dev/null +++ b/docs/en/docs/seqera_scale/next_steps.md @@ -0,0 +1,51 @@ +# Course summary + +Congratulations on completing the Scale with Seqera training course! 🎉 + + + +## Your journey + +You started by signing up for Seqera Platform and exploring the Community Showcase, then launched a production-scale pipeline, `nf-core/rnaseq`, from the web interface and monitored its execution. +Next, you authenticated the `tw` CLI and learned to do everything from the terminal instead. +Finally, you registered a new pipeline, `nf-core/demo`, from GitHub and launched it both from the web interface and the CLI. + +### What you learned + +You are now able to launch and monitor Nextflow pipelines on Seqera Platform, whether you prefer the web interface or the command line. + +- A free Seqera account gives you a personal workspace and access to the Community Showcase. +- Pipelines added to a workspace appear in the Launchpad and can be launched with a few clicks. +- The `tw` CLI provides the same capabilities as the web interface, useful for scripting and automation. +- Any GitHub-hosted pipeline with a `main.nf` and `nextflow.config` can be registered with `tw pipelines add`. +- `tw launch` takes parameters through profiles and `--params-file`, rather than individual flags. + +### Skills acquired + +Through this hands-on course, you've learned how to: + +- Sign up for Seqera Platform and explore the Community Showcase +- Add a pipeline to a workspace and launch a run from the web interface +- Monitor execution and inspect task-level details and reports +- Authenticate and use the `tw` CLI to manage and launch pipelines from the terminal +- Register a GitHub-hosted pipeline and launch it with a parameter file + +You're now equipped to run and monitor your own pipelines on Seqera Platform, at scale. + +## Next steps to build your skills + +Here are our top suggestions for what to do next: + +- Don't just run pipelines, develop them! Learn to write your own with [Hello Nextflow](../hello_nextflow/index.md) or [Build with nf-core](../nfcore_build/index.md) +- Apply Nextflow to a scientific analysis use case with [Nextflow for Science](../nf4_science/index.md) +- Explore more advanced Nextflow features with the [Side Quests](../side_quests/index.md) + +## Getting help + +For help resources and community support, see the [Help page](../help.md). + +## Feedback survey + +Before you move on, please take a minute to complete the course survey! Your feedback helps us improve our training materials for everyone. + +[Take the survey :material-arrow-right:](survey.md){ .md-button .md-button--primary } diff --git a/docs/en/docs/seqera_scale/survey.md b/docs/en/docs/seqera_scale/survey.md new file mode 100644 index 0000000000..589ff7a37e --- /dev/null +++ b/docs/en/docs/seqera_scale/survey.md @@ -0,0 +1,7 @@ +# Feedback survey + +Before you move on, please complete this short 5-question survey to rate the training, share any feedback you may have about your experience, and let us know what else we could do to help you in your Nextflow journey. + +This should take you only a minute or two to complete. Thank you for helping us improve our training materials for everyone! + +
diff --git a/docs/en/docs/side_quests/dev_environment/index.md b/docs/en/docs/side_quests/dev_environment/index.md index f9ed67b02d..5a3059ed3b 100644 --- a/docs/en/docs/side_quests/dev_environment/index.md +++ b/docs/en/docs/side_quests/dev_environment/index.md @@ -618,7 +618,7 @@ We don't expect you to remember everything, but now you know that these features Apply these IDE skills while working through other training modules, for example: - **[nf-test](../nf_test/index.md)**: Create comprehensive test suites for your workflows -- **[Hello nf-core](../../hello_nf-core/index.md)**: Build production-quality pipelines with community standards +- **[Build with nf-core](../../nfcore_build/index.md)**: Develop production-quality pipelines with community standards The true power of these IDE features emerges as you work on larger, more complex projects. Start incorporating them into your workflow gradually—within a few sessions, they'll become second nature and transform how you approach Nextflow development. diff --git a/docs/en/docs/side_quests/index.md b/docs/en/docs/side_quests/index.md index 37d109dc8e..7f1b7301b7 100644 --- a/docs/en/docs/side_quests/index.md +++ b/docs/en/docs/side_quests/index.md @@ -26,31 +26,38 @@ additional_information: **Side Quests are standalone training mini-courses that go deeper into specific Nextflow topics.** -Each side quest can be taken independently, in any order, based on your interests and needs. +Each side quest can be done independently, in any order, to build your skills in the specific areas that matter most to your own projects. +Together, they cover the skills you need to move from simple pipelines to production-ready workflows. -## Course overview - -If this is your first time exploring the Side Quests, start with the [Orientation](./orientation.md) page for an overview of the training environment and materials. - -### Side Quests - -| Side Quest | Summary | Time Estimate | -| ----------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------- | -| [Development Environment](./dev_environment/index.md) | Set up and configure a productive local Nextflow development environment | 45 mins | -| [Essential Scripting Patterns](./essential_scripting_patterns/index.md) | Advanced scripting techniques for common workflow challenges | 90 mins | -| [File Input Processing](./working_with_files/index.md) | File handling, path operations, and organizing outputs | 45 mins | -| [Metadata and Meta Maps](./metadata/index.md) | Using metadata maps to track and propagate sample information | 45 mins | -| [Splitting and Grouping](./splitting_and_grouping/index.md) | Techniques for splitting and regrouping data channels | 45 mins | -| [Testing with nf-test](./nf_test/index.md) | Writing and running tests for Nextflow workflows | 1 hour | -| [Troubleshooting Workflows](./debugging/index.md) | Identifying and fixing common workflow errors | 1 hour | -| [Workflows of Workflows](./workflows_of_workflows/index.md) | Composing complex pipelines from reusable named workflow modules | 30 mins | -| [Plugin Development](./plugin_development/index.md) | Using and building Nextflow plugins | 3 hours | +### Browse by Topic + +If this is your first time taking one of our trainings, start with the [Getting started](./orientation.md) page for an overview of the training environment and materials. +Otherwise, feel free to dive straight into whichever quest calls to you. + + + + + + + + + + + + + + + + + + + + +
Side QuestSummaryTime Estimate
Developer Tools & Tricks
Development EnvironmentSet up and configure a productive local Nextflow development environment45 mins
Troubleshooting WorkflowsIdentifying and fixing common workflow errors1 hour
Essential Scripting PatternsAdvanced scripting techniques for common workflow challenges90 mins
Deep Dives into Dataflow
File Input ProcessingFile handling, path operations, and organizing outputs45 mins
Metadata and Meta MapsUsing metadata maps to track and propagate sample information45 mins
Splitting and GroupingTechniques for splitting and regrouping data channels45 mins
Modular Architecture in Action
Workflows of WorkflowsComposing complex pipelines from reusable named workflow modules30 mins
The Nextflow Extended Universe
Testing with nf-testWriting and running tests for Nextflow workflows1 hour
Plugin DevelopmentUsing and building Nextflow plugins3 hours
[Get started :material-arrow-right:](orientation.md){ .md-button .md-button--primary }
- -Let us know what other topics you'd like to see covered here by posting in the [Training section](https://community.seqera.io/c/training/) of the community forum. diff --git a/docs/en/docs/side_quests/metadata/index.md b/docs/en/docs/side_quests/metadata/index.md index 1d4a7f8100..3a598736a0 100644 --- a/docs/en/docs/side_quests/metadata/index.md +++ b/docs/en/docs/side_quests/metadata/index.md @@ -1742,7 +1742,7 @@ There are two complementary approaches to make workflows more robust against mis **1. Input validation** The most reliable solution is to validate the datasheet before any processing begins, so problems are caught early with a clear error message rather than surfacing as a cryptic process failure mid-run. -The [Hello nf-core](../../hello_nf-core/05_input_validation.md) training covers how to add input validation using the nf-schema plugin. +The [Build with nf-core](../../nfcore_build/04_input_validation.md) training covers how to add input validation using the nf-schema plugin. **2. Explicit process inputs for required values** diff --git a/docs/en/docs/side_quests/plugin_development/next_steps.md b/docs/en/docs/side_quests/plugin_development/next_steps.md index 1d1ae1d4bd..cdc4592a02 100644 --- a/docs/en/docs/side_quests/plugin_development/next_steps.md +++ b/docs/en/docs/side_quests/plugin_development/next_steps.md @@ -48,5 +48,5 @@ If you build a useful plugin, consider sharing it with the community through the If you haven't already, check out our other training courses: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Foundational Nextflow concepts -- **[Hello nf-core](../../hello_nf-core/index.md)**: nf-core pipelines and best practices +- **[Build with nf-core](../../nfcore_build/index.md)**: nf-core pipelines and best practices - **[Side Quests](../index.md)**: Deep dives into specific topics diff --git a/docs/en/docs/training_collections/architects_toolkit_1.md b/docs/en/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index d32eb81793..0000000000 --- a/docs/en/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: The Architect's Toolkit I -hide: - - toc ---- - -# The Architect's Toolkit I - -Our Training Collections provide curated learning paths through our advanced training materials (called [Side Quests](../side_quests/index.md)). This collection covers four essential topics that are frequently used together for building robust and scalable workflows. - -## Learning objectives - -By the end of this collection, you'll have experience with: - -- **Complex modular workflow architectures** - Combining multiple workflows into cohesive pipelines -- **Comprehensive testing strategies** - Ensuring your workflows are reliable and maintainable -- **Metadata management** - Handling sample-specific metadata throughout your workflows effectively -- **Advanced data processing** - Implementing efficient data splitting and grouping patterns - -These skills will enable you to build robust, scalable, and maintainable Nextflow workflows for real-world applications. - -## Audience & prerequisites - -This collection is designed for users who have completed the basic Nextflow training and want to dive deeper into advanced workflow patterns, testing strategies, and data and metadata handling techniques. - -**Prerequisites** - -- Completion of [Hello Nextflow](../hello_nextflow/index.md) training or equivalent experience -- Basic familiarity with Nextflow syntax and concepts -- Understanding of basic workflow development patterns -- Experience with command-line tools - -## Collection contents - -This collection consists of four Side Quests that cover complementary workflow engineering topics: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Complex workflow architecture and composition -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Testing strategies for Nextflow workflows -3. **[Metadata](../side_quests/metadata/index.md)** - Handling metadata for items in Nextflow channels -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Advanced data processing patterns - -Each Side Quest is self-contained and covers independent concepts, but we recommend completing them in the order listed above for a logical progression through the topics. - -## How to use this collection - -First, command-click on the "Open in GitHub Codespaces" button below to launch the training environment in a separate tab, then read on while it loads. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Once your environment is running, work through the collection as follows: - -1. In this tab: Navigate to the first Side Quest listed above, which describes step-by-step development exercises. -2. In your Codespaces tab: Work through the exercises for the Side Quest. -3. When you complete a Side Quest, return to this page and navigate to the next one in the list above. -4. When you have completed the collection, click the button below to fill out a very short survey. Your feedback allows us to continue improving the training materials for everyone. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Ready to begin? Start with the first module above! diff --git a/docs/en/docs/training_collections/index.md b/docs/en/docs/training_collections/index.md deleted file mode 100644 index b998c6ef07..0000000000 --- a/docs/en/docs/training_collections/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Training Collections -hide: - - toc ---- - -# Training Collections - -This section contains curated collections of training modules called [Side Quests](../side_quests/index.md) that aim to provide a comprehensive learning experience around a particular theme or use case. - -## Prerequisites - -Each collection has specific prerequisites documented on its index page. However, most collections assume: - -- Experience with the command line -- Foundational Nextflow concepts and tooling covered in the [Hello Nextflow](../hello_nextflow/index.md) beginner training course - -For technical requirements and environment setup, see the [Environment Setup](../envsetup/index.md) mini-course. - -## Available collections - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - A collection of four Side Quests covering workflow architecture patterns for assembling complex pipelines, implementing testing strategies, managing metadata management, and grouping and splitting data. _Estimated duration: 4 hours in group training._ - -## Suggesting new collections - -We are actively working on developing additional Side Quests and Collections. -Please feel free to suggest topics that you think would make sense to cover in a Collection by posting in the [Training section](https://community.seqera.io/c/training/) of the community forum. diff --git a/docs/en/docs/training_events.md b/docs/en/docs/training_events.md new file mode 100644 index 0000000000..34cd52024b --- /dev/null +++ b/docs/en/docs/training_events.md @@ -0,0 +1,73 @@ +--- +title: Training Events +description: Structured training events, information for trainers, and our open-source license and contribution policy +hide: + - toc + - footer +--- + +# Training Events + +## Official training events + +If you'd prefer to take Nextflow training as part of a structured event, there are many opportunities to do so. +We recommend checking out the following options: + +
+ +- :material-calendar-month-outline:{ .lg .middle } __Training Weeks__ + + --- + + Organized quarterly by the Community team. + A free, self-paced week of on-demand tutorials, live office hours, and community forum support, covering both introductory and advanced topics. + + + [Learn more :material-arrow-right:](https://seqera.io/events/nextflow-training-week-sep-2026){ .md-button .md-button--secondary } + +- :material-microphone-variant:{ .lg .middle } __Seqera Events__ + + --- + + In-person training events organized by Seqera, including 'Seqera Sessions', regional events held multiple times a year with hands-on training and expert talks, and 'Nextflow Summit', a larger biannual gathering held virtually and in person (Boston for the in-person edition). + + [Browse events :material-arrow-right:](https://seqera.io/events/upcoming/#events){ .md-button .md-button--secondary } + +- :material-account-star-outline:{ .lg .middle } __Nextflow Ambassadors__ + + --- + + Community events organized by local Nextflow Ambassadors, volunteers who promote Nextflow adoption, run workshops and hackathons, and share expertise through talks and tutorials in their region. + + [Meet the ambassadors :material-arrow-right:](https://www.nextflow.io/our_ambassadors.html){ .md-button .md-button--secondary } + +- :material-source-branch:{ .lg .middle } __nf-core events__ + + --- + + Community hackathons organized by the nf-core project, held several times a year in locations such as Boston and Barcelona as well as online, alongside shorter 'Bytesize' talks on pipelines and best practices. + + [Browse events :material-arrow-right:](https://nf-co.re/events){ .md-button .md-button--secondary } + +
+ +## Information for trainers + +If you are an instructor running your own trainings, you are welcome to use our materials directly from the training portal as long as you attribute proper credit. +See [Open-source license and contribution policy](#open-source-license-and-contribution-policy) below for details. + +In addition, we'd love to hear from you on how we could better support your training efforts! +Please contact us at [community@seqera.io](mailto:community@seqera.io) or on the community forum (see [Help](help.md) page). + +## Open-source license and contribution policy + +[![Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](assets/img/cc_by-nc-sa.svg){ align=right }](https://creativecommons.org/licenses/by-nc-sa/4.0/) + +This training material is developed and maintained by [Seqera](https://seqera.io) and released under an open-source license ([CC BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/)) for the benefit of the community. +If you wish to use this material in a way that falls outside the scope of the license (note the limitations on commercial use and redistribution), please contact us at [community@seqera.io](mailto:community@seqera.io) to discuss your request. + +We welcome improvements, fixes and bug reports from the community. +Every page has a :material-file-edit-outline: icon in the top right of the page linking to the code repository, where you can report issues or propose changes to the training source material via a pull request. +See the `README.md` in the repository for more details. + +
diff --git a/docs/en/mkdocs.yml b/docs/en/mkdocs.yml index 41ab59ce40..60f9691527 100644 --- a/docs/en/mkdocs.yml +++ b/docs/en/mkdocs.yml @@ -6,15 +6,39 @@ repo_name: nextflow-io/training nav: - index.md - Nextflow Run: - - nextflow_run/index.md + - Overview: nextflow_run/index.md - nextflow_run/00_orientation.md - - nextflow_run/01_basics.md - - nextflow_run/02_pipeline.md - - nextflow_run/03_config.md + - nextflow_run/01_run_nextflow.md + - nextflow_run/02_configure_pipeline.md + - nextflow_run/03_manage_executions.md + - nextflow_run/04_remote_repositories.md - nextflow_run/next_steps.md - nextflow_run/survey.md + - Use nf-core: + - Overview: nfcore_use/index.md + - nfcore_use/00_orientation.md + - nfcore_use/01_run_demo.md + - nfcore_use/02_configure_execution.md + - nfcore_use/03_run_production_pipeline.md + - nfcore_use/next_steps.md + - nfcore_use/survey.md + - Scale with Seqera: + - Overview: seqera_scale/index.md + - seqera_scale/00_orientation.md + - seqera_scale/01_run_with_seqera.md + - seqera_scale/02_launch_from_cli.md + - seqera_scale/next_steps.md + - seqera_scale/survey.md + - Execution Config: + - Overview: execution_config/index.md + - execution_config/00_orientation.md + - execution_config/01_packaging_and_execution.md + - execution_config/02_resources_and_retries.md + - execution_config/03_profiles.md + - execution_config/next_steps.md + - execution_config/survey.md - Hello Nextflow: - - hello_nextflow/index.md + - Overview: hello_nextflow/index.md - hello_nextflow/00_orientation.md - hello_nextflow/01_hello_world.md - hello_nextflow/02_hello_channels.md @@ -24,20 +48,40 @@ nav: - hello_nextflow/06_hello_config.md - hello_nextflow/next_steps.md - hello_nextflow/survey.md - - Hello nf-core: - - hello_nf-core/index.md - - hello_nf-core/00_orientation.md - - hello_nf-core/01_run_demo.md - - hello_nf-core/02_rewrite_hello.md - - hello_nf-core/03_use_module.md - - hello_nf-core/04_make_module.md - - hello_nf-core/05_input_validation.md - - hello_nf-core/next_steps.md - - hello_nf-core/survey.md + - Build with nf-core: + - Overview: nfcore_build/index.md + - nfcore_build/00_orientation.md + - nfcore_build/01_rewrite_hello.md + - nfcore_build/02_use_module.md + - nfcore_build/03_make_module.md + - nfcore_build/04_input_validation.md + - nfcore_build/next_steps.md + - nfcore_build/survey.md + - Side Quests: + - Overview: side_quests/index.md + - side_quests/orientation.md + - side_quests/dev_environment/index.md + - side_quests/debugging/index.md + - side_quests/essential_scripting_patterns/index.md + - side_quests/working_with_files/index.md + - side_quests/metadata/index.md + - side_quests/splitting_and_grouping/index.md + - side_quests/workflows_of_workflows/index.md + - side_quests/nf_test/index.md + - Plugin Development: + - side_quests/plugin_development/index.md + - side_quests/plugin_development/01_plugin_basics.md + - side_quests/plugin_development/02_create_project.md + - side_quests/plugin_development/03_custom_functions.md + - side_quests/plugin_development/04_build_and_test.md + - side_quests/plugin_development/05_observers.md + - side_quests/plugin_development/06_configuration.md + - side_quests/plugin_development/summary.md + - side_quests/plugin_development/next_steps.md - Nextflow for Science: - - nf4_science/index.md + - Overview: nf4_science/index.md - Genomics: - - nf4_science/genomics/index.md + - Overview: nf4_science/genomics/index.md - nf4_science/genomics/00_orientation.md - nf4_science/genomics/01_method.md - nf4_science/genomics/02_per_sample_variant_calling.md @@ -45,7 +89,7 @@ nav: - nf4_science/genomics/next_steps.md - nf4_science/genomics/survey.md - RNAseq: - - nf4_science/rnaseq/index.md + - Overview: nf4_science/rnaseq/index.md - nf4_science/rnaseq/00_orientation.md - nf4_science/rnaseq/01_method.md - nf4_science/rnaseq/02_single-sample.md @@ -53,7 +97,7 @@ nav: - nf4_science/rnaseq/next_steps.md - nf4_science/rnaseq/survey.md - Imaging: - - nf4_science/imaging/index.md + - Overview: nf4_science/imaging/index.md - nf4_science/imaging/00_orientation.md - nf4_science/imaging/01_basics.md - nf4_science/imaging/02_run_molkart.md @@ -61,39 +105,15 @@ nav: - nf4_science/imaging/04_config.md - nf4_science/imaging/survey.md - nf4_science/imaging/next_steps.md - - Side Quests: - - side_quests/index.md - - side_quests/orientation.md - - side_quests/dev_environment/index.md - - side_quests/essential_scripting_patterns/index.md - - side_quests/working_with_files/index.md - - side_quests/metadata/index.md - - side_quests/splitting_and_grouping/index.md - - side_quests/nf_test/index.md - - side_quests/debugging/index.md - - side_quests/workflows_of_workflows/index.md - - Plugin Development: - - side_quests/plugin_development/index.md - - side_quests/plugin_development/01_plugin_basics.md - - side_quests/plugin_development/02_create_project.md - - side_quests/plugin_development/03_custom_functions.md - - side_quests/plugin_development/04_build_and_test.md - - side_quests/plugin_development/05_observers.md - - side_quests/plugin_development/06_configuration.md - - side_quests/plugin_development/summary.md - - side_quests/plugin_development/next_steps.md - - Training Collections: - - training_collections/index.md - - training_collections/architects_toolkit_1.md - - Help: - - help.md - - Training environment: - - envsetup/index.md - - envsetup/01_setup.md - - envsetup/03_devcontainer.md - - envsetup/02_local.md - - info/nxf_versions.md - - info/hello_pipeline.md + - Training Environment: + - envsetup/index.md + - envsetup/01_setup.md + - envsetup/03_devcontainer.md + - envsetup/02_local.md + - info/nxf_versions.md + - info/hello_pipeline.md + - help.md + - training_events.md theme: name: material @@ -134,6 +154,7 @@ theme: courses: octicons/log-16 terminal: octicons/terminal-16 full-code: material/code-block-braces + optional: material/book-open-variant learning: octicons/mortar-board-16 people: octicons/people-16 licensing: octicons/law-16 @@ -154,6 +175,38 @@ extra_javascript: extra: # Use root path for localStorage keys so consent/palette work across all versions and languages scope: / + # Non-clickable group labels shown above the matching top-level nav section + # in the left sidebar. Key = exact top-level nav title. Rendered by + # overrides/partials/nav.html. Add more entries here to label further groups. + nav_group_labels: + "Training Environment": Setup & Help + "Nextflow Run": Users + "Hello Nextflow": Developers + # Per-section nav title overrides, keyed by the section's index page + # source path (relative to docs_dir). Takes precedence over the page's + # own title, for when the nav label should differ from the page itself. + # Applied by generate_renamed_section_items in _scripts/mkdocs_hooks.py. + nav_title_overrides: + envsetup/index.md: Training Environment + nextflow_run/index.md: Nextflow Run + nfcore_use/index.md: Use nf-core + seqera_scale/index.md: Scale with Seqera + execution_config/index.md: Execution Config + hello_nextflow/index.md: Hello Nextflow + nfcore_build/index.md: Build with nf-core + nf4_science/index.md: Nextflow for Science + nf4_science/genomics/index.md: "Genomics" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Imaging" + side_quests/index.md: Side Quests + # Non-clickable separators inside a nested nav list, keyed by the source + # path of the child page the separator should appear directly above. + # Rendered by overrides/partials/nav-item.html. + nav_section_separators: + side_quests/dev_environment/index.md: Developer Tools & Tricks + side_quests/working_with_files/index.md: Deep Dives into Dataflow + side_quests/workflows_of_workflows/index.md: Modular Architecture in Action + side_quests/nf_test/index.md: The Nextflow Extended Universe # Announcement banner for upcoming training announcement: active: true @@ -259,8 +312,11 @@ plugins: restart_increment_after: - envsetup/01_setup.md - nextflow_run/00_orientation.md + - nfcore_use/00_orientation.md + - seqera_scale/00_orientation.md + - execution_config/00_orientation.md - hello_nextflow/00_orientation.md - - hello_nf-core/00_orientation.md + - nfcore_build/00_orientation.md - nf4_science/genomics/00_orientation.md - nf4_science/rnaseq/00_orientation.md - side_quests/orientation.md @@ -268,22 +324,65 @@ plugins: exclude: - index*.md - help*.md + - training_events*.md - info/*.md - envsetup/*.md - nextflow_run/*.md + - nfcore_use/*.md + - seqera_scale/*.md + - execution_config/*.md - hello_nextflow/*.md - - hello_nf-core/*.md + - nfcore_build/*.md - nf4_science/genomics/*.md - nf4_science/rnaseq/*.md - nf4_science/imaging/*.md - side_quests/*.md - side_quests/**/*.md - - training_collections/index.md - - training_collections/advanced_workflow_development/index.md - search - mkdocs_quiz: progress_sidebar_position: bottom + - redirects: + redirect_maps: + "training_collections/index.md": "side_quests/index.md" + "training_collections/architects_toolkit_1.md": "side_quests/index.md#suggested-path-the-architects-toolkit-i" + "training_collections/nextflow_triathlon.md": "nextflow_run/index.md" + "nextflow_run/01_basics.md": "https://training.nextflow.io/3.6.1/nextflow_run/01_basics/" + "nextflow_run/02_pipeline.md": "https://training.nextflow.io/3.6.1/nextflow_run/02_pipeline/" + "nextflow_run/03_config.md": "https://training.nextflow.io/3.6.1/nextflow_run/03_config/" + "hello_nf-core/02_rewrite_hello.md": "nfcore_build/01_rewrite_hello.md" + "hello_nf-core/03_use_module.md": "nfcore_build/02_use_module.md" + "hello_nf-core/04_make_module.md": "nfcore_build/03_make_module.md" + "hello_nf-core/05_input_validation.md": "nfcore_build/04_input_validation.md" + "hello_nf-core/01_run_demo.md": "nfcore_use/01_run_demo.md" + "hello_nf-core/index.md": "nfcore_build/index.md" + "hello_nf-core/00_orientation.md": "nfcore_build/00_orientation.md" + "hello_nf-core/01_rewrite_hello.md": "nfcore_build/01_rewrite_hello.md" + "hello_nf-core/02_use_module.md": "nfcore_build/02_use_module.md" + "hello_nf-core/03_make_module.md": "nfcore_build/03_make_module.md" + "hello_nf-core/04_input_validation.md": "nfcore_build/04_input_validation.md" + "hello_nf-core/next_steps.md": "nfcore_build/next_steps.md" + "hello_nf-core/survey.md": "nfcore_build/survey.md" + "nextflow_config/index.md": "execution_config/index.md" + "nextflow_config/00_orientation.md": "execution_config/00_orientation.md" + "nextflow_config/01_packaging_and_execution.md": "execution_config/01_packaging_and_execution.md" + "nextflow_config/02_resources_and_retries.md": "execution_config/02_resources_and_retries.md" + "nextflow_config/03_profiles.md": "execution_config/03_profiles.md" + "nextflow_config/next_steps.md": "execution_config/next_steps.md" + "nextflow_config/survey.md": "execution_config/survey.md" + "nfcore_run/index.md": "nfcore_use/index.md" + "nfcore_run/00_orientation.md": "nfcore_use/00_orientation.md" + "nfcore_run/01_run_demo.md": "nfcore_use/01_run_demo.md" + "nfcore_run/02_configure_execution.md": "nfcore_use/02_configure_execution.md" + "nfcore_run/03_run_production_pipeline.md": "nfcore_use/03_run_production_pipeline.md" + "nfcore_run/next_steps.md": "nfcore_use/next_steps.md" + "nfcore_run/survey.md": "nfcore_use/survey.md" + "seqera_run/index.md": "seqera_scale/index.md" + "seqera_run/00_orientation.md": "seqera_scale/00_orientation.md" + "seqera_run/01_run_with_seqera.md": "seqera_scale/01_run_with_seqera.md" + "seqera_run/02_launch_from_cli.md": "seqera_scale/02_launch_from_cli.md" + "seqera_run/next_steps.md": "seqera_scale/next_steps.md" + "seqera_run/survey.md": "seqera_scale/survey.md" hooks: - ../../_scripts/mkdocs_hooks.py - ../en/hooks/index_page_hook.py diff --git a/docs/en/overrides/partials/nav-item.html b/docs/en/overrides/partials/nav-item.html new file mode 100644 index 0000000000..d1d13bb9dd --- /dev/null +++ b/docs/en/overrides/partials/nav-item.html @@ -0,0 +1,138 @@ +{#- Based on material/templates/partials/nav-item.html (mkdocs-material 9.7.1). +Adds non-clickable group-label separators inside a nested nav list (not just the +top-level one handled by overrides/partials/nav.html), driven by +`extra.nav_section_separators` in mkdocs.yml (key = source path of the child +page the separator should appear directly above). Diff against the upstream +template on theme upgrades to stay in sync. -#} {% macro render_status(nav_item, +type) %} {% set class = "md-status md-status--" ~ type %} {% if +config.extra.status and config.extra.status[type] %} + +{% else %} + +{% endif %} {% endmacro %} {% macro render_title(nav_item) %} {% if +nav_item.typeset %} + {{ nav_item.typeset.title }} +{% else %} {{ nav_item.title }} {% endif %} {% endmacro %} {% macro +render_content(nav_item, ref) %} {% set ref = ref or nav_item %} {% if +nav_item.meta and nav_item.meta.icon %} {% include ".icons/" ~ +nav_item.meta.icon ~ ".svg" %} {% endif %} + + {{ render_title(ref) }} {% if nav_item.meta and nav_item.meta.subtitle %} +
+ {{ nav_item.meta.subtitle }} + {% endif %} +
+{% if nav_item.meta and nav_item.encrypted %} {{ render_status(nav_item, +"encrypted") }} {% endif %} {% if nav_item.meta and nav_item.meta.status %} {{ +render_status(nav_item, nav_item.meta.status) }} {% endif %} {% endmacro %} {% +macro render_pruned(nav_item, ref) %} {% set ref = ref or nav_item %} {% set +first = nav_item.children | first %} {% if first and first.children %} {{ +render_pruned(first, ref) }} {% else %} + + {{ render_content(ref) }} {% if nav_item.children | length > 0 %} + + {% endif %} + +{% endif %} {% endmacro %} {% macro render(nav_item, path, level, parent) %} {% +set class = "md-nav__item" %} {% if nav_item.active %} {% set class = class ~ " +md-nav__item--active" %} {% endif %} {% if nav_item.pages %} {% if page in +nav_item.pages %} {% set nav_item = page %} {% endif %} {% endif %} {% if +nav_item.children %} {% set _ = namespace(index = none) %} {% if +"navigation.indexes" in features %} {% for item in nav_item.children %} {% if +item.is_index and _.index is none %} {% set _.index = item %} {% endif %} {% +endfor %} {% endif %} {% set index = _.index %} {% if "navigation.tabs" in +features %} {% if level == 1 and nav_item.active %} {% set class = class ~ " +md-nav__item--section" %} {% set is_section = true %} {% endif %} {% if +"navigation.sections" in features %} {% if level == 2 and parent.active %} {% +set class = class ~ " md-nav__item--section" %} {% set is_section = true %} {% +endif %} {% endif %} {% elif "navigation.sections" in features %} {% if level == +1 %} {% set class = class ~ " md-nav__item--section" %} {% set is_section = true +%} {% endif %} {% endif %} {% if "navigation.prune" in features %} {% if not +is_section and not nav_item.active %} {% set class = class ~ " +md-nav__item--pruned" %} {% set is_pruned = true %} {% endif %} {% endif %} +
  • + {% if not is_pruned %} {% set checked = "checked" if nav_item.active %} {% if + "navigation.expand" in features and not checked %} {% set indeterminate = + "md-toggle--indeterminate" %} {% endif %} + + {% if not index %} {% set tabindex = "0" if not is_section %} + + {% else %} {% set class = "md-nav__link--active" if index == page %} + + {% endif %} + + {% else %} {{ render_pruned(nav_item) }} {% endif %} +
  • +{% elif nav_item == page %} +
  • + {% set toc = page.toc %} + + {% set first = toc | first %} {% if first and first.level == 1 %} {% set toc = + first.children %} {% endif %} {% if toc %} + + {% endif %} + + {{ render_content(nav_item) }} + + {% if toc %} {% include "partials/toc.html" %} {% endif %} +
  • +{% else %} +
  • + + {{ render_content(nav_item) }} + +
  • +{% endif %} {% endmacro %} diff --git a/docs/en/overrides/partials/nav.html b/docs/en/overrides/partials/nav.html new file mode 100644 index 0000000000..7b5d612f57 --- /dev/null +++ b/docs/en/overrides/partials/nav.html @@ -0,0 +1,34 @@ +{#- Based on material/templates/partials/nav.html (mkdocs-material 9.7.1). Adds +non-clickable group labels above top-level nav sections, driven by +`extra.nav_group_labels` in mkdocs.yml (key = exact top-level nav title). Diff +against the upstream template on theme upgrades to stay in sync. -#} {% import +"partials/nav-item.html" as item with context %} {% set class = "md-nav +md-nav--primary" %} {% if "navigation.tabs" in features %} {% set class = class +~ " md-nav--lifted" %} {% endif %} {% if "toc.integrate" in features %} {% set +class = class ~ " md-nav--integrated" %} {% endif %} + diff --git a/docs/en/ui-strings.yml b/docs/en/ui-strings.yml index 085b998292..71d53d42ef 100644 --- a/docs/en/ui-strings.yml +++ b/docs/en/ui-strings.yml @@ -15,7 +15,7 @@ index_page: defaults: technical_requirements: >- - You will need a GitHub account OR a local installation of Nextflow. Our training courses are compatible with Nextflow version 25.10.2 or later and require the use of the v2 parser **EXCEPT the Hello nf-core course**, which requires the v1 parser. + You will need a GitHub account OR a local installation of Nextflow. Our training courses are compatible with Nextflow version 25.10.2 or later and require the use of the v2 parser. See [Environment options](/envsetup/) for more details. videos: >- Videos are available for each chapter, featuring an instructor working diff --git a/docs/es/docs/hello_nextflow/next_steps.md b/docs/es/docs/hello_nextflow/next_steps.md index 69022b3433..83698ff2e8 100644 --- a/docs/es/docs/hello_nextflow/next_steps.md +++ b/docs/es/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Ahora está equipado con el conocimiento fundamental para comenzar a desarrollar Aquí están nuestras 3 principales sugerencias sobre qué hacer a continuación: - Aplique Nextflow a un caso de uso de análisis científico con [Nextflow for Science](../nf4_science/index.md) -- Comience con nf-core con [Hello nf-core](../hello_nf-core/index.md) +- Comience con nf-core con [Build with nf-core](../hello_nf-core/index.md) - Explore características más avanzadas de Nextflow con las [Side Quests](../side_quests/index.md) Finalmente, le recomendamos que eche un vistazo a [**Seqera Platform**](https://seqera.io/), una plataforma basada en la nube desarrollada por los creadores de Nextflow que hace aún más fácil lanzar y gestionar sus workflows, así como administrar sus datos y ejecutar análisis de forma interactiva en cualquier entorno. diff --git a/docs/es/docs/hello_nf-core/01_run_demo.md b/docs/es/docs/hello_nf-core/01_run_demo.md index d37d1f38a6..36f9b4d512 100644 --- a/docs/es/docs/hello_nf-core/01_run_demo.md +++ b/docs/es/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En esta primera parte del curso de capacitación Hello nf-core, le mostramos cómo encontrar y probar un pipeline de nf-core, configurar y personalizar su ejecución según sus necesidades, y entender cómo la validación de entrada protege contra errores comunes. +En esta primera parte del curso de capacitación Build with nf-core, le mostramos cómo encontrar y probar un pipeline de nf-core, configurar y personalizar su ejecución según sus necesidades, y entender cómo la validación de entrada protege contra errores comunes. Vamos a utilizar un pipeline llamado nf-core/demo que es mantenido por el proyecto nf-core como parte de su inventario de pipelines para demostración y capacitación. diff --git a/docs/es/docs/hello_nf-core/02_rewrite_hello.md b/docs/es/docs/hello_nf-core/02_rewrite_hello.md index 92d051d714..e85743b2da 100644 --- a/docs/es/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/es/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En esta segunda parte del curso de entrenamiento Hello nf-core, te mostramos cómo crear una versión compatible con nf-core del pipeline producido por el curso para principiantes [Hello Nextflow](../hello_nextflow/index.md). +En esta segunda parte del curso de entrenamiento Build with nf-core, te mostramos cómo crear una versión compatible con nf-core del pipeline producido por el curso para principiantes [Hello Nextflow](../hello_nextflow/index.md). Vamos a hacer esto en dos fases: primero, usaremos las herramientas nf-core para crear una estructura base de pipeline, y luego injertaremos el código del pipeline 'regular' existente sobre esa estructura. diff --git a/docs/es/docs/hello_nf-core/03_use_module.md b/docs/es/docs/hello_nf-core/03_use_module.md index 23b0944a02..94610b0d1e 100644 --- a/docs/es/docs/hello_nf-core/03_use_module.md +++ b/docs/es/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En esta tercera parte del curso de capacitación Hello nf-core, le mostramos cómo encontrar, instalar y usar un módulo nf-core existente en su pipeline. +En esta tercera parte del curso de capacitación Build with nf-core, le mostramos cómo encontrar, instalar y usar un módulo nf-core existente en su pipeline. Uno de los grandes beneficios de trabajar con nf-core es la capacidad de aprovechar módulos preconstruidos y probados del repositorio [nf-core/modules](https://github.com/nf-core/modules). En lugar de escribir cada proceso desde cero, puede instalar y usar módulos mantenidos por la comunidad que siguen las mejores prácticas. diff --git a/docs/es/docs/hello_nf-core/04_make_module.md b/docs/es/docs/hello_nf-core/04_make_module.md index 78f4000c06..01a93fc81c 100644 --- a/docs/es/docs/hello_nf-core/04_make_module.md +++ b/docs/es/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En esta cuarta parte del curso de entrenamiento Hello nf-core, le mostramos cómo crear un módulo nf-core aplicando las convenciones clave que hacen que los módulos sean portables y mantenibles. +En esta cuarta parte del curso de entrenamiento Build with nf-core, le mostramos cómo crear un módulo nf-core aplicando las convenciones clave que hacen que los módulos sean portables y mantenibles. El proyecto nf-core proporciona un comando (`nf-core modules create`) que genera plantillas de módulos estructuradas correctamente de forma automática, similar a lo que usamos para el flujo de trabajo en la Parte 2. Sin embargo, con fines didácticos, vamos a comenzar haciéndolo manualmente: transformando el módulo local `cowpy` en su pipeline `core-hello` en un módulo de estilo nf-core paso a paso. diff --git a/docs/es/docs/hello_nf-core/05_input_validation.md b/docs/es/docs/hello_nf-core/05_input_validation.md index c02ceb9be6..c4ff74d778 100644 --- a/docs/es/docs/hello_nf-core/05_input_validation.md +++ b/docs/es/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -En esta quinta parte del curso de entrenamiento Hello nf-core, le mostramos cómo usar el plugin nf-schema para validar las entradas y parámetros del pipeline. +En esta quinta parte del curso de entrenamiento Build with nf-core, le mostramos cómo usar el plugin nf-schema para validar las entradas y parámetros del pipeline. ??? info "Cómo comenzar desde esta sección" @@ -808,6 +808,6 @@ Ha implementado y probado tanto la validación de parámetros como la validació ### ¿Qué sigue? -¡Ha completado las cinco partes del curso de capacitación Hello nf-core! +¡Ha completado las cinco partes del curso de capacitación Build with nf-core! Continúe al [Resumen](next_steps.md) para reflexionar sobre lo que ha construido y aprendido. diff --git a/docs/es/docs/hello_nf-core/index.md b/docs/es/docs/hello_nf-core/index.md index 34cbcc0551..ce02930faf 100644 --- a/docs/es/docs/hello_nf-core/index.md +++ b/docs/es/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Dominio:** Los ejercicios son todos agnósticos al dominio, por lo que no se requiere conocimiento científico previo." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core es una introducción práctica al uso de recursos y mejores prácticas de nf-core.** +**Build with nf-core es una introducción práctica al uso de recursos y mejores prácticas de nf-core.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/es/docs/hello_nf-core/next_steps.md b/docs/es/docs/hello_nf-core/next_steps.md index ee8cf158bd..d8b0a64ee5 100644 --- a/docs/es/docs/hello_nf-core/next_steps.md +++ b/docs/es/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -¡Felicitaciones por completar el curso de entrenamiento Hello nf-core! 🎉 +¡Felicitaciones por completar el curso de entrenamiento Build with nf-core! 🎉 diff --git a/docs/es/docs/index.md b/docs/es/docs/index.md index 0612502625..3806617a4e 100644 --- a/docs/es/docs/index.md +++ b/docs/es/docs/index.md @@ -132,11 +132,11 @@ hide: Estos cursos le ayudan a pasar de los fundamentos de Nextflow a las buenas prácticas de nf-core. Comprenda cómo y por qué la comunidad nf-core construye pipelines, y cómo puede contribuir y reutilizar estas técnicas. - ??? courses "**Hello nf-core:** Primeros pasos con nf-core" + ??? courses "**Build with nf-core:** Primeros pasos con nf-core" Para desarrolladores que deseen aprender a ejecutar y desarrollar pipelines compatibles con [nf-core](https://nf-co.re/). El curso cubre la estructura de los pipelines de nf-core con suficiente detalle para permitir el desarrollo de pipelines simples pero completamente funcionales que sigan la plantilla y las buenas prácticas de desarrollo de nf-core, así como el uso de módulos nf-core existentes. - [Comenzar la capacitación Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Comenzar la capacitación Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Explorar los Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Rutas de aprendizaje recomendadas a través de los Side Quests" + ??? courses "**Learning Paths:** Rutas de aprendizaje recomendadas a través de los Side Quests" - Las Training Collections combinan múltiples Side Quests para proporcionar una experiencia de aprendizaje integral en torno a un tema o caso de uso particular. + Las Learning Paths combinan múltiples Side Quests para proporcionar una experiencia de aprendizaje integral en torno a un tema o caso de uso particular. - [Explorar las Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Explorar las Learning Paths :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/es/docs/nextflow_run/03_config.md b/docs/es/docs/nextflow_run/03_config.md index 3cc84c92b6..743362614b 100644 --- a/docs/es/docs/nextflow_run/03_config.md +++ b/docs/es/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Sabe todo lo que necesita saber para comenzar a ejecutar y gestionar pipelines d Eso concluye este curso, pero si está ansioso por seguir aprendiendo, tenemos dos recomendaciones principales: - Si quiere profundizar más en desarrollar sus propios pipelines, eche un vistazo a [Hello Nextflow](../hello_nextflow/index.md), un curso para principiantes que cubre la misma progresión general que este pero entra en mucho más detalle sobre channels y operadores. -- Si le gustaría continuar aprendiendo cómo ejecutar pipelines de Nextflow sin profundizar más en el código, eche un vistazo a la primera parte de [Hello nf-core](../hello_nf-core/index.md), que introduce las herramientas para encontrar y ejecutar pipelines del proyecto [nf-core](https://nf-co.re/) muy popular. +- Si le gustaría continuar aprendiendo cómo ejecutar pipelines de Nextflow sin profundizar más en el código, eche un vistazo a la primera parte de [Build with nf-core](../hello_nf-core/index.md), que introduce las herramientas para encontrar y ejecutar pipelines del proyecto [nf-core](https://nf-co.re/) muy popular. ¡Diviértase! diff --git a/docs/es/docs/nextflow_run/next_steps.md b/docs/es/docs/nextflow_run/next_steps.md index 3df74a1cb6..a9fb5f1d9c 100644 --- a/docs/es/docs/nextflow_run/next_steps.md +++ b/docs/es/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Aquí están nuestras principales sugerencias de qué hacer a continuación: - ¡No solo ejecute Nextflow, escríbalo! Conviértase en un desarrollador de Nextflow con [Hello Nextflow](../hello_nextflow/index.md) - Aplique Nextflow a un caso de uso de análisis científico con [Nextflow for Science](../nf4_science/index.md) -- Comience con nf-core con [Hello nf-core](../hello_nf-core/index.md) +- Comience con nf-core con [Build with nf-core](../hello_nf-core/index.md) - Aprenda técnicas de solución de problemas con el [Debugging Side Quest](../side_quests/debugging/index.md) Finalmente, le recomendamos que eche un vistazo a [**Seqera Platform**](https://seqera.io/), una plataforma basada en la nube desarrollada por los creadores de Nextflow que hace aún más fácil lanzar y gestionar sus workflows, así como gestionar sus datos y ejecutar análisis interactivamente en cualquier entorno. diff --git a/docs/es/docs/nf4_science/_template/next_steps.md b/docs/es/docs/nf4_science/_template/next_steps.md index 1dd54a0d98..0d1e427604 100644 --- a/docs/es/docs/nf4_science/_template/next_steps.md +++ b/docs/es/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Ahora estás preparado/a para comenzar a aplicar Nextflow a workflows de anális Aquí están nuestras principales sugerencias sobre qué hacer a continuación: - Aplica Nextflow a otros casos de uso de análisis científico con [Nextflow for Science](../index.md) -- Comienza con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Comienza con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Explora características más avanzadas de Nextflow con las [Side Quests](../../side_quests/index.md) Finalmente, te recomendamos que eches un vistazo a [**Seqera Platform**](https://seqera.io/), una plataforma basada en la nube desarrollada por los creadores de Nextflow que hace aún más fácil lanzar y gestionar tus workflows, así como administrar tus datos y ejecutar análisis de forma interactiva en cualquier entorno. diff --git a/docs/es/docs/nf4_science/genomics/next_steps.md b/docs/es/docs/nf4_science/genomics/next_steps.md index 3656f69b4f..e091115cf1 100644 --- a/docs/es/docs/nf4_science/genomics/next_steps.md +++ b/docs/es/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Ahora estás preparado/a para comenzar a aplicar Nextflow a workflows de anális Aquí están nuestras principales sugerencias sobre qué hacer a continuación: - Aplica Nextflow a otros casos de uso de análisis científico con [Nextflow for Science](../index.md) -- Comienza con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Comienza con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Explora características más avanzadas de Nextflow con las [Side Quests](../../side_quests/index.md) Finalmente, te recomendamos que eches un vistazo a [**Seqera Platform**](https://seqera.io/), una plataforma basada en la nube desarrollada por los creadores de Nextflow que hace aún más fácil lanzar y gestionar tus workflows, así como administrar tus datos y ejecutar análisis de forma interactiva en cualquier entorno. diff --git a/docs/es/docs/nf4_science/imaging/02_run_molkart.md b/docs/es/docs/nf4_science/imaging/02_run_molkart.md index e29ce77c52..fd98d758de 100644 --- a/docs/es/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/es/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Características clave de los pipelines de nf-core: !!! tip "¿Quiere aprender más sobre nf-core?" - Para una introducción detallada al desarrollo de pipelines de nf-core, consulte el curso de entrenamiento [Hello nf-core](../../hello_nf-core/index.md). + Para una introducción detallada al desarrollo de pipelines de nf-core, consulte el curso de entrenamiento [Build with nf-core](../../hello_nf-core/index.md). Cubre cómo crear y personalizar pipelines de nf-core desde cero. ### 1.2. El pipeline molkart diff --git a/docs/es/docs/nf4_science/imaging/04_config.md b/docs/es/docs/nf4_science/imaging/04_config.md index 41c1c92f82..57907825df 100644 --- a/docs/es/docs/nf4_science/imaging/04_config.md +++ b/docs/es/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Próximos pasos: - Completa la encuesta del curso para proporcionar retroalimentación - Revisa [Hello Nextflow](../../hello_nextflow/index.md) para aprender más sobre el desarrollo de workflows -- Explora [Hello nf-core](../../hello_nf-core/index.md) para profundizar en las herramientas de nf-core +- Explora [Build with nf-core](../../hello_nf-core/index.md) para profundizar en las herramientas de nf-core - Navega otros cursos en las [colecciones de entrenamiento](../../training_collections/index.md) diff --git a/docs/es/docs/nf4_science/rnaseq/next_steps.md b/docs/es/docs/nf4_science/rnaseq/next_steps.md index 8ac9c1d797..284bdf685f 100644 --- a/docs/es/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/es/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Ahora estás equipado para comenzar a aplicar Nextflow a workflows de análisis Aquí están nuestras principales sugerencias sobre qué hacer a continuación: - Aplica Nextflow a otros casos de uso de análisis científico con [Nextflow para Ciencia](../index.md) -- Comienza con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Comienza con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Explora características más avanzadas de Nextflow con las [Misiones Secundarias](../../side_quests/index.md) Finalmente, te recomendamos que eches un vistazo a [**Seqera Platform**](https://seqera.io/), una plataforma basada en la nube desarrollada por los creadores de Nextflow que facilita aún más el lanzamiento y gestión de tus workflows, así como gestionar tus datos y ejecutar análisis de forma interactiva en cualquier entorno. diff --git a/docs/es/docs/side_quests/dev_environment/index.md b/docs/es/docs/side_quests/dev_environment/index.md index 44b7e6ce9a..5411dcd491 100644 --- a/docs/es/docs/side_quests/dev_environment/index.md +++ b/docs/es/docs/side_quests/dev_environment/index.md @@ -624,7 +624,7 @@ No esperamos que recuerde todo, pero ahora que sabe que estas características e Aplique estas habilidades del IDE mientras trabaja en otros módulos de capacitación, por ejemplo: - **[nf-test](../nf_test/index.md)**: Cree suites de pruebas completas para sus workflows -- **[Hello nf-core](../../hello_nf-core/index.md)**: Construya pipelines de calidad de producción con estándares de la comunidad +- **[Build with nf-core](../../hello_nf-core/index.md)**: Construya pipelines de calidad de producción con estándares de la comunidad El verdadero poder de estas características del IDE emerge cuando trabaja en proyectos más grandes y complejos. Comience a incorporarlas en su flujo de trabajo gradualmente: en pocas sesiones, se volverán algo natural y transformarán la manera en que aborda el desarrollo con Nextflow. diff --git a/docs/es/docs/side_quests/metadata/index.md b/docs/es/docs/side_quests/metadata/index.md index 7f3e55769e..f703d06514 100644 --- a/docs/es/docs/side_quests/metadata/index.md +++ b/docs/es/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Hay dos enfoques complementarios para hacer los workflows más robustos ante met **1. Validación de entrada** La solución más confiable es validar la hoja de datos antes de que comience cualquier procesamiento, para que los problemas se detecten temprano con un mensaje de error claro en lugar de aparecer como un fallo críptico del proceso a mitad de la ejecución. -La capacitación [Hello nf-core](../../hello_nf-core/05_input_validation.md) cubre cómo agregar validación de entrada usando el plugin nf-schema. +La capacitación [Build with nf-core](../../hello_nf-core/05_input_validation.md) cubre cómo agregar validación de entrada usando el plugin nf-schema. **2. Entradas explícitas del proceso para valores requeridos** diff --git a/docs/es/docs/side_quests/plugin_development/next_steps.md b/docs/es/docs/side_quests/plugin_development/next_steps.md index a4404da6cd..730ecb7d7b 100644 --- a/docs/es/docs/side_quests/plugin_development/next_steps.md +++ b/docs/es/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Si desarrolla un plugin útil, considere compartirlo con la comunidad a través Si aún no lo ha hecho, consulte nuestros otros cursos de capacitación: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Conceptos fundamentales de Nextflow -- **[Hello nf-core](../../hello_nf-core/index.md)**: Pipelines de nf-core y mejores prácticas +- **[Build with nf-core](../../hello_nf-core/index.md)**: Pipelines de nf-core y mejores prácticas - **[Side Quests](../index.md)**: Análisis en profundidad de temas específicos diff --git a/docs/es/docs/training_collections/architects_toolkit_1.md b/docs/es/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 0aa25c42c3..0000000000 --- a/docs/es/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: The Architect's Toolkit I -hide: - - toc ---- - -# El Kit de Herramientas del Arquitecto I - -:material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Nuestras Colecciones de Capacitación proporcionan rutas de aprendizaje seleccionadas a través de nuestros materiales de capacitación avanzada (llamados [Side Quests](../side_quests/index.md)). Esta colección cubre cuatro temas esenciales que se utilizan frecuentemente en conjunto para construir workflows robustos y escalables. - -## Objetivos de aprendizaje - -Al finalizar esta colección, tendrás experiencia con: - -- **Arquitecturas de workflows modulares complejas** - Combinar múltiples workflows en pipelines cohesivos -- **Estrategias de pruebas integrales** - Asegurar que tus workflows sean confiables y mantenibles -- **Gestión de metadatos** - Manejar metadatos específicos de muestras a lo largo de tus workflows de manera efectiva -- **Procesamiento avanzado de datos** - Implementar patrones eficientes de división y agrupación de datos - -Estas habilidades te permitirán construir workflows de Nextflow robustos, escalables y mantenibles para aplicaciones del mundo real. - -## Audiencia y requisitos previos - -Esta colección está diseñada para usuarios que han completado la capacitación básica de Nextflow y desean profundizar en patrones avanzados de workflows, estrategias de pruebas y técnicas de manejo de datos y metadatos. - -**Requisitos previos** - -- Completar la capacitación [Hello Nextflow](../hello_nextflow/index.md) o experiencia equivalente -- Familiaridad básica con la sintaxis y conceptos de Nextflow -- Comprensión de patrones básicos de desarrollo de workflows -- Experiencia con herramientas de línea de comandos - -## Contenido de la colección - -Esta colección consta de cuatro Side Quests que cubren temas complementarios de ingeniería de workflows: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Arquitectura y composición de workflows complejos -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Estrategias de pruebas para workflows de Nextflow -3. **[Metadata](../side_quests/metadata/index.md)** - Manejo de metadatos para elementos en canales de Nextflow -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Patrones avanzados de procesamiento de datos - -Cada Side Quest es independiente y cubre conceptos autónomos, pero recomendamos completarlos en el orden listado arriba para una progresión lógica a través de los temas. - -## Cómo usar esta colección - -Primero, haz clic con el comando en el botón "Open in GitHub Codespaces" a continuación para iniciar el entorno de capacitación en una pestaña separada, luego continúa leyendo mientras carga. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Una vez que tu entorno esté en ejecución, trabaja a través de la colección de la siguiente manera: - -1. En esta pestaña: Navega al primer Side Quest listado arriba, que describe ejercicios de desarrollo paso a paso. -2. En tu pestaña de Codespaces: Trabaja a través de los ejercicios del Side Quest. -3. Cuando completes un Side Quest, regresa a esta página y navega al siguiente en la lista de arriba. -4. Cuando hayas completado la colección, haz clic en el botón a continuación para completar una encuesta muy breve. Tus comentarios nos permiten continuar mejorando los materiales de capacitación para todos. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -¿Listo para comenzar? ¡Empieza con el primer módulo de arriba! diff --git a/docs/es/docs/training_collections/index.md b/docs/es/docs/training_collections/index.md deleted file mode 100644 index 568cf1b38c..0000000000 --- a/docs/es/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Colecciones de Entrenamiento -hide: - - toc ---- - -# Colecciones de Entrenamiento - -:material-information-outline:{ .ai-translation-notice-icon } Traducción asistida por IA - [más información y sugerencias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Esta sección contiene colecciones curadas de módulos de entrenamiento llamados [Side Quests](../side_quests/index.md) que tienen como objetivo proporcionar una experiencia de aprendizaje integral alrededor de un tema o caso de uso particular. - -## Requisitos Previos - -Cada colección tiene requisitos previos específicos documentados en su página índice. Sin embargo, la mayoría de las colecciones asumen: - -- Experiencia con la línea de comandos -- Conceptos fundamentales de Nextflow y herramientas cubiertas en el curso de capacitación para principiantes [Hello Nextflow](../hello_nextflow/index.md) - -Para los requisitos técnicos y la configuración del entorno, consulte el mini-curso de [Configuración del Entorno](../envsetup/index.md). - -## Colecciones disponibles - -- [El Kit de Herramientas del Arquitecto I](./architects_toolkit_1.md) - Una colección de cuatro Side Quests que cubren patrones de arquitectura de flujos de trabajo para ensamblar pipelines complejos, implementar estrategias de prueba, gestionar la administración de metadatos, y agrupar y dividir datos. _Duración estimada: 4 horas en entrenamiento grupal._ - -## Sugerir nuevas colecciones - -Estamos trabajando activamente en el desarrollo de Side Quests y Colecciones adicionales. -Siéntase libre de sugerir temas que considere que tendría sentido cubrir en una Colección publicando en la [sección de Training](https://community.seqera.io/c/training/) del foro de la comunidad. diff --git a/docs/es/mkdocs.yml b/docs/es/mkdocs.yml index 9db86b9ae8..4c056f0083 100644 --- a/docs/es/mkdocs.yml +++ b/docs/es/mkdocs.yml @@ -14,3 +14,35 @@ extra: cómo usamos las cookies. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Entorno de Capacitación": "Configuración y Ayuda" + "Nextflow Run": "Usuarios" + "Hello Nextflow": "Desarrolladores" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow para Ciencia" + nf4_science/genomics/index.md: "Genómica" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Imaging" + side_quests/index.md: "Side Quests" + envsetup/index.md: "Entorno de Capacitación" + nav_child_title_overrides: + nextflow_run/index.md: "Resumen" + nfcore_run/index.md: "Resumen" + seqera_run/index.md: "Resumen" + hello_nextflow/index.md: "Resumen" + hello_nf-core/index.md: "Resumen" + nf4_science/index.md: "Resumen" + nf4_science/genomics/index.md: "Resumen" + nf4_science/rnaseq/index.md: "Resumen" + nf4_science/imaging/index.md: "Resumen" + side_quests/index.md: "Resumen" + nav_section_separators: + side_quests/dev_environment/index.md: "Herramientas y Trucos para Desarrolladores" + side_quests/working_with_files/index.md: "Inmersión en el Flujo de Datos" + side_quests/workflows_of_workflows/index.md: "Arquitectura Modular en Acción" + side_quests/nf_test/index.md: "El Universo Extendido de Nextflow" diff --git a/docs/fr/docs/hello_nextflow/next_steps.md b/docs/fr/docs/hello_nextflow/next_steps.md index 0ea662d14f..0ee3bd819c 100644 --- a/docs/fr/docs/hello_nextflow/next_steps.md +++ b/docs/fr/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Vous êtes maintenant équipé·e des connaissances fondamentales pour commencer Voici nos 3 principales suggestions pour ce qu'il faut faire ensuite : - Appliquer Nextflow à un cas d'utilisation d'analyse scientifique avec [Nextflow pour la science](../nf4_science/index.md) -- Démarrer avec nf-core avec [Hello nf-core](../hello_nf-core/index.md) +- Démarrer avec nf-core avec [Build with nf-core](../hello_nf-core/index.md) - Explorer des fonctionnalités Nextflow plus avancées avec les [Quêtes secondaires](../side_quests/index.md) Enfin, nous vous recommandons de jeter un œil à la [**Plateforme Seqera**](https://seqera.io/), une plateforme basée sur le cloud développée par les créateurs de Nextflow qui facilite encore plus le lancement et la gestion de vos workflows, ainsi que la gestion de vos données et l'exécution d'analyses interactives dans n'importe quel environnement. diff --git a/docs/fr/docs/hello_nf-core/01_run_demo.md b/docs/fr/docs/hello_nf-core/01_run_demo.md index a7f5fa2729..d8429847f0 100644 --- a/docs/fr/docs/hello_nf-core/01_run_demo.md +++ b/docs/fr/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Dans cette première partie de la formation Hello nf-core, nous vous montrons comment trouver et essayer un pipeline nf-core, configurer et personnaliser son exécution selon vos besoins, et comprendre comment la validation des entrées protège contre les erreurs courantes. +Dans cette première partie de la formation Build with nf-core, nous vous montrons comment trouver et essayer un pipeline nf-core, configurer et personnaliser son exécution selon vos besoins, et comprendre comment la validation des entrées protège contre les erreurs courantes. Nous allons utiliser un pipeline appelé nf-core/demo qui est maintenu par le projet nf-core dans le cadre de son inventaire de pipelines à des fins de démonstration et de formation. diff --git a/docs/fr/docs/hello_nf-core/02_rewrite_hello.md b/docs/fr/docs/hello_nf-core/02_rewrite_hello.md index dee267a65e..502174712f 100644 --- a/docs/fr/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/fr/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Dans cette deuxième partie du cours de formation Hello nf-core, nous vous montrons comment créer une version compatible nf-core du pipeline produit par le cours pour débutant·es [Hello Nextflow](../hello_nextflow/index.md). +Dans cette deuxième partie du cours de formation Build with nf-core, nous vous montrons comment créer une version compatible nf-core du pipeline produit par le cours pour débutant·es [Hello Nextflow](../hello_nextflow/index.md). Nous allons procéder en deux phases : d'abord, nous utiliserons les outils nf-core pour créer une structure de pipeline, puis nous grefferons le code du pipeline « régulier » existant sur cette structure. diff --git a/docs/fr/docs/hello_nf-core/03_use_module.md b/docs/fr/docs/hello_nf-core/03_use_module.md index 59a9390817..23498fe74d 100644 --- a/docs/fr/docs/hello_nf-core/03_use_module.md +++ b/docs/fr/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Dans cette troisième partie du cours de formation Hello nf-core, nous vous montrons comment trouver, installer et utiliser un module nf-core existant dans votre pipeline. +Dans cette troisième partie du cours de formation Build with nf-core, nous vous montrons comment trouver, installer et utiliser un module nf-core existant dans votre pipeline. L'un des grands avantages de travailler avec nf-core est la possibilité de tirer parti de modules pré-construits et testés du dépôt [nf-core/modules](https://github.com/nf-core/modules). Plutôt que d'écrire chaque processus à partir de zéro, vous pouvez installer et utiliser des modules maintenus par la communauté qui suivent les meilleures pratiques. diff --git a/docs/fr/docs/hello_nf-core/04_make_module.md b/docs/fr/docs/hello_nf-core/04_make_module.md index 167bd908e1..d1e6027ecd 100644 --- a/docs/fr/docs/hello_nf-core/04_make_module.md +++ b/docs/fr/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Dans cette quatrième partie du cours de formation Hello nf-core, nous vous montrons comment créer un module nf-core en appliquant les conventions clés qui rendent les modules portables et maintenables. +Dans cette quatrième partie du cours de formation Build with nf-core, nous vous montrons comment créer un module nf-core en appliquant les conventions clés qui rendent les modules portables et maintenables. Le projet nf-core fournit une commande (`nf-core modules create`) qui génère automatiquement des modèles de modules correctement structurés, similaire à ce que nous avons utilisé pour le workflow dans la Partie 2. Cependant, à des fins pédagogiques, nous allons commencer par le faire manuellement : transformer le module local `cowpy` dans votre pipeline `core-hello` en un module de style nf-core étape par étape. diff --git a/docs/fr/docs/hello_nf-core/05_input_validation.md b/docs/fr/docs/hello_nf-core/05_input_validation.md index 5459b103df..cf2b7704c2 100644 --- a/docs/fr/docs/hello_nf-core/05_input_validation.md +++ b/docs/fr/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Dans cette cinquième partie du cours de formation Hello nf-core, nous vous montrons comment utiliser le plugin nf-schema pour valider les entrées et les paramètres du pipeline. +Dans cette cinquième partie du cours de formation Build with nf-core, nous vous montrons comment utiliser le plugin nf-schema pour valider les entrées et les paramètres du pipeline. ??? info "Comment commencer à partir de cette section" @@ -808,6 +808,6 @@ Vous avez implémenté et testé à la fois la validation des paramètres et la ### Et ensuite ? -Vous avez terminé les cinq parties du cours de formation Hello nf-core ! +Vous avez terminé les cinq parties du cours de formation Build with nf-core ! Continuez vers le [Résumé](next_steps.md) pour réfléchir à ce que vous avez construit et appris. diff --git a/docs/fr/docs/hello_nf-core/index.md b/docs/fr/docs/hello_nf-core/index.md index 196e0a4fed..7424d4bb9b 100644 --- a/docs/fr/docs/hello_nf-core/index.md +++ b/docs/fr/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Domaine :** Les exercices sont tous indépendants du domaine scientifique, donc aucune connaissance scientifique préalable n'est requise." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core est une introduction pratique à l'utilisation des ressources et des bonnes pratiques nf-core.** +**Build with nf-core est une introduction pratique à l'utilisation des ressources et des bonnes pratiques nf-core.** ![logo nf-core](./img/nf-core-logo.png#only-light) ![logo nf-core](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/fr/docs/hello_nf-core/next_steps.md b/docs/fr/docs/hello_nf-core/next_steps.md index c646b5ce3c..04d1a06dc5 100644 --- a/docs/fr/docs/hello_nf-core/next_steps.md +++ b/docs/fr/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Félicitations pour avoir terminé le cours de formation Hello nf-core ! 🎉 +Félicitations pour avoir terminé le cours de formation Build with nf-core ! 🎉 diff --git a/docs/fr/docs/index.md b/docs/fr/docs/index.md index 2957ea37a9..e55a01434c 100644 --- a/docs/fr/docs/index.md +++ b/docs/fr/docs/index.md @@ -132,11 +132,11 @@ hide: Ces cours vous accompagnent des fondamentaux de Nextflow jusqu'aux bonnes pratiques nf-core. Comprenez comment et pourquoi la communauté nf-core développe des pipelines, et comment vous pouvez contribuer et réutiliser ces techniques. - ??? courses "**Hello nf-core :** Premiers pas avec nf-core" + ??? courses "**Build with nf-core :** Premiers pas avec nf-core" Pour les développeur·ses qui souhaitent apprendre à exécuter et développer des pipelines conformes à [nf-core](https://nf-co.re/). Le cours couvre la structure des pipelines nf-core avec suffisamment de détails pour permettre le développement de pipelines simples mais entièrement fonctionnels, suivant le modèle nf-core et les bonnes pratiques de développement, ainsi que l'utilisation des modules nf-core existants. - [Commencer la formation Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Commencer la formation Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Parcourir les Quêtes secondaires :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections :** Parcours d'apprentissage recommandés à travers les Quêtes secondaires" + ??? courses "**Learning Paths :** Parcours d'apprentissage recommandés à travers les Quêtes secondaires" - Les Training Collections combinent plusieurs Quêtes secondaires afin de fournir une expérience d'apprentissage complète autour d'un thème ou d'un cas d'usage particulier. + Les Learning Paths combinent plusieurs Quêtes secondaires afin de fournir une expérience d'apprentissage complète autour d'un thème ou d'un cas d'usage particulier. - [Parcourir les Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Parcourir les Learning Paths :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/fr/docs/nextflow_run/03_config.md b/docs/fr/docs/nextflow_run/03_config.md index 20dd58fb20..95788ea747 100644 --- a/docs/fr/docs/nextflow_run/03_config.md +++ b/docs/fr/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Vous savez tout ce que vous devez savoir pour commencer à exécuter et gérer d Cela conclut cette formation, mais si vous êtes impatient·e de continuer à apprendre, nous avons deux recommandations principales : - Si vous voulez approfondir le développement de vos propres pipelines, consultez [Hello Nextflow](../hello_nextflow/index.md), une formation pour débutants qui couvre la même progression générale que celle-ci mais va beaucoup plus en détail sur les channels et les opérateurs. -- Si vous souhaitez continuer à apprendre comment exécuter des pipelines Nextflow sans aller plus profondément dans le code, consultez la première partie de [Hello nf-core](../hello_nf-core/index.md), qui introduit les outils pour trouver et exécuter des pipelines du projet très populaire [nf-core](https://nf-co.re/). +- Si vous souhaitez continuer à apprendre comment exécuter des pipelines Nextflow sans aller plus profondément dans le code, consultez la première partie de [Build with nf-core](../hello_nf-core/index.md), qui introduit les outils pour trouver et exécuter des pipelines du projet très populaire [nf-core](https://nf-co.re/). Amusez-vous bien ! diff --git a/docs/fr/docs/nextflow_run/next_steps.md b/docs/fr/docs/nextflow_run/next_steps.md index d4c84fe4ee..99d8b98c4f 100644 --- a/docs/fr/docs/nextflow_run/next_steps.md +++ b/docs/fr/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Voici nos principales suggestions pour la suite : - Ne vous contentez pas d'exécuter Nextflow, écrivez-le ! Devenez un·e développeur·se Nextflow avec [Hello Nextflow](../hello_nextflow/index.md) - Appliquez Nextflow à un cas d'utilisation d'analyse scientifique avec [Nextflow for Science](../nf4_science/index.md) -- Commencez avec nf-core avec [Hello nf-core](../hello_nf-core/index.md) +- Commencez avec nf-core avec [Build with nf-core](../hello_nf-core/index.md) - Apprenez les techniques de dépannage avec le [Debugging Side Quest](../side_quests/debugging/index.md) Enfin, nous vous recommandons de jeter un œil à [**Seqera Platform**](https://seqera.io/), une plateforme basée sur le cloud développée par les créateurs de Nextflow qui facilite encore plus le lancement et la gestion de vos workflows, ainsi que la gestion de vos données et l'exécution d'analyses de manière interactive dans n'importe quel environnement. diff --git a/docs/fr/docs/nf4_science/_template/next_steps.md b/docs/fr/docs/nf4_science/_template/next_steps.md index d184f29039..3ea7795d27 100644 --- a/docs/fr/docs/nf4_science/_template/next_steps.md +++ b/docs/fr/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Vous êtes maintenant équipé·e pour commencer à appliquer Nextflow aux workf Voici nos principales suggestions pour la suite : - Appliquez Nextflow à d'autres cas d'usage d'analyse scientifique avec [Nextflow for Science](../index.md) -- Démarrez avec nf-core grâce à [Hello nf-core](../../hello_nf-core/index.md) +- Démarrez avec nf-core grâce à [Build with nf-core](../../hello_nf-core/index.md) - Explorez des fonctionnalités Nextflow plus avancées avec les [Quêtes secondaires](../../side_quests/index.md) Enfin, nous vous recommandons de consulter [**Seqera Platform**](https://seqera.io/), une plateforme cloud développée par les créateurs de Nextflow qui facilite encore davantage le lancement et la gestion de vos workflows, ainsi que la gestion de vos données et l'exécution d'analyses de manière interactive dans n'importe quel environnement. diff --git a/docs/fr/docs/nf4_science/genomics/next_steps.md b/docs/fr/docs/nf4_science/genomics/next_steps.md index 747ec40d82..57a90b4f18 100644 --- a/docs/fr/docs/nf4_science/genomics/next_steps.md +++ b/docs/fr/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Vous êtes maintenant équipé·e pour commencer à appliquer Nextflow aux workf Voici nos principales suggestions pour la suite : - Appliquez Nextflow à d'autres cas d'usage d'analyse scientifique avec [Nextflow for Science](../index.md) -- Démarrez avec nf-core avec [Hello nf-core](../../hello_nf-core/index.md) +- Démarrez avec nf-core avec [Build with nf-core](../../hello_nf-core/index.md) - Explorez des fonctionnalités Nextflow plus avancées avec les [Quêtes secondaires](../../side_quests/index.md) Enfin, nous vous recommandons de découvrir [**Seqera Platform**](https://seqera.io/), une plateforme cloud développée par les créateurs de Nextflow qui facilite encore davantage le lancement et la gestion de vos workflows, ainsi que la gestion de vos données et l'exécution d'analyses de manière interactive dans n'importe quel environnement. diff --git a/docs/fr/docs/nf4_science/imaging/02_run_molkart.md b/docs/fr/docs/nf4_science/imaging/02_run_molkart.md index d2a29de391..1d92e6fbc6 100644 --- a/docs/fr/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/fr/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Caractéristiques clés des pipelines nf-core : !!! tip "Vous voulez en savoir plus sur nf-core ?" - Pour une introduction approfondie au développement de pipelines nf-core, consultez le cours de formation [Hello nf-core](../../hello_nf-core/index.md). + Pour une introduction approfondie au développement de pipelines nf-core, consultez le cours de formation [Build with nf-core](../../hello_nf-core/index.md). Il couvre comment créer et personnaliser des pipelines nf-core à partir de zéro. ### 1.2. Le pipeline molkart diff --git a/docs/fr/docs/nf4_science/imaging/04_config.md b/docs/fr/docs/nf4_science/imaging/04_config.md index 90477e6761..1e6301c4cb 100644 --- a/docs/fr/docs/nf4_science/imaging/04_config.md +++ b/docs/fr/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Prochaines étapes : - Remplissez le questionnaire du cours pour fournir des commentaires - Consultez [Hello Nextflow](../../hello_nextflow/index.md) pour en savoir plus sur le développement de workflows -- Explorez [Hello nf-core](../../hello_nf-core/index.md) pour approfondir les outils nf-core +- Explorez [Build with nf-core](../../hello_nf-core/index.md) pour approfondir les outils nf-core - Parcourez d'autres cours dans les [collections de formation](../../training_collections/index.md) diff --git a/docs/fr/docs/nf4_science/rnaseq/next_steps.md b/docs/fr/docs/nf4_science/rnaseq/next_steps.md index ad1f4e7282..cdbd40b7a8 100644 --- a/docs/fr/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/fr/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Vous êtes maintenant équipé·e pour commencer à appliquer Nextflow aux workf Voici nos principales suggestions pour la suite : - Appliquer Nextflow à d'autres cas d'usage d'analyse scientifique avec [Nextflow for Science](../index.md) -- Démarrer avec nf-core avec [Hello nf-core](../../hello_nf-core/index.md) +- Démarrer avec nf-core avec [Build with nf-core](../../hello_nf-core/index.md) - Explorer des fonctionnalités Nextflow plus avancées avec les [Quêtes secondaires](../../side_quests/index.md) Enfin, nous vous recommandons de découvrir [**Seqera Platform**](https://seqera.io/), une plateforme cloud développée par les créateurs de Nextflow qui facilite encore davantage le lancement et la gestion de vos workflows, ainsi que la gestion de vos données et l'exécution d'analyses de manière interactive dans n'importe quel environnement. diff --git a/docs/fr/docs/side_quests/dev_environment/index.md b/docs/fr/docs/side_quests/dev_environment/index.md index 3b4170b192..3a0d70d3b4 100644 --- a/docs/fr/docs/side_quests/dev_environment/index.md +++ b/docs/fr/docs/side_quests/dev_environment/index.md @@ -633,7 +633,7 @@ Nous ne nous attendons pas à ce que vous vous souveniez de tout, mais maintenan Appliquez ces compétences IDE en travaillant sur d'autres modules de formation, par exemple : - **[nf-test](../nf_test/index.md)** : Créez des suites de tests complètes pour vos workflows -- **[Hello nf-core](../../hello_nf-core/index.md)** : Construisez des pipelines de qualité production avec les standards de la communauté +- **[Build with nf-core](../../hello_nf-core/index.md)** : Construisez des pipelines de qualité production avec les standards de la communauté La véritable puissance de ces fonctionnalités IDE se révèle lorsque vous travaillez sur des projets plus grands et plus complexes. Commencez à les intégrer progressivement dans votre workflow — en quelques sessions, elles deviendront une seconde nature et transformeront votre approche du développement Nextflow. diff --git a/docs/fr/docs/side_quests/metadata/index.md b/docs/fr/docs/side_quests/metadata/index.md index 6557b4f3f7..9db4ac8b2a 100644 --- a/docs/fr/docs/side_quests/metadata/index.md +++ b/docs/fr/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Il existe deux approches complémentaires pour rendre les workflows plus robuste **1. Validation des entrées** La solution la plus fiable est de valider la feuille de données avant tout traitement, afin que les problèmes soient détectés tôt avec un message d'erreur clair plutôt que de se manifester comme un échec cryptique de processus en cours d'exécution. -La formation [Hello nf-core](../../hello_nf-core/05_input_validation.md) explique comment ajouter une validation des entrées en utilisant le plugin nf-schema. +La formation [Build with nf-core](../../hello_nf-core/05_input_validation.md) explique comment ajouter une validation des entrées en utilisant le plugin nf-schema. **2. Entrées de processus explicites pour les valeurs requises** diff --git a/docs/fr/docs/side_quests/plugin_development/next_steps.md b/docs/fr/docs/side_quests/plugin_development/next_steps.md index 6d41a2f6f8..577dec3f70 100644 --- a/docs/fr/docs/side_quests/plugin_development/next_steps.md +++ b/docs/fr/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Si vous développez un plugin utile, envisagez de le partager avec la communaut Si vous ne l'avez pas encore fait, découvrez nos autres cours de formation : - **[Hello Nextflow](../../hello_nextflow/index.md)** : Les concepts fondamentaux de Nextflow -- **[Hello nf-core](../../hello_nf-core/index.md)** : Les pipelines nf-core et les bonnes pratiques +- **[Build with nf-core](../../hello_nf-core/index.md)** : Les pipelines nf-core et les bonnes pratiques - **[Quêtes secondaires](../index.md)** : Des approfondissements sur des sujets spécifiques diff --git a/docs/fr/docs/training_collections/architects_toolkit_1.md b/docs/fr/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 46321efe4f..0000000000 --- a/docs/fr/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: La Boîte à Outils de l'Architecte I -hide: - - toc ---- - -# La Boîte à Outils de l'Architecte I - -:material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Nos Collections de Formation proposent des parcours d'apprentissage organisés à travers nos supports de formation avancés (appelés [Side Quests](../side_quests/index.md)). Cette collection couvre quatre sujets essentiels qui sont fréquemment utilisés ensemble pour construire des workflows robustes et évolutifs. - -## Objectifs pédagogiques - -À la fin de cette collection, vous aurez acquis de l'expérience avec : - -- **Les architectures de workflows modulaires complexes** - Combiner plusieurs workflows en pipelines cohérents -- **Les stratégies de test complètes** - Garantir que vos workflows sont fiables et maintenables -- **La gestion des métadonnées** - Gérer efficacement les métadonnées spécifiques aux échantillons tout au long de vos workflows -- **Le traitement avancé des données** - Implémenter des modèles efficaces de division et de regroupement des données - -Ces compétences vous permettront de construire des workflows Nextflow robustes, évolutifs et maintenables pour des applications réelles. - -## Public et prérequis - -Cette collection est conçue pour les utilisateur·trices qui ont terminé la formation Nextflow de base et souhaitent approfondir les modèles de workflows avancés, les stratégies de test, et les techniques de gestion des données et métadonnées. - -**Prérequis** - -- Avoir terminé la formation [Hello Nextflow](../hello_nextflow/index.md) ou posséder une expérience équivalente -- Connaissance de base de la syntaxe et des concepts Nextflow -- Compréhension des modèles de développement de workflows de base -- Expérience avec les outils en ligne de commande - -## Contenu de la collection - -Cette collection se compose de quatre Side Quests qui couvrent des sujets complémentaires d'ingénierie de workflows : - -1. **[Workflows de Workflows](../side_quests/workflows_of_workflows/index.md)** - Architecture et composition de workflows complexes -2. **[Tests avec nf-test](../side_quests/nf_test/index.md)** - Stratégies de test pour les workflows Nextflow -3. **[Métadonnées](../side_quests/metadata/index.md)** - Gestion des métadonnées pour les éléments dans les canaux Nextflow -4. **[Division et Regroupement](../side_quests/splitting_and_grouping/index.md)** - Modèles avancés de traitement des données - -Chaque Side Quest est autonome et couvre des concepts indépendants, mais nous recommandons de les compléter dans l'ordre listé ci-dessus pour une progression logique à travers les sujets. - -## Comment utiliser cette collection - -D'abord, faites Ctrl+clic (ou Cmd+clic) sur le bouton « Open in GitHub Codespaces » ci-dessous pour lancer l'environnement de formation dans un onglet séparé, puis continuez à lire pendant son chargement. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Une fois votre environnement en cours d'exécution, parcourez la collection comme suit : - -1. Dans cet onglet : Naviguez vers le premier Side Quest listé ci-dessus, qui décrit des exercices de développement étape par étape. -2. Dans votre onglet Codespaces : Réalisez les exercices du Side Quest. -3. Lorsque vous terminez un Side Quest, revenez sur cette page et naviguez vers le suivant dans la liste ci-dessus. -4. Lorsque vous avez terminé la collection, cliquez sur le bouton ci-dessous pour remplir un très court questionnaire. Vos retours nous permettent de continuer à améliorer les supports de formation pour tous. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Prêt·e à commencer ? Démarrez avec le premier module ci-dessus ! diff --git a/docs/fr/docs/training_collections/index.md b/docs/fr/docs/training_collections/index.md deleted file mode 100644 index 3cfc7e46b3..0000000000 --- a/docs/fr/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Training Collections -hide: - - toc ---- - -# Collections de Formation - -:material-information-outline:{ .ai-translation-notice-icon } Traduction assistée par IA - [en savoir plus et suggérer des améliorations](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Cette section contient des collections organisées de modules de formation appelés [Side Quests](../side_quests/index.md) qui visent à fournir une expérience d'apprentissage complète autour d'un thème ou d'un cas d'usage particulier. - -## Prérequis - -Chaque collection a des prérequis spécifiques documentés sur sa page d'index. Cependant, la plupart des collections supposent : - -- Une expérience avec la ligne de commande -- Les concepts fondamentaux de Nextflow et les outils couverts dans le cours de formation pour débutants [Hello Nextflow](../hello_nextflow/index.md) - -Pour les exigences techniques et la configuration de l'environnement, consultez le mini-cours [Configuration de l'Environnement](../envsetup/index.md). - -## Collections disponibles - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - Une collection de quatre Side Quests couvrant les modèles d'architecture de workflow pour assembler des pipelines complexes, mettre en œuvre des stratégies de test, gérer les métadonnées et regrouper et diviser les données. _Durée estimée : 4 heures en formation de groupe._ - -## Suggérer de nouvelles collections - -Nous travaillons activement au développement de Side Quests et Collections supplémentaires. -N'hésitez pas à suggérer des sujets qui, selon vous, mériteraient d'être couverts dans une Collection en publiant dans la [section Formation](https://community.seqera.io/c/training/) du forum communautaire. diff --git a/docs/fr/mkdocs.yml b/docs/fr/mkdocs.yml index 36b505dcb9..2172884fda 100644 --- a/docs/fr/mkdocs.yml +++ b/docs/fr/mkdocs.yml @@ -14,3 +14,35 @@ extra: notre utilisation des cookies. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Environnement de Formation": "Configuration et Aide" + "Nextflow Run": "Utilisateur·rice·s" + "Hello Nextflow": "Développeur·euse·s" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow pour la Science" + nf4_science/genomics/index.md: "Génomique" + nf4_science/rnaseq/index.md: "ARNseq" + nf4_science/imaging/index.md: "Imagerie" + side_quests/index.md: "Side Quests" + envsetup/index.md: "Environnement de Formation" + nav_child_title_overrides: + nextflow_run/index.md: "Aperçu" + nfcore_run/index.md: "Aperçu" + seqera_run/index.md: "Aperçu" + hello_nextflow/index.md: "Aperçu" + hello_nf-core/index.md: "Aperçu" + nf4_science/index.md: "Aperçu" + nf4_science/genomics/index.md: "Aperçu" + nf4_science/rnaseq/index.md: "Aperçu" + nf4_science/imaging/index.md: "Aperçu" + side_quests/index.md: "Aperçu" + nav_section_separators: + side_quests/dev_environment/index.md: "Outils et Astuces pour Développeurs" + side_quests/working_with_files/index.md: "Plongée dans le Flux de Données" + side_quests/workflows_of_workflows/index.md: "L'Architecture Modulaire en Action" + side_quests/nf_test/index.md: "L'Univers Étendu de Nextflow" diff --git a/docs/hi/docs/hello_nextflow/next_steps.md b/docs/hi/docs/hello_nextflow/next_steps.md index 5fb8cccba7..e933d434e1 100644 --- a/docs/hi/docs/hello_nextflow/next_steps.md +++ b/docs/hi/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Workflow configuration flexible, reproducible तरीके से inputs औ यहाँ आगे क्या करना है इसके लिए हमारे top 3 suggestions हैं: - [Nextflow for Science](../nf4_science/index.md) के साथ scientific analysis use case पर Nextflow apply करें -- [Hello nf-core](../hello_nf-core/index.md) के साथ nf-core शुरू करें +- [Build with nf-core](../hello_nf-core/index.md) के साथ nf-core शुरू करें - [Side Quests](../side_quests/index.md) के साथ more advanced Nextflow features explore करें Finally, हम recommend करते हैं कि तुम [**Seqera Platform**](https://seqera.io/) पर नज़र डालो, Nextflow के creators द्वारा develop किया गया एक cloud-based platform जो तुम्हारे workflows launch और manage करना, साथ ही तुम्हारा data manage करना और किसी भी environment में interactively analyses run करना और भी आसान बनाता है। diff --git a/docs/hi/docs/hello_nf-core/01_run_demo.md b/docs/hi/docs/hello_nf-core/01_run_demo.md index 563042a72c..b4456472df 100644 --- a/docs/hi/docs/hello_nf-core/01_run_demo.md +++ b/docs/hi/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण पाठ्यक्रम के इस पहले भाग में, हम तुम्हें दिखाएंगे कि एक nf-core pipeline कैसे खोजें और आज़माएं, अपनी ज़रूरतों के अनुसार इसके execution को कैसे configure और customize करें, और यह समझें कि input validation सामान्य त्रुटियों से कैसे बचाता है। +Build with nf-core प्रशिक्षण पाठ्यक्रम के इस पहले भाग में, हम तुम्हें दिखाएंगे कि एक nf-core pipeline कैसे खोजें और आज़माएं, अपनी ज़रूरतों के अनुसार इसके execution को कैसे configure और customize करें, और यह समझें कि input validation सामान्य त्रुटियों से कैसे बचाता है। हम nf-core/demo नामक एक pipeline का उपयोग करने जा रहे हैं जिसे nf-core प्रोजेक्ट अपने pipelines की सूची के हिस्से के रूप में demonstration और प्रशिक्षण उद्देश्यों के लिए बनाए रखता है। diff --git a/docs/hi/docs/hello_nf-core/02_rewrite_hello.md b/docs/hi/docs/hello_nf-core/02_rewrite_hello.md index c7866e8c18..b0f3a27e07 100644 --- a/docs/hi/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/hi/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण पाठ्यक्रम के इस दूसरे भाग में, हम तुम्हें दिखाते हैं कि [Hello Nextflow](../hello_nextflow/index.md) शुरुआती पाठ्यक्रम द्वारा तैयार की गई pipeline का nf-core संगत संस्करण कैसे बनाया जाए। +Build with nf-core प्रशिक्षण पाठ्यक्रम के इस दूसरे भाग में, हम तुम्हें दिखाते हैं कि [Hello Nextflow](../hello_nextflow/index.md) शुरुआती पाठ्यक्रम द्वारा तैयार की गई pipeline का nf-core संगत संस्करण कैसे बनाया जाए। हम यह दो चरणों में करेंगे: पहले, हम nf-core tooling का उपयोग करके एक pipeline scaffold बनाएंगे, फिर मौजूदा 'नियमित' pipeline कोड को scaffold पर graft करेंगे। diff --git a/docs/hi/docs/hello_nf-core/03_use_module.md b/docs/hi/docs/hello_nf-core/03_use_module.md index 14a337a3ce..bf56f376bf 100644 --- a/docs/hi/docs/hello_nf-core/03_use_module.md +++ b/docs/hi/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण पाठ्यक्रम के इस तीसरे भाग में, हम आपको दिखाते हैं कि अपनी pipeline में मौजूदा nf-core मॉड्यूल को कैसे खोजें, इंस्टॉल करें, और उपयोग करें। +Build with nf-core प्रशिक्षण पाठ्यक्रम के इस तीसरे भाग में, हम आपको दिखाते हैं कि अपनी pipeline में मौजूदा nf-core मॉड्यूल को कैसे खोजें, इंस्टॉल करें, और उपयोग करें। nf-core के साथ काम करने के महान लाभों में से एक [nf-core/modules](https://github.com/nf-core/modules) रिपॉजिटरी से पूर्व-निर्मित, परीक्षित मॉड्यूल का लाभ उठाने की क्षमता है। हर process को शुरू से लिखने के बजाय, आप community द्वारा maintain किए गए मॉड्यूल इंस्टॉल और उपयोग कर सकते हैं जो सर्वोत्तम प्रथाओं का पालन करते हैं। diff --git a/docs/hi/docs/hello_nf-core/04_make_module.md b/docs/hi/docs/hello_nf-core/04_make_module.md index 0bb92b1ebf..9a01262772 100644 --- a/docs/hi/docs/hello_nf-core/04_make_module.md +++ b/docs/hi/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण पाठ्यक्रम के इस चौथे भाग में, हम आपको दिखाएंगे कि मुख्य परंपराओं को लागू करके एक nf-core मॉड्यूल कैसे बनाया जाए जो मॉड्यूल को पोर्टेबल और मेंटेनेबल बनाती हैं। +Build with nf-core प्रशिक्षण पाठ्यक्रम के इस चौथे भाग में, हम आपको दिखाएंगे कि मुख्य परंपराओं को लागू करके एक nf-core मॉड्यूल कैसे बनाया जाए जो मॉड्यूल को पोर्टेबल और मेंटेनेबल बनाती हैं। nf-core प्रोजेक्ट एक कमांड (`nf-core modules create`) प्रदान करता है जो स्वचालित रूप से उचित रूप से संरचित मॉड्यूल टेम्पलेट जेनरेट करता है, जैसा कि हमने भाग 2 में workflow के लिए उपयोग किया था। हालाँकि, शिक्षण उद्देश्यों के लिए, हम मैन्युअल रूप से शुरू करने जा रहे हैं: आपके `core-hello` पाइपलाइन में स्थानीय `cowpy` मॉड्यूल को चरण-दर-चरण nf-core-शैली के मॉड्यूल में बदलना। diff --git a/docs/hi/docs/hello_nf-core/05_input_validation.md b/docs/hi/docs/hello_nf-core/05_input_validation.md index e62e4ba0e3..b843ab4c3c 100644 --- a/docs/hi/docs/hello_nf-core/05_input_validation.md +++ b/docs/hi/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण कोर्स के इस पांचवें भाग में, हम आपको दिखाते हैं कि pipeline इनपुट और पैरामीटर को सत्यापित करने के लिए nf-schema plugin का उपयोग कैसे करें। +Build with nf-core प्रशिक्षण कोर्स के इस पांचवें भाग में, हम आपको दिखाते हैं कि pipeline इनपुट और पैरामीटर को सत्यापित करने के लिए nf-schema plugin का उपयोग कैसे करें। ??? info "इस खंड से कैसे शुरू करें" @@ -808,6 +808,6 @@ nextflow run . --input assets/invalid_greetings.csv --outdir test-results -profi ### आगे क्या है? -आपने Hello nf-core प्रशिक्षण कोर्स के सभी पांच भाग पूरे कर लिए हैं! +आपने Build with nf-core प्रशिक्षण कोर्स के सभी पांच भाग पूरे कर लिए हैं! आपने क्या बनाया है और सीखा है, इस पर विचार करने के लिए [सारांश](next_steps.md) पर जारी रखें। diff --git a/docs/hi/docs/hello_nf-core/index.md b/docs/hi/docs/hello_nf-core/index.md index b0b515efe7..4030481b29 100644 --- a/docs/hi/docs/hello_nf-core/index.md +++ b/docs/hi/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**डोमेन:** सभी अभ्यास डोमेन-अज्ञेयवादी हैं, इसलिए किसी पूर्व वैज्ञानिक ज्ञान की आवश्यकता नहीं है।" --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core, nf-core संसाधनों और सर्वोत्तम प्रथाओं का उपयोग करने के लिए एक व्यावहारिक परिचय है।** +**Build with nf-core, nf-core संसाधनों और सर्वोत्तम प्रथाओं का उपयोग करने के लिए एक व्यावहारिक परिचय है।** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/hi/docs/hello_nf-core/next_steps.md b/docs/hi/docs/hello_nf-core/next_steps.md index 850e22a98b..ef3cb30421 100644 --- a/docs/hi/docs/hello_nf-core/next_steps.md +++ b/docs/hi/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core प्रशिक्षण पाठ्यक्रम पूरा करने पर बधाई! 🎉 +Build with nf-core प्रशिक्षण पाठ्यक्रम पूरा करने पर बधाई! 🎉 diff --git a/docs/hi/docs/index.md b/docs/hi/docs/index.md index 4617f0e8a3..0d9e2c16ba 100644 --- a/docs/hi/docs/index.md +++ b/docs/hi/docs/index.md @@ -132,11 +132,11 @@ hide: ये कोर्स तुम्हें Nextflow की बुनियादी बातों से nf-core की सर्वोत्तम प्रथाओं तक ले जाते हैं। समझो कि nf-core कम्युनिटी पाइपलाइन कैसे और क्यों बनाती है, और तुम इन तकनीकों में कैसे योगदान और पुनः उपयोग कर सकते हो। - ??? courses "**Hello nf-core:** nf-core के साथ शुरुआत करो" + ??? courses "**Build with nf-core:** nf-core के साथ शुरुआत करो" उन डेवलपर्स के लिए जो [nf-core](https://nf-co.re/) अनुपालक पाइपलाइन चलाना और विकसित करना सीखना चाहते हैं। यह कोर्स nf-core पाइपलाइन की संरचना को इतने विस्तार से कवर करता है कि nf-core टेम्पलेट और विकास की सर्वोत्तम प्रथाओं का पालन करने वाली सरल लेकिन पूरी तरह कार्यात्मक पाइपलाइन विकसित करना संभव हो सके, साथ ही मौजूदा nf-core मॉड्यूल का उपयोग भी। - [Hello nf-core प्रशिक्षण शुरू करो :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Build with nf-core प्रशिक्षण शुरू करो :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Side Quests देखो :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Side Quests के माध्यम से अनुशंसित सीखने के रास्ते" + ??? courses "**Learning Paths:** Side Quests के माध्यम से अनुशंसित सीखने के रास्ते" - Training Collections किसी विशेष थीम या उपयोग के मामले के आसपास एक व्यापक सीखने का अनुभव प्रदान करने के लिए कई Side Quests को जोड़ती हैं। + Learning Paths किसी विशेष थीम या उपयोग के मामले के आसपास एक व्यापक सीखने का अनुभव प्रदान करने के लिए कई Side Quests को जोड़ती हैं। - [Training Collections देखो :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Learning Paths देखो :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/hi/docs/nextflow_run/03_config.md b/docs/hi/docs/nextflow_run/03_config.md index 985176e6ff..c7e0694f1e 100644 --- a/docs/hi/docs/nextflow_run/03_config.md +++ b/docs/hi/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Exact versions specify करना reproducibility के लिए essential यह इस course को conclude करता है, लेकिन यदि तुम सीखना जारी रखने के लिए eager हो, हमारे पास दो main recommendations हैं: - यदि तुम अपनी own pipelines develop करने में deeper dig करना चाहते हो, [Hello Nextflow](../hello_nextflow/index.md) देखो, beginners के लिए एक course जो इस वाले जैसी ही general progression cover करता है लेकिन channels और operators के बारे में बहुत अधिक detail में जाता है। -- यदि तुम code में deeper जाए बिना Nextflow pipelines run करना सीखना जारी रखना चाहते हो, [Hello nf-core](../hello_nf-core/index.md) के first part को देखो, जो hugely popular [nf-core](https://nf-co.re/) project से pipelines खोजने और run करने के लिए tooling introduce करता है। +- यदि तुम code में deeper जाए बिना Nextflow pipelines run करना सीखना जारी रखना चाहते हो, [Build with nf-core](../hello_nf-core/index.md) के first part को देखो, जो hugely popular [nf-core](https://nf-co.re/) project से pipelines खोजने और run करने के लिए tooling introduce करता है। मज़े करो! diff --git a/docs/hi/docs/nextflow_run/next_steps.md b/docs/hi/docs/nextflow_run/next_steps.md index 28d71364b8..8e16947b64 100644 --- a/docs/hi/docs/nextflow_run/next_steps.md +++ b/docs/hi/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Workflow configuration flexible, reproducible तरीके से inputs औ - बस Nextflow run मत करो, इसे लिखो! [Hello Nextflow](../hello_nextflow/index.md) के साथ Nextflow developer बनो - [Nextflow for Science](../nf4_science/index.md) के साथ scientific analysis use case पर Nextflow apply करो -- [Hello nf-core](../hello_nf-core/index.md) के साथ nf-core के साथ शुरू करो +- [Build with nf-core](../hello_nf-core/index.md) के साथ nf-core के साथ शुरू करो - [Debugging Side Quest](../side_quests/debugging/index.md) के साथ troubleshooting techniques सीखो अंत में, हम recommend करते हैं कि तुम [**Seqera Platform**](https://seqera.io/) पर एक नज़र डालो, Nextflow के creators द्वारा developed एक cloud-based platform जो तुम्हारी workflows launch और manage करना और भी आसान बनाता है, साथ ही तुम्हारे data manage करना और किसी भी environment में interactively analyses run करना। diff --git a/docs/hi/docs/nf4_science/_template/next_steps.md b/docs/hi/docs/nf4_science/_template/next_steps.md index 083aca781d..178ae532e8 100644 --- a/docs/hi/docs/nf4_science/_template/next_steps.md +++ b/docs/hi/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Nextflow for {DOMAIN} प्रशिक्षण कोर्स पूरा यहाँ हमारे top सुझाव हैं कि आगे क्या करें: - [Nextflow for Science](../index.md) के साथ अन्य scientific analysis use cases पर Nextflow apply करें -- [Hello nf-core](../../hello_nf-core/index.md) के साथ nf-core शुरू करें +- [Build with nf-core](../../hello_nf-core/index.md) के साथ nf-core शुरू करें - [Side Quests](../../side_quests/index.md) के साथ अधिक advanced Nextflow features explore करें अंत में, हम recommend करते हैं कि तुम [**Seqera Platform**](https://seqera.io/) पर एक नज़र डालो, जो Nextflow के creators द्वारा विकसित एक cloud-based platform है जो तुम्हारी workflows को launch और manage करना, साथ ही तुम्हारे data को manage करना और किसी भी environment में interactively analyses चलाना और भी आसान बनाता है। diff --git a/docs/hi/docs/nf4_science/genomics/next_steps.md b/docs/hi/docs/nf4_science/genomics/next_steps.md index 7c5fbe6996..4d41ede8ec 100644 --- a/docs/hi/docs/nf4_science/genomics/next_steps.md +++ b/docs/hi/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Nextflow for Genomics प्रशिक्षण कोर्स पूरा यहाँ हमारे शीर्ष सुझाव हैं कि आगे क्या करें: - अन्य scientific analysis use cases पर Nextflow लागू करें [Nextflow for Science](../index.md) के साथ -- nf-core के साथ शुरुआत करें [Hello nf-core](../../hello_nf-core/index.md) के साथ +- nf-core के साथ शुरुआत करें [Build with nf-core](../../hello_nf-core/index.md) के साथ - अधिक advanced Nextflow features का पता लगाएं [Side Quests](../../side_quests/index.md) के साथ अंत में, हम recommend करते हैं कि तुम [**Seqera Platform**](https://seqera.io/) पर एक नज़र डालो, जो Nextflow के creators द्वारा विकसित एक cloud-based platform है जो तुम्हारे workflows को launch और manage करना, साथ ही तुम्हारे data को manage करना और किसी भी environment में interactively analyses चलाना और भी आसान बनाता है। diff --git a/docs/hi/docs/nf4_science/imaging/02_run_molkart.md b/docs/hi/docs/nf4_science/imaging/02_run_molkart.md index dc84920d72..a33eed9b3a 100644 --- a/docs/hi/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/hi/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ nf-core पाइपलाइनों की मुख्य विशेषत !!! tip "nf-core के बारे में अधिक जानना चाहते हैं?" - nf-core पाइपलाइन विकास के गहन परिचय के लिए, [Hello nf-core](../../hello_nf-core/index.md) प्रशिक्षण पाठ्यक्रम देखें। + nf-core पाइपलाइन विकास के गहन परिचय के लिए, [Build with nf-core](../../hello_nf-core/index.md) प्रशिक्षण पाठ्यक्रम देखें। यह शुरुआत से nf-core पाइपलाइनों को बनाने और कस्टमाइज़ करने को कवर करता है। ### 1.2. molkart पाइपलाइन diff --git a/docs/hi/docs/nf4_science/imaging/04_config.md b/docs/hi/docs/nf4_science/imaging/04_config.md index 79b814c8a5..89617b136f 100644 --- a/docs/hi/docs/nf4_science/imaging/04_config.md +++ b/docs/hi/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Nextflow for Bioimaging course पूरा करने के लिए बध - Feedback प्रदान करने के लिए course survey भरें - Workflows develop करने के बारे में अधिक जानने के लिए [Hello Nextflow](../../hello_nextflow/index.md) देखें -- nf-core tooling में गहराई से जाने के लिए [Hello nf-core](../../hello_nf-core/index.md) explore करें +- nf-core tooling में गहराई से जाने के लिए [Build with nf-core](../../hello_nf-core/index.md) explore करें - [Training collections](../../training_collections/index.md) में अन्य courses देखें diff --git a/docs/hi/docs/nf4_science/rnaseq/next_steps.md b/docs/hi/docs/nf4_science/rnaseq/next_steps.md index 3107fdd39f..cc8c1ff5ea 100644 --- a/docs/hi/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/hi/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Nextflow for RNAseq प्रशिक्षण कोर्स पूरा क यहां हमारी शीर्ष सिफारिशें हैं कि आगे क्या करना है: - [Nextflow for Science](../index.md) के साथ अन्य वैज्ञानिक विश्लेषण उपयोग मामलों में Nextflow लागू करें -- [Hello nf-core](../../hello_nf-core/index.md) के साथ nf-core की शुरुआत करें +- [Build with nf-core](../../hello_nf-core/index.md) के साथ nf-core की शुरुआत करें - [Side Quests](../../side_quests/index.md) के साथ अधिक उन्नत Nextflow सुविधाओं का अन्वेषण करें अंत में, हम अनुशंसा करते हैं कि तुम [**Seqera Platform**](https://seqera.io/) पर एक नज़र डालो, जो Nextflow के निर्माताओं द्वारा विकसित एक क्लाउड-आधारित प्लेटफ़ॉर्म है जो तुम्हारे workflows को लॉन्च और प्रबंधित करना, साथ ही तुम्हारे डेटा को प्रबंधित करना और किसी भी वातावरण में इंटरैक्टिव रूप से विश्लेषण चलाना और भी आसान बनाता है। diff --git a/docs/hi/docs/side_quests/dev_environment/index.md b/docs/hi/docs/side_quests/dev_environment/index.md index e75515519c..eac9a31df6 100644 --- a/docs/hi/docs/side_quests/dev_environment/index.md +++ b/docs/hi/docs/side_quests/dev_environment/index.md @@ -620,7 +620,7 @@ nextflow run basic_workflow.nf --input data/sample_data.csv --output_dir results इन IDE कौशलों को अन्य प्रशिक्षण मॉड्यूल के माध्यम से काम करते समय लागू करो, उदाहरण के लिए: - **[nf-test](../nf_test/index.md)**: अपने वर्कफ़्लो के लिए व्यापक test suites बनाओ -- **[Hello nf-core](../../hello_nf-core/index.md)**: community standards के साथ production-quality पाइपलाइन बनाओ +- **[Build with nf-core](../../hello_nf-core/index.md)**: community standards के साथ production-quality पाइपलाइन बनाओ इन IDE फ़ीचर्स की वास्तविक शक्ति तब उभरती है जब तुम बड़े, अधिक जटिल प्रोजेक्ट पर काम करते हो। इन्हें धीरे-धीरे अपने वर्कफ़्लो में शामिल करना शुरू करो - कुछ सत्रों के भीतर, ये स्वाभाविक हो जाएंगे और Nextflow डेवलपमेंट के प्रति तुम्हारे दृष्टिकोण को बदल देंगे। diff --git a/docs/hi/docs/side_quests/metadata/index.md b/docs/hi/docs/side_quests/metadata/index.md index 59707b198d..778735c038 100644 --- a/docs/hi/docs/side_quests/metadata/index.md +++ b/docs/hi/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Workflows को missing metadata के खिलाफ अधिक robust ब **1. Input validation** सबसे reliable solution यह है कि कोई भी processing शुरू होने से पहले datasheet को validate किया जाए, ताकि समस्याएँ एक clear error message के साथ जल्दी पकड़ी जाएँ बजाय run के बीच में एक cryptic process failure के रूप में सामने आने के। -[Hello nf-core](../../hello_nf-core/05_input_validation.md) training में nf-schema plugin का उपयोग करके input validation जोड़ने का तरीका cover किया गया है। +[Build with nf-core](../../hello_nf-core/05_input_validation.md) training में nf-schema plugin का उपयोग करके input validation जोड़ने का तरीका cover किया गया है। **2. Required values के लिए explicit process inputs** diff --git a/docs/hi/docs/side_quests/plugin_development/next_steps.md b/docs/hi/docs/side_quests/plugin_development/next_steps.md index d5186f11ae..f3f67547fc 100644 --- a/docs/hi/docs/side_quests/plugin_development/next_steps.md +++ b/docs/hi/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ अगर तुमने अभी तक नहीं किया है, तो हमारे अन्य प्रशिक्षण कोर्स देखो: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Nextflow की बुनियादी अवधारणाएँ -- **[Hello nf-core](../../hello_nf-core/index.md)**: nf-core पाइपलाइन और बेस्ट प्रैक्टिसेज़ +- **[Build with nf-core](../../hello_nf-core/index.md)**: nf-core पाइपलाइन और बेस्ट प्रैक्टिसेज़ - **[Side Quests](../index.md)**: विशिष्ट विषयों पर गहन जानकारी diff --git a/docs/hi/docs/training_collections/architects_toolkit_1.md b/docs/hi/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index a7ae4bc449..0000000000 --- a/docs/hi/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: The Architect's Toolkit I -hide: - - toc ---- - -# The Architect's Toolkit I - -:material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -हमारे प्रशिक्षण संग्रह हमारी उन्नत प्रशिक्षण सामग्री (जिसे [Side Quests](../side_quests/index.md) कहा जाता है) के माध्यम से क्यूरेटेड लर्निंग पाथ प्रदान करते हैं। यह संग्रह चार आवश्यक विषयों को कवर करता है जो मजबूत और स्केलेबल workflows बनाने के लिए अक्सर एक साथ उपयोग किए जाते हैं। - -## सीखने के उद्देश्य - -इस संग्रह के अंत तक, तुम्हें निम्नलिखित का अनुभव होगा: - -- **जटिल मॉड्यूलर workflow आर्किटेक्चर** - कई workflows को सुसंगत pipelines में जोड़ना -- **व्यापक टेस्टिंग रणनीतियाँ** - यह सुनिश्चित करना कि तुम्हारे workflows विश्वसनीय और रखरखाव योग्य हैं -- **मेटाडेटा प्रबंधन** - तुम्हारे workflows में नमूना-विशिष्ट मेटाडेटा को प्रभावी ढंग से संभालना -- **उन्नत डेटा प्रोसेसिंग** - कुशल डेटा स्प्लिटिंग और ग्रुपिंग पैटर्न लागू करना - -ये कौशल तुम्हें वास्तविक-दुनिया के अनुप्रयोगों के लिए मजबूत, स्केलेबल, और रखरखाव योग्य Nextflow workflows बनाने में सक्षम बनाएंगे। - -## दर्शक और पूर्वापेक्षाएँ - -यह संग्रह उन उपयोगकर्ताओं के लिए डिज़ाइन किया गया है जिन्होंने बेसिक Nextflow प्रशिक्षण पूरा कर लिया है और उन्नत workflow पैटर्न, टेस्टिंग रणनीतियों, और डेटा और मेटाडेटा हैंडलिंग तकनीकों में गहराई से जाना चाहते हैं। - -**पूर्वापेक्षाएँ** - -- [Hello Nextflow](../hello_nextflow/index.md) प्रशिक्षण या समकक्ष अनुभव का पूरा होना -- Nextflow सिंटैक्स और अवधारणाओं से बुनियादी परिचित -- बुनियादी workflow विकास पैटर्न की समझ -- कमांड-लाइन टूल्स के साथ अनुभव - -## संग्रह सामग्री - -इस संग्रह में चार Side Quests हैं जो पूरक workflow इंजीनियरिंग विषयों को कवर करते हैं: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - जटिल workflow आर्किटेक्चर और कंपोजिशन -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Nextflow workflows के लिए टेस्टिंग रणनीतियाँ -3. **[Metadata](../side_quests/metadata/index.md)** - Nextflow channels में आइटम्स के लिए मेटाडेटा हैंडलिंग -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - उन्नत डेटा प्रोसेसिंग पैटर्न - -प्रत्येक Side Quest स्व-निहित है और स्वतंत्र अवधारणाओं को कवर करता है, लेकिन हम विषयों के माध्यम से तार्किक प्रगति के लिए उन्हें ऊपर सूचीबद्ध क्रम में पूरा करने की सलाह देते हैं। - -## इस संग्रह का उपयोग कैसे करें - -पहले, प्रशिक्षण वातावरण को एक अलग टैब में लॉन्च करने के लिए नीचे "Open in GitHub Codespaces" बटन पर कमांड-क्लिक करें, फिर लोड होते समय आगे पढ़ें। - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -एक बार तुम्हारा वातावरण चल रहा हो, निम्नानुसार संग्रह के माध्यम से काम करें: - -1. इस टैब में: ऊपर सूचीबद्ध पहले Side Quest पर नेविगेट करें, जो स्टेप-बाय-स्टेप विकास अभ्यासों का वर्णन करता है। -2. तुम्हारे Codespaces टैब में: Side Quest के लिए अभ्यासों के माध्यम से काम करें। -3. जब तुम एक Side Quest पूरा करो, इस पृष्ठ पर वापस आओ और ऊपर की सूची में अगले पर नेविगेट करें। -4. जब तुम संग्रह पूरा कर लो, एक बहुत छोटा सर्वे भरने के लिए नीचे बटन पर क्लिक करें। तुम्हारी प्रतिक्रिया हमें सभी के लिए प्रशिक्षण सामग्री में सुधार जारी रखने की अनुमति देती है। - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -शुरू करने के लिए तैयार हो? ऊपर पहले मॉड्यूल से शुरू करो! diff --git a/docs/hi/docs/training_collections/index.md b/docs/hi/docs/training_collections/index.md deleted file mode 100644 index 016099c555..0000000000 --- a/docs/hi/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: प्रशिक्षण संग्रह -hide: - - toc ---- - -# प्रशिक्षण संग्रह - -:material-information-outline:{ .ai-translation-notice-icon } AI-सहायता प्राप्त अनुवाद - [अधिक जानें और सुधार सुझाएं](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -इस अनुभाग में [Side Quests](../side_quests/index.md) नामक प्रशिक्षण मॉड्यूल के क्यूरेटेड संग्रह हैं जो किसी विशेष विषय या उपयोग के मामले के आसपास एक व्यापक सीखने का अनुभव प्रदान करने का लक्ष्य रखते हैं। - -## पूर्वापेक्षाएँ - -प्रत्येक संग्रह की विशिष्ट पूर्वापेक्षाएँ उसके इंडेक्स पृष्ठ पर प्रलेखित हैं। हालांकि, अधिकांश संग्रह यह मानते हैं: - -- कमांड लाइन के साथ अनुभव -- [Hello Nextflow](../hello_nextflow/index.md) बिगिनर प्रशिक्षण कोर्स में शामिल मूलभूत Nextflow अवधारणाएँ और टूलिंग - -तकनीकी आवश्यकताओं और वातावरण सेटअप के लिए, [Environment Setup](../envsetup/index.md) मिनी-कोर्स देखें। - -## उपलब्ध संग्रह - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - चार Side Quests का एक संग्रह जो जटिल pipelines को असेंबल करने के लिए workflow आर्किटेक्चर पैटर्न, टेस्टिंग रणनीतियों को लागू करना, मेटाडेटा प्रबंधन, और डेटा को ग्रुप और स्प्लिट करना कवर करता है। _अनुमानित अवधि: ग्रुप प्रशिक्षण में 4 घंटे।_ - -## नए संग्रहों का सुझाव देना - -हम अतिरिक्त Side Quests और संग्रह विकसित करने पर सक्रिय रूप से काम कर रहे हैं। -कृपया उन विषयों का सुझाव देने के लिए स्वतंत्र महसूस करें जो आपको लगता है कि किसी संग्रह में कवर करने के लिए समझ में आएंगे, कम्युनिटी फोरम के [Training section](https://community.seqera.io/c/training/) में पोस्ट करके। diff --git a/docs/hi/mkdocs.yml b/docs/hi/mkdocs.yml index 684e235833..a11010430f 100644 --- a/docs/hi/mkdocs.yml +++ b/docs/hi/mkdocs.yml @@ -13,3 +13,35 @@ extra: हम कुकीज़ का उपयोग कैसे करते हैं इसके बारे में अधिक जानें। cookies: posthog: "PostHog Analytics" + nav_group_labels: + "प्रशिक्षण वातावरण": "सेटअप और सहायता" + "Nextflow Run": "उपयोगकर्ता" + "Hello Nextflow": "डेवलपर्स" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "विज्ञान के लिए Nextflow" + nf4_science/genomics/index.md: "जीनोमिक्स" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "इमेजिंग" + side_quests/index.md: "साइड क्वेस्ट" + envsetup/index.md: "प्रशिक्षण वातावरण" + nav_child_title_overrides: + nextflow_run/index.md: "अवलोकन" + nfcore_run/index.md: "अवलोकन" + seqera_run/index.md: "अवलोकन" + hello_nextflow/index.md: "अवलोकन" + hello_nf-core/index.md: "अवलोकन" + nf4_science/index.md: "अवलोकन" + nf4_science/genomics/index.md: "अवलोकन" + nf4_science/rnaseq/index.md: "अवलोकन" + nf4_science/imaging/index.md: "अवलोकन" + side_quests/index.md: "अवलोकन" + nav_section_separators: + side_quests/dev_environment/index.md: "डेवलपर टूल्स और ट्रिक्स" + side_quests/working_with_files/index.md: "डेटाफ्लो में गहराई से जानकारी" + side_quests/workflows_of_workflows/index.md: "क्रियान्वित मॉड्यूलर आर्किटेक्चर" + side_quests/nf_test/index.md: "Nextflow का विस्तारित ब्रह्मांड" diff --git a/docs/it/docs/hello_nextflow/next_steps.md b/docs/it/docs/hello_nextflow/next_steps.md index 345ffae22e..4801e20b00 100644 --- a/docs/it/docs/hello_nextflow/next_steps.md +++ b/docs/it/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Ora siete equipaggiati con le conoscenze fondamentali per iniziare a sviluppare Ecco i nostri 3 principali suggerimenti su cosa fare dopo: - Applicare Nextflow a un caso d'uso di analisi scientifica con [Nextflow for Science](../nf4_science/index.md) -- Iniziare con nf-core con [Hello nf-core](../hello_nf-core/index.md) +- Iniziare con nf-core con [Build with nf-core](../hello_nf-core/index.md) - Esplorare funzionalità Nextflow più avanzate con le [Side Quests](../side_quests/index.md) Infine, vi consigliamo di dare un'occhiata a [**Seqera Platform**](https://seqera.io/), una piattaforma basata su cloud sviluppata dai creatori di Nextflow che rende ancora più facile avviare e gestire i vostri flussi di lavoro, oltre a gestire i dati ed eseguire analisi in modo interattivo in qualsiasi ambiente. diff --git a/docs/it/docs/hello_nf-core/01_run_demo.md b/docs/it/docs/hello_nf-core/01_run_demo.md index 5cdb49fd4c..8c55268ed9 100644 --- a/docs/it/docs/hello_nf-core/01_run_demo.md +++ b/docs/it/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In questa prima parte del corso di formazione Hello nf-core, mostreremo come trovare e provare una pipeline nf-core, configurare e personalizzare la sua esecuzione in base alle proprie esigenze, e capire come la validazione dell'input protegge dagli errori più comuni. +In questa prima parte del corso di formazione Build with nf-core, mostreremo come trovare e provare una pipeline nf-core, configurare e personalizzare la sua esecuzione in base alle proprie esigenze, e capire come la validazione dell'input protegge dagli errori più comuni. Utilizzeremo una pipeline chiamata nf-core/demo che è mantenuta dal progetto nf-core come parte del suo inventario di pipeline per scopi dimostrativi e di formazione. diff --git a/docs/it/docs/hello_nf-core/02_rewrite_hello.md b/docs/it/docs/hello_nf-core/02_rewrite_hello.md index 92a94a24d9..f320316c8b 100644 --- a/docs/it/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/it/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In questa seconda parte del corso di formazione Hello nf-core, vi mostriamo come creare una versione compatibile con nf-core della pipeline prodotta dal corso per principianti [Hello Nextflow](../hello_nextflow/index.md). +In questa seconda parte del corso di formazione Build with nf-core, vi mostriamo come creare una versione compatibile con nf-core della pipeline prodotta dal corso per principianti [Hello Nextflow](../hello_nextflow/index.md). Lo faremo in due fasi: prima utilizzeremo gli strumenti nf-core per creare uno scaffold della pipeline, poi innesteremo il codice della pipeline 'regolare' esistente sullo scaffold. diff --git a/docs/it/docs/hello_nf-core/03_use_module.md b/docs/it/docs/hello_nf-core/03_use_module.md index aa8c526a00..33e4aaa596 100644 --- a/docs/it/docs/hello_nf-core/03_use_module.md +++ b/docs/it/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In questa terza parte del corso di formazione Hello nf-core, mostreremo come trovare, installare e utilizzare un modulo nf-core esistente nella propria pipeline. +In questa terza parte del corso di formazione Build with nf-core, mostreremo come trovare, installare e utilizzare un modulo nf-core esistente nella propria pipeline. Uno dei grandi vantaggi di lavorare con nf-core è la possibilità di sfruttare moduli pre-costruiti e testati dal repository [nf-core/modules](https://github.com/nf-core/modules). Invece di scrivere ogni processo da zero, è possibile installare e utilizzare moduli mantenuti dalla comunità che seguono le best practice. diff --git a/docs/it/docs/hello_nf-core/04_make_module.md b/docs/it/docs/hello_nf-core/04_make_module.md index 5a6fa20681..e5b43203c8 100644 --- a/docs/it/docs/hello_nf-core/04_make_module.md +++ b/docs/it/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In questa quarta parte del corso di formazione Hello nf-core, vi mostreremo come creare un modulo nf-core applicando le convenzioni chiave che rendono i moduli portabili e manutenibili. +In questa quarta parte del corso di formazione Build with nf-core, vi mostreremo come creare un modulo nf-core applicando le convenzioni chiave che rendono i moduli portabili e manutenibili. Il progetto nf-core fornisce un comando (`nf-core modules create`) che genera automaticamente template di moduli correttamente strutturati, simile a quello che abbiamo utilizzato per il workflow nella Parte 2. Tuttavia, per scopi didattici, inizieremo facendolo manualmente: trasformando il modulo locale `cowpy` nel vostro pipeline `core-hello` in un modulo in stile nf-core passo dopo passo. diff --git a/docs/it/docs/hello_nf-core/05_input_validation.md b/docs/it/docs/hello_nf-core/05_input_validation.md index 4ce4b04b07..49af021d54 100644 --- a/docs/it/docs/hello_nf-core/05_input_validation.md +++ b/docs/it/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -In questa quinta parte del corso di formazione Hello nf-core, mostriamo come utilizzare il plugin nf-schema per validare gli input e i parametri della pipeline. +In questa quinta parte del corso di formazione Build with nf-core, mostriamo come utilizzare il plugin nf-schema per validare gli input e i parametri della pipeline. ??? info "Come iniziare da questa sezione" @@ -808,6 +808,6 @@ Avete implementato e testato sia la validazione dei parametri che la validazione ### Cosa c'è dopo? -Avete completato tutte e cinque le parti del corso di formazione Hello nf-core! +Avete completato tutte e cinque le parti del corso di formazione Build with nf-core! Continuate con il [Riepilogo](next_steps.md) per riflettere su ciò che avete costruito e imparato. diff --git a/docs/it/docs/hello_nf-core/index.md b/docs/it/docs/hello_nf-core/index.md index 1d8476ad46..807a60f500 100644 --- a/docs/it/docs/hello_nf-core/index.md +++ b/docs/it/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Dominio:** Gli esercizi sono tutti indipendenti dal dominio, quindi non è richiesta alcuna conoscenza scientifica preliminare." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core è un'introduzione pratica all'uso delle risorse e delle best practice di nf-core.** +**Build with nf-core è un'introduzione pratica all'uso delle risorse e delle best practice di nf-core.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/it/docs/hello_nf-core/next_steps.md b/docs/it/docs/hello_nf-core/next_steps.md index c67060f16a..1a9ffebdf2 100644 --- a/docs/it/docs/hello_nf-core/next_steps.md +++ b/docs/it/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Congratulazioni per aver completato il corso di formazione Hello nf-core! 🎉 +Congratulazioni per aver completato il corso di formazione Build with nf-core! 🎉 diff --git a/docs/it/docs/index.md b/docs/it/docs/index.md index 26d6cf73e3..1694273dea 100644 --- a/docs/it/docs/index.md +++ b/docs/it/docs/index.md @@ -132,11 +132,11 @@ hide: Questi corsi vi aiutano a passare dai fondamenti di Nextflow alle best practice di nf-core. Capite come e perché la community nf-core sviluppa le pipeline, e come potete contribuire e riutilizzare queste tecniche. - ??? courses "**Hello nf-core:** Inizia con nf-core" + ??? courses "**Build with nf-core:** Inizia con nf-core" Per gli sviluppatori che desiderano imparare a eseguire e sviluppare pipeline conformi a [nf-core](https://nf-co.re/). Il corso copre la struttura delle pipeline nf-core con un livello di dettaglio sufficiente per sviluppare pipeline semplici ma pienamente funzionali che seguono il template nf-core e le best practice di sviluppo, nonché per utilizzare i moduli nf-core esistenti. - [Inizia la formazione Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Inizia la formazione Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Esplora i Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Percorsi di apprendimento consigliati attraverso i Side Quests" + ??? courses "**Learning Paths:** Percorsi di apprendimento consigliati attraverso i Side Quests" - Le Training Collections combinano più Side Quests per offrire un'esperienza di apprendimento completa attorno a un tema o caso d'uso specifico. + Le Learning Paths combinano più Side Quests per offrire un'esperienza di apprendimento completa attorno a un tema o caso d'uso specifico. - [Esplora le Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Esplora le Learning Paths :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/it/docs/nextflow_run/03_config.md b/docs/it/docs/nextflow_run/03_config.md index 467510fd6a..bf896b2a46 100644 --- a/docs/it/docs/nextflow_run/03_config.md +++ b/docs/it/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Sapete tutto ciò che dovete sapere per iniziare a eseguire e gestire pipeline N Questo conclude questo corso, ma se siete desiderosi di continuare a imparare, abbiamo due raccomandazioni principali: - Se volete approfondire lo sviluppo delle vostre pipeline, date un'occhiata a [Hello Nextflow](../hello_nextflow/index.md), un corso per principianti che copre la stessa progressione generale di questo ma va molto più in dettaglio su channel e operatori. -- Se vorreste continuare a imparare come eseguire pipeline Nextflow senza andare più in profondità nel codice, date un'occhiata alla prima parte di [Hello nf-core](../hello_nf-core/index.md), che introduce gli strumenti per trovare e eseguire pipeline dall'estremamente popolare progetto [nf-core](https://nf-co.re/). +- Se vorreste continuare a imparare come eseguire pipeline Nextflow senza andare più in profondità nel codice, date un'occhiata alla prima parte di [Build with nf-core](../hello_nf-core/index.md), che introduce gli strumenti per trovare e eseguire pipeline dall'estremamente popolare progetto [nf-core](https://nf-co.re/). Buon divertimento! diff --git a/docs/it/docs/nextflow_run/next_steps.md b/docs/it/docs/nextflow_run/next_steps.md index 124603a264..0a8e44f731 100644 --- a/docs/it/docs/nextflow_run/next_steps.md +++ b/docs/it/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Ecco i nostri migliori suggerimenti su cosa fare dopo: - Non limitarti a eseguire Nextflow, scrivilo! Diventa uno sviluppatore Nextflow con [Hello Nextflow](../hello_nextflow/index.md) - Applica Nextflow a un caso d'uso di analisi scientifica con [Nextflow for Science](../nf4_science/index.md) -- Inizia con nf-core con [Hello nf-core](../hello_nf-core/index.md) +- Inizia con nf-core con [Build with nf-core](../hello_nf-core/index.md) - Impara tecniche di troubleshooting con la [Debugging Side Quest](../side_quests/debugging/index.md) Infine, ti raccomandiamo di dare un'occhiata a [**Seqera Platform**](https://seqera.io/), una piattaforma cloud-based sviluppata dai creatori di Nextflow che rende ancora più facile lanciare e gestire i tuoi workflow, oltre a gestire i tuoi dati e eseguire analisi interattivamente in qualsiasi ambiente. diff --git a/docs/it/docs/nf4_science/_template/next_steps.md b/docs/it/docs/nf4_science/_template/next_steps.md index 441a9de665..60039f55ba 100644 --- a/docs/it/docs/nf4_science/_template/next_steps.md +++ b/docs/it/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Ora siete pronti per iniziare ad applicare Nextflow ai flussi di lavoro di anali Ecco i nostri principali suggerimenti su cosa fare dopo: - Applicate Nextflow ad altri casi d'uso di analisi scientifica con [Nextflow for Science](../index.md) -- Iniziate con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Iniziate con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Esplorate funzionalità più avanzate di Nextflow con le [Side Quests](../../side_quests/index.md) Infine, vi consigliamo di dare un'occhiata a [**Seqera Platform**](https://seqera.io/), una piattaforma basata su cloud sviluppata dai creatori di Nextflow che rende ancora più facile lanciare e gestire i vostri flussi di lavoro, oltre a gestire i vostri dati ed eseguire analisi in modo interattivo in qualsiasi ambiente. diff --git a/docs/it/docs/nf4_science/genomics/next_steps.md b/docs/it/docs/nf4_science/genomics/next_steps.md index 1e97491b7d..2b57e2db93 100644 --- a/docs/it/docs/nf4_science/genomics/next_steps.md +++ b/docs/it/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Ora siete pronti per iniziare ad applicare Nextflow ai flussi di lavoro di anali Ecco i nostri principali suggerimenti su cosa fare dopo: - Applicate Nextflow ad altri casi d'uso di analisi scientifica con [Nextflow for Science](../index.md) -- Iniziate con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Iniziate con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Esplorate funzionalità più avanzate di Nextflow con le [Side Quests](../../side_quests/index.md) Infine, vi consigliamo di dare un'occhiata a [**Seqera Platform**](https://seqera.io/), una piattaforma basata su cloud sviluppata dai creatori di Nextflow che rende ancora più facile lanciare e gestire i vostri flussi di lavoro, oltre a gestire i vostri dati ed eseguire analisi in modo interattivo in qualsiasi ambiente. diff --git a/docs/it/docs/nf4_science/imaging/02_run_molkart.md b/docs/it/docs/nf4_science/imaging/02_run_molkart.md index 0f8f06f774..5950b4acba 100644 --- a/docs/it/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/it/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Caratteristiche chiave delle pipeline nf-core: !!! tip "Desidera saperne di più su nf-core?" - Per un'introduzione approfondita allo sviluppo di pipeline nf-core, consulti il corso di formazione [Hello nf-core](../../hello_nf-core/index.md). + Per un'introduzione approfondita allo sviluppo di pipeline nf-core, consulti il corso di formazione [Build with nf-core](../../hello_nf-core/index.md). Copre come creare e personalizzare pipeline nf-core da zero. ### 1.2. La pipeline molkart diff --git a/docs/it/docs/nf4_science/imaging/04_config.md b/docs/it/docs/nf4_science/imaging/04_config.md index dcbc5906fe..267b17f118 100644 --- a/docs/it/docs/nf4_science/imaging/04_config.md +++ b/docs/it/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Prossimi passi: - Compilare il sondaggio del corso per fornire feedback - Consultare [Hello Nextflow](../../hello_nextflow/index.md) per saperne di più sullo sviluppo di workflow -- Esplorare [Hello nf-core](../../hello_nf-core/index.md) per approfondire gli strumenti nf-core +- Esplorare [Build with nf-core](../../hello_nf-core/index.md) per approfondire gli strumenti nf-core - Sfogliare altri corsi nelle [collezioni di formazione](../../training_collections/index.md) diff --git a/docs/it/docs/nf4_science/rnaseq/next_steps.md b/docs/it/docs/nf4_science/rnaseq/next_steps.md index d083b77699..3062b6b265 100644 --- a/docs/it/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/it/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Ora siete pronti per iniziare ad applicare Nextflow ai flussi di lavoro di anali Ecco i nostri suggerimenti principali su cosa fare dopo: - Applicare Nextflow ad altri casi d'uso di analisi scientifica con [Nextflow for Science](../index.md) -- Iniziare con nf-core con [Hello nf-core](../../hello_nf-core/index.md) +- Iniziare con nf-core con [Build with nf-core](../../hello_nf-core/index.md) - Esplorare funzionalità più avanzate di Nextflow con le [Side Quests](../../side_quests/index.md) Infine, vi consigliamo di dare un'occhiata a [**Seqera Platform**](https://seqera.io/), una piattaforma basata su cloud sviluppata dai creatori di Nextflow che rende ancora più semplice lanciare e gestire i vostri flussi di lavoro, nonché gestire i vostri dati ed eseguire analisi in modo interattivo in qualsiasi ambiente. diff --git a/docs/it/docs/side_quests/dev_environment/index.md b/docs/it/docs/side_quests/dev_environment/index.md index 17f584bbdd..b3addbe342 100644 --- a/docs/it/docs/side_quests/dev_environment/index.md +++ b/docs/it/docs/side_quests/dev_environment/index.md @@ -620,7 +620,7 @@ Non ci aspettiamo che ricordiate tutto, ma ora che sapete che queste funzionalit Applicate queste competenze IDE mentre lavorate su altri moduli di formazione, ad esempio: - **[nf-test](../nf_test/index.md)**: Create suite di test complete per i vostri flussi di lavoro -- **[Hello nf-core](../../hello_nf-core/index.md)**: Costruite pipeline di qualità produttiva con gli standard della community +- **[Build with nf-core](../../hello_nf-core/index.md)**: Costruite pipeline di qualità produttiva con gli standard della community Il vero potere di queste funzionalità IDE emerge quando si lavora su progetti più grandi e complessi. Iniziate a incorporarle gradualmente nel vostro flusso di lavoro: nel giro di poche sessioni, diventeranno una seconda natura e trasformeranno il vostro approccio allo sviluppo con Nextflow. diff --git a/docs/it/docs/side_quests/metadata/index.md b/docs/it/docs/side_quests/metadata/index.md index f65ce9e47d..38e9039a45 100644 --- a/docs/it/docs/side_quests/metadata/index.md +++ b/docs/it/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Esistono due approcci complementari per rendere i flussi di lavoro più robusti **1. Validazione dell'input** La soluzione più affidabile è validare il foglio dati prima che inizi qualsiasi elaborazione, in modo che i problemi vengano rilevati tempestivamente con un messaggio di errore chiaro piuttosto che emergere come un errore criptico del processo a metà esecuzione. -La formazione [Hello nf-core](../../hello_nf-core/05_input_validation.md) spiega come aggiungere la validazione dell'input usando il plugin nf-schema. +La formazione [Build with nf-core](../../hello_nf-core/05_input_validation.md) spiega come aggiungere la validazione dell'input usando il plugin nf-schema. **2. Input espliciti del processo per i valori obbligatori** diff --git a/docs/it/docs/side_quests/plugin_development/next_steps.md b/docs/it/docs/side_quests/plugin_development/next_steps.md index 9bf40a7d81..d00831392e 100644 --- a/docs/it/docs/side_quests/plugin_development/next_steps.md +++ b/docs/it/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Se sviluppate un plugin utile, considerate di condividerlo con la community attr Se non l'avete ancora fatto, date un'occhiata agli altri nostri corsi di formazione: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Concetti fondamentali di Nextflow -- **[Hello nf-core](../../hello_nf-core/index.md)**: Pipeline nf-core e best practice +- **[Build with nf-core](../../hello_nf-core/index.md)**: Pipeline nf-core e best practice - **[Side Quests](../index.md)**: Approfondimenti su argomenti specifici diff --git a/docs/it/docs/training_collections/architects_toolkit_1.md b/docs/it/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 09904c6f99..0000000000 --- a/docs/it/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Il Toolkit dell'Architetto I -hide: - - toc ---- - -# Il Toolkit dell'Architetto I - -:material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Le nostre Raccolte di Formazione forniscono percorsi di apprendimento curati attraverso i nostri materiali di formazione avanzati (chiamati [Side Quests](../side_quests/index.md)). Questa raccolta copre quattro argomenti essenziali che vengono frequentemente utilizzati insieme per costruire workflow robusti e scalabili. - -## Obiettivi di apprendimento - -Al termine di questa raccolta, avrete esperienza con: - -- **Architetture di workflow modulari complesse** - Combinare più workflow in pipeline coese -- **Strategie di testing complete** - Assicurare che i vostri workflow siano affidabili e manutenibili -- **Gestione dei metadata** - Gestire i metadata specifici dei campioni in modo efficace durante i vostri workflow -- **Elaborazione avanzata dei dati** - Implementare pattern efficienti di suddivisione e raggruppamento dei dati - -Queste competenze vi permetteranno di costruire workflow Nextflow robusti, scalabili e manutenibili per applicazioni reali. - -## Pubblico e prerequisiti - -Questa raccolta è progettata per utenti che hanno completato la formazione base di Nextflow e desiderano approfondire i pattern avanzati dei workflow, le strategie di testing e le tecniche di gestione dei dati e metadata. - -**Prerequisiti** - -- Completamento della formazione [Hello Nextflow](../hello_nextflow/index.md) o esperienza equivalente -- Familiarità di base con la sintassi e i concetti di Nextflow -- Comprensione dei pattern di base per lo sviluppo di workflow -- Esperienza con strumenti da riga di comando - -## Contenuti della raccolta - -Questa raccolta consiste di quattro Side Quests che coprono argomenti complementari di ingegneria dei workflow: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Architettura e composizione complessa di workflow -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Strategie di testing per workflow Nextflow -3. **[Metadata](../side_quests/metadata/index.md)** - Gestione dei metadata per elementi nei channel Nextflow -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Pattern avanzati di elaborazione dati - -Ogni Side Quest è autonomo e copre concetti indipendenti, ma raccomandiamo di completarli nell'ordine elencato sopra per una progressione logica attraverso gli argomenti. - -## Come utilizzare questa raccolta - -Per prima cosa, fate command-clic sul pulsante "Open in GitHub Codespaces" qui sotto per avviare l'ambiente di formazione in una scheda separata, poi continuate a leggere mentre si carica. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Una volta che il vostro ambiente è in esecuzione, procedete con la raccolta come segue: - -1. In questa scheda: Navigate al primo Side Quest elencato sopra, che descrive esercizi di sviluppo passo dopo passo. -2. Nella vostra scheda Codespaces: Lavorate attraverso gli esercizi del Side Quest. -3. Quando completate un Side Quest, tornate a questa pagina e navigate al successivo nell'elenco sopra. -4. Quando avete completato la raccolta, fate clic sul pulsante qui sotto per compilare un breve questionario. Il vostro feedback ci permette di continuare a migliorare i materiali di formazione per tutti. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Pronti per iniziare? Cominciate con il primo modulo sopra! diff --git a/docs/it/docs/training_collections/index.md b/docs/it/docs/training_collections/index.md deleted file mode 100644 index 48eb73c7db..0000000000 --- a/docs/it/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Training Collections -hide: - - toc ---- - -# Collezioni di Formazione - -:material-information-outline:{ .ai-translation-notice-icon } Traduzione assistita da IA - [scopri di più e suggerisci miglioramenti](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Questa sezione contiene collezioni curate di moduli di formazione chiamati [Side Quests](../side_quests/index.md) che mirano a fornire un'esperienza di apprendimento completa su un tema o caso d'uso particolare. - -## Prerequisiti - -Ogni collezione ha prerequisiti specifici documentati nella propria pagina indice. Tuttavia, la maggior parte delle collezioni presuppone: - -- Esperienza con la riga di comando -- Concetti fondamentali di Nextflow e strumenti trattati nel corso di formazione per principianti [Hello Nextflow](../hello_nextflow/index.md) - -Per i requisiti tecnici e la configurazione dell'ambiente, vedere il mini-corso [Environment Setup](../envsetup/index.md). - -## Collezioni disponibili - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - Una collezione di quattro Side Quests che coprono i pattern di architettura dei workflow per assemblare pipeline complessi, implementare strategie di test, gestire i metadati e raggruppare e dividere i dati. _Durata stimata: 4 ore in formazione di gruppo._ - -## Suggerire nuove collezioni - -Stiamo lavorando attivamente allo sviluppo di ulteriori Side Quests e Collezioni. -Si prega di suggerire argomenti che si ritiene abbiano senso coprire in una Collezione pubblicando nella [sezione Training](https://community.seqera.io/c/training/) del forum della community. diff --git a/docs/it/mkdocs.yml b/docs/it/mkdocs.yml index 6dc15eaf59..4de4b0b984 100644 --- a/docs/it/mkdocs.yml +++ b/docs/it/mkdocs.yml @@ -14,3 +14,35 @@ extra: come utilizziamo i cookie. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Ambiente di Formazione": "Configurazione e Aiuto" + "Nextflow Run": "Utenti" + "Hello Nextflow": "Sviluppatori" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow per la Scienza" + nf4_science/genomics/index.md: "Genomica" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Imaging" + side_quests/index.md: "Missioni Secondarie" + envsetup/index.md: "Ambiente di Formazione" + nav_child_title_overrides: + nextflow_run/index.md: "Panoramica" + nfcore_run/index.md: "Panoramica" + seqera_run/index.md: "Panoramica" + hello_nextflow/index.md: "Panoramica" + hello_nf-core/index.md: "Panoramica" + nf4_science/index.md: "Panoramica" + nf4_science/genomics/index.md: "Panoramica" + nf4_science/rnaseq/index.md: "Panoramica" + nf4_science/imaging/index.md: "Panoramica" + side_quests/index.md: "Panoramica" + nav_section_separators: + side_quests/dev_environment/index.md: "Strumenti e Trucchi per Sviluppatori" + side_quests/working_with_files/index.md: "Approfondimenti sul Flusso di Dati" + side_quests/workflows_of_workflows/index.md: "Architettura Modulare in Azione" + side_quests/nf_test/index.md: "L'Universo Esteso di Nextflow" diff --git a/docs/ko/docs/hello_nextflow/next_steps.md b/docs/ko/docs/hello_nextflow/next_steps.md index 3dd76acf57..eaa357e89d 100644 --- a/docs/ko/docs/hello_nextflow/next_steps.md +++ b/docs/ko/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Hello Nextflow 교육 과정을 완료하신 것을 축하드립니다! 🎉 다음에 할 일에 대한 상위 3가지 제안입니다: - [과학을 위한 Nextflow](../nf4_science/index.md)로 과학적 분석 사용 사례에 Nextflow 적용 -- [Hello nf-core](../hello_nf-core/index.md)로 nf-core 시작하기 +- [Build with nf-core](../hello_nf-core/index.md)로 nf-core 시작하기 - [Side Quests](../side_quests/index.md)로 더 고급 Nextflow 기능 탐색 마지막으로, Nextflow 제작자가 개발한 클라우드 기반 플랫폼인 [**Seqera Platform**](https://seqera.io/)을 살펴보시기 바랍니다. 이 플랫폼은 워크플로우 시작 및 관리, 데이터 관리, 모든 환경에서 대화형 분석 실행을 더욱 쉽게 해줍니다. diff --git a/docs/ko/docs/hello_nf-core/01_run_demo.md b/docs/ko/docs/hello_nf-core/01_run_demo.md index 9e9214e93b..cf4ff3ad64 100644 --- a/docs/ko/docs/hello_nf-core/01_run_demo.md +++ b/docs/ko/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정의 첫 번째 파트에서는 nf-core 파이프라인을 찾아서 사용해보고, 필요에 맞게 실행을 설정 및 맞춤화하며, 입력 검증이 일반적인 오류를 어떻게 방지하는지 학습합니다. +Build with nf-core 교육 과정의 첫 번째 파트에서는 nf-core 파이프라인을 찾아서 사용해보고, 필요에 맞게 실행을 설정 및 맞춤화하며, 입력 검증이 일반적인 오류를 어떻게 방지하는지 학습합니다. nf-core 프로젝트에서 코드 구조와 도구 작동을 시연하기 위한 파이프라인 모음의 일부로 유지 관리하는 nf-core/demo라는 파이프라인을 사용하겠습니다. diff --git a/docs/ko/docs/hello_nf-core/02_rewrite_hello.md b/docs/ko/docs/hello_nf-core/02_rewrite_hello.md index 0cc12f00a9..ca1510f979 100644 --- a/docs/ko/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/ko/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정의 두 번째 부분에서는 [Hello Nextflow](../hello_nextflow/index.md) 초급자 과정에서 만든 파이프라인의 nf-core 호환 버전을 생성하는 방법을 보여드립니다. +Build with nf-core 교육 과정의 두 번째 부분에서는 [Hello Nextflow](../hello_nextflow/index.md) 초급자 과정에서 만든 파이프라인의 nf-core 호환 버전을 생성하는 방법을 보여드립니다. 두 단계로 진행합니다. 먼저 nf-core 도구를 사용하여 파이프라인 스캐폴드를 생성한 다음, 기존의 '일반' 파이프라인 코드를 스캐폴드에 맞게 조정합니다. diff --git a/docs/ko/docs/hello_nf-core/03_use_module.md b/docs/ko/docs/hello_nf-core/03_use_module.md index c8be4a1204..b32221a7ae 100644 --- a/docs/ko/docs/hello_nf-core/03_use_module.md +++ b/docs/ko/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정의 세 번째 파트에서는 기존 nf-core 모듈을 파이프라인에서 찾고, 설치하고, 사용하는 방법을 다룹니다. +Build with nf-core 교육 과정의 세 번째 파트에서는 기존 nf-core 모듈을 파이프라인에서 찾고, 설치하고, 사용하는 방법을 다룹니다. nf-core로 작업할 때 얻을 수 있는 큰 이점 중 하나는 [nf-core/modules](https://github.com/nf-core/modules) 저장소에서 사전 구축되고 테스트된 모듈을 활용할 수 있다는 것입니다. 모든 프로세스를 처음부터 작성하는 대신, 모범 사례를 따르는 커뮤니티 유지 관리 모듈을 설치하고 사용할 수 있습니다. diff --git a/docs/ko/docs/hello_nf-core/04_make_module.md b/docs/ko/docs/hello_nf-core/04_make_module.md index 9a97786047..2c51e0d39a 100644 --- a/docs/ko/docs/hello_nf-core/04_make_module.md +++ b/docs/ko/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정의 네 번째 파트에서는 모듈을 이식 가능하고 유지보수 가능하게 만드는 주요 규칙을 적용하여 nf-core 모듈을 만드는 방법을 다룹니다. +Build with nf-core 교육 과정의 네 번째 파트에서는 모듈을 이식 가능하고 유지보수 가능하게 만드는 주요 규칙을 적용하여 nf-core 모듈을 만드는 방법을 다룹니다. nf-core 프로젝트는 Part 2에서 워크플로우에 사용했던 것과 유사하게 적절하게 구조화된 모듈 템플릿을 자동으로 생성하는 명령(`nf-core modules create`)을 제공합니다. 하지만 교육 목적으로, 먼저 수동으로 작업을 진행합니다: `core-hello` 파이프라인의 로컬 `cowpy` 모듈을 단계별로 nf-core 스타일 모듈로 변환하겠습니다. diff --git a/docs/ko/docs/hello_nf-core/05_input_validation.md b/docs/ko/docs/hello_nf-core/05_input_validation.md index 727fdc9895..07552e2d6e 100644 --- a/docs/ko/docs/hello_nf-core/05_input_validation.md +++ b/docs/ko/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정의 다섯 번째 파트에서는 nf-schema 플러그인을 사용하여 파이프라인 입력과 매개변수를 검증하는 방법을 보여드립니다. +Build with nf-core 교육 과정의 다섯 번째 파트에서는 nf-schema 플러그인을 사용하여 파이프라인 입력과 매개변수를 검증하는 방법을 보여드립니다. ??? info "이 섹션을 시작하는 방법" @@ -808,6 +808,6 @@ nextflow run . --input assets/invalid_greetings.csv --outdir test-results -profi ### 다음 단계 -Hello nf-core 교육 과정의 다섯 개 파트를 모두 완료했습니다! +Build with nf-core 교육 과정의 다섯 개 파트를 모두 완료했습니다! [Summary](next_steps.md)로 계속 진행하여 구축하고 배운 내용을 돌아보십시오. diff --git a/docs/ko/docs/hello_nf-core/index.md b/docs/ko/docs/hello_nf-core/index.md index 94a2fd54aa..f615e77ace 100644 --- a/docs/ko/docs/hello_nf-core/index.md +++ b/docs/ko/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**영역:** 모든 연습은 영역에 구애받지 않으므로 사전 과학 지식이 필요하지 않습니다." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core는 nf-core 리소스와 모범 사례 사용에 대한 실습 입문 과정입니다.** +**Build with nf-core는 nf-core 리소스와 모범 사례 사용에 대한 실습 입문 과정입니다.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/ko/docs/hello_nf-core/next_steps.md b/docs/ko/docs/hello_nf-core/next_steps.md index 2f59e5fced..77faa83bfe 100644 --- a/docs/ko/docs/hello_nf-core/next_steps.md +++ b/docs/ko/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core 교육 과정을 완료하신 것을 축하드립니다! 🎉 +Build with nf-core 교육 과정을 완료하신 것을 축하드립니다! 🎉 diff --git a/docs/ko/docs/index.md b/docs/ko/docs/index.md index f548cc0a24..71b4fdc019 100644 --- a/docs/ko/docs/index.md +++ b/docs/ko/docs/index.md @@ -132,11 +132,11 @@ hide: 이 과정들은 Nextflow 기초부터 nf-core 모범 사례까지 단계적으로 학습할 수 있도록 도와줍니다. nf-core 커뮤니티가 파이프라인을 구축하는 방법과 이유를 이해하고, 이러한 기법에 기여하고 재사용하는 방법을 학습합니다. - ??? courses "**Hello nf-core:** nf-core 시작하기" + ??? courses "**Build with nf-core:** nf-core 시작하기" [nf-core](https://nf-co.re/) 호환 파이프라인을 실행하고 개발하고자 하는 개발자를 위한 과정입니다. nf-core 템플릿과 개발 모범 사례를 따르는 간단하지만 완전히 기능하는 파이프라인을 개발하고, 기존 nf-core 모듈을 활용할 수 있을 만큼 nf-core 파이프라인의 구조를 충분히 다룹니다. - [Hello nf-core 교육 시작하기 :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Build with nf-core 교육 시작하기 :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Side Quests 살펴보기 :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Side Quests를 통한 추천 학습 경로" + ??? courses "**Learning Paths:** Side Quests를 통한 추천 학습 경로" - Training Collections는 특정 주제나 활용 사례를 중심으로 포괄적인 학습 경험을 제공하기 위해 여러 Side Quests를 결합합니다. + Learning Paths는 특정 주제나 활용 사례를 중심으로 포괄적인 학습 경험을 제공하기 위해 여러 Side Quests를 결합합니다. - [Training Collections 살펴보기 :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Learning Paths 살펴보기 :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/ko/docs/nextflow_run/03_config.md b/docs/ko/docs/nextflow_run/03_config.md index 246b39baf0..c001b38b78 100644 --- a/docs/ko/docs/nextflow_run/03_config.md +++ b/docs/ko/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Nextflow pipeline을 실행하고 관리하기 시작하는 데 필요한 모든 이 과정은 여기서 끝나지만, 계속 배우고 싶다면 두 가지 주요 권장 사항이 있습니다: - 자체 pipeline을 개발하는 것에 대해 더 깊이 살펴보고 싶다면 채널과 연산자에 대해 훨씬 더 자세히 다루지만 이 과정과 동일한 일반적인 진행을 다루는 초보자를 위한 과정인 [Hello Nextflow](../hello_nextflow/index.md)를 확인하세요. -- 코드에 더 깊이 들어가지 않고 Nextflow pipeline을 실행하는 방법을 계속 배우고 싶다면 매우 인기 있는 [nf-core](../hello_nf-core/index.md) 프로젝트의 pipeline을 찾고 실행하기 위한 도구를 소개하는 [Hello nf-core](https://nf-co.re/)의 첫 번째 부분을 확인하세요. +- 코드에 더 깊이 들어가지 않고 Nextflow pipeline을 실행하는 방법을 계속 배우고 싶다면 매우 인기 있는 [nf-core](../hello_nf-core/index.md) 프로젝트의 pipeline을 찾고 실행하기 위한 도구를 소개하는 [Build with nf-core](https://nf-co.re/)의 첫 번째 부분을 확인하세요. 즐거운 시간 되세요! diff --git a/docs/ko/docs/nextflow_run/next_steps.md b/docs/ko/docs/nextflow_run/next_steps.md index 9a5dc3b192..81865d3b66 100644 --- a/docs/ko/docs/nextflow_run/next_steps.md +++ b/docs/ko/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Nextflow Run 교육 과정을 완료하신 것을 축하합니다! 🎉 - Nextflow를 실행만 하지 말고 작성하세요! [Hello Nextflow](../hello_nextflow/index.md)로 Nextflow 개발자가 되세요 - [Nextflow for Science](../nf4_science/index.md)로 과학적 분석 사용 사례에 Nextflow 적용 -- [Hello nf-core](../hello_nf-core/index.md)로 nf-core 시작하기 +- [Build with nf-core](../hello_nf-core/index.md)로 nf-core 시작하기 - [디버깅 Side Quest](../side_quests/debugging/index.md)로 문제 해결 기술 배우기 마지막으로 [**Seqera Platform**](https://seqera.io/)을 살펴보시기를 권장합니다. Nextflow 제작자가 개발한 클라우드 기반 플랫폼으로, 워크플로우를 시작하고 관리하고, 데이터를 관리하고, 모든 환경에서 대화형으로 분석을 실행하는 것을 더욱 쉽게 해줍니다. diff --git a/docs/ko/docs/nf4_science/_template/next_steps.md b/docs/ko/docs/nf4_science/_template/next_steps.md index 1e0ba98416..d4bcf813a0 100644 --- a/docs/ko/docs/nf4_science/_template/next_steps.md +++ b/docs/ko/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ 다음 단계로 권장하는 사항은 다음과 같습니다: - [Nextflow for Science](../index.md)로 다른 과학 분석 사용 사례에 Nextflow 적용 -- [Hello nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 +- [Build with nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 - [Side Quests](../../side_quests/index.md)로 더 고급 Nextflow 기능 탐색 마지막으로, Nextflow 창시자들이 개발한 클라우드 기반 플랫폼인 [**Seqera Platform**](https://seqera.io/)을 살펴보시기를 권장합니다. 이 플랫폼을 사용하면 워크플로우를 더욱 쉽게 시작하고 관리할 수 있으며, 데이터를 관리하고 모든 환경에서 대화형으로 분석을 실행할 수 있습니다. diff --git a/docs/ko/docs/nf4_science/genomics/next_steps.md b/docs/ko/docs/nf4_science/genomics/next_steps.md index 5170fae92c..a89152bdcb 100644 --- a/docs/ko/docs/nf4_science/genomics/next_steps.md +++ b/docs/ko/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Nextflow for Genomics 교육 과정을 완료하신 것을 축하합니다! 🎉 다음으로 할 일에 대한 주요 제안 사항은 다음과 같습니다: - [Nextflow for Science](../index.md)로 다른 과학 분석 사용 사례에 Nextflow 적용 -- [Hello nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 +- [Build with nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 - [Side Quests](../../side_quests/index.md)로 더 고급 Nextflow 기능 탐색 마지막으로, Nextflow 제작자가 개발한 클라우드 기반 플랫폼인 [**Seqera Platform**](https://seqera.io/)을 살펴보시기를 권장합니다. 이 플랫폼을 사용하면 워크플로우를 더욱 쉽게 시작하고 관리할 수 있으며, 데이터를 관리하고 모든 환경에서 대화형으로 분석을 실행할 수 있습니다. diff --git a/docs/ko/docs/nf4_science/imaging/02_run_molkart.md b/docs/ko/docs/nf4_science/imaging/02_run_molkart.md index c071ef9741..5e8672a4ab 100644 --- a/docs/ko/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/ko/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ nf-core 파이프라인의 주요 특징: !!! tip "nf-core에 대해 더 알고 싶으신가요?" - nf-core 파이프라인 개발에 대한 심층적인 소개를 보려면 [Hello nf-core](../../hello_nf-core/index.md) 교육 과정을 확인하세요. + nf-core 파이프라인 개발에 대한 심층적인 소개를 보려면 [Build with nf-core](../../hello_nf-core/index.md) 교육 과정을 확인하세요. 처음부터 nf-core 파이프라인을 생성하고 사용자 정의하는 방법을 다룹니다. ### 1.2. molkart 파이프라인 diff --git a/docs/ko/docs/nf4_science/imaging/04_config.md b/docs/ko/docs/nf4_science/imaging/04_config.md index 7fb6dffc96..7c38c9d736 100644 --- a/docs/ko/docs/nf4_science/imaging/04_config.md +++ b/docs/ko/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ profiles { - 피드백을 제공하기 위해 과정 설문조사를 작성하십시오 - 워크플로우 개발에 대해 더 자세히 알아보려면 [Hello Nextflow](../../hello_nextflow/index.md)를 확인하십시오 -- nf-core 도구에 대해 더 깊이 이해하려면 [Hello nf-core](../../hello_nf-core/index.md)를 살펴보십시오 +- nf-core 도구에 대해 더 깊이 이해하려면 [Build with nf-core](../../hello_nf-core/index.md)를 살펴보십시오 - [교육 컬렉션](../../training_collections/index.md)에서 다른 과정을 찾아보십시오 diff --git a/docs/ko/docs/nf4_science/rnaseq/next_steps.md b/docs/ko/docs/nf4_science/rnaseq/next_steps.md index efb9496fad..c3e89efc2f 100644 --- a/docs/ko/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/ko/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Nextflow for RNAseq 교육 과정을 완료하신 것을 축하드립니다! 다음에 수행할 작업에 대한 주요 권장 사항은 다음과 같습니다: - [Nextflow for Science](../index.md)를 통해 다른 과학적 분석 사용 사례에 Nextflow 적용 -- [Hello nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 +- [Build with nf-core](../../hello_nf-core/index.md)로 nf-core 시작하기 - [Side Quests](../../side_quests/index.md)로 더 고급 Nextflow 기능 탐색 마지막으로, Nextflow 창시자들이 개발한 클라우드 기반 플랫폼인 [**Seqera Platform**](https://seqera.io/)을 살펴보시기를 권장합니다. 이 플랫폼은 워크플로우를 더욱 쉽게 시작하고 관리할 수 있으며, 모든 환경에서 데이터를 관리하고 분석을 대화형으로 실행할 수 있습니다. diff --git a/docs/ko/docs/side_quests/dev_environment/index.md b/docs/ko/docs/side_quests/dev_environment/index.md index 3f13e1b772..aed898f9b4 100644 --- a/docs/ko/docs/side_quests/dev_environment/index.md +++ b/docs/ko/docs/side_quests/dev_environment/index.md @@ -620,7 +620,7 @@ VS Code의 Nextflow 개발을 위한 IDE 기능을 빠르게 살펴보았습니 다른 교육 모듈을 진행하면서 이러한 IDE 기술을 적용해 보세요. 예를 들어: - **[nf-test](../nf_test/index.md)**: 워크플로우를 위한 포괄적인 테스트 스위트 작성 -- **[Hello nf-core](../../hello_nf-core/index.md)**: 커뮤니티 표준으로 프로덕션 품질의 파이프라인 구축 +- **[Build with nf-core](../../hello_nf-core/index.md)**: 커뮤니티 표준으로 프로덕션 품질의 파이프라인 구축 이러한 IDE 기능의 진정한 힘은 더 크고 복잡한 프로젝트를 진행할 때 발휘됩니다. 단계적으로 워크플로우에 통합하기 시작하세요. 몇 번의 세션 후에는 자연스럽게 익숙해져 Nextflow 개발에 접근하는 방식이 달라질 것입니다. diff --git a/docs/ko/docs/side_quests/metadata/index.md b/docs/ko/docs/side_quests/metadata/index.md index 90ffc7f90e..f702305f09 100644 --- a/docs/ko/docs/side_quests/metadata/index.md +++ b/docs/ko/docs/side_quests/metadata/index.md @@ -1739,7 +1739,7 @@ sampleB,/workspaces/training/side-quests/metadata/data/guten_tag.txt **1. 입력 유효성 검사** 가장 신뢰할 수 있는 해결책은 처리가 시작되기 전에 데이터시트를 검증하는 것입니다. 이를 통해 실행 중간에 알 수 없는 프로세스 오류로 나타나는 대신, 명확한 오류 메시지와 함께 문제를 조기에 발견할 수 있습니다. -[Hello nf-core](../../hello_nf-core/05_input_validation.md) 교육 과정에서 nf-schema 플러그인을 사용하여 입력 유효성 검사를 추가하는 방법을 다룹니다. +[Build with nf-core](../../hello_nf-core/05_input_validation.md) 교육 과정에서 nf-schema 플러그인을 사용하여 입력 유효성 검사를 추가하는 방법을 다룹니다. **2. 필수 값에 대한 명시적 프로세스 입력** diff --git a/docs/ko/docs/side_quests/plugin_development/next_steps.md b/docs/ko/docs/side_quests/plugin_development/next_steps.md index a79f2d02d4..5c9425b3dc 100644 --- a/docs/ko/docs/side_quests/plugin_development/next_steps.md +++ b/docs/ko/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Nextflow에서 필요했지만 찾지 못했던 기능을 생각해 보세요. 아직 수강하지 않으셨다면, 다음 교육 과정들을 확인해 보세요: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Nextflow의 기초 개념 -- **[Hello nf-core](../../hello_nf-core/index.md)**: nf-core 파이프라인 및 모범 사례 +- **[Build with nf-core](../../hello_nf-core/index.md)**: nf-core 파이프라인 및 모범 사례 - **[Side Quests](../index.md)**: 특정 주제에 대한 심층 학습 diff --git a/docs/ko/docs/training_collections/architects_toolkit_1.md b/docs/ko/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index b9e92c847e..0000000000 --- a/docs/ko/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: 아키텍트 툴킷 I -hide: - - toc ---- - -# 아키텍트 툴킷 I - -:material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -트레이닝 컬렉션은 고급 교육 자료([Side Quests](../side_quests/index.md)라고 함)를 통한 선별된 학습 경로를 제공합니다. 이 컬렉션은 견고하고 확장 가능한 워크플로우를 구축하기 위해 자주 함께 사용되는 네 가지 필수 주제를 다룹니다. - -## 학습 목표 - -이 컬렉션을 완료하면 다음에 대한 경험을 얻게 됩니다: - -- **복잡한 모듈식 워크플로우 아키텍처** - 여러 워크플로우를 응집력 있는 파이프라인으로 결합하기 -- **포괄적인 테스트 전략** - 워크플로우의 신뢰성과 유지 관리 가능성 보장하기 -- **메타데이터 관리** - 워크플로우 전반에 걸쳐 샘플별 메타데이터를 효과적으로 처리하기 -- **고급 데이터 처리** - 효율적인 데이터 분할 및 그룹화 패턴 구현하기 - -이러한 기술을 통해 실제 애플리케이션을 위한 견고하고 확장 가능하며 유지 관리 가능한 Nextflow 워크플로우를 구축할 수 있습니다. - -## 대상 및 사전 요구 사항 - -이 컬렉션은 기본 Nextflow 교육을 완료하고 고급 워크플로우 패턴, 테스트 전략, 데이터 및 메타데이터 처리 기법에 대해 더 깊이 배우고자 하는 사용자를 위해 설계되었습니다. - -**사전 요구 사항** - -- [Hello Nextflow](../hello_nextflow/index.md) 교육 완료 또는 이에 상응하는 경험 -- Nextflow 구문 및 개념에 대한 기본적인 이해 -- 기본 워크플로우 개발 패턴에 대한 이해 -- 명령줄 도구 사용 경험 - -## 컬렉션 내용 - -이 컬렉션은 상호 보완적인 워크플로우 엔지니어링 주제를 다루는 네 개의 Side Quest로 구성됩니다: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - 복잡한 워크플로우 아키텍처 및 구성 -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Nextflow 워크플로우를 위한 테스트 전략 -3. **[Metadata](../side_quests/metadata/index.md)** - Nextflow 채널의 항목에 대한 메타데이터 처리 -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - 고급 데이터 처리 패턴 - -각 Side Quest는 독립적인 개념을 다루는 자체 완결형이지만, 주제에 대한 논리적 진행을 위해 위에 나열된 순서대로 완료하는 것을 권장합니다. - -## 이 컬렉션 사용 방법 - -먼저, 아래의 "Open in GitHub Codespaces" 버튼을 Command+클릭하여 별도 탭에서 교육 환경을 실행한 다음, 로딩되는 동안 계속 읽어주십시오. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -환경이 실행되면 다음과 같이 컬렉션을 진행하십시오: - -1. 이 탭에서: 위에 나열된 첫 번째 Side Quest로 이동하여 단계별 개발 연습을 확인합니다. -2. Codespaces 탭에서: Side Quest의 연습을 진행합니다. -3. Side Quest를 완료하면 이 페이지로 돌아와 위 목록의 다음 항목으로 이동합니다. -4. 컬렉션을 모두 완료하면 아래 버튼을 클릭하여 매우 짧은 설문조사를 작성해 주십시오. 여러분의 피드백은 모든 사람을 위한 교육 자료를 지속적으로 개선하는 데 도움이 됩니다. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -시작할 준비가 되셨나요? 위의 첫 번째 모듈부터 시작하십시오! diff --git a/docs/ko/docs/training_collections/index.md b/docs/ko/docs/training_collections/index.md deleted file mode 100644 index 0271b6ad7c..0000000000 --- a/docs/ko/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: 교육 컬렉션 -hide: - - toc ---- - -# 교육 컬렉션 - -:material-information-outline:{ .ai-translation-notice-icon } AI 지원 번역 - [자세히 알아보기 및 개선 제안](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -이 섹션에는 특정 주제나 사용 사례를 중심으로 포괄적인 학습 경험을 제공하는 것을 목표로 하는 [Side Quests](../side_quests/index.md)라는 교육 모듈의 큐레이션된 컬렉션이 포함되어 있습니다. - -## 전제 조건 - -각 컬렉션에는 인덱스 페이지에 문서화된 특정 전제 조건이 있습니다. 그러나 대부분의 컬렉션은 다음을 가정합니다: - -- 명령줄 사용 경험 -- [Hello Nextflow](../hello_nextflow/index.md) 초급 교육 과정에서 다루는 기본적인 Nextflow 개념 및 도구 - -기술적 요구 사항 및 환경 설정에 대해서는 [Environment Setup](../envsetup/index.md) 단기 과정을 참조하십시오. - -## 사용 가능한 컬렉션 - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - 복잡한 파이프라인 구성, 테스트 전략 구현, 메타데이터 관리, 데이터 그룹화 및 분할을 위한 워크플로우 아키텍처 패턴을 다루는 네 가지 Side Quest 컬렉션입니다. _예상 소요 시간: 그룹 교육 기준 4시간._ - -## 새로운 컬렉션 제안하기 - -저희는 추가 Side Quest 및 컬렉션 개발을 적극적으로 진행하고 있습니다. -컬렉션에서 다루는 것이 적절하다고 생각하시는 주제를 커뮤니티 포럼의 [Training 섹션](https://community.seqera.io/c/training/)에 게시하여 제안해 주시기 바랍니다. diff --git a/docs/ko/mkdocs.yml b/docs/ko/mkdocs.yml index f79b50886b..41013b7a61 100644 --- a/docs/ko/mkdocs.yml +++ b/docs/ko/mkdocs.yml @@ -12,3 +12,35 @@ extra: 쿠키 사용 방법에 대해 자세히 알아보세요. cookies: posthog: "PostHog 분석" + nav_group_labels: + "교육 환경": "설정 및 도움말" + "Nextflow Run": "사용자" + "Hello Nextflow": "개발자" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "과학을 위한 Nextflow" + nf4_science/genomics/index.md: "유전체학" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "이미징" + side_quests/index.md: "사이드 퀘스트" + envsetup/index.md: "교육 환경" + nav_child_title_overrides: + nextflow_run/index.md: "개요" + nfcore_run/index.md: "개요" + seqera_run/index.md: "개요" + hello_nextflow/index.md: "개요" + hello_nf-core/index.md: "개요" + nf4_science/index.md: "개요" + nf4_science/genomics/index.md: "개요" + nf4_science/rnaseq/index.md: "개요" + nf4_science/imaging/index.md: "개요" + side_quests/index.md: "개요" + nav_section_separators: + side_quests/dev_environment/index.md: "개발자 도구 및 팁" + side_quests/working_with_files/index.md: "데이터 흐름 심층 분석" + side_quests/workflows_of_workflows/index.md: "실전 모듈형 아키텍처" + side_quests/nf_test/index.md: "Nextflow 확장 유니버스" diff --git a/docs/pl/docs/hello_nextflow/next_steps.md b/docs/pl/docs/hello_nextflow/next_steps.md index 87ab5869da..83e0f90ece 100644 --- a/docs/pl/docs/hello_nextflow/next_steps.md +++ b/docs/pl/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Jesteś teraz wyposażony w fundamentalną wiedzę, aby zacząć tworzyć własn Oto nasze 3 najlepsze sugestie, co zrobić dalej: - Zastosuj Nextflow'a do naukowego przypadku analizy z [Nextflow dla nauki](../nf4_science/index.md) -- Rozpocznij pracę z nf-core dzięki [Hello nf-core](../hello_nf-core/index.md) +- Rozpocznij pracę z nf-core dzięki [Build with nf-core](../hello_nf-core/index.md) - Odkryj bardziej zaawansowane funkcje Nextflow'a w ramach [Side Quests](../side_quests/index.md) Na koniec polecamy zapoznać się z [**Seqera Platform**](https://seqera.io/), platformą chmurową opracowaną przez twórców Nextflow'a, która jeszcze bardziej ułatwia uruchamianie workflow'ów i zarządzanie nimi, a także zarządzanie danymi i interaktywne uruchamianie analiz w dowolnym środowisku. diff --git a/docs/pl/docs/hello_nf-core/01_run_demo.md b/docs/pl/docs/hello_nf-core/01_run_demo.md index 7653a4296c..bfaf35b8e5 100644 --- a/docs/pl/docs/hello_nf-core/01_run_demo.md +++ b/docs/pl/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -W tej pierwszej części szkolenia Hello nf-core pokażemy Ci, jak znaleźć i wypróbować pipeline nf-core, skonfigurować i dostosować jego wykonanie do swoich potrzeb oraz zrozumieć, jak walidacja wejścia chroni przed typowymi błędami. +W tej pierwszej części szkolenia Build with nf-core pokażemy Ci, jak znaleźć i wypróbować pipeline nf-core, skonfigurować i dostosować jego wykonanie do swoich potrzeb oraz zrozumieć, jak walidacja wejścia chroni przed typowymi błędami. Będziemy używać pipeline'a o nazwie nf-core/demo, który jest utrzymywany przez projekt nf-core jako część inwentarza pipeline'ów służących do demonstracji i celów szkoleniowych. diff --git a/docs/pl/docs/hello_nf-core/02_rewrite_hello.md b/docs/pl/docs/hello_nf-core/02_rewrite_hello.md index 7d9b8c048c..f6f89d6202 100644 --- a/docs/pl/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/pl/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -W tej drugiej części kursu szkoleniowego Hello nf-core pokażemy Ci, jak utworzyć wersję pipeline'u kompatybilną z nf-core, opartą na projekcie z kursu dla początkujących [Hello Nextflow](../hello_nextflow/index.md). +W tej drugiej części kursu szkoleniowego Build with nf-core pokażemy Ci, jak utworzyć wersję pipeline'u kompatybilną z nf-core, opartą na projekcie z kursu dla początkujących [Hello Nextflow](../hello_nextflow/index.md). Zrobimy to w dwóch fazach: najpierw użyjemy narzędzi nf-core do stworzenia szkieletu pipeline'u, a następnie przeszczepimy na niego istniejący kod 'zwykłego' pipeline'u. diff --git a/docs/pl/docs/hello_nf-core/03_use_module.md b/docs/pl/docs/hello_nf-core/03_use_module.md index 4a5d7844f2..ef00e6678a 100644 --- a/docs/pl/docs/hello_nf-core/03_use_module.md +++ b/docs/pl/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -W trzeciej części kursu szkoleniowego Hello nf-core pokażemy, jak znaleźć, zainstalować i użyć istniejącego modułu nf-core w Twoim pipeline'ie. +W trzeciej części kursu szkoleniowego Build with nf-core pokażemy, jak znaleźć, zainstalować i użyć istniejącego modułu nf-core w Twoim pipeline'ie. Jedną z głównych korzyści pracy z nf-core jest możliwość wykorzystania wcześniej przygotowanych, przetestowanych modułów z repozytorium [nf-core/modules](https://github.com/nf-core/modules). Zamiast pisać każdy proces od podstaw, możesz zainstalować i używać gotowych komponentów utrzymywanych przez społeczność, które przestrzegają najlepszych praktyk. diff --git a/docs/pl/docs/hello_nf-core/04_make_module.md b/docs/pl/docs/hello_nf-core/04_make_module.md index 12910f4837..e38e253d34 100644 --- a/docs/pl/docs/hello_nf-core/04_make_module.md +++ b/docs/pl/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -W czwartej części kursu szkoleniowego Hello nf-core pokażemy, jak utworzyć moduł nf-core, stosując kluczowe konwencje, które czynią takie komponenty przenośnymi i łatwymi w utrzymaniu. +W czwartej części kursu szkoleniowego Build with nf-core pokażemy, jak utworzyć moduł nf-core, stosując kluczowe konwencje, które czynią takie komponenty przenośnymi i łatwymi w utrzymaniu. Projekt nf-core udostępnia polecenie (`nf-core modules create`), które automatycznie generuje prawidłowo ustrukturyzowane szablony, podobnie jak to, czego użyliśmy dla workflow'u w Części 2. Jednak w celach edukacyjnych zaczniemy od wykonania tego ręcznie: przekształcenia lokalnego komponentu `cowpy` w Twoim pipeline'ie `core-hello` w moduł w stylu nf-core krok po kroku. diff --git a/docs/pl/docs/hello_nf-core/05_input_validation.md b/docs/pl/docs/hello_nf-core/05_input_validation.md index c03f086994..1fe889cd98 100644 --- a/docs/pl/docs/hello_nf-core/05_input_validation.md +++ b/docs/pl/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -W tej piątej części kursu szkoleniowego Hello nf-core pokażemy Ci, jak używać wtyczki nf-schema do walidacji danych wejściowych i parametrów pipeline'u. +W tej piątej części kursu szkoleniowego Build with nf-core pokażemy Ci, jak używać wtyczki nf-schema do walidacji danych wejściowych i parametrów pipeline'u. ??? info "Jak zacząć od tej sekcji" @@ -808,6 +808,6 @@ Zaimplementowałeś i przetestowałeś zarówno walidację parametrów, jak i wa ### Co dalej? -Ukończyłeś wszystkie pięć części kursu szkoleniowego Hello nf-core! +Ukończyłeś wszystkie pięć części kursu szkoleniowego Build with nf-core! Przejdź do [Podsumowania](next_steps.md), aby zastanowić się nad tym, co zbudowałeś i czego się nauczyłeś. diff --git a/docs/pl/docs/hello_nf-core/index.md b/docs/pl/docs/hello_nf-core/index.md index ab29b49c99..68dad1d70b 100644 --- a/docs/pl/docs/hello_nf-core/index.md +++ b/docs/pl/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Dziedzina:** Wszystkie ćwiczenia są niezależne od dziedziny, więc nie jest wymagana wcześniejsza wiedza naukowa." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core to praktyczne wprowadzenie do korzystania z zasobów i najlepszych praktyk nf-core.** +**Build with nf-core to praktyczne wprowadzenie do korzystania z zasobów i najlepszych praktyk nf-core.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/pl/docs/hello_nf-core/next_steps.md b/docs/pl/docs/hello_nf-core/next_steps.md index 6e24ad7503..eea659238f 100644 --- a/docs/pl/docs/hello_nf-core/next_steps.md +++ b/docs/pl/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Gratulacje z okazji ukończenia kursu szkoleniowego Hello nf-core! 🎉 +Gratulacje z okazji ukończenia kursu szkoleniowego Build with nf-core! 🎉 diff --git a/docs/pl/docs/index.md b/docs/pl/docs/index.md index 8af785b185..46e6828e1a 100644 --- a/docs/pl/docs/index.md +++ b/docs/pl/docs/index.md @@ -132,11 +132,11 @@ hide: Te kursy przeprowadzą Cię od podstaw Nextflow do najlepszych praktyk nf-core. Dowiedz się, jak i dlaczego społeczność nf-core buduje pipeline'y, oraz jak możesz wnosić wkład i ponownie wykorzystywać te techniki. - ??? courses "**Hello nf-core:** Pierwsze kroki z nf-core" + ??? courses "**Build with nf-core:** Pierwsze kroki z nf-core" Dla deweloperów, którzy chcą nauczyć się uruchamiać i rozwijać pipeline'y zgodne z [nf-core](https://nf-co.re/). Kurs omawia strukturę pipeline'ów nf-core w stopniu wystarczającym do tworzenia prostych, ale w pełni funkcjonalnych pipeline'ów zgodnych z szablonem i najlepszymi praktykami nf-core, a także do korzystania z istniejących modułów nf-core. - [Rozpocznij szkolenie Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Rozpocznij szkolenie Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Przeglądaj Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Zalecane ścieżki nauki przez Side Quests" + ??? courses "**Learning Paths:** Zalecane ścieżki nauki przez Side Quests" - Training Collections łączą wiele Side Quests, aby zapewnić kompleksowe doświadczenie edukacyjne wokół określonego tematu lub przypadku użycia. + Learning Paths łączą wiele Side Quests, aby zapewnić kompleksowe doświadczenie edukacyjne wokół określonego tematu lub przypadku użycia. - [Przeglądaj Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Przeglądaj Learning Paths :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/pl/docs/nextflow_run/03_config.md b/docs/pl/docs/nextflow_run/03_config.md index e17b6ec0c1..7226a54cfe 100644 --- a/docs/pl/docs/nextflow_run/03_config.md +++ b/docs/pl/docs/nextflow_run/03_config.md @@ -1731,7 +1731,7 @@ Wiesz wszystko, co musisz wiedzieć, aby rozpocząć uruchamianie i zarządzanie To kończy ten kurs, ale jeśli chcesz kontynuować naukę, mamy dwie główne rekomendacje: - Jeśli chcesz zagłębić się w tworzenie własnych pipeline'ów, zajrzyj do [Hello Nextflow](../hello_nextflow/index.md), kursu dla początkujących, który obejmuje tę samą ogólną progresję co ten, ale wchodzi w znacznie więcej szczegółów na temat kanałów i operatorów. -- Jeśli chciałbyś kontynuować naukę uruchamiania pipeline'ów Nextflow bez zagłębiania się w kod, zajrzyj do pierwszej części [Hello nf-core](../hello_nf-core/index.md), która wprowadza narzędzia do znajdowania i uruchamiania pipeline'ów z niezwykle popularnego projektu [nf-core](https://nf-co.re/). +- Jeśli chciałbyś kontynuować naukę uruchamiania pipeline'ów Nextflow bez zagłębiania się w kod, zajrzyj do pierwszej części [Build with nf-core](../hello_nf-core/index.md), która wprowadza narzędzia do znajdowania i uruchamiania pipeline'ów z niezwykle popularnego projektu [nf-core](https://nf-co.re/). Baw się dobrze! diff --git a/docs/pl/docs/nextflow_run/next_steps.md b/docs/pl/docs/nextflow_run/next_steps.md index 53ab2efad6..b5b2902baf 100644 --- a/docs/pl/docs/nextflow_run/next_steps.md +++ b/docs/pl/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Oto nasze najlepsze sugestie, co zrobić dalej: - Nie tylko uruchamiaj Nextflow, ale go pisz! Zostań programistą Nextflow dzięki [Hello Nextflow](../hello_nextflow/index.md) - Zastosuj Nextflow do naukowego przypadku użycia z [Nextflow for Science](../nf4_science/index.md) -- Rozpocznij pracę z nf-core dzięki [Hello nf-core](../hello_nf-core/index.md) +- Rozpocznij pracę z nf-core dzięki [Build with nf-core](../hello_nf-core/index.md) - Naucz się technik rozwiązywania problemów dzięki [Debugging Side Quest](../side_quests/debugging/index.md) Na koniec zalecamy zapoznanie się z [**Seqera Platform**](https://seqera.io/) — platformą chmurową opracowaną przez twórców Nextflow, która jeszcze bardziej ułatwia uruchamianie i zarządzanie workflow'ami, a także zarządzanie danymi i interaktywne przeprowadzanie analiz w dowolnym środowisku. diff --git a/docs/pl/docs/nf4_science/_template/next_steps.md b/docs/pl/docs/nf4_science/_template/next_steps.md index e233103d90..ffa0c0e8de 100644 --- a/docs/pl/docs/nf4_science/_template/next_steps.md +++ b/docs/pl/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Jesteś teraz przygotowany, aby zacząć stosować Nextflow do workflow'ów anal Oto nasze najlepsze sugestie, co zrobić dalej: - Zastosuj Nextflow do innych przypadków użycia analizy naukowej z [Nextflow for Science](../index.md) -- Zacznij pracę z nf-core dzięki [Hello nf-core](../../hello_nf-core/index.md) +- Zacznij pracę z nf-core dzięki [Build with nf-core](../../hello_nf-core/index.md) - Poznaj bardziej zaawansowane funkcje Nextflow dzięki [Side Quests](../../side_quests/index.md) Na koniec zalecamy zapoznanie się z [**Seqera Platform**](https://seqera.io/) — platformą opartą na chmurze, opracowaną przez twórców Nextflow, która jeszcze bardziej ułatwia uruchamianie i zarządzanie Twoimi workflow'ami, a także zarządzanie danymi i interaktywne przeprowadzanie analiz w dowolnym środowisku. diff --git a/docs/pl/docs/nf4_science/genomics/next_steps.md b/docs/pl/docs/nf4_science/genomics/next_steps.md index 3939f13b90..83a92d4c85 100644 --- a/docs/pl/docs/nf4_science/genomics/next_steps.md +++ b/docs/pl/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Jesteś teraz przygotowany, aby zacząć stosować Nextflow do workflow'ów anal Oto nasze najlepsze sugestie, co zrobić dalej: - Zastosuj Nextflow do innych przypadków użycia analizy naukowej z [Nextflow for Science](../index.md) -- Rozpocznij pracę z nf-core dzięki [Hello nf-core](../../hello_nf-core/index.md) +- Rozpocznij pracę z nf-core dzięki [Build with nf-core](../../hello_nf-core/index.md) - Poznaj bardziej zaawansowane funkcje Nextflow dzięki [Side Quests](../../side_quests/index.md) Na koniec zalecamy zapoznanie się z [**Seqera Platform**](https://seqera.io/) — platformą opartą na chmurze, opracowaną przez twórców Nextflow, która jeszcze bardziej ułatwia uruchamianie i zarządzanie Twoimi workflow'ami, a także zarządzanie danymi i interaktywne przeprowadzanie analiz w dowolnym środowisku. diff --git a/docs/pl/docs/nf4_science/imaging/02_run_molkart.md b/docs/pl/docs/nf4_science/imaging/02_run_molkart.md index c569fe159a..7537e411fc 100644 --- a/docs/pl/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/pl/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Kluczowe cechy pipeline'ów nf-core: !!! tip "Chcesz dowiedzieć się więcej o nf-core?" - Aby zapoznać się ze szczegółowym wprowadzeniem do tworzenia pipeline'ów nf-core, sprawdź kurs szkoleniowy [Hello nf-core](../../hello_nf-core/index.md). + Aby zapoznać się ze szczegółowym wprowadzeniem do tworzenia pipeline'ów nf-core, sprawdź kurs szkoleniowy [Build with nf-core](../../hello_nf-core/index.md). Obejmuje on tworzenie i dostosowywanie pipeline'ów nf-core od podstaw. ### 1.2. Pipeline molkart diff --git a/docs/pl/docs/nf4_science/imaging/04_config.md b/docs/pl/docs/nf4_science/imaging/04_config.md index 151d64816c..fe97b95527 100644 --- a/docs/pl/docs/nf4_science/imaging/04_config.md +++ b/docs/pl/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Następne kroki: - Wypełnij ankietę kursu, aby przekazać informację zwrotną - Sprawdź [Hello Nextflow](../../hello_nextflow/index.md), aby dowiedzieć się więcej o tworzeniu workflow'ów -- Poznaj [Hello nf-core](../../hello_nf-core/index.md), aby zgłębić narzędzia nf-core +- Poznaj [Build with nf-core](../../hello_nf-core/index.md), aby zgłębić narzędzia nf-core - Przeglądaj inne kursy w [kolekcjach szkoleniowych](../../training_collections/index.md) diff --git a/docs/pl/docs/nf4_science/rnaseq/next_steps.md b/docs/pl/docs/nf4_science/rnaseq/next_steps.md index ef9f1c8b34..48e7f8b2b8 100644 --- a/docs/pl/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/pl/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Jesteś teraz przygotowany, aby zacząć stosować Nextflow do workflow'ów anal Oto nasze najważniejsze sugestie dotyczące kolejnych kroków: - Zastosuj Nextflow do innych przypadków użycia w analizie naukowej z [Nextflow for Science](../index.md) -- Rozpocznij pracę z nf-core dzięki [Hello nf-core](../../hello_nf-core/index.md) +- Rozpocznij pracę z nf-core dzięki [Build with nf-core](../../hello_nf-core/index.md) - Poznaj bardziej zaawansowane funkcje Nextflow dzięki [Side Quests](../../side_quests/index.md) Na koniec polecamy zapoznanie się z **[Seqera Platform](https://seqera.io/)**, platformą w chmurze opracowaną przez twórców Nextflow, która jeszcze bardziej ułatwia uruchamianie i zarządzanie workflow'ami, a także zarządzanie danymi i przeprowadzanie analiz interaktywnie w dowolnym środowisku. diff --git a/docs/pl/docs/side_quests/dev_environment/index.md b/docs/pl/docs/side_quests/dev_environment/index.md index 459041e23a..c81d65635b 100644 --- a/docs/pl/docs/side_quests/dev_environment/index.md +++ b/docs/pl/docs/side_quests/dev_environment/index.md @@ -632,7 +632,7 @@ Nie oczekujemy, że zapamiętasz wszystko, ale teraz wiesz, że te funkcje istni Zastosuj te umiejętności IDE podczas pracy z innymi modułami szkoleniowymi, na przykład: - **[nf-test](../nf_test/index.md)**: Twórz kompleksowe zestawy testów dla swoich workflow'ów -- **[Hello nf-core](../../hello_nf-core/index.md)**: Buduj pipeline'y produkcyjnej jakości zgodne ze standardami społeczności +- **[Build with nf-core](../../hello_nf-core/index.md)**: Buduj pipeline'y produkcyjnej jakości zgodne ze standardami społeczności Prawdziwa moc tych funkcji IDE ujawnia się podczas pracy nad większymi, bardziej złożonymi projektami. Zacznij stopniowo włączać je do swojego procesu pracy — po kilku sesjach staną się drugą naturą i zmienią Twoje podejście do programowania w Nextflow. diff --git a/docs/pl/docs/side_quests/metadata/index.md b/docs/pl/docs/side_quests/metadata/index.md index 08070ff65f..7b0a8a83c0 100644 --- a/docs/pl/docs/side_quests/metadata/index.md +++ b/docs/pl/docs/side_quests/metadata/index.md @@ -1739,7 +1739,7 @@ Istnieją dwa uzupełniające się podejścia, które czynią workflow'y bardzie **1. Walidacja wejść** Najbardziej niezawodnym rozwiązaniem jest walidacja arkusza danych przed rozpoczęciem jakiegokolwiek przetwarzania, dzięki czemu problemy są wykrywane wcześnie z czytelnym komunikatem błędu, zamiast ujawniać się jako tajemnicze błędy procesu w trakcie uruchomienia. -Szkolenie [Hello nf-core](../../hello_nf-core/05_input_validation.md) omawia, jak dodać walidację wejść za pomocą wtyczki nf-schema. +Szkolenie [Build with nf-core](../../hello_nf-core/05_input_validation.md) omawia, jak dodać walidację wejść za pomocą wtyczki nf-schema. **2. Jawne wejścia procesu dla wymaganych wartości** diff --git a/docs/pl/docs/side_quests/plugin_development/next_steps.md b/docs/pl/docs/side_quests/plugin_development/next_steps.md index 9b10db2d8a..d8624f62d8 100644 --- a/docs/pl/docs/side_quests/plugin_development/next_steps.md +++ b/docs/pl/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Jeśli stworzysz użyteczną wtyczkę, rozważ podzielenie się nią ze społecz Jeśli jeszcze tego nie zrobiłeś, sprawdź nasze inne kursy szkoleniowe: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Podstawowe koncepcje Nextflow'a -- **[Hello nf-core](../../hello_nf-core/index.md)**: Pipeline'y nf-core i najlepsze praktyki +- **[Build with nf-core](../../hello_nf-core/index.md)**: Pipeline'y nf-core i najlepsze praktyki - **[Side Quests](../index.md)**: Dogłębne omówienie konkretnych tematów diff --git a/docs/pl/docs/training_collections/architects_toolkit_1.md b/docs/pl/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 78eef27ad6..0000000000 --- a/docs/pl/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Zestaw Narzędzi Architekta I -hide: - - toc ---- - -# Zestaw Narzędzi Architekta I - -:material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Nasze Kolekcje Szkoleniowe dostarczają wyselekcjonowane ścieżki uczenia się poprzez nasze zaawansowane materiały szkoleniowe (zwane [Side Quests](../side_quests/index.md)). Ta kolekcja obejmuje cztery kluczowe tematy, które są często używane razem do budowania solidnych i skalowalnych workflow'ów. - -## Cele szkolenia - -Po ukończeniu tej kolekcji zdobędziesz doświadczenie w: - -- **Złożonych modułowych architekturach workflow'ów** - Łączenie wielu workflow'ów w spójne pipeline'y -- **Kompleksowych strategiach testowania** - Zapewnianie, że Twoje workflow'y są niezawodne i łatwe w utrzymaniu -- **Zarządzaniu metadanymi** - Efektywna obsługa metadanych specyficznych dla próbek w całym workflow'ie -- **Zaawansowanym przetwarzaniu danych** - Wdrażanie wydajnych wzorców dzielenia i grupowania danych - -Te umiejętności pozwolą Ci budować solidne, skalowalne i łatwe w utrzymaniu workflow'y Nextflow'a dla rzeczywistych zastosowań. - -## Odbiorcy i wymagania wstępne - -Ta kolekcja jest przeznaczona dla użytkowników, którzy ukończyli podstawowe szkolenie z Nextflow'a i chcą zagłębić się w zaawansowane wzorce workflow'ów, strategie testowania oraz techniki obsługi danych i metadanych. - -**Wymagania wstępne** - -- Ukończenie szkolenia [Hello Nextflow](../hello_nextflow/index.md) lub równoważne doświadczenie -- Podstawowa znajomość składni i koncepcji Nextflow'a -- Zrozumienie podstawowych wzorców tworzenia workflow'ów -- Doświadczenie z narzędziami wiersza poleceń - -## Zawartość kolekcji - -Ta kolekcja składa się z czterech Side Quests, które obejmują uzupełniające się tematy inżynierii workflow'ów: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Złożona architektura i kompozycja workflow'ów -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Strategie testowania workflow'ów Nextflow'a -3. **[Metadata](../side_quests/metadata/index.md)** - Obsługa metadanych dla elementów w kanałach Nextflow'a -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Zaawansowane wzorce przetwarzania danych - -Każdy Side Quest jest samodzielny i obejmuje niezależne koncepcje. Zalecamy jednak ukończenie ich w kolejności wymienionej powyżej, aby zapewnić logiczną progresję przez te tematy. - -## Jak korzystać z tej kolekcji - -Najpierw kliknij z wciśniętym klawiszem Ctrl przycisk "Open in GitHub Codespaces" poniżej, aby uruchomić środowisko szkoleniowe w osobnej karcie, następnie czytaj dalej podczas jego ładowania. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Gdy Twoje środowisko będzie uruchomione, pracuj nad kolekcją w następujący sposób: - -1. W tej karcie: Przejdź do pierwszego Side Quest wymienionego powyżej, który opisuje krok po kroku ćwiczenia rozwojowe. -2. W karcie Codespaces: Pracuj nad ćwiczeniami dla tego Side Quest. -3. Gdy ukończysz Side Quest, wróć na tę stronę i przejdź do następnego na liście powyżej. -4. Gdy ukończysz kolekcję, kliknij przycisk poniżej, aby wypełnić bardzo krótką ankietę. Twoja opinia pozwala nam na ciągłe ulepszanie materiałów szkoleniowych dla wszystkich. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Gotowy, aby zacząć? Zacznij od pierwszego modułu powyżej! diff --git a/docs/pl/docs/training_collections/index.md b/docs/pl/docs/training_collections/index.md deleted file mode 100644 index c7496356b5..0000000000 --- a/docs/pl/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Kolekcje Szkoleń -hide: - - toc ---- - -# Kolekcje Szkoleń - -:material-information-outline:{ .ai-translation-notice-icon } Tłumaczenie wspomagane przez AI - [dowiedz się więcej i zasugeruj ulepszenia](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Ta sekcja zawiera wyselekcjonowane kolekcje modułów szkoleniowych zwanych [Side Quests](../side_quests/index.md), które mają na celu zapewnienie kompleksowego doświadczenia edukacyjnego wokół określonego tematu lub przypadku użycia. - -## Wymagania wstępne - -Każda kolekcja ma określone wymagania wstępne udokumentowane na swojej stronie indeksu. Jednak większość kolekcji zakłada: - -- Doświadczenie z linią poleceń -- Podstawowe koncepcje Nextflow i narzędzia omówione w kursie szkoleniowym dla początkujących [Hello Nextflow](../hello_nextflow/index.md) - -Wymagania techniczne i konfigurację środowiska można znaleźć w mini-kursie [Konfiguracja Środowiska](../envsetup/index.md). - -## Dostępne kolekcje - -- [Zestaw Narzędzi Architekta I](./architects_toolkit_1.md) - Kolekcja czterech Side Quests obejmujących wzorce architektury workflow'ów do tworzenia złożonych pipeline'ów, wdrażania strategii testowania, zarządzania metadanymi oraz grupowania i dzielenia danych. _Szacowany czas trwania: 4 godziny w szkoleniu grupowym._ - -## Sugerowanie nowych kolekcji - -Aktywnie pracujemy nad rozwojem dodatkowych Side Quests i Kolekcji. -Prosimy o sugerowanie tematów, które Twoim zdaniem warto byłoby uwzględnić w Kolekcji, poprzez publikację na [forum społeczności w sekcji Szkolenia](https://community.seqera.io/c/training/). diff --git a/docs/pl/mkdocs.yml b/docs/pl/mkdocs.yml index fc3e6f3f32..9ed50985eb 100644 --- a/docs/pl/mkdocs.yml +++ b/docs/pl/mkdocs.yml @@ -14,3 +14,35 @@ extra: jak używamy plików cookie. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Środowisko Szkoleniowe": "Konfiguracja i Pomoc" + "Nextflow Run": "Użytkownicy" + "Hello Nextflow": "Programiści" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow dla Nauki" + nf4_science/genomics/index.md: "Genomika" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Obrazowanie" + side_quests/index.md: "Side Quests" + envsetup/index.md: "Środowisko Szkoleniowe" + nav_child_title_overrides: + nextflow_run/index.md: "Przegląd" + nfcore_run/index.md: "Przegląd" + seqera_run/index.md: "Przegląd" + hello_nextflow/index.md: "Przegląd" + hello_nf-core/index.md: "Przegląd" + nf4_science/index.md: "Przegląd" + nf4_science/genomics/index.md: "Przegląd" + nf4_science/rnaseq/index.md: "Przegląd" + nf4_science/imaging/index.md: "Przegląd" + side_quests/index.md: "Przegląd" + nav_section_separators: + side_quests/dev_environment/index.md: "Narzędzia i Triki dla Programistów" + side_quests/working_with_files/index.md: "Głębokie Zanurzenie w Przepływ Danych" + side_quests/workflows_of_workflows/index.md: "Architektura Modularna w Praktyce" + side_quests/nf_test/index.md: "Rozszerzone Uniwersum Nextflow" diff --git a/docs/pt/docs/hello_nextflow/next_steps.md b/docs/pt/docs/hello_nextflow/next_steps.md index da5b3af91a..72a08f11a4 100644 --- a/docs/pt/docs/hello_nextflow/next_steps.md +++ b/docs/pt/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Você está agora equipado com o conhecimento fundamental para começar a desenv Aqui estão nossas 3 principais sugestões do que fazer em seguida: - Aplique Nextflow a um caso de uso de análise científica com [Nextflow for Science](../nf4_science/index.md) -- Comece com nf-core através do [Hello nf-core](../hello_nf-core/index.md) +- Comece com nf-core através do [Build with nf-core](../hello_nf-core/index.md) - Explore recursos mais avançados do Nextflow com as [Side Quests](../side_quests/index.md) Finalmente, recomendamos que você dê uma olhada no [**Seqera Platform**](https://seqera.io/), uma plataforma baseada em nuvem desenvolvida pelos criadores do Nextflow que torna ainda mais fácil lançar e gerenciar seus fluxos de trabalho, bem como gerenciar seus dados e executar análises interativamente em qualquer ambiente. diff --git a/docs/pt/docs/hello_nf-core/01_run_demo.md b/docs/pt/docs/hello_nf-core/01_run_demo.md index 06c2b8ef7d..6260aa5286 100644 --- a/docs/pt/docs/hello_nf-core/01_run_demo.md +++ b/docs/pt/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Nesta primeira parte do curso de treinamento Hello nf-core, mostramos como encontrar e experimentar um pipeline do nf-core, configurar e personalizar sua execução para suas necessidades, e entender como a validação de entrada protege contra erros comuns. +Nesta primeira parte do curso de treinamento Build with nf-core, mostramos como encontrar e experimentar um pipeline do nf-core, configurar e personalizar sua execução para suas necessidades, e entender como a validação de entrada protege contra erros comuns. Vamos usar um pipeline chamado nf-core/demo que é mantido pelo projeto nf-core como parte de seu inventário de pipelines para fins de demonstração e treinamento. diff --git a/docs/pt/docs/hello_nf-core/02_rewrite_hello.md b/docs/pt/docs/hello_nf-core/02_rewrite_hello.md index c2b82c811b..9dccafdc2c 100644 --- a/docs/pt/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/pt/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Nesta segunda parte do curso de treinamento Hello nf-core, mostramos como criar uma versão compatível com nf-core do pipeline produzido pelo curso para iniciantes [Hello Nextflow](../hello_nextflow/index.md). +Nesta segunda parte do curso de treinamento Build with nf-core, mostramos como criar uma versão compatível com nf-core do pipeline produzido pelo curso para iniciantes [Hello Nextflow](../hello_nextflow/index.md). Vamos fazer isso em duas fases: primeiro, usaremos as ferramentas nf-core para criar uma estrutura de pipeline, e então enxertaremos o código do pipeline 'regular' existente nessa estrutura. diff --git a/docs/pt/docs/hello_nf-core/03_use_module.md b/docs/pt/docs/hello_nf-core/03_use_module.md index 816ef5127e..a37e75e7b5 100644 --- a/docs/pt/docs/hello_nf-core/03_use_module.md +++ b/docs/pt/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Nesta terceira parte do curso de treinamento Hello nf-core, mostramos como encontrar, instalar e usar um módulo nf-core existente no seu pipeline. +Nesta terceira parte do curso de treinamento Build with nf-core, mostramos como encontrar, instalar e usar um módulo nf-core existente no seu pipeline. Um dos grandes benefícios de trabalhar com nf-core é a capacidade de aproveitar módulos pré-construídos e testados do repositório [nf-core/modules](https://github.com/nf-core/modules). Em vez de escrever cada processo do zero, você pode instalar e usar módulos mantidos pela comunidade que seguem as melhores práticas. diff --git a/docs/pt/docs/hello_nf-core/04_make_module.md b/docs/pt/docs/hello_nf-core/04_make_module.md index 0a2208bd9f..088a529fb7 100644 --- a/docs/pt/docs/hello_nf-core/04_make_module.md +++ b/docs/pt/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Nesta quarta parte do curso de treinamento Hello nf-core, mostramos como criar um módulo nf-core aplicando as convenções principais que tornam os módulos portáteis e de fácil manutenção. +Nesta quarta parte do curso de treinamento Build with nf-core, mostramos como criar um módulo nf-core aplicando as convenções principais que tornam os módulos portáteis e de fácil manutenção. O projeto nf-core fornece um comando (`nf-core modules create`) que gera templates de módulos estruturados corretamente de forma automática, semelhante ao que usamos para o fluxo de trabalho na Parte 2. No entanto, para fins didáticos, vamos começar fazendo manualmente: transformar o módulo local `cowpy` em seu pipeline `core-hello` em um módulo no estilo nf-core passo a passo. diff --git a/docs/pt/docs/hello_nf-core/05_input_validation.md b/docs/pt/docs/hello_nf-core/05_input_validation.md index 938319dad1..8ea0d9f540 100644 --- a/docs/pt/docs/hello_nf-core/05_input_validation.md +++ b/docs/pt/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Na quinta parte do curso de treinamento Hello nf-core, mostramos como usar o plugin nf-schema para validar entradas e parâmetros do pipeline. +Na quinta parte do curso de treinamento Build with nf-core, mostramos como usar o plugin nf-schema para validar entradas e parâmetros do pipeline. ??? info "Como começar a partir desta seção" @@ -808,6 +808,6 @@ Você implementou e testou tanto a validação de parâmetros quanto a validaç ### O que vem a seguir? -Você completou todas as cinco partes do curso de treinamento Hello nf-core! +Você completou todas as cinco partes do curso de treinamento Build with nf-core! Continue para o [Resumo](next_steps.md) para refletir sobre o que você construiu e aprendeu. diff --git a/docs/pt/docs/hello_nf-core/index.md b/docs/pt/docs/hello_nf-core/index.md index 9818fd9e7e..b915ed8444 100644 --- a/docs/pt/docs/hello_nf-core/index.md +++ b/docs/pt/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Domínio:** Os exercícios são todos agnósticos de domínio, portanto nenhum conhecimento científico prévio é necessário." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core é uma introdução prática ao uso de recursos e melhores práticas do nf-core.** +**Build with nf-core é uma introdução prática ao uso de recursos e melhores práticas do nf-core.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/pt/docs/hello_nf-core/next_steps.md b/docs/pt/docs/hello_nf-core/next_steps.md index 32cada5bfe..cd167481c9 100644 --- a/docs/pt/docs/hello_nf-core/next_steps.md +++ b/docs/pt/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Parabéns por concluir o curso de treinamento Hello nf-core! 🎉 +Parabéns por concluir o curso de treinamento Build with nf-core! 🎉 diff --git a/docs/pt/docs/index.md b/docs/pt/docs/index.md index 9d703e4aff..4995515c99 100644 --- a/docs/pt/docs/index.md +++ b/docs/pt/docs/index.md @@ -132,11 +132,11 @@ hide: Esses cursos ajudam você a ir dos fundamentos do Nextflow às boas práticas do nf-core. Entenda como e por que a comunidade nf-core desenvolve pipelines, e como você pode contribuir e reutilizar essas técnicas. - ??? courses "**Hello nf-core:** Comece com o nf-core" + ??? courses "**Build with nf-core:** Comece com o nf-core" Para desenvolvedores que desejam aprender a executar e desenvolver pipelines compatíveis com o [nf-core](https://nf-co.re/). O curso aborda a estrutura dos pipelines nf-core com detalhes suficientes para permitir o desenvolvimento de pipelines simples, mas totalmente funcionais, que seguem o template e as boas práticas de desenvolvimento do nf-core, além de utilizar módulos nf-core existentes. - [Iniciar o treinamento Hello nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Iniciar o treinamento Build with nf-core :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Explorar os Side Quests :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Training Collections:** Trilhas de aprendizado recomendadas pelos Side Quests" + ??? courses "**Learning Paths:** Trilhas de aprendizado recomendadas pelos Side Quests" - As Training Collections combinam múltiplos Side Quests para oferecer uma experiência de aprendizado abrangente em torno de um tema ou caso de uso específico. + As Learning Paths combinam múltiplos Side Quests para oferecer uma experiência de aprendizado abrangente em torno de um tema ou caso de uso específico. - [Explorar as Training Collections :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Explorar as Learning Paths :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/pt/docs/nextflow_run/03_config.md b/docs/pt/docs/nextflow_run/03_config.md index 99292734d5..fc9127ee20 100644 --- a/docs/pt/docs/nextflow_run/03_config.md +++ b/docs/pt/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Você sabe tudo o que precisa saber para começar a executar e gerenciar pipelin Isso conclui este curso, mas se você está ansioso para continuar aprendendo, temos duas recomendações principais: - Se você quer se aprofundar no desenvolvimento de seus próprios pipelines, dê uma olhada em [Hello Nextflow](../hello_nextflow/index.md), um curso para iniciantes que cobre a mesma progressão geral que este mas entra em muito mais detalhes sobre canais e operadores. -- Se você gostaria de continuar aprendendo como executar pipelines Nextflow sem ir mais fundo no código, dê uma olhada na primeira parte de [Hello nf-core](../hello_nf-core/index.md), que introduz as ferramentas para encontrar e executar pipelines do projeto [nf-core](https://nf-co.re/) imensamente popular. +- Se você gostaria de continuar aprendendo como executar pipelines Nextflow sem ir mais fundo no código, dê uma olhada na primeira parte de [Build with nf-core](../hello_nf-core/index.md), que introduz as ferramentas para encontrar e executar pipelines do projeto [nf-core](https://nf-co.re/) imensamente popular. Divirta-se! diff --git a/docs/pt/docs/nextflow_run/next_steps.md b/docs/pt/docs/nextflow_run/next_steps.md index 9f97b14990..eb03007531 100644 --- a/docs/pt/docs/nextflow_run/next_steps.md +++ b/docs/pt/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Aqui estão nossas principais sugestões do que fazer a seguir: - Não apenas execute Nextflow, escreva! Torne-se um desenvolvedor Nextflow com [Hello Nextflow](../hello_nextflow/index.md) - Aplique Nextflow a um caso de uso de análise científica com [Nextflow for Science](../nf4_science/index.md) -- Comece com nf-core com [Hello nf-core](../hello_nf-core/index.md) +- Comece com nf-core com [Build with nf-core](../hello_nf-core/index.md) - Aprenda técnicas de solução de problemas com a [Side Quest de Debugging](../side_quests/debugging/index.md) Finalmente, recomendamos que você dê uma olhada na [**Seqera Platform**](https://seqera.io/), uma plataforma baseada em nuvem desenvolvida pelos criadores do Nextflow que torna ainda mais fácil lançar e gerenciar seus fluxos de trabalho, bem como gerenciar seus dados e executar análises interativamente em qualquer ambiente. diff --git a/docs/pt/docs/nf4_science/_template/next_steps.md b/docs/pt/docs/nf4_science/_template/next_steps.md index c995ce83cb..40decf94a9 100644 --- a/docs/pt/docs/nf4_science/_template/next_steps.md +++ b/docs/pt/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Você está agora preparado para começar a aplicar Nextflow a fluxos de trabalh Aqui estão nossas principais sugestões do que fazer a seguir: - Aplique Nextflow a outros casos de uso de análise científica com [Nextflow for Science](../index.md) -- Comece com nf-core através do [Hello nf-core](../../hello_nf-core/index.md) +- Comece com nf-core através do [Build with nf-core](../../hello_nf-core/index.md) - Explore recursos mais avançados do Nextflow com as [Side Quests](../../side_quests/index.md) Por fim, recomendamos que você dê uma olhada na [**Seqera Platform**](https://seqera.io/), uma plataforma baseada em nuvem desenvolvida pelos criadores do Nextflow que torna ainda mais fácil lançar e gerenciar seus fluxos de trabalho, além de gerenciar seus dados e executar análises interativamente em qualquer ambiente. diff --git a/docs/pt/docs/nf4_science/genomics/next_steps.md b/docs/pt/docs/nf4_science/genomics/next_steps.md index 3f07d35f76..278dc6bcde 100644 --- a/docs/pt/docs/nf4_science/genomics/next_steps.md +++ b/docs/pt/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Você está agora preparado para começar a aplicar o Nextflow a fluxos de traba Aqui estão nossas principais sugestões para o que fazer a seguir: - Aplique o Nextflow a outros casos de uso de análise científica com [Nextflow for Science](../index.md) -- Comece com o nf-core através do [Hello nf-core](../../hello_nf-core/index.md) +- Comece com o nf-core através do [Build with nf-core](../../hello_nf-core/index.md) - Explore recursos mais avançados do Nextflow com as [Side Quests](../../side_quests/index.md) Por fim, recomendamos que você dê uma olhada na [**Seqera Platform**](https://seqera.io/), uma plataforma baseada em nuvem desenvolvida pelos criadores do Nextflow que torna ainda mais fácil lançar e gerenciar seus fluxos de trabalho, além de gerenciar seus dados e executar análises interativamente em qualquer ambiente. diff --git a/docs/pt/docs/nf4_science/imaging/02_run_molkart.md b/docs/pt/docs/nf4_science/imaging/02_run_molkart.md index db2d6887cc..5c70c6ed67 100644 --- a/docs/pt/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/pt/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ Principais características dos pipelines nf-core: !!! tip "Quer aprender mais sobre nf-core?" - Para uma introdução aprofundada ao desenvolvimento de pipelines nf-core, confira o curso de treinamento [Hello nf-core](../../hello_nf-core/index.md). + Para uma introdução aprofundada ao desenvolvimento de pipelines nf-core, confira o curso de treinamento [Build with nf-core](../../hello_nf-core/index.md). Ele abrange como criar e personalizar pipelines nf-core do zero. ### 1.2. O pipeline molkart diff --git a/docs/pt/docs/nf4_science/imaging/04_config.md b/docs/pt/docs/nf4_science/imaging/04_config.md index 5541ed18e3..751b104d91 100644 --- a/docs/pt/docs/nf4_science/imaging/04_config.md +++ b/docs/pt/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Próximos passos: - Preencha a pesquisa do curso para fornecer feedback - Confira [Hello Nextflow](../../hello_nextflow/index.md) para aprender mais sobre desenvolvimento de fluxos de trabalho -- Explore [Hello nf-core](../../hello_nf-core/index.md) para mergulhar mais fundo nas ferramentas nf-core +- Explore [Build with nf-core](../../hello_nf-core/index.md) para mergulhar mais fundo nas ferramentas nf-core - Navegue por outros cursos nas [coleções de treinamento](../../training_collections/index.md) diff --git a/docs/pt/docs/nf4_science/rnaseq/next_steps.md b/docs/pt/docs/nf4_science/rnaseq/next_steps.md index bd6bb99b73..c7a2c985db 100644 --- a/docs/pt/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/pt/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Você está agora preparado para começar a aplicar Nextflow a fluxos de trabalh Aqui estão nossas principais sugestões sobre o que fazer a seguir: - Aplicar Nextflow a outros casos de uso de análise científica com [Nextflow para Ciência](../index.md) -- Começar com nf-core com [Hello nf-core](../../hello_nf-core/index.md) +- Começar com nf-core com [Build with nf-core](../../hello_nf-core/index.md) - Explorar recursos mais avançados do Nextflow com as [Missões Secundárias](../../side_quests/index.md) Por fim, recomendamos que você dê uma olhada no [**Seqera Platform**](https://seqera.io/), uma plataforma baseada em nuvem desenvolvida pelos criadores do Nextflow que facilita ainda mais o lançamento e gerenciamento de seus fluxos de trabalho, bem como o gerenciamento de seus dados e a execução de análises interativamente em qualquer ambiente. diff --git a/docs/pt/docs/side_quests/dev_environment/index.md b/docs/pt/docs/side_quests/dev_environment/index.md index a9abaabfbf..e344942785 100644 --- a/docs/pt/docs/side_quests/dev_environment/index.md +++ b/docs/pt/docs/side_quests/dev_environment/index.md @@ -624,7 +624,7 @@ Não esperamos que você se lembre de tudo, mas agora que você sabe que esses r Aplique essas habilidades de IDE enquanto trabalha em outros módulos de treinamento, por exemplo: - **[nf-test](../nf_test/index.md)**: Crie suítes de teste abrangentes para seus fluxos de trabalho -- **[Hello nf-core](../../hello_nf-core/index.md)**: Construa pipelines de qualidade de produção com padrões da comunidade +- **[Build with nf-core](../../hello_nf-core/index.md)**: Construa pipelines de qualidade de produção com padrões da comunidade O verdadeiro poder desses recursos do IDE emerge à medida que você trabalha em projetos maiores e mais complexos. Comece a incorporá-los ao seu fluxo de trabalho gradualmente — em poucas sessões, eles se tornarão naturais e transformarão a forma como você aborda o desenvolvimento com Nextflow. diff --git a/docs/pt/docs/side_quests/metadata/index.md b/docs/pt/docs/side_quests/metadata/index.md index 32459f5da4..2f46a4f0fc 100644 --- a/docs/pt/docs/side_quests/metadata/index.md +++ b/docs/pt/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Existem duas abordagens complementares para tornar os fluxos de trabalho mais ro **1. Validação de entrada** A solução mais confiável é validar a planilha antes de qualquer processamento começar, para que os problemas sejam detectados cedo com uma mensagem de erro clara, em vez de aparecerem como uma falha críptica de processo no meio da execução. -O treinamento [Hello nf-core](../../hello_nf-core/05_input_validation.md) aborda como adicionar validação de entrada usando o plugin nf-schema. +O treinamento [Build with nf-core](../../hello_nf-core/05_input_validation.md) aborda como adicionar validação de entrada usando o plugin nf-schema. **2. Entradas explícitas do processo para valores obrigatórios** diff --git a/docs/pt/docs/side_quests/plugin_development/next_steps.md b/docs/pt/docs/side_quests/plugin_development/next_steps.md index 582c51d6e7..ae2c81bd29 100644 --- a/docs/pt/docs/side_quests/plugin_development/next_steps.md +++ b/docs/pt/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Se você criar um plugin útil, considere compartilhá-lo com a comunidade por m Se ainda não o fez, confira nossos outros cursos de treinamento: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Conceitos fundamentais do Nextflow -- **[Hello nf-core](../../hello_nf-core/index.md)**: Pipelines e boas práticas do nf-core +- **[Build with nf-core](../../hello_nf-core/index.md)**: Pipelines e boas práticas do nf-core - **[Side Quests](../index.md)**: Aprofundamentos em tópicos específicos diff --git a/docs/pt/docs/training_collections/architects_toolkit_1.md b/docs/pt/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index 54972b6f41..0000000000 --- a/docs/pt/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Kit de Ferramentas do Arquiteto I -hide: - - toc ---- - -# Kit de Ferramentas do Arquiteto I - -:material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Nossas Coleções de Treinamento fornecem caminhos de aprendizado selecionados através de nossos materiais de treinamento avançado (chamados [Side Quests](../side_quests/index.md)). Esta coleção abrange quatro tópicos essenciais que são frequentemente usados em conjunto para construir fluxos de trabalho robustos e escaláveis. - -## Objetivos de aprendizado - -Ao final desta coleção, você terá experiência com: - -- **Arquiteturas de fluxo de trabalho modulares complexas** - Combinando múltiplos fluxos de trabalho em pipelines coesos -- **Estratégias abrangentes de testes** - Garantindo que seus fluxos de trabalho sejam confiáveis e sustentáveis -- **Gerenciamento de metadados** - Manipulando metadados específicos de amostras ao longo de seus fluxos de trabalho de forma eficaz -- **Processamento avançado de dados** - Implementando padrões eficientes de divisão e agrupamento de dados - -Essas habilidades permitirão que você construa fluxos de trabalho Nextflow robustos, escaláveis e sustentáveis para aplicações do mundo real. - -## Público-alvo e pré-requisitos - -Esta coleção é projetada para usuários que completaram o treinamento básico de Nextflow e desejam se aprofundar em padrões avançados de fluxo de trabalho, estratégias de testes e técnicas de manipulação de dados e metadados. - -**Pré-requisitos** - -- Conclusão do treinamento [Hello Nextflow](../hello_nextflow/index.md) ou experiência equivalente -- Familiaridade básica com sintaxe e conceitos do Nextflow -- Compreensão de padrões básicos de desenvolvimento de fluxo de trabalho -- Experiência com ferramentas de linha de comando - -## Conteúdo da coleção - -Esta coleção consiste em quatro Side Quests que cobrem tópicos complementares de engenharia de fluxo de trabalho: - -1. **[Workflows of Workflows](../side_quests/workflows_of_workflows/index.md)** - Arquitetura e composição de fluxo de trabalho complexa -2. **[Testing with nf-test](../side_quests/nf_test/index.md)** - Estratégias de testes para fluxos de trabalho Nextflow -3. **[Metadata](../side_quests/metadata/index.md)** - Manipulação de metadados para itens em canais Nextflow -4. **[Splitting and Grouping](../side_quests/splitting_and_grouping/index.md)** - Padrões avançados de processamento de dados - -Cada Side Quest é independente e cobre conceitos autônomos, mas recomendamos completá-los na ordem listada acima para uma progressão lógica através dos tópicos. - -## Como usar esta coleção - -Primeiro, clique com o botão de comando no botão "Open in GitHub Codespaces" abaixo para iniciar o ambiente de treinamento em uma aba separada, depois continue lendo enquanto ele carrega. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Uma vez que seu ambiente esteja em execução, trabalhe através da coleção da seguinte forma: - -1. Nesta aba: Navegue até o primeiro Side Quest listado acima, que descreve exercícios de desenvolvimento passo a passo. -2. Na sua aba do Codespaces: Trabalhe através dos exercícios do Side Quest. -3. Quando você completar um Side Quest, retorne a esta página e navegue até o próximo na lista acima. -4. Quando você tiver completado a coleção, clique no botão abaixo para preencher uma pesquisa muito breve. Seu feedback nos permite continuar melhorando os materiais de treinamento para todos. - -[![Take the survey](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Pronto para começar? Comece com o primeiro módulo acima! diff --git a/docs/pt/docs/training_collections/index.md b/docs/pt/docs/training_collections/index.md deleted file mode 100644 index dae87bd0b1..0000000000 --- a/docs/pt/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Coleções de Treinamento -hide: - - toc ---- - -# Coleções de Treinamento - -:material-information-outline:{ .ai-translation-notice-icon } Tradução assistida por IA - [saiba mais e sugira melhorias](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Esta seção contém coleções selecionadas de módulos de treinamento chamados [Side Quests](../side_quests/index.md) que visam fornecer uma experiência de aprendizado abrangente em torno de um tema ou caso de uso específico. - -## Pré-requisitos - -Cada coleção tem pré-requisitos específicos documentados em sua página de índice. No entanto, a maioria das coleções assume: - -- Experiência com a linha de comando -- Conceitos fundamentais de Nextflow e ferramentas abordados no curso introdutório [Hello Nextflow](../hello_nextflow/index.md) - -Para requisitos técnicos e configuração do ambiente, consulte o mini-curso de [Configuração do Ambiente](../envsetup/index.md). - -## Coleções disponíveis - -- [The Architect's Toolkit I](./architects_toolkit_1.md) - Uma coleção de quatro Side Quests cobrindo padrões de arquitetura de workflows para montar pipelines complexos, implementar estratégias de teste, gerenciar metadados e agrupar e dividir dados. _Duração estimada: 4 horas em treinamento em grupo._ - -## Sugestão de novas coleções - -Estamos trabalhando ativamente no desenvolvimento de Side Quests e Coleções adicionais. -Sinta-se à vontade para sugerir tópicos que você acha que fariam sentido cobrir em uma Coleção postando na [seção de Treinamento](https://community.seqera.io/c/training/) do fórum da comunidade. diff --git a/docs/pt/mkdocs.yml b/docs/pt/mkdocs.yml index e9c207431c..a882bf0b89 100644 --- a/docs/pt/mkdocs.yml +++ b/docs/pt/mkdocs.yml @@ -14,3 +14,35 @@ extra: como usamos cookies. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Ambiente de Treinamento": "Configuração e Ajuda" + "Nextflow Run": "Usuários" + "Hello Nextflow": "Desenvolvedores" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Nextflow para Ciência" + nf4_science/genomics/index.md: "Genômica" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Imagens" + side_quests/index.md: "Missões Secundárias" + envsetup/index.md: "Ambiente de Treinamento" + nav_child_title_overrides: + nextflow_run/index.md: "Visão Geral" + nfcore_run/index.md: "Visão Geral" + seqera_run/index.md: "Visão Geral" + hello_nextflow/index.md: "Visão Geral" + hello_nf-core/index.md: "Visão Geral" + nf4_science/index.md: "Visão Geral" + nf4_science/genomics/index.md: "Visão Geral" + nf4_science/rnaseq/index.md: "Visão Geral" + nf4_science/imaging/index.md: "Visão Geral" + side_quests/index.md: "Visão Geral" + nav_section_separators: + side_quests/dev_environment/index.md: "Ferramentas e Truques para Desenvolvedores" + side_quests/working_with_files/index.md: "Aprofundando no Fluxo de Dados" + side_quests/workflows_of_workflows/index.md: "Arquitetura Modular em Ação" + side_quests/nf_test/index.md: "O Universo Estendido do Nextflow" diff --git a/docs/tr/docs/hello_nextflow/next_steps.md b/docs/tr/docs/hello_nextflow/next_steps.md index 6204325cf4..9be7f447a0 100644 --- a/docs/tr/docs/hello_nextflow/next_steps.md +++ b/docs/tr/docs/hello_nextflow/next_steps.md @@ -54,7 +54,7 @@ Artık Nextflow'da kendi pipeline'larınızı geliştirmeye başlamak için teme Bundan sonra ne yapılacağına dair en iyi 3 önerimiz: - [Nextflow for Science](../nf4_science/index.md) ile Nextflow'u bilimsel bir analiz kullanım durumuna uygulayın -- [Hello nf-core](../hello_nf-core/index.md) ile nf-core'a başlayın +- [Build with nf-core](../hello_nf-core/index.md) ile nf-core'a başlayın - [Side Quests](../side_quests/index.md) ile daha gelişmiş Nextflow özelliklerini keşfedin Son olarak, Nextflow'un yaratıcıları tarafından geliştirilen, iş akışlarınızı başlatmayı ve yönetmeyi, verilerinizi yönetmeyi ve herhangi bir ortamda etkileşimli analizler çalıştırmayı daha da kolaylaştıran bulut tabanlı bir platform olan [**Seqera Platform**](https://seqera.io/)'a göz atmanızı öneririz. diff --git a/docs/tr/docs/hello_nf-core/01_run_demo.md b/docs/tr/docs/hello_nf-core/01_run_demo.md index 9b3585046c..2fa5632cd4 100644 --- a/docs/tr/docs/hello_nf-core/01_run_demo.md +++ b/docs/tr/docs/hello_nf-core/01_run_demo.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core eğitim kursunun bu ilk bölümünde, bir nf-core pipeline'ının nasıl bulunacağını ve deneneceğini, ihtiyaçlarınıza göre çalıştırmanın nasıl yapılandırılıp özelleştirileceğini ve girdi doğrulamanın yaygın hatalara karşı nasıl koruma sağladığını öğreneceksiniz. +Build with nf-core eğitim kursunun bu ilk bölümünde, bir nf-core pipeline'ının nasıl bulunacağını ve deneneceğini, ihtiyaçlarınıza göre çalıştırmanın nasıl yapılandırılıp özelleştirileceğini ve girdi doğrulamanın yaygın hatalara karşı nasıl koruma sağladığını öğreneceksiniz. nf-core projesi tarafından kod yapısını ve araç işlemlerini göstermek amacıyla pipeline envanterinin bir parçası olarak sürdürülen nf-core/demo adlı bir pipeline kullanacağız. diff --git a/docs/tr/docs/hello_nf-core/02_rewrite_hello.md b/docs/tr/docs/hello_nf-core/02_rewrite_hello.md index a0b40a3195..edcef9cda1 100644 --- a/docs/tr/docs/hello_nf-core/02_rewrite_hello.md +++ b/docs/tr/docs/hello_nf-core/02_rewrite_hello.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Bu Hello nf-core eğitim kursunun ikinci bölümünde, [Hello Nextflow](../hello_nextflow/index.md) başlangıç kursu tarafından üretilen pipeline'ın nf-core uyumlu bir versiyonunu nasıl oluşturacağınızı gösteriyoruz. +Bu Build with nf-core eğitim kursunun ikinci bölümünde, [Hello Nextflow](../hello_nextflow/index.md) başlangıç kursu tarafından üretilen pipeline'ın nf-core uyumlu bir versiyonunu nasıl oluşturacağınızı gösteriyoruz. Bunu iki aşamada gerçekleştireceğiz: önce nf-core araçlarını kullanarak bir pipeline iskeleti oluşturacağız, ardından mevcut 'normal' pipeline kodunu bu iskelet üzerine aşılayacağız. diff --git a/docs/tr/docs/hello_nf-core/03_use_module.md b/docs/tr/docs/hello_nf-core/03_use_module.md index da8df0850b..7c3f108c65 100644 --- a/docs/tr/docs/hello_nf-core/03_use_module.md +++ b/docs/tr/docs/hello_nf-core/03_use_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core eğitim kursunun bu üçüncü bölümünde, mevcut bir nf-core modülünü nasıl bulacağınızı, kuracağınızı ve pipeline'ınızda kullanacağınızı gösteriyoruz. +Build with nf-core eğitim kursunun bu üçüncü bölümünde, mevcut bir nf-core modülünü nasıl bulacağınızı, kuracağınızı ve pipeline'ınızda kullanacağınızı gösteriyoruz. nf-core ile çalışmanın en büyük avantajlarından biri, [nf-core/modules](https://github.com/nf-core/modules) deposundan önceden oluşturulmuş ve test edilmiş modüllerden yararlanabilmektir. Her süreci sıfırdan yazmak yerine, en iyi uygulamaları takip eden topluluk tarafından sürdürülen modülleri kurabilir ve kullanabilirsiniz. diff --git a/docs/tr/docs/hello_nf-core/04_make_module.md b/docs/tr/docs/hello_nf-core/04_make_module.md index 8ff340140f..3cdaee1cdf 100644 --- a/docs/tr/docs/hello_nf-core/04_make_module.md +++ b/docs/tr/docs/hello_nf-core/04_make_module.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core eğitim kursunun bu dördüncü bölümünde, modülleri taşınabilir ve sürdürülebilir kılan temel kuralları uygulayarak bir nf-core modülünün nasıl oluşturulacağını göstereceğiz. +Build with nf-core eğitim kursunun bu dördüncü bölümünde, modülleri taşınabilir ve sürdürülebilir kılan temel kuralları uygulayarak bir nf-core modülünün nasıl oluşturulacağını göstereceğiz. nf-core projesi, Bölüm 2'de iş akışı için kullandığımıza benzer şekilde, düzgün yapılandırılmış modül şablonlarını otomatik olarak oluşturan bir komut (`nf-core modules create`) sağlar. Ancak öğretim amaçları için, manuel olarak başlayacağız: `core-hello` iş hattınızdaki yerel `cowpy` modülünü adım adım nf-core tarzı bir modüle dönüştüreceğiz. diff --git a/docs/tr/docs/hello_nf-core/05_input_validation.md b/docs/tr/docs/hello_nf-core/05_input_validation.md index 42bfdccaea..9b1251bace 100644 --- a/docs/tr/docs/hello_nf-core/05_input_validation.md +++ b/docs/tr/docs/hello_nf-core/05_input_validation.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Bu Hello nf-core eğitim kursunun beşinci bölümünde, pipeline girdi ve parametrelerini doğrulamak için nf-schema eklentisinin nasıl kullanılacağını gösteriyoruz. +Bu Build with nf-core eğitim kursunun beşinci bölümünde, pipeline girdi ve parametrelerini doğrulamak için nf-schema eklentisinin nasıl kullanılacağını gösteriyoruz. ??? info "Bu bölümden nasıl başlanır" @@ -808,6 +808,6 @@ Hem parametre doğrulaması hem de girdi verisi doğrulamasını uyguladınız v ### Sırada ne var? -Hello nf-core eğitim kursunun beş bölümünün tamamını tamamladınız! +Build with nf-core eğitim kursunun beş bölümünün tamamını tamamladınız! Oluşturduklarınızı ve öğrendiklerinizi düşünmek için [Özet](next_steps.md) bölümüne devam edin. diff --git a/docs/tr/docs/hello_nf-core/index.md b/docs/tr/docs/hello_nf-core/index.md index 850f5d2fe7..a5be5913ca 100644 --- a/docs/tr/docs/hello_nf-core/index.md +++ b/docs/tr/docs/hello_nf-core/index.md @@ -1,5 +1,5 @@ --- -title: Hello nf-core +title: Build with nf-core hide: - toc page_type: index_page @@ -21,11 +21,11 @@ additional_information: - "**Alan:** Alıştırmaların tümü alandan bağımsızdır, dolayısıyla önceden bilimsel bilgi gerekmemektedir." --- -# Hello nf-core +# Build with nf-core :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -**Hello nf-core, nf-core kaynaklarını ve en iyi uygulamalarını kullanmaya yönelik uygulamalı bir giriştir.** +**Build with nf-core, nf-core kaynaklarını ve en iyi uygulamalarını kullanmaya yönelik uygulamalı bir giriştir.** ![nf-core logo](./img/nf-core-logo.png#only-light) ![nf-core logo](./img/nf-core-logo-darkbg.png#only-dark) diff --git a/docs/tr/docs/hello_nf-core/next_steps.md b/docs/tr/docs/hello_nf-core/next_steps.md index 6d6dad2437..ba74285dbf 100644 --- a/docs/tr/docs/hello_nf-core/next_steps.md +++ b/docs/tr/docs/hello_nf-core/next_steps.md @@ -2,7 +2,7 @@ :material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) -Hello nf-core eğitim kursunu tamamladığınız için tebrikler! 🎉 +Build with nf-core eğitim kursunu tamamladığınız için tebrikler! 🎉 diff --git a/docs/tr/docs/index.md b/docs/tr/docs/index.md index a3e99d40d5..790bcfd434 100644 --- a/docs/tr/docs/index.md +++ b/docs/tr/docs/index.md @@ -132,11 +132,11 @@ hide: Bu kurslar, Nextflow temellerinden nf-core en iyi uygulamalarına geçişinizi destekler. nf-core topluluğunun pipeline'ları nasıl ve neden oluşturduğunu, bu tekniklere nasıl katkıda bulunabileceğinizi ve bunları nasıl yeniden kullanabileceğinizi anlayın. - ??? courses "**Hello nf-core:** nf-core ile başlayın" + ??? courses "**Build with nf-core:** nf-core ile başlayın" [nf-core](https://nf-co.re/) uyumlu pipeline'ları çalıştırmak ve geliştirmek isteyen geliştiriciler için. Kurs, nf-core şablonunu ve geliştirme en iyi uygulamalarını izleyen, mevcut nf-core modüllerini kullanan, basit ama tam işlevsel pipeline'lar geliştirmeye yetecek düzeyde nf-core pipeline'larının yapısını kapsamaktadır. - [Hello nf-core eğitimine başlayın :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } + [Build with nf-core eğitimine başlayın :material-arrow-right:](hello_nf-core/index.md){ .md-button .md-button--secondary } --- @@ -150,11 +150,11 @@ hide: [Side Quests'e göz atın :material-arrow-right:](side_quests/index.md){ .md-button .md-button--secondary } - ??? courses "**Eğitim Koleksiyonları:** Side Quests için önerilen öğrenme yolları" + ??? courses "**Öğrenme Yolları:** Kurslarımız arasında küratörlü rotalar" - Eğitim Koleksiyonları, belirli bir tema veya kullanım senaryosu etrafında kapsamlı bir öğrenme deneyimi sunmak amacıyla birden fazla Side Quest'i bir araya getirir. + Öğrenme Yolları, belirli bir tema veya kullanım senaryosu etrafında kapsamlı bir öğrenme deneyimi sunmak amacıyla birden fazla Side Quest'i bir araya getirir. - [Eğitim Koleksiyonlarına göz atın :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } + [Öğrenme Yollarına göz atın :material-arrow-right:](training_collections/index.md){ .md-button .md-button--secondary } diff --git a/docs/tr/docs/nextflow_run/03_config.md b/docs/tr/docs/nextflow_run/03_config.md index 7d99ba90ac..d355a55206 100644 --- a/docs/tr/docs/nextflow_run/03_config.md +++ b/docs/tr/docs/nextflow_run/03_config.md @@ -1729,7 +1729,7 @@ Nextflow pipeline'larını çalıştırmaya ve yönetmeye başlamak için bilmen Bu, bu kursu sonlandırıyor, ancak öğrenmeye devam etmek istiyorsanız, iki ana önerimiz var: - Kendi pipeline'larınızı geliştirmeyi daha derinlemesine incelemek istiyorsanız, bu kursla aynı genel ilerlemeyi kapsayan ancak kanallar ve operatörler hakkında çok daha ayrıntılı giden yeni başlayanlar için bir kurs olan [Hello Nextflow](../hello_nextflow/index.md)'a bakın. -- Koda daha derinlemesine girmeden Nextflow pipeline'larını çalıştırmayı öğrenmeye devam etmek istiyorsanız, son derece popüler [nf-core](../hello_nf-core/index.md) projesinden pipeline'ları bulmak ve çalıştırmak için araçları tanıtan [Hello nf-core](https://nf-co.re/)'un ilk bölümüne bakın. +- Koda daha derinlemesine girmeden Nextflow pipeline'larını çalıştırmayı öğrenmeye devam etmek istiyorsanız, son derece popüler [nf-core](../hello_nf-core/index.md) projesinden pipeline'ları bulmak ve çalıştırmak için araçları tanıtan [Build with nf-core](https://nf-co.re/)'un ilk bölümüne bakın. İyi eğlenceler! diff --git a/docs/tr/docs/nextflow_run/next_steps.md b/docs/tr/docs/nextflow_run/next_steps.md index 029a50806e..ea85b86e11 100644 --- a/docs/tr/docs/nextflow_run/next_steps.md +++ b/docs/tr/docs/nextflow_run/next_steps.md @@ -50,7 +50,7 @@ Sırada ne yapacağınız için en iyi önerilerimiz: - Sadece Nextflow çalıştırmayın, yazın! [Hello Nextflow](../hello_nextflow/index.md) ile Nextflow geliştiricisi olun - Bilimsel analiz kullanım durumlarına Nextflow uygulayın: [Nextflow for Science](../nf4_science/index.md) -- [Hello nf-core](../hello_nf-core/index.md) ile nf-core'a başlayın +- [Build with nf-core](../hello_nf-core/index.md) ile nf-core'a başlayın - [Debugging Side Quest](../side_quests/debugging/index.md) ile hata ayıklama tekniklerini öğrenin Son olarak, Nextflow'un yaratıcıları tarafından geliştirilen bulut tabanlı bir platform olan [**Seqera Platform**](https://seqera.io/)'a bakmanızı öneririz; iş akışlarınızı başlatmayı ve yönetmeyi, verilerinizi yönetmeyi ve herhangi bir ortamda etkileşimli analizler çalıştırmayı çok daha kolay hale getirir. diff --git a/docs/tr/docs/nf4_science/_template/next_steps.md b/docs/tr/docs/nf4_science/_template/next_steps.md index 9b4e4bddcd..c376032af3 100644 --- a/docs/tr/docs/nf4_science/_template/next_steps.md +++ b/docs/tr/docs/nf4_science/_template/next_steps.md @@ -32,7 +32,7 @@ Artık kendi çalışmalarınızda {DOMAIN} analiz iş akışlarına Nextflow uy Sırada ne yapmanızı önerdiğimize dair en önemli önerilerimiz: - [Nextflow for Science](../index.md) ile Nextflow'u diğer bilimsel analiz kullanım durumlarına uygulayın -- [Hello nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın +- [Build with nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın - [Side Quests](../../side_quests/index.md) ile daha gelişmiş Nextflow özelliklerini keşfedin Son olarak, Nextflow'un yaratıcıları tarafından geliştirilen ve iş akışlarınızı başlatmayı ve yönetmeyi, ayrıca verilerinizi yönetmeyi ve analizleri herhangi bir ortamda etkileşimli olarak çalıştırmayı daha da kolaylaştıran bulut tabanlı bir platform olan [**Seqera Platform**](https://seqera.io/)'a göz atmanızı öneririz. diff --git a/docs/tr/docs/nf4_science/genomics/next_steps.md b/docs/tr/docs/nf4_science/genomics/next_steps.md index 7630b34f31..27000d73d5 100644 --- a/docs/tr/docs/nf4_science/genomics/next_steps.md +++ b/docs/tr/docs/nf4_science/genomics/next_steps.md @@ -32,7 +32,7 @@ Artık kendi çalışmalarınızda Nextflow'u genomik analiz iş akışlarına u Sırada ne yapmanızı önerdiğimize dair en iyi önerilerimiz: - [Nextflow for Science](../index.md) ile Nextflow'u diğer bilimsel analiz kullanım durumlarına uygulayın -- [Hello nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın +- [Build with nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın - [Side Quests](../../side_quests/index.md) ile daha gelişmiş Nextflow özelliklerini keşfedin Son olarak, Nextflow'un yaratıcıları tarafından geliştirilen ve iş akışlarınızı başlatmayı ve yönetmeyi, ayrıca verilerinizi yönetmeyi ve analizleri herhangi bir ortamda etkileşimli olarak çalıştırmayı daha da kolaylaştıran bulut tabanlı bir platform olan [**Seqera Platform**](https://seqera.io/)'a göz atmanızı öneririz. diff --git a/docs/tr/docs/nf4_science/imaging/02_run_molkart.md b/docs/tr/docs/nf4_science/imaging/02_run_molkart.md index df4629efce..46a5899e72 100644 --- a/docs/tr/docs/nf4_science/imaging/02_run_molkart.md +++ b/docs/tr/docs/nf4_science/imaging/02_run_molkart.md @@ -27,7 +27,7 @@ nf-core pipeline'larının temel özellikleri: !!! tip "nf-core hakkında daha fazla bilgi edinmek ister misiniz?" - nf-core pipeline geliştirmeye derinlemesine bir giriş için [Hello nf-core](../../hello_nf-core/index.md) eğitim kursuna göz atın. + nf-core pipeline geliştirmeye derinlemesine bir giriş için [Build with nf-core](../../hello_nf-core/index.md) eğitim kursuna göz atın. Sıfırdan nf-core pipeline'ları oluşturmayı ve özelleştirmeyi kapsar. ### 1.2. molkart pipeline'ı diff --git a/docs/tr/docs/nf4_science/imaging/04_config.md b/docs/tr/docs/nf4_science/imaging/04_config.md index 9e553f5c6d..cc78b53580 100644 --- a/docs/tr/docs/nf4_science/imaging/04_config.md +++ b/docs/tr/docs/nf4_science/imaging/04_config.md @@ -449,5 +449,5 @@ Sonraki adımlar: - Geri bildirim sağlamak için kurs anketini doldurun - İş akışları geliştirme hakkında daha fazla bilgi edinmek için [Hello Nextflow](../../hello_nextflow/index.md) sayfasına göz atın -- nf-core araçlarına daha derinlemesine dalmak için [Hello nf-core](../../hello_nf-core/index.md) sayfasını keşfedin +- nf-core araçlarına daha derinlemesine dalmak için [Build with nf-core](../../hello_nf-core/index.md) sayfasını keşfedin - [Eğitim koleksiyonlarında](../../training_collections/index.md) diğer kurslara göz atın diff --git a/docs/tr/docs/nf4_science/rnaseq/next_steps.md b/docs/tr/docs/nf4_science/rnaseq/next_steps.md index 475fcdd3b2..6d785092d9 100644 --- a/docs/tr/docs/nf4_science/rnaseq/next_steps.md +++ b/docs/tr/docs/nf4_science/rnaseq/next_steps.md @@ -33,7 +33,7 @@ Artık kendi çalışmanızda RNAseq analiz iş akışlarına Nextflow'u uygulam Sırada ne yapacağınıza dair en iyi önerilerimiz: - [Nextflow for Science](../index.md) ile Nextflow'u diğer bilimsel analiz kullanım durumlarına uygulayın -- [Hello nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın +- [Build with nf-core](../../hello_nf-core/index.md) ile nf-core'a başlayın - [Side Quests](../../side_quests/index.md) ile daha gelişmiş Nextflow özelliklerini keşfedin Son olarak, Nextflow'un yaratıcıları tarafından geliştirilen ve iş akışlarınızı başlatmayı ve yönetmeyi, ayrıca verilerinizi yönetmeyi ve herhangi bir ortamda etkileşimli olarak analiz çalıştırmayı daha da kolay hale getiren bulut tabanlı bir platform olan [**Seqera Platform**](https://seqera.io/)'a göz atmanızı öneririz. diff --git a/docs/tr/docs/side_quests/dev_environment/index.md b/docs/tr/docs/side_quests/dev_environment/index.md index 42838a3e59..5a7d403c1d 100644 --- a/docs/tr/docs/side_quests/dev_environment/index.md +++ b/docs/tr/docs/side_quests/dev_environment/index.md @@ -620,7 +620,7 @@ Her şeyi hatırlamanızı beklemiyoruz; ancak artık bu özelliklerin var oldu Bu IDE becerilerini diğer eğitim modülleri üzerinde çalışırken uygulayın; örneğin: - **[nf-test](../nf_test/index.md)**: İş akışlarınız için kapsamlı test paketleri oluşturun -- **[Hello nf-core](../../hello_nf-core/index.md)**: Topluluk standartlarıyla üretim kalitesinde pipeline'lar oluşturun +- **[Build with nf-core](../../hello_nf-core/index.md)**: Topluluk standartlarıyla üretim kalitesinde pipeline'lar oluşturun Bu IDE özelliklerinin gerçek gücü, daha büyük ve daha karmaşık projeler üzerinde çalıştıkça ortaya çıkar. Bunları iş akışınıza kademeli olarak dahil etmeye başlayın; birkaç oturum içinde ikinci doğanız haline gelecek ve Nextflow geliştirmeye yaklaşımınızı dönüştüreceklerdir. diff --git a/docs/tr/docs/side_quests/metadata/index.md b/docs/tr/docs/side_quests/metadata/index.md index 672bf55378..a07eb30fd5 100644 --- a/docs/tr/docs/side_quests/metadata/index.md +++ b/docs/tr/docs/side_quests/metadata/index.md @@ -1740,7 +1740,7 @@ Süreç betiği `#!groovy ${meta.character}` ifadesini değerlendirdiğinde, Nex **1. Girdi doğrulaması** En güvenilir çözüm, herhangi bir işlem başlamadan önce veri sayfasını doğrulamaktır; böylece sorunlar, çalışmanın ortasında anlaşılması güç bir süreç hatası olarak ortaya çıkmak yerine erken ve net bir hata mesajıyla yakalanır. -[Hello nf-core](../../hello_nf-core/05_input_validation.md) eğitimi, nf-schema eklentisini kullanarak girdi doğrulamasının nasıl ekleneceğini ele almaktadır. +[Build with nf-core](../../hello_nf-core/05_input_validation.md) eğitimi, nf-schema eklentisini kullanarak girdi doğrulamasının nasıl ekleneceğini ele almaktadır. **2. Zorunlu değerler için açık süreç girdileri** diff --git a/docs/tr/docs/side_quests/plugin_development/next_steps.md b/docs/tr/docs/side_quests/plugin_development/next_steps.md index 2ae73b3c4d..ccbb9e0bc5 100644 --- a/docs/tr/docs/side_quests/plugin_development/next_steps.md +++ b/docs/tr/docs/side_quests/plugin_development/next_steps.md @@ -50,5 +50,5 @@ Kullanışlı bir plugin geliştirirseniz, plugin kayıt defteri aracılığıyl Henüz tamamlamadıysanız diğer eğitim kurslarımıza göz atın: - **[Hello Nextflow](../../hello_nextflow/index.md)**: Temel Nextflow kavramları -- **[Hello nf-core](../../hello_nf-core/index.md)**: nf-core pipeline'ları ve en iyi uygulamalar +- **[Build with nf-core](../../hello_nf-core/index.md)**: nf-core pipeline'ları ve en iyi uygulamalar - **[Side Quests](../index.md)**: Belirli konulara derinlemesine bakış diff --git a/docs/tr/docs/training_collections/architects_toolkit_1.md b/docs/tr/docs/training_collections/architects_toolkit_1.md deleted file mode 100644 index d387a50074..0000000000 --- a/docs/tr/docs/training_collections/architects_toolkit_1.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Mimar Araç Seti I -hide: - - toc ---- - -# Mimar Araç Seti I - -:material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Eğitim Koleksiyonlarımız, gelişmiş eğitim materyallerimiz ([Yan Görevler](../side_quests/index.md) olarak adlandırılır) aracılığıyla küratörlü öğrenme yolları sunar. Bu koleksiyon, sağlam ve ölçeklenebilir iş akışları oluşturmak için sıklıkla birlikte kullanılan dört temel konuyu kapsar. - -## Öğrenme hedefleri - -Bu koleksiyonun sonunda şu konularda deneyim kazanmış olacaksınız: - -- **Karmaşık modüler iş akışı mimarileri** - Birden fazla iş akışını tutarlı pipeline'larda birleştirme -- **Kapsamlı test stratejileri** - İş akışlarınızın güvenilir ve bakımı kolay olmasını sağlama -- **Meta veri yönetimi** - İş akışlarınız boyunca örneğe özgü meta verileri etkili bir şekilde işleme -- **Gelişmiş veri işleme** - Verimli veri bölme ve gruplama desenlerini uygulama - -Bu beceriler, gerçek dünya uygulamaları için sağlam, ölçeklenebilir ve bakımı kolay Nextflow iş akışları oluşturmanıza olanak tanıyacaktır. - -## Hedef kitle ve ön koşullar - -Bu koleksiyon, temel Nextflow eğitimini tamamlamış ve gelişmiş iş akışı desenleri, test stratejileri ile veri ve meta veri işleme tekniklerine daha derinlemesine dalmak isteyen kullanıcılar için tasarlanmıştır. - -**Ön koşullar** - -- [Hello Nextflow](../hello_nextflow/index.md) eğitiminin veya eşdeğer deneyimin tamamlanması -- Nextflow sözdizimi ve kavramlarına temel aşinalık -- Temel iş akışı geliştirme desenlerinin anlaşılması -- Komut satırı araçlarıyla deneyim - -## Koleksiyon içeriği - -Bu koleksiyon, tamamlayıcı iş akışı mühendisliği konularını kapsayan dört Yan Görevden oluşur: - -1. **[İç İçe Workflow'lar](../side_quests/workflows_of_workflows/index.md)** - Karmaşık iş akışı mimarisi ve kompozisyonu -2. **[nf-test ile Test Etme](../side_quests/nf_test/index.md)** - Nextflow iş akışları için test stratejileri -3. **[Meta Veri](../side_quests/metadata/index.md)** - Nextflow kanallarındaki öğeler için meta veri işleme -4. **[Bölme ve Gruplama](../side_quests/splitting_and_grouping/index.md)** - Gelişmiş veri işleme desenleri - -Her Yan Görev bağımsızdır ve bağımsız kavramları kapsar; ancak konular arasında mantıksal bir ilerleme için yukarıda listelenen sırayla tamamlamanızı öneririz. - -## Bu koleksiyonu nasıl kullanmalı - -İlk olarak, eğitim ortamını ayrı bir sekmede başlatmak için aşağıdaki "Open in GitHub Codespaces" düğmesine command-click yapın, ardından yüklenirken okumaya devam edin. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/nextflow-io/training?quickstart=1&ref=master) - -Ortamınız çalışmaya başladığında, koleksiyon üzerinde şu şekilde çalışın: - -1. Bu sekmede: Adım adım geliştirme alıştırmalarını açıklayan yukarıda listelenen ilk Yan Göreve gidin. -2. Codespaces sekmenizde: Yan Görev için alıştırmaları tamamlayın. -3. Bir Yan Görevi tamamladığınızda, bu sayfaya dönün ve yukarıdaki listedeki bir sonrakine gidin. -4. Koleksiyonu tamamladığınızda, çok kısa bir anketi doldurmak için aşağıdaki düğmeye tıklayın. Geri bildiriminiz, eğitim materyallerini herkes için geliştirmeye devam etmemizi sağlar. - -[![Anketi Doldurun](https://img.shields.io/badge/Take%20the-Survey-blue?style=flat-square)](https://seqera.typeform.com/to/Q9pc2YKw) - -Başlamaya hazır mısınız? Yukarıdaki ilk modülden başlayın! diff --git a/docs/tr/docs/training_collections/index.md b/docs/tr/docs/training_collections/index.md deleted file mode 100644 index 2d4b3862a3..0000000000 --- a/docs/tr/docs/training_collections/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Eğitim Koleksiyonları -hide: - - toc ---- - -# Eğitim Koleksiyonları - -:material-information-outline:{ .ai-translation-notice-icon } Yapay zeka destekli çeviri - [daha fazla bilgi ve iyileştirme önerileri](https://github.com/nextflow-io/training/blob/master/TRANSLATING.md) - -Bu bölüm, belirli bir tema veya kullanım senaryosu etrafında kapsamlı bir öğrenme deneyimi sağlamayı amaçlayan [Yan Görevler](../side_quests/index.md) adlı eğitim modüllerinin küratörlü koleksiyonlarını içerir. - -## Ön Koşullar - -Her koleksiyonun kendi dizin sayfasında belgelenmiş özel ön koşulları vardır. Ancak çoğu koleksiyon şunları varsayar: - -- Komut satırı ile deneyim -- [Hello Nextflow](../hello_nextflow/index.md) başlangıç eğitim kursunda kapsanan temel Nextflow kavramları ve araçları - -Teknik gereksinimler ve ortam kurulumu için [Ortam Kurulumu](../envsetup/index.md) mini kursuna bakın. - -## Mevcut Koleksiyonlar - -- [Mimar Araç Seti I](./architects_toolkit_1.md) - Karmaşık pipeline'ları birleştirmek için iş akışı mimari desenleri, test stratejilerini uygulama, meta veri yönetimi ve verileri gruplama ve bölme konularını kapsayan dört Yan Görevden oluşan bir koleksiyon. _Tahmini süre: Grup eğitiminde 4 saat._ - -## Yeni Koleksiyonlar Önerme - -Ek Yan Görevler ve Koleksiyonlar geliştirmek için aktif olarak çalışıyoruz. -Bir Koleksiyonda ele alınmasının mantıklı olacağını düşündüğünüz konuları topluluk forumunun [Eğitim bölümünde](https://community.seqera.io/c/training/) paylaşarak önermekten çekinmeyin. diff --git a/docs/tr/mkdocs.yml b/docs/tr/mkdocs.yml index ad4fd1d9f1..ad0a97683d 100644 --- a/docs/tr/mkdocs.yml +++ b/docs/tr/mkdocs.yml @@ -13,3 +13,35 @@ extra: Çerezleri nasıl kullandığımız hakkında daha fazla bilgi edinin. cookies: posthog: "PostHog Analytics" + nav_group_labels: + "Eğitim Ortamı": "Kurulum ve Yardım" + "Nextflow Run": "Kullanıcılar" + "Hello Nextflow": "Geliştiriciler" + nav_title_overrides: + nextflow_run/index.md: Nextflow Run + nfcore_run/index.md: Run nf-core + seqera_run/index.md: Run with Seqera + hello_nextflow/index.md: Hello Nextflow + hello_nf-core/index.md: Build with nf-core + nf4_science/index.md: "Bilim için Nextflow" + nf4_science/genomics/index.md: "Genomik" + nf4_science/rnaseq/index.md: "RNAseq" + nf4_science/imaging/index.md: "Görüntüleme" + side_quests/index.md: "Yan Görevler" + envsetup/index.md: "Eğitim Ortamı" + nav_child_title_overrides: + nextflow_run/index.md: "Genel Bakış" + nfcore_run/index.md: "Genel Bakış" + seqera_run/index.md: "Genel Bakış" + hello_nextflow/index.md: "Genel Bakış" + hello_nf-core/index.md: "Genel Bakış" + nf4_science/index.md: "Genel Bakış" + nf4_science/genomics/index.md: "Genel Bakış" + nf4_science/rnaseq/index.md: "Genel Bakış" + nf4_science/imaging/index.md: "Genel Bakış" + side_quests/index.md: "Genel Bakış" + nav_section_separators: + side_quests/dev_environment/index.md: "Geliştirici Araçları ve İpuçları" + side_quests/working_with_files/index.md: "Veri Akışına Derinlemesine Bakış" + side_quests/workflows_of_workflows/index.md: "Modüler Mimari Uygulamada" + side_quests/nf_test/index.md: "Nextflow'un Genişletilmiş Evreni" diff --git a/execution-config/data/greetings.csv b/execution-config/data/greetings.csv new file mode 100644 index 0000000000..c36050c017 --- /dev/null +++ b/execution-config/data/greetings.csv @@ -0,0 +1,3 @@ +Hello,English,123 +Bonjour,French,456 +Hola,Spanish,789 diff --git a/execution-config/main.nf b/execution-config/main.nf new file mode 100644 index 0000000000..2fa5b29350 --- /dev/null +++ b/execution-config/main.nf @@ -0,0 +1,58 @@ +#!/usr/bin/env nextflow + +include { sayHello } from './modules/sayHello.nf' +include { convertToUpper } from './modules/convertToUpper.nf' +include { collectGreetings } from './modules/collectGreetings.nf' +include { cowpy } from './modules/cowpy.nf' + +/* + * Pipeline parameters + */ +params { + input: Path + batch: String + character: String +} + +workflow { + + main: + // create a channel for inputs from a CSV file + greeting_ch = channel.fromPath(params.input) + .splitCsv() + .map { line -> line[0] } + sayHello(greeting_ch) + convertToUpper(sayHello.out) + collectGreetings(convertToUpper.out.collect(), params.batch) + cowpy(collectGreetings.out.outfile, params.character) + + publish: + first_output = sayHello.out + uppercased = convertToUpper.out + collected = collectGreetings.out.outfile + batch_report = collectGreetings.out.report + cowpy_art = cowpy.out +} + +output { + first_output { + path 'full_pipeline/intermediates' + mode 'copy' + } + uppercased { + path 'full_pipeline/intermediates' + mode 'copy' + } + collected { + path 'full_pipeline/intermediates' + mode 'copy' + } + batch_report { + path 'full_pipeline' + mode 'copy' + } + cowpy_art { + path 'full_pipeline' + mode 'copy' + } +} diff --git a/execution-config/modules/collectGreetings.nf b/execution-config/modules/collectGreetings.nf new file mode 100644 index 0000000000..91685eb20b --- /dev/null +++ b/execution-config/modules/collectGreetings.nf @@ -0,0 +1,20 @@ +/* + * Collect uppercase greetings into a single output file + */ +process collectGreetings { + + input: + path input_files + val batch_name + + output: + path "COLLECTED-${batch_name}-output.txt", emit: outfile + path "${batch_name}-report.txt", emit: report + + script: + count_greetings = input_files.size() + """ + cat ${input_files} > 'COLLECTED-${batch_name}-output.txt' + echo 'There were ${count_greetings} greetings in this batch.' > '${batch_name}-report.txt' + """ +} diff --git a/execution-config/modules/convertToUpper.nf b/execution-config/modules/convertToUpper.nf new file mode 100644 index 0000000000..de677c0eb4 --- /dev/null +++ b/execution-config/modules/convertToUpper.nf @@ -0,0 +1,16 @@ +/* + * Use a text replacement tool to convert the greeting to uppercase + */ +process convertToUpper { + + input: + path input_file + + output: + path "UPPER-${input_file}" + + script: + """ + cat '${input_file}' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}' + """ +} diff --git a/execution-config/modules/cowpy.nf b/execution-config/modules/cowpy.nf new file mode 100644 index 0000000000..1c5f025b43 --- /dev/null +++ b/execution-config/modules/cowpy.nf @@ -0,0 +1,17 @@ +// Generate ASCII art with cowpy (https://github.com/jeffbuttars/cowpy) +process cowpy { + + container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' + + input: + path input_file + val character + + output: + path "cowpy-${input_file}" + + script: + """ + cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file} + """ +} diff --git a/execution-config/modules/sayHello.nf b/execution-config/modules/sayHello.nf new file mode 100644 index 0000000000..45aad6f2ce --- /dev/null +++ b/execution-config/modules/sayHello.nf @@ -0,0 +1,16 @@ +/* + * Use echo to print 'Hello World!' to a file + */ +process sayHello { + + input: + val greeting + + output: + path "${greeting}-output.txt" + + script: + """ + echo '${greeting}' > '${greeting}-output.txt' + """ +} diff --git a/execution-config/nextflow.config b/execution-config/nextflow.config new file mode 100644 index 0000000000..b99e5c4005 --- /dev/null +++ b/execution-config/nextflow.config @@ -0,0 +1,40 @@ +/* + * Software packaging + */ +docker.enabled = true + +/* + * Process settings + */ +process { + memory = 1.GB + // withName: 'cowpy' { + // conda = 'conda-forge::cowpy==1.1.5' + // memory = 2.GB + // cpus = 2 + // } +} + +/* + * Pipeline parameters + */ +params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' +} + +/* + * Profiles + */ +profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } +} diff --git a/hello-nf-core/solutions/core-hello-part5/modules.json b/hello-nf-core/solutions/core-hello-part5/modules.json deleted file mode 100644 index 34389d9fe0..0000000000 --- a/hello-nf-core/solutions/core-hello-part5/modules.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "core/hello", - "homePage": "https://github.com/core/hello", - "repos": { - "https://github.com/nf-core/modules.git": { - "modules": { - "nf-core": { - "find/concatenate": { - "branch": "master", - "git_sha": "6d46786420b4d7bc88eba026eb389c0c5535d120", - "installed_by": ["modules"] - } - } - }, - "subworkflows": { - "nf-core": { - "utils_nextflow_pipeline": { - "branch": "master", - "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", - "installed_by": ["subworkflows"] - }, - "utils_nfcore_pipeline": { - "branch": "master", - "git_sha": "a3fb7351b1fdb2b1de282b765816bbea190e86a8", - "installed_by": ["subworkflows"] - }, - "utils_nfschema_plugin": { - "branch": "master", - "git_sha": "fdc08b8b1ae74f56686ce21f7ea11ad11990ce57", - "installed_by": ["subworkflows"] - } - } - } - } - } -} diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap b/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap deleted file mode 100644 index 859d1030fb..0000000000 --- a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Should run without failures": { - "content": [ - { - "0": [ - true - ], - "valid_config": [ - true - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-28T12:03:25.726491" - } -} \ No newline at end of file diff --git a/nextflow-run/1-hello.nf b/nextflow-run/1-hello.nf index 050bade7e1..c453d3561c 100644 --- a/nextflow-run/1-hello.nf +++ b/nextflow-run/1-hello.nf @@ -1,21 +1,6 @@ #!/usr/bin/env nextflow -/* - * Use echo to print 'Hello World!' to a file - */ -process sayHello { - - input: - val greeting - - output: - path 'output.txt' - - script: - """ - echo '${greeting}' > output.txt - """ -} +include { sayHello } from './modules/sayHello.nf' /* * Pipeline parameters diff --git a/nextflow-run/2-inputs.nf b/nextflow-run/2-inputs.nf new file mode 100644 index 0000000000..186d75bce8 --- /dev/null +++ b/nextflow-run/2-inputs.nf @@ -0,0 +1,31 @@ +#!/usr/bin/env nextflow + +include { sayHello } from './modules/sayHello.nf' + +/* + * Pipeline parameters + */ +params { + input: Path +} + +workflow { + + main: + // create a channel for inputs from a CSV file + greeting_ch = channel.fromPath(params.input) + .splitCsv() + .map { line -> line[0] } + // emit a greeting + sayHello(greeting_ch) + + publish: + first_output = sayHello.out +} + +output { + first_output { + path '2-inputs' + mode 'copy' + } +} diff --git a/nextflow-run/custom.config b/nextflow-run/custom.config new file mode 100644 index 0000000000..3448c04e74 --- /dev/null +++ b/nextflow-run/custom.config @@ -0,0 +1,7 @@ +process { + cpus = 2 + memory = 2.GB +} + +docker.enabled = false +conda.enabled = true diff --git a/nextflow-run/data/greetings-extended.csv b/nextflow-run/data/greetings-extended.csv new file mode 100644 index 0000000000..097b8ff4f1 --- /dev/null +++ b/nextflow-run/data/greetings-extended.csv @@ -0,0 +1,5 @@ +Hello,English,123 +Bonjour,French,456 +Hola,Spanish,789 +Ciao,Italian,101 +Ola,Portuguese,112 diff --git a/nextflow-run/main.nf b/nextflow-run/main.nf new file mode 100644 index 0000000000..e641738f2d --- /dev/null +++ b/nextflow-run/main.nf @@ -0,0 +1,53 @@ +#!/usr/bin/env nextflow + +include { sayHello } from './modules/sayHello.nf' +include { convertToUpper } from './modules/convertToUpper.nf' +include { collectGreetings } from './modules/collectGreetings.nf' +include { cowpy } from './modules/cowpy.nf' + +/* + * Pipeline parameters + */ +params { + input: Path + batch: String + character: String +} + +workflow { + + main: + // create a channel for inputs from a CSV file + greeting_ch = channel.fromPath(params.input) + .splitCsv() + .map { line -> line[0] } + sayHello(greeting_ch) + convertToUpper(sayHello.out) + collectGreetings(convertToUpper.out.collect(), params.batch) + cowpy(collectGreetings.out.outfile, params.character) + + publish: + first_output = sayHello.out + uppercased = convertToUpper.out + collected = collectGreetings.out.outfile + batch_report = collectGreetings.out.report + cowpy_art = cowpy.out +} + +output { + first_output { + path "${params.batch}/intermediates" + } + uppercased { + path "${params.batch}/intermediates" + } + collected { + path "${params.batch}/intermediates" + } + batch_report { + path "${params.batch}" + } + cowpy_art { + path "${params.batch}" + } +} diff --git a/nextflow-run/modules/cowpy.nf b/nextflow-run/modules/cowpy.nf index 1c5f025b43..a43b42acf9 100644 --- a/nextflow-run/modules/cowpy.nf +++ b/nextflow-run/modules/cowpy.nf @@ -2,6 +2,7 @@ process cowpy { container 'community.wave.seqera.io/library/cowpy:1.1.5--3db457ae1977a273' + conda 'conda-forge::cowpy==1.1.5' input: path input_file diff --git a/nextflow-run/nextflow.config b/nextflow-run/nextflow.config index d3af3eaae9..7677441cea 100644 --- a/nextflow-run/nextflow.config +++ b/nextflow-run/nextflow.config @@ -1 +1,36 @@ +/* + * Software packaging + */ docker.enabled = true + +/* + * Process settings + */ +process { + cpus = 1 + memory = 1.GB +} + +/* + * Pipeline parameters + */ +params { + input = 'data/greetings.csv' + batch = 'batch' + character = 'turkey' +} + +/* + * Profiles + */ +profiles { + test { + params.input = 'data/greetings.csv' + params.batch = 'test' + params.character = 'tux' + } + conda { + docker.enabled = false + conda.enabled = true + } +} diff --git a/nextflow-run/test-params.json b/nextflow-run/test-params.json index a7effdb696..5fcedf7436 100644 --- a/nextflow-run/test-params.json +++ b/nextflow-run/test-params.json @@ -1,5 +1,5 @@ { "input": "data/greetings.csv", "batch": "json", - "character": "turtle" + "character": "stegosaurus" } diff --git a/hello-nf-core/greetings.csv b/nfcore-build/greetings.csv similarity index 100% rename from hello-nf-core/greetings.csv rename to nfcore-build/greetings.csv diff --git a/hello-nf-core/original-hello/hello.nf b/nfcore-build/original-hello/hello.nf similarity index 100% rename from hello-nf-core/original-hello/hello.nf rename to nfcore-build/original-hello/hello.nf diff --git a/hello-nf-core/original-hello/modules/collectGreetings.nf b/nfcore-build/original-hello/modules/collectGreetings.nf similarity index 100% rename from hello-nf-core/original-hello/modules/collectGreetings.nf rename to nfcore-build/original-hello/modules/collectGreetings.nf diff --git a/hello-nf-core/original-hello/modules/convertToUpper.nf b/nfcore-build/original-hello/modules/convertToUpper.nf similarity index 100% rename from hello-nf-core/original-hello/modules/convertToUpper.nf rename to nfcore-build/original-hello/modules/convertToUpper.nf diff --git a/hello-nf-core/original-hello/modules/cowpy.nf b/nfcore-build/original-hello/modules/cowpy.nf similarity index 100% rename from hello-nf-core/original-hello/modules/cowpy.nf rename to nfcore-build/original-hello/modules/cowpy.nf diff --git a/hello-nf-core/original-hello/modules/sayHello.nf b/nfcore-build/original-hello/modules/sayHello.nf similarity index 100% rename from hello-nf-core/original-hello/modules/sayHello.nf rename to nfcore-build/original-hello/modules/sayHello.nf diff --git a/nfcore-build/original-hello/nextflow.config b/nfcore-build/original-hello/nextflow.config new file mode 100644 index 0000000000..d3af3eaae9 --- /dev/null +++ b/nfcore-build/original-hello/nextflow.config @@ -0,0 +1 @@ +docker.enabled = true diff --git a/hello-nf-core/solutions/composable-hello/hello.nf b/nfcore-build/solutions/composable-hello/hello.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/hello.nf rename to nfcore-build/solutions/composable-hello/hello.nf diff --git a/hello-nf-core/solutions/composable-hello/main.nf b/nfcore-build/solutions/composable-hello/main.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/main.nf rename to nfcore-build/solutions/composable-hello/main.nf diff --git a/hello-nf-core/solutions/composable-hello/modules/collectGreetings.nf b/nfcore-build/solutions/composable-hello/modules/collectGreetings.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/modules/collectGreetings.nf rename to nfcore-build/solutions/composable-hello/modules/collectGreetings.nf diff --git a/hello-nf-core/solutions/composable-hello/modules/convertToUpper.nf b/nfcore-build/solutions/composable-hello/modules/convertToUpper.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/modules/convertToUpper.nf rename to nfcore-build/solutions/composable-hello/modules/convertToUpper.nf diff --git a/hello-nf-core/solutions/composable-hello/modules/cowpy.nf b/nfcore-build/solutions/composable-hello/modules/cowpy.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/modules/cowpy.nf rename to nfcore-build/solutions/composable-hello/modules/cowpy.nf diff --git a/hello-nf-core/solutions/composable-hello/modules/sayHello.nf b/nfcore-build/solutions/composable-hello/modules/sayHello.nf similarity index 100% rename from hello-nf-core/solutions/composable-hello/modules/sayHello.nf rename to nfcore-build/solutions/composable-hello/modules/sayHello.nf diff --git a/hello-nf-core/solutions/core-hello-part2/.gitignore b/nfcore-build/solutions/core-hello-part1/.gitignore similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/.gitignore rename to nfcore-build/solutions/core-hello-part1/.gitignore diff --git a/hello-nf-core/solutions/core-hello-part2/.nf-core.yml b/nfcore-build/solutions/core-hello-part1/.nf-core.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/.nf-core.yml rename to nfcore-build/solutions/core-hello-part1/.nf-core.yml diff --git a/hello-nf-core/solutions/core-hello-part2/README.md b/nfcore-build/solutions/core-hello-part1/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/README.md rename to nfcore-build/solutions/core-hello-part1/README.md diff --git a/hello-nf-core/solutions/core-hello-part2/assets/greetings.csv b/nfcore-build/solutions/core-hello-part1/assets/greetings.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/assets/greetings.csv rename to nfcore-build/solutions/core-hello-part1/assets/greetings.csv diff --git a/hello-nf-core/solutions/core-hello-part2/assets/samplesheet.csv b/nfcore-build/solutions/core-hello-part1/assets/samplesheet.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/assets/samplesheet.csv rename to nfcore-build/solutions/core-hello-part1/assets/samplesheet.csv diff --git a/hello-nf-core/solutions/core-hello-part2/assets/schema_input.json b/nfcore-build/solutions/core-hello-part1/assets/schema_input.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/assets/schema_input.json rename to nfcore-build/solutions/core-hello-part1/assets/schema_input.json diff --git a/hello-nf-core/solutions/core-hello-part2/conf/base.config b/nfcore-build/solutions/core-hello-part1/conf/base.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/conf/base.config rename to nfcore-build/solutions/core-hello-part1/conf/base.config diff --git a/hello-nf-core/solutions/core-hello-part2/conf/modules.config b/nfcore-build/solutions/core-hello-part1/conf/modules.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/conf/modules.config rename to nfcore-build/solutions/core-hello-part1/conf/modules.config diff --git a/hello-nf-core/solutions/core-hello-part2/conf/test.config b/nfcore-build/solutions/core-hello-part1/conf/test.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/conf/test.config rename to nfcore-build/solutions/core-hello-part1/conf/test.config diff --git a/hello-nf-core/solutions/core-hello-part2/conf/test_full.config b/nfcore-build/solutions/core-hello-part1/conf/test_full.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/conf/test_full.config rename to nfcore-build/solutions/core-hello-part1/conf/test_full.config diff --git a/hello-nf-core/solutions/core-hello-part2/docs/README.md b/nfcore-build/solutions/core-hello-part1/docs/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/docs/README.md rename to nfcore-build/solutions/core-hello-part1/docs/README.md diff --git a/hello-nf-core/solutions/core-hello-part2/docs/output.md b/nfcore-build/solutions/core-hello-part1/docs/output.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/docs/output.md rename to nfcore-build/solutions/core-hello-part1/docs/output.md diff --git a/hello-nf-core/solutions/core-hello-part2/docs/usage.md b/nfcore-build/solutions/core-hello-part1/docs/usage.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/docs/usage.md rename to nfcore-build/solutions/core-hello-part1/docs/usage.md diff --git a/hello-nf-core/solutions/core-hello-part2/main.nf b/nfcore-build/solutions/core-hello-part1/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/main.nf rename to nfcore-build/solutions/core-hello-part1/main.nf diff --git a/hello-nf-core/solutions/core-hello-part2/modules.json b/nfcore-build/solutions/core-hello-part1/modules.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/modules.json rename to nfcore-build/solutions/core-hello-part1/modules.json diff --git a/hello-nf-core/solutions/core-hello-part2/modules/local/collectGreetings.nf b/nfcore-build/solutions/core-hello-part1/modules/local/collectGreetings.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/modules/local/collectGreetings.nf rename to nfcore-build/solutions/core-hello-part1/modules/local/collectGreetings.nf diff --git a/hello-nf-core/solutions/core-hello-part2/modules/local/convertToUpper.nf b/nfcore-build/solutions/core-hello-part1/modules/local/convertToUpper.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/modules/local/convertToUpper.nf rename to nfcore-build/solutions/core-hello-part1/modules/local/convertToUpper.nf diff --git a/hello-nf-core/solutions/core-hello-part2/modules/local/cowpy.nf b/nfcore-build/solutions/core-hello-part1/modules/local/cowpy.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/modules/local/cowpy.nf rename to nfcore-build/solutions/core-hello-part1/modules/local/cowpy.nf diff --git a/hello-nf-core/solutions/core-hello-part2/modules/local/sayHello.nf b/nfcore-build/solutions/core-hello-part1/modules/local/sayHello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/modules/local/sayHello.nf rename to nfcore-build/solutions/core-hello-part1/modules/local/sayHello.nf diff --git a/hello-nf-core/solutions/core-hello-part2/nextflow.config b/nfcore-build/solutions/core-hello-part1/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/nextflow.config rename to nfcore-build/solutions/core-hello-part1/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part2/nextflow_schema.json b/nfcore-build/solutions/core-hello-part1/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part1/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf b/nfcore-build/solutions/core-hello-part1/subworkflows/local/utils_nfcore_hello_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part1/subworkflows/local/utils_nfcore_hello_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/main.nf diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/meta.yml b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/meta.yml rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part1/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part2/workflows/hello.nf b/nfcore-build/solutions/core-hello-part1/workflows/hello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part2/workflows/hello.nf rename to nfcore-build/solutions/core-hello-part1/workflows/hello.nf diff --git a/hello-nf-core/solutions/core-hello-part3/.gitignore b/nfcore-build/solutions/core-hello-part2/.gitignore similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/.gitignore rename to nfcore-build/solutions/core-hello-part2/.gitignore diff --git a/hello-nf-core/solutions/core-hello-part3/.nf-core.yml b/nfcore-build/solutions/core-hello-part2/.nf-core.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/.nf-core.yml rename to nfcore-build/solutions/core-hello-part2/.nf-core.yml diff --git a/hello-nf-core/solutions/core-hello-part3/README.md b/nfcore-build/solutions/core-hello-part2/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/README.md rename to nfcore-build/solutions/core-hello-part2/README.md diff --git a/hello-nf-core/solutions/core-hello-part3/assets/greetings.csv b/nfcore-build/solutions/core-hello-part2/assets/greetings.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/assets/greetings.csv rename to nfcore-build/solutions/core-hello-part2/assets/greetings.csv diff --git a/hello-nf-core/solutions/core-hello-part3/assets/samplesheet.csv b/nfcore-build/solutions/core-hello-part2/assets/samplesheet.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/assets/samplesheet.csv rename to nfcore-build/solutions/core-hello-part2/assets/samplesheet.csv diff --git a/hello-nf-core/solutions/core-hello-part3/assets/schema_input.json b/nfcore-build/solutions/core-hello-part2/assets/schema_input.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/assets/schema_input.json rename to nfcore-build/solutions/core-hello-part2/assets/schema_input.json diff --git a/hello-nf-core/solutions/core-hello-part3/conf/base.config b/nfcore-build/solutions/core-hello-part2/conf/base.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/conf/base.config rename to nfcore-build/solutions/core-hello-part2/conf/base.config diff --git a/hello-nf-core/solutions/core-hello-part3/conf/modules.config b/nfcore-build/solutions/core-hello-part2/conf/modules.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/conf/modules.config rename to nfcore-build/solutions/core-hello-part2/conf/modules.config diff --git a/hello-nf-core/solutions/core-hello-part3/conf/test.config b/nfcore-build/solutions/core-hello-part2/conf/test.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/conf/test.config rename to nfcore-build/solutions/core-hello-part2/conf/test.config diff --git a/hello-nf-core/solutions/core-hello-part3/conf/test_full.config b/nfcore-build/solutions/core-hello-part2/conf/test_full.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/conf/test_full.config rename to nfcore-build/solutions/core-hello-part2/conf/test_full.config diff --git a/hello-nf-core/solutions/core-hello-part3/docs/README.md b/nfcore-build/solutions/core-hello-part2/docs/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/docs/README.md rename to nfcore-build/solutions/core-hello-part2/docs/README.md diff --git a/hello-nf-core/solutions/core-hello-part3/docs/output.md b/nfcore-build/solutions/core-hello-part2/docs/output.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/docs/output.md rename to nfcore-build/solutions/core-hello-part2/docs/output.md diff --git a/hello-nf-core/solutions/core-hello-part3/docs/usage.md b/nfcore-build/solutions/core-hello-part2/docs/usage.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/docs/usage.md rename to nfcore-build/solutions/core-hello-part2/docs/usage.md diff --git a/hello-nf-core/solutions/core-hello-part3/main.nf b/nfcore-build/solutions/core-hello-part2/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/main.nf rename to nfcore-build/solutions/core-hello-part2/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules.json b/nfcore-build/solutions/core-hello-part2/modules.json similarity index 71% rename from hello-nf-core/solutions/core-hello-part3/modules.json rename to nfcore-build/solutions/core-hello-part2/modules.json index 4aa9c3870c..d6a9ce9bf1 100644 --- a/hello-nf-core/solutions/core-hello-part3/modules.json +++ b/nfcore-build/solutions/core-hello-part2/modules.json @@ -8,9 +8,7 @@ "find/concatenate": { "branch": "master", "git_sha": "6d46786420b4d7bc88eba026eb389c0c5535d120", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -19,26 +17,20 @@ "utils_nextflow_pipeline": { "branch": "master", "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "a3fb7351b1fdb2b1de282b765816bbea190e86a8", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", "git_sha": "fdc08b8b1ae74f56686ce21f7ea11ad11990ce57", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/modules/local/collectGreetings.nf b/nfcore-build/solutions/core-hello-part2/modules/local/collectGreetings.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/local/collectGreetings.nf rename to nfcore-build/solutions/core-hello-part2/modules/local/collectGreetings.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules/local/convertToUpper.nf b/nfcore-build/solutions/core-hello-part2/modules/local/convertToUpper.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/local/convertToUpper.nf rename to nfcore-build/solutions/core-hello-part2/modules/local/convertToUpper.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules/local/cowpy.nf b/nfcore-build/solutions/core-hello-part2/modules/local/cowpy.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/local/cowpy.nf rename to nfcore-build/solutions/core-hello-part2/modules/local/cowpy.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules/local/sayHello.nf b/nfcore-build/solutions/core-hello-part2/modules/local/sayHello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/local/sayHello.nf rename to nfcore-build/solutions/core-hello-part2/modules/local/sayHello.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/environment.yml b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/environment.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/environment.yml rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/environment.yml diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/meta.yml similarity index 89% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/meta.yml index 046acb6919..78c46edfbd 100644 --- a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml +++ b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/meta.yml @@ -1,5 +1,6 @@ name: "find_concatenate" -description: A module for concatenation of gzipped or uncompressed files getting around +description: + A module for concatenation of gzipped or uncompressed files getting around UNIX terminal argument size keywords: - concatenate @@ -9,14 +10,16 @@ keywords: - pigz tools: - find: - description: GNU find searches the directory tree rooted at each given starting-point + description: + GNU find searches the directory tree rooted at each given starting-point by evaluating the given expression documentation: https://man7.org/linux/man-pages/man1/find.1.html licence: - "GPL-3.0-or-later" identifier: "" - pigz: - description: pigz, which stands for Parallel Implementation of GZip, is a fully + description: + pigz, which stands for Parallel Implementation of GZip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. documentation: https://zlib.net/pigz/pigz.pdf @@ -43,7 +46,8 @@ output: e.g. [ id:'test' ] - ${prefix}: type: file - description: Concatenated file. Will be gzipped if ${prefix} ends with ".gz" + description: + Concatenated file. Will be gzipped if ${prefix} ends with ".gz" or inputs are gzipped, will be uncompressed otherwise. pattern: "${file_out}" ontologies: [] diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/main.nf.test.snap index 56494eacdd..5f0dc1c338 100644 --- a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/main.nf.test.snap @@ -204,4 +204,4 @@ }, "timestamp": "2026-03-11T11:56:18.76821511" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config b/nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config rename to nfcore-build/solutions/core-hello-part2/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config diff --git a/hello-nf-core/solutions/core-hello-part3/nextflow.config b/nfcore-build/solutions/core-hello-part2/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/nextflow.config rename to nfcore-build/solutions/core-hello-part2/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part3/nextflow_schema.json b/nfcore-build/solutions/core-hello-part2/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part2/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf b/nfcore-build/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap index e3f0baf473..846287c417 100644 --- a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -17,4 +17,4 @@ }, "timestamp": "2024-02-28T12:02:12.425833" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 02c6701413..b13b311213 100644 --- a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -133,4 +133,4 @@ }, "timestamp": "2024-02-28T12:03:21.714424" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/meta.yml b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/meta.yml rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part3/workflows/hello.nf b/nfcore-build/solutions/core-hello-part2/workflows/hello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part3/workflows/hello.nf rename to nfcore-build/solutions/core-hello-part2/workflows/hello.nf diff --git a/hello-nf-core/solutions/core-hello-part4/.gitignore b/nfcore-build/solutions/core-hello-part3/.gitignore similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/.gitignore rename to nfcore-build/solutions/core-hello-part3/.gitignore diff --git a/hello-nf-core/solutions/core-hello-part4/.nf-core.yml b/nfcore-build/solutions/core-hello-part3/.nf-core.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/.nf-core.yml rename to nfcore-build/solutions/core-hello-part3/.nf-core.yml diff --git a/hello-nf-core/solutions/core-hello-part4/README.md b/nfcore-build/solutions/core-hello-part3/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/README.md rename to nfcore-build/solutions/core-hello-part3/README.md diff --git a/hello-nf-core/solutions/core-hello-part4/assets/greetings.csv b/nfcore-build/solutions/core-hello-part3/assets/greetings.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/assets/greetings.csv rename to nfcore-build/solutions/core-hello-part3/assets/greetings.csv diff --git a/hello-nf-core/solutions/core-hello-part4/assets/samplesheet.csv b/nfcore-build/solutions/core-hello-part3/assets/samplesheet.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/assets/samplesheet.csv rename to nfcore-build/solutions/core-hello-part3/assets/samplesheet.csv diff --git a/hello-nf-core/solutions/core-hello-part4/assets/schema_input.json b/nfcore-build/solutions/core-hello-part3/assets/schema_input.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/assets/schema_input.json rename to nfcore-build/solutions/core-hello-part3/assets/schema_input.json diff --git a/hello-nf-core/solutions/core-hello-part4/conf/base.config b/nfcore-build/solutions/core-hello-part3/conf/base.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/conf/base.config rename to nfcore-build/solutions/core-hello-part3/conf/base.config diff --git a/hello-nf-core/solutions/core-hello-part4/conf/modules.config b/nfcore-build/solutions/core-hello-part3/conf/modules.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/conf/modules.config rename to nfcore-build/solutions/core-hello-part3/conf/modules.config diff --git a/hello-nf-core/solutions/core-hello-part4/conf/test.config b/nfcore-build/solutions/core-hello-part3/conf/test.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/conf/test.config rename to nfcore-build/solutions/core-hello-part3/conf/test.config diff --git a/hello-nf-core/solutions/core-hello-part4/conf/test_full.config b/nfcore-build/solutions/core-hello-part3/conf/test_full.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/conf/test_full.config rename to nfcore-build/solutions/core-hello-part3/conf/test_full.config diff --git a/hello-nf-core/solutions/core-hello-part4/docs/README.md b/nfcore-build/solutions/core-hello-part3/docs/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/docs/README.md rename to nfcore-build/solutions/core-hello-part3/docs/README.md diff --git a/hello-nf-core/solutions/core-hello-part4/docs/output.md b/nfcore-build/solutions/core-hello-part3/docs/output.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/docs/output.md rename to nfcore-build/solutions/core-hello-part3/docs/output.md diff --git a/hello-nf-core/solutions/core-hello-part4/docs/usage.md b/nfcore-build/solutions/core-hello-part3/docs/usage.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/docs/usage.md rename to nfcore-build/solutions/core-hello-part3/docs/usage.md diff --git a/hello-nf-core/solutions/core-hello-part4/main.nf b/nfcore-build/solutions/core-hello-part3/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/main.nf rename to nfcore-build/solutions/core-hello-part3/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules.json b/nfcore-build/solutions/core-hello-part3/modules.json similarity index 71% rename from hello-nf-core/solutions/core-hello-part4/modules.json rename to nfcore-build/solutions/core-hello-part3/modules.json index 4aa9c3870c..d6a9ce9bf1 100644 --- a/hello-nf-core/solutions/core-hello-part4/modules.json +++ b/nfcore-build/solutions/core-hello-part3/modules.json @@ -8,9 +8,7 @@ "find/concatenate": { "branch": "master", "git_sha": "6d46786420b4d7bc88eba026eb389c0c5535d120", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -19,26 +17,20 @@ "utils_nextflow_pipeline": { "branch": "master", "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "a3fb7351b1fdb2b1de282b765816bbea190e86a8", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfschema_plugin": { "branch": "master", "git_sha": "fdc08b8b1ae74f56686ce21f7ea11ad11990ce57", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/collectGreetings.nf b/nfcore-build/solutions/core-hello-part3/modules/local/collectGreetings.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/collectGreetings.nf rename to nfcore-build/solutions/core-hello-part3/modules/local/collectGreetings.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/convertToUpper.nf b/nfcore-build/solutions/core-hello-part3/modules/local/convertToUpper.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/convertToUpper.nf rename to nfcore-build/solutions/core-hello-part3/modules/local/convertToUpper.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy.nf b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/cowpy.nf rename to nfcore-build/solutions/core-hello-part3/modules/local/cowpy.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/environment.yml b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy/environment.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/environment.yml rename to nfcore-build/solutions/core-hello-part3/modules/local/cowpy/environment.yml diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/main.nf b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/main.nf rename to nfcore-build/solutions/core-hello-part3/modules/local/cowpy/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/meta.yml b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/meta.yml rename to nfcore-build/solutions/core-hello-part3/modules/local/cowpy/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy/tests/main.nf.test similarity index 98% rename from hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part3/modules/local/cowpy/tests/main.nf.test index 88f75f7b6a..e3fcf90a5d 100644 --- a/hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test +++ b/nfcore-build/solutions/core-hello-part3/modules/local/cowpy/tests/main.nf.test @@ -22,7 +22,7 @@ nextflow_process { process { """ // TODO nf-core: define inputs of the process here. Example: - + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), @@ -54,7 +54,7 @@ nextflow_process { process { """ // TODO nf-core: define inputs of the process here. Example: - + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), diff --git a/hello-nf-core/solutions/core-hello-part4/modules/local/sayHello.nf b/nfcore-build/solutions/core-hello-part3/modules/local/sayHello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/local/sayHello.nf rename to nfcore-build/solutions/core-hello-part3/modules/local/sayHello.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/environment.yml b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/environment.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/environment.yml rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/environment.yml diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml similarity index 89% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml index 046acb6919..78c46edfbd 100644 --- a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml +++ b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/meta.yml @@ -1,5 +1,6 @@ name: "find_concatenate" -description: A module for concatenation of gzipped or uncompressed files getting around +description: + A module for concatenation of gzipped or uncompressed files getting around UNIX terminal argument size keywords: - concatenate @@ -9,14 +10,16 @@ keywords: - pigz tools: - find: - description: GNU find searches the directory tree rooted at each given starting-point + description: + GNU find searches the directory tree rooted at each given starting-point by evaluating the given expression documentation: https://man7.org/linux/man-pages/man1/find.1.html licence: - "GPL-3.0-or-later" identifier: "" - pigz: - description: pigz, which stands for Parallel Implementation of GZip, is a fully + description: + pigz, which stands for Parallel Implementation of GZip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. documentation: https://zlib.net/pigz/pigz.pdf @@ -43,7 +46,8 @@ output: e.g. [ id:'test' ] - ${prefix}: type: file - description: Concatenated file. Will be gzipped if ${prefix} ends with ".gz" + description: + Concatenated file. Will be gzipped if ${prefix} ends with ".gz" or inputs are gzipped, will be uncompressed otherwise. pattern: "${file_out}" ontologies: [] diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap index 56494eacdd..5f0dc1c338 100644 --- a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap @@ -204,4 +204,4 @@ }, "timestamp": "2026-03-11T11:56:18.76821511" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config diff --git a/hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config b/nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config rename to nfcore-build/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config diff --git a/hello-nf-core/solutions/core-hello-part4/nextflow.config b/nfcore-build/solutions/core-hello-part3/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/nextflow.config rename to nfcore-build/solutions/core-hello-part3/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part4/nextflow_schema.json b/nfcore-build/solutions/core-hello-part3/nextflow_schema.json similarity index 97% rename from hello-nf-core/solutions/core-hello-part4/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part3/nextflow_schema.json index bd53943fe8..67dd32f2ce 100644 --- a/hello-nf-core/solutions/core-hello-part4/nextflow_schema.json +++ b/nfcore-build/solutions/core-hello-part3/nextflow_schema.json @@ -10,10 +10,7 @@ "type": "object", "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", - "required": [ - "input", - "outdir" - ], + "required": ["input", "outdir"], "properties": { "input": { "type": "string", @@ -138,10 +135,7 @@ "hidden": true }, "help": { - "type": [ - "boolean", - "string" - ], + "type": ["boolean", "string"], "description": "Display the help message." }, "help_full": { @@ -166,4 +160,4 @@ "$ref": "#/$defs/generic_options" } ] -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf b/nfcore-build/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap index e3f0baf473..846287c417 100644 --- a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -17,4 +17,4 @@ }, "timestamp": "2024-02-28T12:02:12.425833" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 02c6701413..b13b311213 100644 --- a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -133,4 +133,4 @@ }, "timestamp": "2024-02-28T12:03:21.714424" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/meta.yml b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/meta.yml rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part4/workflows/hello.nf b/nfcore-build/solutions/core-hello-part3/workflows/hello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part4/workflows/hello.nf rename to nfcore-build/solutions/core-hello-part3/workflows/hello.nf diff --git a/hello-nf-core/solutions/core-hello-part5/.gitignore b/nfcore-build/solutions/core-hello-part4/.gitignore similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/.gitignore rename to nfcore-build/solutions/core-hello-part4/.gitignore diff --git a/hello-nf-core/solutions/core-hello-part5/.nf-core.yml b/nfcore-build/solutions/core-hello-part4/.nf-core.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/.nf-core.yml rename to nfcore-build/solutions/core-hello-part4/.nf-core.yml diff --git a/hello-nf-core/solutions/core-hello-part5/README.md b/nfcore-build/solutions/core-hello-part4/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/README.md rename to nfcore-build/solutions/core-hello-part4/README.md diff --git a/hello-nf-core/solutions/core-hello-part5/assets/greetings.csv b/nfcore-build/solutions/core-hello-part4/assets/greetings.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/assets/greetings.csv rename to nfcore-build/solutions/core-hello-part4/assets/greetings.csv diff --git a/hello-nf-core/solutions/core-hello-part5/assets/samplesheet.csv b/nfcore-build/solutions/core-hello-part4/assets/samplesheet.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/assets/samplesheet.csv rename to nfcore-build/solutions/core-hello-part4/assets/samplesheet.csv diff --git a/hello-nf-core/solutions/core-hello-part5/assets/schema_input.json b/nfcore-build/solutions/core-hello-part4/assets/schema_input.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/assets/schema_input.json rename to nfcore-build/solutions/core-hello-part4/assets/schema_input.json diff --git a/hello-nf-core/solutions/core-hello-part5/conf/base.config b/nfcore-build/solutions/core-hello-part4/conf/base.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/conf/base.config rename to nfcore-build/solutions/core-hello-part4/conf/base.config diff --git a/hello-nf-core/solutions/core-hello-part5/conf/modules.config b/nfcore-build/solutions/core-hello-part4/conf/modules.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/conf/modules.config rename to nfcore-build/solutions/core-hello-part4/conf/modules.config diff --git a/hello-nf-core/solutions/core-hello-part5/conf/test.config b/nfcore-build/solutions/core-hello-part4/conf/test.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/conf/test.config rename to nfcore-build/solutions/core-hello-part4/conf/test.config diff --git a/hello-nf-core/solutions/core-hello-part5/conf/test_full.config b/nfcore-build/solutions/core-hello-part4/conf/test_full.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/conf/test_full.config rename to nfcore-build/solutions/core-hello-part4/conf/test_full.config diff --git a/hello-nf-core/solutions/core-hello-part5/docs/README.md b/nfcore-build/solutions/core-hello-part4/docs/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/docs/README.md rename to nfcore-build/solutions/core-hello-part4/docs/README.md diff --git a/hello-nf-core/solutions/core-hello-part5/docs/output.md b/nfcore-build/solutions/core-hello-part4/docs/output.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/docs/output.md rename to nfcore-build/solutions/core-hello-part4/docs/output.md diff --git a/hello-nf-core/solutions/core-hello-part5/docs/usage.md b/nfcore-build/solutions/core-hello-part4/docs/usage.md similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/docs/usage.md rename to nfcore-build/solutions/core-hello-part4/docs/usage.md diff --git a/hello-nf-core/solutions/core-hello-part5/main.nf b/nfcore-build/solutions/core-hello-part4/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/main.nf rename to nfcore-build/solutions/core-hello-part4/main.nf diff --git a/nfcore-build/solutions/core-hello-part4/modules.json b/nfcore-build/solutions/core-hello-part4/modules.json new file mode 100644 index 0000000000..d6a9ce9bf1 --- /dev/null +++ b/nfcore-build/solutions/core-hello-part4/modules.json @@ -0,0 +1,36 @@ +{ + "name": "core/hello", + "homePage": "https://github.com/core/hello", + "repos": { + "https://github.com/nf-core/modules.git": { + "modules": { + "nf-core": { + "find/concatenate": { + "branch": "master", + "git_sha": "6d46786420b4d7bc88eba026eb389c0c5535d120", + "installed_by": ["modules"] + } + } + }, + "subworkflows": { + "nf-core": { + "utils_nextflow_pipeline": { + "branch": "master", + "git_sha": "05954dab2ff481bcb999f24455da29a5828af08d", + "installed_by": ["subworkflows"] + }, + "utils_nfcore_pipeline": { + "branch": "master", + "git_sha": "a3fb7351b1fdb2b1de282b765816bbea190e86a8", + "installed_by": ["subworkflows"] + }, + "utils_nfschema_plugin": { + "branch": "master", + "git_sha": "fdc08b8b1ae74f56686ce21f7ea11ad11990ce57", + "installed_by": ["subworkflows"] + } + } + } + } + } +} diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/collectGreetings.nf b/nfcore-build/solutions/core-hello-part4/modules/local/collectGreetings.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/collectGreetings.nf rename to nfcore-build/solutions/core-hello-part4/modules/local/collectGreetings.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/convertToUpper.nf b/nfcore-build/solutions/core-hello-part4/modules/local/convertToUpper.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/convertToUpper.nf rename to nfcore-build/solutions/core-hello-part4/modules/local/convertToUpper.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy.nf b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/cowpy.nf rename to nfcore-build/solutions/core-hello-part4/modules/local/cowpy.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/environment.yml b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy/environment.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/environment.yml rename to nfcore-build/solutions/core-hello-part4/modules/local/cowpy/environment.yml diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/main.nf b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/main.nf rename to nfcore-build/solutions/core-hello-part4/modules/local/cowpy/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/meta.yml b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/meta.yml rename to nfcore-build/solutions/core-hello-part4/modules/local/cowpy/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/tests/main.nf.test b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test similarity index 98% rename from hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test index 88f75f7b6a..e3fcf90a5d 100644 --- a/hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/tests/main.nf.test +++ b/nfcore-build/solutions/core-hello-part4/modules/local/cowpy/tests/main.nf.test @@ -22,7 +22,7 @@ nextflow_process { process { """ // TODO nf-core: define inputs of the process here. Example: - + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), @@ -54,7 +54,7 @@ nextflow_process { process { """ // TODO nf-core: define inputs of the process here. Example: - + input[0] = [ [ id:'test' ], file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), diff --git a/hello-nf-core/solutions/core-hello-part5/modules/local/sayHello.nf b/nfcore-build/solutions/core-hello-part4/modules/local/sayHello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/local/sayHello.nf rename to nfcore-build/solutions/core-hello-part4/modules/local/sayHello.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/environment.yml b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/environment.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/environment.yml rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/environment.yml diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/main.nf b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/main.nf rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/meta.yml b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml similarity index 89% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/meta.yml rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml index 046acb6919..78c46edfbd 100644 --- a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/meta.yml +++ b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/meta.yml @@ -1,5 +1,6 @@ name: "find_concatenate" -description: A module for concatenation of gzipped or uncompressed files getting around +description: + A module for concatenation of gzipped or uncompressed files getting around UNIX terminal argument size keywords: - concatenate @@ -9,14 +10,16 @@ keywords: - pigz tools: - find: - description: GNU find searches the directory tree rooted at each given starting-point + description: + GNU find searches the directory tree rooted at each given starting-point by evaluating the given expression documentation: https://man7.org/linux/man-pages/man1/find.1.html licence: - "GPL-3.0-or-later" identifier: "" - pigz: - description: pigz, which stands for Parallel Implementation of GZip, is a fully + description: + pigz, which stands for Parallel Implementation of GZip, is a fully functional replacement for gzip that exploits multiple processors and multiple cores to the hilt when compressing data. documentation: https://zlib.net/pigz/pigz.pdf @@ -43,7 +46,8 @@ output: e.g. [ id:'test' ] - ${prefix}: type: file - description: Concatenated file. Will be gzipped if ${prefix} ends with ".gz" + description: + Concatenated file. Will be gzipped if ${prefix} ends with ".gz" or inputs are gzipped, will be uncompressed otherwise. pattern: "${file_out}" ontologies: [] diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/main.nf.test b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap index 56494eacdd..5f0dc1c338 100644 --- a/hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/main.nf.test.snap @@ -204,4 +204,4 @@ }, "timestamp": "2026-03-11T11:56:18.76821511" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_unzipped_zipped.config diff --git a/hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config b/nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config rename to nfcore-build/solutions/core-hello-part4/modules/nf-core/find/concatenate/tests/nextflow_zipped_unzipped.config diff --git a/hello-nf-core/solutions/core-hello-part5/nextflow.config b/nfcore-build/solutions/core-hello-part4/nextflow.config similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/nextflow.config rename to nfcore-build/solutions/core-hello-part4/nextflow.config index 88e6f1bc97..c8048f3143 100644 --- a/hello-nf-core/solutions/core-hello-part5/nextflow.config +++ b/nfcore-build/solutions/core-hello-part4/nextflow.config @@ -34,7 +34,7 @@ params { config_profile_url = null // Schema validation default options - validate_params = true + validate_params = false } // Backwards compatibility for publishDir syntax diff --git a/hello-nf-core/solutions/core-hello-part5/nextflow_schema.json b/nfcore-build/solutions/core-hello-part4/nextflow_schema.json similarity index 97% rename from hello-nf-core/solutions/core-hello-part5/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part4/nextflow_schema.json index 32186e5e4e..71ecd270aa 100644 --- a/hello-nf-core/solutions/core-hello-part5/nextflow_schema.json +++ b/nfcore-build/solutions/core-hello-part4/nextflow_schema.json @@ -10,11 +10,7 @@ "type": "object", "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", - "required": [ - "input", - "outdir", - "batch" - ], + "required": ["input", "outdir", "batch"], "properties": { "input": { "type": "string", @@ -144,10 +140,7 @@ "hidden": true }, "help": { - "type": [ - "boolean", - "string" - ], + "type": ["boolean", "string"], "description": "Display the help message." }, "help_full": { @@ -172,4 +165,4 @@ "$ref": "#/$defs/generic_options" } ] -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf b/nfcore-build/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap index e3f0baf473..846287c417 100644 --- a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -17,4 +17,4 @@ }, "timestamp": "2024-02-28T12:02:12.425833" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/main.nf rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 02c6701413..b13b311213 100644 --- a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -133,4 +133,4 @@ }, "timestamp": "2024-02-28T12:03:21.714424" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap +++ b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/main.nf rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/meta.yml b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/meta.yml rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/meta.yml diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json rename to nfcore-build/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-part5/workflows/hello.nf b/nfcore-build/solutions/core-hello-part4/workflows/hello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-part5/workflows/hello.nf rename to nfcore-build/solutions/core-hello-part4/workflows/hello.nf diff --git a/hello-nf-core/solutions/core-hello-start/README.md b/nfcore-build/solutions/core-hello-start/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-start/README.md rename to nfcore-build/solutions/core-hello-start/README.md diff --git a/hello-nf-core/solutions/core-hello-start/assets/samplesheet.csv b/nfcore-build/solutions/core-hello-start/assets/samplesheet.csv similarity index 100% rename from hello-nf-core/solutions/core-hello-start/assets/samplesheet.csv rename to nfcore-build/solutions/core-hello-start/assets/samplesheet.csv diff --git a/hello-nf-core/solutions/core-hello-start/assets/schema_input.json b/nfcore-build/solutions/core-hello-start/assets/schema_input.json similarity index 100% rename from hello-nf-core/solutions/core-hello-start/assets/schema_input.json rename to nfcore-build/solutions/core-hello-start/assets/schema_input.json diff --git a/hello-nf-core/solutions/core-hello-start/conf/base.config b/nfcore-build/solutions/core-hello-start/conf/base.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/conf/base.config rename to nfcore-build/solutions/core-hello-start/conf/base.config diff --git a/hello-nf-core/solutions/core-hello-start/conf/modules.config b/nfcore-build/solutions/core-hello-start/conf/modules.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/conf/modules.config rename to nfcore-build/solutions/core-hello-start/conf/modules.config diff --git a/hello-nf-core/solutions/core-hello-start/conf/test.config b/nfcore-build/solutions/core-hello-start/conf/test.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/conf/test.config rename to nfcore-build/solutions/core-hello-start/conf/test.config diff --git a/hello-nf-core/solutions/core-hello-start/conf/test_full.config b/nfcore-build/solutions/core-hello-start/conf/test_full.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/conf/test_full.config rename to nfcore-build/solutions/core-hello-start/conf/test_full.config diff --git a/hello-nf-core/solutions/core-hello-start/docs/README.md b/nfcore-build/solutions/core-hello-start/docs/README.md similarity index 100% rename from hello-nf-core/solutions/core-hello-start/docs/README.md rename to nfcore-build/solutions/core-hello-start/docs/README.md diff --git a/hello-nf-core/solutions/core-hello-start/docs/output.md b/nfcore-build/solutions/core-hello-start/docs/output.md similarity index 100% rename from hello-nf-core/solutions/core-hello-start/docs/output.md rename to nfcore-build/solutions/core-hello-start/docs/output.md diff --git a/hello-nf-core/solutions/core-hello-start/docs/usage.md b/nfcore-build/solutions/core-hello-start/docs/usage.md similarity index 100% rename from hello-nf-core/solutions/core-hello-start/docs/usage.md rename to nfcore-build/solutions/core-hello-start/docs/usage.md diff --git a/hello-nf-core/solutions/core-hello-start/main.nf b/nfcore-build/solutions/core-hello-start/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/main.nf rename to nfcore-build/solutions/core-hello-start/main.nf diff --git a/hello-nf-core/solutions/core-hello-start/modules.json b/nfcore-build/solutions/core-hello-start/modules.json similarity index 95% rename from hello-nf-core/solutions/core-hello-start/modules.json rename to nfcore-build/solutions/core-hello-start/modules.json index 2c85357275..e897cf840e 100644 --- a/hello-nf-core/solutions/core-hello-start/modules.json +++ b/nfcore-build/solutions/core-hello-start/modules.json @@ -4,8 +4,7 @@ "repos": { "https://github.com/nf-core/modules.git": { "modules": { - "nf-core": { - } + "nf-core": {} }, "subworkflows": { "nf-core": { diff --git a/hello-nf-core/solutions/core-hello-start/nextflow.config b/nfcore-build/solutions/core-hello-start/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/nextflow.config rename to nfcore-build/solutions/core-hello-start/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-start/nextflow_schema.json b/nfcore-build/solutions/core-hello-start/nextflow_schema.json similarity index 96% rename from hello-nf-core/solutions/core-hello-start/nextflow_schema.json rename to nfcore-build/solutions/core-hello-start/nextflow_schema.json index dcc4cdf462..67dd32f2ce 100644 --- a/hello-nf-core/solutions/core-hello-start/nextflow_schema.json +++ b/nfcore-build/solutions/core-hello-start/nextflow_schema.json @@ -98,7 +98,14 @@ "description": "Method used to save pipeline results to output directory.", "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", "fa_icon": "fas fa-copy", - "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "enum": [ + "symlink", + "rellink", + "link", + "copy", + "copyNoFollow", + "move" + ], "hidden": true }, "monochrome_logs": { diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf b/nfcore-build/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf rename to nfcore-build/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap index e3f0baf473..846287c417 100644 --- a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.function.nf.test.snap @@ -17,4 +17,4 @@ }, "timestamp": "2024-02-28T12:02:12.425833" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/main.workflow.nf.test diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/tests/tags.yml diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/meta.yml diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test diff --git a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap index 02c6701413..b13b311213 100644 --- a/hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap +++ b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.function.nf.test.snap @@ -133,4 +133,4 @@ }, "timestamp": "2024-02-28T12:03:21.714424" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap similarity index 99% rename from hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap index 859d1030fb..84ee1e1d1e 100644 --- a/hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap +++ b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.nf.test.snap @@ -16,4 +16,4 @@ }, "timestamp": "2024-02-28T12:03:25.726491" } -} \ No newline at end of file +} diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test diff --git a/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap new file mode 100644 index 0000000000..84ee1e1d1e --- /dev/null +++ b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/main.workflow.nf.test.snap @@ -0,0 +1,19 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + true + ], + "valid_config": [ + true + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-02-28T12:03:25.726491" + } +} diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/tests/tags.yml diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/meta.yml b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/meta.yml similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/meta.yml rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/meta.yml diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/main.nf.test diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow.config diff --git a/hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json b/nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json similarity index 100% rename from hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json rename to nfcore-build/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/tests/nextflow_schema.json diff --git a/hello-nf-core/solutions/core-hello-start/workflows/hello.nf b/nfcore-build/solutions/core-hello-start/workflows/hello.nf similarity index 100% rename from hello-nf-core/solutions/core-hello-start/workflows/hello.nf rename to nfcore-build/solutions/core-hello-start/workflows/hello.nf diff --git a/hello-nf-core/custom.config b/nfcore-use/custom.config similarity index 100% rename from hello-nf-core/custom.config rename to nfcore-use/custom.config diff --git a/nfcore-use/laptop.config b/nfcore-use/laptop.config new file mode 100644 index 0000000000..b5a4622a52 --- /dev/null +++ b/nfcore-use/laptop.config @@ -0,0 +1,21 @@ +/* + * Resource limits for laptops and development machines + * Overrides the nf-core default memory allocations to fit within ~7 GB + */ +process { + withLabel: 'process_low' { + cpus = 2 + memory = 6.GB + } + withLabel: 'process_medium' { + cpus = 4 + memory = 6.GB + } + withLabel: 'process_high' { + cpus = 6 + memory = 6.GB + } + withLabel: 'process_high_memory' { + memory = 6.GB + } +} diff --git a/hello-nf-core/malformed_samplesheet.csv b/nfcore-use/malformed_samplesheet.csv similarity index 100% rename from hello-nf-core/malformed_samplesheet.csv rename to nfcore-use/malformed_samplesheet.csv diff --git a/hello-nf-core/my_params.yml b/nfcore-use/my_params.yml similarity index 100% rename from hello-nf-core/my_params.yml rename to nfcore-use/my_params.yml diff --git a/seqera-scale/.seqera_config b/seqera-scale/.seqera_config new file mode 100644 index 0000000000..35b5de2410 --- /dev/null +++ b/seqera-scale/.seqera_config @@ -0,0 +1,12 @@ +# Seqera CLI configuration +# Fill in the values below, then run: source .seqera_config + +# Personal access token +# In the Seqera web interface: click your avatar (top right) > Your tokens +export TOWER_ACCESS_TOKEN= + +# Default workspace (numeric workspace ID, e.g. 123456789012345) +# Find it in the "ID" column of: tw workspaces list +# (The org-name/workspace-name form is only accepted by the --workspace flag, +# not by this environment variable.) +export TOWER_WORKSPACE_ID=