diff --git a/.vale.ini b/.vale.ini index 24711070b4..3a37e00a9b 100644 --- a/.vale.ini +++ b/.vale.ini @@ -8,32 +8,38 @@ Vocab = Docs [*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO # Blog posts - apply standard rules with relaxed personal pronouns [sites/main-site/src/content/blog/**/*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO nf-core.We = NO # Documentation - stricter rules for formal documentation [sites/docs/src/content/**/*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO # Component and pipeline pages [sites/modules-subworkflows/src/content/**/*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO [sites/pipelines/src/content/**/*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO # Config pages [sites/configs/src/content/**/*.{md,mdx}] BasedOnStyles = nf-core, Vale Vale.Spelling = NO +Vale.Terms = NO # Ignore API reference documentation (auto-generated) - must be at end [sites/docs/src/content/api_reference/**/*.md] diff --git a/hooks/post-tool.sh b/hooks/post-tool.sh new file mode 100755 index 0000000000..d84d8321dc --- /dev/null +++ b/hooks/post-tool.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +# Claude Code Post-Tool Hook +# Runs after Claude uses Write, Edit, or MultiEdit tools +# Automatically formats files with prettier and checks prose with Vale + +# Source utilities +source "$(dirname "$0")/utils.sh" + +# Get hook input from Claude +HOOK_DATA="$1" + +# Extract tool name and file paths from the hook data +TOOL_NAME=$(echo "$HOOK_DATA" | jq -r '.tool_name // empty' 2>/dev/null) +FILE_PATHS=$(echo "$HOOK_DATA" | jq -r '.file_paths[]? // empty' 2>/dev/null) + +# If we can't parse JSON, try to extract file paths from environment or arguments +if [ -z "$FILE_PATHS" ] && [ -n "$CLAUDE_MODIFIED_FILES" ]; then + FILE_PATHS="$CLAUDE_MODIFIED_FILES" +elif [ -z "$FILE_PATHS" ] && [ $# -gt 1 ]; then + shift # Remove first argument (hook data) + FILE_PATHS="$*" +fi + +# If still no files, try to detect recently modified files +if [ -z "$FILE_PATHS" ]; then + FILE_PATHS=$(get_recent_files) +fi + +# Exit if no files to process +if [ -z "$FILE_PATHS" ]; then + exit 0 +fi + +print_header "Post-Tool Formatting & Linting" + +echo "πŸ”§ Tool used: ${TOOL_NAME:-unknown}" +echo "πŸ“ Processing files:" + +# Convert FILE_PATHS to array and process each file +processed_any=false +vale_issues=false + +# Handle both space-separated and newline-separated file lists +while IFS= read -r file; do + # Skip empty lines + [ -z "$file" ] && continue + + # Skip if file doesn't exist + [ ! -f "$file" ] && continue + + echo " β†’ $file" + + # Format with prettier + if format_file "$file"; then + processed_any=true + fi + + # Lint with Vale + if ! lint_file "$file"; then + vale_issues=true + fi + + echo "" +done <<< "$(echo "$FILE_PATHS" | tr ' ' '\n')" + +# Summary +if [ "$processed_any" = true ]; then + echo "🎯 File processing complete!" + + if [ "$vale_issues" = true ]; then + echo "" + echo "πŸ“š Vale found some prose suggestions above. These help ensure:" + echo " β€’ Consistent terminology (nf-core, Nextflow, etc.)" + echo " β€’ Clear, readable documentation" + echo " β€’ Professional writing style" + echo "" + echo "πŸ’‘ Consider reviewing and addressing these suggestions for better documentation quality." + else + echo "✨ All prose checks passed - excellent writing!" + fi +else + echo "ℹ️ No eligible files found to process" +fi + +print_separator +echo "βœ… Hook execution complete" \ No newline at end of file diff --git a/hooks/user-prompt-submit.sh b/hooks/user-prompt-submit.sh new file mode 100755 index 0000000000..8867e83c16 --- /dev/null +++ b/hooks/user-prompt-submit.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env bash +# Claude Code User Prompt Submit Hook +# Runs when user submits a prompt +# Provides quick prose quality check on recently modified documentation + +# Source utilities +source "$(dirname "$0")/utils.sh" + +# Get user prompt from arguments +USER_PROMPT="$1" + +# Only run if the prompt is related to documentation/writing +# Check for common documentation keywords +if ! echo "$USER_PROMPT" | grep -qi -E "(document|write|edit|readme|guide|tutorial|prose|content|markdown|mdx|vale|style|writing|docs)"; then + # Not a documentation-related prompt, exit silently + exit 0 +fi + +# Get recently modified documentation files +RECENT_FILES=$(find . \( -name "*.md" -o -name "*.mdx" \) -newermt '10 minutes ago' 2>/dev/null | head -5) + +# If no recent files, exit silently +if [ -z "$RECENT_FILES" ]; then + exit 0 +fi + +print_header "Documentation Quality Check" + +echo "πŸ” Checking recently modified documentation files for prose quality..." +echo "" + +issues_found=false +files_checked=0 + +while IFS= read -r file; do + [ -z "$file" ] && continue + [ ! -f "$file" ] && continue + + # Skip API reference files (they're ignored in Vale config anyway) + if echo "$file" | grep -q "api_reference"; then + continue + fi + + # Skip old events (they're ignored in Vale config anyway) + if echo "$file" | grep -qE "events/(2018|2019|2020|2021|2022|2023|2024)/"; then + continue + fi + + files_checked=$((files_checked + 1)) + echo "πŸ“„ Checking: $file" + + if ! check_tool "vale"; then + echo " ⚠️ Vale not available for prose checking" + continue + fi + + # Quick Vale check + vale_output=$(vale --config=.vale.ini "$file" 2>&1) + vale_exit_code=$? + + if [ $vale_exit_code -eq 0 ]; then + echo " βœ… Prose quality looks good" + else + issues_found=true + echo " πŸ“ Found prose suggestions:" + echo "$vale_output" | sed 's/^/ /' + fi + echo "" +done <<< "$RECENT_FILES" + +# Summary for Claude +if [ $files_checked -eq 0 ]; then + echo "ℹ️ No recent documentation files found to check" +elif [ "$issues_found" = true ]; then + echo "πŸ“Š Summary: Found some prose suggestions in recent documentation." + echo "πŸ’‘ Consider these suggestions to improve clarity and consistency." + echo "🎯 Common improvements: terminology consistency, readability, style." +else + echo "✨ Summary: All recent documentation looks great!" + echo "πŸŽ‰ No prose issues found in recently modified files." +fi + +print_separator +echo "πŸ€– Ready to help with your documentation request!" +echo "" \ No newline at end of file diff --git a/hooks/utils.sh b/hooks/utils.sh new file mode 100755 index 0000000000..fc736cefa1 --- /dev/null +++ b/hooks/utils.sh @@ -0,0 +1,111 @@ +#!/usr/bin/env bash +# Utility functions for Claude Code hooks + +# Check if a tool is available +check_tool() { + local tool="$1" + if ! command -v "$tool" &> /dev/null; then + echo "⚠️ $tool not found - skipping" + return 1 + fi + return 0 +} + +# Check if file should be processed based on extension +should_process_file() { + local file="$1" + case "$file" in + *.md|*.mdx|*.js|*.ts|*.astro|*.svelte|*.css|*.scss|*.json|*.yml|*.yaml) + return 0 + ;; + *) + return 1 + ;; + esac +} + +# Check if file should be linted with Vale +should_lint_with_vale() { + local file="$1" + case "$file" in + *.md|*.mdx) + return 0 + ;; + *) + return 1 + ;; + esac +} + +# Format file with prettier if available +format_file() { + local file="$1" + + if ! check_tool "prettier"; then + return 1 + fi + + if ! should_process_file "$file"; then + return 1 + fi + + echo "🎨 Formatting $file with prettier..." + if prettier --write --log-level=error "$file" 2>/dev/null; then + echo "βœ… Formatted successfully" + return 0 + else + echo "❌ Prettier formatting failed" + return 1 + fi +} + +# Lint file with Vale if available +lint_file() { + local file="$1" + + if ! check_tool "vale"; then + return 1 + fi + + if ! should_lint_with_vale "$file"; then + return 1 + fi + + echo "πŸ“ Checking prose quality with Vale..." + + # Run Vale and capture output + local vale_output + vale_output=$(vale --config=.vale.ini "$file" 2>&1) + local vale_exit_code=$? + + if [ $vale_exit_code -eq 0 ]; then + echo "βœ… Vale: No prose issues found" + return 0 + else + echo "πŸ“Š Vale found prose suggestions:" + echo "$vale_output" | sed 's/^/ /' + echo "" + echo "πŸ’‘ These suggestions help improve documentation clarity and consistency." + return 1 + fi +} + +# Get list of recently modified files (in last 5 minutes) +get_recent_files() { + find . \( -name "*.md" -o -name "*.mdx" -o -name "*.js" -o -name "*.ts" -o -name "*.astro" -o -name "*.yml" -o -name "*.yaml" \) -newermt '5 minutes ago' 2>/dev/null | head -10 +} + +# Pretty print a separator +print_separator() { + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo "" +} + +# Print hook header +print_header() { + local hook_name="$1" + echo "" + echo "πŸ€– Claude Code Hook: $hook_name" + print_separator +} \ No newline at end of file diff --git a/sites/configs/.gitignore b/sites/configs/.gitignore new file mode 100644 index 0000000000..65822348c4 --- /dev/null +++ b/sites/configs/.gitignore @@ -0,0 +1,2 @@ +# Local Netlify folder +.netlify diff --git a/sites/docs/src/content/docs/checklists/community_governance/core_team.mdx b/sites/docs/src/content/docs/checklists/community_governance/core_team.mdx index 109b44e264..7c0612f5b7 100644 --- a/sites/docs/src/content/docs/checklists/community_governance/core_team.mdx +++ b/sites/docs/src/content/docs/checklists/community_governance/core_team.mdx @@ -32,7 +32,7 @@ Instructions for [nf-core pipeline](https://github.com/nf-core/proposals) approv 11. [ ] Core/Dev: Sync the nf-co.re pipelines page by triggering the [GitHub action](https://github.com/nf-core/website/actions/workflows/build-json-files.yml) - Website repo > Actions > Build json files and md-cache > Run workflow > From main. -## Uploading test data to s3 bucket +## Uploading test data to S3 bucket Instructions for uploading full-test AWS files for a pipeline to a S3 bucket: @@ -62,9 +62,9 @@ Instructions for uploading full-test AWS files for a pipeline to a S3 bucket: 6. Select **Create** at the bottom of the page. Do not modify any fields. 7. Repeat the import (step 5) and create (step 6) steps for each JSON file provided. -## Making custom docker containers for modules +## Making custom Docker containers for modules -Instructions for adding custom docker containers to the nf-core [https://quay.io](https://quay.io/organization/nf-core) organisation. +Instructions for adding custom Docker containers to the nf-core [https://quay.io](https://quay.io/organization/nf-core) organisation. :::note These instructions require the person building and pushing the container to have push rights to the organization. @@ -130,7 +130,7 @@ Before release: Post release: -1. [ ] Select **Github** in the dropdown menu of your account in Zenodo and find the relevant repository. +1. [ ] Select **GitHub** in the dropdown menu of your account in Zenodo and find the relevant repository. 2. [ ] Click the Zenodo **Record** page for the release. 3. [ ] Find the **Communities** box on the record page and submit the record to the nf-core community. 4. [ ] Copy the DOI for **Cite all versions?** in the **Versions** tab. @@ -141,12 +141,12 @@ Post release: ## Adding new community member to the GitHub organisation -Anyone can request to join the nf-core GitHub organisation via the #github-invitations channel. +Anyone can request to join the nf-core GitHub organisation via the #GitHub-invitations channel. 1. [ ] Verify the request is reasonable (i.e., clearly not spam). -2. [ ] Send an invitation via [nf-core github teams](https://github.com/orgs/nf-core/teams) +2. [ ] Send an invitation via [nf-core GitHub teams](https://github.com/orgs/nf-core/teams) 3. [ ] Add new member to the [nf-core contributors team](https://github.com/orgs/nf-core/teams/contributors) -4. [ ] Respond to the #github-invitations channel request by reacting with the βœ… emoji. +4. [ ] Respond to the #GitHub-invitations channel request by reacting with the βœ… emoji. ## Updating online bingo cards diff --git a/sites/docs/src/content/docs/checklists/community_governance/maintainers_team.mdx b/sites/docs/src/content/docs/checklists/community_governance/maintainers_team.mdx index 0c81f8ef56..02f3fac010 100644 --- a/sites/docs/src/content/docs/checklists/community_governance/maintainers_team.mdx +++ b/sites/docs/src/content/docs/checklists/community_governance/maintainers_team.mdx @@ -11,7 +11,7 @@ To add maintainers: Team lead: 1. [ ] Add member to [#team-maintainers](https://nfcore.slack.com/archives/C043UU89KKQ) -2. [ ] Add member to [Github group](https://github.com/orgs/nf-core/teams/maintainers) +2. [ ] Add member to [GitHub group](https://github.com/orgs/nf-core/teams/maintainers) 3. [ ] Add member to Slack group 4. [ ] Add member to the [Maintainers team google calendar](https://calendar.google.com/calendar/u/0?cid=ZDA3MmVkOGI1NzQ0YWViOWE3ZjBkMDE4YjFjZWE1OGE5M2MwZDZlZTIyMzM1YWE5YzA0NTlmODg0YTZkMDNkZEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t) diff --git a/sites/docs/src/content/docs/checklists/pipeline_release.md b/sites/docs/src/content/docs/checklists/pipeline_release.md index 6896d77e7e..36989e9ef5 100644 --- a/sites/docs/src/content/docs/checklists/pipeline_release.md +++ b/sites/docs/src/content/docs/checklists/pipeline_release.md @@ -48,6 +48,7 @@ If this is your first release, make sure to follow the [first release tutorial]( :::note Use _exactly_ the same version as in the code (e.g. `1.0.0`) - **do not prefix with v** (e.g. not `v1.0.0`). ::: + - [ ] Optional: Also include your [nice code name](http://www.codenamegenerator.com/) in your pipeline release title (see above with `CHANGELOG.md`). For example releases in nf-core/rnaseq follow the pattern: - Prefix = Metal @@ -77,7 +78,7 @@ The last step is to bump up the pipeline version number in the development branc - [ ] [Open a Pull Request (PR)](https://help.github.com/en/articles/creating-a-pull-request) with these changes from your fork to the `dev` branch on the nf-core repository. - [ ] (**First release only**) After the first release of the pipeline you will need to add the DOI manually into the main `README.md` for the pipeline: - [ ] Search for your pipeline on Zenodo and find the DOI that allows you to _"Cite all versions"_ of the pipeline. - - [ ] Ask a core member to copy the DOI information you added to dev via the PR above to the master branch. The core member will uncomment the Zenodo-related `TODO` statement in the `Citation` section of the main `README.md` and add the DOI, as well as as updating the badge for the Zenodo DOI at the top of the main `README.md` e.g. [nf-core/atacseq](https://github.com/nf-core/atacseq/blob/fa1e3f8993cd20e249b9df09d29c5498eff311d2/README.md). + - [ ] Ask a core member to copy the DOI information you added to dev via the PR above to the master branch. The core member will uncomment the Zenodo-related `TODO` statement in the `Citation` section of the main `README.md` and add the DOI, as well as updating the badge for the Zenodo DOI at the top of the main `README.md` e.g. [nf-core/atacseq](https://github.com/nf-core/atacseq/blob/fa1e3f8993cd20e249b9df09d29c5498eff311d2/README.md). - [ ] (**First release only**) Ask a core member to change default branch from `dev` to `master`. - [ ] Check that AWS megatest run succesfully and that the results are made available on the website e.g.[nf-core/atacseq](https://nf-co.re/rnaseq/3.18.0/results). - [ ] (publication only) If a publication of the pipeline is being prepared, recommended [nf-core guidelines](/docs/guidelines/pipelines/recommendations/publication_credit) are followed. diff --git a/sites/docs/src/content/docs/contributing/pipelines/pipeline_file_structure.md b/sites/docs/src/content/docs/contributing/pipelines/pipeline_file_structure.md index 43e713c432..84ffee98de 100644 --- a/sites/docs/src/content/docs/contributing/pipelines/pipeline_file_structure.md +++ b/sites/docs/src/content/docs/contributing/pipelines/pipeline_file_structure.md @@ -16,8 +16,8 @@ You will find the following files in each nf-core pipeline. They are automatical | Filename | DescriptionΒ  | | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `main.nf` | This is the main nextflow file which will get executed if the pipeline is run. Typically, parameters are initialized and validated in this script before a workflow from the `workflows/` directory is called for execution. | -| `nextflow.config` | The main nextflow configuration file. It contains the default pipeline parameters, nextflow configuration options and information like pipeline and minimum nextflow version, among others. The `nextflow.config` also defines different configuration profiles that can be used to run the pipeline. See the [Configuration docs](/docs/usage/getting_started/configuration) for more information. | +| `main.nf` | This is the main Nextflow file which will get executed if the pipeline is run. Typically, parameters are initialized and validated in this script before a workflow from the `workflows/` directory is called for execution. | +| `nextflow.config` | The main Nextflow configuration file. It contains the default pipeline parameters, Nextflow configuration options and information like pipeline and minimum Nextflow version, among others. The `nextflow.config` also defines different configuration profiles that can be used to run the pipeline. See the [Configuration docs](/docs/usage/getting_started/configuration) for more information. | | `README.md` | Basic information about the pipeline and usage | | `nextflow_schema.json` | The JSON schema file is used for pipeline parameter specification. This is automatically created using the `nf-core pipelines schema build` command. It is used for printing command-line help, validating input parameters, building the website docs and for building pipeline launch interfaces (web and cli). | | `CHANGELOG.md` | Information about the changes made to the pipeline for each release. | diff --git a/sites/docs/src/content/docs/guidelines/components/subworkflows.md b/sites/docs/src/content/docs/guidelines/components/subworkflows.md index 34bcec2300..90c3141e7f 100644 --- a/sites/docs/src/content/docs/guidelines/components/subworkflows.md +++ b/sites/docs/src/content/docs/guidelines/components/subworkflows.md @@ -43,7 +43,7 @@ Choose an appropriate name for your subworkflow related to its module compositio For short chains of modules without conditional logic, the naming convention should be of the format `____` e.g. `bam_sort_stats_samtools` where `bam` = ``, `sort` = `` and `samtools` = ``. Not all operations are required in the name if they are routine (e.g. indexing after creation of a BAM). Operations can be collapsed to a general name if the steps are directly related to each other. For example if in a subworkflow, a binning tool has three required steps (e.g. ` split`, ` calculate`, ` merge`) to perform an operation (contig binning) these can be collapsed into one (e.g. `fasta_binning_concoct`, rather than `fasta_split_calculate_merge_concoct`). -If a subworkflow has a large number of steps discounting routine operations, if the sequence of steps differs dependent on input arguments, or if the module complement is likely to change over time, the above naming scheme will not be appropriate. In this case it will be more useful to potential users of your subworkflow to name the it according to its purpose and logical operations, rather than the module complement. For example, a subworkflow that takes FASTQ files, peforms multiple QC checks, applies a user defined trimming operation, filters and sets a strandedness, would be named something like 'fastq_qc_trim_filter_setstrandedness'. This tells users what the the input is, and the logical steps involved, without trying to shoehorn the conditional logic or very long sequences of modules into the name. +If a subworkflow has a large number of steps discounting routine operations, if the sequence of steps differs dependent on input arguments, or if the module complement is likely to change over time, the above naming scheme will not be appropriate. In this case it will be more useful to potential users of your subworkflow to name the it according to its purpose and logical operations, rather than the module complement. For example, a subworkflow that takes FASTQ files, peforms multiple QC checks, applies a user defined trimming operation, filters and sets a strandedness, would be named something like 'fastq_qc_trim_filter_setstrandedness'. This tells users what the input is, and the logical steps involved, without trying to shoehorn the conditional logic or very long sequences of modules into the name. Whatever name is used, the directory structure for the subworkflow name must be all lowercase e.g. [`subworkflows/nf-core/bam_sort_stats_samtools/`](https://github.com/nf-core/modules/tree/master/subworkflows/nf-core/bam_sort_stats_samtools/). diff --git a/sites/docs/src/content/docs/guidelines/graphic_design/logo.md b/sites/docs/src/content/docs/guidelines/graphic_design/logo.md index a3c10c1153..5ed1ee6cd4 100644 --- a/sites/docs/src/content/docs/guidelines/graphic_design/logo.md +++ b/sites/docs/src/content/docs/guidelines/graphic_design/logo.md @@ -32,7 +32,7 @@ You can also quickly generate a PNG logo yourself by visiting [https://nf-co.re/ Some developers may want to further add branding to their own pipelines by extending the default nf-core logo to include their own mark. -If any any point you want advice, feel free to ask on the nf-core slack under [#graphics](https://nfcore.slack.com/archives/C021QHJRJE8). +If at any point you want advice, feel free to ask on the nf-core slack under [#graphics](https://nfcore.slack.com/archives/C021QHJRJE8). If you wish to do so, please use the following guidelines when creating your mark: diff --git a/sites/docs/src/content/docs/guidelines/pipelines/requirements/workflow_name.md b/sites/docs/src/content/docs/guidelines/pipelines/requirements/workflow_name.md index d852f0c01e..4e76692b95 100644 --- a/sites/docs/src/content/docs/guidelines/pipelines/requirements/workflow_name.md +++ b/sites/docs/src/content/docs/guidelines/pipelines/requirements/workflow_name.md @@ -13,7 +13,7 @@ All nf-core pipelines must have consistent naming that adhere to the following r - Descriptive and intuitive - Must not clash with different data or analysis types -The first two points are to to maximise compatibility with other platforms, +The first two points are to maximise compatibility with other platforms, so that the pipeline assets are named consistently across systems. We strongly recommend that names are self-descriptive towards the data or analysis type the pipeline will be using or performing. diff --git a/sites/docs/src/content/docs/nf-core-tools/pipelines/create.mdx b/sites/docs/src/content/docs/nf-core-tools/pipelines/create.mdx index 0d6c7cd8d2..4ddc46de61 100644 --- a/sites/docs/src/content/docs/nf-core-tools/pipelines/create.mdx +++ b/sites/docs/src/content/docs/nf-core-tools/pipelines/create.mdx @@ -40,7 +40,7 @@ description: A cool pipeline author: me prefix: myorg skip: - - github + - GitHub - ci - github_badges - igenomes @@ -54,7 +54,7 @@ template: org: myorg outdir: . skip_features: - - github + - GitHub - ci - igenomes - nf_core_configs diff --git a/sites/docs/src/content/docs/nf-core-tools/pipelines/launch.md b/sites/docs/src/content/docs/nf-core-tools/pipelines/launch.md index 3bff5e8037..727e74a047 100644 --- a/sites/docs/src/content/docs/nf-core-tools/pipelines/launch.md +++ b/sites/docs/src/content/docs/nf-core-tools/pipelines/launch.md @@ -5,7 +5,7 @@ shortTitle: launch weight: 20 --- -Some nextflow pipelines have a considerable number of command line flags that can be used. +Some Nextflow pipelines have a considerable number of command line flags that can be used. To help with this, you can use the `nf-core pipelines launch` command. You can choose between a web-based graphical interface or an interactive command-line wizard tool to enter the pipeline parameters for your run. Both interfaces show documentation alongside each parameter and validate your inputs. @@ -13,7 +13,7 @@ Both interfaces show documentation alongside each parameter and validate your in The tool uses the `nextflow_schema.json` file from a pipeline to give parameter descriptions, defaults and grouping. If no file for the pipeline is found, one will be automatically generated at runtime. -Nextflow `params` variables are saved in to a JSON file called `nf-params.json` and used by nextflow with the `-params-file` flag. +Nextflow `params` variables are saved in to a JSON file called `nf-params.json` and used by Nextflow with the `-params-file` flag. This makes it easier to reuse these in the future. The command takes one argument - either the name of an nf-core pipeline which will be pulled automatically, @@ -42,7 +42,7 @@ Do you want to run this command now? [y/n]: - `-i`, `--id` - You can use the web GUI for nf-core pipelines by clicking _"Launch"_ on the website. Once filled in you will be given an ID to use with this command which is used to retrieve your inputs. - `-c`, `--command-only` - - If you prefer not to save your inputs in a JSON file and use `-params-file`, this option will specify all entered params directly in the nextflow command. + - If you prefer not to save your inputs in a JSON file and use `-params-file`, this option will specify all entered params directly in the Nextflow command. - `-p`, `--params-in PATH` - To use values entered in a previous pipeline run, you can supply the `nf-params.json` file previously generated. - This will overwrite the pipeline schema defaults before the wizard is launched. diff --git a/sites/docs/src/content/docs/nf-core-tools/test-datasets/list.mdx b/sites/docs/src/content/docs/nf-core-tools/test-datasets/list.mdx index 285f6999e0..a751eb1f07 100644 --- a/sites/docs/src/content/docs/nf-core-tools/test-datasets/list.mdx +++ b/sites/docs/src/content/docs/nf-core-tools/test-datasets/list.mdx @@ -9,10 +9,10 @@ parentWeight: 30 import { YouTube } from "@astro-community/astro-embed-youtube"; The `nf-core test-datasets list` subcommand provides functionality to list existing test-datasets for pipelines and modules from the commandline. -Test-datasets are hosted on the on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets/) github repository. +Test-datasets are hosted on the on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets/) GitHub repository. :::note -Not all files found on github can be listed with this subcommand. +Not all files found on GitHub can be listed with this subcommand. Some auxiliary files like `README`, or `LICENSE` as well as all files starting with `.` are always ignored. ::: @@ -23,7 +23,7 @@ Some auxiliary files like `README`, or `LICENSE` as well as all files starting w ## Listing a file tree The following example lists the first entries of the file tree with test inputs for a pipeline (cut off after 25 lines of output). -A branch name is always required to avoid a high number of requests against the github API. +A branch name is always required to avoid a high number of requests against the GitHub API. If no branch name is specified via the command line, the user will be prompted to enter one. ![`nf-core test-datasets list --branch mag`](/images/tools/nf-core-test-datasets-list-mag.svg) @@ -34,7 +34,7 @@ To improve usability branch names can be entered via a tab-autocompletion. Alter ## Output options -As default output, a table listing the filenames is printed, but download urls or nextflow import statements to reuse the test files can also be generated. +As default output, a table listing the filenames is printed, but download urls or Nextflow import statements to reuse the test files can also be generated. This is possible via the flags `-u`/`--generate-dl-url` and `-p`/`--generate-nf-path` as in the [`search` subcommand](/docs/nf-core-tools/test-datasets/search). ![nf-core test-datasets list --branch mag --generate-dl-url](/images/tools/nf-core-test-datasets-list-url-out.svg) diff --git a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/next_steps.md b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/next_steps.md index 167f905ec1..93af529145 100644 --- a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/next_steps.md +++ b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/next_steps.md @@ -68,4 +68,4 @@ For more information and a comprehensive guide on the guidelines of how to imple ### Sample meta information -In nf-core DSL2 pipelines, every channel that contains sample data in some way should also contain a `meta`variable, which must contain the fields `meta.id`, `meta.single_end` and `meta.strandedness`. The `meta` variable can be passed down to processes as a tuple of the channel containing the actual samples, e.g. FastQ files, and the `meta` variable. This meta information can easily be extracted from a samplesheet which specifies the input files. Use the nextflow plugin [nf-validation](https://nextflow-io.github.io/nf-validation/) to transform the samplesheet into a channel with the meta information. +In nf-core DSL2 pipelines, every channel that contains sample data in some way should also contain a `meta`variable, which must contain the fields `meta.id`, `meta.single_end` and `meta.strandedness`. The `meta` variable can be passed down to processes as a tuple of the channel containing the actual samples, e.g. FastQ files, and the `meta` variable. This meta information can easily be extracted from a samplesheet which specifies the input files. Use the Nextflow plugin [nf-validation](https://nextflow-io.github.io/nf-validation/) to transform the samplesheet into a channel with the meta information. diff --git a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/overview.md b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/overview.md index c07bb7a9bd..cebb964616 100644 --- a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/overview.md +++ b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/overview.md @@ -20,7 +20,7 @@ The steps covered in this tutorial are: So, you want to add a new pipeline to nf-core - brilliant! Before you start typing, check that you're happy with the following points: -- You're familiar with nf-core and nextflow (see our [introduction docs](/docs/usage/getting_started/introduction.md)). +- You're familiar with nf-core and Nextflow (see our [introduction docs](/docs/usage/getting_started/introduction.md)). - You're used to working with `git` and [GitHub](https://github.com) (see a [nice tutorial here](https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/)) - The workflow you're thinking of meets the [nf-core guidelines](https://nf-co.re/docs/guidelines/pipelines/overview). diff --git a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/test_data.md b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/test_data.md index d038d1a00d..9f1ad95c57 100644 --- a/sites/docs/src/content/docs/tutorials/adding_a_pipeline/test_data.md +++ b/sites/docs/src/content/docs/tutorials/adding_a_pipeline/test_data.md @@ -20,7 +20,7 @@ nextflow run . -profile debug,test,docker --outdir We also automatically run tests with GitHub Actions anytime someone updates the pipeline code. We use nf-test to check the pipeline results, but regular test runs also often catch -syntax errors and other serious problems that cause nextflow to exit with an error. +syntax errors and other serious problems that cause Nextflow to exit with an error. ### Putting the test data on GitHub diff --git a/sites/docs/src/content/docs/tutorials/gitpod/alternatives.md b/sites/docs/src/content/docs/tutorials/gitpod/alternatives.md index 6779a4f5a3..d248655d99 100644 --- a/sites/docs/src/content/docs/tutorials/gitpod/alternatives.md +++ b/sites/docs/src/content/docs/tutorials/gitpod/alternatives.md @@ -30,7 +30,7 @@ This will bring up a dropdown menu, you will then select the `Codespaces` tab an After the Codespace is created, you should see something that looks very similar to a Gitpod environment (please see nf-core's [Gitpod](/docs/tutorials/gitpod/overview) page for more information). :::note -An important difference between Gitpod and Codespaces is that `-profile singularity`, and not `-profile docker` will need to be used to run any nextflow commands. Otherwise, the created codespace can be used almost exactly as you would use a Gitpod environment. +An important difference between Gitpod and Codespaces is that `-profile singularity`, and not `-profile docker` will need to be used to run any Nextflow commands. Otherwise, the created codespace can be used almost exactly as you would use a Gitpod environment. ::: ## Dev Containers on Visual Studio Code (VS Code) diff --git a/sites/docs/src/content/docs/tutorials/nf-core_components/components.mdx b/sites/docs/src/content/docs/tutorials/nf-core_components/components.mdx index da3ab1115a..00f4feaaea 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_components/components.mdx +++ b/sites/docs/src/content/docs/tutorials/nf-core_components/components.mdx @@ -32,11 +32,11 @@ We have implemented a number of commands in the `nf-core/tools` package to make 1. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) or [`Conda`](https://conda.io/miniconda.html) -:::tip{title="Single step conda installation" collapse} -If you use the conda package manager you can setup a new environment and install all dependencies for the new module workflow in one step with: +:::tip{title="Single step Conda installation" collapse} +If you use the Conda package manager you can setup a new environment and install all dependencies for the new module workflow in one step with: ```bash -conda create -n nf-core -c bioconda "nextflow>=21.04.0" "nf-core>=2.7" nf-test +conda create -n nf-core -c bioConda "nextflow>=21.04.0" "nf-core>=2.7" nf-test conda activate nf-core ``` @@ -47,7 +47,7 @@ and proceed with Step 5. 3. Install the latest version of [`nf-core/tools`](https://github.com/nf-core/tools#installation) (`>=2.7`) 4. Install [`nf-test`](https://code.askimed.com/nf-test/installation/) 5. [Fork and clone the nf-core/modules repo locally](#uploading-to-nf-coremodules) -6. Setup up [pre-commit](https://pre-commit.com/) (comes packaged with [`nf-core/tools`](https://github.com/nf-core/tools#installation), watch the [pre-commit bytesize talk](https://www.youtube.com/watch?v=08d6zv6zvdM&t=215) if you want to know more about it) to ensure that your code is linted and formatted correctly before you commit it to the repository +6. Setup up [pre-commit](https://pre-commit.com/) (comes packaged with [`nf-core/tools`](https://github.com/nf-core/tools#installation), watch the [pre-commit Bytesize talk](https://www.youtube.com/watch?v=08d6zv6zvdM&t=215) if you want to know more about it) to ensure that your code is linted and formatted correctly before you commit it to the repository ```bash pre-commit install @@ -72,6 +72,7 @@ and proceed with Step 5. ![nf-core modules create](/images/contributing/modules/nf-core-modules-create.svg) All of the files required to add the module to `nf-core/modules` will be created/edited in the appropriate places. There are at most 3 files to modify: + 1. [`./modules/nf-core/fastqc/main.nf`](https://github.com/nf-core/modules/blob/master/modules/nf-core/fastqc/main.nf) This is the main script containing the `process` definition for the module. You will see an extensive number of `TODO` statements to help guide you to fill in the appropriate sections and to ensure that you adhere to the guidelines we have set for module submissions. @@ -141,6 +142,7 @@ git branch -d fastqc ![nf-core subworkflows create](/images/contributing/modules/nf-core-subworkflows-create.svg) All of the files required to add the subworkflow to `nf-core/modules` will be created/edited in the appropriate places. There are at most 3 files to modify: + 1. [`./subworkflows/nf-core/bam_sort_stats_samtools/main.nf`](https://github.com/nf-core/modules/blob/master/subworkflows/nf-core/bam_sort_stats_samtools/main.nf) This is the main script containing the `workflow` definition for the subworkflow. You will see an extensive number of `TODO` statements to help guide you to fill in the appropriate sections and to ensure that you adhere to the guidelines we have set for module submissions. @@ -197,7 +199,7 @@ git branch -d bam_sort_stats_samtools ### Test data -In order to test that each component added to `nf-core/modules` is actually working and to be able to track any changes to results files between component updates we have set-up a number of Github Actions CI tests to run each module on a minimal test dataset using Docker, Singularity and Conda. +In order to test that each component added to `nf-core/modules` is actually working and to be able to track any changes to results files between component updates we have set-up a number of GitHub Actions CI tests to run each module on a minimal test dataset using Docker, Singularity and Conda. Please adhere to the [test-data specifications](/docs/guidelines/components/test_data) when adding new test-data diff --git a/sites/docs/src/content/docs/tutorials/nf-core_components/publish_advisories.mdx b/sites/docs/src/content/docs/tutorials/nf-core_components/publish_advisories.mdx index ad4ecd2c07..f3c091c093 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_components/publish_advisories.mdx +++ b/sites/docs/src/content/docs/tutorials/nf-core_components/publish_advisories.mdx @@ -19,7 +19,7 @@ Some examples of issues that should be communicated as advisories include: - Known regressions that occur with certain parameter combinations. - Incompatibilities between a particular pipeline version and a specific Nextflow version. - Security vulnerabilities or other issues affecting a dependency or container image. -- Problems with executors (e.g., SLURM, AWS Batch) that require special considerations. +- Problems with executors (e.g., Slurm, AWS Batch) that require special considerations. These are the kinds of problems where a clear, structured advisory can help users avoid pitfalls and stay informed, but there’s no rigid rule on when to publish one β€” if you’ve identified a problem, understand its cause, possibly even have a solid workaround or fix, that’s a great time. @@ -41,7 +41,7 @@ category: ["pipelines", "configuration"], reporter: ["nf-core-bot"], reviewer: ["MatthiasZepper"], nextflowVersions: ["25.04.0", "25.04.1", "25.04.2"], -nextflowExecutors: ["SLURM", "AWS Batch", "Local"], +nextflowExecutors: ["Slurm", "AWS Batch", "Local"], softwareDependencies: ["Docker", "Singularity"], pipelines: [ { name: "pipeline", versions: ["1.x.x","2.0.x"] }, @@ -122,7 +122,7 @@ nextflowVersions: # Specific Nextflow versions that exhibit this issue - "23.10.1" nextflowExecutors: # Workflow execution environments where this issue occurs - - "SLURM" # Specific executor names + - "Slurm" # Specific executor names - "AWS Batch" - "Local" diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/contributing-training/nf-core_contributing_overview.md b/sites/docs/src/content/docs/tutorials/nf-core_training/contributing-training/nf-core_contributing_overview.md index b0fd6f8e15..718853549b 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/contributing-training/nf-core_contributing_overview.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/contributing-training/nf-core_contributing_overview.md @@ -453,8 +453,10 @@ Once resolved and checked, this PR can be merged and a new pipeline release crea - Bump your pipeline's version to 1.0, ready for its first release! - Make sure that you're signed up to the _nf-core_ slack (get an invite on [nf-co.re](https://nf-co.re)) and drop us a line about your latest and greatest pipeline plans! - Ask to be a member of the _nf-core_ GitHub organisation by commenting on [this GitHub issue](https://github.com/nf-core/website/issues/3) + - If you're a Bluesky user, make sure to follow the [@nf_core](https://bsky.app/profile/nf-co.re) account. - If you are a Mastodon user, you can follow the [@nf_core@mstdn.science](https://mstdn.science/@nf_core) account. + ## Conclusion diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/overview.md b/sites/docs/src/content/docs/tutorials/nf-core_training/overview.md index 56cec31984..f142165c9e 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/overview.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/overview.md @@ -12,4 +12,4 @@ The training tutorials currently available are: - [Writing nf-core modules](/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-1-introduction) - [Contributing to nf-core](/docs/tutorials/nf-core_training/contributing-training/nf-core_contributing_overview) -Always check the the 'last updates' information at the top of each page to ensure your tutorial is up to date to the latest standards and procedure. +Always check the 'last updates' information at the top of each page to ensure your tutorial is up to date to the latest standards and procedure. diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-3-what-is-a-nf-core-module.md b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-3-what-is-a-nf-core-module.md index 70b2d5045e..d304479752 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-3-what-is-a-nf-core-module.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-3-what-is-a-nf-core-module.md @@ -16,7 +16,7 @@ This chapter describes what an nf-core module is, and what makes them different For each 'wrapper', nf-core modules usually follow the rule of one tool command, or one tool with a single subcommand, per wrapper. :::info{collapse title="Comparison with Nextflow modules"} -A Nextflow process or module has no restrictions on the the number of tools or subcommands it can execute. +A Nextflow process or module has no restrictions on the number of tools or subcommands it can execute. An nf-core module strictly aims to have a single 'analysis' command per module for simplicity and lego-block like construction of pipelines. While this atomic nature is not always the most resource efficient, it makes modules easier to understand, share, and test. diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-5-writing-your-module.md b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-5-writing-your-module.md index 3514e75c27..34616a7826 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-5-writing-your-module.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-5-writing-your-module.md @@ -147,7 +147,7 @@ If you change your mind after the initial boilerplate file generation, you can a You should not use custom label names to specify other 'custom' requirements if you feel your module's typical resource requirements do not match those of set in the nf-core pipeline template's standard labels. The default resource specifications that are set for the standard labels can be modified by a pipeline developer when developing a pipeline level (in nf-core pipelines, this happens in the `conf/base.config` file). Thus, you should stick with the standard labels, and let pipeline developers 'tune' the modules resources within the pipeline. -Furthermore a user can also override and refine these resource requirements even further for specific modules within a custom custom config file, by specifying in a `process` block by the module name with `withName:`. +Furthermore a user can also override and refine these resource requirements even further for specific modules within a custom config file, by specifying in a `process` block by the module name with `withName:`. This flexibility at the pipeline level means that it is unnecessary to use any non-standard labels, and provides the benefit of 'consistency' between all nf-core modules and nf-core pipelines on how each standard resource is defined. @@ -390,7 +390,7 @@ The boilerplate template already comes with an example samtools command for you, At the top of the block you have two standard variables that should not be removed. - πŸ“› The`args` variable is how a pipeline developer can 'inject' optional parameters into the command itself. - - The `ext.args` comes from the process scope of a nextflow configuration file - in nf-core pipelines this is defined in the `modules.config` + - The `ext.args` comes from the process scope of a Nextflow configuration file - in nf-core pipelines this is defined in the `modules.config` - More information on this is described in the 'using in pipelines' chapter - πŸ“› The `prefix` variable is used for the default output file basename that all output files should use - The default corresponds to the default `id` value of the primary input channel's meta map that all nf-core pipelines use. @@ -652,7 +652,7 @@ input: In the default example added by the boilerplate template, you see a single input channel described - one with a meta map and a single path element. -In this section you need to update the the input channel name, the description, pattern, and ontologies. +In this section you need to update the input channel name, the description, pattern, and ontologies. The type follows a fixed set of [categories](https://nf-co.re/docs/guidelines/components/modules#input-and-output-channel-types), such as `file`, `integer`, `boolean`. @@ -660,7 +660,7 @@ The description should be descriptive in what they contain or how they should be The pattern should match the corresponding input expected by the tool itself. -The ontologies section should provide links to respective entry matching the input type within the the controlled vocabulary of the (typically) [EDAM ontology](https://www.ebi.ac.uk/ols4/ontologies/edam). +The ontologies section should provide links to respective entry matching the input type within the controlled vocabulary of the (typically) [EDAM ontology](https://www.ebi.ac.uk/ols4/ontologies/edam). It is up to you how specific to be - whether extremely specific (fastq), or generic (text file). Note that you will have to make an entry for each of your input channels. @@ -837,7 +837,7 @@ The only difference is that the 'key' of output _file_ (not the channel) should You can use the `nf-core modules lint` command (described later) to automatically pick up all the output channels and put placeholders elements in for you ::: -As with the the `input:` block you need to update the type, description, pattern, and ontologies. +As with the `input:` block you need to update the type, description, pattern, and ontologies. ### Contributors diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-6-testing-your-module.md b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-6-testing-your-module.md index 4fb8e5c847..7391e63971 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-6-testing-your-module.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-6-testing-your-module.md @@ -264,7 +264,7 @@ Note that it is not included by default in the boilerplate template code. The location of a setup block can vary. You can either specify this before all tests, so you can re-use the same output of this upstream module in all subsequent tests. Alternatively you can place it before the 'when' block of each test within the test block themselves. -In this case the the setup block will only be executed when the given test is executed. +In this case the setup block will only be executed when the given test is executed. The difference between the setup block and the test block (see above) is that the output of modules in the setup block will _not_ be asserted by the test. @@ -331,7 +331,7 @@ nextflow_process { ... ``` -Example of setup blocks used for a a specific test: +Example of setup blocks used for a specific test: ```nextflow nextflow_process { diff --git a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-8-using-in-pipelines.md b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-8-using-in-pipelines.md index b169ac8b88..1a5480440a 100644 --- a/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-8-using-in-pipelines.md +++ b/sites/docs/src/content/docs/tutorials/nf-core_training/writing-nf-core-modules/chapter-8-using-in-pipelines.md @@ -68,7 +68,7 @@ You can invoke the module as you would with any Nextflow module: SAMTOOLS_FASTA (ch_input_for_samtoolsfasta, val_interleave) ``` -However, you may need to make some additional additional tweaks to your existing pipeline logic and files to make the module work correctly. These changes are described in the remaining sections of this chapter. +However, you may need to make some additional tweaks to your existing pipeline logic and files to make the module work correctly. These changes are described in the remaining sections of this chapter. ### Module channel structures diff --git a/sites/docs/src/content/docs/tutorials/use_nf-core_pipelines/writing_institutional_profiles.md b/sites/docs/src/content/docs/tutorials/use_nf-core_pipelines/writing_institutional_profiles.md index 868457d643..8ac9e2b773 100644 --- a/sites/docs/src/content/docs/tutorials/use_nf-core_pipelines/writing_institutional_profiles.md +++ b/sites/docs/src/content/docs/tutorials/use_nf-core_pipelines/writing_institutional_profiles.md @@ -185,7 +185,7 @@ params { Note that for the `config_profile_contact`, it is best to indicate a specific person. This will typically be someone who wrote the config (via their name & github handle) or whoever will maintain it at the institution (e.g. email of IT Department, Institution X), i.e. someone who can be contacted if there are questions or problems and how to contact them. -Finally, if you have a common resource directory for the AWS `iGenomes` collection of reference genomes, this can can also go in the `params` scope. +Finally, if you have a common resource directory for the AWS `iGenomes` collection of reference genomes, this can also go in the `params` scope. ```nextflow params { diff --git a/sites/docs/src/content/docs/usage/Getting_started/configuration.md b/sites/docs/src/content/docs/usage/Getting_started/configuration.md index 4bd4ffba0a..8a8d93316f 100644 --- a/sites/docs/src/content/docs/usage/Getting_started/configuration.md +++ b/sites/docs/src/content/docs/usage/Getting_started/configuration.md @@ -307,6 +307,7 @@ In this case, a user can override the default container used by the pipeline by 2. Find the latest version of the Biocontainer available on [Quay.io](https://quay.io/repository/biocontainers/pangolin?tag=latest&tab=tags) for Docker or [Galaxy Project](https://depot.galaxyproject.org/singularity/) for Singularity - Note the container version tag is identical for both container systems, but must include the 'build' ID (e.g.`--pyhdfd78af_1`) 3. Create the custom config accordingly: + - For Docker: ```groovy @@ -365,7 +366,7 @@ In some cases _some_ modules have mandatory information for a tool for it to be ### Customising tool arguments -If you want to modify which parameters are used by a given tool, you can do this by specifying them in the the `ext.args` entry of a process in a [custom config](#custom-configuration-files). +If you want to modify which parameters are used by a given tool, you can do this by specifying them in the `ext.args` entry of a process in a [custom config](#custom-configuration-files). For example, lets say a pipeline does not yet support the `-n` parameter to a `BOWTIE_BUILD` step. You can add this in a custom config file like so: diff --git a/sites/docs/src/content/docs/usage/Getting_started/installation.md b/sites/docs/src/content/docs/usage/Getting_started/installation.md index 1550ae234c..ba108c86e3 100644 --- a/sites/docs/src/content/docs/usage/Getting_started/installation.md +++ b/sites/docs/src/content/docs/usage/Getting_started/installation.md @@ -82,7 +82,7 @@ The step to install Nextflow in itself will afterwards be the same as previously ### Updating Nextflow -Updating nextflow is as simple as running: +Updating Nextflow is as simple as running: ```bash nextflow self-update diff --git a/sites/docs/src/content/docs/usage/troubleshooting/crash_halfway.md b/sites/docs/src/content/docs/usage/troubleshooting/crash_halfway.md index 83c3152873..3065f4c312 100644 --- a/sites/docs/src/content/docs/usage/troubleshooting/crash_halfway.md +++ b/sites/docs/src/content/docs/usage/troubleshooting/crash_halfway.md @@ -29,7 +29,7 @@ Command exit status: Each exit code can mean different things to different tools as well as in different environments. Therefore it is not always easy for developers to predict the exact issue and solution! ::: -Common exit codes and and **_potential_** solutions are as follows: +Common exit codes and **_potential_** solutions are as follows: | Exit Code | Possible Cause | Solution | | --------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/sites/docs/src/content/docs/usage/troubleshooting/early_crash.md b/sites/docs/src/content/docs/usage/troubleshooting/early_crash.md index 025eee8197..f17bc994b1 100644 --- a/sites/docs/src/content/docs/usage/troubleshooting/early_crash.md +++ b/sites/docs/src/content/docs/usage/troubleshooting/early_crash.md @@ -32,7 +32,7 @@ To fix, just re-pull the pipeline's Docker container manually with: docker pull nfcore/:dev ``` -If you work in a `dev` branch, you may also want to consider putting a request for a pull in each run you do with nextflow, by putting this line of code in your nextflow.config file: +If you work in a `dev` branch, you may also want to consider putting a request for a pull in each run you do with Nextflow, by putting this line of code in your `nextflow.config` file: ```groovy docker { diff --git a/sites/docs/src/content/docs/usage/troubleshooting/input_output.md b/sites/docs/src/content/docs/usage/troubleshooting/input_output.md index ad8817c2aa..628dcb37c8 100644 --- a/sites/docs/src/content/docs/usage/troubleshooting/input_output.md +++ b/sites/docs/src/content/docs/usage/troubleshooting/input_output.md @@ -51,7 +51,7 @@ Or when you're using a input method like `--input '///*_fq.gz'`, but o 2. The path must have at least one `*` wildcard character i.e. following a ['glob' pattern](https://en.wikipedia.org/wiki/Glob_%28programming%29). This is even if you are only running one paired end sample. - A description of valid pattern matching can be seen [here](https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob) for java and [here](https://www.nextflow.io/docs/latest/channel.html?highlight=glob#frompath) for Nextflow 3. When using the pipeline with paired end data, the path must use `{1,2}` or `{R1,R2}` notation to specify read pairs. - - This notation is interpreted by Nextflow to mean anything with the same string other than R1 and R2 in the file name, will be be assumed to be a pair of files. + - This notation is interpreted by Nextflow to mean anything with the same string other than R1 and R2 in the file name, will be assumed to be a pair of files. 4. If you are running single-end data make sure to specify `--single_end` 5. [Your data should be organised in a 'tidy' manner](#data-organization) diff --git a/sites/main-site/src/content/about/publications.mdx b/sites/main-site/src/content/about/publications.mdx index 72fba1faf7..366221208a 100644 --- a/sites/main-site/src/content/about/publications.mdx +++ b/sites/main-site/src/content/about/publications.mdx @@ -3,7 +3,7 @@ title: Publications description: Publications about nf-core and nf-core pipelines --- -import Altmetric from "@components/Altmetric.astro"; +import Altmetric from "@components/Altmetric.Astro"; Do you know of an nf-core publication that we're missing? Please [make a pull-request](https://github.com/nf-core/website/blob/main/sites/main-site/src/content/about/publications.mdx). diff --git a/sites/main-site/src/content/blog/2024/callingcards_intro.mdx b/sites/main-site/src/content/blog/2024/callingcards_intro.mdx index 8b7598b856..6f74e1411a 100644 --- a/sites/main-site/src/content/blog/2024/callingcards_intro.mdx +++ b/sites/main-site/src/content/blog/2024/callingcards_intro.mdx @@ -14,14 +14,14 @@ label: - "transcription factors" --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; import alf_gif from "@assets/images/blog/callingcards/alf_what_is_this.webp"; import callingcards_vs_chip from "@assets/images/blog/callingcards/callingcards_vs_chip_white.png"; import callingcards_metro from "@assets/images/blog/callingcards/callingcards_metromap.png"; import callingcards_mammals from "@assets/images/blog/callingcards/callingcards_mammals.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The [`nf-core/callingcards`][nf-core-callingcards-link] workflow is here! diff --git a/sites/main-site/src/content/blog/2024/core_retreat_Feb_2024.mdx b/sites/main-site/src/content/blog/2024/core_retreat_Feb_2024.mdx index 75cff2176e..8c95415b97 100644 --- a/sites/main-site/src/content/blog/2024/core_retreat_Feb_2024.mdx +++ b/sites/main-site/src/content/blog/2024/core_retreat_Feb_2024.mdx @@ -40,8 +40,8 @@ We will also try to better document how new members are added to the different [ ### Special interest groups An exiting development is that nf-core wants to establish _"Special interest groups"_ to encourage people within the nf-core community with similar interest to meet and work together. -We spent a disproportionate amount of time arguing about the name for these: SIGs / COSIs / communities / working groups etc etc - naming things is hard! -More information on this new initiative will be presented in the [bytesize talk on February 20th](/events/2024/bytesize_workgroups_intro) and in a dedicated blog post / website section soon. +We spent a disproportionate amount of time arguing about the name for these: SIGs / COSIs / communities / working groups etc - naming things is hard! +More information on this new initiative will be presented in the [Bytesize talk on February 20th](/events/2024/bytesize_workgroups_intro) and in a dedicated blog post / website section soon. ### Funding @@ -78,7 +78,7 @@ Stay tuned for a blog post with more information coming soon. ### Roadmap for nf-core/tools There are lots of smaller and bigger improvements to nf-core/tools in the works and the core team discussed and prioritised the major tasks for the start of 2024. -Special mention to the upcoming config builder ([#2731](https://github.com/nf-core/tools/issues/2731)) that will help new users to create institutional or other config files to run nf-core and other nextflow pipelines. +Special mention to the upcoming config builder ([#2731](https://github.com/nf-core/tools/issues/2731)) that will help new users to create institutional or other config files to run nf-core and other Nextflow pipelines. We will also be focussing on a more flexible / minimal pipeline template ([#2340](https://github.com/nf-core/tools/issues/2340)) and some major improvements to the Nextflow schema ([#2429](https://github.com/nf-core/tools/issues/2429)). ### Restructuring of nf-core/modules diff --git a/sites/main-site/src/content/blog/2024/fastquorum_intro.mdx b/sites/main-site/src/content/blog/2024/fastquorum_intro.mdx index 7b8cf887d9..9bb5202838 100644 --- a/sites/main-site/src/content/blog/2024/fastquorum_intro.mdx +++ b/sites/main-site/src/content/blog/2024/fastquorum_intro.mdx @@ -14,7 +14,7 @@ label: - "fastquorum" --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; import but_why from "@assets/images/blog/fastquorum/but_why.gif"; import i_want_the_truth from "@assets/images/blog/fastquorum/i_want_the_truth.gif"; @@ -26,7 +26,7 @@ import big_deal from "@assets/images/blog/fastquorum/big_deal.jpg"; import fastquorum_diagram from "@assets/images/blog/fastquorum/fastquorum_diagram.png"; import fulcrumgenomics_logo from "@assets/images/blog/fastquorum/fulcrumgenomics.svg"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; We are thrilled to announce the first release of the [`nf-core/fastquorum`][nf-core-fastquorum-link] pipeline, which implements the [fgbio Best Practices FASTQ to Consensus Pipeline][fgbio-best-practices-link] to produce consensus reads using unique molecular indexes/barcodes (UMIs). Developed by [Nils Homer][nilshomer-linkedin-link] at [Fulcrum Genomics][fulcrum-genomics-link], the pipeline utilizes the [`fgbio` Bioinformatics toolkit][fgbio-link] to enable producing ultra-accurate reads for low frequency variant detection in Genomics/DNA Sequencing. @@ -120,7 +120,7 @@ That brings us to [fgbio][fgbio-github-link]. Similar to popular Bioinformatic toolkits samtools, the GATK, and bedtools, fgbio is a collection of command line tools developed by Fulcrum Genomics][fulcrum-genomics-link] to analyze primary Genomics data. Since its conception in 2015, `fgbio` has been downloaded from [Bioconda][fgbio-bioconda-link] over three-hundred thousand times, and we use it extensively with our clients at [Fulcrum Genomics][fulcrum-genomics-link]. - Chart of Bioconda downloads placing fgbio with three-hundred-thousand downloads + Chart of BioConda downloads placing fgbio with three-hundred-thousand downloads Will Ferrell in Anchorman meme with caption '>300K downloads on BioConda, we are kind of a big deal' diff --git a/sites/main-site/src/content/blog/2024/hackathon-march-2024.mdx b/sites/main-site/src/content/blog/2024/hackathon-march-2024.mdx index ea20d82e66..4a8d497562 100644 --- a/sites/main-site/src/content/blog/2024/hackathon-march-2024.mdx +++ b/sites/main-site/src/content/blog/2024/hackathon-march-2024.mdx @@ -11,8 +11,8 @@ label: embedHeaderImage: false --- -import { YouTube } from "@astro-community/astro-embed-youtube"; -import { Image } from "astro:assets"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; +import { Image } from "Astro:assets"; import attendee_locations from "@assets/images/blog/hackathon-march-2024/attendee_locations.png"; import attendees_per_site from "@assets/images/blog/hackathon-march-2024/attendees_per_site.png"; diff --git a/sites/main-site/src/content/blog/2024/helpdesk.mdx b/sites/main-site/src/content/blog/2024/helpdesk.mdx index 74188b0a91..fb49620e7b 100644 --- a/sites/main-site/src/content/blog/2024/helpdesk.mdx +++ b/sites/main-site/src/content/blog/2024/helpdesk.mdx @@ -49,7 +49,7 @@ Things that might be discussed include: - You want to hang out with other Nextflow enthusiasts and get to know the faces behind the slack handles The Helpdesk hours will take place in [Gather](https://gather.town/), an online collaborate platform, kind of like Pokemon-meets-Zoom. You can join by following the Gather Town link [here](https://nf-co.re/join#gather-town). -For more information, see the [Gather Town bytesize talk](/events/2022/bytesize-37-gathertown). +For more information, see the [Gather Town Bytesize talk](/events/2022/bytesize-37-gathertown). Please join the [#weekly-helpdesk](https://nfcore.slack.com/channels/weekly-helpdesk) channel on the nf-core Slack to get reminders when sessions are about to start, and discuss the format / provide feedback. diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-05-03.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-05-03.mdx index c23bc15851..306ec6ec6e 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-05-03.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-05-03.mdx @@ -11,7 +11,7 @@ label: --- import drake_meme from "@assets/images/blog/maintainers-minutes-2024-05-03/maintainers-meme-2024-05-03.jpg"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; In this new initiative, the 'Maintainers Minutes' aims to further give insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly Maintainer's team meetings. diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-06-07.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-06-07.mdx index a2e877e09a..69bf2784fd 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-06-07.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-06-07.mdx @@ -12,7 +12,7 @@ label: import Profile from "@components/GitHubProfilePictureExtended.svelte"; import sad_maintainers_duck from "@assets/images/blog/maintainers-minutes-2024-06-07/sad-maintainers-duck.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; In this new initiative, the 'Maintainers Minutes' aims to further give insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly Maintainer's team meetings. @@ -48,7 +48,7 @@ And we are happy to announce that the following people were nominated by current ## Still naming things... -We once again again spent some time talking about the naming of subworkflows, talking about the tricky balance of keeping findability but conciseness in understanding what a particular subworkflow does. +We once again spent some time talking about the naming of subworkflows, talking about the tricky balance of keeping findability but conciseness in understanding what a particular subworkflow does. There was general agreement that actually the _length_ of the subworkflow name isn't as important as ensuring knowing exactly what the subworkflow does. In some cases it was argued that describing every operation and tool of the subworkflow was unnecessary and made it harder to understand. diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-07-26.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-07-26.mdx index 9fcc0d7455..c1b4d8900d 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-07-26.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-07-26.mdx @@ -17,19 +17,19 @@ by providing brief summaries of the monthly team meetings. ## More (or less) testing -[JΓΊlia](https://github.com/mirpedrol) encountered several failing tests on nf-core/crisprseq with conda and singularity (currently, our CI tests only run with docker). -Moving forward we agreed that at least some tests should also be run with `singularity` and `conda` at some point during the development process but before release. +[JΓΊlia](https://github.com/mirpedrol) encountered several failing tests on nf-core/crisprseq with Conda and Singularity (currently, our CI tests only run with Docker). +Moving forward we agreed that at least some tests should also be run with `Singularity` and `Conda` at some point during the development process but before release. We discussed several ideas. On the one hand we'd like to make sure everything works at all times, on the other hand running tons of essentially duplicate tests makes development slow, costs money, and is not great for the planet 🌳. As a compromise, we agreed on the following: -- Singularity & conda tests are run on PR to master -- Make singularity required +- Singularity & Conda tests are run on PR to master +- Make Singularity required - Conda optional opt-out - Add `workflow dispatch` button for easier manual testing during earlier stages of development -## Nf-test best practices +## nf-test best practices [Nicolas](https://github.com/nvnieuwk/) brought up that nf-test snapshots (i.e., files that record e.g. md5sums or presence of strings) should be readable to quickly determine that they include everything they should. He had noticed that some people in module tests had started using a snapshot for every single file (rather than all in one), seemingly to be able to 'label' each snapshot. @@ -47,8 +47,8 @@ This will include a lot of new exciting things: - Subworkflows - bio.tools identifiers (for better linked metadata across registries) - edam ontologies for all input/output files (for better standardisation of file types) -- Removing defaults from conda channel (to reduce chances of ToS violations) -- Adding lock files (for better conda dependency version stability) +- Removing defaults from Conda channel (to reduce chances of ToS violations) +- Adding lock files (for better Conda dependency version stability) - Adding version topic channels (for simplified version reporting in pipelines) - Adding lint for stub tests for all modules (to help us move to having complete 'dry run' functionality in pipelines) @@ -56,7 +56,7 @@ This will include a lot of new exciting things: In addition, we discussed how to incorporate the version aggregation system using Nextflow's new '[topic](https://www.nextflow.io/docs/latest/channel.html#topic)' channel functionality. [Edmund](https://github.com/edmundmiller) created a [proof of concept](https://github.com/nf-core/nascent/pull/150) showing that it is possible to handle topic and non-topic version channels together. -This would require a pipeline update by all developers, pinning a recent nextflow version, and adding the `preview` flag. +This would require a pipeline update by all developers, pinning a recent Nextflow version, and adding the `preview` flag. It was concluded that this should be a hackathon task. ## Obligatory argument @@ -78,7 +78,7 @@ Various members of the nf-core community had both a long time ago and more recen Everyone think it's a good idea and we discussed how to best approach this since the guidelines are listed on the website, _but_ linting is linked to nf-core/tools versions, _but_ not everything can/is linted for at the moment. Some ideas included linking the docs with the tools version and date stamp the docs, have dev docs version to account for incremental updates. -However, it was brought up that that linting against the tools dev version may cause problems with changes that may occur during the development on the dev branch. +However, it was brought up that linting against the tools dev version may cause problems with changes that may occur during the development on the dev branch. One of the major technical challenges that was flagged was how to best account for various docs versions on the website, with the additional complication that the guidelines page is planned to be split up into one file per guideline point (which [James](https://github.com/jfy133) finds 🀒). [Matthias](https://github.com/mashehu) will think about a few ways on how this could be tackled to minimise the amount of file copies that may occur when archiving each version. diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-08-30.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-08-30.mdx index 0333d7e59b..c7c6af38b3 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-08-30.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-08-30.mdx @@ -19,7 +19,7 @@ by providing brief summaries of the monthly team meetings. ### Seqera Containers [Phil Ewels](https://github.com/ewels) joined us to chat about migrating to [Seqera Containers](https://seqera.io/containers/) which ties into the [batch modules](https://github.com/nf-core/modules/issues/5828) update we have been discussing in the last few months. -We agreed on a general structure and refactoring plan to incorporate the new container repository as well as leveraging conda lock files for better reproducibilty. +We agreed on a general structure and refactoring plan to incorporate the new container repository as well as leveraging Conda lock files for better reproducibilty. Phil and [Edmund Miller](https://github.com/edmundmiller) will put together blog posts describing the plan in detail. ### Renovate @@ -32,11 +32,11 @@ channels: - conda-forge - bioconda dependencies: - # renovate: datasource=conda depName=bioconda/bwa + # renovate: datasource=Conda depName=bioconda/bwa - bioconda::bwa=0.7.18 - # renovate: datasource=conda depName=bioconda/samtools + # renovate: datasource=Conda depName=bioconda/samtools - bioconda::samtools=1.20 - # renovate: datasource=conda depName=bioconda/htslib + # renovate: datasource=Conda depName=bioconda/htslib - bioconda::htslib=1.20.0 ``` diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-10-25.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-10-25.mdx index f231bc428a..c891d97080 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-10-25.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-10-25.mdx @@ -14,7 +14,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. @@ -91,7 +91,7 @@ Another reason is to increase the modularity and portability of modules and thei This proposal initially brought up a lot of consternation with most of the other maintainers present. The primary issue was the potential impact on usability, specifically regarding the ease with which users can locate customized parameters within each module. Currently, we can direct users to a single file within a single directory, simplifying their search. -Splitting configurations into potentially hundreds of files could make it significantly harder for users to find what they need. It's also unclear if another file has an overriding setting for a module, for example that's defined in the subworkflow folder rather than the module folder. Additionally, this approach isn’t currently supported by Nextflow’s native capabilities, which would allow modules to automatically detect and load nextflow.config files alongside main.nf. As a result, a substantial amount of manual work would be needed to manually include each module’s config. +Splitting configurations into potentially hundreds of files could make it significantly harder for users to find what they need. It's also unclear if another file has an overriding setting for a module, for example that's defined in the subworkflow folder rather than the module folder. Additionally, this approach isn't currently supported by Nextflow's native capabilities, which would allow modules to automatically detect and load `nextflow.config` files alongside `main.nf`. As a result, a substantial amount of manual work would be needed to manually include each module's config. A lengthy discussion ensued, weighing user readability against developer efficiency and which should take priority. For instance, efficiency improvements could be made at the level of nf-core/tools or GitHub CI configurations, where optimizations might achieve similar goals. Alternatively, waiting for native Nextflow support could eventually reduce the workload on developers. diff --git a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-11-29.mdx b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-11-29.mdx index 0b78b3f883..e5f86bd710 100644 --- a/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-11-29.mdx +++ b/sites/main-site/src/content/blog/2024/maintainers-minutes-2024-11-29.mdx @@ -13,7 +13,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. @@ -105,7 +105,7 @@ Sateesh Peri provided an overview of significant changes to the nf-core/modules Pipelines using GPU-dependent modules must update their CI workflows to support GPU testing. Currently, nf-core/methylseq serves as a test case for these CI updates. -The updated CI workflow involves two main github actions: +The updated CI workflow involves two main GitHub actions: - nf-test-shard: - Performs a dry run of nf-test with the `--changed-since` flag, filtering by tags. diff --git a/sites/main-site/src/content/blog/2024/new-website-structure.mdx b/sites/main-site/src/content/blog/2024/new-website-structure.mdx index 43bc83c45f..bb39865ac2 100644 --- a/sites/main-site/src/content/blog/2024/new-website-structure.mdx +++ b/sites/main-site/src/content/blog/2024/new-website-structure.mdx @@ -15,11 +15,11 @@ label: import subsites from "@assets/images/blog/new-website-structure/sub-site-meme.png"; import horsesizedduck from "@assets/images/blog/new-website-structure/horse-sized-duck.jpg"; import harderstronger from "@assets/images/blog/new-website-structure/harder-stronger.gif"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; # Build big -Nearly two years ago we rebuilt the nf-core website from the ground up with [Astro](https://astro.build/). The website is now comprised of over 6500 pages, featuring content for every pipeline release as well as blog posts, documentation, events and more. All these pages are built and deployed to the live server twice a day, in addition to building previews for every pull request against the main branch. The build process has become longer and longer as the site grows, eventually took over 10 minutes. We could reduce the build time a bit, but more than 5 minutes is an annoyingly long time to wait for a deployment preview, and also a waste a lot of resources when the majority of pages are unchanged. +Nearly two years ago we rebuilt the nf-core website from the ground up with [Astro](https://Astro.build/). The website is now comprised of over 6500 pages, featuring content for every pipeline release as well as blog posts, documentation, events and more. All these pages are built and deployed to the live server twice a day, in addition to building previews for every pull request against the main branch. The build process has become longer and longer as the site grows, eventually took over 10 minutes. We could reduce the build time a bit, but more than 5 minutes is an annoyingly long time to wait for a deployment preview, and also a waste a lot of resources when the majority of pages are unchanged. # Divide and conquer @@ -87,7 +87,7 @@ We are using [npm workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces We tried [pnpm](https://pnpm.io/) which should be even faster and better optimised for this task, but never got it to run completely, whilst _npm workspaces_ worked out of the box. -Every sub-site is a complete Astro project with its own `astro.config.mjs` and `package.json`, +Every sub-site is a complete Astro project with its own `Astro.config.mjs` and `package.json`, but the components and layouts are shared. We accomplished this by keeping them in `sites/main-site/src` and setting aliases for the relative links to `sites/main-site` in the respective sub-sites. This kept the required code changes to a minimum. @@ -133,7 +133,7 @@ This only happens when previewing a single sub-site and should not happen on the # Additional Changes -We couldn't update to Astro 4 with the old website structure, because it increased the build time to > 20 minutes leading to a timeout on netlify. With the new structure, we are now able to use newer Astro versions and benefit from the new features and optimizations, including [content collection caching](https://astro.build/blog/astro-350/#content-collections-build-cache-experimental), decreasing the build time for repeated builds even more. +We couldn't update to Astro 4 with the old website structure, because it increased the build time to > 20 minutes leading to a timeout on netlify. With the new structure, we are now able to use newer Astro versions and benefit from the new features and optimizations, including [content collection caching](https://Astro.build/blog/Astro-350/#content-collections-build-cache-experimental), decreasing the build time for repeated builds even more. diff --git a/sites/main-site/src/content/blog/2024/seqera-containers-part-1.mdx b/sites/main-site/src/content/blog/2024/seqera-containers-part-1.mdx index 9b742c33f6..f25c1ad0e0 100644 --- a/sites/main-site/src/content/blog/2024/seqera-containers-part-1.mdx +++ b/sites/main-site/src/content/blog/2024/seqera-containers-part-1.mdx @@ -14,7 +14,7 @@ label: embedHeaderImage: false --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; import butwhy from "@assets/images/blog/seqera-containers-part-1/simone-secci-49uySSA678U-unsplash.jpg"; import mulled from "@assets/images/blog/seqera-containers-part-1/hannah-pemberton-bXi4eg4jyuU-unsplash.jpg"; @@ -22,7 +22,7 @@ import disks from "@assets/images/blog/seqera-containers-part-1/behnam-norouzi-8 import wave_logs from "@assets/images/blog/seqera-containers-part-1/logs_screenshot.png"; import leaves from "@assets/images/blog/seqera-containers-part-1/providence-doucet-mE5MBZX5sko-unsplash.jpg"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; ## Introduction @@ -34,16 +34,16 @@ When using containers, all software requirements for a specific Nextflow process The process tasks run in isolation in the host environment, and the end user doesn't need to worry about installing software dependencies for the pipeline. The software builds are locked in time, making results highly reproducible over many years. -To ensure maximum compatibility across different environments, nf-core pipelines ship with the full range of options: conda environments as well as Docker and Singularity images. +To ensure maximum compatibility across different environments, nf-core pipelines ship with the full range of options: Conda environments as well as Docker and Singularity images. These are typically built using [Bioconda](https://bioconda.github.io/) and [BioContainers](https://biocontainers.pro/). -The Bioconda and BioContainer projects have been invaluable to nf-core's success. +The BioConda and BioContainer projects have been invaluable to nf-core's success. We're hugely grateful to all contributors for their work, as well as to Anaconda, Quay.io and the Galaxy project for hosting these resources. ## Change is on the breeze Photo by Simone Secci on Unsplash. -Bioconda and BioContainers have worked very well for nf-core. +BioConda and BioContainers have worked very well for nf-core. However, we are now looking to migrate to a new system: Seqera Containers. The motivation comes down to a few key reasons: @@ -64,7 +64,7 @@ With the new Seqera Containers setup we should be able to address these problems A detailed description of the proposed mechanism will come in part 2 of this blog post. Here are the key points: -- Developers will _only_ need to edit the conda `environment.yml` (no process `container`) +- Developers will _only_ need to edit the Conda `environment.yml` (no process `container`) - Container images will be built by Wave and stored in Seqera Containers - Build logs and source files will be shown on the nf-core website module pages - Conda lock-files will be used for Conda users and CI tests @@ -103,9 +103,9 @@ Note that images from Seqera Containers can already be used in nf-core/modules, ## BioContainers and Seqera Containers -Nearly all nf-core modules are bundled with a conda `environment.yml`, listing software package dependencies from [Bioconda](https://bioconda.github.io/) (eg. [FastQC](https://github.com/nf-core/modules/blob/f768b283dbd8fc79d0d92b0f68665d7bed94cabc/modules/nf-core/fastqc/environment.yml)). -The [BioContainers project](https://biocontainers.pro/) conveniently builds Docker and Singularity images for all tools on Bioconda automatically, hosting the images publicly on [quay.io](quay.io) and the Galaxy FTP servers, respectively. -This means that the nf-core module developer can find the matching [BioContainer](https://biocontainers.pro/) images for their Bioconda package, and then add the image URLs into the module's `main.nf` script (see [FastQC example](https://github.com/nf-core/modules/blob/f768b283dbd8fc79d0d92b0f68665d7bed94cabc/modules/nf-core/fastqc/main.nf#L6-L8)). +Nearly all nf-core modules are bundled with a Conda `environment.yml`, listing software package dependencies from [Bioconda](https://bioconda.github.io/) (eg. [FastQC](https://github.com/nf-core/modules/blob/f768b283dbd8fc79d0d92b0f68665d7bed94cabc/modules/nf-core/fastqc/environment.yml)). +The [BioContainers project](https://biocontainers.pro/) conveniently builds Docker and Singularity images for all tools on BioConda automatically, hosting the images publicly on [quay.io](quay.io) and the Galaxy FTP servers, respectively. +This means that the nf-core module developer can find the matching [BioContainer](https://biocontainers.pro/) images for their BioConda package, and then add the image URLs into the module's `main.nf` script (see [FastQC example](https://github.com/nf-core/modules/blob/f768b283dbd8fc79d0d92b0f68665d7bed94cabc/modules/nf-core/fastqc/main.nf#L6-L8)). The nf-core pipeline user then pulls the container images from quay.io or the Galaxy FTP server when they run the pipeline. - Support Bioconda packages + Support BioConda packages βœ… βœ… βœ… - Support all conda channels + Support all Conda channels ❌ βœ… βœ… @@ -217,7 +217,7 @@ Here's a brief comparison of the features: βœ… * - Pull delay for conda packages + Pull delay for Conda packages βœ… instant ❌ ~2-3 minutes for build on first request βœ… instant @@ -241,7 +241,7 @@ Here's a brief comparison of the features: βœ… - Guaranteed identical conda builds in future image pulls + Guaranteed identical Conda builds in future image pulls βœ… ❌ βœ… @@ -268,7 +268,7 @@ Here's a brief comparison of the features: BioContainers is primarily set up to have a 1:1 relationship with Bioconda. This is great for bioinformatics tools as an image is created every time a package is published. -This works well until you need to use more than one tool in a single process, particularly when the tools are from elsewhere in the conda ecosystem. +This works well until you need to use more than one tool in a single process, particularly when the tools are from elsewhere in the Conda ecosystem. For example, many bioinformatics tools leverage [samtools](https://www.htslib.org/) to convert file formats or sort reads on the fly. Others may pipe output to compression tools like [pigz](https://zlib.net/pigz/). To resolve this, BioContainers has the concept of β€œmulled” images (as in [mulled wine](https://en.wikipedia.org/wiki/Mulled_wine)). @@ -283,7 +283,7 @@ Galaxy also has [documentation on the topic](https://docs.galaxyproject.org/en/m In short, to request an image, you need to scroll to the bottom of a large [CSV file full of hashes](https://github.com/BioContainers/multi-package-containers/blob/master/combinations/hash.tsv) -and add a line with your requested conda packages. +and add a line with your requested Conda packages. Once edited, the images are built on CI. The container then becomes available after a review and merge. @@ -293,7 +293,7 @@ However, [Moriz E. Beber](https://github.com/Midnighter) from the nf-core commun the process of finding the name of your container and how to update a container if you want to bump the software versions. Once the image is built and you know its address, the final step is to go to nf-core/modules, -create a pull-request with the updated containers, and bump the versions in the conda `environment.yml`. +create a pull-request with the updated containers, and bump the versions in the Conda `environment.yml`. ::: This system works and, despite its complexity, is now a familiar process to many nf-core developers. @@ -305,7 +305,7 @@ It seems likely that this puts some people off from contributing to nf-core. Migrating nf-core to use Seqera Containers will make provisioning multi-package containers easier. The module developer will only need to edit the module `environment.yml` file and everything else will be fully automated and made available almost immediately. -Packages can be used minutes after their release on Bioconda and we will have automation in place to bump the Conda + Seqera Containers packages when a tool is updated. +Packages can be used minutes after their release on BioConda and we will have automation in place to bump the Conda + Seqera Containers packages when a tool is updated. ### Time to Singularity image @@ -318,7 +318,7 @@ Once a new version of a tool is released, they have to wait for the Singularity In practice, this often means that module updates get stuck in limbo for days until the developer has time to come back and check if the image is available. Singularity images are generated on the fly with Seqera Containers. -Developers will be able update the nf-core module minutes after the Bioconda package is released. +Developers will be able update the nf-core module minutes after the BioConda package is released. ### BioContainers API @@ -352,14 +352,14 @@ Even if new builds of the same software are created in the future using Wave (fo As container URIs will be stored in the module-level `meta.yml` file, any pipelines using the same shared nf-core/module will also be using the exact same container images. -We will further improve reproducibility at the conda level by adopting the use of conda lock-files. +We will further improve reproducibility at the Conda level by adopting the use of Conda lock-files. These pin the exact dependency stack used by the build, not just the top-level primary tool being requested. -This effectively removes the need for conda to solve the build and also ships md5 hashes for every package. -This will greatly improve the reproducibility of the software environments for conda users and the reliability of Conda CI tests. +This effectively removes the need for Conda to solve the build and also ships md5 hashes for every package. +This will greatly improve the reproducibility of the software environments for Conda users and the reliability of Conda CI tests. ```yaml # This file may be used to create an environment using: -# $ conda create --name --file +# $ Conda create --name --file # platform: linux-64 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 @@ -402,10 +402,10 @@ Wave build details page for the MultiQC v1.24.1 image: `community.wave.seqera.io The final part is the hash - from this we can infer the Wave Build ID and retrieve the build details: [https://wave.seqera.io/view/builds/789bc3917c8666da_1](https://wave.seqera.io/view/builds/789bc3917c8666da_1) ::: -The new conda lock files also allow enhanced reproducibility for Conda users and more stable CI tests - we'll come back to these in a future blog post / bytesize. +The new Conda lock files also allow enhanced reproducibility for Conda users and more stable CI tests - we'll come back to these in a future blog post / bytesize. Finally, the image creation will happen automatically on GitHub Actions when an `environment.yml` file is edited. -This means that the entire flow from conda file through to final containers will be entirely transparent, as the request to Wave itself and its response will be available in the GitHub Actions logs. +This means that the entire flow from Conda file through to final containers will be entirely transparent, as the request to Wave itself and its response will be available in the GitHub Actions logs. ### No lock-in diff --git a/sites/main-site/src/content/blog/2024/seqera-containers-part-2.mdx b/sites/main-site/src/content/blog/2024/seqera-containers-part-2.mdx index a79b5ea17b..0f80f73b07 100644 --- a/sites/main-site/src/content/blog/2024/seqera-containers-part-2.mdx +++ b/sites/main-site/src/content/blog/2024/seqera-containers-part-2.mdx @@ -17,8 +17,8 @@ embedHeaderImage: false import creation_flow from "@assets/images/blog/seqera-containers-part-2/creation_flow.excalidraw.svg?raw"; import renovate_flow from "@assets/images/blog/seqera-containers-part-2/renovate_flow.excalidraw.svg?raw"; -import { Image } from "astro:assets"; -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { Image } from "Astro:assets"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Introduction @@ -37,7 +37,7 @@ It's mostly to serve as an architectural plan for the nf-core maintainers and in - Module contributors edit `environment.yml` files to update software dependencies - Containers are automatically build for Docker + Singularity, `linux/amd64` + `linux/arm64` -- Conda lock-files are saved for more reproducible and faster conda environments +- Conda lock-files are saved for more reproducible and faster Conda environments - Details are stored in the module's `meta.yml` - Pipelines auto-generate Nextflow config files when modules are updated - Pipeline usage remains basically unchanged @@ -53,7 +53,7 @@ Before we dig into how the details of how the automation will work, let's summar - [`linux/amd64`](https://en.wikipedia.org/wiki/X86-64): Regular intel CPUs (aka `x86_64`) - [`linux/arm64`](https://en.wikipedia.org/wiki/AArch64): ARM CPUs (eg. AWS Graviton, aka `AArch64`). Not Apple Silicon. - [Apptainer](https://apptainer.org/): Alternative to Singularity, uses same image format -- [Mamba](https://mamba.readthedocs.io): Alternative to Conda, uses same conda environment files +- [Mamba](https://mamba.readthedocs.io): Alternative to Conda, uses same Conda environment files - [Conda lock files](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#identical-conda-envs): Explicit lists of packages, used to recreate an environment exactly. @@ -91,15 +91,15 @@ Pipeline users will see almost no change in current behaviour, but have several Conda lock files were mentioned in [Part I of this blog post](/blog/2024/seqera-containers-part-1#exceptionally-reproducible). > These pin the exact dependency stack used by the build, not just the top-level primary tool being requested. -> This effectively removes the need for conda to solve the build and also ships md5 hashes for every package. -> This will greatly improve the reproducibility of the software environments for conda users and the reliability of Conda CI tests. +> This effectively removes the need for Conda to solve the build and also ships md5 hashes for every package. +> This will greatly improve the reproducibility of the software environments for Conda users and the reliability of Conda CI tests. They look something like this: ```yaml title="FastQC Conda lock file for linux/amd64" # micromamba env export --explicit # This file may be used to create an environment using: -# $ conda create --name --file +# $ Conda create --name --file # platform: linux-64 @EXPLICIT https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 @@ -163,7 +163,7 @@ as an example: process FASTQC { label 'process_medium' - conda "${moduleDir}/environment.yml" + Conda "${moduleDir}/environment.yml" + container "fastqc:0.12.1--5cfd0f3cb6760c42" // automatically generated - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0' : @@ -246,13 +246,13 @@ process { withName: 'NF_PIPELINE:ANALYSIS_PLOTS' { container = 'express_click_pa //.. and so on, for each process in the pipeline ``` -Likewise, the conda config files will point to the lock files for each process: +Likewise, the Conda config files will point to the lock files for each process: ```groovy title="config/conda_lock files_amd64.config" // AUTOGENERATED CONFIG BELOW THIS POINT - DO NOT EDIT -process { withName: 'NF_PIPELINE:FASTQC' { conda = 'https://wave.seqera.io/v1alpha1/builds/5cfd0f3cb6760c42_1/condalock' } } -process { withName: 'NF_PIPELINE:MULTIQC' { conda = 'https://wave.seqera.io/v1alpha1/builds/9968ff4994a2e2d7_1/condalock' } } -process { withName: 'NF_PIPELINE:ANALYSIS_PLOTS' { conda = 'https://wave.seqera.io/v1alpha1/builds/58d94b8a8e79e144_1/condalock' } } +process { withName: 'NF_PIPELINE:FASTQC' { Conda = 'https://wave.seqera.io/v1alpha1/builds/5cfd0f3cb6760c42_1/condalock' } } +process { withName: 'NF_PIPELINE:MULTIQC' { Conda = 'https://wave.seqera.io/v1alpha1/builds/9968ff4994a2e2d7_1/condalock' } } +process { withName: 'NF_PIPELINE:ANALYSIS_PLOTS' { Conda = 'https://wave.seqera.io/v1alpha1/builds/58d94b8a8e79e144_1/condalock' } } //.. and so on, for each process in the pipeline ``` @@ -263,7 +263,7 @@ Singularity will have separate config files and associated `-profile`s for both so that users can choose which to use. Local modules and any edge-case shared modules that cannot use the Seqera Containers automation -will need the pipeline developer to hardcode container names and conda lock files manually. +will need the pipeline developer to hardcode container names and Conda lock files manually. These can be added to the above config files as long as they remain above the comment line: ```groovy @@ -329,7 +329,7 @@ profiles { includeConfig 'config/containers_singularity_oras_linux_arm64.config' apptainer.enabled = true } - conda { + Conda { includeConfig 'config/conda_lock files_amd64.config' conda.enabled = true } @@ -391,7 +391,7 @@ For the latest updates on modules container automation, see [nf-core/modules#6694](https://github.com/nf-core/modules/issues/6694). ::: -## Updating conda packages +## Updating Conda packages The automation begins when a contributor wants to add a piece of software to a container. For instance, they decided that they need samtools installed. @@ -498,11 +498,11 @@ channels: - conda-forge - bioconda dependencies: - # renovate: datasource=conda depName=bioconda/bwa + # renovate: datasource=Conda depName=bioconda/bwa - bioconda::bwa=0.7.18 - # renovate: datasource=conda depName=bioconda/samtools + # renovate: datasource=Conda depName=bioconda/samtools - bioconda::samtools=1.20 - # renovate: datasource=conda depName=bioconda/htslib + # renovate: datasource=Conda depName=bioconda/htslib - bioconda::htslib=1.20.0 ``` @@ -511,7 +511,7 @@ dependencies: Future modules will have these comments [added automatically and linted](https://github.com/nf-core/tools/issues/3184) by the nf-core/tools CLI. -The comments allow some scary regexes to find the conda dependencies and their versions +The comments allow some scary regexes to find the Conda dependencies and their versions in nf-core/modules, and check if there's a new version available. If there is a new version available, the Renovate bot will create a PR bumping the version, which in turn will kick off the container creation GitHub Action. @@ -541,7 +541,7 @@ There are two main areas that we need to address: ## Building config files As [described above](#pipelines), pipelines will have a set of config files automatically generated -that specify the container or conda environment for each process in the pipeline. +that specify the container or Conda environment for each process in the pipeline. Creation of these files will be triggered whenever installing, updating or removing a module, via the `nf-core` CLI. The config files will be completely regenerated each time, so there will never be any manual merging required. @@ -579,7 +579,7 @@ If you have any ideas on how to improve this, please let us know! ## Edge cases and local modules There will always be edge cases that won't fit the automation described above. -Not all software tools can be packaged on Bioconda (though we encourage it where possible!). +Not all software tools can be packaged on BioConda (though we encourage it where possible!). For example, some tools have licensing restrictions that prevent them from being distributed in this way. Other edge-cases include optional usage of container variants for GPU support, or other hardware. @@ -597,7 +597,7 @@ as long as they remain above the comment line: // AUTOGENERATED CONFIG BELOW THIS POINT - DO NOT EDIT ``` -If at all possible then software should be packaged with Bioconda and Seqera Containers. +If at all possible then software should be packaged with BioConda and Seqera Containers. Failing that, custom containers should be stored under the [nf-core account on quay.io](https://quay.io/organization/nf-core). The only time other docker registries / accounts should be used are if there are licensing issues restricting software redistribution. diff --git a/sites/main-site/src/content/blog/2024/special_interest_groups.mdx b/sites/main-site/src/content/blog/2024/special_interest_groups.mdx index fb4a9ab2de..b6d5a3b596 100644 --- a/sites/main-site/src/content/blog/2024/special_interest_groups.mdx +++ b/sites/main-site/src/content/blog/2024/special_interest_groups.mdx @@ -13,7 +13,7 @@ embedHeaderImage: false import crossFunctional from "@assets/images/blog/special_interest_groups/cross-functional-organisation.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; Today, we're very happy to announce a new nf-core initiative: _Special Interest Groups_. diff --git a/sites/main-site/src/content/blog/2024/tools-2_12.mdx b/sites/main-site/src/content/blog/2024/tools-2_12.mdx index f68e920647..5958574547 100644 --- a/sites/main-site/src/content/blog/2024/tools-2_12.mdx +++ b/sites/main-site/src/content/blog/2024/tools-2_12.mdx @@ -14,7 +14,7 @@ embedHeaderImage: false import tui from "@assets/images/blog/tools-2_12/nfcoretui.gif"; import fix_linting from "@assets/images/blog/tools-2_12/fix-linting.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; This release comes with a lot of neat little improvements and bug fixes. @@ -37,7 +37,7 @@ This release comes with a lot of neat little improvements and bug fixes. Demo gif of the TUI. - If you need an svg version or a bigger png version of an nf-core pipeline logo, you can now use the new `nf-core logo-create` subcommand to output one. -- Speaking of logos, the pipeline READMEs now use the [new(-ish) github image syntax](https://github.blog/changelog/2022-08-15-specify-theme-context-for-images-in-markdown-ga/). +- Speaking of logos, the pipeline READMEs now use the [new(-ish) GitHub image syntax](https://github.blog/changelog/2022-08-15-specify-theme-context-for-images-in-markdown-ga/). - Every pipeline now has a GitHub Action Workflow that tests a successful download with `nf-core download`. - Goodbye `-profile docker, test` errors: We check now if the `-profile` parameter is diff --git a/sites/main-site/src/content/blog/2024/tools-2_13.mdx b/sites/main-site/src/content/blog/2024/tools-2_13.mdx index ed01519ee0..e8f9f98a24 100644 --- a/sites/main-site/src/content/blog/2024/tools-2_13.mdx +++ b/sites/main-site/src/content/blog/2024/tools-2_13.mdx @@ -14,7 +14,7 @@ label: embedHeaderImage: true --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; This release contains some template changes and bug fixes. @@ -49,7 +49,7 @@ nf-core subworkflows install utils_nfvalidation_plugin :bulb: It helped to disable running the main workflow whilst wiring all of this in to speed up development. -:movie_camera: Last but not least, we have a short bytesize talk showing the necessary steps: +:movie_camera: Last but not least, we have a short Bytesize talk showing the necessary steps: @@ -57,11 +57,11 @@ nf-core subworkflows install utils_nfvalidation_plugin ## Additional bug fixes and improvements -- Have you seen a `no space left on device` error or your CI tests lately? This is now fixed by adding a clean up step in the github actions. +- Have you seen a `no space left on device` error or your CI tests lately? This is now fixed by adding a clean up step in the GitHub actions. - [New api-docs](https://nf-co.re/tools/docs/latest) on the nf-core website to get clarifications on linting errors etc. -- Updating a module won’t remove custom nextflow.config files anymore. +- Updating a module won't remove custom `nextflow.config` files anymore. - The commands `nf-core modules test` and `nf-core subworkflows test` now have a new parameter `--profile` to specify the container to run nf-test with. diff --git a/sites/main-site/src/content/blog/2024/tools-3_0_0.mdx b/sites/main-site/src/content/blog/2024/tools-3_0_0.mdx index c65c770bb6..ea0ec0f65d 100644 --- a/sites/main-site/src/content/blog/2024/tools-3_0_0.mdx +++ b/sites/main-site/src/content/blog/2024/tools-3_0_0.mdx @@ -13,7 +13,7 @@ label: maxHeadingDepth: 3 --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # What and Why? diff --git a/sites/main-site/src/content/blog/2025/advisories.mdx b/sites/main-site/src/content/blog/2025/advisories.mdx index e7c3f336cf..060332e6d7 100644 --- a/sites/main-site/src/content/blog/2025/advisories.mdx +++ b/sites/main-site/src/content/blog/2025/advisories.mdx @@ -12,8 +12,8 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; -import AdvisorySidebarHeader from "@components/advisory/AdvisorySidebarHeader.astro"; +import { Image } from "Astro:assets"; +import AdvisorySidebarHeader from "@components/advisory/AdvisorySidebarHeader.Astro";
@@ -150,7 +150,7 @@ Some examples of issues that should be communicated as advisories include: - Known regressions that occur with certain parameter combinations. - Incompatibilities between a particular pipeline version and a specific Nextflow version. - Security vulnerabilities or other issues affecting a dependency or container image. -- Problems with executors (e.g., SLURM, AWS Batch) that require special considerations. +- Problems with executors (e.g., Slurm, AWS Batch) that require special considerations. These are the kinds of problems where a clear, structured advisory can help users avoid pitfalls and stay informed, but there’s no rigid rule on when to publish one β€” if you’ve identified a problem, understand its cause, possibly even have a solid workaround or fix, that’s a great time. diff --git a/sites/main-site/src/content/blog/2025/apac-helpdesk-2025.mdx b/sites/main-site/src/content/blog/2025/apac-helpdesk-2025.mdx index a703d0e165..ad27518e74 100644 --- a/sites/main-site/src/content/blog/2025/apac-helpdesk-2025.mdx +++ b/sites/main-site/src/content/blog/2025/apac-helpdesk-2025.mdx @@ -53,7 +53,7 @@ Things that might be discussed include: - Recent sports results The help desk hours take place in [Gather](https://gather.town/), an online collaborative platform, kind of like Pokemon-meets-Zoom. -Follow our [Gather Town link](https://app.gather.town/app/b2RCFGS2cIGusuNi/nf-core-office) to join. See the [Gather Town bytesize talk](/events/2022/bytesize-37-gathertown) talk for more information about the platform. +Follow our [Gather Town link](https://app.gather.town/app/b2RCFGS2cIGusuNi/nf-core-office) to join. See the [Gather Town Bytesize talk](/events/2022/bytesize-37-gathertown) for more information about the platform. Join the [`#weekly-helpdesk`](https://nfcore.slack.com/archives/C06KSS9L8M7) for regular reminders about help desk. diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-01-31.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-01-31.mdx index e98a8f224e..187027e408 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-01-31.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-01-31.mdx @@ -12,7 +12,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-02-28.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-02-28.mdx index 4adf68bfd2..836e110773 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-02-28.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-02-28.mdx @@ -12,7 +12,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-04-24.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-04-24.mdx index 0593f0424c..b8c6ae735c 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-04-24.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-04-24.mdx @@ -16,7 +16,7 @@ import sad_maintainers_duck from "@assets/images/blog/maintainers-minutes-2024-0 import notifications from "@assets/images/blog/maintainers-minutes-2025-04-24/too-many-notifications.jpg"; import botoverlords from "@assets/images/blog/maintainers-minutes-2025-04-24/bot-overlords.jpg"; import saveapolarbear from "@assets/images/blog/maintainers-minutes-2025-04-24/save-a-polar-bear.jpg"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-05-30.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-05-30.mdx index 556f43b71a..6ab54b0a1b 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-05-30.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-05-30.mdx @@ -16,7 +16,7 @@ import sad_maintainers_duck from "@assets/images/blog/maintainers-minutes-2024-0 import notifications from "@assets/images/blog/maintainers-minutes-2025-04-24/too-many-notifications.jpg"; import botoverlords from "@assets/images/blog/maintainers-minutes-2025-04-24/bot-overlords.jpg"; import saveapolarbear from "@assets/images/blog/maintainers-minutes-2025-04-24/save-a-polar-bear.jpg"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-07-31.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-07-31.mdx index 1a56647095..282cbb2c10 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-07-31.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-07-31.mdx @@ -15,7 +15,7 @@ import Profile from "@components/GitHubProfilePictureExtended.svelte"; import datahostingmeme from "@assets/images/blog/maintainers-minutes-2025-07-31/datahosting-meme.jpg"; import uptodatedocs from "@assets/images/blog/maintainers-minutes-2025-07-31/uptodate-documentation-meme.jpg"; import dataorganisationmessmeme from "@assets/images/blog/maintainers-minutes-2025-07-31/dataorganisationmessmeme.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. @@ -31,7 +31,7 @@ As a first step in overhauling this experience we saw in the last major nf-core/ However this only acts to alleviate the symptoms of the problems in identifying suitable files, knowing where to put new files, and what is within each file. Instead we want to restructure and develop clearer specifications, documentation, and procedures for the test datasets repository. -Therefore this month's meeting was 'taken over' by the [#wg-test-dataset-task-force ](https://nfcore.slack.com/archives/C07B5FK9GKA) leads Simon Simon ([@SPPearce](https://github.com/SPPearce)) and James ([@jfy133](https://github.com/jfy133)) to start the process of redesigning the structure and documentation. +Therefore this month's meeting was 'taken over' by the [#wg-test-dataset-task-force ](https://nfcore.slack.com/archives/C07B5FK9GKA) leads Simon ([@SPPearce](https://github.com/SPPearce)) and James ([@jfy133](https://github.com/jfy133)) to start the process of redesigning the structure and documentation. ## Scope of discussions diff --git a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-08-29.mdx b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-08-29.mdx index 3d35d24742..cb11b15fb5 100644 --- a/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-08-29.mdx +++ b/sites/main-site/src/content/blog/2025/maintainers-minutes-2025-08-29.mdx @@ -12,7 +12,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; The 'Maintainers Minutes' aims to give further insight into the workings of the [nf-core maintainers team](/governance#maintainers) by providing brief summaries of the monthly team meetings. diff --git a/sites/main-site/src/content/blog/2025/modules-ontology.mdx b/sites/main-site/src/content/blog/2025/modules-ontology.mdx index 19d35c024f..924b36c04c 100644 --- a/sites/main-site/src/content/blog/2025/modules-ontology.mdx +++ b/sites/main-site/src/content/blog/2025/modules-ontology.mdx @@ -238,7 +238,7 @@ process BWA_MEM { label 'process_single' // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. - conda "${moduleDir}/environment.yml" + Conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/bwa:0.7.18--h577a1d6_2': 'biocontainers/bwa:0.7.18--h577a1d6_2' }" diff --git a/sites/main-site/src/content/blog/2025/nf-core-colab-guide.mdx b/sites/main-site/src/content/blog/2025/nf-core-colab-guide.mdx index 660a742bbf..5c1ad4e267 100644 --- a/sites/main-site/src/content/blog/2025/nf-core-colab-guide.mdx +++ b/sites/main-site/src/content/blog/2025/nf-core-colab-guide.mdx @@ -11,7 +11,7 @@ label: - "community post" --- -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; import Profile from "@components/GitHubProfilePictureExtended.svelte"; import colabmeme from "@assets/images/blog/nf-core-colab/colab-meme.jpg"; import disconnectmeme from "@assets/images/blog/nf-core-colab/colab-disconnected-meme.png"; @@ -73,12 +73,12 @@ This can lead to the stereotypical case of waking up to find your notebook timed The biggest issue that will likely affect someone developing Nextflow pipelines in Colab is the lack of root access. -Due to this lack of root access, it is not possible to run nf-core or any Nextflow pipelines using the typical `-profile docker` or `-profile singularity` container-based configuration profiles. +Due to this lack of root access, it is not possible to run nf-core or any Nextflow pipelines using the typical `-profile Docker` or `-profile Singularity` container-based configuration profiles. This is because `sudo` access is needed to install these engines. -Thankfully, we can still run pipelines with conda under `-profile conda`. +Thankfully, we can still run pipelines with Conda under `-profile conda`. -However, as Google Colab does not support native conda functionality, you need to install the [condacolab](https://pypi.org/project/condacolab/) Python package to serve as a proxy. -In our experience, this doesn't seem to perform any differently from a shell-based conda installation. +However, as Google Colab does not support native Conda functionality, you need to install the [condacolab](https://pypi.org/project/condacolab/) Python package to serve as a proxy. +In our experience, this doesn't seem to perform any differently from a shell-based Conda installation. For a step-by-step guide on setting up Conda in Colab, see the [Setting up Conda for Google Colab section of the official nf-core guide](https://nf-co.re/docs/tutorials/google_colab/nf-core-colab-guide#setting-up-conda-for-google-colab). @@ -87,7 +87,7 @@ For a step-by-step guide on setting up Conda in Colab, see the [Setting up Conda ### Why use VS Code with Colab? Once you've installed your Nextflow, conda, and nf-core pipeline of choice, you're pretty much good to go to run any pipeline you desire. -However, because of the slightly more common instability of the conda profile when running most pipelines, you're bound to have the pipeline crash at some point and will need to make a script edit somewhere to solve the issue. +However, because of the slightly more common instability of the Conda profile when running most pipelines, you're bound to have the pipeline crash at some point and will need to make a script edit somewhere to solve the issue. While you could get away with developing pipelines inside Colab's built-in terminal using editors like vim or nano, VS Code offers a more robust environment. Thankfully, the [vscode-colab](https://github.com/EssenceSentry/vscode-colab) Python library provides just the toolkit you need to take advantage of Colab's powerful hardware in the comfort of VS Code's rich software suite. @@ -126,7 +126,7 @@ For instructions on how to set up and use VS Code with Colab, see the [Running a When we explore the use of Google Colab for our own work, we encounter specific issues with some pipelines that use tools that have Matplotlib as a dependency. -If you try to run some nf-core pipelines that use such tools with the conda profile in Colab, but without changing the Matplotlib backend, you may see an error like this: +If you try to run some nf-core pipelines that use such tools with the Conda profile in Colab, but without changing the Matplotlib backend, you may see an error like this: ```text ValueError: Key backend: 'module://matplotlib_inline.backend_inline' is not a valid value for backend; supported values are ['gtk3agg', 'gtk3cairo', 'gtk4agg', 'gtk4cairo', 'macosx', 'nbagg', 'notebook', 'qtagg', 'qtcairo', 'qt5agg', 'qt5cairo', 'tkagg', 'tkcairo', 'webagg', 'wx', 'wxagg', 'wxcairo', 'agg', 'cairo', 'pdf', 'pgf', 'ps', 'svg', 'template'] @@ -168,10 +168,12 @@ Google Colab offers several types of VM instances, each with different hardware Choosing the right instance can significantly impact the performance and efficiency of your data analysis: - **Standard (CPU-only) instances:** + - Typically provide about 2 vCPUs and 13 GB RAM. - Best for lightweight workflows, small datasets, or tasks without GPU needs. - **GPU-enabled instances:** + - **Colab Pro** offers access to modern NVIDIA GPUs such as **T4** (16 GB VRAM), **L4** (24 GB VRAM), and sometimes **A100** (40 GB VRAM). - These instances usually pair with 2 to 8 vCPUs and 13 GB RAM, or more if High-RAM is enabled. - Ideal for deep learning, image analysis, or workflows that explicitly support GPU acceleration. diff --git a/sites/main-site/src/content/blog/2025/paper-v2.mdx b/sites/main-site/src/content/blog/2025/paper-v2.mdx index f56b2c72e5..2392c989e6 100644 --- a/sites/main-site/src/content/blog/2025/paper-v2.mdx +++ b/sites/main-site/src/content/blog/2025/paper-v2.mdx @@ -13,7 +13,7 @@ label: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; import paperv2 from "@assets/images/blog/paper-v2/paper-v2.png"; import paperv2fig1 from "@assets/images/blog/paper-v2/paper-v2-fig1.png"; import paperv2fig2A from "@assets/images/blog/paper-v2/paper-v2-fig2A.png"; @@ -45,7 +45,7 @@ The utility of these components is reflected by the growth of this collection, w ### Community growth nf-core has reached 2,600 GitHub contributors (including ~1200 members of the nf-core organization) and over 10,000 Slack users, illustrating the strength, engagement, and constant growth of the community. -We also report that, at the time of the publication, 124 pipelines were available (and we have more since!) and that the community is expanding beyond biological applications, with new pipelines in fields as diverse as astrophysics, earth science and economics. +We also report that, at the time of the publication, 124 pipelines were available (and we have more since!) and that the community is expanding beyond biological applications, with new pipelines in fields as diverse as Astrophysics, earth science and economics. Thanks in part to the nf-core community, we also report that Nextflow has become the most widely adopted Workflow Management System (WfMS). The bar plot below illustrates this, using citation counts as a measure for WfMS adoption. 200 proposals. -The core team will be investigating another solution to allow for better search, retrieval and tracking of all the proposals, possibly via a dedicated github repository (which can also use more automation). +The core team will be investigating another solution to allow for better search, retrieval and tracking of all the proposals, possibly via a dedicated GitHub repository (which can also use more automation). ### Tools diff --git a/sites/main-site/src/content/blog/2025/state-of-nf-core-CI.md b/sites/main-site/src/content/blog/2025/state-of-nf-core-CI.md index eebe9cf9fe..85c1f93b26 100644 --- a/sites/main-site/src/content/blog/2025/state-of-nf-core-CI.md +++ b/sites/main-site/src/content/blog/2025/state-of-nf-core-CI.md @@ -69,7 +69,7 @@ We kept running into user-permission errors, because the terraform setup came on As our manual runners become more problematic, we started to search for yet another solution. This time both [Edmund](https://github.com/edmundmiller) and me stumbled upon [runsOn](https://runs-on.com/). This service provides an AWS CloudFormation template to create a self-hosted runner in your own AWS account. So it is basically doing what we did before, but without the terraform setup and comes with really good documentation. -We switched switched the CI tests for [nf-core/modules](https://github.com/nf-core/modules/pull/7840) to this new solution a week before the March 2025 hackathon and it worked like a charm. +We switched the CI tests for [nf-core/modules](https://github.com/nf-core/modules/pull/7840) to this new solution a week before the March 2025 hackathon and it worked like a charm. It was so smooth I had to check several times that the tests are actually running on the self-hosted runners. Switching to the new solution was as simple as changing: diff --git a/sites/main-site/src/content/blog/2025/survey-results-2025.mdx b/sites/main-site/src/content/blog/2025/survey-results-2025.mdx index dd57dc0c29..1c89e3ee3e 100644 --- a/sites/main-site/src/content/blog/2025/survey-results-2025.mdx +++ b/sites/main-site/src/content/blog/2025/survey-results-2025.mdx @@ -29,7 +29,7 @@ import finedevpositive from "@assets/images/blog/survey-results-2025/nfcoresurve import finedevimprove from "@assets/images/blog/survey-results-2025/nfcoresurvey2025-finedevimprove.png"; import finedevrequest from "@assets/images/blog/survey-results-2025/nfcoresurvey2025-finedevrequest.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; ## Introduction @@ -261,7 +261,7 @@ Furthermore some user-only responders were somewhat concerned about the variable /> Most users-only responders did not feel they needed anything more and only had positive sentiments about the community. -But as with the the above - documentation and training improvements was the most important. +But as with the above - documentation and training improvements was the most important. +nf-test test tests/ --profile=+ ``` The `=+` notation is to extend the Nextflow `-profile test` option, and not overwrite it. @@ -70,7 +70,7 @@ skip_features: - "nf-test" ``` -Additionally, to ignore the linting checks for nf-test, add add the following to the `.nf-core.yml` file: +Additionally, to ignore the linting checks for nf-test, add the following to the `.nf-core.yml` file: ```yaml lint: @@ -229,9 +229,9 @@ Accept the changes. ## GitHub Actions -In the Github Action `download_pipeline.yml` we have removed the `pull_request_target` and added a step to upload the `nextflow.log` file. +In the GitHub Action `download_pipeline.yml` we have removed the `pull_request_target` and added a step to upload the `nextflow.log` file. -In all Github Actions (files inside `.github/workflows`) you will see several version updates. +In all GitHub Actions (files inside `.github/workflows`) you will see several version updates. #### Resolution diff --git a/sites/main-site/src/content/events/2023/hackathon-november-2023.mdx b/sites/main-site/src/content/events/2023/hackathon-november-2023.mdx index 25918d63a1..66764c1984 100644 --- a/sites/main-site/src/content/events/2023/hackathon-november-2023.mdx +++ b/sites/main-site/src/content/events/2023/hackathon-november-2023.mdx @@ -17,8 +17,8 @@ locations: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import HackathonGroup from "@components/event/HackathonGroup.astro"; -import { YouTube } from "@astro-community/astro-embed-youtube"; +import HackathonGroup from "@components/event/HackathonGroup.Astro"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Welcome diff --git a/sites/main-site/src/content/events/2023/hackathon-october-2023.mdx b/sites/main-site/src/content/events/2023/hackathon-october-2023.mdx index 2fd14667c6..88e5c46497 100644 --- a/sites/main-site/src/content/events/2023/hackathon-october-2023.mdx +++ b/sites/main-site/src/content/events/2023/hackathon-october-2023.mdx @@ -14,8 +14,8 @@ locations: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import HackathonGroup from "@components/event/HackathonGroup.astro"; -import { YouTube } from "@astro-community/astro-embed-youtube"; +import HackathonGroup from "@components/event/HackathonGroup.Astro"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Welcome @@ -65,7 +65,7 @@ with links that you can use to subscribe / add to your personal calendar. ## In person: Hotel SB Glow The in-person hackathon will be taking place at [Hotel SB Glow](https://goo.gl/maps/6uKCKkbciLAR5qgSA). -More information about this venue can be found the the [Nextflow Summit website](https://summit.nextflow.io/). +More information about this venue can be found the [Nextflow Summit website](https://summit.nextflow.io/). diff --git a/sites/main-site/src/content/events/2023/talk_nextflow_in_action.mdx b/sites/main-site/src/content/events/2023/talk_nextflow_in_action.mdx index 1765804f7f..6eb4be1b2b 100644 --- a/sites/main-site/src/content/events/2023/talk_nextflow_in_action.mdx +++ b/sites/main-site/src/content/events/2023/talk_nextflow_in_action.mdx @@ -13,7 +13,7 @@ locations: - https://sanger.zoom.us/j/96537565366?pwd=UWpYVVdsbTZFREZkbndaZGNkNGJrdz09 --- -import { YouTube } from "@astro-community/astro-embed-youtube"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Nextflow in Action diff --git a/sites/main-site/src/content/events/2024/hackathon-barcelona.mdx b/sites/main-site/src/content/events/2024/hackathon-barcelona.mdx index 23e8dbcbba..65b25908fa 100644 --- a/sites/main-site/src/content/events/2024/hackathon-barcelona.mdx +++ b/sites/main-site/src/content/events/2024/hackathon-barcelona.mdx @@ -13,12 +13,12 @@ locations: geoCoordinates: [41.371298, 2.181658] --- -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; import summitCard from "@assets/images/events/2024/hackathon-barcelona/summit-2024-barcelona.png"; import ontLogo from "@assets/images/events/2024/hackathon-barcelona/ont-logo.svg"; import ontLogoDarkbg from "@assets/images/events/2024/hackathon-barcelona/ont-logo-darkbg.svg"; import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import HackathonGroup from "@components/event/HackathonGroup.astro"; +import HackathonGroup from "@components/event/HackathonGroup.Astro"; # Welcome diff --git a/sites/main-site/src/content/events/2024/hackathon-boston.mdx b/sites/main-site/src/content/events/2024/hackathon-boston.mdx index 8722cfc983..7d69211e03 100644 --- a/sites/main-site/src/content/events/2024/hackathon-boston.mdx +++ b/sites/main-site/src/content/events/2024/hackathon-boston.mdx @@ -14,8 +14,8 @@ locations: --- import Profile from "@components/GitHubProfilePictureExtended.svelte"; -import HackathonGroup from "@components/event/HackathonGroup.astro"; -import { YouTube } from "@astro-community/astro-embed-youtube"; +import HackathonGroup from "@components/event/HackathonGroup.Astro"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Welcome @@ -202,7 +202,7 @@ To help you find like-minded people or possible things to work on, we will have - Stripped down/customisable nf-core pipeline template - New nf-core website features (if you have some expierence with modern JavaScript or want to learn) - Improve the devOps for nf-core (GitHub actions, CI/CD, etc.) - - Add Bioconda ARM support + - Add BioConda ARM support diff --git a/sites/main-site/src/content/events/2024/hackathon-march-2024/index.mdx b/sites/main-site/src/content/events/2024/hackathon-march-2024/index.mdx index 80d9084681..d2f9cdc9c4 100644 --- a/sites/main-site/src/content/events/2024/hackathon-march-2024/index.mdx +++ b/sites/main-site/src/content/events/2024/hackathon-march-2024/index.mdx @@ -15,9 +15,9 @@ announcement: end: 2024-03-14T00:00:00+01:00 --- -import HackathonGroup from "@components/event/HackathonGroup.astro"; -import EventMap from "@components/event/EventMap.astro"; -import { YouTube } from "@astro-community/astro-embed-youtube"; +import HackathonGroup from "@components/event/HackathonGroup.Astro"; +import EventMap from "@components/event/EventMap.Astro"; +import { YouTube } from "@Astro-community/Astro-embed-youtube"; # Welcome @@ -54,7 +54,7 @@ Registration is closed for this event. ## Online: Gather The hackathon is being held in a virtual venue on the platform Gather. -If you have never used Gather before we have [a bytesize video](https://nf-co.re/events/2022/bytesize-37-gathertown) from the March 2022 hackathon that will help you to get started. +If you have never used Gather before we have [a Bytesize video](https://nf-co.re/events/2022/bytesize-37-gathertown) from the March 2022 hackathon that will help you to get started. To join, you will need to follow these steps: @@ -406,7 +406,7 @@ The hackathon is a great opportunity to work on any nf-core related work that yo - Stripped down/customisable nf-core pipeline template - New nf-core website features (if you have some expierence with modern JavaScript or want to learn) - Improve the devOps for nf-core (GitHub actions, CI/CD, etc.) - - Add Bioconda ARM support + - Add BioConda ARM support diff --git a/sites/main-site/src/content/events/2025/hackathon-barcelona.mdx b/sites/main-site/src/content/events/2025/hackathon-barcelona.mdx index c4db4413c2..e264d632a7 100644 --- a/sites/main-site/src/content/events/2025/hackathon-barcelona.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-barcelona.mdx @@ -14,9 +14,9 @@ locations: hackathonProjectListModals: hackathon-october-2025 --- -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; import summitCard from "@assets/images/events/2025/hackathon-barcelona/summit-2025-barcelona.jpg"; -import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.astro"; +import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.Astro"; # Welcome diff --git a/sites/main-site/src/content/events/2025/hackathon-boston.mdx b/sites/main-site/src/content/events/2025/hackathon-boston.mdx index 5819861f9b..85b6f3fe2e 100644 --- a/sites/main-site/src/content/events/2025/hackathon-boston.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-boston.mdx @@ -14,9 +14,9 @@ locations: hackathonProjectListModals: hackathon-boston-2025 --- -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; import summitCard from "@assets/images/events/2025/hackathon-boston/summit-2025-boston.jpg"; -import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.astro"; +import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.Astro"; # Welcome diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/ardigen.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/ardigen.mdx index d3ffccd110..9c04f92123 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/ardigen.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/ardigen.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [50.02169897114842, 19.888670603662863] country: Poland city: KrakΓ³w -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Ardigen **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/biocommons_sydney.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/biocommons_sydney.mdx index 8e41b1c042..611302ddac 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/biocommons_sydney.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/biocommons_sydney.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-33.89157869817327, 151.1877276699427] country: Australia city: Sydney -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Australian BioCommons / University of Sydney **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/bsrc-alexander-fleming.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/bsrc-alexander-fleming.mdx index 5d793908b8..82aeb9b9bd 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/bsrc-alexander-fleming.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/bsrc-alexander-fleming.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [37.82465383894673, 23.793974641188694] country: Greece city: Athens -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside BSRC Alexander Fleming **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/ceitec-mu.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/ceitec-mu.mdx index 044140d218..926d86b1a4 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/ceitec-mu.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/ceitec-mu.mdx @@ -18,7 +18,7 @@ locations: geoCoordinates: [49.17763845732099, 16.57071755515133] country: Czech Republic city: Brno -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside CEITEC MU **cannot** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/certh.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/certh.mdx index 2cd25d0bb2..a4a9bfa968 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/certh.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/certh.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [40.56707, 22.99822] country: Greece city: Thessaloniki -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside CERTH, **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/corteva-perimatrix-hyderabad.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/corteva-perimatrix-hyderabad.mdx index f11dd2b97f..811daad9e5 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/corteva-perimatrix-hyderabad.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/corteva-perimatrix-hyderabad.mdx @@ -17,7 +17,7 @@ locations: geoCoordinates: [17.4354298, 78.3802152] country: India city: Hyderabad -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Local event to be held at Corteva Agriscience, Hyderabad, India. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/crg.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/crg.mdx index 22629ca7fd..197a9c7eca 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/crg.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/crg.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [41.385532, 2.193823] country: Spain city: Barcelona -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- ## Contact diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/dkfz-and-ghga.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/dkfz-and-ghga.mdx index 7a641c5cb9..eb95499930 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/dkfz-and-ghga.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/dkfz-and-ghga.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [49.41926099905141, 8.675902326327275] country: Germany city: Heidelberg -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside The German Cancer Research Center and GHGA **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/french-national-research-institute-for-sustainable-development-dro.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/french-national-research-institute-for-sustainable-development-dro.mdx index da0a8e7898..bce6ee250e 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/french-national-research-institute-for-sustainable-development-dro.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/french-national-research-institute-for-sustainable-development-dro.mdx @@ -18,7 +18,7 @@ locations: geoCoordinates: [43.6461860867936, 3.8690873559661494] country: France city: Montpellier -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- # Contacts diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/garrahan-argentina.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/garrahan-argentina.mdx index 9cf2716b45..d55a86d96b 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/garrahan-argentina.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/garrahan-argentina.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-34.630706, -58.39162] country: Argentina city: Buenos Aires -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Garrahan Paediatric Hospital **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/ghent-university.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/ghent-university.mdx index 992f14c855..3c034ca7bc 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/ghent-university.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/ghent-university.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [51.025974, 3.728623] country: Belgium city: Ghent -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Ghent University **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/hartwig-medical-foundation.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/hartwig-medical-foundation.mdx index 75d7360929..6f9c114d0d 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/hartwig-medical-foundation.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/hartwig-medical-foundation.mdx @@ -16,7 +16,7 @@ locations: country: Netherlands city: Amsterdam -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Hartwig Medical Foundation **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/harvard-chan-school.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/harvard-chan-school.mdx index aecc874f27..47e28800ae 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/harvard-chan-school.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/harvard-chan-school.mdx @@ -14,7 +14,7 @@ locations: geoCoordinates: [42.34502162481195, -71.10233070281164] country: USA city: Boston -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Harvard Chan School and Broad Institute are **absolutely welcome** to attend. Please don't hesitate to send us an email in case there are any doubts. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/index.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/index.mdx index 4efd7e8846..dbd23b43bd 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/index.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/index.mdx @@ -18,9 +18,9 @@ announcement: end: 2025-03-23T00:00:00+01:00 --- -import EventMap from "@components/event/EventMap.astro"; -import EventLocationsTable from "@components/event/EventLocationsTable.astro"; -import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.astro"; +import EventMap from "@components/event/EventMap.Astro"; +import EventLocationsTable from "@components/event/EventLocationsTable.Astro"; +import HackathonModalProjectList from "@components/event/HackathonProjects/ListProjects.Astro"; import LocalDateTime from "@components/event/LocalDateTime.svelte"; # Welcome diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/institut-of-genetics-development-of-rennes.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/institut-of-genetics-development-of-rennes.mdx index 53820cc1d4..05989c1777 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/institut-of-genetics-development-of-rennes.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/institut-of-genetics-development-of-rennes.mdx @@ -18,7 +18,7 @@ locations: geoCoordinates: [48.11770399359654, -1.697578778661792] country: France city: Rennes -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Institut of Genetics & Development of Rennes **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/isciii-madrid-spain.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/isciii-madrid-spain.mdx index dbee3aba3e..321bc9b9cb 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/isciii-madrid-spain.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/isciii-madrid-spain.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [40.4592778, -3.86475] country: Spain city: Madrid -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- # Contacts diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/james-hutton-institute.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/james-hutton-institute.mdx index 03ff568912..baf70c1e82 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/james-hutton-institute.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/james-hutton-institute.mdx @@ -14,7 +14,7 @@ locations: geoCoordinates: [56.457404383182634, -3.070138891914946] country: United Kingdom city: Dundee -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the James Hutton Institute **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/kath-ghana.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/kath-ghana.mdx index f0bdc7d7e8..d2d70be392 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/kath-ghana.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/kath-ghana.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [5.634208, 0.183332] country: Ghana city: Kumasi -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside KATH **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/kemri-wellcome_kenya.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/kemri-wellcome_kenya.mdx index 18d7b65f5e..34050c0d3a 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/kemri-wellcome_kenya.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/kemri-wellcome_kenya.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-3.6291514875100717, 39.85664224149505] country: Kenya city: Kilifi -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Kemri-wellcome Trust Program **can** attend online. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/kinderspital-zurich.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/kinderspital-zurich.mdx index 5ada6bdf70..6ad6c45567 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/kinderspital-zurich.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/kinderspital-zurich.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [47.35169845, 8.571247550166733] country: Switzerland city: ZΓΌrich -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Kinderspital ZΓΌrich **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/medellin-colombia.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/medellin-colombia.mdx index b03f599ee8..52a8dd441e 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/medellin-colombia.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/medellin-colombia.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [6.199637152951043, -75.5792127804167] country: Colombia city: MedellΓ­n -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside MedellΓ­n, Colombia **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/memorial-sloan-kettering-cancer-center-new-york.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/memorial-sloan-kettering-cancer-center-new-york.mdx index d52bb178b6..92c5574094 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/memorial-sloan-kettering-cancer-center-new-york.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/memorial-sloan-kettering-cancer-center-new-york.mdx @@ -15,7 +15,7 @@ locations: geoCoordinates: [40.761322, -73.961876] country: USA city: New York -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside MSKCC **cannot** to attend. @@ -50,12 +50,12 @@ We'll have talks from: - Simran Chhabria, from the Morris Lab. - Eric Buelher and Anne Marie Noronha, from the Berger Lab. -Ranging topics about fundamentals, best practices, nextflow vs others, nf-core institutional configs, pipeline and hackathon ideas. +Ranging topics about fundamentals, best practices, Nextflow vs others, nf-core institutional configs, pipeline and hackathon ideas. - πŸ• **When:** Thursday, March 20th, 1-3pm - πŸ“ **Where:** Macklowe Building. Conf Room LL09. 321 E 61st, New York, NY. - πŸ’¬ **Slack:** join the MSK channel: [`#nf-core-hackathon-march-2025`](https://join.slack.com/share/enQtODU5MTE0NzQ2NjIzMS1jMjc4Y2E2MmMzZDA5NDllNjNiOGQxN2Y2ZGI1OGRiYWY0MDcyMGIwNzUxMmY5ZjJmODdkMjM0ODkwZGVkZTli) -- πŸ“š **Learning Resources:** nextflow [training](https://training.nextflow.io), nf-core [docs](https://nf-co.re/docs). +- πŸ“š **Learning Resources:** Nextflow [training](https://training.nextflow.io), nf-core [docs](https://nf-co.re/docs). ## Food diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/montreal-mcgill.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/montreal-mcgill.mdx index 5c18fab42e..8729ad907b 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/montreal-mcgill.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/montreal-mcgill.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [45.502250, -73.575490] country: Canada city: Montreal -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- # Contacts diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/national-university-of-sciences-and-technology-nust.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/national-university-of-sciences-and-technology-nust.mdx index 18284c0bbb..8ff4d821d9 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/national-university-of-sciences-and-technology-nust.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/national-university-of-sciences-and-technology-nust.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [33.64628330291216, 72.9974552257028] country: Pakistan city: Islamabad -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside National University of Sciences and Technology (NUST) **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/netvalue.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/netvalue.mdx index db2010cd4e..0c52ca6000 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/netvalue.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/netvalue.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-37.781084, 175.275340] country: New Zealand city: Hamilton -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside NetValue **can** attend. @@ -38,7 +38,7 @@ Please contact Jennifer or Dan (phone 0278996756) to arrange access. Parking may | -------------------- | --------- | ---------------------------- | | Monday March 24th | 0900 NZDT | Welcome and setup | | Monday March 24th | 1000 NZDT | Introduction video | -| Monday March 24th | 1200 NZDT | Lunch (provided by Sequera) | +| Monday March 24th | 1200 NZDT | Lunch (provided by Seqera) | | Monday March 24th | 1700 NZDT | Daily Wrap-up | | Tuesday March 25th | 0900 NZDT | Begin | | Tuesday March 25th | 1200 NZDT | Lunch (provided by NetValue) | diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/nexsis-addis-ethiopia.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/nexsis-addis-ethiopia.mdx index 0d94905c47..98f0ecbf68 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/nexsis-addis-ethiopia.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/nexsis-addis-ethiopia.mdx @@ -14,7 +14,7 @@ locations: geoCoordinates: [9.0145679, 38.7497422] country: Ethiopia city: Addis Ababa -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Nexsis **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/qbic-uni-of-tuebingen.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/qbic-uni-of-tuebingen.mdx index 38fbc176e0..91a34dee80 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/qbic-uni-of-tuebingen.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/qbic-uni-of-tuebingen.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [48.535614819632826, 9.03694412524198] country: Germany city: TΓΌbingen -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the University of Tuebingen **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/robert-koch-institute.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/robert-koch-institute.mdx index f81aca020e..741998607b 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/robert-koch-institute.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/robert-koch-institute.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [52.54357, 13.33978] country: Germany city: Berlin -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Local event to be held at RKI, Berlin. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/rsg-turkiye.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/rsg-turkiye.mdx index 66a160dc32..b5b98c10e5 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/rsg-turkiye.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/rsg-turkiye.mdx @@ -17,7 +17,7 @@ locations: geoCoordinates: [41.08562666498707, 28.980463168822656] country: Turkey city: Istanbul -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the RSG Turkiye organization **are welcome** to attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/san-francisco-bay-area.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/san-francisco-bay-area.mdx index 13941e455d..96d85f59e3 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/san-francisco-bay-area.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/san-francisco-bay-area.mdx @@ -20,7 +20,7 @@ locations: geoCoordinates: [37.7905035, -122.3990296] country: USA city: San Francisco -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- # Contacts diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/scil-sherbrooke.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/scil-sherbrooke.mdx index 072737a4a9..05667b8e5c 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/scil-sherbrooke.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/scil-sherbrooke.mdx @@ -17,7 +17,7 @@ locations: geoCoordinates: [45.379917, -71.925806] country: Canada city: Sherbrooke -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the SCIL and UniversitΓ© de Sherbrooke **are welcome**. However, due to diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/seqera.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/seqera.mdx index 4e61531f77..f66dafac79 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/seqera.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/seqera.mdx @@ -14,7 +14,7 @@ locations: geoCoordinates: [41.403236, 2.200127] country: Spain city: Barcelona -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Seqera **cannot** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/stellenbosch-university-cape-town.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/stellenbosch-university-cape-town.mdx index d90b91f925..cbfd4517f4 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/stellenbosch-university-cape-town.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/stellenbosch-university-cape-town.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-33.90808872523492, 18.61369371414185] country: South Africa city: Cape Town -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Stellenbosch University are **absolutely welcome** to attend. Please don't hesitate to send us an email in case there are any doubts. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/tumlmu-munich.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/tumlmu-munich.mdx index cd785bbb64..d5c46fac38 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/tumlmu-munich.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/tumlmu-munich.mdx @@ -15,7 +15,7 @@ locations: geoCoordinates: [48.14726295469762, 11.576043705758766] country: Germany city: Munich -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside TUM/LMU Munich **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-college-london.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-college-london.mdx index 3f9acf1a68..a771b7d2c8 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-college-london.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-college-london.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [51.537380655501195, -0.011572112473847292] country: United Kingdom city: London -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside University College London **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-miami.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-miami.mdx index cb33d7b902..6ce9f801ec 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-miami.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-miami.mdx @@ -19,7 +19,7 @@ locations: geoCoordinates: [25.802638522067184, -80.2019789] country: USA city: Miami -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the University of Miami **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-pavia.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-pavia.mdx index e118cab9b8..15a7fdc784 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-pavia.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-pavia.mdx @@ -17,7 +17,7 @@ locations: geoCoordinates: [45.20385533724341, 9.137140340909294] country: Italy city: Pavia -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside the University of Pavia **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-rio-grande-do-norte.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-rio-grande-do-norte.mdx index 32a4dcdfeb..90ad2c5ca2 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-rio-grande-do-norte.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-rio-grande-do-norte.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-5.833417964857247, -35.204760341800046] country: Brazil city: Natal -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Brain Institute, Federal University of Rio Grande do Norte **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-salerno.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-salerno.mdx index 5c107a4d4f..63a3e6427d 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-salerno.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/university-of-salerno.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [40.775173140983995, 14.789198866446759] country: Italy city: Salerno -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- ### Details diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/uppsala-university.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/uppsala-university.mdx index 92ad28d74e..747b930919 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/uppsala-university.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/uppsala-university.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [59.84198876540755, 17.63702031149601] country: Sweden city: Uppsala -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Uppsala University **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/ut-dallas.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/ut-dallas.mdx index e6080a2f4d..c31efdc05f 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/ut-dallas.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/ut-dallas.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [32.99167064162149, -96.74956973198854] country: USA city: Dallas -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside UT Dallas **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/utfpr_brazil.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/utfpr_brazil.mdx index 11f5602809..e119935710 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/utfpr_brazil.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/utfpr_brazil.mdx @@ -18,7 +18,7 @@ locations: country: Brazil city: Guarapuava -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Cilla Tech Park **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/wellcome-genome-campus.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/wellcome-genome-campus.mdx index f47616e8a7..8f1cd8ca73 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/wellcome-genome-campus.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/wellcome-genome-campus.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [52.079047, 0.187607] country: United Kingdom city: Cambridge -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside Wellcome Genome Campus **can** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_argentina.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_argentina.mdx index 53a6989ffd..65bed82664 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_argentina.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_argentina.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [-34.546647, -58.4578691] country: Argentina city: Buenos Aires -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside ZS Associates **can't** attend. diff --git a/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_cph.mdx b/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_cph.mdx index bd4a90cfe8..7b4127242b 100644 --- a/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_cph.mdx +++ b/sites/main-site/src/content/events/2025/hackathon-march-2025/zs_cph.mdx @@ -16,7 +16,7 @@ locations: geoCoordinates: [55.780384, 12.488322] country: Denmark city: Copenhagen -layout: "@layouts/events/HackathonMarch2025.astro" +layout: "@layouts/events/HackathonMarch2025.Astro" --- Attendees from outside ZS **can** and are **much welcomed** to attend. diff --git a/sites/main-site/src/content/special-interest-groups/meta-omics/index.mdx b/sites/main-site/src/content/special-interest-groups/meta-omics/index.mdx index 9ce1188b71..825bdd4918 100644 --- a/sites/main-site/src/content/special-interest-groups/meta-omics/index.mdx +++ b/sites/main-site/src/content/special-interest-groups/meta-omics/index.mdx @@ -22,7 +22,7 @@ pipelines: --- import metro_omics_metro from "@assets/images/special-interest-groups/meta-omics/nf-core-meta-omics-metro.png"; -import { Image } from "astro:assets"; +import { Image } from "Astro:assets"; # Introduction diff --git a/sites/main-site/src/pages/weekly_helpdesk.mdx b/sites/main-site/src/pages/weekly_helpdesk.mdx index 3ac74116d9..eaa42642b6 100644 --- a/sites/main-site/src/pages/weekly_helpdesk.mdx +++ b/sites/main-site/src/pages/weekly_helpdesk.mdx @@ -1,5 +1,5 @@ --- -layout: "@layouts/MarkdownTocLayout.astro" +layout: "@layouts/MarkdownTocLayout.Astro" title: Weekly Helpdesks subtitle: Join us to get help with your nf-core pipelines md_github_url: https://github.com/nf-core/website/blob/main/sites/main-site/src/pages/weekly_helpdesk.mdx @@ -42,6 +42,6 @@ Things that might be discussed include: The Helpdesk hours will take place in [Gather](https://gather.town/), an online collaborate platform, kind of like Pokemon-meets-Zoom. You can join by following the Gather Town link [here](https://nf-co.re/join#gather-town). -For more information, see the [Gather Town bytesize talk](/events/2022/bytesize-37-gathertown). +For more information, see the [Gather Town Bytesize talk](/events/2022/bytesize-37-gathertown). Please join the [#weekly-helpdesk](https://nfcore.slack.com/channels/weekly-helpdesk) channel on the nf-core Slack to get reminders when sessions are about to start.