Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
638 commits
Select commit Hold shift + click to select a range
17bbc74
.bai files in the same folder as bam files
agrima2010 Nov 18, 2025
ce94600
update snapshots
maxulysse Nov 19, 2025
b9c09ed
update modules
maxulysse Nov 19, 2025
8e76c46
update snapshots once again
maxulysse Nov 19, 2025
f38e893
patch fastqscreen/fastqscreen
maxulysse Nov 19, 2025
de6821f
Merge pull request #128 from agrima2010/picard_tools_dev
maxulysse Nov 19, 2025
37706c4
Merge branch 'dev' into bwa_index
maxulysse Nov 19, 2025
c28635a
Update CHANGELOG.md
maxulysse Nov 19, 2025
205c2e3
solve merge conflicts
maxulysse Nov 19, 2025
9214a5b
Template update for nf-core/tools version 3.5.1
nf-core-bot Nov 20, 2025
f281848
removed hasta config and corrected nextflow_schema.json
agrima2010 Nov 20, 2025
6edf19f
nextflow_schema.json
agrima2010 Nov 20, 2025
aff9444
nextflow.config
agrima2010 Nov 20, 2025
d9373dd
removed channel output of BAM from seqinspector.nf
agrima2010 Nov 20, 2025
2bc95ba
bwa_index added to nextflow.config
agrima2010 Nov 20, 2025
1fc87a8
Update nextflow_schema.json
agrima2010 Nov 20, 2025
71287cd
Merge pull request #132 from agrima2010/bwa_index
agrima2010 Nov 20, 2025
f3b0108
Merge branch 'dev' into nf-core-template-merge-3.5.1
maxulysse Nov 20, 2025
3a77ea6
fix multiqc modules install
maxulysse Nov 20, 2025
a45f606
Merge pull request #144 from nf-core/nf-core-template-merge-3.5.1
maxulysse Nov 20, 2025
de0cdb8
Merge branch 'dev' into run-dirs
matrulda Nov 24, 2025
b85608c
Update rundirparser test and add nextflow config for it
matrulda Nov 24, 2025
6e961e8
Fix #94. Remove outdated TODOs
KarNair Nov 24, 2025
a3ad873
Add #94 to Changelog
KarNair Nov 24, 2025
ab40404
Add #94 to Changelog
KarNair Nov 24, 2025
abf53dc
Update README.md
FranBonath Nov 24, 2025
31e3a83
Merge branch 'dev' into dev_docs
FranBonath Nov 24, 2025
fbba2d4
Merge pull request #145 from KarNair/validate-test-data
KarNair Nov 24, 2025
8f71810
Merge pull request #111 from Patricie34/dev_docs
FranBonath Nov 24, 2025
8c09da2
add tubemap and logo to intro page
FranBonath Nov 24, 2025
2a460f4
fix merge conflicts
FranBonath Nov 24, 2025
317cfd4
update tubemap and some updates to README
FranBonath Nov 24, 2025
7996d9e
update tubmap again
FranBonath Nov 24, 2025
930f0f2
add SeqFu Stats to README.md
FranBonath Nov 24, 2025
2aad60b
Install picard_collecthsmetrics.
Nov 24, 2025
bbd7eed
Install picard_createsequencedictionary.
Nov 24, 2025
4acac74
Add test samplesheet and test config.
Nov 24, 2025
38b2fae
Change modules.json to include installed modules.
Nov 24, 2025
71f1fe7
Set up input parameters.
Nov 24, 2025
62cc3ce
Add picard_collecthsmetrics to workflow.
Nov 24, 2025
df6ebc1
Make SAMTOOLS_INDEX required if bwamem2_mem is run.
Nov 24, 2025
72291c3
Rundirparser: Add tar support, remove dummy script, update format of …
matrulda Nov 24, 2025
f422cd8
Remove skip condition for samtools_index when calling picard_collectm…
Nov 24, 2025
f91167b
Have tools list in README in Table
FranBonath Nov 24, 2025
0894a2b
lint errors
ramprasadn Nov 24, 2025
4c4214b
add darkmode options in README, add darkmode tubemap
FranBonath Nov 24, 2025
06e66ac
lint warnings
ramprasadn Nov 24, 2025
226c89f
Add qc_bam subworkflow to run picard_collecthsmetrics.
Nov 24, 2025
069ee40
Add subworkflow qc_bam.
Nov 24, 2025
98ab4a3
Add subworkflow QC_BAM.
Nov 24, 2025
2083cfc
Add logic to skip collecthsmetrics by default through addin "run_pica…
Nov 24, 2025
66f0c38
Modified seqinspector.nf and added subworkflow
agrima2010 Nov 24, 2025
8a68c93
Add TMP_DIR argument to picard_collecthsmetrics.
Nov 25, 2025
3693ca5
update README and usage.md
FranBonath Nov 25, 2025
48eec4e
Create subworkflow directory. Change channels created from params to …
Nov 25, 2025
75b2f5e
Add curly braket.
Nov 25, 2025
f014036
Add second sample to samplesheet.
Nov 25, 2025
bc3320f
Fix ch_ref_dict.
Nov 25, 2025
5381e4e
Remove outdated qc_bam.nf.
Nov 25, 2025
7473297
Update README.md
FranBonath Nov 25, 2025
b478b36
Update README.md
FranBonath Nov 25, 2025
95582a0
[automated] Fix code linting
nf-core-bot Nov 25, 2025
34baa10
Change if order in qc_bam.
Nov 25, 2025
4637abb
Merge pull request #148 from FranBonath/dev
FranBonath Nov 25, 2025
9f1305e
update output.md
FranBonath Nov 25, 2025
0743b58
Added subworkflow prepare_genome
agrima2010 Nov 25, 2025
edf9076
Move creation of ch_hsmetrics_in to qc_bam.
Nov 25, 2025
1326cec
Merge branch 'nf-core:dev' into output_changes
FranBonath Nov 25, 2025
bf11922
Add qc_bam test!
Nov 25, 2025
f8158fd
Remove test config and samplesheet.
Nov 25, 2025
73efbf7
Minor changes
agrima2010 Nov 25, 2025
0e3f63f
Snapshots
agrima2010 Nov 25, 2025
f876645
Add defaults for collecthsmetrics in modules.config.
Nov 25, 2025
15142b8
Fix so output files are only accessed if QC_BAM is run.
Nov 25, 2025
49e1095
ss
agrima2010 Nov 25, 2025
452ca7b
fix precommit
agrima2010 Nov 25, 2025
aed9052
Merge branch 'dev' into collethsmetrics
eliottBo Nov 25, 2025
14f626c
Add rundirparser as skip option
matrulda Nov 25, 2025
c7444af
Adapt tests for rundirparser (only NovaSeq6000 test data have the req…
matrulda Nov 25, 2025
0009fb6
Add information about run_picard_collecthsmetrics flag to usage.md
eliottBo Nov 25, 2025
3e62620
Changed parameter bwa_index to bwamem2 and changed channel names
agrima2010 Nov 25, 2025
b4ef71c
Update README.md
Nov 25, 2025
dfbc994
Update CITATIONS.md.
Nov 25, 2025
40cd40a
Add PR link to CHANGELOG.md
eliottBo Nov 25, 2025
c4eca8c
Merge branch 'collethsmetrics' of https://github.com/eliottBo/seqinsp…
eliottBo Nov 25, 2025
f413842
Update output.md.
Nov 25, 2025
14ed134
WIP: Updating module test for rundirparser
matrulda Nov 25, 2025
cc77efa
Remove cg_test profile.
Nov 25, 2025
d0a960a
Add output file description for CollectHsMetrics in output.md
eliottBo Nov 25, 2025
ae00279
update tools table in README
FranBonath Nov 25, 2025
2583e5e
Fix title in Picard CollectHSmetrics in output.md
eliottBo Nov 25, 2025
c35a1d9
Add File description for collecthsmetrics in output.md
eliottBo Nov 25, 2025
35626f4
Merge branch 'collethsmetrics' of https://github.com/eliottBo/seqinsp…
eliottBo Nov 25, 2025
ddafe8b
Merge branch 'dev' into changes_usage.md
KarNair Nov 25, 2025
ee4afdb
Merge pull request #150 from ramprasadn/pipeline-lint
ramprasadn Nov 25, 2025
0b3af15
Update README.md
FranBonath Nov 25, 2025
76038b5
[automated] Fix code linting
nf-core-bot Nov 25, 2025
985ddcb
Added params in root main.nf and snapshots
agrima2010 Nov 25, 2025
646ddef
Merge branch 'dev' into subworkflows
agrima2010 Nov 25, 2025
4376756
Merge pull request #153 from FranBonath/changes_usage.md
KarNair Nov 25, 2025
505fa03
Move picard_collectmultiplemetrics to QC_BAM.
Nov 25, 2025
e40b3f0
Merge branch 'dev' into collethsmetrics
beatrizsavinhas Nov 25, 2025
bfa3cd3
Update README.md
beatrizsavinhas Nov 25, 2025
509087f
Fix output channels.
Nov 25, 2025
92ad8a7
Updated CHANGE LOG
agrima2010 Nov 25, 2025
3de0c5f
Merge branch 'dev' into change-qc-bam
beatrizsavinhas Nov 25, 2025
061ec28
Merge branch 'subworkflows' of https://github.com/agrima2010/seqinspe…
agrima2010 Nov 25, 2025
712495d
Merge pull request #151 from agrima2010/subworkflows
agrima2010 Nov 25, 2025
5746497
Fix linting issues.
Nov 25, 2025
e8e43bd
Update CHANGELOG.md
beatrizsavinhas Nov 25, 2025
e74488f
Merge branch 'dev' into collecthsmetrics
beatrizsavinhas Nov 25, 2025
19768f7
Update seqinspector.nf
Nov 25, 2025
42a8ff5
Fix linting erros.
Nov 25, 2025
bc0edf9
Fix test snap generation.
Nov 25, 2025
5444402
Fix linting issues.
Nov 26, 2025
a4f2666
Run prettier and remove trailing whitespace.
Nov 26, 2025
b0bb6ae
Fix end of files.
Nov 26, 2025
8370238
Remove cg_test config.
Nov 26, 2025
ab4ff6d
Trim trailing whitespace.
Nov 26, 2025
10f30df
Remove picard_collecthsmetrics from skip_tools as it is not run by de…
Nov 26, 2025
3b45465
Update usage.md.
Nov 26, 2025
566e4c9
Seqtk add relative sample sets and warning
nkongenelly Nov 25, 2025
8ad085f
Fixing tests
nkongenelly Nov 25, 2025
2e1b664
Fixed test error
nkongenelly Nov 26, 2025
5d3309b
[automated] Fix code linting
nf-core-bot Nov 26, 2025
432816b
Harshil alignment
eliottBo Nov 26, 2025
d724965
Update ro-crate
eliottBo Nov 26, 2025
8838130
Format seqinspector.nf.
Nov 27, 2025
0af25a1
Restore output.md.
Nov 27, 2025
739e7d8
Add input parameter notes for QC_BAM.
Nov 27, 2025
b5ef24a
Fix input notes.
Nov 27, 2025
ad3b333
Update input parameter notes.
Nov 27, 2025
8e08426
Move PICARD_CREATESEQUENCEDICTIONARY to PREPARE_GENOME. Adjust QC_BAM…
Nov 27, 2025
5ec2712
Initialise ch_ref_dict in PREPARE_GENOME.
Nov 27, 2025
0023329
Harshil alignment
eliottBo Nov 28, 2025
845a749
Merge branch 'dev' into multiqc-index
pontushojer Nov 28, 2025
52cce2f
Update snapshot for QC_BAM.
Nov 28, 2025
55f2d6f
Update CHANGELOG.md
beatrizsavinhas Nov 28, 2025
6ee64f3
Merge branch 'collecthsmetrics' into change-qc-bam
Nov 28, 2025
79356af
Correct QC_BAM main.nf.
Nov 28, 2025
6a1b397
Remove PICARD_COLLECTMULTIPLEMETRICS from seqinspector.nf.
Dec 1, 2025
fa53330
Fix linting issues.
Dec 1, 2025
2238747
Add checks for empty params bait_intervals and target_intervals.
Dec 1, 2025
4d02baf
Fix QC_BAM input parameters.
Dec 1, 2025
028d095
Update QC_BAM test.
Dec 1, 2025
4ddf032
Update usage.md
beatrizsavinhas Dec 1, 2025
399e1ce
Merge branch 'collecthsmetrics' into change-qc-bam
Dec 1, 2025
030eb2e
Edit CHANGELOG.md
Dec 1, 2025
03a9731
Run prettier.
Dec 1, 2025
f7fadab
Merge branch 'collecthsmetrics' into change-qc-bam
Dec 1, 2025
d71d935
Rename ch_reference_fai.
Dec 1, 2025
520ccdc
Update PREPARE_GENOME input parameters description
Dec 1, 2025
9a44235
Merge pull request #159 from eliottBo/collecthsmetrics
beatrizsavinhas Dec 1, 2025
40a7053
Merge branch 'nf-core:dev' into change-qc-bam
beatrizsavinhas Dec 1, 2025
95ac7b5
Fix prepare_genome/main.nf
Dec 2, 2025
5a1196c
Add tests
Dec 2, 2025
7709979
Update test
Dec 2, 2025
8c6edff
Merge branch 'dev' into test-prepare-genome
beatrizsavinhas Dec 2, 2025
f57ef72
Update prepare_genome/main.nf
Dec 2, 2025
dc9690e
Add publishDir for PICARD_CREATESEQUENCEDICTIONARY
Dec 2, 2025
63df743
Refactor tests
Dec 2, 2025
c26104c
Fix end of file main.nf.test
Dec 2, 2025
e55caaa
Update CHANGELOG.md
Dec 2, 2025
83e319a
Update CHANGELOG.md
Dec 2, 2025
446651d
Revert redundant changes in modules.config
Dec 2, 2025
8d3a773
Update some snapshots
Dec 2, 2025
a9e3b30
More snapshot updates
Dec 2, 2025
815176e
Update remaining snapshot
Dec 2, 2025
8ea7b63
Re-add changes to modules.config
Dec 2, 2025
60e8666
Small changes in comments in main.nf.test
Dec 2, 2025
d5f69b8
Small changes in comments in main.nf.test
Dec 2, 2025
d64f815
Add nextflow.config to tests
Dec 2, 2025
4a5d3a1
Update tests and snapshot
Dec 2, 2025
4e43aec
Add EOL to nextflow.config
Dec 2, 2025
fb4376d
Update QC_BAM input description
Dec 3, 2025
5614398
Update PREPARE_GENOME test configs
Dec 3, 2025
1f7cae8
Update snapshots
Dec 3, 2025
9d9a2f9
Add test nextflow.config
Dec 3, 2025
783f565
Update test configs to remove hardcoded pipelines_testdata_base_path …
Dec 3, 2025
8ac6732
Remove redundant / in test-data paths
Dec 3, 2025
2c408f9
Merge pull request #158 from eliottBo/change-qc-bam
beatrizsavinhas Dec 3, 2025
0c33826
Merge branch 'nf-core:dev' into test-prepare-genome
beatrizsavinhas Dec 3, 2025
8bf9588
run fastqscreen with subsampled data if available
pontushojer Dec 4, 2025
2345202
update changelog
pontushojer Dec 4, 2025
324851e
Fix bug preventing picard_multiple_metrics files from being passed to…
Dec 4, 2025
67db2a9
Update CHANGELOG.md
Dec 4, 2025
6f71488
Update CHANGELOG.md
beatrizsavinhas Dec 5, 2025
743ae2d
Merge pull request #163 from pontushojer/sample_fastqscreen
pontushojer Dec 8, 2025
6534925
Merge branch 'dev' into test-prepare-genome
maxulysse Dec 8, 2025
204cc02
fix snapshot
maxulysse Dec 8, 2025
82a49d9
Merge pull request #162 from beatrizsavinhas/test-prepare-genome
beatrizsavinhas Dec 9, 2025
e0ae79d
Merge pull request #135 from pontushojer/multiqc-index
pontushojer Dec 10, 2025
f103e6b
Merge branch 'dev' into output_changes
maxulysse Dec 11, 2025
d16f194
Merge pull request #152 from FranBonath/output_changes
maxulysse Dec 11, 2025
94b8bfd
Merge branch 'dev' into sample-naming
maxulysse Dec 12, 2025
8318295
re-generate snapshots
maxulysse Dec 12, 2025
3ba97e7
Merge branch 'dev' into seqtk_sample_size_warning
maxulysse Dec 12, 2025
64e0a44
Merge pull request #121 from pontushojer/sample-naming
maxulysse Dec 12, 2025
412978e
re-generate snapshots
maxulysse Dec 12, 2025
0cbe100
Update workflows/seqinspector.nf
maxulysse Dec 12, 2025
dba2d8f
Merge branch 'dev' into seqtk_sample_size_warning
maxulysse Dec 12, 2025
9f98c4b
use log.warn, and update tests
maxulysse Dec 12, 2025
afe2f84
Merge pull request #156 from nkongenelly/seqtk_sample_size_warning
maxulysse Dec 12, 2025
61f172b
Merge branch 'dev' into run-dirs
maxulysse Dec 12, 2025
c1576e2
update snapshots
maxulysse Dec 12, 2025
d4c5306
update module
maxulysse Dec 12, 2025
54609e9
code polish + topics
maxulysse Dec 12, 2025
ea4b20c
code polish
maxulysse Dec 12, 2025
16db84c
fix tests
maxulysse Dec 12, 2025
daf18b0
no need for view()
maxulysse Dec 12, 2025
70fdcf2
simplify config
maxulysse Dec 12, 2025
8766778
dir_meta -> meta
maxulysse Dec 12, 2025
4a5024c
Delete modules/local/rundirparser/meta.yml
maxulysse Dec 12, 2025
ff89c38
Update tests/NovaSeq6000.main.nf.test.config
maxulysse Dec 12, 2025
dcd7c8a
sort modules import
maxulysse Dec 12, 2025
f54f4c7
sort import
maxulysse Dec 12, 2025
5d224a4
Trigger Build
maxulysse Dec 12, 2025
5f04718
update snapshots
maxulysse Dec 12, 2025
5c68a10
Merge pull request #106 from kedhammar/run-dirs
maxulysse Dec 12, 2025
e78578d
rename test files and delete config
maxulysse Dec 12, 2025
b3e6fed
need the params in the tests for now
maxulysse Dec 12, 2025
dbe8114
early failure for test for smaller diff
maxulysse Dec 12, 2025
e09b166
simplify tests
maxulysse Dec 12, 2025
ba22c67
polish local subworkflows and tests
maxulysse Dec 12, 2025
4201300
bam are unstable
maxulysse Dec 12, 2025
8a49714
fix prepare_genome tests and snapshots
maxulysse Dec 12, 2025
b39fff7
code polish
maxulysse Dec 12, 2025
7d4b433
remove file from snapshot
maxulysse Dec 15, 2025
44889d2
fix qc_bam subworkflow tests
maxulysse Dec 15, 2025
eaf4328
update and improve CHANGELOG
maxulysse Dec 15, 2025
bb585d0
add missing entries
maxulysse Dec 15, 2025
9371567
code polish
maxulysse Dec 15, 2025
052b7ea
fix polish
maxulysse Dec 15, 2025
a4ba47c
Merge pull request #164 from nf-core/tests_cleanup
maxulysse Dec 15, 2025
cfd4a8d
Skip RUNDIRPARSER if no rundir information is available
matrulda Jan 19, 2026
6e56eab
Add 167 to changelog
matrulda Jan 19, 2026
960728a
Add test for no rundir information scenario
matrulda Jan 19, 2026
e535dc1
Add note about RUNDIRPARSER being skipped when not using rundir
matrulda Jan 20, 2026
749aee2
pre-commit fix
matrulda Jan 20, 2026
d080687
Write warning if rundir is missing for a sample
matrulda Feb 6, 2026
c4052c6
Merge pull request #167 from matrulda/issue-166_document_rundir_parser
maxulysse Feb 9, 2026
9da961c
Address review comments (#168)
maxulysse Feb 10, 2026
9df5cfc
prepare release 1.0.0 (#169)
maxulysse Feb 11, 2026
204b44d
rescure size from the pipeline tests (#171)
maxulysse Feb 11, 2026
2a59538
fix conda env for rundirparser (#172)
maxulysse Feb 11, 2026
abe112d
addess review comments (#173)
maxulysse Feb 16, 2026
25269d2
Minor code polish (#174)
maxulysse Feb 19, 2026
57ce6cf
Update all modules and subworkflows + migrate to topics versions (#175)
maxulysse Feb 20, 2026
1c4e615
no modules binaries (#176)
maxulysse Feb 20, 2026
78ad48b
Remove unused modules (bowtie2/build, fastqscreen/buildfromindex) (#177)
maxulysse Feb 20, 2026
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
28 changes: 14 additions & 14 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
{
"name": "nfcore",
"image": "nfcore/gitpod:latest",
"remoteUser": "gitpod",
"runArgs": ["--privileged"],
"image": "nfcore/devcontainer:latest",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.defaultInterpreterPath": "/opt/conda/bin/python"
},
"remoteUser": "root",
"privileged": true,

// Add the IDs of extensions you want installed when the container is created.
"extensions": ["ms-python.python", "ms-python.vscode-pylance", "nf-core.nf-core-extensionpack"]
}
"remoteEnv": {
// Workspace path on the host for mounting with docker-outside-of-docker
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}"
},

"onCreateCommand": "./.devcontainer/setup.sh",

"hostRequirements": {
"cpus": 4,
"memory": "16gb",
"storage": "32gb"
}
}
13 changes: 13 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

# Customise the terminal command prompt
echo "export PROMPT_DIRTRIM=2" >> $HOME/.bashrc
echo "export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '" >> $HOME/.bashrc
export PROMPT_DIRTRIM=2
export PS1='\[\e[3;36m\]\w ->\[\e[0m\\] '

# Update Nextflow
nextflow self-update

# Update welcome message
echo "Welcome to the nf-core/seqinspector devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt
37 changes: 0 additions & 37 deletions .editorconfig

This file was deleted.

32 changes: 19 additions & 13 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# nf-core/seqinspector: Contributing Guidelines
# `nf-core/seqinspector`: Contributing Guidelines

Hi there!
Many thanks for taking an interest in improving nf-core/seqinspector.
Expand All @@ -19,7 +19,7 @@ If you'd like to write some code for nf-core/seqinspector, the standard workflow
1. Check that there isn't already an issue about your idea in the [nf-core/seqinspector issues](https://github.com/nf-core/seqinspector/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/seqinspector repository](https://github.com/nf-core/seqinspector) 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 All @@ -55,42 +55,48 @@ These tests are run both with the latest available version of `Nextflow` and als

:warning: Only in the unlikely and regretful event of a release happening with a bug.

- On your own fork, make a new branch `patch` based on `upstream/master`.
- On your own fork, make a new branch `patch` based on `upstream/main` or `upstream/master`.
- Fix the bug, and bump version (X.Y.Z+1).
- A PR should be made on `master` from patch to directly this particular bug.
- Open a pull-request from `patch` to `main`/`master` with the changes.

## Getting help

For further information/help, please consult the [nf-core/seqinspector documentation](https://nf-co.re/seqinspector/usage) and don't hesitate to get in touch on the nf-core Slack [#seqinspector](https://nfcore.slack.com/channels/seqinspector) channel ([join our Slack here](https://nf-co.re/join/slack)).

## Pipeline contribution conventions

To make the nf-core/seqinspector code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.
To make the `nf-core/seqinspector` code and processing logic more understandable for new contributors and to ensure quality, we semi-standardise the way the code and other contributions are written.

### Adding a new step

If you wish to contribute a new step, please use the following coding standards:

1. Define the corresponding input channel into your new process from the expected previous process channel
1. Define the corresponding input channel into your new process from the expected previous process channel.
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`.
8. If applicable, add a new test in the `tests` directory.
9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module.
10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`.

### Things to consider regarding displaying results for a new tool

- If a MultiQC module exist for the tool, use the standard settings for it to start with.
- If no Multiqc module exists, the results of the tool should be made available in the results directory.
- If a tool doesn’t produce output files, the stdout should be channeled into a output file that can be accessible from the outdir of the pipeline.

### Default values

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

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 +109,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
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ body:

- [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)
- [nf-core/seqinspector pipeline documentation](https://nf-co.re/seqinspector/usage)

- type: textarea
id: description
attributes:
Expand Down
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/seqi
- [ ] 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/seqinspector/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the nf-core/seqinspector _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] Make sure your code lints (`nf-core lint`).
- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`).
- [ ] 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.
- [ ] Output Documentation in `docs/output.md` is updated.
Expand Down
69 changes: 69 additions & 0 deletions .github/actions/get-shards/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: "Get number of shards"
description: "Get the number of nf-test shards for the current CI job"
inputs:
max_shards:
description: "Maximum number of shards allowed"
required: true
paths:
description: "Component paths to test"
required: false
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
outputs:
shard:
description: "Array of shard numbers"
value: ${{ steps.shards.outputs.shard }}
total_shards:
description: "Total number of shards"
value: ${{ steps.shards.outputs.total_shards }}
runs:
using: "composite"
steps:
- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: ${{ env.NFT_VER }}
- name: Get number of shards
id: shards
shell: bash
run: |
# Run nf-test with dynamic parameter
nftest_output=$(nf-test test \
--profile +docker \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--dry-run \
--ci \
--changed-since HEAD^) || {
echo "nf-test command failed with exit code $?"
echo "Full output: $nftest_output"
exit 1
}
echo "nf-test dry-run output: $nftest_output"
# Default values for shard and total_shards
shard="[]"
total_shards=0
# Check if there are related tests
if echo "$nftest_output" | grep -q 'No tests to execute'; then
echo "No related tests found."
else
# Extract the number of related tests
number_of_shards=$(echo "$nftest_output" | sed -n 's|.*Executed \([0-9]*\) tests.*|\1|p')
if [[ -n "$number_of_shards" && "$number_of_shards" -gt 0 ]]; then
shards_to_run=$(( $number_of_shards < ${{ inputs.max_shards }} ? $number_of_shards : ${{ inputs.max_shards }} ))
shard=$(seq 1 "$shards_to_run" | jq -R . | jq -c -s .)
total_shards="$shards_to_run"
else
echo "Unexpected output format. Falling back to default values."
fi
fi
# Write to GitHub Actions outputs
echo "shard=$shard" >> $GITHUB_OUTPUT
echo "total_shards=$total_shards" >> $GITHUB_OUTPUT
# Debugging output
echo "Final shard array: $shard"
echo "Total number of shards: $total_shards"
111 changes: 111 additions & 0 deletions .github/actions/nf-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: "nf-test Action"
description: "Runs nf-test with common setup steps"
inputs:
profile:
description: "Profile to use"
required: true
shard:
description: "Shard number for this CI job"
required: true
total_shards:
description: "Total number of test shards(NOT the total number of matrix jobs)"
required: true
paths:
description: "Test paths"
required: true
tags:
description: "Tags to pass as argument for nf-test --tag parameter"
required: false
runs:
using: "composite"
steps:
- name: Setup Nextflow
uses: nf-core/setup-nextflow@v2
with:
version: "${{ env.NXF_VERSION }}"

- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: "3.14"

- name: Install nf-test
uses: nf-core/setup-nf-test@v1
with:
version: "${{ env.NFT_VER }}"
install-pdiff: true

- name: Setup apptainer
if: contains(inputs.profile, 'singularity')
uses: eWaterCycle/setup-apptainer@main

- name: Set up Singularity
if: contains(inputs.profile, 'singularity')
shell: bash
run: |
mkdir -p $NXF_SINGULARITY_CACHEDIR
mkdir -p $NXF_SINGULARITY_LIBRARYDIR

- name: Conda setup
if: contains(inputs.profile, 'conda')
uses: conda-incubator/setup-miniconda@505e6394dae86d6a5c7fbb6e3fb8938e3e863830 # v3
with:
auto-update-conda: true
conda-solver: libmamba
channels: conda-forge,bioconda
channel-priority: strict
conda-remove-defaults: true

- name: Run nf-test
shell: bash
env:
NFT_WORKDIR: ${{ env.NFT_WORKDIR }}
run: |
nf-test test \
--profile=+${{ inputs.profile }} \
$(if [ -n "${{ inputs.tags }}" ]; then echo "--tag ${{ inputs.tags }}"; fi) \
--ci \
--changed-since HEAD^ \
--verbose \
--tap=test.tap \
--shard ${{ inputs.shard }}/${{ inputs.total_shards }}

# Save the absolute path of the test.tap file to the output
echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT

- name: Generate test summary
if: always()
shell: bash
run: |
# Add header if it doesn't exist (using a token file to track this)
if [ ! -f ".summary_header" ]; then
echo "# 🚀 nf-test results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Status | Test Name | Profile | Shard |" >> $GITHUB_STEP_SUMMARY
echo "|:------:|-----------|---------|-------|" >> $GITHUB_STEP_SUMMARY
touch .summary_header
fi

if [ -f test.tap ]; then
while IFS= read -r line; do
if [[ $line =~ ^ok ]]; then
test_name="${line#ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ✅ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
elif [[ $line =~ ^not\ ok ]]; then
test_name="${line#not ok }"
# Remove the test number from the beginning
test_name="${test_name#* }"
echo "| ❌ | ${test_name} | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi
done < test.tap
else
echo "| ⚠️ | No test results found | ${{ inputs.profile }} | ${{ inputs.shard }}/${{ inputs.total_shards }} |" >> $GITHUB_STEP_SUMMARY
fi

- name: Clean up
if: always()
shell: bash
run: |
sudo rm -rf /home/ubuntu/tests/
Loading
Loading