Thiseas C. Lamnidis
11/10/2025, 3:43 PMnf-core modules lint trident/fetch returns the following error:
╭─ [✗] 1 Module Test Failed ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ╷ ╷ │
│ Module name │ File path │ Test message │
│╶───────────────┼────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╴│
│ trident/fetch │ modules/nf-core/trident/fetch/meta.yml │ correct_meta_outputs: Module meta.yml does not match main.nf. Outputs should contain: {'poseidon_yml': ['output_archive//POSEIDON.yml'], │
│ │ │ 'geno': ['output_archive//.{bed'], 'snp': ['output_archive//.{bim'], 'ind': ['output_archive//.{fam'], 'janno': ['output_archive//.janno'], │
│ │ │ 'ssf': ['output_archive//.ssf'], 'bib': ['output_archive//.bib'], 'changelog': ['output_archive//CHANGELOG.md'], 'readme': │
│ │ │ ['output_archive/*/README.md'], 'versions': ['versions.yml']} Run nf-core modules lint --fix to update the meta.yml file. │
│ ╵ ╵ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
If I run with the --fix option, the “fixed” meta.yml looks like this:
[...]
input:
- - archive_dir:
type: directory
description: |
The path to the directories containing any previously downloaded Poseidon archive files.
If this is provided, trident fetch will check these directories, and only download missing packages from the Poseidon-Framework server.
- fetch_s:
type: string
description: The fetchString provided to trident fetch (`--fetchString`),
if any.
- fetch_fn:
type: file
description: A file containing a list of fetchStrings provided to trident
fetch (`--fetchFile`), if any.
pattern: "*.txt"
ontologies: []
output:
poseidon_yml:
- output_archive/*/POSEIDON.yml:
type: file
description: The POSEIDON.yml file of any newly downloaded package(s).
pattern: "output_archive/*/POSEIDON.yml"
ontologies:
- edam: <http://edamontology.org/format_3750> # YAML
geno:
- output_archive/*/*.{bed: {}
snp:
- output_archive/*/*.{bim: {}
ind:
- output_archive/*/*.{fam: {}
janno:
- output_archive/*/*.janno:
type: file
description: The .janno annotation files of any newly downloaded
package(s).
pattern: "output_archive/*/*.janno"
ontologies: []
ssf:
- output_archive/*/*.ssf:
type: file
description: The .ssf files of any newly downloaded package(s).
pattern: "output_archive/*/*.ssf"
ontologies: []
bib:
- output_archive/*/*.bib:
type: file
description: The .bib bibliography files of any newly downloaded
package(s).
pattern: "output_archive/*/*.bib"
ontologies: []
changelog:
- output_archive/*/CHANGELOG.md:
type: file
description: The CHANGELOG.md files of any newly downloaded package(s).
pattern: "output_archive/*/CHANGELOG.md"
ontologies: []
readme:
- output_archive/*/README.md:
type: file
description: The README.md files of any newly downloaded package(s).
pattern: "output_archive/*/README.md"
ontologies: []
versions:
- versions.yml:
type: file
description: File containing software versions
pattern: "versions.yml"
ontologies:
- edam: "<http://edamontology.org/format_3750>" # YAML
[...]
The mangled blocks for geno,snp and ind outputs are then causing more linting failures:
╭─ [✗] 1 Module Test Failed ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ╷ ╷ │
│ Module name │ File path │ Test message │
│╶───────────────┼────────────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╴│
│ trident/fetch │ modules/nf-core/trident/fetch/meta.yml │ meta_yml_valid: The meta.yml of the module trident/fetch is not valid: {'output_archive//.{bim': {}} is not valid under any of the given │
│ │ │ schemas. Check the entry for output. │
│ ╵ ╵ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
(sorry for the huge block 🙈 )Thiseas C. Lamnidis
11/10/2025, 3:45 PMoutput:
// All outputs are optional as fetch will check if the package already exists in the provided archive directories, and skip download if so.
path "output_archive/*/POSEIDON.yml", emit: poseidon_yml, optional: true
path "output_archive/*/*.{bed,geno,vcf,bed.gz,geno.gz,vcf.gz}", emit: geno, optional: true
path "output_archive/*/*.{bim,snp,bim.gz,snp.gz}", emit: snp, optional: true
path "output_archive/*/*.{fam,ind,fam.gz,ind.gz}", emit: ind, optional: true
path "output_archive/*/*.janno", emit: janno, optional: true
path "output_archive/*/*.ssf", emit: ssf, optional: true
path "output_archive/*/*.bib", emit: bib, optional: true
path "output_archive/*/CHANGELOG.md", emit: changelog, optional: true
path "output_archive/*/README.md", emit: readme, optional: true
path "versions.yml", emit: versions
It looks like the *.{bed,geno,vcf,bed.gz,geno.gz,vcf.gz} suffix block is not recognised correctly by the tools, and turned into the mangled output block in the meta?Thiseas C. Lamnidis
11/10/2025, 3:47 PMmashehu
11/10/2025, 4:18 PM