Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/nf-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ runs:
using: "composite"
steps:
- name: Setup Nextflow
uses: nf-core/setup-nextflow@b4ec1bc7c16a94435159de94a05253542fddf6ef # v3
uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3
with:
version: "${{ env.NXF_VERSION }}"

- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.14"

Expand All @@ -37,7 +37,7 @@ runs:

- name: Setup apptainer
if: contains(inputs.profile, 'singularity')
uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2
uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2.0.0

- name: Set up Singularity
if: contains(inputs.profile, 'singularity')
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/clean-up.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10
- uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11
with:
stale-issue-message: "This issue has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment otherwise this issue will be closed in 20 days."
stale-pr-message: "This PR has been tagged as awaiting-changes or awaiting-feedback by an nf-core contributor. Remove stale label or add a comment if it is still useful."
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/download_pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ jobs:
needs: configure
steps:
- name: Check out pipeline code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Nextflow
uses: nf-core/setup-nextflow@b4ec1bc7c16a94435159de94a05253542fddf6ef # v3
uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3

- name: Disk space cleanup
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.14"
architecture: "x64"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/fix_linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
# Use the @nf-core-bot token to check out so we can push later
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
token: ${{ secrets.nf_core_bot_auth_token }}

Expand All @@ -32,12 +32,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }}

- name: Install Nextflow
uses: nf-core/setup-nextflow@b4ec1bc7c16a94435159de94a05253542fddf6ef # v3
uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3

# Install and run prek
- name: Run prek
id: prek
uses: j178/prek-action@6ad80277337ad479fe43bd70701c3f7f8aa74db3 # v2
uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2
continue-on-error: true

# indication that the linting has finished
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,30 @@ jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Nextflow
uses: nf-core/setup-nextflow@b4ec1bc7c16a94435159de94a05253542fddf6ef # v3
uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3

- name: Run prek
uses: j178/prek-action@6ad80277337ad479fe43bd70701c3f7f8aa74db3 # v2
uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2

nf-core:
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Install Nextflow
uses: nf-core/setup-nextflow@b4ec1bc7c16a94435159de94a05253542fddf6ef # v3
uses: nf-core/setup-nextflow@893c28b667aedeba26e37f296d260ccc5bc4d914 # v3

- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.14"
architecture: "x64"

- name: Setup uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0

- name: read .nf-core.yml
uses: pietrobolcato/action-read-yaml@9f13718d61111b69f30ab4ac683e67a56d254e1d # 1.1.0
Expand All @@ -46,7 +46,7 @@ jobs:
run: uv tool install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }}

- name: Run nf-core pipelines lint
if: ${{ github.base_ref != 'master' || github.base_ref != 'main' }}
if: ${{ github.base_ref != 'master' && github.base_ref != 'main' }}
env:
GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nf-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
rm -rf ./* || true
rm -rf ./.??* || true
ls -la ./
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0

Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
TOTAL_SHARDS: ${{ needs.nf-test-changes.outputs.total_shards }}

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-announcements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
id: get_description
run: |
echo "description=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .description')" >> $GITHUB_OUTPUT
- uses: rzr/fediverse-action@563159eb8d45f70ab6aaba36ed55cd037e51f441 # master
- uses: rzr/fediverse-action@66c2cbb5b1997666b0e28d597631b6a4f09a2719 # v0.0.6
with:
access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
host: "mstdn.science" # custom host if not "mastodon.social" (default)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/template-version-comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ github.event.pull_request.head.sha }}

Expand Down
44 changes: 44 additions & 0 deletions .hooks/block_pipeline_outdir.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# This hook is used to block commits if they include staged files inside a directory
# which also contains a subdirectory called `pipeline_info`. The purpose of this is to
# prevent users from inadvertently committing output from pipeline test runs inside the
# development directory.

set -e

status=0
seen_dirs=""

while IFS= read -r file; do
# The offending output bundle's root is the ancestor directory that has
# `pipeline_info` as an immediate child, so callers can restore it in one go.
if [[ "$file" == pipeline_info/* ]]; then
top_dir="pipeline_info"
elif [[ "$file" == */pipeline_info/* ]]; then
top_dir="${file%%/pipeline_info/*}"
else
top_dir=""
dir=$(dirname "$file")
while [[ "$dir" != "." && "$dir" != "/" ]]; do
if [[ -d "$dir/pipeline_info" ]]; then
top_dir="$dir"
break
fi
dir=$(dirname "$dir")
done
fi

if [[ -n "$top_dir" ]]; then
echo "❌ Commit blocked: Please do not commit output from pipeline test runs to the pipeline code itself: $file"
status=1
case "$seen_dirs" in
*"|$top_dir|"*) ;;
*)
echo "Run 'git restore --staged $top_dir' to remove the whole output folder from the staging area."
seen_dirs="$seen_dirs|$top_dir|"
;;
esac
fi
done < <(git diff --cached --name-only)

exit "$status"
2 changes: 1 addition & 1 deletion .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ lint:
- docs/images/nf-core-spatialvi_logo_dark.png
- .github/workflows/branch.yml
- .github/workflows/linting.yml
nf_core_version: 4.0.2
nf_core_version: 4.1.0
repository_type: pipeline
template:
author: Erik Fasterius, Christophe Avenel, Sergii Domanskyi, Jeffrey Chuang, Anuj Srivastava
Expand Down
19 changes: 18 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ repos:
hooks:
- id: prettier
additional_dependencies:
- prettier@3.8.3
- prettier@3.9.6
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
Expand All @@ -25,9 +25,26 @@ repos:
subworkflows/(?!local/).*|
.*\.snap$
)$
- id: check-added-large-files
args: [--maxkb=5000]
exclude: |
(?x)^(
.*ro-crate-metadata.json$|
.*\.snap$|
lib/nfcore_external_java_deps.jar$|
docs/.*\.(svg|pdf)$|
assets/.*$
)$
- id: check-merge-conflict
- repo: https://github.com/seqeralabs/nf-lint-pre-commit
rev: v0.3.0
hooks:
- id: nextflow-lint
files: '\.nf$|nextflow\.config$'
args: ["-output", "json"]
- repo: local
hooks:
- id: block-pipeline-outdir
name: Prevent committing output from pipeline test runs to the pipeline code itself
entry: ./.hooks/block_pipeline_outdir.sh
language: script
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## v1.0dev - [unreleased<!-- TODO nf-core: replace with date on release -->]

Initial release of nf-core/spatialvi, created with the
[nf-core](https://nf-co.re/) template. This marks the point at which the
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)

[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)
[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)
[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.1.0-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.1.0)
[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)
[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)
[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)
Expand Down
3 changes: 3 additions & 0 deletions conf/base.config
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ process {
withLabel:process_long {
time = { 20.h * task.attempt }
}
withLabel:process_low_memory {
memory = { 1.GB * task.attempt }
}
withLabel:process_high_memory {
memory = { 200.GB * task.attempt }
}
Expand Down
4 changes: 2 additions & 2 deletions conf/containers_conda_lock_files_amd64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'modules/nf-core/fastqc/.conda-lock/linux_amd64-bd-5cb1a2fa2f18c7c2_1.txt' } }
process { withName: 'MULTIQC' { container = 'modules/nf-core/multiqc/.conda-lock/linux_amd64-bd-db7c73dae76bc9e6_1.txt' } }
process { withName: 'FASTQC' { conda = 'modules/nf-core/fastqc/.conda-lock/linux_amd64-bd-5cb1a2fa2f18c7c2_1.txt' } }
process { withName: 'MULTIQC' { conda = 'modules/nf-core/multiqc/.conda-lock/linux_amd64-bd-c17fb751507e9dfc_1.txt' } }
4 changes: 2 additions & 2 deletions conf/containers_conda_lock_files_arm64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'modules/nf-core/fastqc/.conda-lock/linux_arm64-bd-e455e32f745abe68_1.txt' } }
process { withName: 'MULTIQC' { container = 'modules/nf-core/multiqc/.conda-lock/linux_arm64-bd-d167b8012595a136_1.txt' } }
process { withName: 'FASTQC' { conda = 'modules/nf-core/fastqc/.conda-lock/linux_arm64-bd-e455e32f745abe68_1.txt' } }
process { withName: 'MULTIQC' { conda = 'modules/nf-core/multiqc/.conda-lock/linux_arm64-bd-5c84a5000a226ab5_1.txt' } }
2 changes: 1 addition & 1 deletion conf/containers_docker_amd64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'community.wave.seqera.io/library/fastqc:0.12.1--5cb1a2fa2f18c7c2' } }
process { withName: 'MULTIQC' { container = 'community.wave.seqera.io/library/multiqc:1.34--db7c73dae76bc9e6' } }
process { withName: 'MULTIQC' { container = 'community.wave.seqera.io/library/multiqc:1.35--c17fb751507e9dfc' } }
2 changes: 1 addition & 1 deletion conf/containers_docker_arm64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'community.wave.seqera.io/library/fastqc:0.12.1--e455e32f745abe68' } }
process { withName: 'MULTIQC' { container = 'community.wave.seqera.io/library/multiqc:1.34--d167b8012595a136' } }
process { withName: 'MULTIQC' { container = 'community.wave.seqera.io/library/multiqc:1.35--5c84a5000a226ab5' } }
2 changes: 1 addition & 1 deletion conf/containers_singularity_https_amd64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/f2/f20b021476d1d87658820f971ebecc1e8cdbde0f338eb0d9cea2b0a8fc54a54b/data' } }
process { withName: 'MULTIQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/1b/1bef8af6be88c5733461959c46ac8ef73d18f65277f62a1695d0e1633054f9c2/data' } }
process { withName: 'MULTIQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/c8/c8e346f4f6080eadf1253505e6ff09ef004454fc18e8d672006fd7b222cc412e/data' } }
2 changes: 1 addition & 1 deletion conf/containers_singularity_https_arm64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/46/46daf2dad0169afd2ae047c3e50ed3776259f664bf07e5e06b045dc23449e994/data' } }
process { withName: 'MULTIQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/9a/9a1fec9662a152683e6fcae440d0ce20920b3b89dc62d1e3a52e73f92eba0969/data' } }
process { withName: 'MULTIQC' { container = 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/e4/e48aa28aebc881254a499b24c3e1ce77b8df1b85a5432699ed6f72eb17ac7fb5/data' } }
2 changes: 1 addition & 1 deletion conf/containers_singularity_oras_amd64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'oras://community.wave.seqera.io/library/fastqc:0.12.1--5c4bd442468d75dd' } }
process { withName: 'MULTIQC' { container = 'oras://community.wave.seqera.io/library/multiqc:1.34--4fc8657c816047c0' } }
process { withName: 'MULTIQC' { container = 'oras://community.wave.seqera.io/library/multiqc:1.35--c680f2aea25ccec2' } }
2 changes: 1 addition & 1 deletion conf/containers_singularity_oras_arm64.config
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
process { withName: 'FASTQC' { container = 'oras://community.wave.seqera.io/library/fastqc:0.12.1--127a87fc06499035' } }
process { withName: 'MULTIQC' { container = 'oras://community.wave.seqera.io/library/multiqc:1.34--7fbd82d945c06726' } }
process { withName: 'MULTIQC' { container = 'oras://community.wave.seqera.io/library/multiqc:1.35--c0468833d65b2f81' } }
60 changes: 26 additions & 34 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -75,23 +75,19 @@ process {
ext.args = { "--metadata subtitle:'Sample: ${meta.id}'" }
container = 'community.wave.seqera.io/library/harmonypy_scanorama_gcc_gxx_pruned:95f731fde0b9ddef'
publishDir = [
[
path: { "${params.outdir}/${meta.id}/reports" },
mode: params.publish_dir_mode,
pattern: "*{.html,.qmd,_extensions}"
],
[
path: { "${params.outdir}/${meta.id}/reports" },
mode: params.publish_dir_mode,
pattern: "params.yml",
saveAs: { "${notebook.baseName}.yml" }
],
[
path: { "${params.outdir}/${meta.id}/plots" },
mode: params.publish_dir_mode,
pattern: "artifacts/*.png",
saveAs: { filename -> filename.split('/')[1] }
]
path: { "${params.outdir}/${meta.id}" },
mode: params.publish_dir_mode,
saveAs: { filename ->
if (filename ==~ /.*\.(html|qmd)$/ || filename.endsWith('_extensions')) {
"reports/${filename}"
} else if (filename == 'params.yml') {
"reports/${notebook.baseName}.yml"
} else if (filename.startsWith('artifacts/') && filename.endsWith('.png')) {
"plots/${filename.split('/')[1]}"
} else {
null
}
}
]
}

Expand Down Expand Up @@ -124,23 +120,19 @@ process {
ext.prefix = { "${notebook.baseName}" }
container = 'community.wave.seqera.io/library/harmonypy_scanorama_gcc_gxx_pruned:95f731fde0b9ddef'
publishDir = [
[
path: { "${params.outdir}/integration/reports"},
mode: params.publish_dir_mode,
pattern: "*{.html,.qmd,_extensions}"
],
[
path: { "${params.outdir}/integration/reports" },
mode: params.publish_dir_mode,
pattern: "params.yml",
saveAs: { "${notebook.baseName}.yml" }
],
[
path: { "${params.outdir}/integration/plots" },
mode: params.publish_dir_mode,
pattern: "artifacts/*.png",
saveAs: { filename -> filename.split('/')[1] }
]
path: { "${params.outdir}/integration" },
mode: params.publish_dir_mode,
saveAs: { filename ->
if (filename ==~ /.*\.(html|qmd)$/ || filename.endsWith('_extensions')) {
"reports/${filename}"
} else if (filename == 'params.yml') {
"reports/${notebook.baseName}.yml"
} else if (filename.startsWith('artifacts/') && filename.endsWith('.png')) {
"plots/${filename.split('/')[1]}"
} else {
null
}
}
]
}

Expand Down
Loading
Loading