From b4e40280a46ba3b5464e05fb8031dfbce2fa834a Mon Sep 17 00:00:00 2001
From: Nicolas Vannieuwkerke <101190534+nvnieuwk@users.noreply.github.com>
Date: Fri, 19 Jul 2024 16:35:22 +0200
Subject: [PATCH] Release PR 0.2.0 (#94)
* Birth of a pipeline (#2)
* cleaned up the code and docs before starting
* cleaned up the github actions
* cleaned some more code
* removed unused pipeline code
* added an easily adjustable input checker
* removed some CI
* added the variant callers
* linting
* tests update
* ci update
* linting
* linting
* linting
* turned off actions
* added read counts + delly updates
* added scatter count to delly call
* added versions and multiqc
* updated the manta workflow
* updated the whamg workflow
* added versions to whamg
* added some additional test data
* updated the test data
* updated the test data
* updated the test data
* updated the test data
* overal updates and improvements
* small updates
* small updates
* metrics part 1
* metrics part 2
* Module evidence qc (#3)
* make bincov matrix part 1
* added ploidy and parts of calcmedcov
* added WGD
* removed delly and added a reheader to MANTA
* added all code to the module (some parts are still broken)
* small updates
* small ploidy matrix fix
* small updates to evidenceQC + re-added delly
* Module gather batch evidence (#4)
* added groundwork for the module
* added groundwork for the module
* more work done
* removed commented lines
* Continue module gather batch evidence (#19)
* printsvevidence update (not done yet)
* restructured the pipeline to match nf-core v2.6
* updated module paths
* some small "improvements"
* Template update for nf-core/tools version 2.6
* additional fixes to the template
* removed wrong file
* Added clarifying comments to GSE
* updated some of the modules to 4.3.0.0
* fixed some issues caused by gatk4.3.0.0
* latest additions
* Refactoring (#20)
* refactored gather sample evidence
* refactor the rest
* New series of fixes and features (#21)
* update whamg
* update local tests
* updated whamg officially
* updated whamg + fixed svtk standardize
* small work on scramble (still no correct data for this tool)
* updated schema
* improved whamg bed file integration
* added a merge vcfs subworkflow
* small fix
* update test config
* added the samplesheet validation and conversion script
* hotfix dev test (#22)
* Add smoove & tests (#23)
* Template update for nf-core/tools version 2.6
* hotfix dev test
* fixed a lot of issues
* added smoove
* updated the schema
* fix samplesheet and schema
* add better outdir folders
* add tests
* tests fix
* fix secrets
* fix typo
* add more tests
* add template yml
* Template update for nf-core/tools version 2.7.2
* fixes after template merge
* linting
* more linting
* even more linting
* black
* Refactor the pipeline to prepare for subworkflow export to nf-core (#24)
* refactored the pipeline
* remove unused modules
* removed unused workflows
* Add gridss (#25)
* refactored the pipeline
* remove unused modules
* removed unused workflows
* add gridss
* add stub to local modules
* fix stubs
* fully add gridss
* add tests
* copy fix?
* add gridss test to ci
* exclude gridss vcfs from metrics (not supported)
* update min nextflow version to fix caching issue
* update gridss
* remove TODOs [no ci]
* Add genotyping (#26)
* update scattering
* update delly
* bump commit
* add --output_callers parameter
* small fix to --output_callers
* fix schema and test config
* removed reheadering from manta
* update bcftools/sort
* update bcftools/sort
* update headers after jasmine merge
* small fix
* finished genotyping
* fix for paragraph/multigrmpy
* updated the samplesheet conversion
* removed some unused modules
* add merging of samples from the same family
* removed scattering from whamg
* Updated jasmine (added support for bgzip to the module)
* fix prettier
* fix tests
* fix tests again and remove black CI
* add linting ci to nf-core.yml
* Adopted SVINSSEQ as uniform ins sequence info key
* disabled whamg for now
* add missing format header
* add patch for delly
* fix header typo
* remove local test profile
* updated test profiles and added big tests
* add delly args
* add new args to schema and config
* Add annotation + viola + join checks + cleanup (#29)
* add join checks
* fix delly mismatches
* Added viola
* fix header issues in single caller runs
* header fix?
* appease eclint
* add stub to reverse_bed
* fix for gridss?
* appease eclint again!
* typo
* fix permissions
* fix shebang
* fix shebang again
* disable gridss
* fix tests
* remove old code from gatk-sv
* Add VEP to the pipeline
* add some QOL parameters
* update tests
* QOL changes (variables and joins)
* disable scattering for delly
* remove unused gatk modules
* update modules
* made BED files optional
* add metro map and update readme
* forgot to save svg
* fix linting
* fix vep test
* free up CI space?
* use another cache for vep
* edit PosCon3 samplesheet_big.csv (#30)
* Add bcftools sort (#31)
* add join checks
* fix delly mismatches
* Added viola
* fix header issues in single caller runs
* header fix?
* appease eclint
* add stub to reverse_bed
* fix for gridss?
* appease eclint again!
* typo
* fix permissions
* fix shebang
* fix shebang again
* disable gridss
* fix tests
* remove old code from gatk-sv
* Add VEP to the pipeline
* add some QOL parameters
* update tests
* QOL changes (variables and joins)
* disable scattering for delly
* remove unused gatk modules
* update modules
* made BED files optional
* add metro map and update readme
* forgot to save svg
* fix linting
* fix vep test
* free up CI space?
* use another cache for vep
* add bcftools sort
* fix smoove output (#33)
* fix smoove output
* update according to other modules
* Fully implement annotation (#35)
* Template update for nf-core/tools version 2.6
* Template update for nf-core/tools version 2.7.2
* first steps
* fully implement the annotation
* update test
* offer a lamb to the linting gods
* bug fix
* offer a virgin to the linting gods (hope this is enough)
* Add dynamic VCFanno config creation
* go on a pilgrimage to the mountain of the linting gods and make a blood sacrifice
* fix and update annotate test to stub
* update vep container on stub runs
* add postannotations support to the configs
* simplified the vcfanno config code and made it smarter
* added new fields from the annotsv vcf to the default configs
* added a param for the default annotsv file name
* fix small bug with param
* fix small bug with param
* Add all default configs
* sacrificing my firstborn child to the linting gods
* Moved the unused configs to a separate folder
* update configs
* update vep config
* add option to annotate on small variants with AnnotSV (real test files should still be added)
* Remove unused VEP parameters
* fix issues
* add tests for small variants vcfs
* add an option to also output the annotsv outputs
* Merge wrongly placed commits (#40)
* fixes for big tests
* metro map update
* Template update for nf-core/tools version 2.8
* black linting
* update modules
* update modules
* fix local modules
* bump
* eclint
* update genome in docs
* update vcfanno configs retina and rpe
* fix rpe bed file in config
* Cnv support (#50)
* Template update for nf-core/tools version 2.6
* Template update for nf-core/tools version 2.7.2
* first steps
* fully implement the annotation
* update test
* offer a lamb to the linting gods
* bug fix
* offer a virgin to the linting gods (hope this is enough)
* Add dynamic VCFanno config creation
* go on a pilgrimage to the mountain of the linting gods and make a blood sacrifice
* fix and update annotate test to stub
* update vep container on stub runs
* add postannotations support to the configs
* simplified the vcfanno config code and made it smarter
* added new fields from the annotsv vcf to the default configs
* added a param for the default annotsv file name
* fix small bug with param
* fix small bug with param
* Add all default configs
* sacrificing my firstborn child to the linting gods
* Moved the unused configs to a separate folder
* update configs
* update vep config
* add option to annotate on small variants with AnnotSV (real test files should still be added)
* Remove unused VEP parameters
* fix issues
* add tests for small variants vcfs
* add an option to also output the annotsv outputs
* Merge wrongly placed commits (#40)
* fixes for big tests
* metro map update
* Template update for nf-core/tools version 2.8
* black linting
* update modules
* update modules
* fix local modules
* bump
* eclint
* update genome in docs
* update vcfanno configs retina and rpe
* fix rpe bed file in config
* adjust test to new data
* remove unused data from workflows
* remove simple event annotation
* update modules config
* remove unused modules
* fix compile error
* another compile error
* remove comments in config
* guess what! another compile error
* small fixes to annotsv
* update viola
* circumvent a annotsv bug
* add gridss genotyping
* filter out variants with 0/0 genotype from gridss
* move ref variants filtering to before annotsv
* update tests
* fix linting and add meta to references
* black
* install expansionhunter
* fix merge conflict issues
* fix linting
* fix config
* fix stub
* add expansionhunter
* some concurrency debugging
* add nf-validation support
* revert to using linkedhashmap for now
* fix jasmine issue
* update tests
* fix typos
* fix linting
* there you go editorconfig
* let's make it pretty
* update nf-test config
* fix even more tests
* add concat output and fix tests
* fix schema
* now be nice please
* i'm pretty again
* update big test samplesheet [no ci]
* fix max_time pattern [no ci]
* add bcftools sort to single runs
* only apply viola on gridss VCFs and change prefixes
* remove unused comment [no ci]
* fix input pattern
* improve the efficiency of viola
* black
* added a sort step to gridss
* updated the gridss label
* patch gridss module
* remove estimate_read_length
* remove unused code
* small typo
* add -ends to vcfanno
* add full test config
* fix full test description
* update samplesheet
* add exists tags to the samplesheet schema
* specify advised resources for gridss
* possible fix for gridss OOM?
* remove code duplication
* remove an unused parameter
* added a check for callers support being higher than the amount of sv callers
* update metro map
* increase gridss memory
* try to optimize gridss part 2
* try to optimize gridss part 3
* oops
* oops 2
* oops 3
* update to advised amounts
* increase viola time
* discourage the use of gridss for now
* typo
* linting fix
* rename SV subworkflow
* fix expansionhunter catalog and add qdnaseq ref
* add qdnaseq
* add a check for the qdnaseq reference
* fixed some issues with qdnaseq
* add cram merging and index creation
* update resources for qdnaseq
* update resources for qdnaseq
* update resources for qdnaseq
* fix resources qdnaseq
* add wisecondorx
* updated the metro map
* fix background of metro map
* update resolution
* update resolution
* remove old samplesheet conversion script
* moved available callers to a groovy script
* removed the manual check for file exists (now fully uses nf-validation)
* fix a bug with concat when a cnv caller has been supplied
* added some comments for the last fix
* update optional input handling
* fix small issue with annotsv annotations
* fix a no process matching selector warning
* revert last changes
* temp fix for warning
* improve vep cache handling + update modules
* typo
* fix container declaration
* fix for manta issue?
* undo last commit
* version bump expansionhunter
* added support for manta configs
* made qdnaseq references gender specific
* update manta resources
* add contig input to manta
* moved the contigs file creation to the manta subwf
* fix vep params in schema
* fix linting with no template update
* fix nf-test tests
* fix eclint
* fix eclint
* change gender to sex
* typo
* added the sex arg to expansionhunter
* fix nf-test config for v0.8.0
* revert nf-test to 0.7.3
* prettier
* set default sex to female instead of male
* fix tests samplesheet
* Fix vep container issue (#52)
* add dynamic container fetching for vep
* linting fix
* moved the function to the process itself
* fix conda issue
* eclint
* fix params schema
* fix linting
* fix for vep issue?
* fix for missing singularity container
* Add filtering on annotations + fix linting (#55)
* Add filtering on annotations
* fix linting
* begone trailing whitespace
* add annotation filter to test
* CNV VCFs (#58)
* add vcf creation to wisecondorx
* add qdnaseq vcfs
* update tests
* add a simple qdnaseq filter
* small fix in the wisecondorx config
* small naming fix
* add jasmine
* fix for config?
* fix tests
* prettier
* fix tests again
* fix output logic
* fix jasmine + add annotation
* eclint
* more output logic fixes
* eclint (again)
* more output logic fixes
* fix cnv outputs
* remove obsolete if statement
* fix issue with meta joining
* Family merging (#61)
* add vcf creation to wisecondorx
* add qdnaseq vcfs
* update tests
* add a simple qdnaseq filter
* small fix in the wisecondorx config
* small naming fix
* add jasmine
* fix for config?
* fix tests
* prettier
* fix tests again
* fix output logic
* fix jasmine + add annotation
* eclint
* more output logic fixes
* eclint (again)
* more output logic fixes
* fix cnv outputs
* remove obsolete if statement
* fix issue with meta joining
* add family name to the samplesheet and meta
* changes to jasmine subwf + add family merging subwf
* add correct reheadering
* add family merging (does not work rn)
* some more work
* fix repeat VCF error
* add z-score to VCF header
* small fixes to sex defining
* Add proper testing + fix some issues found (#64)
* add vcf creation to wisecondorx
* add qdnaseq vcfs
* update tests
* add a simple qdnaseq filter
* small fix in the wisecondorx config
* small naming fix
* add jasmine
* fix for config?
* fix tests
* prettier
* fix tests again
* fix output logic
* fix jasmine + add annotation
* eclint
* more output logic fixes
* eclint (again)
* more output logic fixes
* fix cnv outputs
* remove obsolete if statement
* fix issue with meta joining
* add family name to the samplesheet and meta
* changes to jasmine subwf + add family merging subwf
* add correct reheadering
* add family merging (does not work rn)
* some more work
* fix repeat VCF error
* first commit
* add z-score to VCF header
* small fixes to sex defining
* add test for bam_cnv_calling
* test bam_prepare_samtools
* test bam_repeat_estimation_expansionhunter
* test bam_sv_calling
* test bam_variant_calling_delly
* test bam_variant_calling_gridss
* test bam_variant_calling_manta
* test bam_variant_calling_qdnaseq
* test bam_variant_calling_smoove
* test bam_variant_calling_wisecondorx
* uniformize config
* test vcf_annotate_vep_annotsv_vcfanno
* test vcf_concat_bcftools
* test vcf_merge_callers_jasmine
* fix header
* update vep annotations
* oops
* add gnomad to vep
* revert vep container changes
* add sift
* fix merge crams with families
* fix join duplication for replicates
* fully test jasmine family merge
* uniformize tests
* fix duplication glitch
* add pipeline tests for callers
* add families tests
* add duplicates tests
* remove old tests and add new tests to ci
* fix linting
* use nf-core dev for linting
* update minimum nextflow version
* revert nf-core version to latest
* upload artifacts
* fix artifacts
* only upload nf-test folder
* fix artifact again?
* fix artifact again?
* fix artifact again?
* prettier
* only get artifacts on failure
* only get artifacts on failure
* only get artifacts on failure
* fix qdnaseq test
* set nf-test to v0.8.1
* try to fix permission errors
* update family jasmine tests
* small clarification in the header
* Fix annotsv TCL error (#69)
* add vcf creation to wisecondorx
* add qdnaseq vcfs
* update tests
* add a simple qdnaseq filter
* small fix in the wisecondorx config
* small naming fix
* add jasmine
* fix for config?
* fix tests
* prettier
* fix tests again
* fix output logic
* fix jasmine + add annotation
* eclint
* more output logic fixes
* eclint (again)
* more output logic fixes
* fix cnv outputs
* remove obsolete if statement
* fix issue with meta joining
* add family name to the samplesheet and meta
* changes to jasmine subwf + add family merging subwf
* add correct reheadering
* add family merging (does not work rn)
* some more work
* fix repeat VCF error
* first commit
* add z-score to VCF header
* small fixes to sex defining
* add test for bam_cnv_calling
* test bam_prepare_samtools
* test bam_repeat_estimation_expansionhunter
* test bam_sv_calling
* test bam_variant_calling_delly
* test bam_variant_calling_gridss
* test bam_variant_calling_manta
* test bam_variant_calling_qdnaseq
* test bam_variant_calling_smoove
* test bam_variant_calling_wisecondorx
* uniformize config
* test vcf_annotate_vep_annotsv_vcfanno
* test vcf_concat_bcftools
* test vcf_merge_callers_jasmine
* fix header
* update vep annotations
* oops
* add gnomad to vep
* revert vep container changes
* add sift
* fix merge crams with families
* fix join duplication for replicates
* fully test jasmine family merge
* uniformize tests
* fix duplication glitch
* add pipeline tests for callers
* add families tests
* add duplicates tests
* remove old tests and add new tests to ci
* fix linting
* use nf-core dev for linting
* update minimum nextflow version
* revert nf-core version to latest
* upload artifacts
* fix artifacts
* only upload nf-test folder
* fix artifact again?
* fix artifact again?
* fix artifact again?
* prettier
* only get artifacts on failure
* only get artifacts on failure
* only get artifacts on failure
* fix qdnaseq test
* set nf-test to v0.8.1
* try to fix permission errors
* update family jasmine tests
* split annotsv input files by svtype and merge them back
* small clarification in the header
* fix bcftools concat issue
* fix linting
* don't lint .prettierignore
* Add Svync standardization + other fixes (#72)
* add vcf creation to wisecondorx
* add qdnaseq vcfs
* update tests
* add a simple qdnaseq filter
* small fix in the wisecondorx config
* small naming fix
* add jasmine
* fix for config?
* fix tests
* prettier
* fix tests again
* fix output logic
* fix jasmine + add annotation
* eclint
* more output logic fixes
* eclint (again)
* more output logic fixes
* fix cnv outputs
* remove obsolete if statement
* fix issue with meta joining
* add family name to the samplesheet and meta
* changes to jasmine subwf + add family merging subwf
* add correct reheadering
* add family merging (does not work rn)
* some more work
* fix repeat VCF error
* first commit
* add z-score to VCF header
* small fixes to sex defining
* add test for bam_cnv_calling
* test bam_prepare_samtools
* test bam_repeat_estimation_expansionhunter
* test bam_sv_calling
* test bam_variant_calling_delly
* test bam_variant_calling_gridss
* test bam_variant_calling_manta
* test bam_variant_calling_qdnaseq
* test bam_variant_calling_smoove
* test bam_variant_calling_wisecondorx
* uniformize config
* test vcf_annotate_vep_annotsv_vcfanno
* test vcf_concat_bcftools
* test vcf_merge_callers_jasmine
* fix header
* update vep annotations
* oops
* add gnomad to vep
* revert vep container changes
* add sift
* fix merge crams with families
* fix join duplication for replicates
* fully test jasmine family merge
* uniformize tests
* fix duplication glitch
* add pipeline tests for callers
* add families tests
* add duplicates tests
* remove old tests and add new tests to ci
* fix linting
* use nf-core dev for linting
* update minimum nextflow version
* revert nf-core version to latest
* upload artifacts
* fix artifacts
* only upload nf-test folder
* fix artifact again?
* fix artifact again?
* fix artifact again?
* prettier
* only get artifacts on failure
* only get artifacts on failure
* only get artifacts on failure
* fix qdnaseq test
* set nf-test to v0.8.1
* try to fix permission errors
* update family jasmine tests
* split annotsv input files by svtype and merge them back
* small clarification in the header
* fix bcftools concat issue
* fix linting
* don't lint .prettierignore
* deprecate gridss for now
* implement delly svync
* implement manta svync
* implement smoove svync
* add better headering to merge callers
* small fix to bcftools annotate
* fix headers for family merging
* remove unused assets
* fix some stability issues
* simplify expansionhunter handling
* reheader with bcftools/reheader again
* fix the headering once and for all
* add a quick view statement
* change view to dump
* rename dump tag
* extra dump
* fix join issue
* fix header issues with annotsv
* add missing header line for annotsv
* fix callers info field
* remove some views
* add views for hpc debugging
* a workaround for double variants in annotsv
* a workaround for double variants in annotsv try 2
* remove view statements
* fix join error?
* fix some linting issues
* don't test gridss
* drop pinned nf-test version
* disable gridss tests for real
* fix some tests
* update subwf tests
* update pipeline tests
* fix annotate tests?
* fix annotate tests again?
* add views to annotation test
* fix join error + fix test jasmine
* revert join error changes?
* another try to fix weird join error
* join error fix try 3
* join error fix try 4
* join error fix try 5
* join error fix try 6
* join error fix try 7
* Template v2.13.1 sync + update all modules (#73)
* Template update for nf-core/tools version 2.6
* Template update for nf-core/tools version 2.7.2
* update pipeline name
* update test-data repo name
* update test data config name
* update pipeline name
* update pipeline name
* update nf-core yaml
* Template update for nf-core/tools version 2.13.1
* Merge branch 'TEMPLATE' into template-v2.13.1-sync
* fix some linting issues
* update all modules
* fix subwf in modules json
* remove unused code
* remove unused code
* fix jasminesv
* fix eclint
* prettier
* have nf-test in the CI
* fix samtools convert stub
* prettier
* fix tabix outputs + tests
* update test snapshots
* remove views
* rearrange joins
* revert last commit
* another try :crossed_fingers:
* another try 2 :crossed_fingers:
* try adding by
* fix wrong versions yml
* patch bcftools concat
* fix bcftools concat versions
* fix delly svync config
* use midnighter's approach of joining channels
* fix linting
* fix test
* Create beautiful docs with mkdocs (#74)
* create beautiful docs
* some small fixes
* set dev version to beta version
* Docs 0.1.0dev (#75)
* update docs
* fix linting
* update description of pipeline
* docs-output (#76)
* docs
* parameters.md adapted
* relative links
* comments for docs-output PR
* parameters.md correction
* Last fixes before v0.1.0 release (#77)
* fix tests
* some esthetic fixes
* move the logo in the metro map
* made the metro map logo a bit smaller
* update parameter docs
* bump to version 0.1.0
* update to dev version
* update docs building
* try to fix the doc building action
* merge master into dev
* Add keyword shortcuts to the `--callers` parameter (#85)
* add more keywords + update docs
* update tests
* prettier
* fix tests
* bump wisecondorx to v1.2.6 (#87)
* bump wisecondorx to v1.2.6
* add missing arguments to wisecondorx predict
* add seed 0
* Fix a wisecondorx arg typo
* Fix smoove output when using `--output_callers` (#89)
* fix smoove output
* fix copy paste error
* fix smoove tests
* update changelog
* Make the workflow pluggable (#91)
* make main workflow pluggable
* update svync config handling
* update bedgovcf config handling
* pluggable annotation workflow
* update bam_cnv_calling test
* update all modules
* another wave of module updates
* let the pipeline run again
* fix last modules
* make editorconfig happy
* fix tests
* Update/fix annotsv + add HPO terms (#93)
* make main workflow pluggable
* update svync config handling
* update bedgovcf config handling
* pluggable annotation workflow
* update bam_cnv_calling test
* update all modules
* another wave of module updates
* let the pipeline run again
* fix last modules
* make editorconfig happy
* fix tests
* update annotsv
* add hpo terms
* re-add samples to samplesheet
* fix the annotsv tests
* update changelog
* bump version to 0.2.0
* fix wrongly merged conflict in modules.config
* fix another weird issue
* use latest vep version
---------
Co-authored-by: mvheetve <57952494+mvheetve@users.noreply.github.com>
---
.github/workflows/build-docs.yml | 10 +-
CHANGELOG.md | 24 +
assets/multiqc_config.yml | 4 +-
assets/schema_input.json | 5 +
assets/test.npz | 0
conf/modules.config | 117 ++---
conf/test.config | 2 +-
docs/parameters.md | 18 +-
main.nf | 60 ++-
modules.json | 48 +-
.../nf-core/annotsv/annotsv/environment.yml | 7 +
modules/nf-core/annotsv/annotsv/main.nf | 20 +-
modules/nf-core/annotsv/annotsv/meta.yml | 8 +-
.../annotsv/annotsv/tests/main.nf.test | 52 +++
.../annotsv/annotsv/tests/main.nf.test.snap | 63 +++
.../annotsv/annotsv/tests/nextflow.config | 5 +
.../nf-core/annotsv/annotsv/tests/tags.yml | 2 +
.../installannotations/environment.yml | 2 +-
.../annotsv/installannotations/main.nf | 5 +-
.../annotsv/installannotations/meta.yml | 2 +-
.../installannotations/tests/main.nf.test | 25 +
.../tests/main.nf.test.snap | 29 ++
.../annotsv/installannotations/tests/tags.yml | 2 +
modules/nf-core/bcftools/annotate/main.nf | 4 +-
.../bcftools/annotate/tests/bcf.config | 6 +
.../bcftools/annotate/tests/main.nf.test | 108 +++++
.../bcftools/annotate/tests/main.nf.test.snap | 79 ++++
.../nf-core/bcftools/annotate/tests/tags.yml | 2 +
.../bcftools/annotate/tests/vcf.config | 6 +
modules/nf-core/bcftools/concat/main.nf | 14 +-
modules/nf-core/bcftools/concat/meta.yml | 8 +-
.../bcftools/concat/tests/main.nf.test | 99 ++++
.../bcftools/concat/tests/main.nf.test.snap | 101 ++++
.../bcftools/concat/tests/nextflow.config | 3 +
.../nf-core/bcftools/concat/tests/tags.yml | 2 +
modules/nf-core/bcftools/filter/main.nf | 4 +-
modules/nf-core/bcftools/filter/meta.yml | 4 +-
.../bcftools/filter/tests/main.nf.test | 82 ++++
.../bcftools/filter/tests/main.nf.test.snap | 101 ++++
.../bcftools/filter/tests/nextflow.config | 3 +
.../nf-core/bcftools/filter/tests/tags.yml | 2 +
modules/nf-core/bcftools/sort/main.nf | 4 +-
.../nf-core/bcftools/sort/tests/main.nf.test | 54 +++
.../bcftools/sort/tests/main.nf.test.snap | 68 +++
modules/nf-core/bcftools/sort/tests/tags.yml | 2 +
modules/nf-core/bedgovcf/environment.yml | 2 +-
modules/nf-core/bedgovcf/main.nf | 6 +-
.../nf-core/bedgovcf/tests/main.nf.test.snap | 20 +-
modules/nf-core/delly/call/environment.yml | 2 +-
modules/nf-core/delly/call/main.nf | 10 +-
modules/nf-core/delly/call/meta.yml | 10 +
modules/nf-core/delly/call/tests/main.nf.test | 187 ++++++++
.../delly/call/tests/main.nf.test.snap | 247 ++++++++++
modules/nf-core/delly/call/tests/tags.yml | 2 +
modules/nf-core/delly/call/tests/vcf.config | 5 +
.../ensemblvep/download/environment.yml | 2 +-
modules/nf-core/ensemblvep/download/main.nf | 14 +-
.../ensemblvep/download/tests/main.nf.test | 60 +++
.../download/tests/main.nf.test.snap | 322 +++++++++++++
.../ensemblvep/download/tests/nextflow.config | 12 +
.../ensemblvep/download/tests/tags.yml | 2 +
.../nf-core/ensemblvep/vep/environment.yml | 2 +-
modules/nf-core/ensemblvep/vep/main.nf | 10 +-
.../nf-core/ensemblvep/vep/tests/main.nf.test | 40 +-
.../ensemblvep/vep/tests/main.nf.test.snap | 26 ++
.../ensemblvep/vep/tests/nextflow.config | 11 +-
.../nf-core/expansionhunter/environment.yml | 2 +
modules/nf-core/expansionhunter/main.nf | 8 +-
.../expansionhunter/tests/main.nf.test | 35 +-
.../expansionhunter/tests/main.nf.test.snap | 133 +++++-
modules/nf-core/gawk/main.nf | 5 +-
modules/nf-core/gawk/tests/main.nf.test | 56 +++
modules/nf-core/gawk/tests/main.nf.test.snap | 68 +++
modules/nf-core/gawk/tests/nextflow.config | 6 +
.../tests/nextflow_with_program_file.config | 5 +
modules/nf-core/gawk/tests/tags.yml | 2 +
modules/nf-core/gridss/gridss/environment.yml | 7 +
modules/nf-core/gridss/gridss/main.nf | 7 +-
modules/nf-core/gridss/gridss/meta.yml | 6 +-
modules/nf-core/jasminesv/environment.yml | 1 +
modules/nf-core/jasminesv/main.nf | 6 +-
modules/nf-core/jasminesv/meta.yml | 16 +-
modules/nf-core/jasminesv/tests/iris.config | 6 +
modules/nf-core/jasminesv/tests/main.nf.test | 185 ++++++++
.../nf-core/jasminesv/tests/main.nf.test.snap | 167 +++++++
.../nf-core/jasminesv/tests/normalize.config | 5 +
modules/nf-core/jasminesv/tests/tags.yml | 2 +
.../manta/convertinversion/environment.yml | 2 +-
.../nf-core/manta/convertinversion/main.nf | 13 +
.../nf-core/manta/convertinversion/meta.yml | 9 +
.../manta/convertinversion/tests/main.nf.test | 92 ++++
.../convertinversion/tests/main.nf.test.snap | 85 ++++
.../manta/convertinversion/tests/tags.yml | 2 +
modules/nf-core/manta/germline/main.nf | 6 +-
.../nf-core/manta/germline/tests/main.nf.test | 162 +++++++
.../manta/germline/tests/main.nf.test.snap | 139 ++++++
.../manta/germline/tests/nextflow.config | 5 +
modules/nf-core/manta/germline/tests/tags.yml | 2 +
modules/nf-core/ngsbits/samplegender/meta.yml | 2 +-
.../ngsbits/samplegender/tests/main.nf.test | 47 ++
.../samplegender/tests/main.nf.test.snap | 35 ++
.../ngsbits/samplegender/tests/tags.yml | 2 +
.../samtools/convert/samtools-convert.diff | 2 +-
.../samtools/convert/tests/main.nf.test | 32 ++
.../samtools/convert/tests/main.nf.test.snap | 65 +++
.../nf-core/samtools/faidx/environment.yml | 3 +-
modules/nf-core/samtools/faidx/meta.yml | 4 +
.../nf-core/samtools/faidx/tests/main.nf.test | 122 +++++
.../samtools/faidx/tests/main.nf.test.snap | 249 ++++++++++
.../samtools/faidx/tests/nextflow.config | 7 +
.../samtools/faidx/tests/nextflow2.config | 6 +
modules/nf-core/samtools/faidx/tests/tags.yml | 2 +
modules/nf-core/wisecondorx/convert/main.nf | 8 +-
modules/nf-core/wisecondorx/convert/meta.yml | 2 +-
.../wisecondorx/convert/tests/main.nf.test | 97 ++++
.../convert/tests/main.nf.test.snap | 107 +++++
.../wisecondorx/convert/tests/tags.yml | 2 +
modules/nf-core/wisecondorx/predict/main.nf | 8 +-
modules/nf-core/wisecondorx/predict/meta.yml | 4 +-
.../wisecondorx/predict/tests/main.nf.test | 65 +++
.../predict/tests/main.nf.test.snap | 65 +++
.../wisecondorx/predict/tests/tags.yml | 2 +
nextflow.config | 8 +-
nextflow_schema.json | 62 +--
subworkflows/local/bam_cnv_calling/main.nf | 10 +-
subworkflows/local/bam_sv_calling/main.nf | 20 +-
.../local/bam_variant_calling_delly/main.nf | 22 +-
.../local/bam_variant_calling_manta/main.nf | 12 +-
.../local/bam_variant_calling_qdnaseq/main.nf | 12 +-
.../local/bam_variant_calling_smoove/main.nf | 34 +-
.../bam_variant_calling_wisecondorx/main.nf | 22 +-
.../vcf_annotate_vep_annotsv_vcfanno/main.nf | 39 +-
.../local/vcf_merge_callers_jasmine/main.nf | 4 +-
.../local/vcf_merge_family_jasmine/main.nf | 4 +-
tests/nextflow.config | 4 +
tests/pipeline/all_types/all.nf.test | 65 ++-
tests/pipeline/all_types/all.nf.test.snap | 442 +++++++++++-------
tests/pipeline/cnv/cnv.nf.test | 2 +-
tests/pipeline/families/families.nf.test | 8 +-
tests/pipeline/sv/sv.nf.test | 2 +-
.../local/bam_cnv_calling/main.nf.test | 31 +-
.../local/bam_prepare_samtools/main.nf.test | 26 +-
.../bam_prepare_samtools/main.nf.test.snap | 28 +-
.../main.nf.test.snap | 14 +-
.../local/bam_sv_calling/main.nf.test | 63 +--
.../local/bam_sv_calling/main.nf.test.snap | 4 +-
.../bam_variant_calling_delly/main.nf.test | 1 +
.../main.nf.test.snap | 12 +-
.../bam_variant_calling_manta/main.nf.test | 1 +
.../bam_variant_calling_qdnaseq/main.nf.test | 1 +
.../bam_variant_calling_smoove/main.nf.test | 1 +
.../main.nf.test.snap | 4 +-
.../main.nf.test | 1 +
.../main.nf.test.snap | 12 +-
.../main.nf.test | 41 +-
.../main.nf.test.snap | 78 +++-
.../nextflow.config | 6 +-
workflows/structural.nf | 265 ++++++-----
158 files changed, 5032 insertions(+), 770 deletions(-)
create mode 100644 assets/test.npz
create mode 100644 modules/nf-core/annotsv/annotsv/environment.yml
create mode 100644 modules/nf-core/annotsv/annotsv/tests/main.nf.test
create mode 100644 modules/nf-core/annotsv/annotsv/tests/main.nf.test.snap
create mode 100644 modules/nf-core/annotsv/annotsv/tests/nextflow.config
create mode 100644 modules/nf-core/annotsv/annotsv/tests/tags.yml
create mode 100644 modules/nf-core/annotsv/installannotations/tests/main.nf.test
create mode 100644 modules/nf-core/annotsv/installannotations/tests/main.nf.test.snap
create mode 100644 modules/nf-core/annotsv/installannotations/tests/tags.yml
create mode 100644 modules/nf-core/bcftools/annotate/tests/bcf.config
create mode 100644 modules/nf-core/bcftools/annotate/tests/main.nf.test
create mode 100644 modules/nf-core/bcftools/annotate/tests/main.nf.test.snap
create mode 100644 modules/nf-core/bcftools/annotate/tests/tags.yml
create mode 100644 modules/nf-core/bcftools/annotate/tests/vcf.config
create mode 100644 modules/nf-core/bcftools/concat/tests/main.nf.test
create mode 100644 modules/nf-core/bcftools/concat/tests/main.nf.test.snap
create mode 100644 modules/nf-core/bcftools/concat/tests/nextflow.config
create mode 100644 modules/nf-core/bcftools/concat/tests/tags.yml
create mode 100644 modules/nf-core/bcftools/filter/tests/main.nf.test
create mode 100644 modules/nf-core/bcftools/filter/tests/main.nf.test.snap
create mode 100644 modules/nf-core/bcftools/filter/tests/nextflow.config
create mode 100644 modules/nf-core/bcftools/filter/tests/tags.yml
create mode 100644 modules/nf-core/bcftools/sort/tests/main.nf.test
create mode 100644 modules/nf-core/bcftools/sort/tests/main.nf.test.snap
create mode 100644 modules/nf-core/bcftools/sort/tests/tags.yml
create mode 100644 modules/nf-core/delly/call/tests/main.nf.test
create mode 100644 modules/nf-core/delly/call/tests/main.nf.test.snap
create mode 100644 modules/nf-core/delly/call/tests/tags.yml
create mode 100644 modules/nf-core/delly/call/tests/vcf.config
create mode 100644 modules/nf-core/ensemblvep/download/tests/main.nf.test
create mode 100644 modules/nf-core/ensemblvep/download/tests/main.nf.test.snap
create mode 100644 modules/nf-core/ensemblvep/download/tests/nextflow.config
create mode 100644 modules/nf-core/ensemblvep/download/tests/tags.yml
create mode 100644 modules/nf-core/ensemblvep/vep/tests/main.nf.test.snap
create mode 100644 modules/nf-core/gawk/tests/main.nf.test
create mode 100644 modules/nf-core/gawk/tests/main.nf.test.snap
create mode 100644 modules/nf-core/gawk/tests/nextflow.config
create mode 100644 modules/nf-core/gawk/tests/nextflow_with_program_file.config
create mode 100644 modules/nf-core/gawk/tests/tags.yml
create mode 100644 modules/nf-core/gridss/gridss/environment.yml
create mode 100644 modules/nf-core/jasminesv/tests/iris.config
create mode 100644 modules/nf-core/jasminesv/tests/main.nf.test
create mode 100644 modules/nf-core/jasminesv/tests/main.nf.test.snap
create mode 100644 modules/nf-core/jasminesv/tests/normalize.config
create mode 100644 modules/nf-core/jasminesv/tests/tags.yml
create mode 100644 modules/nf-core/manta/convertinversion/tests/main.nf.test
create mode 100644 modules/nf-core/manta/convertinversion/tests/main.nf.test.snap
create mode 100644 modules/nf-core/manta/convertinversion/tests/tags.yml
create mode 100644 modules/nf-core/manta/germline/tests/main.nf.test
create mode 100644 modules/nf-core/manta/germline/tests/main.nf.test.snap
create mode 100644 modules/nf-core/manta/germline/tests/nextflow.config
create mode 100644 modules/nf-core/manta/germline/tests/tags.yml
create mode 100644 modules/nf-core/ngsbits/samplegender/tests/main.nf.test
create mode 100644 modules/nf-core/ngsbits/samplegender/tests/main.nf.test.snap
create mode 100644 modules/nf-core/ngsbits/samplegender/tests/tags.yml
create mode 100644 modules/nf-core/samtools/faidx/tests/main.nf.test
create mode 100644 modules/nf-core/samtools/faidx/tests/main.nf.test.snap
create mode 100644 modules/nf-core/samtools/faidx/tests/nextflow.config
create mode 100644 modules/nf-core/samtools/faidx/tests/nextflow2.config
create mode 100644 modules/nf-core/samtools/faidx/tests/tags.yml
create mode 100644 modules/nf-core/wisecondorx/convert/tests/main.nf.test
create mode 100644 modules/nf-core/wisecondorx/convert/tests/main.nf.test.snap
create mode 100644 modules/nf-core/wisecondorx/convert/tests/tags.yml
create mode 100644 modules/nf-core/wisecondorx/predict/tests/main.nf.test
create mode 100644 modules/nf-core/wisecondorx/predict/tests/main.nf.test.snap
create mode 100644 modules/nf-core/wisecondorx/predict/tests/tags.yml
diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
index ac17c97c..a7eded4d 100644
--- a/.github/workflows/build-docs.yml
+++ b/.github/workflows/build-docs.yml
@@ -18,8 +18,11 @@ jobs:
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- - name: Obtain version from MANIFEST.MF
- run: echo "pipeline_version=$(grep "version" nextflow.config | tail -1 | sed -e s'/[^=]*= //' | cut -d "'" -f 2)" >> $GITHUB_ENV
+ - name: Obtain version from nextflow config
+ run: |
+ version=$(grep "version" nextflow.config | tail -1 | sed -e s'/[^=]*= //' | cut -d "'" -f 2)
+ [[ $version == *"dev"* ]] && pipeline_version="dev" || pipeline_version=$version
+ echo "pipeline_version=$pipeline_version" >> $GITHUB_ENV
- name: Setup git user
run: |
git config --global user.name "${{github.actor}}"
@@ -33,6 +36,7 @@ jobs:
- name: Install dependencies
run: pip install mkdocs-material pymdown-extensions pillow cairosvg mike
- name: Build docs
- run: mike deploy --push --update-aliases ${{ env.pipeline_version }} latest
+ run: |
+ [[ ${{ env.pipeline_version }} == "dev" ]] && mike deploy --push ${{ env.pipeline_version }} || mike deploy --push --update-aliases ${{ env.pipeline_version }} latest
- name: Set default docs
run: mike set-default --push latest
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d604104..e40e5264 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,34 @@
# nf-cmgg/structural: Changelog
+# nf-cmgg/structural: Changelog
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).
+## v0.2.0 - [19 July 2024] - Mighty Manneken Pis
+
+### `Added`
+
+1. Added keyword shortcuts to the `--callers` parameter (these can also be used as comma-separated entries to the parameter):
+ - `all`: Use all callers available in the pipeline
+ - `sv`: Use all SV callers available in the pipeline
+ - `cnv`: Use all CNV callers available in the pipeline
+ - `rre`: Use all repeat region expansion callers available in the pipeline
+2. Added the possibilty to annotate on HPO terms. Add the right HPO terms to the samplesheet in the `hpo` field
+
+### `Changes`
+
+1. Updated all WisecondorX modules to version 1.2.6 and added the `--seed` argument to `WisecondorX predict`
+2. Removed support for the `phenotypes` VEP plugin. Common VEP plugin support will be added later
+3. Made the main workflow pluggable, making it possible to use this pipeline in a meta pipeline
+4. Updated all modules to their latest version
+
+### `Fixed`
+
+1. The smoove outputs are now correct when using `--output_callers`
+
## v0.1.0 - [3 April 2024] - Amazing Atomium
+Initial release of nf-cmgg/structural, created with the [nf-core](https://nf-co.re/) template.
Initial release of nf-cmgg/structural, created with the [nf-core](https://nf-co.re/) template.
### `Added`
diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml
index fa0a9adc..dc167595 100644
--- a/assets/multiqc_config.yml
+++ b/assets/multiqc_config.yml
@@ -1,6 +1,6 @@
report_comment: >
- This report has been generated by the nf-core/structural analysis pipeline. For information about how to interpret these results, please see the documentation.
+ This report has been generated by the nf-core/structural analysis pipeline. For information about how to interpret these results, please see the documentation.
report_section_order:
"nf-cmgg-structural-methods-description":
order: -1000
diff --git a/assets/schema_input.json b/assets/schema_input.json
index 358cd2d1..62dec9ff 100644
--- a/assets/schema_input.json
+++ b/assets/schema_input.json
@@ -41,6 +41,11 @@
"type": "string",
"meta": ["sex"],
"enum": ["male", "female"]
+ },
+ "hpo": {
+ "type": "string",
+ "meta": ["hpo"],
+ "description": "HPO terms to be used for annotation with AnnotSV. Should be space or semicolon separated."
}
},
"required": ["sample", "cram"]
diff --git a/assets/test.npz b/assets/test.npz
new file mode 100644
index 00000000..e69de29b
diff --git a/conf/modules.config b/conf/modules.config
index 4180ec0f..f6c31019 100644
--- a/conf/modules.config
+++ b/conf/modules.config
@@ -10,16 +10,24 @@
----------------------------------------------------------------------------------------
*/
-def output_callers = params.output_callers
-def callers = params.callers.tokenize(",")
-def count_types = 0
-
-// When making changes here, make sure to also update the following files: lib/GlobalVariables.groovy
+// When making changes here, make sure to also update the following files: workflows/structural.nf
def svCallers = ["delly", "manta", "smoove"] //, "gridss"
def cnvCallers = ["qdnaseq", "wisecondorx"]
def repeatsCallers = ["expansionhunter"]
def annotationCallers = svCallers + cnvCallers
+def allCallers = svCallers + cnvCallers + repeatsCallers
+
+def output_callers = params.output_callers
+def lower_cased_callers = params.callers.toLowerCase()
+def callers = lower_cased_callers.tokenize(",").collect {
+ if(it == "all") {return allCallers}
+ if(it == "sv") {return svCallers}
+ if(it == "cnv") {return cnvCallers}
+ if(it == "rre") {return repeatsCallers}
+ return it
+}.flatten()
+def count_types = 0
def foundSvCallers = callers.intersect(svCallers)
def foundCnvCallers = callers.intersect(cnvCallers)
@@ -74,7 +82,7 @@ process {
//
if("delly" in callers){
- withName: "^.*:BAM_VARIANT_CALLING_DELLY:DELLY_CALL\$" {
+ withName: "^.*BAM_VARIANT_CALLING_DELLY:DELLY_CALL\$" {
ext.args = {"--svtype ${params.delly_sv_types} --map-qual ${params.delly_map_qual} --min-clique-size ${params.delly_min_clique_size}"}
ext.suffix = "vcf"
ext.prefix = { "${meta.id}.delly" }
@@ -99,7 +107,7 @@ process {
//
// if("whamg" in callers){
- // withName: "^.*:BAM_VARIANT_CALLING_WHAMG:WHAMG\$" {
+ // withName: "^.*BAM_VARIANT_CALLING_WHAMG:WHAMG\$" {
// ext.prefix = { "${meta.id}.whamg" }
// ext.args = {[
// meta.region ? "-r ${meta.region}" : "" ,
@@ -121,22 +129,22 @@ process {
if("manta" in callers){
- withName: "^.*:BAM_VARIANT_CALLING_MANTA:GAWK\$" {
+ withName: "^.*BAM_VARIANT_CALLING_MANTA:GAWK\$" {
ext.suffix = "bed"
ext.prefix = "contigs"
ext.args2 = '\'BEGIN {FS="\t"}; \$1 ~ /^chr[1-9XY][1-9]?\$/ {print \$1 FS "0" FS \$2 }\''
}
- withName: "^.*:MANTA_.*\$" {
+ withName: "^.*MANTA_.*\$" {
container = "quay.io/cmgg/manta:1.6.0"
}
- withName: "^.*:BAM_VARIANT_CALLING_MANTA:MANTA_GERMLINE\$" {
+ withName: "^.*BAM_VARIANT_CALLING_MANTA:MANTA_GERMLINE\$" {
label = "process_high"
cpus = { check_max( 20 * task.attempt, 'cpus' ) }
}
- withName: "^.*:BAM_VARIANT_CALLING_MANTA:MANTA_CONVERTINVERSION\$" {
+ withName: "^.*BAM_VARIANT_CALLING_MANTA:MANTA_CONVERTINVERSION\$" {
ext.prefix = { "${meta.id}.manta" }
publishDir = [[
enabled: !params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
@@ -159,7 +167,7 @@ process {
//
// if("scramble" in callers){
- // withName: "^.*:.*:BAM_VARIANT_CALLING_SCRAMBLE:SCRAMBLE_CLUSTERANALYSIS\$" {
+ // withName: "^.*.*:BAM_VARIANT_CALLING_SCRAMBLE:SCRAMBLE_CLUSTERANALYSIS\$" {
// ext.args = "--eval-meis"
// }
// }
@@ -169,7 +177,7 @@ process {
//
if("smoove" in callers){
- withName: "^.*:BAM_VARIANT_CALLING_SMOOVE:BCFTOOLS_SORT\$" {
+ withName: "^.*BAM_VARIANT_CALLING_SMOOVE:BCFTOOLS_SORT\$" {
ext.prefix = { "${meta.id}.smoove" }
publishDir = [[
enabled: !params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
@@ -186,7 +194,8 @@ process {
]]
}
- withName: "^.*:BAM_VARIANT_CALLING_SMOOVE:TABIX_TABIX\$" {
+ withName: "^.*BAM_VARIANT_CALLING_SMOOVE:TABIX_CALLER\$" {
+ ext.when = output_callers || (!params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output))
publishDir = [[
enabled: !params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -208,7 +217,7 @@ process {
//
if("gridss" in callers){
- withName: "^.*:BAM_VARIANT_CALLING_GRIDSS:GRIDSS_GRIDSS\$" {
+ withName: "^.*BAM_VARIANT_CALLING_GRIDSS:GRIDSS_GRIDSS\$" {
cpus = { check_max( 8 * task.attempt, 'cpus' ) }
memory = { check_max( 32.GB * task.attempt, 'memory' ) }
ext.prefix = { "${meta.id}.gridss" }
@@ -226,7 +235,7 @@ process {
]
}
- withName: "^.*:BAM_VARIANT_CALLING_GRIDSS:TABIX_TABIX\$" {
+ withName: "^.*BAM_VARIANT_CALLING_GRIDSS:TABIX_TABIX\$" {
publishDir = [
enabled: output_callers,
overwrite: true,
@@ -236,13 +245,13 @@ process {
]
}
- withName: "^.*:BAM_VARIANT_CALLING_GRIDSS:VIOLA\$" {
+ withName: "^.*BAM_VARIANT_CALLING_GRIDSS:VIOLA\$" {
time = { check_max( 20.h * task.attempt, 'time') }
ext.prefix = { "${meta.id}.viola" }
ext.args = { meta.read_length ? "--read_length ${meta.read_length}" : ""}
}
- withName: "^.*:BAM_VARIANT_CALLING_GRIDSS:BCFTOOLS_SORT\$" {
+ withName: "^.*BAM_VARIANT_CALLING_GRIDSS:BCFTOOLS_SORT\$" {
ext.prefix = { "${meta.id}.gridss" }
publishDir = [
enabled: !params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
@@ -253,7 +262,7 @@ process {
]
}
- withName: "^.*:BAM_VARIANT_CALLING_GRIDSS:TABIX_TABIX\$" {
+ withName: "^.*BAM_VARIANT_CALLING_GRIDSS:TABIX_TABIX\$" {
publishDir = [
enabled: !params.annotate && foundSvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -274,7 +283,7 @@ process {
if(foundCnvCallers){
if("qdnaseq" in callers) {
- withName: "^.*:BAM_VARIANT_CALLING_QDNASEQ:QDNASEQ.*\$" {
+ withName: "^.*BAM_VARIANT_CALLING_QDNASEQ:QDNASEQ.*\$" {
cpus = 1
memory = { check_max(50.GB * task.attempt, 'memory') }
ext.prefix = { "${meta.id}.qdnaseq" }
@@ -293,7 +302,7 @@ process {
]]
}
- withName: "^.*:BAM_VARIANT_CALLING_QDNASEQ:GAWK\$" {
+ withName: "^.*BAM_VARIANT_CALLING_QDNASEQ:GAWK\$" {
ext.prefix = { "${meta.id}.qdnaseq.abberations" }
ext.suffix = "bed"
ext.args = "-F '\\t'"
@@ -316,7 +325,8 @@ process {
}
if("wisecondorx" in callers) {
- withName: "^.*:BAM_VARIANT_CALLING_WISECONDORX:WISECONDORX_PREDICT\$" {
+ withName: "^.*BAM_VARIANT_CALLING_WISECONDORX:WISECONDORX_PREDICT\$" {
+ ext.args = "--seed 0 --bed --plot"
memory = { check_max(50.GB * task.attempt, 'memory') }
ext.prefix = { "${meta.id}.wisecondorx" }
publishDir = [[
@@ -335,7 +345,7 @@ process {
}
}
- withName: "^.*:BAM_CNV_CALLING:[^:]*:BEDGOVCF\$" {
+ withName: "^.*BAM_CNV_CALLING:[^:]*:BEDGOVCF\$" {
ext.prefix = { "${meta.id}.${meta.caller}" }
ext.args = { meta.caller == "qdnaseq" ? "--skip 1" : "--header" }
publishDir = [[
@@ -353,7 +363,7 @@ process {
]]
}
- withName: "^.*:BAM_CNV_CALLING:[^:]*:TABIX_TABIX\$" {
+ withName: "^.*BAM_CNV_CALLING:[^:]*:TABIX_TABIX\$" {
publishDir = [[
enabled: !params.annotate && foundCnvCallers.size() == 1 && (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -378,7 +388,7 @@ process {
*/
if(foundCnvCallers.size() > 1 || foundSvCallers.size() > 1) {
- withName: "^.*:VCF_MERGE_CALLERS_JASMINE:JASMINESV\$" {
+ withName: "^.*VCF_MERGE_CALLERS_JASMINE:JASMINESV\$" {
ext.args = {[
meta.variant_type == "sv" ? "min_support=${params.sv_callers_support}" : "",
meta.variant_type == "cnv" ? "min_support=${params.cnv_callers_support}" : "",
@@ -386,15 +396,15 @@ process {
].join(' ').trim()}
}
- withName: "^.*:VCF_MERGE_CALLERS_JASMINE:FIX_CALLERS\$" {
+ withName: "^.*VCF_MERGE_CALLERS_JASMINE:FIX_CALLERS\$" {
ext.prefix = { "${meta.id}.callers-corrected" }
}
- withName: "^.*:VCF_MERGE_CALLERS_JASMINE:BCFTOOLS_CONSENSUS_REHEADER\$" {
+ withName: "^.*VCF_MERGE_CALLERS_JASMINE:BCFTOOLS_CONSENSUS_REHEADER\$" {
ext.prefix = { "${meta.id}.reheadered" }
}
- withName: "^.*:VCF_MERGE_CALLERS_JASMINE:BCFTOOLS_SORT\$" {
+ withName: "^.*VCF_MERGE_CALLERS_JASMINE:BCFTOOLS_SORT\$" {
ext.prefix = { "${meta.id}.${meta.variant_type}" }
publishDir = [
enabled: !params.annotate && (count_types == 1 || !params.concat_output),
@@ -405,7 +415,7 @@ process {
]
}
- withName: "^.*:VCF_MERGE_CALLERS_JASMINE:TABIX_TABIX\$" {
+ withName: "^.*VCF_MERGE_CALLERS_JASMINE:TABIX_TABIX\$" {
publishDir = [
enabled: !params.annotate && (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -432,22 +442,26 @@ process {
if(params.annotate){
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_FILTER\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_FILTER\$" {
ext.prefix = {"${meta.id}.filter"}
ext.args = "-e 'GT=\"ref\"' --output-type z"
}
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:ANNOTSV_ANNOTSV\$" {
- ext.args = "-SVminSize 20"
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:ANNOTSV_ANNOTSV\$" {
+ ext.args = {[
+ "-SVminSize 20",
+ "-vcf 1",
+ meta.hpo ? "-hpo ${meta.hpo}" : ""
+ ].join(" ")}
ext.prefix = {"${meta.id}.annot"}
}
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_CONCAT\$" {
- ext.prefix = params.annotsv_file_name
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_CONCAT\$" {
+ ext.prefix = "annotsv_annotated"
ext.args = "--output-type z --naive-force"
}
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:ENSEMBLVEP_VEP\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:ENSEMBLVEP_VEP\$" {
ext.prefix = {"${meta.id}.vep"}
ext.args = {[
// specify we use VCF files
@@ -467,18 +481,16 @@ process {
// create stats file
"--stats_file ${prefix}.summary.html",
// proteins
- '--domains --biotype --canonical --mane --ccds --protein --polyphen s --sift s',
- // plugins
- (params.vep_phenotypes) ? "--plugin Phenotypes,file=${params.phenotypes.split('/')[-1]}": ""
+ '--domains --biotype --canonical --mane --ccds --protein --polyphen s --sift s'
].join(' ').trim()}
}
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:VCFANNO\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:VCFANNO\$" {
ext.args = "-permissive-overlap -ends"
}
if(!params.annotations_filter) {
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:TABIX_ANNOTATED\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:TABIX_ANNOTATED\$" {
ext.prefix = { "${meta.id}.${meta.variant_type}.annotated" }
publishDir = [
enabled: (count_types == 1 || !params.concat_output),
@@ -491,7 +503,7 @@ process {
}
if(params.annotations_filter) {
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_FILTER_COMMON\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:BCFTOOLS_FILTER_COMMON\$" {
ext.prefix = {"${meta.id}.${meta.variant_type}.annotated"}
ext.args = "${params.annotations_filter} --output-type z"
publishDir = [
@@ -504,7 +516,7 @@ process {
}
- withName: "^.*:VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:TABIX_FILTER\$" {
+ withName: "^.*VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO:TABIX_FILTER\$" {
publishDir = [
enabled: (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -525,11 +537,11 @@ process {
if(foundRepeatsCallers){
- withName: "^.*:BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:EXPANSIONHUNTER\$" {
+ withName: "^.*BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:EXPANSIONHUNTER\$" {
ext.args = {"--sex ${meta.sex}"}
}
- withName: "^.*:BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:BCFTOOLS_ANNOTATE\$" {
+ withName: "^.*BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:BCFTOOLS_ANNOTATE\$" {
ext.args = "-c INFO/REPREF:=INFO/REF --output-type z"
ext.prefix = { "${meta.id}.expansionhunter" }
ext.tabix = true
@@ -548,7 +560,7 @@ process {
]]
}
- withName: "^.*:BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:TABIX_TABIX\$" {
+ withName: "^.*BAM_REPEAT_ESTIMATION_EXPANSIONHUNTER:TABIX_TABIX\$" {
publishDir = [[
enabled: (count_types == 1 || !params.concat_output),
overwrite: true,
@@ -573,7 +585,7 @@ process {
if(count_types > 1 && params.concat_output){
- withName: "^.*:VCF_CONCAT_BCFTOOLS:BCFTOOLS_CONCAT\$" {
+ withName: "^.*VCF_CONCAT_BCFTOOLS:BCFTOOLS_CONCAT\$" {
ext.args = "--output-type z --allow-overlaps"
publishDir = [
enabled: true,
@@ -584,7 +596,7 @@ process {
]
}
- withName: "^.*:VCF_CONCAT_BCFTOOLS:TABIX_TABIX\$" {
+ withName: "^.*VCF_CONCAT_BCFTOOLS:TABIX_TABIX\$" {
publishDir = [
enabled: true,
overwrite: true,
@@ -601,30 +613,29 @@ process {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
- withName: "^.*:VCF_MERGE_FAMILY_JASMINE:JASMINESV\$" {
+ withName: "^.*VCF_MERGE_FAMILY_JASMINE:JASMINESV\$" {
ext.args = "--output_genotypes"
}
- withName: "^.*:VCF_MERGE_FAMILY_JASMINE:FIX_CALLERS\$" {
+ withName: "^.*VCF_MERGE_FAMILY_JASMINE:FIX_CALLERS\$" {
ext.prefix = { "${meta.id}.callers-corrected" }
}
- withName: "^.*:VCF_MERGE_FAMILY_JASMINE:BCFTOOLS_CONSENSUS_REHEADER\$" {
+ withName: "^.*VCF_MERGE_FAMILY_JASMINE:BCFTOOLS_CONSENSUS_REHEADER\$" {
ext.prefix = { "${meta.id}.reheadered" }
}
- withName: "^.*:VCF_MERGE_FAMILY_JASMINE:BCFTOOLS_SORT\$" {
+ withName: "^.*VCF_MERGE_FAMILY_JASMINE:BCFTOOLS_SORT\$" {
ext.args = "--output-type z"
publishDir = [
enabled: true,
overwrite: true,
path: { "${params.outdir}/${meta.family}" },
- mode: params.publish_dir_mode,
saveAs: { filename -> filename != "versions.yml" ? filename : null }
]
}
- withName: "^.*:VCF_MERGE_FAMILY_JASMINE:TABIX_TABIX\$" {
+ withName: "^.*VCF_MERGE_FAMILY_JASMINE:TABIX_TABIX\$" {
publishDir = [
enabled: true,
overwrite: true,
diff --git a/conf/test.config b/conf/test.config
index 715a83b6..9c5666fd 100644
--- a/conf/test.config
+++ b/conf/test.config
@@ -27,7 +27,7 @@ params {
// Fasta references
fasta = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/genome/seq/SVcontrol/reference.fasta"
fai = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/genome/seq/SVcontrol/reference.fasta.fai"
- bwa = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/genome/seq/SVcontrol/bwa.tar.gz"
+ // bwa = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/genome/seq/SVcontrol/bwa.tar.gz"
expansionhunter_catalog = params.test_data["homo_sapiens"]["genome"]["expansionhunter"]
qdnaseq_male = params.test_data["homo_sapiens"]["genome"]["genome_qdnaseq"]
qdnaseq_female = params.test_data["homo_sapiens"]["genome"]["genome_qdnaseq"]
diff --git a/docs/parameters.md b/docs/parameters.md
index d3a14c85..5661031a 100644
--- a/docs/parameters.md
+++ b/docs/parameters.md
@@ -82,15 +82,15 @@ Less common options for the pipeline, typically set in a config file.
Options specific to the execution of this pipeline
-| Parameter | Description | Type | Default | Required | Hidden |
-| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- |
-| `callers` | A comma-seperated list of callers to use. Can be one or more these: smoove | delly | manta | gridss | expansionhunter. At the moment Gridss runs very slowly compared to all other tools so it's only advised to use it when it's needed. | `string` | manta,smoove,delly,expansionhunter,wisecondorx | | |
-| `output_callers` | Output the VCF files from different callers. Warning: This produces a lot of additional output and should only be used for testing purposes | `boolean` | | | |
-| `sv_callers_support` | The minimum amount of SV callers that should detect a variant. All variants that have a lower amount of callers supporting it, will be removed. (Only used when more than one caller is given) | `integer` | 1 | | |
-| `cnv_callers_support` | The minimum amount of CNV callers that should detect a variant. All variants that have a lower amount of callers supporting it, will be removed. (Only used when more than one caller is given) | `integer` | 1 | | |
-| `annotate` | Run the annotation with Ensembl VEP and AnnotSV (and optionally VCFanno). | `boolean` | | | |
-| `concat_output` | Also output a concatenated VCF with all variant types analysed included. | `boolean` | | | |
-| `annotations_filter` | The filter arguments to use after annotating. Help
A common use case for this is to filter out common variants. You can supply a VCF file with common variants to VCFanno and filter out the matching variants using this parameter | `string` | | | |
+| Parameter | Description | Type | Default | Required | Hidden |
+| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ---------------------------------------------- | -------- | ------ |
+| `callers` | A comma-seperated list of callers to use. Can be one or more these: smoove/delly/manta/expansionhunter/qdnaseq/wisecondorx. Help
Following keywords can also be used as shortcuts to certain callers:
- all: Use all callers
- sv: Use all SV callers
- cnv: Use all CNV callers
- rre: Use all RRE callers | `string` | manta,smoove,delly,expansionhunter,wisecondorx | | |
+| `output_callers` | Output the VCF files from different callers. Warning: This produces a lot of additional output and should only be used for testing purposes | `boolean` | | | |
+| `sv_callers_support` | The minimum amount of SV callers that should detect a variant. All variants that have a lower amount of callers supporting it, will be removed. (Only used when more than one caller is given) | `integer` | 1 | | |
+| `cnv_callers_support` | The minimum amount of CNV callers that should detect a variant. All variants that have a lower amount of callers supporting it, will be removed. (Only used when more than one caller is given) | `integer` | 1 | | |
+| `annotate` | Run the annotation with Ensembl VEP and AnnotSV (and optionally VCFanno). | `boolean` | | | |
+| `concat_output` | Also output a concatenated VCF with all variant types analysed included. | `boolean` | | | |
+| `annotations_filter` | The filter arguments to use after annotating. Help
A common use case for this is to filter out common variants. You can supply a VCF file with common variants to VCFanno and filter out the matching variants using this parameter | `string` | | | |
## Delly parameters
diff --git a/main.nf b/main.nf
index 89d97d73..8b24bb3b 100644
--- a/main.nf
+++ b/main.nf
@@ -21,15 +21,25 @@ include { getGenomeAttribute } from './subworkflows/local/utils_nfcore_stru
params.fasta = getGenomeAttribute('fasta')
params.fai = getGenomeAttribute('fai')
params.vep_cache = getGenomeAttribute('vep_cache')
-params.bwa = getGenomeAttribute('bwa')
-params.phenotypes = getGenomeAttribute('phenotypes')
-params.phenotypes_tbi = getGenomeAttribute('phenotypes_tbi')
+// params.bwa = getGenomeAttribute('bwa')
params.annotsv_annotations = getGenomeAttribute('annotsv_annotations')
params.expansionhunter_catalog = getGenomeAttribute('expansionhunter_catalog')
params.qdnaseq_male = getGenomeAttribute("qdnaseq_male_${params.qdnaseq_bin_size.toInteger() / 1000}kbp".toString())
params.qdnaseq_female = getGenomeAttribute("qdnaseq_female_${params.qdnaseq_bin_size.toInteger() / 1000}kbp".toString())
params.wisecondorx_reference = getGenomeAttribute('wisecondorx_reference')
+/*
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CONFIG FILES
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*/
+
+ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true)
+ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty()
+ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty()
+ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true)
+
+
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORT FUNCTIONS / MODULES / SUBWORKFLOWS / WORKFLOWS
@@ -40,8 +50,6 @@ include { STRUCTURAL } from './workflows/structural'
include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_structural_pipeline'
include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_structural_pipeline'
-
-
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NAMED WORKFLOWS FOR PIPELINE
@@ -62,7 +70,47 @@ workflow NFCMGG_STRUCTURAL {
// WORKFLOW: Run pipeline
//
STRUCTURAL (
- samplesheet
+ // channels
+ samplesheet,
+ ch_multiqc_config,
+ ch_multiqc_custom_config,
+ ch_multiqc_logo,
+ ch_multiqc_custom_methods_description,
+
+ // file inputs
+ params.fasta,
+ params.fai,
+ params.expansionhunter_catalog ?: "https://github.com/Illumina/ExpansionHunter/raw/master/variant_catalog/grch38/variant_catalog.json",
+ params.qdnaseq_female,
+ params.qdnaseq_male,
+ params.wisecondorx_reference,
+ params.vep_cache,
+ params.annotsv_annotations,
+ params.annotsv_candidate_genes,
+ params.annotsv_gene_transcripts,
+ params.vcfanno_lua,
+ params.vcfanno_resources,
+ params.vcfanno_toml,
+ params.blacklist,
+ params.manta_config ?: "${projectDir}/assets/manta_config.ini",
+ "${projectDir}/assets/svync",
+ "${projectDir}/assets/bedgovcf",
+ "${projectDir}/assets/vcfanno",
+
+ // boolean inputs
+ params.annotate,
+ params.concat_output,
+
+ // value inputs
+ params.callers,
+ params.sv_callers_support,
+ params.cnv_callers_support,
+ params.genome,
+ params.species,
+ params.vep_assembly,
+ params.vep_cache_version,
+ params.annotations_filter,
+ params.outdir
)
emit:
diff --git a/modules.json b/modules.json
index 3cf03ef4..d15be54c 100644
--- a/modules.json
+++ b/modules.json
@@ -7,41 +7,39 @@
"nf-core": {
"annotsv/annotsv": {
"branch": "master",
- "git_sha": "a8741f8d429a47dfe07f64e776187318519a8f2b",
- "installed_by": ["modules"],
- "patch": "modules/nf-core/annotsv/annotsv/annotsv-annotsv.diff"
+ "git_sha": "a94ad45fa5b350961c374c46f79bc86cd5853353",
+ "installed_by": ["modules"]
},
"annotsv/installannotations": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "a94ad45fa5b350961c374c46f79bc86cd5853353",
"installed_by": ["modules"]
},
"bcftools/annotate": {
"branch": "master",
- "git_sha": "44096c08ffdbc694f5f92ae174ea0f7ba0f37e09",
+ "git_sha": "2ad29c2aed06d815d9f68ad7ba20b3b1c574ce9c",
"installed_by": ["modules"],
"patch": "modules/nf-core/bcftools/annotate/bcftools-annotate.diff"
},
"bcftools/concat": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
- "installed_by": ["modules"],
- "patch": "modules/nf-core/bcftools/concat/bcftools-concat.diff"
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
+ "installed_by": ["modules"]
},
"bcftools/filter": {
"branch": "master",
- "git_sha": "44096c08ffdbc694f5f92ae174ea0f7ba0f37e09",
+ "git_sha": "a3893076a76e91b3ff152faddf872f00778fb224",
"installed_by": ["modules"],
"patch": "modules/nf-core/bcftools/filter/bcftools-filter.diff"
},
"bcftools/sort": {
"branch": "master",
- "git_sha": "44096c08ffdbc694f5f92ae174ea0f7ba0f37e09",
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
"installed_by": ["modules"]
},
"bedgovcf": {
"branch": "master",
- "git_sha": "338a5572efbda56110cea2f657615920d8dce58c",
+ "git_sha": "71a96063a7e09be7ea48f069d134a56ce86c9ba6",
"installed_by": ["modules"]
},
"bwa/index": {
@@ -51,50 +49,50 @@
},
"delly/call": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "92bf2a8afa318a64f9d333cf87b510c662fd4274",
"installed_by": ["modules"],
"patch": "modules/nf-core/delly/call/delly-call.diff"
},
"ensemblvep/download": {
"branch": "master",
- "git_sha": "214d575774c172062924ad3564b4f66655600730",
+ "git_sha": "3db4f8488315cd7d7cf3fcb64251f6603210e831",
"installed_by": ["modules"]
},
"ensemblvep/vep": {
"branch": "master",
- "git_sha": "76a0696a60c41c57fc5f6040ac31b11ce5d4d8dd",
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
"installed_by": ["modules"]
},
"expansionhunter": {
"branch": "master",
- "git_sha": "3c4b0007393248aa7419a9ec3d14f391cd702f48",
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
"installed_by": ["modules"]
},
"gawk": {
"branch": "master",
- "git_sha": "dc3527855e7358c6d8400828754c0caa5f11698f",
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
"installed_by": ["modules"]
},
"gridss/gridss": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
"installed_by": ["modules"],
"patch": "modules/nf-core/gridss/gridss/gridss-gridss.diff"
},
"jasminesv": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "92bf2a8afa318a64f9d333cf87b510c662fd4274",
"installed_by": ["modules"],
"patch": "modules/nf-core/jasminesv/jasminesv.diff"
},
"manta/convertinversion": {
"branch": "master",
- "git_sha": "1e2b7fb7106852388610c0360d234b0829eb980e",
+ "git_sha": "92bf2a8afa318a64f9d333cf87b510c662fd4274",
"installed_by": ["modules"]
},
"manta/germline": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "ebc1733b77c702f19fe42076a5edfcbaa0d84f66",
"installed_by": ["modules"]
},
"multiqc": {
@@ -104,18 +102,18 @@
},
"ngsbits/samplegender": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "023e119cfa102f319b6dcfd06abecf7f3c2b8df1",
"installed_by": ["modules"]
},
"samtools/convert": {
"branch": "master",
- "git_sha": "1b93e06140e6807cc408519759f68bd26da63a00",
+ "git_sha": "b42fec6f7c6e5d0716685cabb825ef6bf6e386b5",
"installed_by": ["modules"],
"patch": "modules/nf-core/samtools/convert/samtools-convert.diff"
},
"samtools/faidx": {
"branch": "master",
- "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62",
+ "git_sha": "f153f1f10e1083c49935565844cccb7453021682",
"installed_by": ["modules"]
},
"samtools/index": {
@@ -160,12 +158,12 @@
},
"wisecondorx/convert": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "dc7e9607d9977555ca1235a51a40d097bc66954c",
"installed_by": ["modules"]
},
"wisecondorx/predict": {
"branch": "master",
- "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5",
+ "git_sha": "dc7e9607d9977555ca1235a51a40d097bc66954c",
"installed_by": ["modules"]
}
}
diff --git a/modules/nf-core/annotsv/annotsv/environment.yml b/modules/nf-core/annotsv/annotsv/environment.yml
new file mode 100644
index 00000000..e5f4a3e4
--- /dev/null
+++ b/modules/nf-core/annotsv/annotsv/environment.yml
@@ -0,0 +1,7 @@
+name: annotsv_annotsv
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::annotsv=3.4.2
diff --git a/modules/nf-core/annotsv/annotsv/main.nf b/modules/nf-core/annotsv/annotsv/main.nf
index d93eb307..e9d47db7 100644
--- a/modules/nf-core/annotsv/annotsv/main.nf
+++ b/modules/nf-core/annotsv/annotsv/main.nf
@@ -2,10 +2,10 @@ process ANNOTSV_ANNOTSV {
tag "$meta.id"
label 'process_low'
- conda "bioconda::annotsv=3.3.6"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/annotsv:3.3.6--py311hdfd78af_0' :
- 'biocontainers/annotsv:3.3.6--py311hdfd78af_0' }"
+ 'oras://community.wave.seqera.io/library/annotsv:3.4.2--141a0ee560de1897' :
+ 'community.wave.seqera.io/library/annotsv:3.4.2--010fa21247b5b64b' }"
input:
tuple val(meta), path(sv_vcf), path(sv_vcf_index), path(candidate_small_variants)
@@ -17,7 +17,7 @@ process ANNOTSV_ANNOTSV {
output:
tuple val(meta), path("*.tsv") , emit: tsv
tuple val(meta), path("*.unannotated.tsv") , emit: unannotated_tsv, optional: true
- tuple val(meta), path("*.vcf") , emit: vcf
+ tuple val(meta), path("*.vcf") , emit: vcf, optional: true
path "versions.yml" , emit: versions
when:
@@ -39,15 +39,11 @@ process ANNOTSV_ANNOTSV {
${small_variants} \\
${fp_snv} \\
${transcripts} \\
- -outputFile ${prefix}.raw.tsv \\
+ -outputFile ${prefix}.tsv \\
-SVinputFile ${sv_vcf} \\
${args}
mv *_AnnotSV/* .
- awk 'BEGIN { FS=OFS="\t" } { if (NR > 1 && NF >= 8) \$1 = \$1 "_" NR; print }' ${prefix}.raw.tsv > ${prefix}.tsv
-
- variantconvert convert -i ${prefix}.tsv -o ${prefix}.vcf -fi annotsv -fo vcf -c /usr/local/share/python3/variantconvert/configs/GRCh38/annotsv3_from_vcf.json
- sed -i 's/contig= versions.yml
"${task.process}":
@@ -59,10 +55,14 @@ process ANNOTSV_ANNOTSV {
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
+ def create_vcf = args.contains("-vcf 1") ? "touch ${prefix}.vcf" : ""
+
"""
+ echo "$args"
+
touch ${prefix}.tsv
touch ${prefix}.unannotated.tsv
- touch ${prefix}.vcf
+ ${create_vcf}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/annotsv/annotsv/meta.yml b/modules/nf-core/annotsv/annotsv/meta.yml
index 35aa1346..f690f0aa 100644
--- a/modules/nf-core/annotsv/annotsv/meta.yml
+++ b/modules/nf-core/annotsv/annotsv/meta.yml
@@ -12,8 +12,8 @@ tools:
homepage: "https://lbgi.fr/AnnotSV/"
documentation: "https://lbgi.fr/AnnotSV/"
tool_dev_url: "https://github.com/lgmgeo/AnnotSV"
- licence: "GPL-3.0"
-
+ doi: 10.1093/bioinformatics/bty304
+ licence: ["GPL-3.0"]
input:
- meta:
type: map
@@ -65,7 +65,6 @@ input:
type: file
description: OPTIONAL - A file containing the preferred gene transcripts to be used in priority during annotation (either space-separated or tab-separated)
pattern: "*.txt"
-
output:
- meta:
type: map
@@ -89,6 +88,7 @@ output:
description: |
OPTIONAL - A VCF file containing the annotated variants (created when `-vcf 1` is specified in the args)
pattern: "*.vcf"
-
authors:
- "@nvnieuwk"
+maintainers:
+ - "@nvnieuwk"
diff --git a/modules/nf-core/annotsv/annotsv/tests/main.nf.test b/modules/nf-core/annotsv/annotsv/tests/main.nf.test
new file mode 100644
index 00000000..c6fcefb6
--- /dev/null
+++ b/modules/nf-core/annotsv/annotsv/tests/main.nf.test
@@ -0,0 +1,52 @@
+nextflow_process {
+
+ name "Test Process ANNOTSV_ANNOTSV"
+ script "../main.nf"
+ process "ANNOTSV_ANNOTSV"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "annotsv"
+ tag "annotsv/annotsv"
+
+ test("homo_sapiens - sv_vcf, sv_tbi, snv_vcf, annotations - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz"),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz.tbi"),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz")
+ ]
+ input[1] = [
+ [ id:'annotations' ],
+ []
+ ]
+ input[2] = Channel.of('GENE1', 'GENE2', 'GENE3')
+ .collectFile(name:'gene_candidates.txt')
+ .map { [[ id:'genes' ], it] }
+ input[3] = [
+ [ id:'false_positives' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz")
+ ]
+ input[4] = Channel.of('GENE1 GENE2 GENE3')
+ .collectFile(name:'gene_transcripts.txt')
+ .map { [[ id:'gene_transcripts'], it] }
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/annotsv/annotsv/tests/main.nf.test.snap b/modules/nf-core/annotsv/annotsv/tests/main.nf.test.snap
new file mode 100644
index 00000000..fd46d7e7
--- /dev/null
+++ b/modules/nf-core/annotsv/annotsv/tests/main.nf.test.snap
@@ -0,0 +1,63 @@
+{
+ "homo_sapiens - sv_vcf, sv_tbi, snv_vcf, annotations - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ [
+ "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
+ "test.unannotated.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.unannotated.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "2": [
+
+ ],
+ "3": [
+ "versions.yml:md5,a5c7d9d19db00a62006faa1bafa917ec"
+ ],
+ "tsv": [
+ [
+ {
+ "id": "test"
+ },
+ [
+ "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e",
+ "test.unannotated.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ]
+ ],
+ "unannotated_tsv": [
+ [
+ {
+ "id": "test"
+ },
+ "test.unannotated.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "vcf": [
+
+ ],
+ "versions": [
+ "versions.yml:md5,a5c7d9d19db00a62006faa1bafa917ec"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.04.1"
+ },
+ "timestamp": "2024-05-29T15:10:39.33144868"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/annotsv/annotsv/tests/nextflow.config b/modules/nf-core/annotsv/annotsv/tests/nextflow.config
new file mode 100644
index 00000000..297daf51
--- /dev/null
+++ b/modules/nf-core/annotsv/annotsv/tests/nextflow.config
@@ -0,0 +1,5 @@
+process {
+ withName: ANNOTSV_ANNOTSV {
+ ext.args = "-vcf 1"
+ }
+}
diff --git a/modules/nf-core/annotsv/annotsv/tests/tags.yml b/modules/nf-core/annotsv/annotsv/tests/tags.yml
new file mode 100644
index 00000000..54453426
--- /dev/null
+++ b/modules/nf-core/annotsv/annotsv/tests/tags.yml
@@ -0,0 +1,2 @@
+annotsv/annotsv:
+ - "modules/nf-core/annotsv/annotsv/**"
diff --git a/modules/nf-core/annotsv/installannotations/environment.yml b/modules/nf-core/annotsv/installannotations/environment.yml
index 69d2f7a7..b759f91d 100644
--- a/modules/nf-core/annotsv/installannotations/environment.yml
+++ b/modules/nf-core/annotsv/installannotations/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::annotsv=3.3.6
+ - bioconda::annotsv=3.4.2
diff --git a/modules/nf-core/annotsv/installannotations/main.nf b/modules/nf-core/annotsv/installannotations/main.nf
index a9685e39..371e1bbf 100644
--- a/modules/nf-core/annotsv/installannotations/main.nf
+++ b/modules/nf-core/annotsv/installannotations/main.nf
@@ -4,8 +4,8 @@ process ANNOTSV_INSTALLANNOTATIONS {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/annotsv:3.3.6--py311hdfd78af_0' :
- 'biocontainers/annotsv:3.3.6--py311hdfd78af_0' }"
+ 'oras://community.wave.seqera.io/library/annotsv:3.4.2--141a0ee560de1897' :
+ 'community.wave.seqera.io/library/annotsv:3.4.2--010fa21247b5b64b' }"
output:
path "AnnotSV_annotations", emit: annotations
@@ -27,6 +27,7 @@ process ANNOTSV_INSTALLANNOTATIONS {
stub:
"""
mkdir AnnotSV_annotations
+ touch AnnotSV_annotations/stub_file.txt
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/annotsv/installannotations/meta.yml b/modules/nf-core/annotsv/installannotations/meta.yml
index 18a4708b..a04c4f1d 100644
--- a/modules/nf-core/annotsv/installannotations/meta.yml
+++ b/modules/nf-core/annotsv/installannotations/meta.yml
@@ -11,7 +11,7 @@ tools:
homepage: "https://lbgi.fr/AnnotSV/"
documentation: "https://lbgi.fr/AnnotSV/"
tool_dev_url: "https://github.com/lgmgeo/AnnotSV"
- licence: "['GPL v3']"
+ licence: ["GPL v3"]
output:
- versions:
type: file
diff --git a/modules/nf-core/annotsv/installannotations/tests/main.nf.test b/modules/nf-core/annotsv/installannotations/tests/main.nf.test
new file mode 100644
index 00000000..ed322ece
--- /dev/null
+++ b/modules/nf-core/annotsv/installannotations/tests/main.nf.test
@@ -0,0 +1,25 @@
+nextflow_process {
+
+ name "Test Process ANNOTSV_INSTALLANNOTATIONS"
+ script "../main.nf"
+ process "ANNOTSV_INSTALLANNOTATIONS"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "annotsv"
+ tag "annotsv/installannotations"
+
+ test("homo_sapiens - stub") {
+
+ options "-stub"
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/annotsv/installannotations/tests/main.nf.test.snap b/modules/nf-core/annotsv/installannotations/tests/main.nf.test.snap
new file mode 100644
index 00000000..bb45f1bd
--- /dev/null
+++ b/modules/nf-core/annotsv/installannotations/tests/main.nf.test.snap
@@ -0,0 +1,29 @@
+{
+ "homo_sapiens - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ "stub_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,d0b3dc5e0199653fd81ffd3754e65f9c"
+ ],
+ "annotations": [
+ [
+ "stub_file.txt:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d0b3dc5e0199653fd81ffd3754e65f9c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.04.1"
+ },
+ "timestamp": "2024-05-29T15:14:54.723053976"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/annotsv/installannotations/tests/tags.yml b/modules/nf-core/annotsv/installannotations/tests/tags.yml
new file mode 100644
index 00000000..232bec39
--- /dev/null
+++ b/modules/nf-core/annotsv/installannotations/tests/tags.yml
@@ -0,0 +1,2 @@
+annotsv/installannotations:
+ - "modules/nf-core/annotsv/installannotations/**"
diff --git a/modules/nf-core/bcftools/annotate/main.nf b/modules/nf-core/bcftools/annotate/main.nf
index cb7dad5a..463bb86e 100644
--- a/modules/nf-core/bcftools/annotate/main.nf
+++ b/modules/nf-core/bcftools/annotate/main.nf
@@ -59,8 +59,10 @@ process BCFTOOLS_ANNOTATE {
args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" :
args.contains("--output-type v") || args.contains("-Ov") ? "vcf" :
"vcf"
+
+ def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch"
"""
- touch ${prefix}.${extension}
+ ${create_cmd} ${prefix}.${extension}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/bcftools/annotate/tests/bcf.config b/modules/nf-core/bcftools/annotate/tests/bcf.config
new file mode 100644
index 00000000..b8496b33
--- /dev/null
+++ b/modules/nf-core/bcftools/annotate/tests/bcf.config
@@ -0,0 +1,6 @@
+process {
+ withName: 'BCFTOOLS_ANNOTATE' {
+ ext.args = "-x ID,INFO/DP,FORMAT/DP --output-type u"
+ ext.prefix = { "${meta.id}_ann" }
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/annotate/tests/main.nf.test b/modules/nf-core/bcftools/annotate/tests/main.nf.test
new file mode 100644
index 00000000..9abf9475
--- /dev/null
+++ b/modules/nf-core/bcftools/annotate/tests/main.nf.test
@@ -0,0 +1,108 @@
+nextflow_process {
+
+ name "Test Process BCFTOOLS_ANNOTATE"
+ script "../main.nf"
+ process "BCFTOOLS_ANNOTATE"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "bcftools"
+ tag "bcftools/annotate"
+
+ test("sarscov2 - [vcf, tbi, vcf2, tbi2, []] - vcf_output") {
+
+ config "./vcf.config"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_vcf_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_vcf_gz_tbi'], checkIfExists: true),
+ []
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(
+ process.out.vcf.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.versions
+ ).match("vcf") }
+ )
+ }
+
+ }
+
+
+ test("sarscov2 - [vcf, [], [], [], header] - bcf_output") {
+
+ config "./bcf.config"
+
+ when {
+ process {
+ """
+ vcf = Channel.of([ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true),
+ [],
+ [],
+ []
+ ])
+
+ header = Channel.of(
+ '##INFO=',
+ '##INFO='
+ )
+ .collectFile(name:"headers.vcf", newLine:true)
+
+ input[0] = vcf.combine(header)
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(
+ process.out.vcf.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.versions
+ ).match("bcf") }
+ )
+ }
+
+ }
+
+ test("sarscov2 - [vcf, tbi, vcf2, tbi2, []] - stub") {
+
+ config "./vcf.config"
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_vcf_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_vcf_gz_tbi'], checkIfExists: true),
+ []
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("stub") }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/bcftools/annotate/tests/main.nf.test.snap b/modules/nf-core/bcftools/annotate/tests/main.nf.test.snap
new file mode 100644
index 00000000..72b06878
--- /dev/null
+++ b/modules/nf-core/bcftools/annotate/tests/main.nf.test.snap
@@ -0,0 +1,79 @@
+{
+ "bcf": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test_ann.bcf"
+ ]
+ ],
+ [
+ "versions.yml:md5,ea2b798edb5c1c0d46938f313a97a901"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T09:21:58.526449656"
+ },
+ "vcf": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test_vcf.vcf.gz"
+ ]
+ ],
+ [
+ "versions.yml:md5,ea2b798edb5c1c0d46938f313a97a901"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-02T16:47:47.127427579"
+ },
+ "stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,ea2b798edb5c1c0d46938f313a97a901"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,ea2b798edb5c1c0d46938f313a97a901"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-02T16:43:43.707474961"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/annotate/tests/tags.yml b/modules/nf-core/bcftools/annotate/tests/tags.yml
new file mode 100644
index 00000000..f97a1afc
--- /dev/null
+++ b/modules/nf-core/bcftools/annotate/tests/tags.yml
@@ -0,0 +1,2 @@
+bcftools/annotate:
+ - "modules/nf-core/bcftools/annotate/**"
diff --git a/modules/nf-core/bcftools/annotate/tests/vcf.config b/modules/nf-core/bcftools/annotate/tests/vcf.config
new file mode 100644
index 00000000..cb809f61
--- /dev/null
+++ b/modules/nf-core/bcftools/annotate/tests/vcf.config
@@ -0,0 +1,6 @@
+process {
+ withName: 'BCFTOOLS_ANNOTATE' {
+ ext.prefix = { "${meta.id}_vcf" }
+ ext.args = "-x ID,INFO/DP,FORMAT/DP --output-type z"
+ }
+}
diff --git a/modules/nf-core/bcftools/concat/main.nf b/modules/nf-core/bcftools/concat/main.nf
index 65ea8204..0de66665 100644
--- a/modules/nf-core/bcftools/concat/main.nf
+++ b/modules/nf-core/bcftools/concat/main.nf
@@ -4,8 +4,8 @@ process BCFTOOLS_CONCAT {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/bcftools:1.18--h8b25389_0':
- 'biocontainers/bcftools:1.18--h8b25389_0' }"
+ 'https://depot.galaxyproject.org/singularity/bcftools:1.18--h8b25389_0':
+ 'biocontainers/bcftools:1.18--h8b25389_0' }"
input:
tuple val(meta), path(vcfs), path(tbis)
@@ -40,22 +40,22 @@ process BCFTOOLS_CONCAT {
| bcftools sort \\
${args2} \\
--output ${prefix}.vcf.gz \\
- --output-type z
+ --output-type z
cat <<-END_VERSIONS > versions.yml
"${task.process}":
- bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' )
+ bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
END_VERSIONS
"""
stub:
- prefix = task.ext.prefix ?: "${meta.id}"
+ def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.vcf.gz
+ echo "" | gzip > ${prefix}.vcf.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
- bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' )
+ bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
END_VERSIONS
"""
}
diff --git a/modules/nf-core/bcftools/concat/meta.yml b/modules/nf-core/bcftools/concat/meta.yml
index e8c83cd6..91cb54d5 100644
--- a/modules/nf-core/bcftools/concat/meta.yml
+++ b/modules/nf-core/bcftools/concat/meta.yml
@@ -5,7 +5,6 @@ keywords:
- concat
- bcftools
- VCF
-
tools:
- concat:
description: |
@@ -21,12 +20,12 @@ input:
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- vcfs:
- type: files
+ type: list
description: |
List containing 2 or more vcf files
e.g. [ 'file1.vcf', 'file2.vcf' ]
- tbi:
- type: files
+ type: list
description: |
List containing 2 or more index files (optional)
e.g. [ 'file1.tbi', 'file2.tbi' ]
@@ -47,3 +46,6 @@ output:
authors:
- "@abhi18av"
- "@nvnieuwk"
+maintainers:
+ - "@abhi18av"
+ - "@nvnieuwk"
diff --git a/modules/nf-core/bcftools/concat/tests/main.nf.test b/modules/nf-core/bcftools/concat/tests/main.nf.test
new file mode 100644
index 00000000..d5d9f787
--- /dev/null
+++ b/modules/nf-core/bcftools/concat/tests/main.nf.test
@@ -0,0 +1,99 @@
+nextflow_process {
+
+ name "Test Process BCFTOOLS_CONCAT"
+ script "../main.nf"
+ process "BCFTOOLS_CONCAT"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "bcftools"
+ tag "bcftools/concat"
+
+ config "./nextflow.config"
+
+ test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]]") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test3' ], // meta map
+ [
+ file(params.test_data['homo_sapiens']['illumina']['test_haplotc_cnn_vcf_gz'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true)
+ ],
+ [
+ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_haplotc_cnn_vcf_gz_tbi'], checkIfExists: true)
+ ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+ test("sarscov2 - [[vcf1, vcf2], []]") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test3' ], // meta map
+ [
+ file(params.test_data['homo_sapiens']['illumina']['test_haplotc_cnn_vcf_gz'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true)
+ ],
+ []
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+ test("sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - stub") {
+
+ options "-stub"
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test3' ], // meta map
+ [
+ file(params.test_data['homo_sapiens']['illumina']['test_haplotc_cnn_vcf_gz'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true)
+ ],
+ [
+ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_haplotc_cnn_vcf_gz_tbi'], checkIfExists: true)
+ ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/bcftools/concat/tests/main.nf.test.snap b/modules/nf-core/bcftools/concat/tests/main.nf.test.snap
new file mode 100644
index 00000000..90d3fc06
--- /dev/null
+++ b/modules/nf-core/bcftools/concat/tests/main.nf.test.snap
@@ -0,0 +1,101 @@
+{
+ "sarscov2 - [[vcf1, vcf2], []]": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T13:22:49.766749302"
+ },
+ "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]]": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,5f6796c3ae109a1a5b87353954693f5a"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T13:22:41.119912312"
+ },
+ "sarscov2 - [[vcf1, vcf2], [tbi1, tbi2]] - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test3"
+ },
+ "test3.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,24ae05eb858733b40fbd3f89743a6d09"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T13:22:59.90466392"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/concat/tests/nextflow.config b/modules/nf-core/bcftools/concat/tests/nextflow.config
new file mode 100644
index 00000000..f3e1e98c
--- /dev/null
+++ b/modules/nf-core/bcftools/concat/tests/nextflow.config
@@ -0,0 +1,3 @@
+process {
+ ext.args = "--no-version"
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/concat/tests/tags.yml b/modules/nf-core/bcftools/concat/tests/tags.yml
new file mode 100644
index 00000000..21710d4e
--- /dev/null
+++ b/modules/nf-core/bcftools/concat/tests/tags.yml
@@ -0,0 +1,2 @@
+bcftools/concat:
+ - "modules/nf-core/bcftools/concat/**"
diff --git a/modules/nf-core/bcftools/filter/main.nf b/modules/nf-core/bcftools/filter/main.nf
index 4bec2146..cc9a2361 100644
--- a/modules/nf-core/bcftools/filter/main.nf
+++ b/modules/nf-core/bcftools/filter/main.nf
@@ -54,8 +54,10 @@ process BCFTOOLS_FILTER {
if ("$vcf" == "${prefix}.${extension}") error "Input and output names are the same, set prefix in module configuration to disambiguate!"
+ def create_file = extension.endsWith(".gz") ? "echo '' | gzip > ${prefix}.${extension}" : "touch ${prefix}.${extension}"
+
"""
- touch ${prefix}.${extension}
+ ${create_file}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/bcftools/filter/meta.yml b/modules/nf-core/bcftools/filter/meta.yml
index 5b111fc3..deb93b13 100644
--- a/modules/nf-core/bcftools/filter/meta.yml
+++ b/modules/nf-core/bcftools/filter/meta.yml
@@ -21,7 +21,7 @@ input:
- vcf:
type: file
description: VCF input file
- pattern: "*.{vcf}"
+ pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}"
output:
- meta:
type: map
@@ -31,7 +31,7 @@ output:
- vcf:
type: file
description: VCF filtered output file
- pattern: "*.{vcf}"
+ pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}"
- versions:
type: file
description: File containing software versions
diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test b/modules/nf-core/bcftools/filter/tests/main.nf.test
new file mode 100644
index 00000000..eaf100e8
--- /dev/null
+++ b/modules/nf-core/bcftools/filter/tests/main.nf.test
@@ -0,0 +1,82 @@
+nextflow_process {
+
+ name "Test Process BCFTOOLS_FILTER"
+ script "../main.nf"
+ process "BCFTOOLS_FILTER"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "bcftools"
+ tag "bcftools/filter"
+
+ config "./nextflow.config"
+
+ test("sarscov2 - vcf") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [id:"vcf_test"],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("vcf") }
+ )
+ }
+
+ }
+
+ test("sarscov2 - vcf - bcf output") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [id:"bcf_test"],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("bcf output") }
+ )
+ }
+
+ }
+
+ test("sarscov2 - vcf - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [id:"vcf_test"],
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("vcf - stub") }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap
new file mode 100644
index 00000000..f8e17aa0
--- /dev/null
+++ b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap
@@ -0,0 +1,101 @@
+{
+ "vcf": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "vcf_test"
+ },
+ "vcf_test.vcf.gz:md5,8e722884ffb75155212a3fc053918766"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "vcf_test"
+ },
+ "vcf_test.vcf.gz:md5,8e722884ffb75155212a3fc053918766"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-03-27T16:57:32.940161987"
+ },
+ "bcf output": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "bcf_test"
+ },
+ "bcf_test.bcf.gz:md5,c8a304c8d2892039201154153c8cd536"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "bcf_test"
+ },
+ "bcf_test.bcf.gz:md5,c8a304c8d2892039201154153c8cd536"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-03-27T16:45:14.586866398"
+ },
+ "vcf - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "vcf_test"
+ },
+ "vcf_test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "vcf_test"
+ },
+ "vcf_test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,7dc77043f9afb848d942d47a7bc19f67"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-03-27T17:05:52.80837892"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/filter/tests/nextflow.config b/modules/nf-core/bcftools/filter/tests/nextflow.config
new file mode 100644
index 00000000..4e960c8d
--- /dev/null
+++ b/modules/nf-core/bcftools/filter/tests/nextflow.config
@@ -0,0 +1,3 @@
+process {
+ ext.args = {"--no-version${meta.id == 'bcf_test' ? ' --output-type b' : ' --output-type z'}"}
+}
diff --git a/modules/nf-core/bcftools/filter/tests/tags.yml b/modules/nf-core/bcftools/filter/tests/tags.yml
new file mode 100644
index 00000000..d5e01080
--- /dev/null
+++ b/modules/nf-core/bcftools/filter/tests/tags.yml
@@ -0,0 +1,2 @@
+bcftools/filter:
+ - "modules/nf-core/bcftools/filter/**"
diff --git a/modules/nf-core/bcftools/sort/main.nf b/modules/nf-core/bcftools/sort/main.nf
index c982944c..246148d6 100644
--- a/modules/nf-core/bcftools/sort/main.nf
+++ b/modules/nf-core/bcftools/sort/main.nf
@@ -49,9 +49,9 @@ process BCFTOOLS_SORT {
args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" :
args.contains("--output-type v") || args.contains("-Ov") ? "vcf" :
"vcf"
-
+ def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch"
"""
- touch ${prefix}.${extension}
+ ${create_cmd} ${prefix}.${extension}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/bcftools/sort/tests/main.nf.test b/modules/nf-core/bcftools/sort/tests/main.nf.test
new file mode 100644
index 00000000..8a496dda
--- /dev/null
+++ b/modules/nf-core/bcftools/sort/tests/main.nf.test
@@ -0,0 +1,54 @@
+nextflow_process {
+
+ name "Test Process BCFTOOLS_SORT"
+ script "../main.nf"
+ process "BCFTOOLS_SORT"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "bcftools"
+ tag "bcftools/sort"
+
+ test("sarscov2 - vcf") {
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("vcf") }
+ )
+ }
+
+ }
+
+ test("sarscov2 - vcf - stub") {
+ options "-stub"
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+}
diff --git a/modules/nf-core/bcftools/sort/tests/main.nf.test.snap b/modules/nf-core/bcftools/sort/tests/main.nf.test.snap
new file mode 100644
index 00000000..6200cc42
--- /dev/null
+++ b/modules/nf-core/bcftools/sort/tests/main.nf.test.snap
@@ -0,0 +1,68 @@
+{
+ "vcf": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,8e722884ffb75155212a3fc053918766"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,622bd32d4ff0fac3360cd534ae0f0168"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,8e722884ffb75155212a3fc053918766"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,622bd32d4ff0fac3360cd534ae0f0168"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-02T16:55:21.237927554"
+ },
+ "sarscov2 - vcf - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,622bd32d4ff0fac3360cd534ae0f0168"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,622bd32d4ff0fac3360cd534ae0f0168"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T12:32:50.506309198"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/bcftools/sort/tests/tags.yml b/modules/nf-core/bcftools/sort/tests/tags.yml
new file mode 100644
index 00000000..6e9520dd
--- /dev/null
+++ b/modules/nf-core/bcftools/sort/tests/tags.yml
@@ -0,0 +1,2 @@
+bcftools/sort:
+ - "modules/nf-core/bcftools/sort/**"
diff --git a/modules/nf-core/bedgovcf/environment.yml b/modules/nf-core/bedgovcf/environment.yml
index 61cfbccf..f19a947e 100644
--- a/modules/nf-core/bedgovcf/environment.yml
+++ b/modules/nf-core/bedgovcf/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::bedgovcf=0.1.0
+ - bioconda::bedgovcf=0.1.1
diff --git a/modules/nf-core/bedgovcf/main.nf b/modules/nf-core/bedgovcf/main.nf
index f39f404e..e8641591 100644
--- a/modules/nf-core/bedgovcf/main.nf
+++ b/modules/nf-core/bedgovcf/main.nf
@@ -4,8 +4,8 @@ process BEDGOVCF {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/bedgovcf:0.1.0--h9ee0642_0':
- 'biocontainers/bedgovcf:0.1.0--h9ee0642_0' }"
+ 'https://depot.galaxyproject.org/singularity/bedgovcf:0.1.1--h9ee0642_1':
+ 'biocontainers/bedgovcf:0.1.1--h9ee0642_1' }"
input:
tuple val(meta), path(bed), path(config)
@@ -39,7 +39,7 @@ process BEDGOVCF {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.vcf.gz
+ echo "" | gzip > ${prefix}.vcf.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/bedgovcf/tests/main.nf.test.snap b/modules/nf-core/bedgovcf/tests/main.nf.test.snap
index 2e34fe4c..dddabbc4 100644
--- a/modules/nf-core/bedgovcf/tests/main.nf.test.snap
+++ b/modules/nf-core/bedgovcf/tests/main.nf.test.snap
@@ -7,7 +7,7 @@
{
"id": "test"
},
- "test.vcf.gz:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
]
],
"1": [
@@ -18,7 +18,7 @@
{
"id": "test"
},
- "test.vcf.gz:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
]
],
"versions": [
@@ -26,7 +26,11 @@
]
}
],
- "timestamp": "2023-11-14T12:45:41.931292108"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-05-02T10:51:08.632383757"
},
"homo_sapiens - [bed, config] - fai": {
"content": [
@@ -36,7 +40,7 @@
{
"id": "test"
},
- "test.vcf.gz:md5,a9cb689f02723f7e0e4d674ef144b48c"
+ "test.vcf.gz:md5,49f3bd11396cb17cba8f97005b22384c"
]
],
"1": [
@@ -47,7 +51,7 @@
{
"id": "test"
},
- "test.vcf.gz:md5,a9cb689f02723f7e0e4d674ef144b48c"
+ "test.vcf.gz:md5,49f3bd11396cb17cba8f97005b22384c"
]
],
"versions": [
@@ -55,6 +59,10 @@
]
}
],
- "timestamp": "2023-11-14T12:45:36.218283171"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-05-02T10:50:05.709267287"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/delly/call/environment.yml b/modules/nf-core/delly/call/environment.yml
index 0460979c..39da8995 100644
--- a/modules/nf-core/delly/call/environment.yml
+++ b/modules/nf-core/delly/call/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::delly=1.1.6
+ - bioconda::delly=1.2.6
diff --git a/modules/nf-core/delly/call/main.nf b/modules/nf-core/delly/call/main.nf
index 7ae800d9..13366047 100644
--- a/modules/nf-core/delly/call/main.nf
+++ b/modules/nf-core/delly/call/main.nf
@@ -4,13 +4,13 @@ process DELLY_CALL {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/delly:1.1.6--ha41ced6_0' :
- 'biocontainers/delly:1.1.6--ha41ced6_0' }"
+ 'https://depot.galaxyproject.org/singularity/delly:1.2.6--hb7e2ac5_1' :
+ 'biocontainers/delly:1.2.6--hb7e2ac5_1' }"
input:
tuple val(meta), path(input), path(input_index), path(vcf), path(vcf_index), path(exclude_bed)
- path fasta
- path fai
+ tuple val(meta2), path(fasta)
+ tuple val(meta3), path(fai)
output:
tuple val(meta), path("*.{bcf,vcf.gz}") , emit: bcf
@@ -55,7 +55,7 @@ process DELLY_CALL {
def suffix = task.ext.suffix ?: "bcf"
def bcf_output = suffix == "bcf" ? "touch ${prefix}.bcf && touch ${prefix}.bcf.csi" : ""
- def vcf_output = suffix == "vcf" ? "touch ${prefix}.vcf.gz && touch ${prefix}.vcf.gz.tbi" : ""
+ def vcf_output = suffix == "vcf" ? "echo '' | gzip > ${prefix}.vcf.gz && touch ${prefix}.vcf.gz.tbi" : ""
"""
${bcf_output}
diff --git a/modules/nf-core/delly/call/meta.yml b/modules/nf-core/delly/call/meta.yml
index a9f4c9f4..cc378ffd 100644
--- a/modules/nf-core/delly/call/meta.yml
+++ b/modules/nf-core/delly/call/meta.yml
@@ -38,10 +38,20 @@ input:
type: file
description: An optional bed file containing regions to exclude from the called VCF
pattern: "*.bed"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing fasta information
+ e.g. [ id:'test', single_end:false ]
- fasta:
type: file
description: The reference fasta file
pattern: "*.{fasta,fa}"
+ - meta3:
+ type: map
+ description: |
+ Groovy Map containing fasta index information
+ e.g. [ id:'test', single_end:false ]
- fai:
type: file
description: Index of reference fasta file to identify split-reads
diff --git a/modules/nf-core/delly/call/tests/main.nf.test b/modules/nf-core/delly/call/tests/main.nf.test
new file mode 100644
index 00000000..80cad20d
--- /dev/null
+++ b/modules/nf-core/delly/call/tests/main.nf.test
@@ -0,0 +1,187 @@
+nextflow_process {
+
+ name "Test Process DELLY_CALL"
+ script "../main.nf"
+ process "DELLY_CALL"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "delly"
+ tag "delly/call"
+
+ test("homo_sapiens - bam, bai, [], [], [], fasta, fai") {
+
+ config "./vcf.config"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai", checkIfExists:true),
+ [],
+ [],
+ []
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai", checkIfExists:true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("bam") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - cram, crai, [], [], [], fasta, fai") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai", checkIfExists:true),
+ [],
+ [],
+ []
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai", checkIfExists:true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("cram") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - cram, crai, [], [], bed, fasta, fai") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai", checkIfExists:true),
+ [],
+ [],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed", checkIfExists:true)
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai", checkIfExists:true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("bed") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - cram, crai, vcf, tbi, [], fasta, fai") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz.tbi", checkIfExists:true),
+ []
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai", checkIfExists:true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("genotype") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - bam, bai, [], [], [], fasta, fai - stub") {
+
+ config "./vcf.config"
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai", checkIfExists:true),
+ [],
+ [],
+ []
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai", checkIfExists:true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("stub") }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/delly/call/tests/main.nf.test.snap b/modules/nf-core/delly/call/tests/main.nf.test.snap
new file mode 100644
index 00000000..c89636d9
--- /dev/null
+++ b/modules/nf-core/delly/call/tests/main.nf.test.snap
@@ -0,0 +1,247 @@
+{
+ "bed": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ],
+ "bcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "csi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:38:15.181069181"
+ },
+ "cram": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ],
+ "bcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "csi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:38:01.798279112"
+ },
+ "stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ],
+ "bcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "csi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:38:44.135939928"
+ },
+ "bam": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,021dae61db384dae43a46386a66d1408"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,4cb176febbc8c26d717a6c6e67b9c905"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ],
+ "bcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,021dae61db384dae43a46386a66d1408"
+ ]
+ ],
+ "csi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,4cb176febbc8c26d717a6c6e67b9c905"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:37:45.689766253"
+ },
+ "genotype": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ],
+ "bcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf:md5,592702d7765f246cd0f7f32f23b607b9"
+ ]
+ ],
+ "csi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bcf.csi:md5,c198abfc14584c5ac69c004057927e0b"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,cf72d737ee881a7cd7eab87abf93b94c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:38:29.129594523"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/delly/call/tests/tags.yml b/modules/nf-core/delly/call/tests/tags.yml
new file mode 100644
index 00000000..bab4f0bd
--- /dev/null
+++ b/modules/nf-core/delly/call/tests/tags.yml
@@ -0,0 +1,2 @@
+delly/call:
+ - "modules/nf-core/delly/call/**"
diff --git a/modules/nf-core/delly/call/tests/vcf.config b/modules/nf-core/delly/call/tests/vcf.config
new file mode 100644
index 00000000..22e93313
--- /dev/null
+++ b/modules/nf-core/delly/call/tests/vcf.config
@@ -0,0 +1,5 @@
+process {
+ withName: "DELLY_CALL" {
+ ext.suffix = "vcf"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/ensemblvep/download/environment.yml b/modules/nf-core/ensemblvep/download/environment.yml
index beebaca6..2ea8642f 100644
--- a/modules/nf-core/ensemblvep/download/environment.yml
+++ b/modules/nf-core/ensemblvep/download/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::ensembl-vep=110.0
+ - bioconda::ensembl-vep=111.0
diff --git a/modules/nf-core/ensemblvep/download/main.nf b/modules/nf-core/ensemblvep/download/main.nf
index a770cbfc..f9e025a5 100644
--- a/modules/nf-core/ensemblvep/download/main.nf
+++ b/modules/nf-core/ensemblvep/download/main.nf
@@ -4,24 +4,25 @@ process ENSEMBLVEP_DOWNLOAD {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' :
- 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }"
+ 'https://depot.galaxyproject.org/singularity/ensembl-vep:111.0--pl5321h2a3209d_0' :
+ 'biocontainers/ensembl-vep:111.0--pl5321h2a3209d_0' }"
input:
tuple val(meta), val(assembly), val(species), val(cache_version)
output:
- tuple val(meta), path("vep_cache"), emit: cache
- path "versions.yml" , emit: versions
+ tuple val(meta), path(prefix), emit: cache
+ path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
script:
def args = task.ext.args ?: ''
+ prefix = task.ext.prefix ?: 'vep_cache'
"""
vep_install \\
- --CACHEDIR vep_cache \\
+ --CACHEDIR $prefix \\
--SPECIES $species \\
--ASSEMBLY $assembly \\
--CACHE_VERSION $cache_version \\
@@ -34,8 +35,9 @@ process ENSEMBLVEP_DOWNLOAD {
"""
stub:
+ prefix = task.ext.prefix ?: 'vep_cache'
"""
- mkdir vep_cache
+ mkdir $prefix
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/ensemblvep/download/tests/main.nf.test b/modules/nf-core/ensemblvep/download/tests/main.nf.test
new file mode 100644
index 00000000..760c9d56
--- /dev/null
+++ b/modules/nf-core/ensemblvep/download/tests/main.nf.test
@@ -0,0 +1,60 @@
+nextflow_process {
+
+ name "Test Process ENSEMBLVEP_DOWNLOAD"
+ script "../main.nf"
+ process "ENSEMBLVEP_DOWNLOAD"
+ config "./nextflow.config"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "ensemblvep"
+ tag "ensemblvep/download"
+
+ test("celegans - download") {
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id:"111_WBcel235"],
+ params.vep_genome,
+ params.vep_species,
+ params.vep_cache_version
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("celegans - download - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id:"111_WBcel235"],
+ params.vep_genome,
+ params.vep_species,
+ params.vep_cache_version
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+}
diff --git a/modules/nf-core/ensemblvep/download/tests/main.nf.test.snap b/modules/nf-core/ensemblvep/download/tests/main.nf.test.snap
new file mode 100644
index 00000000..6ea596fb
--- /dev/null
+++ b/modules/nf-core/ensemblvep/download/tests/main.nf.test.snap
@@ -0,0 +1,322 @@
+{
+ "celegans - download": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "111_WBcel235"
+ },
+ [
+ [
+ [
+ [
+ "1-1000000.gz:md5,4da54db2f781d08975630811fd831585",
+ "10000001-11000000.gz:md5,7bee73e51d08f5e6de1796614105c5de",
+ "1000001-2000000.gz:md5,e8beff9020e261d78988c37e804cc89a",
+ "11000001-12000000.gz:md5,1a31b2dcf58822e837cd91b7a74a8b4f",
+ "12000001-13000000.gz:md5,34522be2ee5bd3cf51a9b151c877fe35",
+ "13000001-14000000.gz:md5,4e5a7b604f8aea2ad9de79b75ed89a6b",
+ "14000001-15000000.gz:md5,65146be110ea58b64ab8518bcbfbde9d",
+ "15000001-16000000.gz:md5,a39fdb7b0b056c0254574353351722eb",
+ "2000001-3000000.gz:md5,b72a04531477615dc4d2c530d09e60df",
+ "3000001-4000000.gz:md5,50dae46f370e1468c8f8f2c97cc75f0b",
+ "4000001-5000000.gz:md5,e58e124073689212e5311fbd8ccce415",
+ "5000001-6000000.gz:md5,db27434dc8be9557f97aa09a95126836",
+ "6000001-7000000.gz:md5,a5131e3ee41b329eb55fb3849ddb1471",
+ "7000001-8000000.gz:md5,61e1fbe1a82892a0f9f6ee0380fa60bc",
+ "8000001-9000000.gz:md5,48166dd4518ec21f597b6acca73809bb",
+ "9000001-10000000.gz:md5,3e416c856f40f36ec0ed3f42a93b2267"
+ ],
+ [
+ "1-1000000.gz:md5,06b83c3bd2c651c5a8a96f0865d54a53",
+ "10000001-11000000.gz:md5,79b3348f860370d1697e6d4de128fca3",
+ "1000001-2000000.gz:md5,f98e31f3e25c0a419ebeee5b17527b00",
+ "11000001-12000000.gz:md5,5f23214fdef1f7637f6046dc751155ed",
+ "12000001-13000000.gz:md5,9a4422905679e543a92d47142b1acba1",
+ "13000001-14000000.gz:md5,c5db99e7d56f2115f8da8fe3af83314a",
+ "14000001-15000000.gz:md5,66b65af3732c0495dc74f3071203ac2f",
+ "15000001-16000000.gz:md5,d4c30dc42925cc92dc594d4145544f33",
+ "2000001-3000000.gz:md5,ff9b3fd1235468c738e9201e2fa98e08",
+ "3000001-4000000.gz:md5,c649308c7d3b4891a8c6f95e583f3a08",
+ "4000001-5000000.gz:md5,c53d2fa6695248d0a725ef70325aae91",
+ "5000001-6000000.gz:md5,5481fb4b60ebd97256f5d52c42aee0bd",
+ "6000001-7000000.gz:md5,94b82e096bacb091e0ef55bcd08b8ab8",
+ "7000001-8000000.gz:md5,83f571dfaf8b891bf27208466e6f7d8c",
+ "8000001-9000000.gz:md5,4f07e30c7d772544bc6e99bac371b97b",
+ "9000001-10000000.gz:md5,f1439765f6428ae99516d95dc5df3926"
+ ],
+ [
+ "1-1000000.gz:md5,dab3bbb82e7ecc5430319b7723b88436",
+ "10000001-11000000.gz:md5,a1af0b4ce9c2ff301ac0a935a4189c58",
+ "1000001-2000000.gz:md5,8a70e4d08b14a4cf19b03a0556a6cae8",
+ "11000001-12000000.gz:md5,e866bb880cd79e612dc2081635368017",
+ "12000001-13000000.gz:md5,1b5be2ca310afd8289561331d19ddf07",
+ "13000001-14000000.gz:md5,907d2bb3f6b9b75fca9e40f1220c0cb4",
+ "2000001-3000000.gz:md5,783bcc5957ca4853853c5cda0418dbcd",
+ "3000001-4000000.gz:md5,cb2df81caa4a20215bb793ca2a792e01",
+ "4000001-5000000.gz:md5,2046030a187c0a86c9be02531aea0ed7",
+ "5000001-6000000.gz:md5,395a977401540eb90607b31ecc786a0f",
+ "6000001-7000000.gz:md5,e6a97128bc38649fcfa5dcb0032a570e",
+ "7000001-8000000.gz:md5,08804df16d4cdeb5a733d2d6b07b058e",
+ "8000001-9000000.gz:md5,bba084d260c12613403d144073105d9b",
+ "9000001-10000000.gz:md5,c0775c413018ed7964f3042112fe4e26"
+ ],
+ [
+ "1-1000000.gz:md5,710a2c1ad83c3c9751a0f152cd98f02c",
+ "10000001-11000000.gz:md5,ac93a92e62043bddaa59973e26dac8e0",
+ "1000001-2000000.gz:md5,232ee5ab6c7295007ffc760f361e4c07",
+ "11000001-12000000.gz:md5,07e49ac7b78fbc29cd920b11a4d21afc",
+ "12000001-13000000.gz:md5,7849822cf3df022e9f273fb6a928aa8b",
+ "13000001-14000000.gz:md5,e3d3f0ee264694c72b3b989a542c5694",
+ "14000001-15000000.gz:md5,e5771b6c2fefe9f62b23c71ab873f94f",
+ "15000001-16000000.gz:md5,fa02114035f63a504c48005c498f8ec3",
+ "16000001-17000000.gz:md5,ef0fd03281afc2e636a64fd61df8c4dc",
+ "17000001-18000000.gz:md5,4483a6d74a07b1101dccee71a22213ed",
+ "2000001-3000000.gz:md5,f164cbfdc8bc12efd7c26df3935fe190",
+ "3000001-4000000.gz:md5,ff05a42801004994a4f30f081bc8945a",
+ "4000001-5000000.gz:md5,b63f51d54dc3cb4b214b54527dfa4234",
+ "5000001-6000000.gz:md5,6945f59a1fd50f1dfa8a2f1e55fecc12",
+ "6000001-7000000.gz:md5,3f27a3cb19ece2a9e87da6fe6476faaa",
+ "7000001-8000000.gz:md5,05bffc6e8af7a80fdd6cbc53e5512d0c",
+ "8000001-9000000.gz:md5,8a3594ee1eb15d7aa8edeb325e485dce",
+ "9000001-10000000.gz:md5,338bce56200690d450d5fcac65a91be7"
+ ],
+ [
+ "1-1000000.gz:md5,779fda1352c0b1d635aa752c185e6ce2"
+ ],
+ [
+ "1-1000000.gz:md5,267b3134411641d12bb6efcfd5e9d48d",
+ "10000001-11000000.gz:md5,4f7473abf622b57ca3c8d6de098759f7",
+ "1000001-2000000.gz:md5,5587d56269638b9cc88bdb7ae5dacc58",
+ "11000001-12000000.gz:md5,3da928f2caf09b9e3df58f9d1be2c541",
+ "12000001-13000000.gz:md5,eae3125082e1674f40fcfb8bb7da23e3",
+ "13000001-14000000.gz:md5,6a91eccbe0cf05737e2d2971d5618876",
+ "14000001-15000000.gz:md5,60c9b08ad4f674c0394a7c16dee2713e",
+ "15000001-16000000.gz:md5,b36c052923f3d3e3cc8db9c2852e1e16",
+ "16000001-17000000.gz:md5,0d0d7a8735aadda492912d032fd8733b",
+ "17000001-18000000.gz:md5,cf57648ef4cbc3325cff87e6b4b89653",
+ "18000001-19000000.gz:md5,5c649205050bfcbb4414db329659dadc",
+ "19000001-20000000.gz:md5,48838329ef3e8c26dd8b1ba82f925704",
+ "20000001-21000000.gz:md5,c7e1643d2880881fe5d44f718b8e6755",
+ "2000001-3000000.gz:md5,94849146caeca44e256aec58f1a914b8",
+ "3000001-4000000.gz:md5,4601fbb22fda2cbc4ed397707f8f7afd",
+ "4000001-5000000.gz:md5,7c8617d40b6d2e9a37802691f64f775e",
+ "5000001-6000000.gz:md5,0e81ba81f807f8429351e46dd8385e0e",
+ "6000001-7000000.gz:md5,6e86fccda1dc539e291bd5768ffd0dad",
+ "7000001-8000000.gz:md5,f0bf0306012d738fc71f7a26d7af2d81",
+ "8000001-9000000.gz:md5,0f3da0d0c714760bc2c39bc6696b74d1",
+ "9000001-10000000.gz:md5,4e0e2ba92378f6e1f261d5e59d8e3d9f"
+ ],
+ [
+ "1-1000000.gz:md5,83a0a200cb053b1f28e41fe62068d49a",
+ "10000001-11000000.gz:md5,2f84058256242378b7d14ef526ed42ea",
+ "1000001-2000000.gz:md5,c655f70a1d16eef55a5003cdb63434ab",
+ "11000001-12000000.gz:md5,6d5c34d7a61fa4764c546d1b46a5c90d",
+ "12000001-13000000.gz:md5,84fceee383bb28edb8d749c744a10932",
+ "13000001-14000000.gz:md5,aadd01464ca36c813a831f5c2016ba02",
+ "14000001-15000000.gz:md5,94a5325ca01192d5eea218b30f933ec4",
+ "15000001-16000000.gz:md5,de84954b08d570585a448d8831c12e6d",
+ "16000001-17000000.gz:md5,be4954afe2236d62226307f8c9f95820",
+ "17000001-18000000.gz:md5,8fdacfb47fc5728eb27b22bbb8c9b301",
+ "2000001-3000000.gz:md5,83552c17d88c3986c56c681b0b49bb97",
+ "3000001-4000000.gz:md5,deb3bc27c8d431d60fc89a6fe49bcbc6",
+ "4000001-5000000.gz:md5,98de5bbb694c73f7ffde16fb92069117",
+ "5000001-6000000.gz:md5,7c5a116261bf41309b18c22b0cba5f52",
+ "6000001-7000000.gz:md5,fb0d2dc71bd0c9263ff23825d8a4ef64",
+ "7000001-8000000.gz:md5,2375dcd7787e7ca5d26442cea0ff6710",
+ "8000001-9000000.gz:md5,979f986c27b91a62873e639e3ebeae43",
+ "9000001-10000000.gz:md5,b80f6906a724e4b0d6c21dd4c77663fd"
+ ],
+ "chr_synonyms.txt:md5,8a6fce00cc7817ec727c49b7954f10bc",
+ "info.txt:md5,33ccb74a030a9a345051628c337cb8af"
+ ]
+ ]
+ ]
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,954fd177c394ba167d575a6aac47390b"
+ ],
+ "cache": [
+ [
+ {
+ "id": "111_WBcel235"
+ },
+ [
+ [
+ [
+ [
+ "1-1000000.gz:md5,4da54db2f781d08975630811fd831585",
+ "10000001-11000000.gz:md5,7bee73e51d08f5e6de1796614105c5de",
+ "1000001-2000000.gz:md5,e8beff9020e261d78988c37e804cc89a",
+ "11000001-12000000.gz:md5,1a31b2dcf58822e837cd91b7a74a8b4f",
+ "12000001-13000000.gz:md5,34522be2ee5bd3cf51a9b151c877fe35",
+ "13000001-14000000.gz:md5,4e5a7b604f8aea2ad9de79b75ed89a6b",
+ "14000001-15000000.gz:md5,65146be110ea58b64ab8518bcbfbde9d",
+ "15000001-16000000.gz:md5,a39fdb7b0b056c0254574353351722eb",
+ "2000001-3000000.gz:md5,b72a04531477615dc4d2c530d09e60df",
+ "3000001-4000000.gz:md5,50dae46f370e1468c8f8f2c97cc75f0b",
+ "4000001-5000000.gz:md5,e58e124073689212e5311fbd8ccce415",
+ "5000001-6000000.gz:md5,db27434dc8be9557f97aa09a95126836",
+ "6000001-7000000.gz:md5,a5131e3ee41b329eb55fb3849ddb1471",
+ "7000001-8000000.gz:md5,61e1fbe1a82892a0f9f6ee0380fa60bc",
+ "8000001-9000000.gz:md5,48166dd4518ec21f597b6acca73809bb",
+ "9000001-10000000.gz:md5,3e416c856f40f36ec0ed3f42a93b2267"
+ ],
+ [
+ "1-1000000.gz:md5,06b83c3bd2c651c5a8a96f0865d54a53",
+ "10000001-11000000.gz:md5,79b3348f860370d1697e6d4de128fca3",
+ "1000001-2000000.gz:md5,f98e31f3e25c0a419ebeee5b17527b00",
+ "11000001-12000000.gz:md5,5f23214fdef1f7637f6046dc751155ed",
+ "12000001-13000000.gz:md5,9a4422905679e543a92d47142b1acba1",
+ "13000001-14000000.gz:md5,c5db99e7d56f2115f8da8fe3af83314a",
+ "14000001-15000000.gz:md5,66b65af3732c0495dc74f3071203ac2f",
+ "15000001-16000000.gz:md5,d4c30dc42925cc92dc594d4145544f33",
+ "2000001-3000000.gz:md5,ff9b3fd1235468c738e9201e2fa98e08",
+ "3000001-4000000.gz:md5,c649308c7d3b4891a8c6f95e583f3a08",
+ "4000001-5000000.gz:md5,c53d2fa6695248d0a725ef70325aae91",
+ "5000001-6000000.gz:md5,5481fb4b60ebd97256f5d52c42aee0bd",
+ "6000001-7000000.gz:md5,94b82e096bacb091e0ef55bcd08b8ab8",
+ "7000001-8000000.gz:md5,83f571dfaf8b891bf27208466e6f7d8c",
+ "8000001-9000000.gz:md5,4f07e30c7d772544bc6e99bac371b97b",
+ "9000001-10000000.gz:md5,f1439765f6428ae99516d95dc5df3926"
+ ],
+ [
+ "1-1000000.gz:md5,dab3bbb82e7ecc5430319b7723b88436",
+ "10000001-11000000.gz:md5,a1af0b4ce9c2ff301ac0a935a4189c58",
+ "1000001-2000000.gz:md5,8a70e4d08b14a4cf19b03a0556a6cae8",
+ "11000001-12000000.gz:md5,e866bb880cd79e612dc2081635368017",
+ "12000001-13000000.gz:md5,1b5be2ca310afd8289561331d19ddf07",
+ "13000001-14000000.gz:md5,907d2bb3f6b9b75fca9e40f1220c0cb4",
+ "2000001-3000000.gz:md5,783bcc5957ca4853853c5cda0418dbcd",
+ "3000001-4000000.gz:md5,cb2df81caa4a20215bb793ca2a792e01",
+ "4000001-5000000.gz:md5,2046030a187c0a86c9be02531aea0ed7",
+ "5000001-6000000.gz:md5,395a977401540eb90607b31ecc786a0f",
+ "6000001-7000000.gz:md5,e6a97128bc38649fcfa5dcb0032a570e",
+ "7000001-8000000.gz:md5,08804df16d4cdeb5a733d2d6b07b058e",
+ "8000001-9000000.gz:md5,bba084d260c12613403d144073105d9b",
+ "9000001-10000000.gz:md5,c0775c413018ed7964f3042112fe4e26"
+ ],
+ [
+ "1-1000000.gz:md5,710a2c1ad83c3c9751a0f152cd98f02c",
+ "10000001-11000000.gz:md5,ac93a92e62043bddaa59973e26dac8e0",
+ "1000001-2000000.gz:md5,232ee5ab6c7295007ffc760f361e4c07",
+ "11000001-12000000.gz:md5,07e49ac7b78fbc29cd920b11a4d21afc",
+ "12000001-13000000.gz:md5,7849822cf3df022e9f273fb6a928aa8b",
+ "13000001-14000000.gz:md5,e3d3f0ee264694c72b3b989a542c5694",
+ "14000001-15000000.gz:md5,e5771b6c2fefe9f62b23c71ab873f94f",
+ "15000001-16000000.gz:md5,fa02114035f63a504c48005c498f8ec3",
+ "16000001-17000000.gz:md5,ef0fd03281afc2e636a64fd61df8c4dc",
+ "17000001-18000000.gz:md5,4483a6d74a07b1101dccee71a22213ed",
+ "2000001-3000000.gz:md5,f164cbfdc8bc12efd7c26df3935fe190",
+ "3000001-4000000.gz:md5,ff05a42801004994a4f30f081bc8945a",
+ "4000001-5000000.gz:md5,b63f51d54dc3cb4b214b54527dfa4234",
+ "5000001-6000000.gz:md5,6945f59a1fd50f1dfa8a2f1e55fecc12",
+ "6000001-7000000.gz:md5,3f27a3cb19ece2a9e87da6fe6476faaa",
+ "7000001-8000000.gz:md5,05bffc6e8af7a80fdd6cbc53e5512d0c",
+ "8000001-9000000.gz:md5,8a3594ee1eb15d7aa8edeb325e485dce",
+ "9000001-10000000.gz:md5,338bce56200690d450d5fcac65a91be7"
+ ],
+ [
+ "1-1000000.gz:md5,779fda1352c0b1d635aa752c185e6ce2"
+ ],
+ [
+ "1-1000000.gz:md5,267b3134411641d12bb6efcfd5e9d48d",
+ "10000001-11000000.gz:md5,4f7473abf622b57ca3c8d6de098759f7",
+ "1000001-2000000.gz:md5,5587d56269638b9cc88bdb7ae5dacc58",
+ "11000001-12000000.gz:md5,3da928f2caf09b9e3df58f9d1be2c541",
+ "12000001-13000000.gz:md5,eae3125082e1674f40fcfb8bb7da23e3",
+ "13000001-14000000.gz:md5,6a91eccbe0cf05737e2d2971d5618876",
+ "14000001-15000000.gz:md5,60c9b08ad4f674c0394a7c16dee2713e",
+ "15000001-16000000.gz:md5,b36c052923f3d3e3cc8db9c2852e1e16",
+ "16000001-17000000.gz:md5,0d0d7a8735aadda492912d032fd8733b",
+ "17000001-18000000.gz:md5,cf57648ef4cbc3325cff87e6b4b89653",
+ "18000001-19000000.gz:md5,5c649205050bfcbb4414db329659dadc",
+ "19000001-20000000.gz:md5,48838329ef3e8c26dd8b1ba82f925704",
+ "20000001-21000000.gz:md5,c7e1643d2880881fe5d44f718b8e6755",
+ "2000001-3000000.gz:md5,94849146caeca44e256aec58f1a914b8",
+ "3000001-4000000.gz:md5,4601fbb22fda2cbc4ed397707f8f7afd",
+ "4000001-5000000.gz:md5,7c8617d40b6d2e9a37802691f64f775e",
+ "5000001-6000000.gz:md5,0e81ba81f807f8429351e46dd8385e0e",
+ "6000001-7000000.gz:md5,6e86fccda1dc539e291bd5768ffd0dad",
+ "7000001-8000000.gz:md5,f0bf0306012d738fc71f7a26d7af2d81",
+ "8000001-9000000.gz:md5,0f3da0d0c714760bc2c39bc6696b74d1",
+ "9000001-10000000.gz:md5,4e0e2ba92378f6e1f261d5e59d8e3d9f"
+ ],
+ [
+ "1-1000000.gz:md5,83a0a200cb053b1f28e41fe62068d49a",
+ "10000001-11000000.gz:md5,2f84058256242378b7d14ef526ed42ea",
+ "1000001-2000000.gz:md5,c655f70a1d16eef55a5003cdb63434ab",
+ "11000001-12000000.gz:md5,6d5c34d7a61fa4764c546d1b46a5c90d",
+ "12000001-13000000.gz:md5,84fceee383bb28edb8d749c744a10932",
+ "13000001-14000000.gz:md5,aadd01464ca36c813a831f5c2016ba02",
+ "14000001-15000000.gz:md5,94a5325ca01192d5eea218b30f933ec4",
+ "15000001-16000000.gz:md5,de84954b08d570585a448d8831c12e6d",
+ "16000001-17000000.gz:md5,be4954afe2236d62226307f8c9f95820",
+ "17000001-18000000.gz:md5,8fdacfb47fc5728eb27b22bbb8c9b301",
+ "2000001-3000000.gz:md5,83552c17d88c3986c56c681b0b49bb97",
+ "3000001-4000000.gz:md5,deb3bc27c8d431d60fc89a6fe49bcbc6",
+ "4000001-5000000.gz:md5,98de5bbb694c73f7ffde16fb92069117",
+ "5000001-6000000.gz:md5,7c5a116261bf41309b18c22b0cba5f52",
+ "6000001-7000000.gz:md5,fb0d2dc71bd0c9263ff23825d8a4ef64",
+ "7000001-8000000.gz:md5,2375dcd7787e7ca5d26442cea0ff6710",
+ "8000001-9000000.gz:md5,979f986c27b91a62873e639e3ebeae43",
+ "9000001-10000000.gz:md5,b80f6906a724e4b0d6c21dd4c77663fd"
+ ],
+ "chr_synonyms.txt:md5,8a6fce00cc7817ec727c49b7954f10bc",
+ "info.txt:md5,33ccb74a030a9a345051628c337cb8af"
+ ]
+ ]
+ ]
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,954fd177c394ba167d575a6aac47390b"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-04-15T17:20:01.921038"
+ },
+ "celegans - download - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "111_WBcel235"
+ },
+ [
+
+ ]
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,954fd177c394ba167d575a6aac47390b"
+ ],
+ "cache": [
+ [
+ {
+ "id": "111_WBcel235"
+ },
+ [
+
+ ]
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,954fd177c394ba167d575a6aac47390b"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-04-15T18:09:54.909036"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/ensemblvep/download/tests/nextflow.config b/modules/nf-core/ensemblvep/download/tests/nextflow.config
new file mode 100644
index 00000000..882bce41
--- /dev/null
+++ b/modules/nf-core/ensemblvep/download/tests/nextflow.config
@@ -0,0 +1,12 @@
+params {
+ vep_cache_version = "111"
+ vep_genome = "WBcel235"
+ vep_species = "caenorhabditis_elegans"
+}
+
+process {
+ withName: ENSEMBLVEP_DOWNLOAD {
+ ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE'
+ ext.prefix = { "${params.vep_cache_version}_${params.vep_genome}" }
+ }
+}
diff --git a/modules/nf-core/ensemblvep/download/tests/tags.yml b/modules/nf-core/ensemblvep/download/tests/tags.yml
new file mode 100644
index 00000000..26671f3d
--- /dev/null
+++ b/modules/nf-core/ensemblvep/download/tests/tags.yml
@@ -0,0 +1,2 @@
+ensemblvep/download:
+ - "modules/nf-core/ensemblvep/download/**"
diff --git a/modules/nf-core/ensemblvep/vep/environment.yml b/modules/nf-core/ensemblvep/vep/environment.yml
index 7a127746..91457c05 100644
--- a/modules/nf-core/ensemblvep/vep/environment.yml
+++ b/modules/nf-core/ensemblvep/vep/environment.yml
@@ -4,4 +4,4 @@ channels:
- bioconda
- defaults
dependencies:
- - bioconda::ensembl-vep=110.0
+ - bioconda::ensembl-vep=111.0
diff --git a/modules/nf-core/ensemblvep/vep/main.nf b/modules/nf-core/ensemblvep/vep/main.nf
index a7fc5ad1..e82471aa 100644
--- a/modules/nf-core/ensemblvep/vep/main.nf
+++ b/modules/nf-core/ensemblvep/vep/main.nf
@@ -4,8 +4,8 @@ process ENSEMBLVEP_VEP {
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/ensembl-vep:110.0--pl5321h2a3209d_0' :
- 'biocontainers/ensembl-vep:110.0--pl5321h2a3209d_0' }"
+ 'https://depot.galaxyproject.org/singularity/ensembl-vep:111.0--pl5321h2a3209d_0' :
+ 'biocontainers/ensembl-vep:111.0--pl5321h2a3209d_0' }"
input:
tuple val(meta), path(vcf), path(custom_extra_files)
@@ -57,9 +57,9 @@ process ENSEMBLVEP_VEP {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.vcf.gz
- touch ${prefix}.tab.gz
- touch ${prefix}.json.gz
+ echo "" | gzip > ${prefix}.vcf.gz
+ echo "" | gzip > ${prefix}.tab.gz
+ echo "" | gzip > ${prefix}.json.gz
touch ${prefix}.summary.html
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/ensemblvep/vep/tests/main.nf.test b/modules/nf-core/ensemblvep/vep/tests/main.nf.test
index f072dcab..4aff84a3 100644
--- a/modules/nf-core/ensemblvep/vep/tests/main.nf.test
+++ b/modules/nf-core/ensemblvep/vep/tests/main.nf.test
@@ -1,26 +1,31 @@
nextflow_process {
name "Test Process ENSEMBLVEP_VEP"
- script "modules/nf-core/ensemblvep/vep/main.nf"
+ script "../main.nf"
process "ENSEMBLVEP_VEP"
config "./nextflow.config"
+
tag "modules"
tag "modules_nfcore"
tag "ensemblvep"
tag "ensemblvep/vep"
tag "ensemblvep/download"
-
test("test_ensemblvep_vep_fasta_vcf") {
-
config "./vcf.config"
setup {
run("ENSEMBLVEP_DOWNLOAD") {
script "../../download/main.nf"
+
process {
"""
- input[0] = Channel.of([[id:"${params.vep_cache_version}_${params.vep_genome}"], params.vep_genome, params.vep_species, params.vep_cache_version])
+ input[0] = Channel.of([
+ [id:"111_WBcel235"],
+ params.vep_genome,
+ params.vep_species,
+ params.vep_cache_version
+ ])
"""
}
}
@@ -31,7 +36,7 @@ nextflow_process {
"""
input[0] = Channel.of([
[ id:'test' ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true),
[]
])
input[1] = params.vep_genome
@@ -40,7 +45,7 @@ nextflow_process {
input[4] = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }
input[5] = Channel.value([
[id:"fasta"],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
])
input[6] = []
"""
@@ -49,23 +54,29 @@ nextflow_process {
then {
assertAll(
- {assert process.success},
- {assert path(process.out.vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.2")}
+ { assert process.success },
+ { assert snapshot(process.out.versions).match() },
+ { assert path(process.out.vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.2") }
)
}
}
test("test_ensemblvep_vep_fasta_tab_gz") {
-
config "./tab.gz.config"
setup {
run("ENSEMBLVEP_DOWNLOAD") {
script "../../download/main.nf"
+
process {
"""
- input[0] = Channel.of([[id:"${params.vep_cache_version}_${params.vep_genome}"], params.vep_genome, params.vep_species, params.vep_cache_version])
+ input[0] = Channel.of([
+ [id:"111_WBcel235"],
+ params.vep_genome,
+ params.vep_species,
+ params.vep_cache_version
+ ])
"""
}
}
@@ -76,7 +87,7 @@ nextflow_process {
"""
input[0] = Channel.of([
[ id:'test' ], // meta map
- file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true),
[]
])
input[1] = params.vep_genome
@@ -85,7 +96,7 @@ nextflow_process {
input[4] = ENSEMBLVEP_DOWNLOAD.out.cache.map{ meta, cache -> [cache] }
input[5] = Channel.value([
[id:"fasta"],
- file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
])
input[6] = []
"""
@@ -94,8 +105,9 @@ nextflow_process {
then {
assertAll(
- {assert process.success},
- {assert path(process.out.tab.get(0).get(1)).linesGzip.contains("## ENSEMBL VARIANT EFFECT PREDICTOR v110.0")}
+ { assert process.success },
+ { assert snapshot(process.out.versions).match() },
+ { assert path(process.out.tab.get(0).get(1)).linesGzip.contains("## ENSEMBL VARIANT EFFECT PREDICTOR v111.0") }
)
}
}
diff --git a/modules/nf-core/ensemblvep/vep/tests/main.nf.test.snap b/modules/nf-core/ensemblvep/vep/tests/main.nf.test.snap
new file mode 100644
index 00000000..f937b299
--- /dev/null
+++ b/modules/nf-core/ensemblvep/vep/tests/main.nf.test.snap
@@ -0,0 +1,26 @@
+{
+ "test_ensemblvep_vep_fasta_tab_gz": {
+ "content": [
+ [
+ "versions.yml:md5,bd2ba1b4741a7d0a224160b50859f4ba"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-04-15T17:35:20.694114"
+ },
+ "test_ensemblvep_vep_fasta_vcf": {
+ "content": [
+ [
+ "versions.yml:md5,bd2ba1b4741a7d0a224160b50859f4ba"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-04-15T17:34:41.093843"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/ensemblvep/vep/tests/nextflow.config b/modules/nf-core/ensemblvep/vep/tests/nextflow.config
index cfaef733..882bce41 100644
--- a/modules/nf-core/ensemblvep/vep/tests/nextflow.config
+++ b/modules/nf-core/ensemblvep/vep/tests/nextflow.config
@@ -1,13 +1,12 @@
params {
- vep_cache_version = "110"
- vep_genome = "WBcel235"
- vep_species = "caenorhabditis_elegans"
+ vep_cache_version = "111"
+ vep_genome = "WBcel235"
+ vep_species = "caenorhabditis_elegans"
}
process {
-
withName: ENSEMBLVEP_DOWNLOAD {
- ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE'
+ ext.args = '--AUTO c --CONVERT --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE'
+ ext.prefix = { "${params.vep_cache_version}_${params.vep_genome}" }
}
-
}
diff --git a/modules/nf-core/expansionhunter/environment.yml b/modules/nf-core/expansionhunter/environment.yml
index 76edd1ef..8023159a 100644
--- a/modules/nf-core/expansionhunter/environment.yml
+++ b/modules/nf-core/expansionhunter/environment.yml
@@ -3,5 +3,7 @@ channels:
- conda-forge
- bioconda
- defaults
+
dependencies:
- bioconda::expansionhunter=5.0.0
+ - bioconda::htslib=1.18
diff --git a/modules/nf-core/expansionhunter/main.nf b/modules/nf-core/expansionhunter/main.nf
index bea5916a..dbcb175f 100644
--- a/modules/nf-core/expansionhunter/main.nf
+++ b/modules/nf-core/expansionhunter/main.nf
@@ -40,7 +40,7 @@ process EXPANSIONHUNTER {
cat <<-END_VERSIONS > versions.yml
"${task.process}":
- expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | sed 's/^.*ExpansionHunter v//')
+ expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | head -1 | sed 's/^.*ExpansionHunter v//')
bgzip: \$(echo \$(bgzip -h 2>&1) | sed 's/^.*Version: //;s/Usage:.*//')
END_VERSIONS
"""
@@ -48,13 +48,13 @@ process EXPANSIONHUNTER {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.vcf.gz
- touch ${prefix}.json.gz
+ echo "" | gzip > ${prefix}.vcf.gz
+ echo "" | gzip > ${prefix}.json.gz
touch ${prefix}_realigned.bam
cat <<-END_VERSIONS > versions.yml
"${task.process}":
- expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | sed 's/^.*ExpansionHunter v//')
+ expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | head -1 | sed 's/^.*ExpansionHunter v//')
bgzip: \$(echo \$(bgzip -h 2>&1) | sed 's/^.*Version: //;s/Usage:.*//')
END_VERSIONS
"""
diff --git a/modules/nf-core/expansionhunter/tests/main.nf.test b/modules/nf-core/expansionhunter/tests/main.nf.test
index 6204460a..ef15e133 100644
--- a/modules/nf-core/expansionhunter/tests/main.nf.test
+++ b/modules/nf-core/expansionhunter/tests/main.nf.test
@@ -7,7 +7,7 @@ nextflow_process {
tag "modules_nfcore"
tag "expansionhunter"
- test("expansionhunter") {
+ test("homo_sapiens - [bam,bai], fasta, fai, cat") {
when {
process {
@@ -25,10 +25,35 @@ nextflow_process {
then {
assertAll(
- {assert process.success},
- {assert path(process.out.vcf.get(0).get(1)).linesGzip.size() == 8},
- {assert path(process.out.json.get(0).get(1)).linesGzip.size() == 27},
- {assert snapshot(process.out.bam).match()}
+ {assert process.success},
+ {assert snapshot(process.out).match("expansionhunter")}
+ )
+ }
+
+ }
+
+ test("homo_sapiens - [bam,bai], fasta, fai, cat - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test' ], // meta map
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true),
+ ]
+ input[1] = [[id:'fasta'],file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)]
+ input[2] = [[id:'fasta_fai'],file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)]
+ input[3] = [[id:'catalogue'],file(params.test_data['homo_sapiens']['genome']['repeat_expansions'], checkIfExists: true)]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ {assert process.success},
+ {assert snapshot(process.out).match("stub")}
)
}
diff --git a/modules/nf-core/expansionhunter/tests/main.nf.test.snap b/modules/nf-core/expansionhunter/tests/main.nf.test.snap
index a98fb599..a4e09f4c 100644
--- a/modules/nf-core/expansionhunter/tests/main.nf.test.snap
+++ b/modules/nf-core/expansionhunter/tests/main.nf.test.snap
@@ -1,15 +1,132 @@
{
"expansionhunter": {
"content": [
- [
- [
- {
- "id": "test"
- },
- "test_realigned.bam:md5,b37a72c0b97b45e63636a9758f3144d7"
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,cfd4a1d35c0e469b99eb6aaa6d22de76"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.json.gz:md5,60d7dc4662c837bba2715d54b64a9bfe"
+ ]
+ ],
+ "2": [
+ [
+ {
+ "id": "test"
+ },
+ "test_realigned.bam:md5,b37a72c0b97b45e63636a9758f3144d7"
+ ]
+ ],
+ "3": [
+ "versions.yml:md5,056b525f67ba23c361f0c65f47256dca"
+ ],
+ "bam": [
+ [
+ {
+ "id": "test"
+ },
+ "test_realigned.bam:md5,b37a72c0b97b45e63636a9758f3144d7"
+ ]
+ ],
+ "json": [
+ [
+ {
+ "id": "test"
+ },
+ "test.json.gz:md5,60d7dc4662c837bba2715d54b64a9bfe"
+ ]
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,cfd4a1d35c0e469b99eb6aaa6d22de76"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,056b525f67ba23c361f0c65f47256dca"
]
- ]
+ }
],
- "timestamp": "2024-01-26T17:35:10.45442497"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T12:20:15.18545069"
+ },
+ "stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.json.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "2": [
+ [
+ {
+ "id": "test"
+ },
+ "test_realigned.bam:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "3": [
+ "versions.yml:md5,056b525f67ba23c361f0c65f47256dca"
+ ],
+ "bam": [
+ [
+ {
+ "id": "test"
+ },
+ "test_realigned.bam:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "json": [
+ [
+ {
+ "id": "test"
+ },
+ "test.json.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,056b525f67ba23c361f0c65f47256dca"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T12:20:28.430115"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/gawk/main.nf b/modules/nf-core/gawk/main.nf
index f856a1f8..578b448c 100644
--- a/modules/nf-core/gawk/main.nf
+++ b/modules/nf-core/gawk/main.nf
@@ -41,10 +41,11 @@ process GAWK {
stub:
prefix = task.ext.prefix ?: "${meta.id}"
- suffix = task.ext.suffix ?: "${input.getExtension}"
+ suffix = task.ext.suffix ?: "${input.getExtension()}"
+ def create_cmd = suffix.endsWith("gz") ? "echo '' | gzip >" : "touch"
"""
- touch ${prefix}.${suffix}
+ ${create_cmd} ${prefix}.${suffix}
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/gawk/tests/main.nf.test b/modules/nf-core/gawk/tests/main.nf.test
new file mode 100644
index 00000000..fce82ca9
--- /dev/null
+++ b/modules/nf-core/gawk/tests/main.nf.test
@@ -0,0 +1,56 @@
+nextflow_process {
+
+ name "Test Process GAWK"
+ script "../main.nf"
+ process "GAWK"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "gawk"
+
+ test("convert fasta to bed") {
+ config "./nextflow.config"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ input[1] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("convert fasta to bed with program file") {
+ config "./nextflow_with_program_file.config"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ input[1] = Channel.of('BEGIN {FS="\t"}; {print \$1 FS "0" FS \$2}').collectFile(name:"program.txt")
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/gawk/tests/main.nf.test.snap b/modules/nf-core/gawk/tests/main.nf.test.snap
new file mode 100644
index 00000000..ce207478
--- /dev/null
+++ b/modules/nf-core/gawk/tests/main.nf.test.snap
@@ -0,0 +1,68 @@
+{
+ "convert fasta to bed with program file": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bed:md5,87a15eb9c2ff20ccd5cd8735a28708f7"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4c320d8c98ca80690afd7651da1ba520"
+ ],
+ "output": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bed:md5,87a15eb9c2ff20ccd5cd8735a28708f7"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4c320d8c98ca80690afd7651da1ba520"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-05T11:00:28.097563"
+ },
+ "convert fasta to bed": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bed:md5,87a15eb9c2ff20ccd5cd8735a28708f7"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4c320d8c98ca80690afd7651da1ba520"
+ ],
+ "output": [
+ [
+ {
+ "id": "test"
+ },
+ "test.bed:md5,87a15eb9c2ff20ccd5cd8735a28708f7"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4c320d8c98ca80690afd7651da1ba520"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-05T10:28:15.625869"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/gawk/tests/nextflow.config b/modules/nf-core/gawk/tests/nextflow.config
new file mode 100644
index 00000000..6e5d43a3
--- /dev/null
+++ b/modules/nf-core/gawk/tests/nextflow.config
@@ -0,0 +1,6 @@
+process {
+ withName: GAWK {
+ ext.suffix = "bed"
+ ext.args2 = '\'BEGIN {FS="\t"}; {print \$1 FS "0" FS \$2}\''
+ }
+}
diff --git a/modules/nf-core/gawk/tests/nextflow_with_program_file.config b/modules/nf-core/gawk/tests/nextflow_with_program_file.config
new file mode 100644
index 00000000..693ad419
--- /dev/null
+++ b/modules/nf-core/gawk/tests/nextflow_with_program_file.config
@@ -0,0 +1,5 @@
+process {
+ withName: GAWK {
+ ext.suffix = "bed"
+ }
+}
diff --git a/modules/nf-core/gawk/tests/tags.yml b/modules/nf-core/gawk/tests/tags.yml
new file mode 100644
index 00000000..72e4531d
--- /dev/null
+++ b/modules/nf-core/gawk/tests/tags.yml
@@ -0,0 +1,2 @@
+gawk:
+ - "modules/nf-core/gawk/**"
diff --git a/modules/nf-core/gridss/gridss/environment.yml b/modules/nf-core/gridss/gridss/environment.yml
new file mode 100644
index 00000000..88b38561
--- /dev/null
+++ b/modules/nf-core/gridss/gridss/environment.yml
@@ -0,0 +1,7 @@
+name: gridss_gridss
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gridss=2.13.2
diff --git a/modules/nf-core/gridss/gridss/main.nf b/modules/nf-core/gridss/gridss/main.nf
index efd45a7c..60e8b76f 100644
--- a/modules/nf-core/gridss/gridss/main.nf
+++ b/modules/nf-core/gridss/gridss/main.nf
@@ -1,8 +1,8 @@
process GRIDSS_GRIDSS {
tag "$meta.id"
- label 'process_high'
+ label 'process_medium'
- conda "bioconda::gridss=2.13.2"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gridss:2.13.2--h270b39a_0':
'biocontainers/gridss:2.13.2--h270b39a_0' }"
@@ -37,7 +37,8 @@ process GRIDSS_GRIDSS {
--reference ${fasta} \\
--threads ${task.cpus} \\
${assembly} \\
- ${args} \\
+ --jvmheap ${task.memory.toGiga() - 1}g \\
+ --otherjvmheap ${task.memory.toGiga() - 1}g \\
${inputs}
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/gridss/gridss/meta.yml b/modules/nf-core/gridss/gridss/meta.yml
index 3ac3842e..bf5539c1 100644
--- a/modules/nf-core/gridss/gridss/meta.yml
+++ b/modules/nf-core/gridss/gridss/meta.yml
@@ -9,12 +9,10 @@ keywords:
tools:
- "gridss":
description: "GRIDSS: the Genomic Rearrangement IDentification Software Suite"
-
documentation: "https://github.com/PapenfussLab/gridss/wiki/GRIDSS-Documentation"
tool_dev_url: "https://github.com/PapenfussLab/gridss"
doi: "10.1186/s13059-021-02423-x"
licence: "['GPL v3']"
-
input:
- meta:
type: map
@@ -40,7 +38,6 @@ input:
- bwa_index:
type: directory
description: OPTIONAL - The BWA index created from the reference fasta, will be generated by Gridss in the setupreference step
-
output:
- meta:
type: map
@@ -59,6 +56,7 @@ output:
type: file
description: The assembly BAM file created by Gridss' assembly step
pattern: "*.assembly.bam"
-
authors:
- "@nvnieuwk"
+maintainers:
+ - "@nvnieuwk"
diff --git a/modules/nf-core/jasminesv/environment.yml b/modules/nf-core/jasminesv/environment.yml
index 3f04bc0f..7b26adfe 100644
--- a/modules/nf-core/jasminesv/environment.yml
+++ b/modules/nf-core/jasminesv/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::jasminesv=1.1.5
+ - bioconda::htslib=1.15.1
diff --git a/modules/nf-core/jasminesv/main.nf b/modules/nf-core/jasminesv/main.nf
index 08decefb..7272f5d9 100644
--- a/modules/nf-core/jasminesv/main.nf
+++ b/modules/nf-core/jasminesv/main.nf
@@ -9,8 +9,8 @@ process JASMINESV {
input:
tuple val(meta), path(vcfs), path(bams), path(sample_dists), path(vcf_list)
- path(fasta)
- path(fasta_fai)
+ tuple val(meta2), path(fasta)
+ tuple val(meta3), path(fasta_fai)
path(chr_norm)
output:
@@ -65,7 +65,7 @@ process JASMINESV {
def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.vcf.gz
+ echo "" | gzip > ${prefix}.vcf.gz
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/jasminesv/meta.yml b/modules/nf-core/jasminesv/meta.yml
index e53ed304..5d8b111c 100644
--- a/modules/nf-core/jasminesv/meta.yml
+++ b/modules/nf-core/jasminesv/meta.yml
@@ -12,7 +12,7 @@ tools:
homepage: "https://github.com/mkirsche/Jasmine/wiki/Jasmine-User-Manual"
documentation: "https://github.com/mkirsche/Jasmine/wiki/Jasmine-User-Manual"
tool_dev_url: "https://github.com/mkirsche/Jasmine"
- licence: "['MIT']"
+ licence: ["MIT"]
input:
- meta:
type: map
@@ -20,22 +20,32 @@ input:
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
- vcfs:
- type: files
+ type: list
description: |
The VCF files that need to be merged
pattern: "*.{vcf,vcf.gz}"
- bams:
- type: files
+ type: list
description: Optional - The BAM files from which the VCFs were created
pattern: "*.bam"
- sample_dists:
type: file
description: Optional - A txt file containing the distance thresholds for each sample
pattern: "*.txt"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing fasta information
+ e.g. [ id:'test', single_end:false ]
- fasta:
type: file
description: Optional - The reference FASTA file used to create the VCFs
pattern: "*.{fasta,fa}"
+ - meta3:
+ type: map
+ description: |
+ Groovy Map containing fasta index information
+ e.g. [ id:'test', single_end:false ]
- fasta_fai:
type: file
description: Optional - The index of the reference FASTA file used to create the VCFs
diff --git a/modules/nf-core/jasminesv/tests/iris.config b/modules/nf-core/jasminesv/tests/iris.config
new file mode 100644
index 00000000..f61a65bb
--- /dev/null
+++ b/modules/nf-core/jasminesv/tests/iris.config
@@ -0,0 +1,6 @@
+process {
+ withName: "JASMINESV" {
+ ext.args = "--run_iris"
+ ext.args2 = {"threads=1,--pacbio,min_ins_length=30"}
+ }
+}
diff --git a/modules/nf-core/jasminesv/tests/main.nf.test b/modules/nf-core/jasminesv/tests/main.nf.test
new file mode 100644
index 00000000..851f3383
--- /dev/null
+++ b/modules/nf-core/jasminesv/tests/main.nf.test
@@ -0,0 +1,185 @@
+nextflow_process {
+
+ name "Test Process JASMINESV"
+ script "../main.nf"
+ process "JASMINESV"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "jasminesv"
+
+ test("homo_sapiens - [vcf, vcf2], [], [], [], [], []") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:"test" ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf", checkIfExists:true),
+ ],
+ [],
+ []
+ ]
+ input[1] = [[],[]]
+ input[2] = [[],[]]
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("vcf") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - [vcf_gz, vcf_gz2], [], [], [], [], []") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:"test" ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test_haplotcaller.cnn.vcf.gz", checkIfExists:true),
+ ],
+ [],
+ []
+ ]
+ input[1] = [[],[]]
+ input[2] = [[],[]]
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("vcf_gz") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - [vcf, vcf2], [bam, bam2], [], fasta, fai, []") {
+
+ config "./iris.config"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:"test" ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf", checkIfExists:true),
+ ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam", checkIfExists:true)
+ ],
+ []
+ ]
+ input[1] = [
+ [id:"fasta"],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [id:"fai"],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta.fai", checkIfExists:true)
+ ]
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("iris") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - [vcf, vcf2], [bam, bam2], [], fasta, fai, txt") {
+
+ config "./normalize.config"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:"test" ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf", checkIfExists:true),
+ ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test.paired_end.sorted.bam", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam", checkIfExists:true)
+ ],
+ []
+ ]
+ input[1] = [
+ [id:"fasta"],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta", checkIfExists:true)
+ ]
+ input[2] = [
+ [id:"fai"],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/genome.fasta.fai", checkIfExists:true)
+ ]
+ input[3] = Channel.of("chr21 21", "chr22 22").collectFile(name:"chr_norm.txt", newLine:true)
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("normalize") }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - [vcf, vcf2], [], [], [], [], [] - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:"test" ],
+ [
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test.genome.vcf", checkIfExists:true),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf", checkIfExists:true),
+ ],
+ [],
+ []
+ ]
+ input[1] = [[],[]]
+ input[2] = [[],[]]
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("stub") }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/jasminesv/tests/main.nf.test.snap b/modules/nf-core/jasminesv/tests/main.nf.test.snap
new file mode 100644
index 00000000..12032759
--- /dev/null
+++ b/modules/nf-core/jasminesv/tests/main.nf.test.snap
@@ -0,0 +1,167 @@
+{
+ "iris": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,4140a44d52426b17c4882a2b4d7508fb"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,4140a44d52426b17c4882a2b4d7508fb"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:31:25.797756867"
+ },
+ "vcf_gz": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,aec8e2a90831e84b5e0f8dfa6b80fef5"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,aec8e2a90831e84b5e0f8dfa6b80fef5"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:31:17.166819477"
+ },
+ "normalize": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,ee57b923cb0a6e2af25790942281fa09"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,ee57b923cb0a6e2af25790942281fa09"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:31:33.298107095"
+ },
+ "vcf": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,a5f2ea4423010007d26bd61adb169eb7"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,a5f2ea4423010007d26bd61adb169eb7"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:31:09.71125551"
+ },
+ "stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4551c0b18f219ada906fbca1f71e06b0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T11:31:41.394853501"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/jasminesv/tests/normalize.config b/modules/nf-core/jasminesv/tests/normalize.config
new file mode 100644
index 00000000..df20a56c
--- /dev/null
+++ b/modules/nf-core/jasminesv/tests/normalize.config
@@ -0,0 +1,5 @@
+process {
+ withName: "JASMINESV" {
+ ext.args = "--normalize_chrs"
+ }
+}
diff --git a/modules/nf-core/jasminesv/tests/tags.yml b/modules/nf-core/jasminesv/tests/tags.yml
new file mode 100644
index 00000000..52e09e5b
--- /dev/null
+++ b/modules/nf-core/jasminesv/tests/tags.yml
@@ -0,0 +1,2 @@
+jasminesv:
+ - "modules/nf-core/jasminesv/**"
diff --git a/modules/nf-core/manta/convertinversion/environment.yml b/modules/nf-core/manta/convertinversion/environment.yml
index c238cf4d..433a423f 100644
--- a/modules/nf-core/manta/convertinversion/environment.yml
+++ b/modules/nf-core/manta/convertinversion/environment.yml
@@ -4,6 +4,6 @@ channels:
- bioconda
- defaults
dependencies:
+ - bioconda::htslib=1.16
- bioconda::manta=1.6.0
- bioconda::samtools=1.16.1
- - bioconda::htslib=1.16
diff --git a/modules/nf-core/manta/convertinversion/main.nf b/modules/nf-core/manta/convertinversion/main.nf
index dde263d0..462b2e5e 100644
--- a/modules/nf-core/manta/convertinversion/main.nf
+++ b/modules/nf-core/manta/convertinversion/main.nf
@@ -33,4 +33,17 @@ process MANTA_CONVERTINVERSION {
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )
END_VERSIONS
"""
+
+ stub:
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ """
+ echo "" | gzip > ${prefix}.vcf.gz
+ touch ${prefix}.vcf.gz.tbi
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ manta: \$( configManta.py --version )
+ samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/manta/convertinversion/meta.yml b/modules/nf-core/manta/convertinversion/meta.yml
index cd1d3cef..865ef87c 100644
--- a/modules/nf-core/manta/convertinversion/meta.yml
+++ b/modules/nf-core/manta/convertinversion/meta.yml
@@ -22,6 +22,15 @@ input:
type: file
description: VCF file produces by Manta
pattern: "*.vcf.gz"
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing fasta information
+ e.g. [ id:'test', single_end:false ]
+ - fasta:
+ type: file
+ description: The reference fasta file
+ pattern: "*.{fasta,fa,fna}"
output:
- meta:
type: map
diff --git a/modules/nf-core/manta/convertinversion/tests/main.nf.test b/modules/nf-core/manta/convertinversion/tests/main.nf.test
new file mode 100644
index 00000000..58adf6e3
--- /dev/null
+++ b/modules/nf-core/manta/convertinversion/tests/main.nf.test
@@ -0,0 +1,92 @@
+nextflow_process {
+
+ name "Test Process MANTA_CONVERTINVERSION"
+ script "../main.nf"
+ process "MANTA_CONVERTINVERSION"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "manta"
+ tag "manta/convertinversion"
+ tag "manta/tumoronly"
+
+ setup {
+ run("MANTA_TUMORONLY") {
+ script "../../tumoronly/main.nf"
+ process {
+ """
+ input[0] = [
+ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram"),
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai"),
+ [],
+ []
+ ]
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta")
+ ]
+ input[2] = [
+ [ id:'fai' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai")
+ ]
+ input[3] = []
+ """
+ }
+ }
+
+ }
+
+ test("homo_sapiens - vcf, fasta") {
+
+ when {
+ process {
+ """
+ input[0] = MANTA_TUMORONLY.out.tumor_sv_vcf
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta")
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(
+ process.out.vcf.collect { it.collect { it instanceof Map ? it : path(it).linesGzip[-7..-3] } },
+ process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } },
+ process.out.versions
+ ).match() }
+ )
+ }
+
+ }
+
+ test("homo_sapiens - vcf, fasta - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = MANTA_TUMORONLY.out.tumor_sv_vcf
+ input[1] = [
+ [ id:'fasta' ],
+ file(params.modules_testdata_base_path + "genomics/homo_sapiens/genome/chr21/sequence/genome.fasta")
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("stub") }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/manta/convertinversion/tests/main.nf.test.snap b/modules/nf-core/manta/convertinversion/tests/main.nf.test.snap
new file mode 100644
index 00000000..0fba8d69
--- /dev/null
+++ b/modules/nf-core/manta/convertinversion/tests/main.nf.test.snap
@@ -0,0 +1,85 @@
+{
+ "stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "2": [
+ "versions.yml:md5,d9a3c2c54bad36a8310d42eae3d57801"
+ ],
+ "tbi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,d9a3c2c54bad36a8310d42eae3d57801"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T10:26:25.996091364"
+ },
+ "homo_sapiens - vcf, fasta": {
+ "content": [
+ [
+ [
+ {
+ "id": "test"
+ },
+ [
+ "##FILTER=",
+ "##ALT=",
+ "##ALT=",
+ "##ALT=",
+ "##ALT="
+ ]
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "test.vcf.gz.tbi"
+ ]
+ ],
+ [
+ "versions.yml:md5,d9a3c2c54bad36a8310d42eae3d57801"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T13:34:11.206457972"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/manta/convertinversion/tests/tags.yml b/modules/nf-core/manta/convertinversion/tests/tags.yml
new file mode 100644
index 00000000..14d94b28
--- /dev/null
+++ b/modules/nf-core/manta/convertinversion/tests/tags.yml
@@ -0,0 +1,2 @@
+manta/convertinversion:
+ - "modules/nf-core/manta/convertinversion/**"
diff --git a/modules/nf-core/manta/germline/main.nf b/modules/nf-core/manta/germline/main.nf
index 5d5666c6..c1b339a9 100644
--- a/modules/nf-core/manta/germline/main.nf
+++ b/modules/nf-core/manta/germline/main.nf
@@ -66,11 +66,11 @@ process MANTA_GERMLINE {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
"""
- touch ${prefix}.candidate_small_indels.vcf.gz
+ echo "" | gzip > ${prefix}.candidate_small_indels.vcf.gz
touch ${prefix}.candidate_small_indels.vcf.gz.tbi
- touch ${prefix}.candidate_sv.vcf.gz
+ echo "" | gzip > ${prefix}.candidate_sv.vcf.gz
touch ${prefix}.candidate_sv.vcf.gz.tbi
- touch ${prefix}.diploid_sv.vcf.gz
+ echo "" | gzip > ${prefix}.diploid_sv.vcf.gz
touch ${prefix}.diploid_sv.vcf.gz.tbi
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/manta/germline/tests/main.nf.test b/modules/nf-core/manta/germline/tests/main.nf.test
new file mode 100644
index 00000000..1d49ad23
--- /dev/null
+++ b/modules/nf-core/manta/germline/tests/main.nf.test
@@ -0,0 +1,162 @@
+nextflow_process {
+
+ name "Test Process MANTA_GERMLINE"
+ script "../main.nf"
+ process "MANTA_GERMLINE"
+ config "./nextflow.config"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "manta"
+ tag "manta/germline"
+
+ test("human - cram") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true),
+ [],[]
+ ]
+ // fasta
+ input[1] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ]
+ // fai
+ input[2] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ // config
+ input[3] = Channel.of("[manta]", "enableRemoteReadRetrievalForInsertionsInGermlineCallingModes = 0")
+ .collectFile(name:"manta_options.ini", newLine:true)
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert path(process.out.candidate_small_indels_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.candidate_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.diploid_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert snapshot(process.out.version).match("version") }
+ )
+ }
+
+ }
+
+ test("human - cram - bed") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'bed_test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz.tbi', checkIfExists: true)
+ ]
+ // fasta
+ input[1] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ]
+ // fai
+ input[2] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ // config
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert path(process.out.candidate_small_indels_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.candidate_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.diploid_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert snapshot(process.out.version).match("bed_version") }
+ )
+ }
+
+ }
+
+ test("human - cram - bed - jointcalling") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'bed_test', single_end:false ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram', checkIfExists: true)
+ ],
+ [ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram.crai', checkIfExists: true)
+ ],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed.gz.tbi', checkIfExists: true)
+ ]
+ // fasta
+ input[1] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ]
+ // fai
+ input[2] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ // config
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert path(process.out.candidate_small_indels_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.candidate_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert path(process.out.diploid_sv_vcf.get(0).get(1)).linesGzip.contains("##fileformat=VCFv4.1") },
+ { assert snapshot(process.out.version).match("joint_version") }
+ )
+ }
+
+ }
+ test("human - cram - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test'], // meta map
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai', checkIfExists: true),
+ [],[]
+ ]
+ // fasta
+ input[1] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true)
+ ]
+ // fai
+ input[2] = [ [id:'genome'],
+ file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true)
+ ]
+ // config
+ input[3] = []
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/manta/germline/tests/main.nf.test.snap b/modules/nf-core/manta/germline/tests/main.nf.test.snap
new file mode 100644
index 00000000..79d5541e
--- /dev/null
+++ b/modules/nf-core/manta/germline/tests/main.nf.test.snap
@@ -0,0 +1,139 @@
+{
+ "human - cram - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_small_indels.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "1": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_small_indels.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "2": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_sv.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "3": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_sv.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "4": [
+ [
+ {
+ "id": "test"
+ },
+ "test.diploid_sv.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "5": [
+ [
+ {
+ "id": "test"
+ },
+ "test.diploid_sv.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "6": [
+ "versions.yml:md5,18070b443a26855ef64dafa179dfba01"
+ ],
+ "candidate_small_indels_vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_small_indels.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "candidate_small_indels_vcf_tbi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_small_indels.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "candidate_sv_vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_sv.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "candidate_sv_vcf_tbi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.candidate_sv.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "diploid_sv_vcf": [
+ [
+ {
+ "id": "test"
+ },
+ "test.diploid_sv.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940"
+ ]
+ ],
+ "diploid_sv_vcf_tbi": [
+ [
+ {
+ "id": "test"
+ },
+ "test.diploid_sv.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,18070b443a26855ef64dafa179dfba01"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.0"
+ },
+ "timestamp": "2024-03-21T17:54:09.788372"
+ },
+ "joint_version": {
+ "content": null,
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-21T15:03:07.745972"
+ },
+ "bed_version": {
+ "content": null,
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.0"
+ },
+ "timestamp": "2024-03-21T13:49:38.745653"
+ },
+ "version": {
+ "content": null,
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.0"
+ },
+ "timestamp": "2024-03-21T13:49:14.885769"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/manta/germline/tests/nextflow.config b/modules/nf-core/manta/germline/tests/nextflow.config
new file mode 100644
index 00000000..22acb242
--- /dev/null
+++ b/modules/nf-core/manta/germline/tests/nextflow.config
@@ -0,0 +1,5 @@
+process {
+ withName: MANTA_GERMLINE {
+ ext.args = '--exome '
+ }
+}
diff --git a/modules/nf-core/manta/germline/tests/tags.yml b/modules/nf-core/manta/germline/tests/tags.yml
new file mode 100644
index 00000000..99d1a73c
--- /dev/null
+++ b/modules/nf-core/manta/germline/tests/tags.yml
@@ -0,0 +1,2 @@
+manta/germline:
+ - "modules/nf-core/manta/germline/**"
diff --git a/modules/nf-core/ngsbits/samplegender/meta.yml b/modules/nf-core/ngsbits/samplegender/meta.yml
index 997bc06e..961462b3 100644
--- a/modules/nf-core/ngsbits/samplegender/meta.yml
+++ b/modules/nf-core/ngsbits/samplegender/meta.yml
@@ -12,7 +12,7 @@ tools:
homepage: "https://github.com/imgag/ngs-bits"
documentation: "https://github.com/imgag/ngs-bits"
tool_dev_url: "https://github.com/imgag/ngs-bits"
- licence: "['MIT license']"
+ licence: ["MIT"]
input:
- meta:
type: map
diff --git a/modules/nf-core/ngsbits/samplegender/tests/main.nf.test b/modules/nf-core/ngsbits/samplegender/tests/main.nf.test
new file mode 100644
index 00000000..2cf4757b
--- /dev/null
+++ b/modules/nf-core/ngsbits/samplegender/tests/main.nf.test
@@ -0,0 +1,47 @@
+nextflow_process {
+
+ name "Test Process NGSBITS_SAMPLEGENDER"
+ script "../main.nf"
+ process "NGSBITS_SAMPLEGENDER"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "ngsbits"
+ tag "ngsbits/samplegender"
+
+ // Only a stub test here because the modules needs the full chrX and chrY
+ test("homo_sapiens - bam, bai, [], [], sry - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)
+ ]
+ input[1] = [
+ [ id:'reference'], // meta map
+ []
+ ]
+ input[2] = [
+ [ id:'reference'], // meta map
+ []
+ ]
+ input[3] = "sry"
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/ngsbits/samplegender/tests/main.nf.test.snap b/modules/nf-core/ngsbits/samplegender/tests/main.nf.test.snap
new file mode 100644
index 00000000..48fd8af9
--- /dev/null
+++ b/modules/nf-core/ngsbits/samplegender/tests/main.nf.test.snap
@@ -0,0 +1,35 @@
+{
+ "homo_sapiens - bam, bai, [], [], sry - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test"
+ },
+ "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,72f3e70be3e6a734bf39d1a6bf6d604b"
+ ],
+ "tsv": [
+ [
+ {
+ "id": "test"
+ },
+ "test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,72f3e70be3e6a734bf39d1a6bf6d604b"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-03-18T15:36:37.639882564"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/ngsbits/samplegender/tests/tags.yml b/modules/nf-core/ngsbits/samplegender/tests/tags.yml
new file mode 100644
index 00000000..8b7a0da9
--- /dev/null
+++ b/modules/nf-core/ngsbits/samplegender/tests/tags.yml
@@ -0,0 +1,2 @@
+ngsbits/samplegender:
+ - "modules/nf-core/ngsbits/samplegender/**"
diff --git a/modules/nf-core/samtools/convert/samtools-convert.diff b/modules/nf-core/samtools/convert/samtools-convert.diff
index c43eb28d..892709e4 100644
--- a/modules/nf-core/samtools/convert/samtools-convert.diff
+++ b/modules/nf-core/samtools/convert/samtools-convert.diff
@@ -1,7 +1,7 @@
Changes in module 'nf-core/samtools/convert'
--- modules/nf-core/samtools/convert/main.nf
+++ modules/nf-core/samtools/convert/main.nf
-@@ -42,4 +42,19 @@
+@@ -57,4 +57,19 @@
samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//')
END_VERSIONS
"""
diff --git a/modules/nf-core/samtools/convert/tests/main.nf.test b/modules/nf-core/samtools/convert/tests/main.nf.test
index d2ab5839..91a0c69e 100644
--- a/modules/nf-core/samtools/convert/tests/main.nf.test
+++ b/modules/nf-core/samtools/convert/tests/main.nf.test
@@ -72,4 +72,36 @@ nextflow_process {
)
}
}
+
+ test("sarscov2 - [bam, bai], fasta, fai - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = Channel.of([
+ [id: 'test', single_end: false], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true)
+ ])
+ input[1] = Channel.of([
+ [ id:'fasta' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)
+ ])
+ input[2] = Channel.of([
+ [ id:'fai' ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true)
+ ])
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match("stub") }
+ )
+ }
+ }
}
diff --git a/modules/nf-core/samtools/convert/tests/main.nf.test.snap b/modules/nf-core/samtools/convert/tests/main.nf.test.snap
index 9d56a4ec..3d6f88c4 100644
--- a/modules/nf-core/samtools/convert/tests/main.nf.test.snap
+++ b/modules/nf-core/samtools/convert/tests/main.nf.test.snap
@@ -43,6 +43,71 @@
},
"timestamp": "2024-03-06T11:14:36.643960504"
},
+ "stub": {
+ "content": [
+ {
+ "0": [
+
+ ],
+ "1": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.cram:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "2": [
+
+ ],
+ "3": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.crai:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "4": [
+ "versions.yml:md5,dd0aaf61f39c9ce91c74090f3c7ce1d0"
+ ],
+ "bai": [
+
+ ],
+ "bam": [
+
+ ],
+ "crai": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.crai:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "cram": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.cram:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,dd0aaf61f39c9ce91c74090f3c7ce1d0"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-03T12:01:40.896170698"
+ },
"bam_to_cram_index": {
"content": [
"test.cram.crai"
diff --git a/modules/nf-core/samtools/faidx/environment.yml b/modules/nf-core/samtools/faidx/environment.yml
index 3e95dd71..d5f8e70e 100644
--- a/modules/nf-core/samtools/faidx/environment.yml
+++ b/modules/nf-core/samtools/faidx/environment.yml
@@ -3,6 +3,7 @@ channels:
- conda-forge
- bioconda
- defaults
+
dependencies:
- - bioconda::samtools=1.19.2
- bioconda::htslib=1.19.1
+ - bioconda::samtools=1.19.2
diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml
index e189af28..f3c25de2 100644
--- a/modules/nf-core/samtools/faidx/meta.yml
+++ b/modules/nf-core/samtools/faidx/meta.yml
@@ -39,6 +39,10 @@ output:
description: |
Groovy Map containing sample information
e.g. [ id:'test', single_end:false ]
+ - fa:
+ type: file
+ description: FASTA file
+ pattern: "*.{fa}"
- fai:
type: file
description: FASTA index file
diff --git a/modules/nf-core/samtools/faidx/tests/main.nf.test b/modules/nf-core/samtools/faidx/tests/main.nf.test
new file mode 100644
index 00000000..17244ef2
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/tests/main.nf.test
@@ -0,0 +1,122 @@
+nextflow_process {
+
+ name "Test Process SAMTOOLS_FAIDX"
+ script "../main.nf"
+ process "SAMTOOLS_FAIDX"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "samtools"
+ tag "samtools/faidx"
+
+ test("test_samtools_faidx") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]
+
+ input[1] = [[],[]]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("test_samtools_faidx_bgzip") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.gz', checkIfExists: true)]
+
+ input[1] = [[],[]]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("test_samtools_faidx_fasta") {
+
+ config "./nextflow.config"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]
+
+ input[1] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("test_samtools_faidx_stub_fasta") {
+
+ config "./nextflow2.config"
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]
+
+ input[1] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true) ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+
+ test("test_samtools_faidx_stub_fai") {
+
+ when {
+ process {
+ """
+ input[0] = [ [ id:'test', single_end:false ], // meta map
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) ]
+
+ input[1] = [[],[]]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/samtools/faidx/tests/main.nf.test.snap b/modules/nf-core/samtools/faidx/tests/main.nf.test.snap
new file mode 100644
index 00000000..3e651ef6
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/tests/main.nf.test.snap
@@ -0,0 +1,249 @@
+{
+ "test_samtools_faidx": {
+ "content": [
+ {
+ "0": [
+
+ ],
+ "1": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "2": [
+
+ ],
+ "3": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ],
+ "fa": [
+
+ ],
+ "fai": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "gzi": [
+
+ ],
+ "versions": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-18T16:22:39.412601"
+ },
+ "test_samtools_faidx_bgzip": {
+ "content": [
+ {
+ "0": [
+
+ ],
+ "1": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "2": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474"
+ ]
+ ],
+ "3": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ],
+ "fa": [
+
+ ],
+ "fai": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.gz.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "gzi": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.gz.gzi:md5,7dea362b3fac8e00956a4952a3d4f474"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-18T16:23:22.427966"
+ },
+ "test_samtools_faidx_fasta": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "extract.fa:md5,6a0774a0ad937ba0bfd2ac7457d90f36"
+ ]
+ ],
+ "1": [
+
+ ],
+ "2": [
+
+ ],
+ "3": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ],
+ "fa": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "extract.fa:md5,6a0774a0ad937ba0bfd2ac7457d90f36"
+ ]
+ ],
+ "fai": [
+
+ ],
+ "gzi": [
+
+ ],
+ "versions": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-18T16:24:04.107537"
+ },
+ "test_samtools_faidx_stub_fasta": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "extract.fa:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "1": [
+
+ ],
+ "2": [
+
+ ],
+ "3": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ],
+ "fa": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "extract.fa:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "fai": [
+
+ ],
+ "gzi": [
+
+ ],
+ "versions": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-18T16:24:45.868463"
+ },
+ "test_samtools_faidx_stub_fai": {
+ "content": [
+ {
+ "0": [
+
+ ],
+ "1": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "2": [
+
+ ],
+ "3": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ],
+ "fa": [
+
+ ],
+ "fai": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "genome.fasta.fai:md5,9da2a56e2853dc8c0b86a9e7229c9fe5"
+ ]
+ ],
+ "gzi": [
+
+ ],
+ "versions": [
+ "versions.yml:md5,4870fc0a88c616aa937f8325a2db0c3c"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "23.10.1"
+ },
+ "timestamp": "2024-03-18T16:25:27.550554"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/samtools/faidx/tests/nextflow.config b/modules/nf-core/samtools/faidx/tests/nextflow.config
new file mode 100644
index 00000000..f76a3ba0
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/tests/nextflow.config
@@ -0,0 +1,7 @@
+process {
+
+ withName: SAMTOOLS_FAIDX {
+ ext.args = 'MT192765.1 -o extract.fa'
+ }
+
+}
diff --git a/modules/nf-core/samtools/faidx/tests/nextflow2.config b/modules/nf-core/samtools/faidx/tests/nextflow2.config
new file mode 100644
index 00000000..33ebbd5d
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/tests/nextflow2.config
@@ -0,0 +1,6 @@
+process {
+
+ withName: SAMTOOLS_FAIDX {
+ ext.args = '-o extract.fa'
+ }
+}
diff --git a/modules/nf-core/samtools/faidx/tests/tags.yml b/modules/nf-core/samtools/faidx/tests/tags.yml
new file mode 100644
index 00000000..e4a83948
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/tests/tags.yml
@@ -0,0 +1,2 @@
+samtools/faidx:
+ - modules/nf-core/samtools/faidx/**
diff --git a/modules/nf-core/wisecondorx/convert/main.nf b/modules/nf-core/wisecondorx/convert/main.nf
index 3602b1eb..e284edb0 100644
--- a/modules/nf-core/wisecondorx/convert/main.nf
+++ b/modules/nf-core/wisecondorx/convert/main.nf
@@ -5,8 +5,8 @@ process WISECONDORX_CONVERT {
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/wisecondorx:1.2.5--pyh5e36f6f_0':
- 'biocontainers/wisecondorx:1.2.5--pyh5e36f6f_0' }"
+ 'https://depot.galaxyproject.org/singularity/wisecondorx:1.2.7--pyhdfd78af_0':
+ 'biocontainers/wisecondorx:1.2.7--pyhdfd78af_0' }"
input:
tuple val(meta), path(bam), path(bai)
@@ -24,7 +24,7 @@ process WISECONDORX_CONVERT {
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
def reference = fasta ? "--reference ${fasta}" : ""
- def VERSION = '1.2.5' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '1.2.7' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
"""
WisecondorX convert \\
@@ -41,7 +41,7 @@ process WISECONDORX_CONVERT {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
- def VERSION = '1.2.5' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '1.2.7' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
"""
touch ${prefix}.npz
diff --git a/modules/nf-core/wisecondorx/convert/meta.yml b/modules/nf-core/wisecondorx/convert/meta.yml
index b6d0b457..d70d9d69 100644
--- a/modules/nf-core/wisecondorx/convert/meta.yml
+++ b/modules/nf-core/wisecondorx/convert/meta.yml
@@ -11,7 +11,7 @@ tools:
documentation: "https://github.com/CenterForMedicalGeneticsGhent/WisecondorX"
tool_dev_url: "https://github.com/CenterForMedicalGeneticsGhent/WisecondorX"
doi: "10.1093/nar/gky1263"
- licence: "['Attribution-NonCommercial-ShareAlike CC BY-NC-SA']"
+ licence: ["Attribution-NonCommercial-ShareAlike CC BY-NC-SA"]
input:
- meta:
type: map
diff --git a/modules/nf-core/wisecondorx/convert/tests/main.nf.test b/modules/nf-core/wisecondorx/convert/tests/main.nf.test
new file mode 100644
index 00000000..1e093e9a
--- /dev/null
+++ b/modules/nf-core/wisecondorx/convert/tests/main.nf.test
@@ -0,0 +1,97 @@
+nextflow_process {
+
+ name "Test Process WISECONDORX_CONVERT"
+ script "../main.nf"
+ process "WISECONDORX_CONVERT"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "wisecondorx"
+ tag "wisecondorx/convert"
+
+ test("sarscov2 - bam, bai, [], []") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true)
+ ]
+ input[1] = [[], []]
+ input[2] = [[], []]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+ test("sarscov2 - cram, crai, fasta, fai") {
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
+ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ ]
+
+ input[1] = [
+ [ id:'test' ],
+ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ ]
+
+ input[2] = [
+ [ id:'test' ],
+ file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+ test("sarscov2 - bam, bai - stub") {
+
+ options "-stub"
+
+ when {
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:false ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true)
+ ]
+ input[1] = [[], []]
+ input[2] = [[], []]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/wisecondorx/convert/tests/main.nf.test.snap b/modules/nf-core/wisecondorx/convert/tests/main.nf.test.snap
new file mode 100644
index 00000000..aa1f22c2
--- /dev/null
+++ b/modules/nf-core/wisecondorx/convert/tests/main.nf.test.snap
@@ -0,0 +1,107 @@
+{
+ "sarscov2 - cram, crai, fasta, fai": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,154337aa93ceddf15ea7382969588524"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ],
+ "npz": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,154337aa93ceddf15ea7382969588524"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-25T10:32:21.089786336"
+ },
+ "sarscov2 - bam, bai, [], []": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,00c8acf1727e9eb78e56bce28b09ee3b"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ],
+ "npz": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,00c8acf1727e9eb78e56bce28b09ee3b"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-25T10:32:11.059476585"
+ },
+ "sarscov2 - bam, bai - stub": {
+ "content": [
+ {
+ "0": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ],
+ "npz": [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ "test.npz:md5,d41d8cd98f00b204e9800998ecf8427e"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,dc34a4dc3f7c98e236b54d2b58c81e92"
+ ]
+ }
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-25T10:32:28.177177149"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/wisecondorx/convert/tests/tags.yml b/modules/nf-core/wisecondorx/convert/tests/tags.yml
new file mode 100644
index 00000000..0c3526e8
--- /dev/null
+++ b/modules/nf-core/wisecondorx/convert/tests/tags.yml
@@ -0,0 +1,2 @@
+wisecondorx/convert:
+ - "modules/nf-core/wisecondorx/convert/**"
diff --git a/modules/nf-core/wisecondorx/predict/main.nf b/modules/nf-core/wisecondorx/predict/main.nf
index 460df23f..1cba5900 100644
--- a/modules/nf-core/wisecondorx/predict/main.nf
+++ b/modules/nf-core/wisecondorx/predict/main.nf
@@ -5,8 +5,8 @@ process WISECONDORX_PREDICT {
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/wisecondorx:1.2.5--pyh5e36f6f_0':
- 'biocontainers/wisecondorx:1.2.5--pyh5e36f6f_0' }"
+ 'https://depot.galaxyproject.org/singularity/wisecondorx:1.2.7--pyhdfd78af_0':
+ 'biocontainers/wisecondorx:1.2.7--pyhdfd78af_0' }"
input:
tuple val(meta), path(npz)
@@ -32,7 +32,7 @@ process WISECONDORX_PREDICT {
def plots = args.contains("--plot") ? "mv ${prefix}.plots/* ." : ""
- def VERSION = '1.2.5' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '1.2.7' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
"""
WisecondorX predict \\
@@ -53,7 +53,7 @@ process WISECONDORX_PREDICT {
stub:
def args = task.ext.args ?: '--bed --plot'
def prefix = task.ext.prefix ?: "${meta.id}"
- def VERSION = '1.2.5' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '1.2.7' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
def bed = args.contains("--bed") ? "touch ${prefix}_aberrations.bed && touch ${prefix}_bins.bed && touch ${prefix}_chr_statistics.txt && touch ${prefix}_segments.bed" : ""
def plot = args.contains("--plot") ? "touch genome_wide.png && touch chr22.png && touch chr1.png" : ""
diff --git a/modules/nf-core/wisecondorx/predict/meta.yml b/modules/nf-core/wisecondorx/predict/meta.yml
index bb2313e0..0f347ee3 100644
--- a/modules/nf-core/wisecondorx/predict/meta.yml
+++ b/modules/nf-core/wisecondorx/predict/meta.yml
@@ -12,7 +12,7 @@ tools:
documentation: "https://github.com/CenterForMedicalGeneticsGhent/WisecondorX"
tool_dev_url: "https://github.com/CenterForMedicalGeneticsGhent/WisecondorX"
doi: "10.1093/nar/gky1263"
- licence: "['Attribution-NonCommercial-ShareAlike CC BY-NC-SA']"
+ licence: ["Attribution-NonCommercial-ShareAlike CC BY-NC-SA"]
input:
- meta:
type: map
@@ -51,7 +51,7 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
- - abberations_bed:
+ - aberrations_bed:
type: file
description: OPTIONAL - Output abberations in BED format. This gets created with the `--bed` option
pattern: "*_aberrations.bed"
diff --git a/modules/nf-core/wisecondorx/predict/tests/main.nf.test b/modules/nf-core/wisecondorx/predict/tests/main.nf.test
new file mode 100644
index 00000000..27b47525
--- /dev/null
+++ b/modules/nf-core/wisecondorx/predict/tests/main.nf.test
@@ -0,0 +1,65 @@
+nextflow_process {
+
+ name "Test Process WISECONDORX_PREDICT"
+ script "../main.nf"
+ process "WISECONDORX_PREDICT"
+
+ tag "modules"
+ tag "modules_nfcore"
+ tag "wisecondorx"
+ tag "wisecondorx/predict"
+ tag "wisecondorx/convert"
+
+ test("sarscov2 - npz, reference, []") {
+
+ // Stub because the reference is too large
+ options "-stub"
+
+ setup {
+ run("WISECONDORX_CONVERT") {
+ script "../../convert/main.nf"
+ process {
+ """
+ input[0] = [
+ [ id:'test' ], // meta map
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam_bai'], checkIfExists: true)
+ ]
+ input[1] = [[], []]
+ input[2] = [[], []]
+ """
+ }
+ }
+ }
+
+ when {
+ process {
+ """
+ input[0] = WISECONDORX_CONVERT.out.npz
+ input[1] = [
+ [ id:'reference' ],
+ file("reference.npz")
+ ]
+ input[2] = [[], []]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(
+ process.out.versions,
+ process.out.aberrations_bed.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.bins_bed.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.segments_bed.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.chr_statistics.collect { it.collect { it instanceof Map ? it : file(it).name }},
+ process.out.chr_plots.collect { it.collect { it instanceof Map ? it : it.collect { file(it).name } }},
+ process.out.genome_plot.collect { it.collect { it instanceof Map ? it : file(it).name }}
+ ).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/wisecondorx/predict/tests/main.nf.test.snap b/modules/nf-core/wisecondorx/predict/tests/main.nf.test.snap
new file mode 100644
index 00000000..59e9a214
--- /dev/null
+++ b/modules/nf-core/wisecondorx/predict/tests/main.nf.test.snap
@@ -0,0 +1,65 @@
+{
+ "sarscov2 - npz, reference, []": {
+ "content": [
+ [
+ "versions.yml:md5,7760ef13f826776ae67780d937c82729"
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "test_aberrations.bed"
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "test_bins.bed"
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "test_segments.bed"
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "test_chr_statistics.txt"
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ [
+ "chr1.png",
+ "chr22.png"
+ ]
+ ]
+ ],
+ [
+ [
+ {
+ "id": "test"
+ },
+ "genome_wide.png"
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-25T10:31:51.830934617"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/wisecondorx/predict/tests/tags.yml b/modules/nf-core/wisecondorx/predict/tests/tags.yml
new file mode 100644
index 00000000..e65cbf96
--- /dev/null
+++ b/modules/nf-core/wisecondorx/predict/tests/tags.yml
@@ -0,0 +1,2 @@
+wisecondorx/predict:
+ - "modules/nf-core/wisecondorx/predict/**"
diff --git a/nextflow.config b/nextflow.config
index 77c91beb..4d789742 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -37,14 +37,12 @@ params {
// AnnotSV options
annotsv_candidate_genes = null
annotsv_gene_transcripts = null
- annotsv_file_name = "annotsv_annotated"
// VEP options
vep_assembly = "GRCh38"
- vep_cache_version = 108
- vep_version = 109.3
+ vep_cache_version = 112
+ vep_version = 112.0
species = "homo_sapiens"
- vep_phenotypes = false
// VCFanno options
vcfanno_toml = null
@@ -281,7 +279,7 @@ manifest {
description = 'A bioinformatics best-practice analysis pipeline for calling structural variants (SVs), copy number variants (CNVs) and repeat region expansions (RREs) from short DNA reads'
mainScript = 'main.nf'
nextflowVersion = '!>=23.10.0'
- version = '0.1.0'
+ version = '0.2.0'
doi = ''
}
diff --git a/nextflow_schema.json b/nextflow_schema.json
index 41ee6c4e..a7878c8b 100644
--- a/nextflow_schema.json
+++ b/nextflow_schema.json
@@ -73,12 +73,6 @@
"pattern": "^\\S+\\.fai$",
"mimetype": "text/plain"
},
- "bwa": {
- "type": "string",
- "description": "Path to the BWA index folder",
- "exists": true,
- "format": "path"
- },
"expansionhunter_catalog": {
"type": "string",
"description": "Path to the expansionhunter catalog",
@@ -277,12 +271,6 @@
"fa_icon": "fas fa-file-upload",
"hidden": true
},
- "monochromeLogs": {
- "type": "boolean",
- "description": "Do not use coloured log outputs.",
- "fa_icon": "fas fa-palette",
- "hidden": true
- },
"hook_url": {
"type": "string",
"description": "Incoming hook URL for messaging service",
@@ -316,27 +304,6 @@
"default": true,
"fa_icon": "fas fa-check-square",
"hidden": true
- },
- "validationShowHiddenParams": {
- "type": "boolean",
- "fa_icon": "far fa-eye-slash",
- "description": "Show all params when using `--help`",
- "hidden": true,
- "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters."
- },
- "validationFailUnrecognisedParams": {
- "type": "boolean",
- "fa_icon": "far fa-check-circle",
- "description": "Validation of parameters fails when an unrecognised parameter is found.",
- "hidden": true,
- "help_text": "By default, when an unrecognised parameter is found, it returns a warinig."
- },
- "validationLenientMode": {
- "type": "boolean",
- "fa_icon": "far fa-check-circle",
- "description": "Validation of parameters in lenient more.",
- "hidden": true,
- "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)."
}
}
},
@@ -349,7 +316,8 @@
"callers": {
"type": "string",
"default": "manta,smoove,delly,expansionhunter,wisecondorx",
- "description": "A comma-seperated list of callers to use. Can be one or more these: smoove|delly|manta|gridss|expansionhunter. At the moment Gridss runs very slowly compared to all other tools so it's only advised to use it when it's needed."
+ "description": "A comma-seperated list of callers to use. Can be one or more these: smoove/delly/manta/expansionhunter/qdnaseq/wisecondorx.",
+ "help_text": "Following keywords can also be used as shortcuts to certain callers: \n- all: Use all callers\n- sv: Use all SV callers\n- cnv: Use all CNV callers\n- rre: Use all RRE callers"
},
"output_callers": {
"type": "boolean",
@@ -469,26 +437,6 @@
"type": "string",
"default": "homo_sapiens",
"description": "The species used for the analysis. Should be all lowercase and spaces should be underscorses."
- },
- "vep_phenotypes": {
- "type": "boolean",
- "description": "Use the Phenotypes VEP plugin",
- "help_text": "This requires `--phenotypes` and `--phenotypes_tbi`. "
- },
- "phenotypes": {
- "type": "string",
- "description": "Path to the phenotypes GFF file",
- "exists": true,
- "format": "file-path",
- "pattern": "^\\S+\\.gff$",
- "mimetype": "text/plain"
- },
- "phenotypes_tbi": {
- "type": "string",
- "description": "Path to the phenotypes GFF index file",
- "exists": true,
- "format": "file-path",
- "mimetype": "application/octet-stream"
}
}
},
@@ -518,12 +466,6 @@
"exists": true,
"format": "file-path",
"mimetype": "text/plain"
- },
- "annotsv_file_name": {
- "type": "string",
- "default": "annotsv_annotated",
- "hidden": true,
- "description": "The default name of the AnnotSV VCFs. This should not be changed unless absolutely necessary."
}
}
},
diff --git a/subworkflows/local/bam_cnv_calling/main.nf b/subworkflows/local/bam_cnv_calling/main.nf
index b37e386e..b4f8fb2c 100644
--- a/subworkflows/local/bam_cnv_calling/main.nf
+++ b/subworkflows/local/bam_cnv_calling/main.nf
@@ -19,11 +19,11 @@ workflow BAM_CNV_CALLING {
ch_qdnaseq_female // channel: [mandatory] [ meta, qdnaseq_reference ] => The female reference for qDNAseq
ch_wisecondorx_reference // channel: [mandatory] [ meta, wisecondorx_reference ] => The reference for WisecondorX
ch_blacklist // channel: [optional] [ meta, bed ] => The blacklist regions to be excluded from the Wisecondorx analysis
+ ch_bedgovcf_configs // channel: [mandatory] [ configs ] => A list of bedgovcf configs
+ val_callers // value: [mandatory] => List of all CNV callers to use
main:
- val_callers = params.callers.tokenize(",").intersect(GlobalVariables.cnvCallers)
-
ch_versions = Channel.empty()
ch_reports = Channel.empty()
ch_called_vcfs = Channel.empty()
@@ -34,7 +34,8 @@ workflow BAM_CNV_CALLING {
ch_fasta,
ch_fai,
ch_qdnaseq_male,
- ch_qdnaseq_female
+ ch_qdnaseq_female,
+ ch_bedgovcf_configs
)
ch_versions = ch_versions.mix(BAM_VARIANT_CALLING_QDNASEQ.out.versions)
ch_called_vcfs = ch_called_vcfs.mix(BAM_VARIANT_CALLING_QDNASEQ.out.vcf)
@@ -46,7 +47,8 @@ workflow BAM_CNV_CALLING {
ch_fasta,
ch_fai,
ch_wisecondorx_reference,
- ch_blacklist
+ ch_blacklist,
+ ch_bedgovcf_configs
)
ch_versions = ch_versions.mix(BAM_VARIANT_CALLING_WISECONDORX.out.versions)
ch_called_vcfs = ch_called_vcfs.mix(BAM_VARIANT_CALLING_WISECONDORX.out.vcf)
diff --git a/subworkflows/local/bam_sv_calling/main.nf b/subworkflows/local/bam_sv_calling/main.nf
index debcf1f3..471f4b29 100644
--- a/subworkflows/local/bam_sv_calling/main.nf
+++ b/subworkflows/local/bam_sv_calling/main.nf
@@ -12,16 +12,15 @@ include { VCF_MERGE_CALLERS_JASMINE } from '../vcf_m
workflow BAM_SV_CALLING {
take:
- ch_crams // channel: [mandatory] [ meta, cram, crai, bed ] => The aligned CRAMs per sample with the regions they should be called on
- ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
- ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
- ch_bwa_index // channel: [optional] [ meta, index ] => The BWA MEM index
- ch_manta_config // channel: [optional] [ config ] => The config to pass to Manta
+ ch_crams // channel: [mandatory] [ meta, cram, crai, bed ] => The aligned CRAMs per sample with the regions they should be called on
+ ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
+ ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
+ ch_manta_config // channel: [optional] [ config ] => The config to pass to Manta
+ ch_svync_configs // channel: [mandatory] [ configs ] => A list of svync config files
+ val_callers // value: [mandatory] => List of all SV callers to use
main:
- val_callers = params.callers.tokenize(",").intersect(GlobalVariables.svCallers)
-
ch_versions = Channel.empty()
ch_reports = Channel.empty()
ch_called_vcfs = Channel.empty()
@@ -36,6 +35,7 @@ workflow BAM_SV_CALLING {
ch_fasta,
ch_fai,
ch_manta_config,
+ ch_svync_configs
)
ch_called_vcfs = ch_called_vcfs.mix(BAM_VARIANT_CALLING_MANTA.out.manta_vcfs)
@@ -50,7 +50,8 @@ workflow BAM_SV_CALLING {
BAM_VARIANT_CALLING_DELLY(
ch_crams,
ch_fasta,
- ch_fai
+ ch_fai,
+ ch_svync_configs
)
ch_called_vcfs = ch_called_vcfs.mix(BAM_VARIANT_CALLING_DELLY.out.delly_vcfs)
@@ -65,7 +66,8 @@ workflow BAM_SV_CALLING {
BAM_VARIANT_CALLING_SMOOVE(
ch_crams,
ch_fasta,
- ch_fai
+ ch_fai,
+ ch_svync_configs
)
ch_called_vcfs = ch_called_vcfs.mix(BAM_VARIANT_CALLING_SMOOVE.out.smoove_vcfs)
diff --git a/subworkflows/local/bam_variant_calling_delly/main.nf b/subworkflows/local/bam_variant_calling_delly/main.nf
index 42cb5f67..e7045483 100644
--- a/subworkflows/local/bam_variant_calling_delly/main.nf
+++ b/subworkflows/local/bam_variant_calling_delly/main.nf
@@ -8,9 +8,10 @@ include { SVYNC } from '../../../modules/nf-core/svync/main'
workflow BAM_VARIANT_CALLING_DELLY {
take:
- ch_crams // channel: [mandatory] [ meta, cram, crai ] => The aligned CRAMs per sample with the regions they should be called on
- ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
- ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
+ ch_crams // channel: [mandatory] [ meta, cram, crai ] => The aligned CRAMs per sample with the regions they should be called on
+ ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
+ ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
+ ch_svync_configs // channel: [mandatory] [ configs ] => A list of svync config files
main:
@@ -29,16 +30,23 @@ workflow BAM_VARIANT_CALLING_DELLY {
DELLY_CALL(
ch_delly_input,
- ch_fasta.map{it[1]},
- ch_fai.map{it[1]}
+ ch_fasta,
+ ch_fai
)
ch_versions = ch_versions.mix(DELLY_CALL.out.versions.first())
+ ch_svync_configs
+ .map {
+ it.find { it.toString().contains("delly") }
+ }
+ .set { ch_delly_svync_config }
+
DELLY_CALL.out.bcf
.join(DELLY_CALL.out.csi, failOnDuplicate:true, failOnMismatch:true)
- .map { meta, vcf, tbi ->
+ .combine(ch_delly_svync_config)
+ .map { meta, vcf, tbi, config ->
new_meta = meta + [caller:"delly"]
- [ new_meta, vcf, tbi, file("${projectDir}/assets/svync/delly.yaml") ]
+ [ new_meta, vcf, tbi, config ]
}
.dump(tag: 'delly_vcfs', pretty: true)
.set { ch_delly_vcfs }
diff --git a/subworkflows/local/bam_variant_calling_manta/main.nf b/subworkflows/local/bam_variant_calling_manta/main.nf
index 66517d29..ff4e71e0 100644
--- a/subworkflows/local/bam_variant_calling_manta/main.nf
+++ b/subworkflows/local/bam_variant_calling_manta/main.nf
@@ -14,6 +14,7 @@ workflow BAM_VARIANT_CALLING_MANTA {
ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
ch_manta_config // channel: [optional] [ config ] => The config to pass to Manta
+ ch_svync_configs // channel: [mandatory] [ configs ] => A list of svync configs
main:
@@ -70,11 +71,18 @@ workflow BAM_VARIANT_CALLING_MANTA {
ch_versions = ch_versions.mix(MANTA_CONVERTINVERSION.out.versions.first())
+ ch_svync_configs
+ .map {
+ it.find { it.toString().contains("manta") }
+ }
+ .set { ch_manta_svync_config }
+
MANTA_CONVERTINVERSION.out.vcf
.join(MANTA_CONVERTINVERSION.out.tbi, failOnDuplicate:true, failOnMismatch:true)
- .map{ meta, vcf, tbi ->
+ .combine(ch_manta_svync_config)
+ .map{ meta, vcf, tbi, config ->
new_meta = meta + [caller:"manta"]
- [ new_meta, vcf, tbi, file("${projectDir}/assets/svync/manta.yaml") ]
+ [ new_meta, vcf, tbi, config ]
}
.dump(tag: 'manta_vcfs', pretty: true)
.set { ch_manta_vcfs }
diff --git a/subworkflows/local/bam_variant_calling_qdnaseq/main.nf b/subworkflows/local/bam_variant_calling_qdnaseq/main.nf
index 06bab3d8..1643d7a3 100644
--- a/subworkflows/local/bam_variant_calling_qdnaseq/main.nf
+++ b/subworkflows/local/bam_variant_calling_qdnaseq/main.nf
@@ -16,6 +16,7 @@ workflow BAM_VARIANT_CALLING_QDNASEQ {
ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
ch_qdnaseq_male // channel: [mandatory] [ meta, qdnaseq_reference ] => The male reference to be used for qDNAseq
ch_qdnaseq_female // channel: [mandatory] [ meta, qdnaseq_reference ] => The female reference to be used for qDNAseq
+ ch_bedgovcf_configs // channel: [mandatory] [ configs ] => A list of bedgovcf configs
main:
@@ -65,9 +66,16 @@ workflow BAM_VARIANT_CALLING_QDNASEQ {
)
ch_versions = ch_versions.mix(GAWK.out.versions.first())
+ ch_bedgovcf_configs
+ .map {
+ it.find { it.toString().contains("qdnaseq") }
+ }
+ .set { ch_qdnaseq_bedgovcf_config }
+
GAWK.out.output
- .map { meta, bed ->
- [ meta, bed, file("${projectDir}/assets/bedgovcf/qdnaseq.yaml", checkIfExists:true)]
+ .combine(ch_qdnaseq_bedgovcf_config)
+ .map { meta, bed, config ->
+ [ meta, bed, config ]
}
.set { ch_bedgovcf_input }
diff --git a/subworkflows/local/bam_variant_calling_smoove/main.nf b/subworkflows/local/bam_variant_calling_smoove/main.nf
index 13cdc61d..9dede86e 100644
--- a/subworkflows/local/bam_variant_calling_smoove/main.nf
+++ b/subworkflows/local/bam_variant_calling_smoove/main.nf
@@ -1,17 +1,19 @@
//
-// Run Delly
+// Run Smoove
//
-include { SMOOVE_CALL } from '../../../modules/nf-core/smoove/call/main'
-include { BCFTOOLS_SORT } from '../../../modules/nf-core/bcftools/sort/main'
-include { TABIX_TABIX } from '../../../modules/nf-core/tabix/tabix/main'
-include { SVYNC } from '../../../modules/nf-core/svync/main'
+include { SMOOVE_CALL } from '../../../modules/nf-core/smoove/call/main'
+include { BCFTOOLS_SORT } from '../../../modules/nf-core/bcftools/sort/main'
+include { TABIX_TABIX } from '../../../modules/nf-core/tabix/tabix/main'
+include { TABIX_TABIX as TABIX_CALLER } from '../../../modules/nf-core/tabix/tabix/main'
+include { SVYNC } from '../../../modules/nf-core/svync/main'
workflow BAM_VARIANT_CALLING_SMOOVE {
take:
- ch_crams // channel: [mandatory] [ meta, cram, crai ] => The aligned CRAMs per sample with the regions they should be called on
- ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
- ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
+ ch_crams // channel: [mandatory] [ meta, cram, crai ] => The aligned CRAMs per sample with the regions they should be called on
+ ch_fasta // channel: [mandatory] [ meta, fasta ] => The fasta reference file
+ ch_fai // channel: [mandatory] [ meta, fai ] => The index of the fasta reference file
+ ch_svync_configs // channel: [mandatory] [ configs ] => A list of svync config files
main:
@@ -41,11 +43,23 @@ workflow BAM_VARIANT_CALLING_SMOOVE {
)
ch_versions = ch_versions.mix(BCFTOOLS_SORT.out.versions.first())
+ TABIX_CALLER(
+ BCFTOOLS_SORT.out.vcf
+ )
+ ch_versions = ch_versions.mix(TABIX_CALLER.out.versions.first())
+
+ ch_svync_configs
+ .map {
+ it.find { it.toString().contains("smoove") }
+ }
+ .set { ch_smoove_svync_config }
+
BCFTOOLS_SORT.out.vcf
+ .combine(ch_smoove_svync_config)
.map(
- { meta, vcf ->
+ { meta, vcf, config ->
new_meta = meta + [caller:'smoove']
- [ new_meta, vcf, [], file("${projectDir}/assets/svync/smoove.yaml") ]
+ [ new_meta, vcf, [], config ]
}
)
.dump(tag: 'smoove_vcfs', pretty: true)
diff --git a/subworkflows/local/bam_variant_calling_wisecondorx/main.nf b/subworkflows/local/bam_variant_calling_wisecondorx/main.nf
index 74fa3ea1..61ef91ea 100644
--- a/subworkflows/local/bam_variant_calling_wisecondorx/main.nf
+++ b/subworkflows/local/bam_variant_calling_wisecondorx/main.nf
@@ -6,11 +6,12 @@ include { TABIX_TABIX } from '../../../modules/nf-core/tabix/tabix/main'
workflow BAM_VARIANT_CALLING_WISECONDORX {
take:
- ch_crams // channel: [ val(meta), path(cram), path(crai) ]
- ch_fasta // channel: [ val(meta2), path(fasta) ]
- ch_fai // channel: [ val(meta3), path(fai) ]
- ch_ref // channel: [ val(meta4), path(reference) ]
- ch_blacklist // channel: [ val(meta5), path(blacklist) ]
+ ch_crams // channel: [ val(meta), path(cram), path(crai) ]
+ ch_fasta // channel: [ val(meta2), path(fasta) ]
+ ch_fai // channel: [ val(meta3), path(fai) ]
+ ch_ref // channel: [ val(meta4), path(reference) ]
+ ch_blacklist // channel: [ val(meta5), path(blacklist) ]
+ ch_bedgovcf_configs // channel: [mandatory] [ configs ] => A list of bedgovcf configs
main:
@@ -37,9 +38,16 @@ workflow BAM_VARIANT_CALLING_WISECONDORX {
)
ch_versions = ch_versions.mix(WISECONDORX_PREDICT.out.versions.first())
+ ch_bedgovcf_configs
+ .map {
+ it.find { it.toString().contains("wisecondorx") }
+ }
+ .set { ch_wisecondorx_bedgovcf_config }
+
WISECONDORX_PREDICT.out.aberrations_bed
- .map { meta, bed ->
- [ meta, bed, file("${projectDir}/assets/bedgovcf/wisecondorx.yaml", checkIfExists:true)]
+ .combine(ch_wisecondorx_bedgovcf_config)
+ .map { meta, bed, config ->
+ [ meta, bed, config]
}
.set { ch_bedgovcf_input }
diff --git a/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf b/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf
index 2a087c45..320f4557 100644
--- a/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf
+++ b/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf
@@ -30,6 +30,12 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
ch_vcfanno_lua // channel: [optional] [ path(lua) ] => The lua script to influence VCFanno
val_vcfanno_resources // list: [optional] [ path(file1, file2, file3...) ] => The extra VCFanno files
val_variant_types // list: [mandatory] => The variant types
+ genome // string: [mandatory] => The genome used by the variant callers
+ species // string: [mandatory] => The species used by VEP
+ vep_cache_version // integer: [mandatory] => The VEP cache version to use
+ filter // string: [optional] => A filter pattern to use after annotating
+ vcfanno_toml // file: [optional] => A vcfanno TOML config
+ default_vcfanno_tomls // list: [mandatory] => A list of default vcfanno configs to be concatenated with the input TOML
main:
@@ -126,9 +132,9 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
ENSEMBLVEP_VEP(
ch_vcfs,
- params.genome,
- params.species,
- params.vep_cache_version,
+ genome,
+ species,
+ vep_cache_version,
ch_vep_cache,
ch_fasta,
ch_vep_extra_files
@@ -152,7 +158,7 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
)
.set { ch_vcfanno_input }
- Channel.fromList(create_vcfanno_toml(val_vcfanno_resources))
+ Channel.fromList(create_vcfanno_toml(val_vcfanno_resources, vcfanno_toml, default_vcfanno_tomls))
.collectFile(name:"vcfanno.toml", newLine:true)
.collect()
.set { ch_vcfanno_toml }
@@ -165,7 +171,7 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
)
ch_versions = ch_versions.mix(VCFANNO.out.versions)
- if(!params.annotations_filter) {
+ if(!filter) {
TABIX_ANNOTATED(
VCFANNO.out.vcf
)
@@ -175,7 +181,7 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
.set { ch_annotated_vcfs }
}
- if(params.annotations_filter) {
+ if(filter) {
BCFTOOLS_FILTER_COMMON(
VCFANNO.out.vcf
)
@@ -196,21 +202,21 @@ workflow VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO {
versions = ch_versions
}
-def create_vcfanno_toml(vcfanno_resources) {
- def params_toml_files = params.vcfanno_toml ? parse_toml(params.vcfanno_toml) : [postannotation:[]]
- def assets_toml_files = parse_toml("${projectDir}/assets/vcfanno/*.toml")
+def create_vcfanno_toml(vcfanno_resources, input_vcfanno_toml, List vcfanno_defaults) {
+ def vcfanno_toml = input_vcfanno_toml ? parse_toml(input_vcfanno_toml) : [:]
+ def default_tomls = parse_toml(vcfanno_defaults)
def resources = vcfanno_resources.collect { it.fileName.toString() }
- resources.add("${params.annotsv_file_name}.vcf.gz" as String)
+ resources.add("annotsv_annotated.vcf.gz" as String)
def output = []
for (file_name in resources) {
- if (params_toml_files.containsKey(file_name)){
- output.add(params_toml_files[file_name])
+ if (vcfanno_toml.containsKey(file_name)){
+ output.add(vcfanno_toml[file_name])
}
- else if (assets_toml_files.containsKey(file_name)){
- output.add(assets_toml_files[file_name])
+ else if (default_tomls.containsKey(file_name)){
+ output.add(default_tomls[file_name])
}
}
- postannotation = params_toml_files.postannotation != [] ? params_toml_files.postannotation : assets_toml_files.postannotation
+ postannotation = vcfanno_toml.postannotation != [] ? vcfanno_toml.postannotation : default_tomls.postannotation
if (postannotation != []){
output.add(postannotation)
}
@@ -220,8 +226,7 @@ def create_vcfanno_toml(vcfanno_resources) {
def parse_toml(tomls) {
def output = [:]
output.postannotation = []
- tomls_files = file(tomls, checkIfExists:true)
- toml_list = tomls_files instanceof LinkedList ? tomls_files : [tomls_files]
+ toml_list = tomls instanceof List ? tomls : [tomls]
for (toml in toml_list) {
def info = ""
def file = ""
diff --git a/subworkflows/local/vcf_merge_callers_jasmine/main.nf b/subworkflows/local/vcf_merge_callers_jasmine/main.nf
index 1f6d8466..37038704 100644
--- a/subworkflows/local/vcf_merge_callers_jasmine/main.nf
+++ b/subworkflows/local/vcf_merge_callers_jasmine/main.nf
@@ -36,8 +36,8 @@ workflow VCF_MERGE_CALLERS_JASMINE {
JASMINESV(
ch_jasmine_input,
- ch_fasta.map{it[1]},
- ch_fai.map{it[1]},
+ ch_fasta,
+ ch_fai,
[]
)
ch_versions = ch_versions.mix(JASMINESV.out.versions.first())
diff --git a/subworkflows/local/vcf_merge_family_jasmine/main.nf b/subworkflows/local/vcf_merge_family_jasmine/main.nf
index 894abc0b..e429c00c 100644
--- a/subworkflows/local/vcf_merge_family_jasmine/main.nf
+++ b/subworkflows/local/vcf_merge_family_jasmine/main.nf
@@ -47,8 +47,8 @@ workflow VCF_MERGE_FAMILY_JASMINE {
JASMINESV(
ch_jasmine_input,
- ch_fasta.map{it[1]},
- ch_fai.map{it[1]},
+ ch_fasta,
+ ch_fai,
[]
)
ch_versions = ch_versions.mix(JASMINESV.out.versions.first())
diff --git a/tests/nextflow.config b/tests/nextflow.config
index 1187f6bd..85a76ae6 100644
--- a/tests/nextflow.config
+++ b/tests/nextflow.config
@@ -55,6 +55,10 @@ params {
repeats_vcf2 = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/vcf/SVcontrol/repeats/PosCon2.repeats.vcf.gz"
repeats_tbi2 = "https://github.com/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/vcf/SVcontrol/repeats/PosCon2.repeats.vcf.gz.tbi"
+ svync_configs = "${projectDir}/assets/svync"
+ bedgovcf_configs = "${projectDir}/assets/bedgovcf"
+ vcfanno_tomls = "${projectDir}/assets/vcfanno"
+
igenomes_ignore = true
genomes_ignore = true
}
diff --git a/tests/pipeline/all_types/all.nf.test b/tests/pipeline/all_types/all.nf.test
index 477c637b..26a5b1b5 100644
--- a/tests/pipeline/all_types/all.nf.test
+++ b/tests/pipeline/all_types/all.nf.test
@@ -13,7 +13,7 @@ nextflow_pipeline {
when {
params {
outdir = "${outputDir}"
- callers = "manta,smoove,delly,expansionhunter,qdnaseq,wisecondorx" //,gridss
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
@@ -28,15 +28,9 @@ nextflow_pipeline {
path("$outputDir")
.list()
- .findAll {
- !it.toString().endsWith("pipeline_info")
- }
- .collect {
- it.list().collect { it.toString().split("/")[-1] }
- },
- path("$outputDir").list().collect{
- it.toString().split("/")[-1]
- }
+ .findAll { !it.toString().endsWith("pipeline_info") }
+ .collect { getRecursiveFileNames(it, "${outputDir}") }
+ .flatten()
).match("all")}
)
}
@@ -48,7 +42,7 @@ nextflow_pipeline {
when {
params {
outdir = "${outputDir}"
- callers = "manta,smoove,delly,expansionhunter,qdnaseq,wisecondorx" //,gridss
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
@@ -64,19 +58,50 @@ nextflow_pipeline {
path("$outputDir")
.list()
- .findAll {
- !it.toString().endsWith("pipeline_info")
- }
- .collect {
- it.list().collect { it.toString().split("/")[-1] }
- },
- path("$outputDir").list().collect{
- it.toString().split("/")[-1]
- }
+ .findAll { !it.toString().endsWith("pipeline_info") }
+ .collect { getRecursiveFileNames(it, "${outputDir}") }
+ .flatten()
).match("concat")}
)
}
}
+ test("output callers") {
+
+ when {
+ params {
+ outdir = "${outputDir}"
+ callers = "all"
+ max_cpus = 2
+ max_memory = '6.GB'
+ max_time = '6.h'
+ output_callers = true
+ }
+ }
+
+ then {
+ assertAll(
+ { assert workflow.success },
+ { assert snapshot(
+ workflow.stdout,
+
+ path("$outputDir")
+ .list()
+ .findAll { !it.toString().endsWith("pipeline_info") }
+ .collect { getRecursiveFileNames(it, "${outputDir}") }
+ .flatten()
+ ).match("output callers")}
+ )
+ }
+
+ }
+
+}
+
+def getRecursiveFileNames(fileOrDir, outputDir) {
+ if(file(fileOrDir.toString()).isDirectory()) {
+ return fileOrDir.list().collect { getRecursiveFileNames(it, outputDir) }
+ }
+ return fileOrDir.toString().replace("${outputDir}/", "")
}
diff --git a/tests/pipeline/all_types/all.nf.test.snap b/tests/pipeline/all_types/all.nf.test.snap
index 03da173b..4396f4df 100644
--- a/tests/pipeline/all_types/all.nf.test.snap
+++ b/tests/pipeline/all_types/all.nf.test.snap
@@ -5,106 +5,87 @@
],
[
- [
- "PosCon1.cnv.vcf.gz",
- "PosCon1.cnv.vcf.gz.tbi",
- "PosCon1.expansionhunter.vcf.gz",
- "PosCon1.expansionhunter.vcf.gz.tbi",
- "PosCon1.qdnaseq.abberations.bed",
- "PosCon1.qdnaseq.bed",
- "PosCon1.qdnaseq.cna",
- "PosCon1.qdnaseq_segments.txt",
- "PosCon1.sv.vcf.gz",
- "PosCon1.sv.vcf.gz.tbi",
- "PosCon1.wisecondorx_aberrations.bed",
- "PosCon1.wisecondorx_bins.bed",
- "PosCon1.wisecondorx_chr_statistics.txt",
- "PosCon1.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon2.cnv.vcf.gz",
- "PosCon2.cnv.vcf.gz.tbi",
- "PosCon2.expansionhunter.vcf.gz",
- "PosCon2.expansionhunter.vcf.gz.tbi",
- "PosCon2.qdnaseq.abberations.bed",
- "PosCon2.qdnaseq.bed",
- "PosCon2.qdnaseq.cna",
- "PosCon2.qdnaseq_segments.txt",
- "PosCon2.sv.vcf.gz",
- "PosCon2.sv.vcf.gz.tbi",
- "PosCon2.wisecondorx_aberrations.bed",
- "PosCon2.wisecondorx_bins.bed",
- "PosCon2.wisecondorx_chr_statistics.txt",
- "PosCon2.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon3.cnv.vcf.gz",
- "PosCon3.cnv.vcf.gz.tbi",
- "PosCon3.expansionhunter.vcf.gz",
- "PosCon3.expansionhunter.vcf.gz.tbi",
- "PosCon3.qdnaseq.abberations.bed",
- "PosCon3.qdnaseq.bed",
- "PosCon3.qdnaseq.cna",
- "PosCon3.qdnaseq_segments.txt",
- "PosCon3.sv.vcf.gz",
- "PosCon3.sv.vcf.gz.tbi",
- "PosCon3.wisecondorx_aberrations.bed",
- "PosCon3.wisecondorx_bins.bed",
- "PosCon3.wisecondorx_chr_statistics.txt",
- "PosCon3.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon4.cnv.vcf.gz",
- "PosCon4.cnv.vcf.gz.tbi",
- "PosCon4.expansionhunter.vcf.gz",
- "PosCon4.expansionhunter.vcf.gz.tbi",
- "PosCon4.qdnaseq.abberations.bed",
- "PosCon4.qdnaseq.bed",
- "PosCon4.qdnaseq.cna",
- "PosCon4.qdnaseq_segments.txt",
- "PosCon4.sv.vcf.gz",
- "PosCon4.sv.vcf.gz.tbi",
- "PosCon4.wisecondorx_aberrations.bed",
- "PosCon4.wisecondorx_bins.bed",
- "PosCon4.wisecondorx_chr_statistics.txt",
- "PosCon4.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "multiqc_data",
- "multiqc_plots",
- "multiqc_report.html"
- ]
- ],
- [
- "PosCon1",
- "PosCon2",
- "PosCon3",
- "PosCon4",
- "multiqc",
- "pipeline_info"
+ "PosCon1/PosCon1.cnv.vcf.gz",
+ "PosCon1/PosCon1.cnv.vcf.gz.tbi",
+ "PosCon1/PosCon1.expansionhunter.vcf.gz",
+ "PosCon1/PosCon1.expansionhunter.vcf.gz.tbi",
+ "PosCon1/PosCon1.qdnaseq.abberations.bed",
+ "PosCon1/PosCon1.qdnaseq.bed",
+ "PosCon1/PosCon1.qdnaseq.cna",
+ "PosCon1/PosCon1.qdnaseq_segments.txt",
+ "PosCon1/PosCon1.sv.vcf.gz",
+ "PosCon1/PosCon1.sv.vcf.gz.tbi",
+ "PosCon1/PosCon1.wisecondorx_aberrations.bed",
+ "PosCon1/PosCon1.wisecondorx_bins.bed",
+ "PosCon1/PosCon1.wisecondorx_chr_statistics.txt",
+ "PosCon1/PosCon1.wisecondorx_segments.bed",
+ "PosCon1/chr1.png",
+ "PosCon1/chr22.png",
+ "PosCon1/genome_wide.png",
+ "PosCon1/statistics.out",
+ "PosCon2/PosCon2.cnv.vcf.gz",
+ "PosCon2/PosCon2.cnv.vcf.gz.tbi",
+ "PosCon2/PosCon2.expansionhunter.vcf.gz",
+ "PosCon2/PosCon2.expansionhunter.vcf.gz.tbi",
+ "PosCon2/PosCon2.qdnaseq.abberations.bed",
+ "PosCon2/PosCon2.qdnaseq.bed",
+ "PosCon2/PosCon2.qdnaseq.cna",
+ "PosCon2/PosCon2.qdnaseq_segments.txt",
+ "PosCon2/PosCon2.sv.vcf.gz",
+ "PosCon2/PosCon2.sv.vcf.gz.tbi",
+ "PosCon2/PosCon2.wisecondorx_aberrations.bed",
+ "PosCon2/PosCon2.wisecondorx_bins.bed",
+ "PosCon2/PosCon2.wisecondorx_chr_statistics.txt",
+ "PosCon2/PosCon2.wisecondorx_segments.bed",
+ "PosCon2/chr1.png",
+ "PosCon2/chr22.png",
+ "PosCon2/genome_wide.png",
+ "PosCon2/statistics.out",
+ "PosCon3/PosCon3.cnv.vcf.gz",
+ "PosCon3/PosCon3.cnv.vcf.gz.tbi",
+ "PosCon3/PosCon3.expansionhunter.vcf.gz",
+ "PosCon3/PosCon3.expansionhunter.vcf.gz.tbi",
+ "PosCon3/PosCon3.qdnaseq.abberations.bed",
+ "PosCon3/PosCon3.qdnaseq.bed",
+ "PosCon3/PosCon3.qdnaseq.cna",
+ "PosCon3/PosCon3.qdnaseq_segments.txt",
+ "PosCon3/PosCon3.sv.vcf.gz",
+ "PosCon3/PosCon3.sv.vcf.gz.tbi",
+ "PosCon3/PosCon3.wisecondorx_aberrations.bed",
+ "PosCon3/PosCon3.wisecondorx_bins.bed",
+ "PosCon3/PosCon3.wisecondorx_chr_statistics.txt",
+ "PosCon3/PosCon3.wisecondorx_segments.bed",
+ "PosCon3/chr1.png",
+ "PosCon3/chr22.png",
+ "PosCon3/genome_wide.png",
+ "PosCon3/statistics.out",
+ "PosCon4/PosCon4.cnv.vcf.gz",
+ "PosCon4/PosCon4.cnv.vcf.gz.tbi",
+ "PosCon4/PosCon4.expansionhunter.vcf.gz",
+ "PosCon4/PosCon4.expansionhunter.vcf.gz.tbi",
+ "PosCon4/PosCon4.qdnaseq.abberations.bed",
+ "PosCon4/PosCon4.qdnaseq.bed",
+ "PosCon4/PosCon4.qdnaseq.cna",
+ "PosCon4/PosCon4.qdnaseq_segments.txt",
+ "PosCon4/PosCon4.sv.vcf.gz",
+ "PosCon4/PosCon4.sv.vcf.gz.tbi",
+ "PosCon4/PosCon4.wisecondorx_aberrations.bed",
+ "PosCon4/PosCon4.wisecondorx_bins.bed",
+ "PosCon4/PosCon4.wisecondorx_chr_statistics.txt",
+ "PosCon4/PosCon4.wisecondorx_segments.bed",
+ "PosCon4/chr1.png",
+ "PosCon4/chr22.png",
+ "PosCon4/genome_wide.png",
+ "PosCon4/statistics.out",
+ "multiqc/multiqc_plots",
+ "multiqc/multiqc_report.html"
]
],
"meta": {
"nf-test": "0.8.4",
"nextflow": "24.02.0"
},
- "timestamp": "2024-03-29T09:29:12.284680489"
+ "timestamp": "2024-04-29T11:31:57.107814635"
},
"concat": {
"content": [
@@ -112,89 +93,210 @@
],
[
- [
- "PosCon1.qdnaseq.abberations.bed",
- "PosCon1.qdnaseq.bed",
- "PosCon1.qdnaseq.cna",
- "PosCon1.qdnaseq_segments.txt",
- "PosCon1.vcf.gz",
- "PosCon1.vcf.gz.tbi",
- "PosCon1.wisecondorx_aberrations.bed",
- "PosCon1.wisecondorx_bins.bed",
- "PosCon1.wisecondorx_chr_statistics.txt",
- "PosCon1.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon2.qdnaseq.abberations.bed",
- "PosCon2.qdnaseq.bed",
- "PosCon2.qdnaseq.cna",
- "PosCon2.qdnaseq_segments.txt",
- "PosCon2.vcf.gz",
- "PosCon2.vcf.gz.tbi",
- "PosCon2.wisecondorx_aberrations.bed",
- "PosCon2.wisecondorx_bins.bed",
- "PosCon2.wisecondorx_chr_statistics.txt",
- "PosCon2.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon3.qdnaseq.abberations.bed",
- "PosCon3.qdnaseq.bed",
- "PosCon3.qdnaseq.cna",
- "PosCon3.qdnaseq_segments.txt",
- "PosCon3.vcf.gz",
- "PosCon3.vcf.gz.tbi",
- "PosCon3.wisecondorx_aberrations.bed",
- "PosCon3.wisecondorx_bins.bed",
- "PosCon3.wisecondorx_chr_statistics.txt",
- "PosCon3.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "PosCon4.qdnaseq.abberations.bed",
- "PosCon4.qdnaseq.bed",
- "PosCon4.qdnaseq.cna",
- "PosCon4.qdnaseq_segments.txt",
- "PosCon4.vcf.gz",
- "PosCon4.vcf.gz.tbi",
- "PosCon4.wisecondorx_aberrations.bed",
- "PosCon4.wisecondorx_bins.bed",
- "PosCon4.wisecondorx_chr_statistics.txt",
- "PosCon4.wisecondorx_segments.bed",
- "chr1.png",
- "chr22.png",
- "genome_wide.png",
- "statistics.out"
- ],
- [
- "multiqc_data",
- "multiqc_plots",
- "multiqc_report.html"
- ]
+ "PosCon1/PosCon1.qdnaseq.abberations.bed",
+ "PosCon1/PosCon1.qdnaseq.bed",
+ "PosCon1/PosCon1.qdnaseq.cna",
+ "PosCon1/PosCon1.qdnaseq_segments.txt",
+ "PosCon1/PosCon1.vcf.gz",
+ "PosCon1/PosCon1.vcf.gz.tbi",
+ "PosCon1/PosCon1.wisecondorx_aberrations.bed",
+ "PosCon1/PosCon1.wisecondorx_bins.bed",
+ "PosCon1/PosCon1.wisecondorx_chr_statistics.txt",
+ "PosCon1/PosCon1.wisecondorx_segments.bed",
+ "PosCon1/chr1.png",
+ "PosCon1/chr22.png",
+ "PosCon1/genome_wide.png",
+ "PosCon1/statistics.out",
+ "PosCon2/PosCon2.qdnaseq.abberations.bed",
+ "PosCon2/PosCon2.qdnaseq.bed",
+ "PosCon2/PosCon2.qdnaseq.cna",
+ "PosCon2/PosCon2.qdnaseq_segments.txt",
+ "PosCon2/PosCon2.vcf.gz",
+ "PosCon2/PosCon2.vcf.gz.tbi",
+ "PosCon2/PosCon2.wisecondorx_aberrations.bed",
+ "PosCon2/PosCon2.wisecondorx_bins.bed",
+ "PosCon2/PosCon2.wisecondorx_chr_statistics.txt",
+ "PosCon2/PosCon2.wisecondorx_segments.bed",
+ "PosCon2/chr1.png",
+ "PosCon2/chr22.png",
+ "PosCon2/genome_wide.png",
+ "PosCon2/statistics.out",
+ "PosCon3/PosCon3.qdnaseq.abberations.bed",
+ "PosCon3/PosCon3.qdnaseq.bed",
+ "PosCon3/PosCon3.qdnaseq.cna",
+ "PosCon3/PosCon3.qdnaseq_segments.txt",
+ "PosCon3/PosCon3.vcf.gz",
+ "PosCon3/PosCon3.vcf.gz.tbi",
+ "PosCon3/PosCon3.wisecondorx_aberrations.bed",
+ "PosCon3/PosCon3.wisecondorx_bins.bed",
+ "PosCon3/PosCon3.wisecondorx_chr_statistics.txt",
+ "PosCon3/PosCon3.wisecondorx_segments.bed",
+ "PosCon3/chr1.png",
+ "PosCon3/chr22.png",
+ "PosCon3/genome_wide.png",
+ "PosCon3/statistics.out",
+ "PosCon4/PosCon4.qdnaseq.abberations.bed",
+ "PosCon4/PosCon4.qdnaseq.bed",
+ "PosCon4/PosCon4.qdnaseq.cna",
+ "PosCon4/PosCon4.qdnaseq_segments.txt",
+ "PosCon4/PosCon4.vcf.gz",
+ "PosCon4/PosCon4.vcf.gz.tbi",
+ "PosCon4/PosCon4.wisecondorx_aberrations.bed",
+ "PosCon4/PosCon4.wisecondorx_bins.bed",
+ "PosCon4/PosCon4.wisecondorx_chr_statistics.txt",
+ "PosCon4/PosCon4.wisecondorx_segments.bed",
+ "PosCon4/chr1.png",
+ "PosCon4/chr22.png",
+ "PosCon4/genome_wide.png",
+ "PosCon4/statistics.out",
+ "multiqc/multiqc_plots",
+ "multiqc/multiqc_report.html"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.02.0"
+ },
+ "timestamp": "2024-04-29T11:33:35.756593527"
+ },
+ "output callers": {
+ "content": [
+ [
+
],
[
- "PosCon1",
- "PosCon2",
- "PosCon3",
- "PosCon4",
- "multiqc",
- "pipeline_info"
+ "PosCon1/PosCon1.cnv.vcf.gz",
+ "PosCon1/PosCon1.cnv.vcf.gz.tbi",
+ "PosCon1/PosCon1.expansionhunter.vcf.gz",
+ "PosCon1/PosCon1.expansionhunter.vcf.gz.tbi",
+ "PosCon1/PosCon1.qdnaseq.abberations.bed",
+ "PosCon1/PosCon1.sv.vcf.gz",
+ "PosCon1/PosCon1.sv.vcf.gz.tbi",
+ "PosCon1/delly/PosCon1.delly.vcf.gz",
+ "PosCon1/delly/PosCon1.delly.vcf.gz.tbi",
+ "PosCon1/expansionhunter/PosCon1.expansionhunter.vcf.gz",
+ "PosCon1/expansionhunter/PosCon1.expansionhunter.vcf.gz.tbi",
+ "PosCon1/manta/PosCon1.manta.vcf.gz",
+ "PosCon1/manta/PosCon1.manta.vcf.gz.tbi",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq.abberations.bed",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq.bed",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq.cna",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq.vcf.gz",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq.vcf.gz.tbi",
+ "PosCon1/qdnaseq/PosCon1.qdnaseq_segments.txt",
+ "PosCon1/qdnaseq/statistics.out",
+ "PosCon1/smoove/PosCon1.smoove.vcf.gz",
+ "PosCon1/smoove/PosCon1.smoove.vcf.gz.tbi",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx.vcf.gz",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx.vcf.gz.tbi",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx_aberrations.bed",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx_bins.bed",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx_chr_statistics.txt",
+ "PosCon1/wisecondorx/PosCon1.wisecondorx_segments.bed",
+ "PosCon1/wisecondorx/chr1.png",
+ "PosCon1/wisecondorx/chr22.png",
+ "PosCon1/wisecondorx/genome_wide.png",
+ "PosCon2/PosCon2.cnv.vcf.gz",
+ "PosCon2/PosCon2.cnv.vcf.gz.tbi",
+ "PosCon2/PosCon2.expansionhunter.vcf.gz",
+ "PosCon2/PosCon2.expansionhunter.vcf.gz.tbi",
+ "PosCon2/PosCon2.qdnaseq.abberations.bed",
+ "PosCon2/PosCon2.sv.vcf.gz",
+ "PosCon2/PosCon2.sv.vcf.gz.tbi",
+ "PosCon2/delly/PosCon2.delly.vcf.gz",
+ "PosCon2/delly/PosCon2.delly.vcf.gz.tbi",
+ "PosCon2/expansionhunter/PosCon2.expansionhunter.vcf.gz",
+ "PosCon2/expansionhunter/PosCon2.expansionhunter.vcf.gz.tbi",
+ "PosCon2/manta/PosCon2.manta.vcf.gz",
+ "PosCon2/manta/PosCon2.manta.vcf.gz.tbi",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq.abberations.bed",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq.bed",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq.cna",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq.vcf.gz",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq.vcf.gz.tbi",
+ "PosCon2/qdnaseq/PosCon2.qdnaseq_segments.txt",
+ "PosCon2/qdnaseq/statistics.out",
+ "PosCon2/smoove/PosCon2.smoove.vcf.gz",
+ "PosCon2/smoove/PosCon2.smoove.vcf.gz.tbi",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx.vcf.gz",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx.vcf.gz.tbi",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx_aberrations.bed",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx_bins.bed",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx_chr_statistics.txt",
+ "PosCon2/wisecondorx/PosCon2.wisecondorx_segments.bed",
+ "PosCon2/wisecondorx/chr1.png",
+ "PosCon2/wisecondorx/chr22.png",
+ "PosCon2/wisecondorx/genome_wide.png",
+ "PosCon3/PosCon3.cnv.vcf.gz",
+ "PosCon3/PosCon3.cnv.vcf.gz.tbi",
+ "PosCon3/PosCon3.expansionhunter.vcf.gz",
+ "PosCon3/PosCon3.expansionhunter.vcf.gz.tbi",
+ "PosCon3/PosCon3.qdnaseq.abberations.bed",
+ "PosCon3/PosCon3.sv.vcf.gz",
+ "PosCon3/PosCon3.sv.vcf.gz.tbi",
+ "PosCon3/delly/PosCon3.delly.vcf.gz",
+ "PosCon3/delly/PosCon3.delly.vcf.gz.tbi",
+ "PosCon3/expansionhunter/PosCon3.expansionhunter.vcf.gz",
+ "PosCon3/expansionhunter/PosCon3.expansionhunter.vcf.gz.tbi",
+ "PosCon3/manta/PosCon3.manta.vcf.gz",
+ "PosCon3/manta/PosCon3.manta.vcf.gz.tbi",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq.abberations.bed",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq.bed",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq.cna",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq.vcf.gz",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq.vcf.gz.tbi",
+ "PosCon3/qdnaseq/PosCon3.qdnaseq_segments.txt",
+ "PosCon3/qdnaseq/statistics.out",
+ "PosCon3/smoove/PosCon3.smoove.vcf.gz",
+ "PosCon3/smoove/PosCon3.smoove.vcf.gz.tbi",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx.vcf.gz",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx.vcf.gz.tbi",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx_aberrations.bed",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx_bins.bed",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx_chr_statistics.txt",
+ "PosCon3/wisecondorx/PosCon3.wisecondorx_segments.bed",
+ "PosCon3/wisecondorx/chr1.png",
+ "PosCon3/wisecondorx/chr22.png",
+ "PosCon3/wisecondorx/genome_wide.png",
+ "PosCon4/PosCon4.cnv.vcf.gz",
+ "PosCon4/PosCon4.cnv.vcf.gz.tbi",
+ "PosCon4/PosCon4.expansionhunter.vcf.gz",
+ "PosCon4/PosCon4.expansionhunter.vcf.gz.tbi",
+ "PosCon4/PosCon4.qdnaseq.abberations.bed",
+ "PosCon4/PosCon4.sv.vcf.gz",
+ "PosCon4/PosCon4.sv.vcf.gz.tbi",
+ "PosCon4/delly/PosCon4.delly.vcf.gz",
+ "PosCon4/delly/PosCon4.delly.vcf.gz.tbi",
+ "PosCon4/expansionhunter/PosCon4.expansionhunter.vcf.gz",
+ "PosCon4/expansionhunter/PosCon4.expansionhunter.vcf.gz.tbi",
+ "PosCon4/manta/PosCon4.manta.vcf.gz",
+ "PosCon4/manta/PosCon4.manta.vcf.gz.tbi",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq.abberations.bed",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq.bed",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq.cna",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq.vcf.gz",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq.vcf.gz.tbi",
+ "PosCon4/qdnaseq/PosCon4.qdnaseq_segments.txt",
+ "PosCon4/qdnaseq/statistics.out",
+ "PosCon4/smoove/PosCon4.smoove.vcf.gz",
+ "PosCon4/smoove/PosCon4.smoove.vcf.gz.tbi",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx.vcf.gz",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx.vcf.gz.tbi",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx_aberrations.bed",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx_bins.bed",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx_chr_statistics.txt",
+ "PosCon4/wisecondorx/PosCon4.wisecondorx_segments.bed",
+ "PosCon4/wisecondorx/chr1.png",
+ "PosCon4/wisecondorx/chr22.png",
+ "PosCon4/wisecondorx/genome_wide.png",
+ "multiqc/multiqc_plots",
+ "multiqc/multiqc_report.html"
]
],
"meta": {
"nf-test": "0.8.4",
"nextflow": "24.02.0"
},
- "timestamp": "2024-03-13T11:26:44.29004361"
+ "timestamp": "2024-04-29T11:47:12.295054901"
}
}
\ No newline at end of file
diff --git a/tests/pipeline/cnv/cnv.nf.test b/tests/pipeline/cnv/cnv.nf.test
index 2b84f5f3..45f0c516 100644
--- a/tests/pipeline/cnv/cnv.nf.test
+++ b/tests/pipeline/cnv/cnv.nf.test
@@ -48,7 +48,7 @@ nextflow_pipeline {
when {
params {
outdir = "${outputDir}"
- callers = "qdnaseq,wisecondorx"
+ callers = "cnv"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
diff --git a/tests/pipeline/families/families.nf.test b/tests/pipeline/families/families.nf.test
index 6d2da69b..f3de5b76 100644
--- a/tests/pipeline/families/families.nf.test
+++ b/tests/pipeline/families/families.nf.test
@@ -14,7 +14,7 @@ nextflow_pipeline {
params {
outdir = "${outputDir}"
input = "${baseDir}/tests/pipeline/families/samplesheet_family3.csv"
- callers = "delly,smoove,manta,expansionhunter,qdnaseq,wisecondorx"
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
@@ -49,7 +49,7 @@ nextflow_pipeline {
params {
outdir = "${outputDir}"
input = "${baseDir}/tests/pipeline/families/samplesheet_family3.csv"
- callers = "delly,smoove,manta,expansionhunter,qdnaseq,wisecondorx"
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
@@ -85,7 +85,7 @@ nextflow_pipeline {
params {
outdir = "${outputDir}"
input = "${baseDir}/tests/pipeline/families/samplesheet_family2_sample1.csv"
- callers = "delly,smoove,manta,expansionhunter,qdnaseq,wisecondorx"
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
@@ -120,7 +120,7 @@ nextflow_pipeline {
params {
outdir = "${outputDir}"
input = "${baseDir}/tests/pipeline/families/samplesheet_family2_sample1.csv"
- callers = "delly,smoove,manta,expansionhunter,qdnaseq,wisecondorx"
+ callers = "all"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
diff --git a/tests/pipeline/sv/sv.nf.test b/tests/pipeline/sv/sv.nf.test
index 1e3230ec..3cf95fa7 100644
--- a/tests/pipeline/sv/sv.nf.test
+++ b/tests/pipeline/sv/sv.nf.test
@@ -48,7 +48,7 @@ nextflow_pipeline {
when {
params {
outdir = "${outputDir}"
- callers = "delly,manta,smoove" //,gridss
+ callers = "sv"
max_cpus = 2
max_memory = '6.GB'
max_time = '6.h'
diff --git a/tests/subworkflows/local/bam_cnv_calling/main.nf.test b/tests/subworkflows/local/bam_cnv_calling/main.nf.test
index 2c44ea04..3195ac6b 100644
--- a/tests/subworkflows/local/bam_cnv_calling/main.nf.test
+++ b/tests/subworkflows/local/bam_cnv_calling/main.nf.test
@@ -9,7 +9,6 @@ nextflow_workflow {
tag "bam_cnv_calling"
options "-stub"
- config "./nextflow.config"
test("homo_sapiens - qdnaseq") {
@@ -21,21 +20,23 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
input[3] = [[],[]]
input[4] = [[],[]]
input[5] = [[],[]]
input[6] = [[],[]]
+ input[7] = Channel.fromPath("\${params.bedgovcf_configs}/*.yaml", checkIfExists:true)
+ input[8] = params.callers.tokenize(",")
"""
}
}
@@ -64,21 +65,23 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
input[3] = [[],[]]
input[4] = [[],[]]
input[5] = [[],[]]
input[6] = [[],[]]
+ input[7] = Channel.fromPath("\${params.bedgovcf_configs}/*.yaml", checkIfExists:true)
+ input[8] = params.callers.tokenize(",")
"""
}
}
@@ -107,21 +110,23 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
input[3] = [[],[]]
input[4] = [[],[]]
input[5] = [[],[]]
input[6] = [[],[]]
+ input[7] = Channel.fromPath("\${params.bedgovcf_configs}/*.yaml", checkIfExists:true)
+ input[8] = params.callers.tokenize(",")
"""
}
}
diff --git a/tests/subworkflows/local/bam_prepare_samtools/main.nf.test b/tests/subworkflows/local/bam_prepare_samtools/main.nf.test
index 72064be2..057d36f8 100644
--- a/tests/subworkflows/local/bam_prepare_samtools/main.nf.test
+++ b/tests/subworkflows/local/bam_prepare_samtools/main.nf.test
@@ -15,16 +15,16 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
+ file(params.cram1, checkIfExists: true),
[]
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
"""
}
@@ -50,20 +50,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
], [
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true),
+ file(params.cram2, checkIfExists: true),
[]
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
"""
}
@@ -90,20 +90,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
], [
[id:"test2", sample:"test2", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true),
+ file(params.cram2, checkIfExists: true),
[]
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
"""
}
diff --git a/tests/subworkflows/local/bam_prepare_samtools/main.nf.test.snap b/tests/subworkflows/local/bam_prepare_samtools/main.nf.test.snap
index 8a35d61a..707994f9 100644
--- a/tests/subworkflows/local/bam_prepare_samtools/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_prepare_samtools/main.nf.test.snap
@@ -8,14 +8,18 @@
"sample": "test",
"sex": "male"
},
- "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram",
- "test.paired_end.sorted.cram.crai:md5,31ffc1b11f53210e4ac0d55092de0652"
+ "/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/cram/SVcontrol/PosCon1.cram",
+ "PosCon1.cram.crai:md5,ad1288bcc69e6e11316b933903cf7bcf"
]
],
1,
0
],
- "timestamp": "2023-11-29T16:38:29.584284221"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T15:02:28.210751679"
},
"homo sapiens - [[cram, crai], [cram, []]], fasta, fai - One sample": {
"content": [
@@ -24,6 +28,10 @@
2,
0
],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
"timestamp": "2023-11-29T16:38:40.713398061"
},
"homo sapiens - [[cram, crai], [cram, []]], fasta, fai - Two samples": {
@@ -35,8 +43,8 @@
"sample": "test",
"sex": "male"
},
- "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram",
- "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai"
+ "/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/cram/SVcontrol/PosCon1.cram",
+ "/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/cram/SVcontrol/PosCon1.cram.crai"
],
[
{
@@ -44,13 +52,17 @@
"sample": "test2",
"sex": "male"
},
- "/nf-core/test-datasets/modules/data/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram",
- "test2.paired_end.sorted.cram.crai:md5,633a024a94932189bd5fbc84f62ce6ac"
+ "/nf-cmgg/test-datasets/raw/main/data/genomics/homo_sapiens/illumina/cram/SVcontrol/PosCon2.cram",
+ "PosCon2.cram.crai:md5,bdb6e116dfeb217be18e3e44eab33cb6"
]
],
1,
0
],
- "timestamp": "2023-11-29T16:38:49.788373375"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.03.0"
+ },
+ "timestamp": "2024-05-06T15:02:49.440862334"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/bam_repeat_estimation_expansionhunter/main.nf.test.snap b/tests/subworkflows/local/bam_repeat_estimation_expansionhunter/main.nf.test.snap
index 7eca4911..9ad99d13 100644
--- a/tests/subworkflows/local/bam_repeat_estimation_expansionhunter/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_repeat_estimation_expansionhunter/main.nf.test.snap
@@ -2,19 +2,19 @@
"homo_sapiens": {
"content": [
[
- "chrX\t12000\t.\tT\t.\t.\tLowDepth\tEND=50000;REPREF=9500;RL=38000;RU=CAGG;VARID=CNBP;REPID=CNBP\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t./.:./.:./.:./.:./.:./.:.:0",
- "chrX\t12000\t.\tT\t.\t.\tLowDepth\tEND=123456;REPREF=18576;RL=111456;RU=GGCCCC;VARID=C9ORF72;REPID=C9ORF72\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t./.:./.:./.:./.:./.:./.:.:0",
- "chrX\t14586\t.\tG\t.\t.\tLowDepth\tEND=35698;REPREF=5278;RL=21112;RU=CAGA;VARID=CNBP_CAGA;REPID=CNBP_CAGA\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t./.:./.:./.:./.:./.:./.:.:0",
- "chrX\t15000\t.\tA\t.\t.\tLowDepth\tEND=45826;REPREF=15413;RL=30826;RU=CA;VARID=CNBP_CA;REPID=CNBP_CA\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t./.:./.:./.:./.:./.:./.:.:0"
+ "chrX\t12000\t.\tT\t.\t.\tLowDepth\tEND=50000;REPREF=9500;RL=38000;RU=CAGG;VARID=CNBP;REPID=CNBP\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t.:.:.:.:.:.:.:0",
+ "chrX\t12000\t.\tT\t.\t.\tLowDepth\tEND=123456;REPREF=18576;RL=111456;RU=GGCCCC;VARID=C9ORF72;REPID=C9ORF72\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t.:.:.:.:.:.:.:0",
+ "chrX\t14586\t.\tG\t.\t.\tLowDepth\tEND=35698;REPREF=5278;RL=21112;RU=CAGA;VARID=CNBP_CAGA;REPID=CNBP_CAGA\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t.:.:.:.:.:.:.:0",
+ "chrX\t15000\t.\tA\t.\t.\tLowDepth\tEND=45826;REPREF=15413;RL=30826;RU=CA;VARID=CNBP_CA;REPID=CNBP_CA\tGT:SO:REPCN:REPCI:ADSP:ADFL:ADIR:LC\t.:.:.:.:.:.:.:0"
],
- "test.repeats.vcf.gz.tbi",
+ "test.expansionhunter.vcf.gz.tbi",
3,
0
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.03.0"
},
- "timestamp": "2024-03-11T14:00:28.920701745"
+ "timestamp": "2024-05-06T15:05:05.525988275"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/bam_sv_calling/main.nf.test b/tests/subworkflows/local/bam_sv_calling/main.nf.test
index 5a724669..fed04ec4 100644
--- a/tests/subworkflows/local/bam_sv_calling/main.nf.test
+++ b/tests/subworkflows/local/bam_sv_calling/main.nf.test
@@ -22,19 +22,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
- input[3] = [[],[]]
- input[4] = []
+ input[3] = []
+ input[4] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
+ input[5] = params.callers.tokenize(",")
"""
}
}
@@ -63,19 +64,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
- input[3] = [[],[]]
- input[4] = []
+ input[3] = []
+ input[4] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
+ input[5] = params.callers.tokenize(",")
"""
}
}
@@ -104,19 +106,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
- input[3] = [[],[]]
- input[4] = []
+ input[3] = []
+ input[4] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
+ input[5] = params.callers.tokenize(",")
"""
}
}
@@ -145,19 +148,20 @@ nextflow_workflow {
// """
// input[0] = Channel.of([
// [id:"test", sample:"test", sex:"male"],
- // file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- // file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ // file(params.cram1, checkIfExists: true),
+ // file(params.crai1, checkIfExists: true)
// ])
// input[1] = Channel.value([
// [id:"fasta"],
- // file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ // file(params.fasta, checkIfExists: true)
// ])
// input[2] = Channel.value([
// [id:"fai"],
- // file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ // file(params.fai, checkIfExists: true)
// ])
- // input[3] = [[],[]]
+ // input[3] = []
// input[4] = []
+ // input[5] = params.callers.tokenize(",")
// """
// }
// }
@@ -186,19 +190,20 @@ nextflow_workflow {
"""
input[0] = Channel.of([
[id:"test", sample:"test", sex:"male"],
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true),
- file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)
+ file(params.cram1, checkIfExists: true),
+ file(params.crai1, checkIfExists: true)
])
input[1] = Channel.value([
[id:"fasta"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true)
+ file(params.fasta, checkIfExists: true)
])
input[2] = Channel.value([
[id:"fai"],
- file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true)
+ file(params.fai, checkIfExists: true)
])
- input[3] = [[],[]]
- input[4] = []
+ input[3] = []
+ input[4] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
+ input[5] = params.callers.tokenize(",")
"""
}
}
diff --git a/tests/subworkflows/local/bam_sv_calling/main.nf.test.snap b/tests/subworkflows/local/bam_sv_calling/main.nf.test.snap
index 1ceb8266..b55a00e9 100644
--- a/tests/subworkflows/local/bam_sv_calling/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_sv_calling/main.nf.test.snap
@@ -14,14 +14,14 @@
"test.svync.smoove.vcf.gz",
"test.svync.smoove.vcf.gz.tbi"
],
- 4,
+ 5,
0
],
"meta": {
"nf-test": "0.8.4",
"nextflow": "24.02.0"
},
- "timestamp": "2024-03-11T14:05:02.394564785"
+ "timestamp": "2024-04-29T13:24:56.132319567"
},
"homo_sapiens - manta": {
"content": [
diff --git a/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test b/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test
index a993b1b6..43c983b3 100644
--- a/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test
+++ b/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test
@@ -28,6 +28,7 @@ nextflow_workflow {
[id:"fai"],
file(params.fai, checkIfExists: true)
])
+ input[3] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
"""
}
}
diff --git a/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test.snap b/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test.snap
index 0445dd4a..c97d4580 100644
--- a/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_variant_calling_delly/main.nf.test.snap
@@ -2,10 +2,10 @@
"homo_sapiens": {
"content": [
[
- "chr16\t86933\tdelly_DEL_1\tT\t\t120\tLowQual\tCALLERS=delly;CIEND=-9,9;CIPOS=-9,9;END=1349692;SVLEN=-1262759;SVTYPE=DEL\tGT:PE:SR\t1/1:0,0:0,7",
- "chr16\t1077371\tdelly_INV_2\tT\t\t58\tLowQual\tCALLERS=delly;CIEND=-392,392;CIPOS=-392,392;END=1078502;SVLEN=1131;SVTYPE=INV\tGT:PE:SR\t0/0:19,2:0,0",
- "chr16\t1123476\tdelly_INV_3\tA\t\t180\tPASS\tCALLERS=delly;CIEND=-3,3;CIPOS=-3,3;END=1604486;SVLEN=481010;SVTYPE=INV\tGT:PE:SR\t1/1:0,0:0,12",
- "chr16\t1135261\tdelly_INS_4\tC\t\t299\tPASS\tCALLERS=delly;CIEND=-2,2;CIPOS=-2,2;END=1135262;SVLEN=27;SVTYPE=INS\tGT:PE:SR\t1/1:0,0:0,25"
+ "chr16\t86933\tdelly_DEL_1\tT\t\t120\tLowQual\tCALLERS=delly;CIEND=-9,9;CIPOS=-9,9;END=1349691;SVLEN=-1262758;SVTYPE=DEL\tGT:PE:SR\t1/1:0,0:0,7",
+ "chr16\t1077371\tdelly_INV_2\tT\t\t58\tLowQual\tCALLERS=delly;CIEND=-392,392;CIPOS=-392,392;END=1078501;SVLEN=1130;SVTYPE=INV\tGT:PE:SR\t0/0:19,2:0,0",
+ "chr16\t1123476\tdelly_INV_3\tA\t\t180\tPASS\tCALLERS=delly;CIEND=-3,3;CIPOS=-3,3;END=1604485;SVLEN=481009;SVTYPE=INV\tGT:PE:SR\t1/1:0,0:0,12",
+ "chr16\t1135261\tdelly_INS_4\tC\tCAAAAAGTGAATGGATAAACCAACTGTA\t299\tPASS\tCALLERS=delly;CIEND=-2,2;CIPOS=-2,2;END=1135261;SVLEN=27;SVTYPE=INS\tGT:PE:SR\t1/1:0,0:0,25"
],
"test.svync.delly.vcf.gz.tbi",
3,
@@ -13,8 +13,8 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.03.0"
},
- "timestamp": "2024-03-11T14:11:38.043228427"
+ "timestamp": "2024-05-06T15:21:39.34016826"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/bam_variant_calling_manta/main.nf.test b/tests/subworkflows/local/bam_variant_calling_manta/main.nf.test
index a65ea097..5d0d9240 100644
--- a/tests/subworkflows/local/bam_variant_calling_manta/main.nf.test
+++ b/tests/subworkflows/local/bam_variant_calling_manta/main.nf.test
@@ -31,6 +31,7 @@ nextflow_workflow {
input[3] = Channel.value([
file(params.manta_config, checkIfExists: true)
])
+ input[4] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
"""
}
}
diff --git a/tests/subworkflows/local/bam_variant_calling_qdnaseq/main.nf.test b/tests/subworkflows/local/bam_variant_calling_qdnaseq/main.nf.test
index 6dc4043e..f017b86a 100644
--- a/tests/subworkflows/local/bam_variant_calling_qdnaseq/main.nf.test
+++ b/tests/subworkflows/local/bam_variant_calling_qdnaseq/main.nf.test
@@ -40,6 +40,7 @@ nextflow_workflow {
[id:"female_ref"],
file(params.qdnaseq_female, checkIfExists: true)
])
+ input[5] = Channel.fromPath("\${params.bedgovcf_configs}/*.yaml", checkIfExists:true).collect()
"""
}
}
diff --git a/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test b/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test
index 192c4d2c..5767731d 100644
--- a/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test
+++ b/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test
@@ -26,6 +26,7 @@ nextflow_workflow {
[id:"fai"],
file(params.fai, checkIfExists: true)
])
+ input[3] = Channel.fromPath("\${params.svync_configs}/*.yaml", checkIfExists:true).collect()
"""
}
}
diff --git a/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test.snap b/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test.snap
index 2d970b5f..db1c1efb 100644
--- a/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_variant_calling_smoove/main.nf.test.snap
@@ -13,8 +13,8 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.03.0"
},
- "timestamp": "2024-03-11T14:24:00.029162632"
+ "timestamp": "2024-05-06T15:56:29.455835249"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test b/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test
index d60a132a..63c33162 100644
--- a/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test
+++ b/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test
@@ -33,6 +33,7 @@ nextflow_workflow {
file(params.wisecondorx_reference, checkIfExists:true)
]
input[4] = [[],[]]
+ input[5] = Channel.fromPath("\${params.bedgovcf_configs}/*.yaml", checkIfExists:true).collect()
"""
}
}
diff --git a/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test.snap b/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test.snap
index b0f13b58..d5584ace 100644
--- a/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test.snap
+++ b/tests/subworkflows/local/bam_variant_calling_wisecondorx/main.nf.test.snap
@@ -9,7 +9,7 @@
"sex": "male",
"caller": "wisecondorx"
},
- "test_aberrations.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.wisecondorx_aberrations.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
]
],
[
@@ -20,7 +20,7 @@
"sex": "male",
"caller": "wisecondorx"
},
- "test_bins.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.wisecondorx_bins.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
]
],
[
@@ -31,7 +31,7 @@
"sex": "male",
"caller": "wisecondorx"
},
- "test_segments.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.wisecondorx_segments.bed:md5,d41d8cd98f00b204e9800998ecf8427e"
]
],
[
@@ -42,7 +42,7 @@
"sex": "male",
"caller": "wisecondorx"
},
- "test_chr_statistics.txt:md5,d41d8cd98f00b204e9800998ecf8427e"
+ "test.wisecondorx_chr_statistics.txt:md5,d41d8cd98f00b204e9800998ecf8427e"
]
],
[
@@ -83,8 +83,8 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.03.0"
},
- "timestamp": "2024-03-11T14:28:06.577335662"
+ "timestamp": "2024-05-06T15:54:06.8767855"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test
index b6782038..2c0b469d 100644
--- a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test
+++ b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test
@@ -23,13 +23,14 @@ nextflow_workflow {
}
workflow {
"""
+ def meta = [id:"test", sample:"test", sex:"male", family: "test1", family_count:1, hpo:[]]
input[0] = Channel.of([
- [id:"test", sample:"test", sex:"male", variant_type:"sv", family: "test1", family_count:1],
+ meta + [variant_type:"sv"],
file(params.sv_vcf1, checkIfExists:true),
file(params.sv_tbi1, checkIfExists:true)
])
input[1] = Channel.of([
- [id:"test", sample:"test", sex:"male", family: "test1", family_count:1],
+ meta,
[]
])
input[2] = Channel.value([
@@ -48,6 +49,12 @@ nextflow_workflow {
input[9] = []
input[10] = []
input[11] = ["sv"]
+ input[12] = params.genome
+ input[13] = params.species
+ input[14] = params.vep_cache_version
+ input[15] = null
+ input[16] = []
+ input[17] = files("\${params.vcfanno_tomls}/*.toml", checkIfExists:true)
"""
}
}
@@ -56,7 +63,7 @@ nextflow_workflow {
assertAll(
{ assert workflow.success },
{ assert snapshot(
- workflow.out.vcfs[0][1..2].collect { file(it).name },
+ workflow.out.vcfs.collect { it.collect { it instanceof Map ? it : file(it).name } },
workflow.out.reports,
workflow.trace.succeeded().size(),
workflow.trace.failed().size()
@@ -78,13 +85,14 @@ nextflow_workflow {
}
workflow {
"""
+ def meta = [id:"test", sample:"test", sex:"male", family: "test1", family_count:1, hpo:[]]
input[0] = Channel.of([
- [id:"test", sample:"test", sex:"male", variant_type:"cnv", family: "test1", family_count:1],
+ meta + [variant_type:"cnv"],
file(params.sv_vcf1, checkIfExists:true),
file(params.sv_tbi1, checkIfExists:true)
])
input[1] = Channel.of([
- [id:"test", sample:"test", sex:"male", family: "test1", family_count:1],
+ meta,
[]
])
input[2] = Channel.value([
@@ -103,6 +111,12 @@ nextflow_workflow {
input[9] = []
input[10] = []
input[11] = ["cnv"]
+ input[12] = params.genome
+ input[13] = params.species
+ input[14] = params.vep_cache_version
+ input[15] = params.annotations_filter
+ input[16] = []
+ input[17] = files("\${params.vcfanno_tomls}/*.toml", checkIfExists:true)
"""
}
}
@@ -111,7 +125,7 @@ nextflow_workflow {
assertAll(
{ assert workflow.success },
{ assert snapshot(
- workflow.out.vcfs[0][1..2].collect { file(it).name },
+ workflow.out.vcfs.collect { it.collect { it instanceof Map ? it : file(it).name } },
workflow.out.reports,
workflow.trace.succeeded().size(),
workflow.trace.failed().size()
@@ -133,17 +147,18 @@ nextflow_workflow {
}
workflow {
"""
+ def meta = [id:"test", sample:"test", sex:"male", family: "test1", family_count:1, hpo:[]]
input[0] = Channel.of([
- [id:"test", sample:"test", sex:"male", variant_type:"sv", family: "test1", family_count:1],
+ meta + [variant_type:"sv"],
file(params.sv_vcf1, checkIfExists:true),
file(params.sv_tbi1, checkIfExists:true)
], [
- [id:"test", sample:"test", sex:"male", variant_type:"cnv", family: "test1", family_count:1],
+ meta + [variant_type: "cnv"],
file(params.cnv_vcf1, checkIfExists:true),
file(params.cnv_tbi1, checkIfExists:true)
])
input[1] = Channel.of([
- [id:"test", sample:"test", sex:"male", family: "test1", family_count:1],
+ meta,
[]
])
input[2] = Channel.value([
@@ -162,6 +177,12 @@ nextflow_workflow {
input[9] = []
input[10] = []
input[11] = ["sv", "cnv"]
+ input[12] = params.genome
+ input[13] = params.species
+ input[14] = params.vep_cache_version
+ input[15] = null
+ input[16] = []
+ input[17] = files("\${params.vcfanno_tomls}/*.toml", checkIfExists:true)
"""
}
}
@@ -170,7 +191,7 @@ nextflow_workflow {
assertAll(
{ assert workflow.success },
{ assert snapshot(
- workflow.out.vcfs[0][1..2].collect { file(it).name },
+ workflow.out.vcfs.collect { it.collect { it instanceof Map ? it : file(it).name } },
workflow.out.reports,
workflow.trace.succeeded().size(),
workflow.trace.failed().size()
diff --git a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test.snap b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test.snap
index 82c97455..fc707522 100644
--- a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test.snap
+++ b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/main.nf.test.snap
@@ -2,8 +2,21 @@
"homo_sapiens - sv, no_filter": {
"content": [
[
- "test.sv.vcf.gz",
- "test.sv.vcf.gz.tbi"
+ [
+ {
+ "id": "test",
+ "sample": "test",
+ "sex": "male",
+ "family": "test1",
+ "family_count": 1,
+ "hpo": [
+
+ ],
+ "variant_type": "sv"
+ },
+ "test.sv.vcf.gz",
+ "test.sv.vcf.gz.tbi"
+ ]
],
[
"test.vep.summary.html:md5,d41d8cd98f00b204e9800998ecf8427e"
@@ -13,15 +26,43 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.04.2"
},
- "timestamp": "2024-03-12T10:16:55.291447426"
+ "timestamp": "2024-06-05T16:01:35.19225934"
},
"homo_sapiens - sv & cnv": {
"content": [
[
- "test.cnv.vcf.gz",
- "test.cnv.vcf.gz.tbi"
+ [
+ {
+ "id": "test",
+ "sample": "test",
+ "sex": "male",
+ "family": "test1",
+ "family_count": 1,
+ "hpo": [
+
+ ],
+ "variant_type": "cnv"
+ },
+ "test.cnv.vcf.gz",
+ "test.cnv.vcf.gz.tbi"
+ ],
+ [
+ {
+ "id": "test",
+ "sample": "test",
+ "sex": "male",
+ "family": "test1",
+ "family_count": 1,
+ "hpo": [
+
+ ],
+ "variant_type": "sv"
+ },
+ "test.sv.vcf.gz",
+ "test.sv.vcf.gz.tbi"
+ ]
],
[
"test.vep.summary.html:md5,d41d8cd98f00b204e9800998ecf8427e",
@@ -32,15 +73,28 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.04.2"
},
- "timestamp": "2024-03-12T10:17:27.514868326"
+ "timestamp": "2024-06-05T16:04:50.892603799"
},
"homo_sapiens - cnv, filter": {
"content": [
[
- "test.cnv.vcf.gz",
- "test.cnv.vcf.gz.tbi"
+ [
+ {
+ "id": "test",
+ "sample": "test",
+ "sex": "male",
+ "family": "test1",
+ "family_count": 1,
+ "hpo": [
+
+ ],
+ "variant_type": "cnv"
+ },
+ "test.cnv.vcf.gz",
+ "test.cnv.vcf.gz.tbi"
+ ]
],
[
"test.vep.summary.html:md5,d41d8cd98f00b204e9800998ecf8427e"
@@ -50,8 +104,8 @@
],
"meta": {
"nf-test": "0.8.4",
- "nextflow": "24.02.0"
+ "nextflow": "24.04.2"
},
- "timestamp": "2024-03-12T11:04:12.980338516"
+ "timestamp": "2024-06-05T16:02:48.492322238"
}
}
\ No newline at end of file
diff --git a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/nextflow.config b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/nextflow.config
index 65252546..963c69ea 100644
--- a/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/nextflow.config
+++ b/tests/subworkflows/local/vcf_annotate_vep_annotsv_vcfanno/nextflow.config
@@ -6,7 +6,11 @@ process {
}
withName: ANNOTSV_ANNOTSV {
- ext.args = "-SVminSize 20"
+ ext.args = {[
+ "-SVminSize 20",
+ "-vcf 1",
+ meta.hpo ? "-hpo ${meta.hpo}" : ""
+ ].join(" ")}
ext.prefix = {"${meta.id}.annot"}
}
diff --git a/workflows/structural.nf b/workflows/structural.nf
index ff0f45d0..614acbdd 100644
--- a/workflows/structural.nf
+++ b/workflows/structural.nf
@@ -9,43 +9,6 @@ include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pi
include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline'
include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_structural_pipeline'
-// Check callers (see lib/GlobalVariables.groovy for the list of supported callers)
-def callers = params.callers.tokenize(",")
-
-for (caller in callers) {
- if(!(caller in GlobalVariables.allCallers)) { error("The caller '${caller}' is not supported please specify a comma delimited list with on or more of the following callers: ${GlobalVariables.allCallers}".toString()) }
-}
-
-def sv_callers_to_use = callers.intersect(GlobalVariables.svCallers)
-def cnv_callers_to_use = callers.intersect(GlobalVariables.cnvCallers)
-
-if (sv_callers_to_use && params.sv_callers_support > sv_callers_to_use.size()) {
- error("The --sv_callers_support parameter (${params.sv_callers_support}) is higher than the amount of SV callers in --callers (${sv_callers_to_use.size()}). Please adjust --sv_callers_support to a value lower of equal to the amount of SV callers to use.")
-}
-
-if (cnv_callers_to_use && params.cnv_callers_support > cnv_callers_to_use.size()) {
- error("The --cnv_callers_support parameter (${params.cnv_callers_support}) is higher than the amount of CNV callers in --callers (${cnv_callers_to_use.size()}). Please adjust --cnv_callers_support to a value lower of equal to the amount of CNV callers to use.")
-}
-
-if ("qdnaseq" in callers && (!params.qdnaseq_male || !params.qdnaseq_female)) {
- error("Please give the QDNAseq references using --qdnaseq_male and --qdnaseq_female")
-}
-
-if ("wisecondorx" in callers && !params.wisecondorx_reference) {
- error("Please give the WisecondorX reference using --wisecondorx_reference")
-}
-
-/*
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CONFIG FILES
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-*/
-
-ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true)
-ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty()
-ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty()
-ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true)
-
/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IMPORT LOCAL MODULES/SUBWORKFLOWS
@@ -90,7 +53,47 @@ include { MULTIQC } from '../modules/nf-core/multiqc/m
workflow STRUCTURAL {
take:
- ch_samplesheet // channel: samplesheet read in from --input
+ // channels
+ ch_samplesheet // channel: samplesheet read in from --input
+ ch_multiqc_config
+ ch_multiqc_custom_config
+ ch_multiqc_logo
+ ch_multiqc_custom_methods_description
+
+ // file inputs
+ fasta // The fasta file to use
+ fai // The index of the fasta file
+ expansionhunter_catalog // The expansionhunter catalog
+ qdnaseq_female // The QDNAseq annotations for female samples
+ qdnaseq_male // The QDNAseq annotations for male samples
+ wisecondorx_reference // The WisecondorX annotations file
+ vep_cache // The VEP cache directory
+ annotsv_annotations // The annotations directory for AnnotSV
+ annotsv_candidate_genes // A file containing the AnnotSV candidate genes
+ annotsv_gene_transcripts // A file containing the AnnotSV gene transcripts
+ vcfanno_lua // A Lua script to use with vcfanno
+ vcfanno_resources // A comma delimited list of paths to vcfanno resource files
+ vcfanno_toml // The vcfanno config to
+ blacklist // A BED file of blacklisted regions
+ manta_config // A configuration file to be used in Manta
+ svync_dir // A directory containing svync configs (they must end in '.yaml' and contain the full name of the caller)
+ bedgovcf_dir // A directory containing bedgovcf configs (they must end in '.yaml' and contain the full name of the caller)
+ vcfanno_default_dir // A directory containing the default vcfanno configs (they must end in '.toml')
+
+ // boolean inputs
+ annotate // Run annotation on SV and CNV data
+ concat_output // Concatenate all output files
+
+ // value inputs
+ callers // All callers to be used
+ sv_callers_support // How many SV callers are needed to support the variant
+ cnv_callers_support // How many CNV callers are needed to support the variant
+ genome // The genome to use
+ species // The species to be used by VEP
+ vep_assembly // The genome assembly to be downloaded for VEP
+ vep_cache_version // The version of the VEP cache to use
+ annotations_filter // The filter pattern to use after annotation
+ outdir // The output directory of the pipeline
main:
@@ -104,37 +107,81 @@ workflow STRUCTURAL {
count_types = 0 // The amount of different variant types that can be concatenated
//
- // Create input channels from parameters
+ // Input validation
//
- ch_fasta = Channel.fromPath(params.fasta).map{[[id:'fasta'], it]}.collect()
- ch_annotsv_candidate_genes = params.annotsv_candidate_genes ? Channel.fromPath(params.annotsv_candidate_genes).map{[[], it]}.collect() : [[],[]]
- ch_annotsv_gene_transcripts = params.annotsv_gene_transcripts ? Channel.fromPath(params.annotsv_gene_transcripts).map{[[], it]}.collect() : [[],[]]
- ch_vcfanno_lua = params.vcfanno_lua ? Channel.fromPath(params.vcfanno_lua).collect() : []
- ch_catalog = params.expansionhunter_catalog ? Channel.fromPath(params.expansionhunter_catalog).map{[[id:'catalog'], it]}.collect() : [[id:'catalog'],[file("https://github.com/Illumina/ExpansionHunter/raw/master/variant_catalog/grch38/variant_catalog.json", checkIfExists:true)]]
- ch_qdnaseq_male = params.qdnaseq_male ? Channel.fromPath(params.qdnaseq_male).map{[[id:'qdnaseq'], it]}.collect() : [[],[]]
- ch_qdnaseq_female = params.qdnaseq_female ? Channel.fromPath(params.qdnaseq_female).map{[[id:'qdnaseq'], it]}.collect() : [[],[]]
- ch_wisecondorx_reference = params.wisecondorx_reference ? Channel.fromPath(params.wisecondorx_reference).map{[[id:'wisecondorx'], it]}.collect() : [[],[]]
- ch_blacklist = params.blacklist ? Channel.fromPath(params.blacklist).map{[[id:'blacklist'], it]}.collect() : [[],[]]
- ch_manta_config = Channel.fromPath(params.manta_config ?: "${projectDir}/assets/manta_config.ini").collect()
+ // When making changes here, make sure to also update the following files: conf/modules.config
+ def List svCallers = ["delly", "manta", "smoove"] //, "gridss"
+ def List cnvCallers = ["qdnaseq", "wisecondorx"]
+ def List repeatsCallers = ["expansionhunter"]
- val_vcfanno_resources = params.vcfanno_resources ? params.vcfanno_resources.split(",").collect{file(it, checkIfExists:true)}.flatten() : []
+ def List allCallers = svCallers + cnvCallers + repeatsCallers
+ def List annotationCallers = svCallers + cnvCallers
- ch_vep_extra_files = []
+ // Callers that need the sex
+ def List sexCallers = ["expansionhunter", "qdnaseq"]
+
+ def lower_cased_callers = callers.toLowerCase()
+ def callers = lower_cased_callers.tokenize(",").collect {
+ if(it == "all") {return allCallers}
+ if(it == "sv") {return svCallers}
+ if(it == "cnv") {return cnvCallers}
+ if(it == "rre") {return repeatsCallers}
+ return it
+ }.flatten()
+
+ for (caller in callers) {
+ if(!(caller in allCallers)) { error("The caller '${caller}' is not supported please specify a comma delimited list with on or more of the following callers: ${allCallers}".toString()) }
+ }
+
+ def sv_callers_to_use = callers.intersect(svCallers)
+ def cnv_callers_to_use = callers.intersect(cnvCallers)
+ def rre_callers_to_use = callers.intersect(repeatsCallers)
- if(params.vep_phenotypes && params.phenotypes && params.phenotypes_tbi) {
- ch_vep_extra_files.add(file(params.phenotypes, checkIfExists:true))
- ch_vep_extra_files.add(file(params.phenotypes_tbi, checkIfExists:true))
+ if (sv_callers_to_use && sv_callers_support > sv_callers_to_use.size()) {
+ error("The 'sv_callers_support' option (${sv_callers_support}) is higher than the amount of SV callers given (${sv_callers_to_use.size()}). Please adjust 'sv_callers_support' to a value lower of equal to the amount of SV callers to use.")
}
- else if(params.vep_phenotypes) {
- error("Please specify '--phenotypes PATH/TO/PHENOTYPES/FILE' and '--phenotypes_tbi PATH/TO/PHENOTYPES/INDEX/FILE' to use the Phenotypes VEP plugin.")
+
+ if (cnv_callers_to_use && cnv_callers_support > cnv_callers_to_use.size()) {
+ error("The 'cnv_callers_support' option (${cnv_callers_support}) is higher than the amount of CNV callers given (${cnv_callers_to_use.size()}). Please adjust 'cnv_callers_support' to a value lower of equal to the amount of CNV callers to use.")
}
+ if ("qdnaseq" in callers && (!qdnaseq_male || !qdnaseq_female)) {
+ error("Please give the QDNAseq references using 'qdnaseq_male' and 'qdnaseq_female'")
+ }
+
+ if ("wisecondorx" in callers && !wisecondorx_reference) {
+ error("Please give the WisecondorX reference using 'wisecondorx_reference'")
+ }
+
+ //
+ // Create input channels from parameters
+ //
+
+ ch_fasta = Channel.fromPath(fasta).map{[[id:'fasta'], it]}.collect()
+ ch_annotsv_candidate_genes = annotsv_candidate_genes ? Channel.fromPath(annotsv_candidate_genes).map{[[], it]}.collect() : [[],[]]
+ ch_annotsv_gene_transcripts = annotsv_gene_transcripts ? Channel.fromPath(annotsv_gene_transcripts).map{[[], it]}.collect() : [[],[]]
+ ch_vcfanno_lua = vcfanno_lua ? Channel.fromPath(vcfanno_lua).collect() : []
+ ch_catalog = expansionhunter_catalog ? Channel.fromPath(expansionhunter_catalog).map{[[id:'catalog'], it]}.collect() : [[],[]]
+ ch_qdnaseq_male = qdnaseq_male ? Channel.fromPath(qdnaseq_male).map{[[id:'qdnaseq'], it]}.collect() : [[],[]]
+ ch_qdnaseq_female = qdnaseq_female ? Channel.fromPath(qdnaseq_female).map{[[id:'qdnaseq'], it]}.collect() : [[],[]]
+ ch_wisecondorx_reference = wisecondorx_reference ? Channel.fromPath(wisecondorx_reference).map{[[id:'wisecondorx'], it]}.collect() : [[],[]]
+ ch_blacklist = blacklist ? Channel.fromPath(blacklist).map{[[id:'blacklist'], it]}.collect() : [[],[]]
+ ch_manta_config = manta_config ? Channel.fromPath(manta_config).collect() : [[]]
+ ch_svync_configs = svync_dir ? Channel.fromPath("${svync_dir}/*.yaml", checkIfExists:true).collect() : []
+ ch_bedgovcf_configs = bedgovcf_dir ? Channel.fromPath("${bedgovcf_dir}/*.yaml", checkIfExists:true).collect() : []
+
+ val_vcfanno_resources = vcfanno_resources ? vcfanno_resources.split(",").collect{file(it, checkIfExists:true)}.flatten() : []
+ val_default_vcfanno_tomls = vcfanno_default_dir ? files("${vcfanno_default_dir}/*.toml", checkIfExists:true) : []
+ val_vcfanno_toml = vcfanno_toml ? file(vcfanno_toml, checkIfExists:true) : []
+
+ ch_vep_extra_files = []
+
//
// Create optional inputs
//
- if(!params.fai){
+ if(!fai){
SAMTOOLS_FAIDX(
ch_fasta
)
@@ -143,37 +190,37 @@ workflow STRUCTURAL {
ch_fai = SAMTOOLS_FAIDX.out.fai.map{[[id:'fai'], it]}.collect()
}
else {
- ch_fai = Channel.fromPath(params.fai).map{[[id:"fai"],it]}.collect()
- }
-
- if(!params.bwa && "gridss" in callers){
- BWA_INDEX(
- ch_fasta
- )
-
- ch_versions = ch_versions.mix(BWA_INDEX.out.versions)
- ch_bwa_index = BWA_INDEX.out.index.map{[[id:'bwa'], it[1]]}.collect()
- }
- else if(params.bwa && "gridss" in callers) {
- ch_bwa_index_input = Channel.fromPath(params.bwa).map{[[id:"bwa"],it]}.collect()
- if(params.bwa.endsWith(".tar.gz")) {
- UNTAR_BWA(
- ch_bwa_index_input
- )
- ch_versions = ch_versions.mix(UNTAR_BWA.out.versions)
-
- UNTAR_BWA.out.untar
- .collect()
- .set { ch_bwa_index }
- } else {
- ch_bwa_index = ch_bwa_index_input
- }
- }
- else {
- ch_bwa_index = Channel.empty()
+ ch_fai = Channel.fromPath(fai).map{[[id:"fai"],it]}.collect()
}
- if(params.annotate && !params.annotsv_annotations && callers.intersect(GlobalVariables.annotationCallers)) {
+ // if(!bwa && "gridss" in callers){
+ // BWA_INDEX(
+ // ch_fasta
+ // )
+
+ // ch_versions = ch_versions.mix(BWA_INDEX.out.versions)
+ // ch_bwa_index = BWA_INDEX.out.index.map{[[id:'bwa'], it[1]]}.collect()
+ // }
+ // else if(bwa && "gridss" in callers) {
+ // ch_bwa_index_input = Channel.fromPath(bwa).map{[[id:"bwa"],it]}.collect()
+ // if(bwa.endsWith(".tar.gz")) {
+ // UNTAR_BWA(
+ // ch_bwa_index_input
+ // )
+ // ch_versions = ch_versions.mix(UNTAR_BWA.out.versions)
+
+ // UNTAR_BWA.out.untar
+ // .collect()
+ // .set { ch_bwa_index }
+ // } else {
+ // ch_bwa_index = ch_bwa_index_input
+ // }
+ // }
+ // else {
+ // ch_bwa_index = Channel.empty()
+ // }
+
+ if(annotate && !annotsv_annotations && callers.intersect(annotationCallers)) {
ANNOTSV_INSTALLANNOTATIONS()
ch_versions = ch_versions.mix(ANNOTSV_INSTALLANNOTATIONS.out.versions)
@@ -182,9 +229,9 @@ workflow STRUCTURAL {
.collect()
.set { ch_annotsv_annotations }
}
- else if(params.annotate && callers.intersect(GlobalVariables.annotationCallers)) {
- ch_annotsv_annotations_input = Channel.fromPath(params.annotsv_annotations).map{[[id:"annotsv_annotations"], it]}.collect()
- if(params.annotsv_annotations.endsWith(".tar.gz")){
+ else if(annotate && callers.intersect(annotationCallers)) {
+ ch_annotsv_annotations_input = Channel.fromPath(annotsv_annotations).map{[[id:"annotsv_annotations"], it]}.collect()
+ if(annotsv_annotations.endsWith(".tar.gz")){
UNTAR_ANNOTSV(
ch_annotsv_annotations_input
)
@@ -194,23 +241,23 @@ workflow STRUCTURAL {
.collect()
.set { ch_annotsv_annotations }
} else {
- ch_annotsv_annotations = Channel.fromPath(params.annotsv_annotations).map{[[id:"annotsv_annotations"], it]}.collect()
+ ch_annotsv_annotations = Channel.fromPath(annotsv_annotations).map{[[id:"annotsv_annotations"], it]}.collect()
}
}
else {
ch_annotsv_annotations = Channel.empty()
}
- if(!params.vep_cache && params.annotate && callers.intersect(GlobalVariables.annotationCallers)) {
+ if(!vep_cache && annotate && callers.intersect(annotationCallers)) {
ENSEMBLVEP_DOWNLOAD(
- Channel.of([[id:"vep_cache"], params.vep_assembly, params.species, params.vep_cache_version]).collect()
+ Channel.of([[id:"vep_cache"], vep_assembly, species, vep_cache_version]).collect()
)
ch_versions = ch_versions.mix(ENSEMBLVEP_DOWNLOAD.out.versions)
ch_vep_cache = ENSEMBLVEP_DOWNLOAD.out.cache.map{it[1]}.collect()
}
- else if (params.vep_cache && params.annotate && callers.intersect(GlobalVariables.annotationCallers)) {
- ch_vep_cache = Channel.fromPath(params.vep_cache).collect()
+ else if (vep_cache && annotate && callers.intersect(annotationCallers)) {
+ ch_vep_cache = Channel.fromPath(vep_cache).collect()
}
else {
ch_vep_cache = Channel.empty()
@@ -243,7 +290,7 @@ workflow STRUCTURAL {
// Determine the gender if needed
//
- if(callers.intersect(GlobalVariables.sexCallers)) {
+ if(callers.intersect(sexCallers)) {
ch_input_no_sex
.branch {
sex: it[0].sex
@@ -291,8 +338,9 @@ workflow STRUCTURAL {
ch_inputs.crams,
ch_fasta,
ch_fai,
- ch_bwa_index,
- ch_manta_config
+ ch_manta_config,
+ ch_svync_configs,
+ sv_callers_to_use
)
ch_versions = ch_versions.mix(BAM_SV_CALLING.out.versions)
@@ -317,7 +365,9 @@ workflow STRUCTURAL {
ch_qdnaseq_male,
ch_qdnaseq_female,
ch_wisecondorx_reference,
- ch_blacklist
+ ch_blacklist,
+ ch_bedgovcf_configs,
+ cnv_callers_to_use
)
ch_versions = ch_versions.mix(BAM_CNV_CALLING.out.versions)
ch_annotation_input = ch_annotation_input.mix(BAM_CNV_CALLING.out.vcfs)
@@ -327,7 +377,7 @@ workflow STRUCTURAL {
// Annotate the variants
//
- if(params.annotate) {
+ if(annotate) {
VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO(
ch_annotation_input,
ch_inputs.small_variants,
@@ -340,7 +390,13 @@ workflow STRUCTURAL {
ch_vep_extra_files,
ch_vcfanno_lua,
val_vcfanno_resources,
- variant_types
+ variant_types,
+ genome,
+ species,
+ vep_cache_version,
+ annotations_filter,
+ val_vcfanno_toml,
+ val_default_vcfanno_tomls
)
ch_reports = ch_reports.mix(VCF_ANNOTATE_VEP_ANNOTSV_VCFANNO.out.reports)
@@ -354,7 +410,7 @@ workflow STRUCTURAL {
// Estimate repeat sizes
//
- if(callers.intersect(GlobalVariables.repeatsCallers)){
+ if(callers.intersect(repeatsCallers)){
count_types++
@@ -373,7 +429,7 @@ workflow STRUCTURAL {
// Concatenate the VCF files from different types of analysis
//
- if(count_types > 1 && params.concat_output) {
+ if(count_types > 1 && concat_output) {
ch_outputs
.map { meta, vcf, tbi ->
@@ -410,18 +466,15 @@ workflow STRUCTURAL {
// Collate and save software versions
//
softwareVersionsToYAML(ch_versions)
- .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true)
+ .collectFile(storeDir: "${outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true)
.set { ch_collated_versions }
//
// MODULE: MultiQC
//
ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true)
- ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty()
- ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty()
summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json")
ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params))
- ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true)
ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description))
ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml'))
ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions)