Skip to content
Merged
Show file tree
Hide file tree
Changes from 115 commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
4f37b9d
add groovy function to validate blastn database format and busco line…
yumisims Sep 22, 2025
8a2bc7a
add groovy function to validate blastn database format and busco line…
yumisims Sep 22, 2025
d896581
test
yumisims Sep 22, 2025
39351fa
Update input_check.nf
yumisims Sep 23, 2025
396cc57
Update input_check.nf
yumisims Sep 23, 2025
0944d01
Update input_check.nf
yumisims Sep 23, 2025
535a662
Update input_check.nf
yumisims Sep 23, 2025
9ba7304
fixed docs usage
yumisims Sep 23, 2025
23fd0ac
moved functions after workflow
yumisims Sep 23, 2025
3887e85
improved database validation function
yumisims Sep 23, 2025
c6d1906
add error handling for busco and blastn database validation
yumisims Oct 1, 2025
53b39eb
lint
yumisims Oct 1, 2025
cdfdd77
lint
yumisims Oct 1, 2025
f999572
Update subworkflows/local/input_check.nf
yumisims Oct 1, 2025
45761e2
Updates
DLBPointon Nov 18, 2025
5441002
Addition of new flag for turning off blast annotations
DLBPointon Nov 18, 2025
078f0b0
Update linting
DLBPointon Nov 18, 2025
f86c995
Minor updates to correct spellings
DLBPointon Nov 18, 2025
61b8943
Add default arg
DLBPointon Nov 18, 2025
92ad8c1
Updated based on comments from @muffato
DLBPointon Nov 18, 2025
a430bc5
Spaces should be multiples of 4
DLBPointon Nov 18, 2025
48d9446
module semi-reverted, git merge issue?
DLBPointon Nov 18, 2025
b067d6c
Typo: this .filter should be removed
muffato Nov 18, 2025
ca00d9c
Diifs
DLBPointon Nov 19, 2025
4b25c6b
re-add again
DLBPointon Nov 19, 2025
db73106
IDE wasn't updating file on disk
DLBPointon Nov 19, 2025
31acbe6
typo
muffato Nov 19, 2025
2e9b004
Merge pull request #210 from sanger-tol/BLAST_update
DLBPointon Nov 19, 2025
f967a71
Our new convention is to put the files directly in pipeline_info/
muffato Nov 19, 2025
4dc0ee1
Unused
muffato Nov 19, 2025
8fb36b2
Support for odb12
muffato Nov 19, 2025
f3bfeee
Switch the default Busco to odb12
muffato Nov 19, 2025
b15c351
Merge pull request #212 from sanger-tol/pipelines_lint
muffato Nov 19, 2025
3a2fecf
Added more comments
muffato Nov 20, 2025
4dba13b
Changelog update
muffato Nov 20, 2025
64f7ace
Merge pull request #211 from sanger-tol/busco_odb12
muffato Nov 21, 2025
a72c1bb
add changes
yumisims Nov 21, 2025
68fc72e
add groovy function to validate blastn database format and busco line…
yumisims Sep 22, 2025
a61f281
add groovy function to validate blastn database format and busco line…
yumisims Sep 22, 2025
e736b01
test
yumisims Sep 22, 2025
28cbd97
Update input_check.nf
yumisims Sep 23, 2025
ea03e6d
Update input_check.nf
yumisims Sep 23, 2025
0f8a9af
Update input_check.nf
yumisims Sep 23, 2025
c5f2486
Update input_check.nf
yumisims Sep 23, 2025
5f38737
fixed docs usage
yumisims Sep 23, 2025
2d03ffe
moved functions after workflow
yumisims Sep 23, 2025
172489e
improved database validation function
yumisims Sep 23, 2025
16491d0
add error handling for busco and blastn database validation
yumisims Oct 1, 2025
8804053
lint
yumisims Oct 1, 2025
6a434d6
lint
yumisims Oct 1, 2025
cced509
Update subworkflows/local/input_check.nf
yumisims Oct 1, 2025
7b0b2ec
add changes
yumisims Nov 21, 2025
91b65d4
Merge branch 'param' of https://github.com/sanger-tol/blobtoolkit int…
yumisims Nov 21, 2025
30f01eb
changed rules
yumisims Nov 24, 2025
87b8686
Merge branch 'dev' into param
yumisims Nov 24, 2025
ed56b01
changed rules
yumisims Nov 24, 2025
252fab7
Merge branch 'param' of https://github.com/sanger-tol/blobtoolkit int…
yumisims Nov 24, 2025
10d41c8
validate the tared file
yumisims Nov 25, 2025
89e8790
modify test profile
yumisims Nov 25, 2025
93586e5
modify test profile
yumisims Nov 25, 2025
c551204
changed validation function
yumisims Nov 25, 2025
44fa5e4
changed validation function
yumisims Nov 25, 2025
6f88686
correct createlink error
yumisims Nov 25, 2025
632ddf1
update readme
yumisims Nov 25, 2025
afed6cc
update readme
yumisims Nov 25, 2025
e0b3734
update readme
yumisims Nov 25, 2025
d4bf666
update test profile
yumisims Nov 25, 2025
ec5aac4
sync config
yumisims Nov 25, 2025
ebd8fb7
pre-commit fix
yumisims Nov 25, 2025
53d6fe7
Template update for nf-core/tools version 3.5.1
sanger-tolsoft Dec 1, 2025
bdbf3c1
Merge remote-tracking branch 'origin/dev' into nf-core-template-merge…
sainsachiko Dec 1, 2025
c6c3eb8
Fix linting
sainsachiko Dec 1, 2025
a248fad
Update module cat/cat
sainsachiko Dec 1, 2025
ee48270
Update snapshot
sainsachiko Dec 1, 2025
7be6fea
Skip nf-test
sainsachiko Dec 1, 2025
a75ccae
Merge pull request #213 from sanger-tol/nf-core-template-merge-3.5.1
sainsachiko Dec 1, 2025
670c224
Added stuff missed during the template upgrade PR
muffato Dec 2, 2025
b570995
Merge pull request #214 from sanger-tol/template_upgrade_additions
muffato Dec 2, 2025
bfd58cc
check include .nal and .nin
yumisims Dec 2, 2025
db36f7b
fixed pre-commit
yumisims Dec 2, 2025
9755839
fixed pre-commit
yumisims Dec 2, 2025
532f21d
fixed pre-commit
yumisims Dec 2, 2025
c6d3ef4
Update subworkflows/local/input_check.nf
yumisims Dec 5, 2025
289c642
Update subworkflows/local/input_check.nf
yumisims Dec 5, 2025
8548edc
fixed odb_version parsing and added resolveSymlink helper and use it …
yumisims Jan 12, 2026
3bcd842
fixes of validateBlastnDatabase
yumisims Jan 29, 2026
86e6fc6
fixes of validateBlastnDatabase
yumisims Jan 29, 2026
23497e9
nal file can be optional
yumisims Jan 29, 2026
7748ef8
fix precommit
yumisims Jan 29, 2026
fead425
fix precommit
yumisims Jan 29, 2026
ee66272
inactive code
muffato Jan 30, 2026
eca3485
Pass the db_name all the way through to the module
muffato Jan 30, 2026
c293dbd
Docs cleanup
muffato Jan 30, 2026
5e70afb
Fixed the README
muffato Jan 30, 2026
a1f017e
markdown fix
muffato Jan 30, 2026
ede5b8d
one too many \
muffato Jan 30, 2026
84e81fd
Complain if there is no lineages sub-directory
muffato Jan 30, 2026
682c1a5
Not needed. Will be fixed in #199
muffato Jan 30, 2026
d829ea4
only nal or nin as blastn input
yumisims Jan 30, 2026
fa1ab4f
resolved untar situ
yumisims Jan 30, 2026
32bd55a
Updated the helper to find the files and use it consistently across a…
muffato Feb 1, 2026
68d0bed
Changelog update
muffato Feb 1, 2026
bd00ddd
Not needed because the nt path is guaranteed to be a directory
muffato Feb 1, 2026
1e75ff5
bugfix: the hmmer_output directory isn't there, but since we don't re…
muffato Feb 2, 2026
4245aec
Dereference the symlinks so that the actual target directory is archived
muffato Feb 2, 2026
e924989
Changelog update
muffato Feb 2, 2026
cfe60e7
Merge pull request #204 from sanger-tol/param
yumisims Feb 2, 2026
fe1aa3f
Template update for nf-core/tools version 3.5.2
sanger-tolsoft Feb 2, 2026
be01276
Merge pull request #216 from sanger-tol/busco_seq_tar
muffato Feb 2, 2026
c3c0878
Merge branch 'dev' into nf-core-template-merge-3.5.2
muffato Feb 2, 2026
32f371f
This needs to be removed as our pipelines cannot have configs in nf-core
muffato Feb 2, 2026
3f948d3
Conda is not supported, period
muffato Feb 2, 2026
59305c7
Tomorrow
muffato Feb 2, 2026
b5dac4d
Merge pull request #219 from sanger-tol/nf-core-template-merge-3.5.2
muffato Feb 2, 2026
d6fd41c
Merge pull request #218 from sanger-tol/for_release
muffato Feb 4, 2026
4e52c47
Changed the version number everywhere
muffato Feb 5, 2026
d0de0b3
It's ODB12 too, and make it clear basal lineages should not be listed
muffato Feb 5, 2026
247a1d2
Tomorrow
muffato Feb 5, 2026
22b59d9
Slightly more comprehensive tests
muffato Feb 5, 2026
88e3526
if statements an only be in the script: section
muffato Feb 6, 2026
70c4c2d
Too many meta
muffato Feb 6, 2026
94329d8
Channel. -> channel.
muffato Feb 6, 2026
64101d4
switch
muffato Feb 6, 2026
331e742
diamond modules update
muffato Feb 6, 2026
bce8041
Renamed the channels to avoid a clash with "fasta"
muffato Feb 6, 2026
29055e2
strict syntax and linting
muffato Feb 6, 2026
5b7f6b6
.set is deprecated
muffato Feb 6, 2026
bd9199d
Inlined the functions
muffato Feb 6, 2026
1f6794e
Snapshot update
muffato Feb 6, 2026
637aa82
Replaced the | operator with .
muffato Feb 6, 2026
f0464f3
typo
muffato Feb 7, 2026
5cc7a9b
Modules update
muffato Feb 7, 2026
5049a3e
Fixed the indentation
muffato Feb 7, 2026
05173ac
Enabled --help in strict mode by updating the utils_nfschema_plugin s…
muffato Feb 7, 2026
71775bd
bugfix: this rule must apply to all data types
muffato Feb 7, 2026
6879f35
pre-computed BUSCOs are not needed at this stage
muffato Feb 9, 2026
fe53afc
Not used
muffato Feb 9, 2026
9aa9357
Added nf-test
muffato Feb 9, 2026
5139fd4
Added nf-test for raw data
muffato Feb 9, 2026
b7f1615
Expanded the raw test to test windowmasker
muffato Feb 9, 2026
c5351b5
Test the busco_lineages parameter
muffato Feb 9, 2026
0eea30a
test_raw should use files on S3
muffato Feb 10, 2026
6d984ed
In practice we only need the S3 version of the samplesheet
muffato Feb 10, 2026
2b224eb
Move the samplesheets to the standard location
muffato Feb 10, 2026
8e505af
For consistency with the other modules, call the first one meta and t…
muffato Feb 11, 2026
bc1a160
Added Jim
muffato Feb 11, 2026
110a45e
Updated CITATION and the ro-crate
muffato Feb 11, 2026
5602356
Bumped the date
muffato Feb 11, 2026
8d0b95e
Explain what the three basal lineagea are
muffato Feb 12, 2026
954d047
Another people can provide the path
muffato Feb 12, 2026
f5d4187
Today !
muffato Feb 12, 2026
0f70006
Merge pull request #221 from sanger-tol/precomp_busco_nftest
muffato Feb 12, 2026
4f928bc
Merge branch 'dev' into strict_syntax
muffato Feb 12, 2026
ff85f00
Snapshot update
muffato Feb 12, 2026
6cacd1d
Merge pull request #220 from sanger-tol/strict_syntax
muffato Feb 12, 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 sanger-tol/blobtoolkit devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt
37 changes: 0 additions & 37 deletions .editorconfig

This file was deleted.

2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ If you wish to contribute a new step, please use the following coding standards:
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`.

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
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/
86 changes: 0 additions & 86 deletions .github/workflows/ci.yml

This file was deleted.

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@28ca1036281a5e5922ead5184a1bbf96e5fc984e # v9
- uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v10
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
Loading
Loading