Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0 release #404

Merged
merged 168 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from 164 commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
4c27011
bump version to v2.8dev
grst Aug 15, 2024
3aaf168
update changelog
grst Aug 15, 2024
783510f
Merge pull request #362 from nf-core/bump-version
grst Aug 15, 2024
52fa9ca
comment out for development
Aug 19, 2024
bbf299c
refact modules for STAR aligner
Aug 19, 2024
c3eb5ea
directly pass txp2gene
Aug 19, 2024
4771ed1
simplify module lines
Aug 19, 2024
af85f87
emit h5ad on starsolo
Aug 19, 2024
d2a5386
add versions emition
Aug 19, 2024
0e55051
update module to use templates and cleanup way of priting versions
Aug 19, 2024
994d5a5
fix h5ad generator script
Aug 20, 2024
b317165
simplify check
Aug 20, 2024
72e9d50
Fix h5ad structure
Aug 21, 2024
8829080
updated concat module
Aug 30, 2024
9fc75b4
workflow misses emptydrops and seurat & mtx conversion modules
Aug 30, 2024
dc69f47
start emptydrops cellbender subworkflow
Sep 12, 2024
9c20420
fix paths
Sep 13, 2024
6831195
started the anndatar standardization module
Sep 13, 2024
237d1ca
concat h5ad with anndatar h5ad
Sep 13, 2024
f5fb4a2
update tag information
Sep 13, 2024
752666b
update tags
Sep 13, 2024
d0ad7f6
module is only to convert to rds
Sep 13, 2024
20ac4ae
update directives
Sep 13, 2024
da5b036
update comments
Sep 13, 2024
b90f388
add cellbender to workflow
Sep 13, 2024
7c304cc
start organisation of files
Sep 13, 2024
012f608
update doc related to alevin-fry, simpleaf and salmon
an-altosian Sep 16, 2024
c02a054
update simpleaf reference
an-altosian Sep 16, 2024
f2c1a24
change aligner name back to alevin
an-altosian Sep 16, 2024
77f91f7
change aligner name back to alevin
an-altosian Sep 16, 2024
973508b
make prettier happy
an-altosian Sep 16, 2024
3e2412d
Merge pull request #368 from an-altosian/dev
DongzeHE Sep 24, 2024
8320431
fix file naming
Sep 26, 2024
1c95e85
resolve emptydrops naming
Sep 26, 2024
e6fff34
also convert emptydrops filter matrices
Sep 26, 2024
e9c88e8
move files to BKP since they will be replaced
Sep 26, 2024
f7f5fa5
add conversion for alevin
Sep 26, 2024
73c91c2
re-organise star modules
Sep 26, 2024
417bf69
fixed publishDir directives
Sep 27, 2024
94bf9c1
add h5ad conversion module
Sep 30, 2024
43a29c2
integrate to mtx_conversion module
Sep 30, 2024
7fc32f0
reorganize module levels and fix docker image
Sep 30, 2024
e366396
reorganize star modules
Sep 30, 2024
76f126e
re-structure and include cellranger
Oct 4, 2024
b92af8b
add alevin to new structure
Oct 4, 2024
c57b09f
add star to new structure
Oct 4, 2024
d0d1f81
Add kallisto standard workflow to structure
Oct 4, 2024
aa99cd1
Account for non-standard kallisto workflows
Oct 4, 2024
0ca1161
Simplify alevin template
Oct 4, 2024
28251b0
reorganise star template
Oct 7, 2024
c785b97
Template update for nf-core/tools version 3.0.0
nf-core-bot Oct 8, 2024
3958cc2
Template update for nf-core/tools version 3.0.1
nf-core-bot Oct 9, 2024
d88d669
Template update for nf-core/tools version 3.0.2
nf-core-bot Oct 11, 2024
81ba001
Fix #380
esrice Oct 11, 2024
017e0d3
Fix same error as last commit, but for alevin
esrice Oct 11, 2024
623e02d
Merge branch 'dev' into nf-core-template-merge-3.0.2
nictru Oct 17, 2024
6f9dc79
Update fastqc and multiqc
nictru Oct 17, 2024
2ed44fe
Remove check_max usages
nictru Oct 17, 2024
ecba92d
Remove old resource limits from tests
nictru Oct 17, 2024
42c5aa3
Set global resource limits
nictru Oct 17, 2024
a6ed155
Align test resource limits with previous implementation
nictru Oct 17, 2024
4a71603
Remove problematic workflow snapshotting
nictru Oct 18, 2024
44c9360
Merge pull request #381 from nf-core/nf-core-template-merge-3.0.2
nictru Oct 18, 2024
9d13a7e
Fix potential filename conflict
esrice Oct 28, 2024
eaa74dd
Merge pull request #382 from esrice/fix-star-gzip-error
grst Oct 28, 2024
0098906
feat(cellranger count and multi): Add create-bam option to cellranger…
kopichris Oct 29, 2024
c749bf2
chore: Update changelog
kopichris Oct 29, 2024
c1e8357
write uncompressed
fmalmeida Oct 30, 2024
ae85710
use .astype(str)
fmalmeida Oct 30, 2024
ae8809a
simplify iteration
fmalmeida Oct 30, 2024
68464de
perform join left operation
fmalmeida Oct 30, 2024
fdedc4d
do not compress output h5ad
fmalmeida Oct 30, 2024
187dbf6
perform join left operation
fmalmeida Oct 30, 2024
98af608
not compress h5ad output
fmalmeida Oct 30, 2024
efd6299
simplify iteration
fmalmeida Oct 30, 2024
f357fd7
simplify index iteration
fmalmeida Oct 30, 2024
bd1a74c
fix unmatched parenthesis
fmalmeida Oct 30, 2024
4731e00
fix use of igenomes ... pipeline was not properly selecting igenomes …
fmalmeida Oct 30, 2024
a71348f
correct values parsing
fmalmeida Oct 30, 2024
d2f9cfd
fix container registry
fmalmeida Oct 30, 2024
5c31226
do not save versions files
fmalmeida Oct 30, 2024
8278429
also convert concat h5ads
fmalmeida Oct 30, 2024
2b199d0
manage subdirectory in publishDir
fmalmeida Oct 30, 2024
cb67797
match template scripts with new publishDir
fmalmeida Oct 30, 2024
7230095
have outputs separated
fmalmeida Oct 30, 2024
206a7c1
make parsing inside sub-workflow
fmalmeida Oct 30, 2024
c4a09e0
added kallisto to correct structure
fmalmeida Oct 30, 2024
971667b
correct mix of channels
fmalmeida Oct 30, 2024
8122113
correct for cellranger multi
fmalmeida Oct 30, 2024
44d1cb7
correct stub
fmalmeida Oct 30, 2024
18cfdd7
remove glob in txp2gene
fmalmeida Oct 30, 2024
079bb7e
added small comment to local modules
fmalmeida Oct 30, 2024
36eeee3
feat: Create single boolean parameter allowing users to control how a…
kopichris Nov 1, 2024
128b183
Add pre-built cellranger, cellranger-arc simpleaf
FelixKrueger Nov 2, 2024
dd566c9
Added pre-build iundex support to Changelog
FelixKrueger Nov 2, 2024
952a24c
better comment
FelixKrueger Nov 2, 2024
d2478c1
make cellranger arc index conditional
FelixKrueger Nov 4, 2024
2a89724
Merge remote-tracking branch 'upstream/dev' into feature/create-bam-p…
kopichris Nov 5, 2024
613a4c5
cleaner cellranger index declaration
FelixKrueger Nov 5, 2024
8c43909
removed trailing whitespace
FelixKrueger Nov 5, 2024
d68c883
fixed space
FelixKrueger Nov 5, 2024
b5b061e
Merge pull request #390 from nf-core/use_indices
grst Nov 6, 2024
bf1a9df
Remove check_max function in cellranger_count block
kopichris Nov 6, 2024
2cfe0df
chore: remove string from time property in cellranger count module
kopichris Nov 8, 2024
a0bf7ab
split mtx to h5ad conversion and general conversion, so h5ad is gener…
fmalmeida Nov 15, 2024
1a18dc8
[automated] Fix code linting
nf-core-bot Nov 18, 2024
750e644
Merge branch 'dev' into feature/create-bam-parameter
grst Nov 18, 2024
2d0015e
Merge pull request #387 from kopichris/feature/create-bam-parameter
grst Nov 22, 2024
2fd1d41
fix star index channel generation
Nov 25, 2024
b615e01
fixed tuple size
fmalmeida Nov 25, 2024
ae74481
Update kallisto script
grst Nov 25, 2024
bf78578
update alevin nf-test and snaps
fmalmeida Nov 25, 2024
e8e5094
Merge branch 'standardize-conversion-workflow' of https://github.com/…
fmalmeida Nov 25, 2024
8f3f187
added singlecellobject export
fmalmeida Nov 25, 2024
fae2099
include singlecellexperiment object in nf-test and update namings
fmalmeida Nov 25, 2024
9d8577b
avoind assessing params from modules
fmalmeida Nov 25, 2024
705df81
add snippet to make values unique
Nov 25, 2024
e1a8844
Merge branch 'standardize-conversion-workflow' of https://github.com/…
Nov 25, 2024
804d5cd
fix star channel parsing
fmalmeida Nov 25, 2024
916ddb6
Merge branch 'standardize-conversion-workflow' of https://github.com/…
fmalmeida Nov 25, 2024
41731ac
simplified kallisto so non-standardo workflow have spliced and unspli…
Nov 25, 2024
4a03b7f
Merge branch 'standardize-conversion-workflow' of https://github.com/…
Nov 25, 2024
298c491
update star nf-test, snaps and file namings
fmalmeida Nov 25, 2024
c4eda69
Merge branch 'standardize-conversion-workflow' of https://github.com/…
fmalmeida Nov 25, 2024
208c11b
fix channel size
Nov 26, 2024
f120824
Fix kallisto mtx script
grst Nov 26, 2024
8e88384
add a little comment line
Nov 26, 2024
a15a28b
updated cellranger nf-test sizes, namings and snaps
fmalmeida Nov 26, 2024
245ae5b
Update kallisto script (again)
grst Nov 26, 2024
bee74f6
update kallisto nf-test size, namings and snaps
fmalmeida Nov 26, 2024
dfb439a
adding versions.yml output for modules CONCAT_H5AD, MTX_TO_H5AD and A…
fmalmeida Nov 26, 2024
eed41c0
correct ifelse order for file renames
fmalmeida Nov 26, 2024
c001a0f
Merge branch 'dev' of https://github.com/nf-core/scrnaseq into standa…
Nov 28, 2024
b245be2
re-add missing star_align ext.args
Nov 28, 2024
80e7850
correct the parsing of getGenomeAttribute as a nextflow variable, sin…
Nov 28, 2024
395a3e8
current version of star is incompatible with the star index available…
Nov 28, 2024
6ddcf15
add checkIfExists: true to file loading calls
Nov 28, 2024
72c2242
remove old conversion scripts
Nov 28, 2024
dd41a8b
update changelog
Nov 29, 2024
9c6d405
add TODO
Nov 29, 2024
f07cac6
update emptydrops documentation
Nov 29, 2024
d12f64d
update cellranger snaps
fmalmeida Nov 29, 2024
595be8b
Merge branch 'standardize-conversion-workflow' of https://github.com/…
fmalmeida Nov 29, 2024
a6f47f5
update kallisto snaps
fmalmeida Nov 29, 2024
a2c1a11
update alevin snaps
fmalmeida Nov 29, 2024
d106e6e
Update modules/local/templates/barcodes.py
fmalmeida Nov 29, 2024
b84770e
fix anndatar to nf-core container
fmalmeida Nov 29, 2024
a2fc476
add resources control to cellrangermulti testing profile
fmalmeida Nov 29, 2024
d194bfa
add metadata
fmalmeida Nov 29, 2024
e9836fd
allow regex to also find cellrangermulti results
fmalmeida Nov 29, 2024
3e3608c
update cellranger multi nf-test snaps
fmalmeida Nov 29, 2024
2830093
update star nf-test snaps
fmalmeida Nov 29, 2024
fae53a2
prettier fix
fmalmeida Nov 29, 2024
84a83c2
avoid fetching star index from iGenomes due version incompatibility
Nov 29, 2024
b498ddc
add .var_names_make_unique() to star code which was missing
Dec 2, 2024
d3d8a6f
Merge pull request #369 from nf-core/standardize-conversion-workflow
grst Dec 2, 2024
ba38a9c
update changelog
Dec 3, 2024
0a48157
remove all universc things
Dec 3, 2024
8a98f31
update images
fmalmeida Dec 3, 2024
5aa3068
use correct java version in ci
fmalmeida Dec 4, 2024
c336812
Merge pull request #396 from nf-core/289-update-or-remove-universc
grst Dec 9, 2024
6878b6b
bump version and update changelog
grst Dec 9, 2024
eaca45a
enable custom pipeline config
grst Dec 9, 2024
1a84433
Merge pull request #403 from nf-core/bump-version
grst Dec 9, 2024
ffe4ae2
Improved statement regarding 10X container(s)
apeltzer Dec 9, 2024
5209fe4
Merge pull request #405 from nf-core/licence-readme
apeltzer Dec 9, 2024
e00f98c
include nac conversion workflow
Dec 10, 2024
68d2811
Merge pull request #406 from nf-core/fix-kallisto-nac-in-v300
fmalmeida Dec 10, 2024
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
12 changes: 6 additions & 6 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ If you'd like to write some code for nf-core/scrnaseq, the standard workflow is
1. Check that there isn't already an issue about your idea in the [nf-core/scrnaseq issues](https://github.com/nf-core/scrnaseq/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this
2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/scrnaseq repository](https://github.com/nf-core/scrnaseq) to your GitHub account
3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions)
4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10).
4. Use `nf-core pipelines schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10).
5. Submit a Pull Request against the `dev` branch and wait for the code to be reviewed and merged

If you're not used to this workflow with git, you can start with some [docs from GitHub](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests) or even their [excellent `git` resources](https://try.github.io/).
Expand All @@ -40,7 +40,7 @@ There are typically two types of tests that run:
### Lint tests

`nf-core` has a [set of guidelines](https://nf-co.re/developers/guidelines) which all pipelines must adhere to.
To enforce these and ensure that all pipelines stay in sync, we have developed a helper tool which runs checks on the pipeline code. This is in the [nf-core/tools repository](https://github.com/nf-core/tools) and once installed can be run locally with the `nf-core lint <pipeline-directory>` command.
To enforce these and ensure that all pipelines stay in sync, we have developed a helper tool which runs checks on the pipeline code. This is in the [nf-core/tools repository](https://github.com/nf-core/tools) and once installed can be run locally with the `nf-core pipelines lint <pipeline-directory>` command.

If any failures or warnings are encountered, please follow the listed URL for more documentation.

Expand Down Expand Up @@ -75,7 +75,7 @@ If you wish to contribute a new step, please use the following coding standards:
2. Write the process block (see below).
3. Define the output channel if needed (see below).
4. Add any new parameters to `nextflow.config` with a default (see below).
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core schema build` tool).
5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core pipelines schema build` tool).
6. Add sanity checks and validation for all relevant parameters.
7. Perform local tests to validate that the new code works as expected.
8. If applicable, add a new test command in `.github/workflow/ci.yml`.
Expand All @@ -86,11 +86,11 @@ If you wish to contribute a new step, please use the following coding standards:

Parameters should be initialised / defined with default values in `nextflow.config` under the `params` scope.

Once there, use `nf-core schema build` to add to `nextflow_schema.json`.
Once there, use `nf-core pipelines schema build` to add to `nextflow_schema.json`.

### Default processes resource requirements

Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/master/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels.
Sensible defaults for process resource requirements (CPUs / memory / time) for a process should be defined in `conf/base.config`. These should generally be specified generic with `withLabel:` selectors so they can be shared across multiple processes/steps of the pipeline. A nf-core standard set of labels that should be followed where possible can be seen in the [nf-core pipeline template](https://github.com/nf-core/tools/blob/main/nf_core/pipeline-template/conf/base.config), which has the default process as a single core-process, and then different levels of multi-core configurations for increasingly large memory requirements defined with standardised labels.

The process resources can be passed on to the tool dynamically within the process with the `${task.cpus}` and `${task.memory}` variables in the `script:` block.

Expand All @@ -103,7 +103,7 @@ Please use the following naming schemes, to make it easy to understand what is g

### Nextflow version bumping

If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core bump-version --nextflow . [min-nf-version]`
If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core pipelines bump-version --nextflow . [min-nf-version]`

### Images and figures

Expand Down
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/scrn
- [ ] If you've fixed a bug or added code that should be tested, add tests!
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/scrnaseq/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/scrnaseq _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] Make sure your code lints (`nf-core lint`).
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir <OUTDIR>`).
- [ ] Usage Documentation in `docs/usage.md` is updated.
Expand Down
27 changes: 22 additions & 5 deletions .github/workflows/awsfulltest.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,38 @@
name: nf-core AWS full size tests
# This workflow is triggered on published releases.
# This workflow is triggered on PRs opened against the master branch.
# It can be additionally triggered manually with GitHub actions workflow dispatch button.
# It runs the -profile 'test_full' on AWS batch

on:
release:
types: [published]
pull_request:
branches:
- master
workflow_dispatch:
pull_request_review:
types: [submitted]

jobs:
run-platform:
name: Run AWS full tests
if: github.repository == 'nf-core/scrnaseq'
# run only if the PR is approved by at least 2 reviewers and against the master branch or manually triggered
if: github.repository == 'nf-core/scrnaseq' && github.event.review.state == 'approved' && github.event.pull_request.base.ref == 'master' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
strategy:
matrix:
aligner: ["alevin", "kallisto", "star", "cellranger", "universc"]
aligner: ["alevin", "kallisto", "star", "cellranger"]
steps:
- uses: octokit/[email protected]
id: check_approvals
with:
route: GET /repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- id: test_variables
if: github.event_name != 'workflow_dispatch'
run: |
JSON_RESPONSE='${{ steps.check_approvals.outputs.data }}'
CURRENT_APPROVALS_COUNT=$(echo $JSON_RESPONSE | jq -c '[.[] | select(.state | contains("APPROVED")) ] | length')
test $CURRENT_APPROVALS_COUNT -ge 2 || exit 1 # At least 2 approvals are required
- name: Launch workflow via Seqera Platform
uses: seqeralabs/action-tower-launch@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/awstest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
aligner: ["alevin", "kallisto", "star", "cellranger", "universc"]
aligner: ["alevin", "kallisto", "star", "cellranger"]
steps:
# Launch workflow using Seqera Platform CLI tool action
- name: Launch workflow via Seqera Platform
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ env:
NFT_WORKDIR: "~"
NFT_DIFF: "pdiff"
NFT_DIFF_ARGS: "--line-numbers --expand-tabs=2"
NXF_SINGULARITY_CACHEDIR: ${{ github.workspace }}/.singularity
NXF_SINGULARITY_LIBRARYDIR: ${{ github.workspace }}/.singularity

concurrency:
group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}"
Expand All @@ -34,7 +36,7 @@ jobs:
fail-fast: false
matrix:
NXF_VER:
- "23.04.0"
- "24.04.2"
- "latest-everything"
profile: ["alevin", "cellranger", "cellrangermulti", "kallisto", "star"]

Expand All @@ -50,6 +52,11 @@ jobs:
python-version: "3.11"
architecture: "x64"

- uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4
with:
distribution: "temurin"
java-version: "17"

- name: Install pdiff to see diff between nf-test snapshots
run: |
python -m pip install --upgrade pip
Expand Down
53 changes: 43 additions & 10 deletions .github/workflows/download_pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test successful pipeline download with 'nf-core download'
name: Test successful pipeline download with 'nf-core pipelines download'

# Run the workflow when:
# - dispatched manually
Expand All @@ -8,7 +8,7 @@ on:
workflow_dispatch:
inputs:
testbranch:
description: "The specific branch you wish to utilize for the test execution of nf-core download."
description: "The specific branch you wish to utilize for the test execution of nf-core pipelines download."
required: true
default: "dev"
pull_request:
Expand Down Expand Up @@ -42,9 +42,11 @@ jobs:
with:
python-version: "3.12"
architecture: "x64"
- uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7

- name: Setup Apptainer
uses: eWaterCycle/setup-apptainer@4bb22c52d4f63406c49e94c804632975787312b3 # v2.0.0
with:
singularity-version: 3.8.3
apptainer-version: 1.3.4

- name: Install dependencies
run: |
Expand All @@ -57,33 +59,64 @@ jobs:
echo "REPOTITLE_LOWERCASE=$(basename ${GITHUB_REPOSITORY,,})" >> ${GITHUB_ENV}
echo "REPO_BRANCH=${{ github.event.inputs.testbranch || 'dev' }}" >> ${GITHUB_ENV}

- name: Make a cache directory for the container images
run: |
mkdir -p ./singularity_container_images

- name: Download the pipeline
env:
NXF_SINGULARITY_CACHEDIR: ./
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
run: |
nf-core download ${{ env.REPO_LOWERCASE }} \
nf-core pipelines download ${{ env.REPO_LOWERCASE }} \
--revision ${{ env.REPO_BRANCH }} \
--outdir ./${{ env.REPOTITLE_LOWERCASE }} \
--compress "none" \
--container-system 'singularity' \
--container-library "quay.io" -l "docker.io" -l "ghcr.io" \
--container-library "quay.io" -l "docker.io" -l "community.wave.seqera.io" \
--container-cache-utilisation 'amend' \
--download-configuration
--download-configuration 'yes'

- name: Inspect download
run: tree ./${{ env.REPOTITLE_LOWERCASE }}

- name: Count the downloaded number of container images
id: count_initial
run: |
image_count=$(ls -1 ./singularity_container_images | wc -l | xargs)
echo "Initial container image count: $image_count"
echo "IMAGE_COUNT_INITIAL=$image_count" >> ${GITHUB_ENV}

- name: Run the downloaded pipeline (stub)
id: stub_run_pipeline
continue-on-error: true
env:
NXF_SINGULARITY_CACHEDIR: ./
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
NXF_SINGULARITY_HOME_MOUNT: true
run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results
- name: Run the downloaded pipeline (stub run not supported)
id: run_pipeline
if: ${{ job.steps.stub_run_pipeline.status == failure() }}
env:
NXF_SINGULARITY_CACHEDIR: ./
NXF_SINGULARITY_CACHEDIR: ./singularity_container_images
NXF_SINGULARITY_HOME_MOUNT: true
run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results

- name: Count the downloaded number of container images
id: count_afterwards
run: |
image_count=$(ls -1 ./singularity_container_images | wc -l | xargs)
echo "Post-pipeline run container image count: $image_count"
echo "IMAGE_COUNT_AFTER=$image_count" >> ${GITHUB_ENV}

- name: Compare container image counts
run: |
if [ "${{ env.IMAGE_COUNT_INITIAL }}" -ne "${{ env.IMAGE_COUNT_AFTER }}" ]; then
initial_count=${{ env.IMAGE_COUNT_INITIAL }}
final_count=${{ env.IMAGE_COUNT_AFTER }}
difference=$((final_count - initial_count))
echo "$difference additional container images were \n downloaded at runtime . The pipeline has no support for offline runs!"
tree ./singularity_container_images
exit 1
else
echo "The pipeline can be downloaded successfully!"
fi
23 changes: 19 additions & 4 deletions .github/workflows/linting.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: nf-core linting
# This workflow is triggered on pushes and PRs to the repository.
# It runs the `nf-core lint` and markdown lint tests to ensure
# It runs the `nf-core pipelines lint` and markdown lint tests to ensure
# that the code meets the nf-core guidelines.
on:
push:
Expand Down Expand Up @@ -41,17 +41,32 @@ jobs:
python-version: "3.12"
architecture: "x64"

- name: read .nf-core.yml
uses: pietrobolcato/[email protected]
id: read_yml
with:
config: ${{ github.workspace }}/.nf-core.yml

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install nf-core
pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }}

- name: Run nf-core pipelines lint
if: ${{ github.base_ref != 'master' }}
env:
GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }}
run: nf-core -l lint_log.txt pipelines lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md

- name: Run nf-core lint
- name: Run nf-core pipelines lint --release
if: ${{ github.base_ref == 'master' }}
env:
GITHUB_COMMENTS_URL: ${{ github.event.pull_request.comments_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_COMMIT: ${{ github.event.pull_request.head.sha }}
run: nf-core -l lint_log.txt lint --dir ${GITHUB_WORKSPACE} --markdown lint_results.md
run: nf-core -l lint_log.txt pipelines lint --release --dir ${GITHUB_WORKSPACE} --markdown lint_results.md

- name: Save PR number
if: ${{ always() }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linting_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download lint results
uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3
uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6
with:
workflow: linting.yml
workflow_conclusion: completed
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 @@ -12,7 +12,7 @@ jobs:
- name: get topics and convert to hashtags
id: get_topics
run: |
echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT
echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" | sed 's/-//g' >> $GITHUB_OUTPUT

- uses: rzr/fediverse-action@master
with:
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/template_version_comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: nf-core template version comment
# This workflow is triggered on PRs to check if the pipeline template version matches the latest nf-core version.
# It posts a comment to the PR, even if it comes from a fork.

on: pull_request_target

jobs:
template_version:
runs-on: ubuntu-latest
steps:
- name: Check out pipeline code
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Read template version from .nf-core.yml
uses: nichmor/[email protected]
id: read_yml
with:
config: ${{ github.workspace }}/.nf-core.yml

- name: Install nf-core
run: |
python -m pip install --upgrade pip
pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }}

- name: Check nf-core outdated
id: nf_core_outdated
run: echo "OUTPUT=$(pip list --outdated | grep nf-core)" >> ${GITHUB_ENV}

- name: Post nf-core template version comment
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
if: |
contains(env.OUTPUT, 'nf-core')
with:
repo-token: ${{ secrets.NF_CORE_BOT_AUTH_TOKEN }}
allow-repeats: false
message: |
> [!WARNING]
> Newer version of the nf-core template is available.
>
> Your pipeline is using an old version of the nf-core template: ${{ steps.read_yml.outputs['nf_core_version'] }}.
> Please update your pipeline to the latest version.
>
> For more documentation on how to update your pipeline, please see the [nf-core documentation](https://github.com/nf-core/tools?tab=readme-ov-file#sync-a-pipeline-with-the-template) and [Synchronisation documentation](https://nf-co.re/docs/contributing/sync).
#
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ results/
testing/
testing*
*.pyc
null/
log/
reports/
testme.sh
Expand Down
7 changes: 2 additions & 5 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,14 @@ tasks:
command: |
pre-commit install --install-hooks
nextflow self-update
- name: unset JAVA_TOOL_OPTIONS
command: |
unset JAVA_TOOL_OPTIONS

vscode:
extensions: # based on nf-core.nf-core-extensionpack
- esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code
#- esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code
- EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files
- Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar
- mechatroner.rainbow-csv # Highlight columns in csv files in different colors
# - nextflow.nextflow # Nextflow syntax highlighting
- nextflow.nextflow # Nextflow syntax highlighting
- oderwat.indent-rainbow # Highlight indentation level
- streetsidesoftware.code-spell-checker # Spelling checker for source code
- charliermarsh.ruff # Code linter Ruff
Loading
Loading