diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d2286a7018c..3893bf75737 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,1104 +1,14 @@ -*.nf.test* @nf-core/nf-test -.github/workflows/test.yml @nf-core/nf-test -tags.yml @nf-core/nf-test -tests/config @nf-core/nf-test -modules/nf-core/abacas/** @joseespinosa @drpatelh -modules/nf-core/abricate/run/** @rpetit3 -modules/nf-core/abricate/summary/** @rpetit3 -modules/nf-core/abritamr/run/** @rpetit3 -modules/nf-core/adapterremovalfixprefix/** @jfy133 -modules/nf-core/adapterremoval/** @maxibor @jfy133 -modules/nf-core/admixture/** @atrigila -modules/nf-core/affy/justrma/** @pinin4fjords -modules/nf-core/agat/convertspgff2gtf/** @toniher -modules/nf-core/agat/convertspgxf2gxf/** @toniher -modules/nf-core/agat/spstatistics/** @toniher -modules/nf-core/agat/sqstatbasic/** @toniher -modules/nf-core/agrvate/** @abhi18av -modules/nf-core/allelecounter/** @fullama @fbdtemme -modules/nf-core/ampcombi/** @darcy220606 @louperelo -modules/nf-core/ampir/** @jasmezz -modules/nf-core/amplify/predict/** @louperelo -modules/nf-core/amps/** @jfy133 -modules/nf-core/amrfinderplus/run/** @rpetit3 @louperelo @jfy133 -modules/nf-core/amrfinderplus/update/** @rpetit3 -modules/nf-core/angsd/contamination/** @jbv2 -modules/nf-core/angsd/docounts/** @jfy133 -modules/nf-core/annotsv/annotsv/** @nvnieuwk -modules/nf-core/annotsv/installannotations/** @nvnieuwk -modules/nf-core/antismash/antismashlitedownloaddatabases/** @jasmezz -modules/nf-core/antismash/antismashlite/** @jasmezz -modules/nf-core/arcashla/extract/** @christopher-mohr -modules/nf-core/aria2/** @JoseEspinosa -modules/nf-core/ariba/getref/** @rpetit3 -modules/nf-core/ariba/run/** @rpetit3 -modules/nf-core/arriba/arriba/** @praveenraj2018,@rannick -modules/nf-core/artic/guppyplex/** @joseespinosa @drpatelh -modules/nf-core/artic/minion/** @joseespinosa @drpatelh -modules/nf-core/art/illumina/** @MarieLataretu -modules/nf-core/ascat/** @aasNGC @lassefolkersen @FriederikeHanssen @maxulysse @SusiJo -modules/nf-core/ashlar/** @RobJY @jmuhlich -modules/nf-core/assemblyscan/** @sateeshperi @mjcipriano -modules/nf-core/ataqv/ataqv/** @i-pletenev -modules/nf-core/ataqv/mkarv/** @bjlang -modules/nf-core/atlas/call/** @jfy133 -modules/nf-core/atlasgeneannotationmanipulation/gtf2featureannotation/** @pinin4fjords -modules/nf-core/atlas/pmd/** @maxibor @merszym -modules/nf-core/atlas/recal/** @ltcrod -modules/nf-core/atlas/splitmerge/** @merszym -modules/nf-core/authentict/deam2cont/** @scarlhoff @StephanePeyregne -modules/nf-core/backsub/** @kbestak -modules/nf-core/bacphlip/** @CarsonJM -modules/nf-core/bakta/baktadbdownload/** @jfy133 @jasmezz -modules/nf-core/bakta/bakta/** @rpetit3 @oschwengers @jfy133 -modules/nf-core/bamaligncleaner/** @jfy133 -modules/nf-core/bamcmp/** @kmurat1 @sppearce -modules/nf-core/bamtools/convert/** @sguizard -modules/nf-core/bamtools/split/** @sguizard @matthdsm -modules/nf-core/bamtools/stats/** @lescai -modules/nf-core/bamutil/trimbam/** @jfy133 -modules/nf-core/bandage/image/** @heuermh -modules/nf-core/barrnap/** @danilodileo -modules/nf-core/bases2fastq/** @edmundmiller -modules/nf-core/basicpy/** @FloWuenne -modules/nf-core/bbmap/align/** @erikrikarddaniel -modules/nf-core/bbmap/bbduk/** @MGordon09 -modules/nf-core/bbmap/bbnorm/** @danilodileo -modules/nf-core/bbmap/bbsplit/** @joseespinosa @drpatelh -modules/nf-core/bbmap/clumpify/** @tamuanand -modules/nf-core/bbmap/index/** @daniellundin -modules/nf-core/bbmap/pileup/** @edmundmiller -modules/nf-core/bbmap/sendsketch/** @phanhung2 -modules/nf-core/bcftools/annotate/** @projectoriented @ramprasadn -modules/nf-core/bcftools/call/** @abhi18av @LouisLeNezet -modules/nf-core/bcftools/concat/** @abhi18av @nvnieuwk -modules/nf-core/bcftools/consensus/** @joseespinosa @drpatelh -modules/nf-core/bcftools/convert/** @nvnieuwk @ramprasadn @atrigila -modules/nf-core/bcftools/filter/** @joseespinosa @drpatelh -modules/nf-core/bcftools/index/** @jfy133 -modules/nf-core/bcftools/isec/** @joseespinosa @drpatelh -modules/nf-core/bcftools/merge/** @joseespinosa @drpatelh @nvnieuwk @ramprasadn -modules/nf-core/bcftools/mpileup/** @joseespinosa @drpatelh -modules/nf-core/bcftools/norm/** @abhi18av @ramprasadn -modules/nf-core/bcftools/pluginscatter/** @nvnieuwk -modules/nf-core/bcftools/pluginsplit/** @nvnieuwk -modules/nf-core/bcftools/query/** @abhi18av @drpatelh -modules/nf-core/bcftools/reheader/** @bjohnnyd @jemten @ramprasadn -modules/nf-core/bcftools/roh/** @ramprasadn -modules/nf-core/bcftools/sort/** @Gwennid -modules/nf-core/bcftools/split/** @matthdsm @atrigila -modules/nf-core/bcftools/stats/** @joseespinosa @drpatelh @SusiJo @TCLamnidis -modules/nf-core/bcftools/view/** @abhi18av -modules/nf-core/bcl2fastq/** @matthdsm -modules/nf-core/bclconvert/** @matthdsm -modules/nf-core/beagle5/beagle/** @ashotmarg -modules/nf-core/bedtools/bamtobed/** @yuukiiwa @drpatelh -modules/nf-core/bedtools/closest/** @nvnieuwk -modules/nf-core/bedtools/complement/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/coverage/** @priyanka-surana -modules/nf-core/bedtools/genomecov/** @edmundmiller @sruthipsuresh @drpatelh @sidorov-si @chris-cheshire -modules/nf-core/bedtools/getfasta/** @joseespinosa @drpatelh -modules/nf-core/bedtools/groupby/** @mashehu -modules/nf-core/bedtools/intersect/** @edmundmiller @sruthipsuresh @drpatelh @sidorov-si -modules/nf-core/bedtools/jaccard/** @nvnieuwk -modules/nf-core/bedtools/makewindows/** @kevbrick @nvnieuwk -modules/nf-core/bedtools/map/** @ekushele -modules/nf-core/bedtools/maskfasta/** @joseespinosa @drpatelh -modules/nf-core/bedtools/merge/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/multiinter/** @matthdsm -modules/nf-core/bedtools/shift/** @ekushele -modules/nf-core/bedtools/slop/** @edmundmiller @sruthipsuresh @drpatelh -modules/nf-core/bedtools/sort/** @edmundmiller @sruthipsuresh @drpatelh @chris-cheshire @adamrtalbot -modules/nf-core/bedtools/split/** @nvnieuwk -modules/nf-core/bedtools/subtract/** @sidorov-si -modules/nf-core/bedtools/unionbedg/** @ekushele -modules/nf-core/bioawk/** @jfy133 -modules/nf-core/biobambam/bammarkduplicates2/** @muffato -modules/nf-core/biobambam/bammerge/** @matthdsm -modules/nf-core/biobambam/bamsormadup/** @matthdsm -modules/nf-core/biohansel/** @rpetit3 -modules/nf-core/biscuit/align/** @njspix -modules/nf-core/biscuit/biscuitblaster/** @njspix -modules/nf-core/biscuit/bsconv/** @njspix -modules/nf-core/biscuit/epiread/** @njspix -modules/nf-core/biscuit/index/** @njspix -modules/nf-core/biscuit/mergecg/** @njspix -modules/nf-core/biscuit/pileup/** @njspix -modules/nf-core/biscuit/qc/** @njspix -modules/nf-core/biscuit/vcf2bed/** @njspix -modules/nf-core/bismark/align/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/coverage2cytosine/** @FelixKrueger @ewels -modules/nf-core/bismark/deduplicate/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/genomepreparation/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/methylationextractor/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/report/** @phue @FelixKrueger @ewels -modules/nf-core/bismark/summary/** @phue @FelixKrueger @ewels -modules/nf-core/blast/blastn/** @joseespinosa @drpatelh @vagkaratzas -modules/nf-core/blast/blastp/** @vagkaratzas -modules/nf-core/blast/makeblastdb/** @joseespinosa @drpatelh @vagkaratzas -modules/nf-core/blast/tblastn/** @yumisims @gq2 @vagkaratzas -modules/nf-core/blat/** @d-jch -modules/nf-core/bowtie2/align/** @joseespinosa @drpatelh -modules/nf-core/bowtie2/build/** @joseespinosa @drpatelh -modules/nf-core/bowtie/align/** @kevinmenden -modules/nf-core/bowtie/build/** @kevinmenden @drpatelh -modules/nf-core/bracken/bracken/** @Midnighter -modules/nf-core/bracken/combinebrackenoutputs/** @jfy133 -modules/nf-core/busco/** @priyanka-surana @charles-plessy @mahesh-panchal @muffato @jvhagey -modules/nf-core/bwa/aln/** @jfy133 -modules/nf-core/bwa/index/** @drpatelh @maxulysse -modules/nf-core/bwamem2/index/** @maxulysse -modules/nf-core/bwamem2/mem/** @maxulysse -modules/nf-core/bwa/mem/** @drpatelh @jeremy1805 -modules/nf-core/bwameth/align/** @phue -modules/nf-core/bwameth/index/** @phue -modules/nf-core/bwa/sampe/** @jfy133 -modules/nf-core/bwa/samse/** @jfy133 -modules/nf-core/cadd/** @ramprasadn -modules/nf-core/calder2/** @lucananni93 -modules/nf-core/canu/** @scorreard -modules/nf-core/cat/cat/** @erikrikarddaniel @FriederikeHanssen -modules/nf-core/cat/fastq/** @joseespinosa @drpatelh -modules/nf-core/cdhit/cdhitest/** @Joon-Klaps -modules/nf-core/cdhit/cdhit/** @timslittle -modules/nf-core/cellpose/** @josenimo -modules/nf-core/cellrangeratac/count/** @ggabernet @edmundmiller @heylf -modules/nf-core/cellrangeratac/mkfastq/** @ggabernet @edmundmiller @RHReynolds @heylf -modules/nf-core/cellrangeratac/mkref/** @ggabernet @heylf -modules/nf-core/cellranger/count/** @ggabernet @edmundmiller -modules/nf-core/cellranger/mkfastq/** @ggabernet @edmundmiller @RHReynolds -modules/nf-core/cellranger/mkgtf/** @ggabernet @edmundmiller -modules/nf-core/cellranger/mkref/** @ggabernet -modules/nf-core/cellranger/mkvdjref/** @ggabernet @klkeys -modules/nf-core/cellranger/multi/** @klkeys -modules/nf-core/cellranger/vdj/** @ggabernet @edmundmiller @klkeys -modules/nf-core/centrifuge/centrifuge/** @sofstam @jfy133 @sateeshperi -modules/nf-core/centrifuge/kreport/** @sofstam @jfy133 -modules/nf-core/checkm/lineagewf/** @jfy133 -modules/nf-core/checkm/qa/** @jfy133 -modules/nf-core/checkv/downloaddatabase/** @Joon-Klaps -modules/nf-core/checkv/endtoend/** @Joon-Klaps -modules/nf-core/checkv/updatedatabase/** @Joon-Klaps -modules/nf-core/chopper/** @FynnFreyer -modules/nf-core/chromap/chromap/** @mahesh-panchal @joseespinosa -modules/nf-core/chromap/index/** @mahesh-panchal @joseespinosa -modules/nf-core/chromograph/** @ramprasadn -modules/nf-core/circexplorer2/annotate/** @BarryDigby -modules/nf-core/circexplorer2/parse/** @BarryDigby -modules/nf-core/clippy/** @marc-jones @CharlotteAnne -modules/nf-core/clonalframeml/** @rpetit3 -modules/nf-core/clustalo/align/** @luisas -modules/nf-core/clustalo/guidetree/** @luisas -modules/nf-core/cmseq/polymut/** @maxibor -modules/nf-core/cnvkit/access/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/antitarget/** @adamrtalbot @priesgo @SusiJo -modules/nf-core/cnvkit/batch/** @adamrtalbot @drpatelh @fbdtemme @kaurravneet4123 @KevinMenden @lassefolkersen @MaxUlysse @priesgo @SusiJo -modules/nf-core/cnvkit/call/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/export/** @adamrtalbot @priesgo -modules/nf-core/cnvkit/genemetrics/** @adamrtalbot @marrip @priesgo -modules/nf-core/cnvkit/reference/** @adamrtalbot @priesgo @SusiJo -modules/nf-core/cnvkit/target/** @adamrtalbot @priesgo -modules/nf-core/cnvnator/cnvnator/** @ramprasadn -modules/nf-core/cnvnator/convert2vcf/** @ramprasadn -modules/nf-core/cnvpytor/callcnvs/** @sima-r -modules/nf-core/cnvpytor/histogram/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/importreaddepth/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/partition/** @sima-r @ramprasadn -modules/nf-core/cnvpytor/view/** @sima-r @ramprasadn -modules/nf-core/concoct/concoctcoveragetable/** @jfy133 -modules/nf-core/concoct/concoct/** @jfy133 -modules/nf-core/concoct/cutupfasta/** @jfy133 -modules/nf-core/concoct/extractfastabins/** @jfy133 -modules/nf-core/concoct/mergecutupclustering/** @jfy133 -modules/nf-core/conifer/** @icaromsc @rpetit3 -modules/nf-core/controlfreec/assesssignificance/** @FriederikeHanssen -modules/nf-core/controlfreec/freec2bed/** @FriederikeHanssen -modules/nf-core/controlfreec/freec2circos/** @FriederikeHanssen -modules/nf-core/controlfreec/freec/** @FriederikeHanssen -modules/nf-core/controlfreec/makegraph/** @FriederikeHanssen -modules/nf-core/cooler/balance/** @nservant @muffato -modules/nf-core/cooler/cload/** @jianhong @muffato -modules/nf-core/cooler/digest/** @jianhong -modules/nf-core/cooler/dump/** @jianhong @muffato -modules/nf-core/cooler/makebins/** @nservant @muffato -modules/nf-core/cooler/merge/** @jianhong -modules/nf-core/cooler/zoomify/** @jianhong -modules/nf-core/coreograph/** @arozhada @MargotCh -modules/nf-core/crisprcleanr/normalize/** @LaurenceKuhl -modules/nf-core/crumble/** @priyanka-surana -modules/nf-core/csvtk/concat/** @rpetit3 -modules/nf-core/csvtk/join/** @anoronh4 -modules/nf-core/csvtk/split/** @SusiJo -modules/nf-core/custom/dumpsoftwareversions/** @drpatelh @grst -modules/nf-core/custom/getchromsizes/** @tamara-hodgetts @chris-cheshire @muffato -modules/nf-core/custom/matrixfilter/** @pinin4fjords -modules/nf-core/custom/sratoolsncbisettings/** @Midnighter -modules/nf-core/custom/tabulartogseacls/** @pinin4fjords -modules/nf-core/custom/tabulartogseagct/** @pinin4fjords -modules/nf-core/cutadapt/** @drpatelh @kevinmenden -modules/nf-core/cutesv/** @christopher-hakkaart @yuukiiwa -modules/nf-core/damageprofiler/** @jfy133 -modules/nf-core/dastool/dastool/** @maxibor @jfy133 -modules/nf-core/dastool/fastatocontig2bin/** @maxibor @jfy133 -modules/nf-core/dastool/scaffolds2bin/** @maxibor -modules/nf-core/dedup/** @jfy133 -modules/nf-core/deeparg/downloaddata/** @jfy133 -modules/nf-core/deeparg/predict/** @jfy133 -modules/nf-core/deepbgc/download/** @louperelo -modules/nf-core/deepbgc/pipeline/** @louperelo @jfy133 -modules/nf-core/deepcell/mesmer/** @migueLib @chiarasch -modules/nf-core/deeptmhmm/** @vagkaratzas -modules/nf-core/deeptools/bamcoverage/** @FriederikeHanssen @SusiJo -modules/nf-core/deeptools/computematrix/** @jeremy1805 @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/multibamsummary/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotcorrelation/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotfingerprint/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/plotheatmap/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deeptools/plotpca/** @tamara-hodgetts @chris-cheshire -modules/nf-core/deeptools/plotprofile/** @edmundmiller @drpatelh @joseespinosa -modules/nf-core/deepvariant/** @abhi18av @ramprasadn -modules/nf-core/delly/call/** @projectoriented @nvnieuwk -modules/nf-core/deseq2/differential/** @pinin4fjords -modules/nf-core/diamond/blastp/** @spficklin @jfy133 -modules/nf-core/diamond/blastx/** @spficklin @jfy133 @mjamy -modules/nf-core/diamond/makedb/** @spficklin -modules/nf-core/dragmap/align/** @edmundmiller -modules/nf-core/dragmap/hashtable/** @edmundmiller -modules/nf-core/dragonflye/** @rpetit3 -modules/nf-core/dshbio/exportsegments/** @heuermh -modules/nf-core/dshbio/filterbed/** @heuermh -modules/nf-core/dshbio/filtergff3/** @heuermh -modules/nf-core/dshbio/splitbed/** @heuermh -modules/nf-core/dshbio/splitgff3/** @heuermh -modules/nf-core/duphold/** @nvnieuwk -modules/nf-core/ectyper/** @rpetit3 -modules/nf-core/eido/convert/** @rafalstepien -modules/nf-core/eido/validate/** @rafalstepien -modules/nf-core/eigenstratdatabasetools/eigenstratsnpcoverage/** @TCLamnidis -modules/nf-core/eklipse/** @Lucpen -modules/nf-core/elprep/filter/** @matthdsm -modules/nf-core/elprep/merge/** @matthdsm -modules/nf-core/elprep/split/** @matthdsm -modules/nf-core/emboss/cons/** @Joon-Klaps -modules/nf-core/emboss/revseq/** @erikrikarddaniel -modules/nf-core/emboss/seqret/** @MillironX -modules/nf-core/emmtyper/** @rpetit3 -modules/nf-core/endorspy/** @aidaanva -modules/nf-core/ensemblvep/download/** @maxulysse -modules/nf-core/ensemblvep/filtervep/** @ramprasadn -modules/nf-core/ensemblvep/vep/** @maxulysse @matthdsm @nvnieuwk -modules/nf-core/entrezdirect/esearch/** @alxndrdiaz -modules/nf-core/entrezdirect/esummary/** @alxndrdiaz -modules/nf-core/entrezdirect/xtract/** @alxndrdiaz -modules/nf-core/epang/place/** @erikrikarddaniel -modules/nf-core/epang/split/** @erikrikarddaniel -modules/nf-core/expansionhunterdenovo/merge/** @nvnieuwk -modules/nf-core/expansionhunterdenovo/profile/** @nvnieuwk -modules/nf-core/expansionhunter/** @jemten -modules/nf-core/falco/** @lucacozzuto -modules/nf-core/famsa/align/** @luisas -modules/nf-core/famsa/guidetree/** @luisas -modules/nf-core/faqcs/** @mjcipriano @sateeshperi @hseabolt -modules/nf-core/fargene/** @louperelo -modules/nf-core/fastani/** @abhi18av -modules/nf-core/fastawindows/** @muffato -modules/nf-core/fastk/fastk/** @mahesh-panchal -modules/nf-core/fastk/histex/** @mahesh-panchal -modules/nf-core/fastk/merge/** @mahesh-panchal -modules/nf-core/fastp/** @drpatelh @kevinmenden -modules/nf-core/fastqc/** @drpatelh @grst @FelixKrueger -modules/nf-core/fastqscan/** @rpetit3 -modules/nf-core/fasttree/** @aunderwo -modules/nf-core/fcs/fcsadaptor/** @d4straub -modules/nf-core/fcs/fcsgx/** @tillenglert -modules/nf-core/ffq/** @drpatelh -modules/nf-core/fgbio/callduplexconsensusreads/** @lescai -modules/nf-core/fgbio/callmolecularconsensusreads/** @sruthipsuresh -modules/nf-core/fgbio/fastqtobam/** @lescai @matthdsm -modules/nf-core/fgbio/filterconsensusreads/** @lescai -modules/nf-core/fgbio/groupreadsbyumi/** @lescai -modules/nf-core/fgbio/sortbam/** @sruthipsuresh -modules/nf-core/fgbio/zipperbams/** @lescai -modules/nf-core/filtlong/** @d4straub @sofstam -modules/nf-core/flash/** @Erkison -modules/nf-core/flye/** @mirpedrol -modules/nf-core/fq/generate/** @adamrtalbot -modules/nf-core/fq/lint/** @adamrtalbot -modules/nf-core/fq/subsample/** @adamrtalbot -modules/nf-core/fqtk/** @nh13 @sam-white04 -modules/nf-core/freebayes/** @maxibor @FriederikeHanssen @maxulysse -modules/nf-core/freyja/boot/** @Joon-Klaps -modules/nf-core/freyja/demix/** @Joon-Klaps -modules/nf-core/freyja/update/** @Joon-Klaps -modules/nf-core/freyja/variants/** @Joon-Klaps -modules/nf-core/galah/** @prototaxites -modules/nf-core/gamma/gamma/** @sateeshperi @rastanton @jvhagey -modules/nf-core/gangstr/** @nvnieuwk -modules/nf-core/ganon/buildcustom/** @jfy133 -modules/nf-core/ganon/classify/** @jfy133 -modules/nf-core/ganon/report/** @jfy133 -modules/nf-core/ganon/table/** @jfy133 -modules/nf-core/gappa/examineassign/** @erikrikarddaniel -modules/nf-core/gappa/examinegraft/** @erikrikarddaniel -modules/nf-core/gappa/examineheattree/** @erikrikarddaniel -modules/nf-core/gatk4/annotateintervals/** @nvnieuwk -modules/nf-core/gatk4/applybqsrspark/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/applybqsr/** @yocra3 @FriederikeHanssen -modules/nf-core/gatk4/applyvqsr/** @GCJMackenzie -modules/nf-core/gatk4/asereadcounter/** @Lucpen -modules/nf-core/gatk4/baserecalibratorspark/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/baserecalibrator/** @yocra3 @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/bedtointervallist/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/calculatecontamination/** @GCJMackenzie @maxulysse -modules/nf-core/gatk4/calibratedragstrmodel/** @nvnieuwk -modules/nf-core/gatk4/cnnscorevariants/** @FriederikeHanssen -modules/nf-core/gatk4/collectreadcounts/** @nvnieuwk -modules/nf-core/gatk4/collectsvevidence/** @nvnieuwk -modules/nf-core/gatk4/combinegvcfs/** @sateeshperi @mjcipriano @hseabolt @maxulysse -modules/nf-core/gatk4/composestrtablefile/** @nvnieuwk -modules/nf-core/gatk4/condensedepthevidence/** @nvnieuwk -modules/nf-core/gatk4/createreadcountpanelofnormals/** @ramprasadn -modules/nf-core/gatk4/createsequencedictionary/** @maxulysse @ramprasadn -modules/nf-core/gatk4/createsomaticpanelofnormals/** @GCJMackenzie -modules/nf-core/gatk4/denoisereadcounts/** @ramprasadn -modules/nf-core/gatk4/determinegermlinecontigploidy/** @nvnieuwk -modules/nf-core/gatk4/estimatelibrarycomplexity/** @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/fastqtosam/** @ntoda03 -modules/nf-core/gatk4/filterintervals/** @ryanjameskennedy @ViktorHy -modules/nf-core/gatk4/filtermutectcalls/** @GCJMackenzie @maxulysse @ramprasadn -modules/nf-core/gatk4/filtervarianttranches/** @FriederikeHanssen -modules/nf-core/gatk4/gatherbqsrreports/** @FriederikeHanssen -modules/nf-core/gatk4/gatherpileupsummaries/** @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/genomicsdbimport/** @GCJMackenzie -modules/nf-core/gatk4/genotypegvcfs/** @santiagorevale @maxulysse -modules/nf-core/gatk4/germlinecnvcaller/** @ryanjameskennedy @ViktorHy -modules/nf-core/gatk4/getpileupsummaries/** @GCJMackenzie -modules/nf-core/gatk4/haplotypecaller/** @suzannejin @FriederikeHanssen -modules/nf-core/gatk4/indexfeaturefile/** @santiagorevale -modules/nf-core/gatk4/intervallisttobed/** @FriederikeHanssen -modules/nf-core/gatk4/intervallisttools/** @praveenraj2018 -modules/nf-core/gatk4/learnreadorientationmodel/** @GCJMackenzie -modules/nf-core/gatk4/leftalignandtrimvariants/** @adamrtalbot -modules/nf-core/gatk4/markduplicates/** @ajodeh-juma @FriederikeHanssen @maxulysse -modules/nf-core/gatk4/markduplicatesspark/** @ajodeh-juma @FriederikeHanssen @maxulysse @SusiJo -modules/nf-core/gatk4/mergebamalignment/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/mergemutectstats/** @FriederikeHanssen -modules/nf-core/gatk4/mergevcfs/** @kevinmenden -modules/nf-core/gatk4/mutect2/** @GCJMackenzie @ramprasadn -modules/nf-core/gatk4/postprocessgermlinecnvcalls/** @ryanjameskennedy -modules/nf-core/gatk4/preprocessintervals/** @ryanjameskennedy @ViktorHy @ramprasadn -modules/nf-core/gatk4/printreads/** @ramprasadn -modules/nf-core/gatk4/printsvevidence/** @nvnieuwk -modules/nf-core/gatk4/reblockgvcf/** @nvnieuwk -modules/nf-core/gatk4/revertsam/** @kevinmenden -modules/nf-core/gatk4/samtofastq/** @kevinmenden -modules/nf-core/gatk4/selectvariants/** @mjcipriano @ramprasadn -modules/nf-core/gatk4/shiftfasta/** @ramprasadn -modules/nf-core/gatk4/sitedepthtobaf/** @nvnieuwk -modules/nf-core/gatk4/splitcram/** @nvnieuwk -modules/nf-core/gatk4/splitintervals/** @nvnieuwk @ramprasadn -modules/nf-core/gatk4/splitncigarreads/** @kevinmenden -modules/nf-core/gatk4/svannotate/** @nvnieuwk -modules/nf-core/gatk4/svcluster/** @nvnieuwk -modules/nf-core/gatk4/variantfiltration/** @kevinmenden @ramprasadn -modules/nf-core/gatk4/variantrecalibrator/** @GCJMackenzie @nickhsmith -modules/nf-core/gatk/indelrealigner/** @jfy133 -modules/nf-core/gatk/realignertargetcreator/** @jfy133 -modules/nf-core/gatk/unifiedgenotyper/** @ilight1542 @jfy133 -modules/nf-core/gawk/** @nvnieuwk -modules/nf-core/gecco/run/** @jfy133 -modules/nf-core/gem2/gem2bedmappability/** @nvnieuwk -modules/nf-core/gem2/gemindexer/** @nvnieuwk -modules/nf-core/gem2/gemmappability/** @nvnieuwk -modules/nf-core/gem3/gem3indexer/** @miqalvarez -modules/nf-core/genescopefk/** @mahesh-panchal -modules/nf-core/genmap/index/** @jianhong @nvnieuwk -modules/nf-core/genmap/map/** @jianhong @nvnieuwk -modules/nf-core/genmod/annotate/** @ramprasadn -modules/nf-core/genmod/compound/** @ramprasadn -modules/nf-core/genmod/models/** @ramprasadn -modules/nf-core/genmod/score/** @ramprasadn -modules/nf-core/genomad/download/** @CarsonJM -modules/nf-core/genomad/endtoend/** @CarsonJM -modules/nf-core/genomescope2/** @mahesh-panchal -modules/nf-core/genotyphi/parse/** @rpetit3 -modules/nf-core/genrich/** @JoseEspinosa @samuelruizperez -modules/nf-core/geoquery/getgeo/** @azedinez @pinin4fjords -modules/nf-core/gfaffix/** @heuermh -modules/nf-core/gfastats/** @mahesh-panchal -modules/nf-core/gfatools/gfa2fa/** @mahesh-panchal -modules/nf-core/gfatools/stat/** @mahesh-panchal -modules/nf-core/gffcompare/** @jemten -modules/nf-core/gffread/** @edmundmiller -modules/nf-core/gget/gget/** @adamrtalbot -modules/nf-core/glimpse2/chunk/** @louislenezet -modules/nf-core/glimpse2/concordance/** @louislenezet -modules/nf-core/glimpse2/ligate/** @louislenezet -modules/nf-core/glimpse2/phase/** @LouisLeNezet -modules/nf-core/glimpse2/splitreference/** @LouisLeNezet -modules/nf-core/glimpse/chunk/** @louislenezet -modules/nf-core/glimpse/concordance/** @louislenezet -modules/nf-core/glimpse/ligate/** @louislenezet -modules/nf-core/glimpse/phase/** @louislenezet -modules/nf-core/glimpse/sample/** @louislenezet -modules/nf-core/glnexus/** @ramprasadn -modules/nf-core/gnu/sort/** @DLBPointon -modules/nf-core/goat/taxonsearch/** @alxndrdiaz @muffato -modules/nf-core/goleft/indexcov/** @lindenb -modules/nf-core/goleft/indexsplit/** @matthdsm -modules/nf-core/graphmap2/align/** @yuukiiwa @drpatelh -modules/nf-core/graphmap2/index/** @yuukiiwa @drpatelh -modules/nf-core/graphtyper/genotype/** @zachary-foster -modules/nf-core/graphtyper/vcfconcatenate/** @zachary-foster -modules/nf-core/gridss/gridss/** @nvnieuwk -modules/nf-core/gsea/gsea/** @pinin4fjords -modules/nf-core/gstama/collapse/** @sguizard -modules/nf-core/gstama/merge/** @sguizard -modules/nf-core/gstama/polyacleanup/** @sguizard -modules/nf-core/gtdbtk/classifywf/** @skrakau @abhi18av -modules/nf-core/gubbins/** @avantonder -modules/nf-core/gunc/downloaddb/** @jfy133 -modules/nf-core/gunc/mergecheckm/** @jfy133 -modules/nf-core/gunc/run/** @jfy133 -modules/nf-core/gunzip/** @joseespinosa @drpatelh @jfy133 -modules/nf-core/gvcftools/extractvariants/** @nvnieuwk -modules/nf-core/hamronization/abricate/** @jasmezz -modules/nf-core/hamronization/amrfinderplus/** @louperelo -modules/nf-core/hamronization/deeparg/** @jfy133 -modules/nf-core/hamronization/fargene/** @jfy133 -modules/nf-core/hamronization/rgi/** @louperelo -modules/nf-core/hamronization/summarize/** @jfy133 -modules/nf-core/hapibd/** @ashotmarg -modules/nf-core/haplocheck/** @lmtani -modules/nf-core/haplogrep2/classify/** @lucpen -modules/nf-core/happy/happy/** @nvnieuwk -modules/nf-core/happy/prepy/** @nvnieuwk -modules/nf-core/hicap/** @rpetit3 -modules/nf-core/hicexplorer/hicpca/** @jianhong -modules/nf-core/hifiasm/** @sidorov-si @scorreard -modules/nf-core/hisat2/align/** @ntoda03 @ramprasadn -modules/nf-core/hisat2/build/** @ntoda03 -modules/nf-core/hisat2/extractsplicesites/** @ntoda03 @ramprasadn -modules/nf-core/hlala/preparegraph/** @mapo9 -modules/nf-core/hlala/typing/** @mapo9 -modules/nf-core/hmmcopy/gccounter/** @sppearce @adamrtalbot -modules/nf-core/hmmcopy/generatemap/** @sppearce @adamrtalbot -modules/nf-core/hmmcopy/mapcounter/** @sppearce -modules/nf-core/hmmcopy/readcounter/** @sppearce -modules/nf-core/hmmer/eslalimask/** @erikrikarddaniel -modules/nf-core/hmmer/eslreformat/** @erikrikarddaniel -modules/nf-core/hmmer/hmmalign/** @erikrikarddaniel @jfy133 -modules/nf-core/hmmer/hmmbuild/** @erikrikarddaniel -modules/nf-core/hmmer/hmmfetch/** @erikrikarddaniel -modules/nf-core/hmmer/hmmsearch/** @Midnighter -modules/nf-core/hmtnote/annotate/** @sysbiocoder -modules/nf-core/homer/annotatepeaks/** @drpatelh @kevinmenden -modules/nf-core/homer/findpeaks/** @edmundmiller -modules/nf-core/homer/maketagdirectory/** @edmundmiller -modules/nf-core/homer/makeucscfile/** @edmundmiller -modules/nf-core/homer/pos2bed/** @edmundmiller -modules/nf-core/hpsuissero/** @rpetit3 -modules/nf-core/htseq/count/** @zehrahazalsezer -modules/nf-core/hypo/** @remiolsen -modules/nf-core/ichorcna/createpon/** @sppearce -modules/nf-core/ichorcna/run/** @sppearce -modules/nf-core/icountmini/metagene/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/peaks/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/segment/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/sigxls/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/icountmini/summary/** @marc-jones @chris-cheshire @charlotteanne -modules/nf-core/idr/** @drpatelh @joseespinosa -modules/nf-core/igv/js/** @mirpedrol -modules/nf-core/ilastik/multicut/** @FloWuenne -modules/nf-core/ilastik/pixelclassification/** @FloWuenne -modules/nf-core/instrain/compare/** @margotl9 @CarsonJM -modules/nf-core/instrain/profile/** @mrolm -modules/nf-core/interproscan/** @toniher -modules/nf-core/iphop/download/** @CarsonJM -modules/nf-core/iphop/predict/** @CarsonJM -modules/nf-core/iqtree/** @avantonder @aunderwo -modules/nf-core/islandpath/** @jvfe -modules/nf-core/ismapper/** @rpetit3 -modules/nf-core/isoseq3/cluster/** @sguizard -modules/nf-core/isoseq3/refine/** @sguizard -modules/nf-core/ivar/consensus/** @andersgs @drpatelh -modules/nf-core/ivar/trim/** @andersgs @drpatelh -modules/nf-core/ivar/variants/** @andersgs @drpatelh -modules/nf-core/jasminesv/** @nvnieuwk -modules/nf-core/jupyternotebook/** @grst -modules/nf-core/kaiju/kaiju2krona/** @MillironX -modules/nf-core/kaiju/kaiju2table/** @sofstam @talnor @jfy133 -modules/nf-core/kaiju/kaiju/** @talnor @sofstam @jfy133 -modules/nf-core/kalign/align/** @luisas -modules/nf-core/kallistobustools/count/** @flowuenne -modules/nf-core/kallistobustools/ref/** @flowuenne -modules/nf-core/kallisto/index/** @ggabernet -modules/nf-core/kallisto/quant/** @anoronh4 -modules/nf-core/kat/hist/** @mahesh-panchal -modules/nf-core/khmer/normalizebymedian/** @erikrikarddaniel -modules/nf-core/khmer/uniquekmers/** @JoseEspinosa -modules/nf-core/kleborate/** @abhi18av @rpetit3 -modules/nf-core/kmcp/compute/** @sofstam -modules/nf-core/kmcp/index/** @sofstam -modules/nf-core/kmcp/merge/** @sofstam -modules/nf-core/kmcp/profile/** @sofstam -modules/nf-core/kmcp/search/** @sofstam -modules/nf-core/kofamscan/** @toniher -modules/nf-core/kraken2/kraken2/** @joseespinosa @drpatelh -modules/nf-core/krakentools/combinekreports/** @jfy133 -modules/nf-core/krakentools/kreport2krona/** @MillironX -modules/nf-core/krakenuniq/build/** @jfy133 -modules/nf-core/krakenuniq/download/** @jfy133 -modules/nf-core/krakenuniq/preloadedkrakenuniq/** @mjamy @Midnighter -modules/nf-core/krona/kronadb/** @mjakobs -modules/nf-core/krona/ktimporttaxonomy/** @mjakobs -modules/nf-core/krona/ktimporttext/** @jianhong -modules/nf-core/krona/ktupdatetaxonomy/** @mjakobs -modules/nf-core/last/dotplot/** @charles-plessy -modules/nf-core/last/lastal/** @charles-plessy -modules/nf-core/last/lastdb/** @charles-plessy -modules/nf-core/last/mafconvert/** @aleksandrabliznina -modules/nf-core/last/mafswap/** @charles-plessy -modules/nf-core/last/postmask/** @charles-plessy -modules/nf-core/last/split/** @aleksandrabliznina -modules/nf-core/last/train/** @aleksandrabliznina -modules/nf-core/learnmsa/align/** @luisas -modules/nf-core/leehom/** @jfy133 -modules/nf-core/legsta/** @rpetit3 -modules/nf-core/lima/** @sguizard -modules/nf-core/limma/differential/** @pinin4fjords -modules/nf-core/lissero/** @rpetit3 -modules/nf-core/lofreq/call/** @bjohnnyd -modules/nf-core/lofreq/callparallel/** @kaurravneet4123 @bjohnnyd -modules/nf-core/lofreq/filter/** @bjohnnyd -modules/nf-core/lofreq/indelqual/** @kaurravneet4123 -modules/nf-core/lofreq/somatic/** @nevinwu -modules/nf-core/macrel/contigs/** @darcy220606 -modules/nf-core/macs2/callpeak/** @ntoda03 @JoseEspinosa @jianhong -modules/nf-core/mafft/** @MillironX -modules/nf-core/mageck/count/** @LaurenceKuhl -modules/nf-core/mageck/mle/** @LaurenceKuhl -modules/nf-core/mageck/test/** @LaurenceKuhl -modules/nf-core/malt/build/** @jfy133 -modules/nf-core/maltextract/** @jfy133 -modules/nf-core/malt/run/** @jfy133 -modules/nf-core/manta/convertinversion/** @FriederikeHanssen -modules/nf-core/manta/germline/** @maxulysse @ramprasadn @nvnieuwk -modules/nf-core/manta/somatic/** @FriederikeHanssen @nvnieuwk -modules/nf-core/manta/tumoronly/** @maxulysse @nvnieuwk -modules/nf-core/mapad/index/** @jch-13 -modules/nf-core/mapad/map/** @jch-13 -modules/nf-core/mapdamage2/** @darcy220606 -modules/nf-core/mash/dist/** @rpetit3 -modules/nf-core/mash/screen/** @mahesh-panchal -modules/nf-core/mash/sketch/** @thanhleviet -modules/nf-core/mashtree/** @rpetit3 -modules/nf-core/maxbin2/** @jfy133 -modules/nf-core/maxquant/lfq/** @veitveit -modules/nf-core/mcquant/** @FloWuenne -modules/nf-core/mcroni/** @rpetit3 -modules/nf-core/md5sum/** @matthdsm -modules/nf-core/medaka/** @avantonder -modules/nf-core/megahit/** @jfy133 -modules/nf-core/megan/daa2info/** @jfy133 -modules/nf-core/megan/rma2info/** @jfy133 -modules/nf-core/meningotype/** @rpetit3 -modules/nf-core/merquryfk/katcomp/** @mahesh-panchal -modules/nf-core/merquryfk/katgc/** @mahesh-panchal -modules/nf-core/merquryfk/merquryfk/** @mahesh-panchal -modules/nf-core/merquryfk/ploidyplot/** @mahesh-panchal -modules/nf-core/merqury/** @mahesh-panchal -modules/nf-core/meryl/count/** @mahesh-panchal -modules/nf-core/meryl/histogram/** @mahesh-panchal -modules/nf-core/meryl/unionsum/** @mahesh-panchal -modules/nf-core/metabat2/jgisummarizebamcontigdepths/** @maxibor -modules/nf-core/metabat2/metabat2/** @maxibor @jfy133 -modules/nf-core/metaeuk/easypredict/** @prototaxites -modules/nf-core/metaphlan3/mergemetaphlantables/** @jfy133 -modules/nf-core/metaphlan3/metaphlan3/** @MGordon09 -modules/nf-core/metaphlan/makedb/** @LilyAnderssonLee -modules/nf-core/metaphlan/mergemetaphlantables/** @jfy133 @LilyAnderssonLee -modules/nf-core/metaphlan/metaphlan/** @MGordon09 @LilyAnderssonLee -modules/nf-core/methyldackel/extract/** @phue -modules/nf-core/methyldackel/mbias/** @phue -modules/nf-core/midas/run/** @rpetit3 -modules/nf-core/mindagap/mindagap/** @ViriatoII @flowuenne -modules/nf-core/minia/** @drpatelh @kevinmenden -modules/nf-core/miniasm/** @avantonder -modules/nf-core/minimap2/align/** @heuermh @sofstam @sateeshperi @jfy133 -modules/nf-core/minimap2/index/** @yuukiiwa @drpatelh -modules/nf-core/miniprot/align/** @yumisims @muffato -modules/nf-core/miniprot/index/** @yumisims @muffato -modules/nf-core/miranda/** @BarryDigby -modules/nf-core/mitohifi/findmitoreference/** @verku -modules/nf-core/mitohifi/mitohifi/** @ksenia-krasheninnikova -modules/nf-core/mlst/** @lskatz @tseemann -modules/nf-core/mmseqs/cluster/** @Joon-Klaps -modules/nf-core/mmseqs/createdb/** @Joon-Klaps -modules/nf-core/mmseqs/createindex/** @JoseEspinosa -modules/nf-core/mmseqs/createtsv/** @Joon-Klaps -modules/nf-core/mmseqs/databases/** @prototaxites -modules/nf-core/mmseqs/easysearch/** @luisas -modules/nf-core/mmseqs/linclust/** @vagkaratzas -modules/nf-core/mmseqs/search/** @Joon-Klaps -modules/nf-core/mmseqs/tsv2exprofiledb/** @JoseEspinosa -modules/nf-core/mobsuite/recon/** @rpetit3 -modules/nf-core/mosdepth/** @joseespinosa @drpatelh @ramprasadn @matthdsm -modules/nf-core/motus/downloaddb/** @jianhong -modules/nf-core/motus/merge/** @jfy133 -modules/nf-core/motus/profile/** @jianhong -modules/nf-core/msisensor2/msi/** @adamrtalbot -modules/nf-core/msisensor2/scan/** @adamrtalbot -modules/nf-core/msisensor/msi/** @kevbrick -modules/nf-core/msisensorpro/msisomatic/** @FriederikeHanssen -modules/nf-core/msisensorpro/scan/** @FriederikeHanssen -modules/nf-core/msisensor/scan/** @kevbrick -modules/nf-core/mtnucratio/** @louperelo -modules/nf-core/multiqc/** @abhi18av @bunop @drpatelh @jfy133 @ewels -modules/nf-core/multivcfanalyzer/** @jfy133 -modules/nf-core/mummer/** @mjcipriano @sateeshperi -modules/nf-core/muscle5/super5/** @alessiovignoli -modules/nf-core/muscle/** @MGordon -modules/nf-core/mykrobe/predict/** @rpetit3 -modules/nf-core/nanocomp/** @paulwolk -modules/nf-core/nanolyse/** @yuukiiwa -modules/nf-core/nanomonsv/parse/** @awgymer -modules/nf-core/nanoplot/** @drpatelh @yuukiiwa -modules/nf-core/ncbigenomedownload/** @rpetit3 -modules/nf-core/nextclade/datasetget/** @antunderwood @drpatelh -modules/nf-core/nextclade/run/** @antunderwood @drpatelh -modules/nf-core/nextgenmap/** @cmatkhan -modules/nf-core/ngmaster/** @rpetit3 -modules/nf-core/ngmerge/** @charlotteanne @jsh58 -modules/nf-core/ngsbits/samplegender/** @nvnieuwk -modules/nf-core/ngscheckmate/fastq/** @sppearce -modules/nf-core/ngscheckmate/ncm/** @sppearce -modules/nf-core/ngscheckmate/patterngenerator/** @sppearce -modules/nf-core/ngscheckmate/vafncm/** @sppearce -modules/nf-core/nonpareil/nonpareil/** @jfy133 -modules/nf-core/nonpareil/curve/** @jfy133 -modules/nf-core/nucmer/** @sateeshperi @mjcipriano -modules/nf-core/odgi/build/** @subwaystation -modules/nf-core/odgi/draw/** @subwaystation -modules/nf-core/odgi/layout/** @subwaystation -modules/nf-core/odgi/sort/** @subwaystation -modules/nf-core/odgi/squeeze/** @subwaystation -modules/nf-core/odgi/stats/** @subwaystation -modules/nf-core/odgi/unchop/** @subwaystation -modules/nf-core/odgi/view/** @subwaystation -modules/nf-core/odgi/viz/** @subwaystation -modules/nf-core/oncocnv/** @marrip -modules/nf-core/openms/decoydatabase/** @jonasscheid -modules/nf-core/optitype/** @apeltzer -modules/nf-core/paftools/sam2paf/** @DLBPointon -modules/nf-core/pairix/** @jianhong -modules/nf-core/pairtools/dedup/** @jianhong -modules/nf-core/pairtools/flip/** @jianhong -modules/nf-core/pairtools/merge/** @nservant -modules/nf-core/pairtools/parse/** @jianhong -modules/nf-core/pairtools/restrict/** @jianhong -modules/nf-core/pairtools/select/** @jianhong -modules/nf-core/pairtools/sort/** @jianhong @nservant -modules/nf-core/pairtools/stats/** @nservant -modules/nf-core/panaroo/run/** @rpetit3 -modules/nf-core/pangolin/** @kevinmenden @drpatelh -modules/nf-core/parabricks/applybqsr/** @bsiranosian -modules/nf-core/parabricks/fq2bam/** @bsiranosian @adamrtalbot -modules/nf-core/paraclu/** @mashehu -modules/nf-core/paragraph/idxdepth/** @nvnieuwk -modules/nf-core/paragraph/multigrmpy/** @nvnieuwk -modules/nf-core/paragraph/vcf2paragraph/** @nvnieuwk -modules/nf-core/pasty/** @rpetit3 -modules/nf-core/pbbam/pbmerge/** @sguizard -modules/nf-core/pbccs/** @sguizard -modules/nf-core/pbptyper/** @rpetit3 -modules/nf-core/pear/** @mirpedrol -modules/nf-core/peddy/** @rannick -modules/nf-core/peka/** @kkuret @codeprimate123 @chris-cheshire @charlotteanne -modules/nf-core/phantompeakqualtools/** @drpatelh @edmundmiller @JoseEspinosa -modules/nf-core/phispy/** @jvfe -modules/nf-core/phyloflash/** @abhi18av -modules/nf-core/picard/addorreplacereadgroups/** @sateeshperi @mjcipriano @hseabolt @cmatKhan @muffato -modules/nf-core/picard/bedtointervallist/** @kevinmenden @matthdsm -modules/nf-core/picard/cleansam/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/collecthsmetrics/** @projectoriented @matthdsm -modules/nf-core/picard/collectinsertsizemetrics/** @FerriolCalvet -modules/nf-core/picard/collectmultiplemetrics/** @drpatelh -modules/nf-core/picard/collectrnaseqmetrics/** @anoronh4 -modules/nf-core/picard/collectwgsmetrics/** @drpatelh @flowuenne @lassefolkersen @ramprasadn -modules/nf-core/picard/createsequencedictionary/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/crosscheckfingerprints/** @matthdsm -modules/nf-core/picard/fastqtosam/** @matthdsm -modules/nf-core/picard/filtersamreads/** @jfy133 -modules/nf-core/picard/fixmateinformation/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/picard/liftovervcf/** @lucpen @ramprasadn -modules/nf-core/picard/markduplicates/** @drpatelh @projectoriented @ramprasadn -modules/nf-core/picard/mergesamfiles/** @drpatelh -modules/nf-core/picard/renamesampleinvcf/** @Lucpen -modules/nf-core/picard/scatterintervalsbyns/** @nvnieuwk -modules/nf-core/picard/sortsam/** @jfy133 -modules/nf-core/picard/sortvcf/** @ramprasadn -modules/nf-core/pilon/** @scorreard -modules/nf-core/pindel/pindel/** @marrip +.github/workflows/** @nf-core/a-team +tests/config @nf-core/a-team + +# Opt-in +modules/nf-core/bedtools/** @edmundmiller +modules/nf-core/dragmap/** @edmundmiller +modules/nf-core/ensemblvep/** @maxulysse +modules/nf-core/gatk4/** @maxulysse +modules/nf-core/homer/** @edmundmiller +modules/nf-core/snpeff/** @maxulysse modules/nf-core/pints/caller/** @edmundmiller -modules/nf-core/pirate/** @rpetit3 -modules/nf-core/plasmidfinder/** @rpetit3 -modules/nf-core/plasmidid/** @joseespinosa @drpatelh -modules/nf-core/platypus/** @kubranarci -modules/nf-core/plink2/extract/** @nebfield -modules/nf-core/plink2/score/** @nebfield -modules/nf-core/plink2/vcf/** @nebfield -modules/nf-core/plink/bcf/** @atrigila -modules/nf-core/plink/exclude/** @atrigila -modules/nf-core/plink/extract/** @nebfield -modules/nf-core/plink/indep/** @atrigila -modules/nf-core/plink/indeppairwise/** @atrigila -modules/nf-core/plink/recode/** @atrigila -modules/nf-core/plink/vcf/** @Mxrcon @abhi18av -modules/nf-core/pmdtools/filter/** @alexandregilardet -modules/nf-core/pneumocat/** @rpetit3 -modules/nf-core/porechop/abi/** @sofstam -modules/nf-core/porechop/porechop/** @ggabernet @jasmezz @d4straub @LaurenceKuhl @SusiJo @jonasscheid @jonoave @GokceOGUZ @jfy133 -modules/nf-core/preseq/ccurve/** @drpatelh @edmundmiller -modules/nf-core/preseq/lcextrap/** @drpatelh @edmundmiller -modules/nf-core/pretextmap/** @marrip @getrudeln -modules/nf-core/pretextsnapshot/** @epaule -modules/nf-core/prinseqplusplus/** @jfy133 -modules/nf-core/prodigal/** @grst -modules/nf-core/prokka/** @rpetit3 -modules/nf-core/propr/logratio/** @suzannejin @oprana22 -modules/nf-core/propr/propd/** @suzannejin -modules/nf-core/proteus/readproteingroups/** @WackerO -modules/nf-core/pureclip/** @charlotteanne @marcjones -modules/nf-core/purecn/coverage/** @aldosr @lbeltrame -modules/nf-core/purecn/intervalfile/** @aldosr @lbeltrame -modules/nf-core/purecn/normaldb/** @aldosr @lbeltrame -modules/nf-core/purecn/run/** @aldosr @lbeltrame -modules/nf-core/purgedups/calcuts/** @mahesh-panchal -modules/nf-core/purgedups/getseqs/** @mahesh-panchal -modules/nf-core/purgedups/histplot/** @mahesh-panchal -modules/nf-core/purgedups/pbcstat/** @mahesh-panchal -modules/nf-core/purgedups/purgedups/** @mahesh-panchal -modules/nf-core/purgedups/splitfa/** @mahesh-panchal -modules/nf-core/pycoqc/** @joseespinosa @drpatelh -modules/nf-core/pydamage/analyze/** @maxibor -modules/nf-core/pydamage/filter/** @maxibor -modules/nf-core/pyrodigal/** @louperelo -modules/nf-core/qcat/** @yuukiiwa @drpatelh -modules/nf-core/qualimap/bamqccram/** @FriederikeHanssen -modules/nf-core/qualimap/bamqc/** @phue -modules/nf-core/qualimap/rnaseq/** @FriederikeHanssen -modules/nf-core/quast/** @drpatelh @kevinmenden -modules/nf-core/quilt/quilt/** @atrigila -modules/nf-core/racon/** @avantonder -modules/nf-core/rapidnj/** @aunderwo @avantonder -modules/nf-core/rasusa/** @thanhleviet -modules/nf-core/raven/** @fmalmeida -modules/nf-core/raxmlng/** @avantonder @aunderwo -modules/nf-core/rgi/main/** @rpetit3 @jfy133 -modules/nf-core/rhocall/annotate/** @ramprasadn -modules/nf-core/rmarkdownnotebook/** @grst -modules/nf-core/roary/** @rpetit3 -modules/nf-core/rsem/calculateexpression/** @drpatelh @kevinmenden -modules/nf-core/rsem/preparereference/** @drpatelh @kevinmenden -modules/nf-core/rseqc/bamstat/** @drpatelh @kevinmenden -modules/nf-core/rseqc/inferexperiment/** @drpatelh @kevinmenden -modules/nf-core/rseqc/innerdistance/** @drpatelh @kevinmenden -modules/nf-core/rseqc/junctionannotation/** @drpatelh @kevinmenden -modules/nf-core/rseqc/junctionsaturation/** @drpatelh @kevinmenden -modules/nf-core/rseqc/readdistribution/** @drpatelh @kevinmenden -modules/nf-core/rseqc/readduplication/** @drpatelh @kevinmenden -modules/nf-core/rseqc/tin/** @drpatelh -modules/nf-core/rtgtools/format/** @nvnieuwk -modules/nf-core/rtgtools/pedfilter/** @nvnieuwk -modules/nf-core/rtgtools/rocplot/** @nvnieuwk -modules/nf-core/rtgtools/vcfeval/** @nvnieuwk -modules/nf-core/salmon/index/** @kevinmenden @drpatelh -modules/nf-core/salmon/quant/** @kevinmenden @drpatelh -modules/nf-core/salsa2/** @scorreard -modules/nf-core/sam2lca/analyze/** @maxibor -modules/nf-core/sambamba/flagstat/** @kubranarci -modules/nf-core/sambamba/markdup/** @BioInf2305 -modules/nf-core/samblaster/** @lescai -modules/nf-core/samtools/ampliconclip/** @bjohnnyd -modules/nf-core/samtools/bam2fq/** @lescai -modules/nf-core/samtools/calmd/** @JackCurragh -modules/nf-core/samtools/cat/** @matthdsm -modules/nf-core/samtools/collatefastq/** @lescai @maxulysse @matthdsm -modules/nf-core/samtools/collate/** @priyanka-surana -modules/nf-core/samtools/convert/** @FriederikeHanssen @maxulysse -modules/nf-core/samtools/coverage/** @LouisLeNezet -modules/nf-core/samtools/depth/** @louperelo @nevinwu -modules/nf-core/samtools/dict/** @muffato -modules/nf-core/samtools/faidx/** @drpatelh @phue -modules/nf-core/samtools/fasta/** @priyanka-surana -modules/nf-core/samtools/fastq/** @priyanka-surana @suzannejin -modules/nf-core/samtools/fixmate/** @sppearce -modules/nf-core/samtools/flagstat/** @drpatelh -modules/nf-core/samtools/getrg/** @matthdsm -modules/nf-core/samtools/idxstats/** @drpatelh -modules/nf-core/samtools/import/** @matthdsm -modules/nf-core/samtools/index/** @drpatelh @maxulysse -modules/nf-core/samtools/markdup/** @priyanka-surana -modules/nf-core/samtools/merge/** @drpatelh @yuukiiwa @maxulysse @FriederikeHanssen @ramprasadn -modules/nf-core/samtools/mpileup/** @drpatelh @joseespinosa -modules/nf-core/samtools/reheader/** @louislenezet -modules/nf-core/samtools/sort/** @drpatelh -modules/nf-core/samtools/stats/** @drpatelh @FriederikeHanssen @ramprasadn -modules/nf-core/samtools/view/** @drpatelh @joseespinosa @FriederikeHanssen @priyanka-surana -modules/nf-core/scimap/mcmicro/** @luiskuhn -modules/nf-core/scoary/** @rpetit3 -modules/nf-core/scramble/clusteranalysis/** @nvnieuwk -modules/nf-core/scramble/clusteridentifier/** @nvnieuwk -modules/nf-core/seacr/callpeak/** @chris-cheshire -modules/nf-core/segemehl/align/** @BarryDigby -modules/nf-core/segemehl/index/** @BarryDigby -modules/nf-core/semibin/singleeasybin/** @BigDataBiology -modules/nf-core/sentieon/** @DonFreed -modules/nf-core/sentieon/applyvarcal/** @assp8200 -modules/nf-core/sentieon/bwaindex/** @drpatelh @maxulysse -modules/nf-core/sentieon/bwamem/** @asp8200 -modules/nf-core/sentieon/datametrics/** @ramprasadn -modules/nf-core/sentieon/dedup/** @asp8200 -modules/nf-core/sentieon/dnamodelapply/** @ramprasadn -modules/nf-core/sentieon/dnascope/** @ramprasadn -modules/nf-core/sentieon/gvcftyper/** @asp8200 -modules/nf-core/sentieon/haplotyper/** @asp8200 -modules/nf-core/sentieon/readwriter/** @ramprasadn -modules/nf-core/sentieon/tnhaplotyper2/** @asp8200 -modules/nf-core/sentieon/tnscope/** @ramprasadn -modules/nf-core/sentieon/varcal/** @asp8200 -modules/nf-core/sentieon/wgsmetrics/** @ramprasadn -modules/nf-core/seqkit/fx2tab/** @heuermh -modules/nf-core/seqkit/grep/** @Joon-Klaps -modules/nf-core/seqkit/pair/** @sateeshperi @mjcipriano @hseabolt -modules/nf-core/seqkit/replace/** @mjcipriano -modules/nf-core/seqkit/sliding/** @DLBPointon -modules/nf-core/seqkit/split2/** @FriederikeHanssen -modules/nf-core/seqkit/stats/** @Midnighter -modules/nf-core/seqkit/tab2fx/** @heuermh -modules/nf-core/seqsero2/** @rpetit3 -modules/nf-core/seqtk/cutn/** @DLBPointon -modules/nf-core/seqtk/mergepe/** @emnilsson -modules/nf-core/seqtk/rename/** @hseabolt @mjcipriano @sateeshperi -modules/nf-core/seqtk/sample/** @kaurravneet4123 @sidorov-si @adamrtalbot -modules/nf-core/seqtk/seq/** @hseabolt @mjcipriano @sateeshperi -modules/nf-core/seqtk/subseq/** @sidorov-si -modules/nf-core/sequencetools/pileupcaller/** @TCLamnidis -modules/nf-core/sequenzautils/bam2seqz/** @kaurravneet4123 -modules/nf-core/sequenzautils/gcwiggle/** @kaurravneet4123 -modules/nf-core/seqwish/induce/** @heuermh -modules/nf-core/seroba/run/** @rpetit3 -modules/nf-core/sexdeterrmine/** @TCLamnidis -modules/nf-core/sgdemux/** @nh13 @sam-white04 -modules/nf-core/shapeit5/ligate/** @louislenezet -modules/nf-core/shapeit5/phasecommon/** @LouisLeNezet -modules/nf-core/shapeit5/phaserare/** @LouisLeNezet -modules/nf-core/shapeit5/switch/** @LouisLeNezet -modules/nf-core/shasta/** @fmalmeida -modules/nf-core/shasum/** @matthdsm -modules/nf-core/shigatyper/** @rpetit3 -modules/nf-core/shigeifinder/** @rpetit3 -modules/nf-core/shinyngs/app/** @pinin4fjords -modules/nf-core/shinyngs/staticdifferential/** @pinin4fjords -modules/nf-core/shinyngs/staticexploratory/** @pinin4fjords -modules/nf-core/shinyngs/validatefomcomponents/** @pinin4fjords -modules/nf-core/shovill/** @rpetit3 -modules/nf-core/sickle/** @BioInf2305 -modules/nf-core/simpleaf/index/** @fmalmeida @maxulysse @Khajidu @apeltzer @pinin4fjords -modules/nf-core/simpleaf/quant/** @fmalmeida @maxulysse @Khajidu @apeltzer @pinin4fjords -modules/nf-core/sistr/** @rpetit3 -modules/nf-core/slimfastq/** @Midnighter -modules/nf-core/smncopynumbercaller/** @peterpru -modules/nf-core/smoothxg/** @heuermh, @subwaystation -modules/nf-core/smoove/call/** @scorreard @nvnieuwk -modules/nf-core/snakemake/** @adamrtalbot -modules/nf-core/snapaligner/align/** @matthdsm -modules/nf-core/snapaligner/index/** @matthdsm -modules/nf-core/sniffles/** @christopher-hakkaart @yuukiiwa -modules/nf-core/snippy/core/** @rpetit3 -modules/nf-core/snippy/run/** @rpetit3 -modules/nf-core/snpdists/** @abhi18av -modules/nf-core/snpeff/download/** @maxulysse -modules/nf-core/snpeff/snpeff/** @maxulysse -modules/nf-core/snpsift/annotate/** @LlaneroHiboreo -modules/nf-core/snpsift/dbnsfp/** @LlaneroHiboreo -modules/nf-core/snpsift/split/** @SusiJo @jonasscheid -modules/nf-core/snpsites/** @avantonder -modules/nf-core/somalier/ancestry/** @atrigila -modules/nf-core/somalier/extract/** @ashotmarg @nvnieuwk -modules/nf-core/somalier/relate/** @ashotmarg @nvnieuwk -modules/nf-core/sortmerna/** @drpatelh @mashehu -modules/nf-core/sourmash/compare/** @taylorreiter -modules/nf-core/sourmash/gather/** @vmikk @taylorreiter -modules/nf-core/sourmash/index/** @emnilsson -modules/nf-core/sourmash/sketch/** @Midnighter -modules/nf-core/sourmash/taxannotate/** @vmikk @taylorreiter -modules/nf-core/spaceranger/count/** @grst -modules/nf-core/spaceranger/mkgtf/** @grst -modules/nf-core/spaceranger/mkref/** @grst -modules/nf-core/spades/** @JoseEspinosa @drpatelh @d4straub -modules/nf-core/spatyper/** @rpetit3 -modules/nf-core/spring/compress/** @xec-cm -modules/nf-core/spring/decompress/** @xec-cm -modules/nf-core/sratools/fasterqdump/** @Midnighter -modules/nf-core/sratools/prefetch/** @Midnighter -modules/nf-core/srst2/srst2/** @jvhagey -modules/nf-core/ssuissero/** @rpetit3 -modules/nf-core/stadeniolib/scramble/** @matthdsm -modules/nf-core/staphopiasccmec/** @rpetit3 -modules/nf-core/star/align/** @kevinmenden @drpatelh @praveenraj2018 -modules/nf-core/star/genomegenerate/** @kevinmenden @drpatelh -modules/nf-core/star/starsolo/** @kevinmenden @ggabernet @grst @fmalmeida @rhreynolds @apeltzer @vivian-chen16 @maxulysse @joaodemeirelles -modules/nf-core/stecfinder/** @rpetit3 -modules/nf-core/stitch/** @saulpierotti -modules/nf-core/stranger/** @ljmesi -modules/nf-core/strelka/germline/** @arontommi -modules/nf-core/strelka/somatic/** @drpatelh -modules/nf-core/stringtie/merge/** @yuukiiwa -modules/nf-core/stringtie/stringtie/** @drpatelh -modules/nf-core/subread/featurecounts/** @ntoda03 -modules/nf-core/survivor/filter/** @LlaneroHiboreo -modules/nf-core/survivor/merge/** @nvnieuwk -modules/nf-core/survivor/simsv/** @nvnieuwk -modules/nf-core/svaba/** @kubranarci -modules/nf-core/svdb/merge/** @ramprasadn -modules/nf-core/svdb/query/** @ramprasadn -modules/nf-core/svtk/baftest/** @nvnieuwk -modules/nf-core/svtk/countsvtypes/** @nvnieuwk -modules/nf-core/svtk/rdtest2vcf/** @nvnieuwk -modules/nf-core/svtk/standardize/** @nvnieuwk -modules/nf-core/svtk/vcf2bed/** @nvnieuwk -modules/nf-core/svtyper/svtyper/** @kubranarci -modules/nf-core/tabix/bgzip/** @joseespinosa @drpatelh @maxulysse @nvnieuwk -modules/nf-core/tabix/bgziptabix/** @maxulysse @DLBPointon -modules/nf-core/tabix/tabix/** @joseespinosa @drpatelh @maxulysse -modules/nf-core/tailfindr/** @lucacozzuto -modules/nf-core/taxpasta/merge/** @sofstam @jfy133 -modules/nf-core/taxpasta/standardise/** @Midnighter -modules/nf-core/tbprofiler/profile/** @rpetit3 -modules/nf-core/tcoffee/align/** @luisas -modules/nf-core/tiara/tiara/** @prototaxites -modules/nf-core/tiddit/cov/** @projectoriented @ramprasadn -modules/nf-core/tiddit/sv/** @maxulysse -modules/nf-core/topas/gencons/** @aidaanva -modules/nf-core/transdecoder/longorf/** @Danilo2771 -modules/nf-core/transdecoder/predict/** @Danilo2771 -modules/nf-core/trimgalore/** @drpatelh @FelixKrueger -modules/nf-core/trimmomatic/** @alyssa-ab -modules/nf-core/trinity/** @timslittle -modules/nf-core/truvari/bench/** @nvnieuwk -modules/nf-core/ucsc/bedclip/** @drpatelh -modules/nf-core/ucsc/bedgraphtobigwig/** @drpatelh -modules/nf-core/ucsc/bedtobigbed/** @drpatelh -modules/nf-core/ucsc/bigwigaverageoverbed/** @jianhong -modules/nf-core/ucsc/gtftogenepred/** @BarryDigby @anoronh4 -modules/nf-core/ucsc/liftover/** @nebfield -modules/nf-core/ucsc/wigtobigwig/** @jianhong @projectoriented -modules/nf-core/ultra/align/** @sguizard -modules/nf-core/ultra/index/** @sguizard -modules/nf-core/ultra/pipeline/** @sguizard @lassefolkersen @ksahlin -modules/nf-core/ultraplex/** @CharlotteAnne @oscarwilkins @chris-cheshire @marc-jones @iraiosub @samirelanduk -modules/nf-core/umicollapse/** @CharlotteAnne @chris-cheshire -modules/nf-core/umitools/dedup/** @drpatelh @grst @klkeys -modules/nf-core/umitools/extract/** @drpatelh @grst -modules/nf-core/umitools/group/** @Joon-Klaps -modules/nf-core/unicycler/** @JoseEspinosa @drpatelh @d4straub -modules/nf-core/universc/** @kbattenb @tomkellygenetics -modules/nf-core/untarfiles/** @joseespinosa @drpatelh @matthdsm @jfy133 @pinin4fjords -modules/nf-core/untar/** @joseespinosa @drpatelh @matthdsm @jfy133 -modules/nf-core/unzipfiles/** @jfy133 @pinin4fjords -modules/nf-core/unzip/** @jfy133 -modules/nf-core/upd/** @hrydbeck -modules/nf-core/vardictjava/** @nvnieuwk -modules/nf-core/variantbam/** @bjohnnyd -modules/nf-core/varlociraptor/callvariants/** @FriederikeHanssen -modules/nf-core/varlociraptor/estimatealignmentproperties/** @FriederikeHanssen -modules/nf-core/varlociraptor/preprocess/** @FriederikeHanssen -modules/nf-core/vcf2db/** @nvnieuwk -modules/nf-core/vcf2maf/** @adamrtalbot -modules/nf-core/vcfanno/** @projectoriented @matthdsm -modules/nf-core/vcflib/vcfbreakmulti/** @lucpen -modules/nf-core/vcflib/vcffilter/** @zachary-foster -modules/nf-core/vcflib/vcfuniq/** @drpatelh -modules/nf-core/vcftools/** @Mark-S-Hill -modules/nf-core/verifybamid/verifybamid2/** @manifestoso -modules/nf-core/verifybamid/verifybamid/** @manifestoso -modules/nf-core/vg/construct/** @nvnieuwk -modules/nf-core/vg/deconstruct/** @heuermh, @subwaystation -modules/nf-core/vg/index/** @nvnieuwk -modules/nf-core/vrhyme/extractunbinned/** @CarsonJM -modules/nf-core/vrhyme/linkbins/** @CarsonJM -modules/nf-core/vrhyme/vrhyme/** @CarsonJM -modules/nf-core/vsearch/cluster/** @mirpedrol -modules/nf-core/vsearch/sintax/** @jtangrot -modules/nf-core/vsearch/sort/** @mirpedrol -modules/nf-core/vsearch/usearchglobal/** @jtangrot -modules/nf-core/vt/decompose/** @nvnieuwk -modules/nf-core/vt/normalize/** @nvnieuwk -modules/nf-core/wfmash/** @subwaystation -modules/nf-core/wgsim/** @priyanka-surana -modules/nf-core/whamg/** @nvnieuwk -modules/nf-core/windowmasker/convert/** @alxndrdiaz -modules/nf-core/windowmasker/mkcounts/** @DLBPointon -modules/nf-core/windowmasker/ustat/** @DLBPointon -modules/nf-core/wisecondorx/convert/** @nvnieuwk -modules/nf-core/wisecondorx/gender/** @nvnieuwk -modules/nf-core/wisecondorx/newref/** @nvnieuwk -modules/nf-core/wisecondorx/predict/** @nvnieuwk -modules/nf-core/yahs/** @ksenia-krasheninnikova -modules/nf-core/yara/index/** @apeltzer -modules/nf-core/yara/mapper/** @apeltzer -modules/nf-core/zip/** @jfy133 @pinin4fjords -subworkflows/nf-core/bam_cnv_wisecondorx/** @nvnieuwk -subworkflows/nf-core/bam_create_som_pon_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_dedup_stats_samtools_umitools/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/bam_docounts_contamination_angsd/** @scarlhoff -subworkflows/nf-core/bam_markduplicates_picard/** @dmarron @drpatelh -subworkflows/nf-core/bam_markduplicates_samtools/** @priyanka-surana -subworkflows/nf-core/bam_ngscheckmate/** @SPPearce -subworkflows/nf-core/bam_qc_picard/** @matthdsm -subworkflows/nf-core/bam_rseqc/** @drpatelh @kevinmenden -subworkflows/nf-core/bam_sort_stats_samtools/** @drpatelh -subworkflows/nf-core/bam_split_by_region/** @TCLamnidis -subworkflows/nf-core/bam_stats_samtools/** @drpatelh -subworkflows/nf-core/bam_tumor_normal_somatic_variant_calling_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_tumor_only_somatic_variant_calling_gatk/** @GCJMackenzie -subworkflows/nf-core/bam_variant_calling_sort_freebayes_bcftools/** @priyanka-surana @FriederikeHanssen @ramprasadn -subworkflows/nf-core/bam_variant_demix_boot_freyja/** @Joon-Klaps -subworkflows/nf-core/bcl_demultiplex/** @matthdsm -subworkflows/nf-core/bedgraph_bedclip_bedgraphtobigwig/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/bed_scatter_bedtools/** @nvnieuwk -subworkflows/nf-core/fasta_binning_concoct/** @jfy133 -subworkflows/nf-core/fasta_clean_fcs/** @scorreard -subworkflows/nf-core/fasta_index_dna/** @matthdsm @ramprasadn -subworkflows/nf-core/fasta_newick_epang_gappa/** @erikrikarddaniel -subworkflows/nf-core/fastq_align_bamcmp_bwa/** @sppearce -subworkflows/nf-core/fastq_align_bowtie2/** @drpatelh -subworkflows/nf-core/fastq_align_bwaaln/** @jfy133 -subworkflows/nf-core/fastq_align_bwa/** @JoseEspinosa -subworkflows/nf-core/fastq_align_chromap/** @JoseEspinosa -subworkflows/nf-core/fastq_align_dna/** @matthdsm -subworkflows/nf-core/fastq_align_hisat2/** @priyanka-surana -subworkflows/nf-core/fastq_align_star/** @JoseEspinosa -subworkflows/nf-core/fastq_contam_seqtk_kraken/** @apeltzer -subworkflows/nf-core/fastq_create_umi_consensus_fgbio/** @lescai -subworkflows/nf-core/fastq_download_prefetch_fasterqdump_sratools/** @Midnighter @drpatelh -subworkflows/nf-core/fastq_fastqc_umitools_fastp/** @robsyme -subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/** @drpatelh @KamilMaliszArdigen -subworkflows/nf-core/fastq_ngscheckmate/** @SPPearce -subworkflows/nf-core/fastq_subsample_fq_salmon/** @robsyme @drpatelh -subworkflows/nf-core/fastq_trim_fastp_fastqc/** @Joon-Klaps -subworkflows/nf-core/homer/groseq/** @edmundmiller -subworkflows/nf-core/initialise/** @adamrtalbot -subworkflows/nf-core/multiple_impute_glimpse2/** @LouisLeNezet -subworkflows/nf-core/utils_nextflow_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/utils_nf_core_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/utils_nf_validataion_pipeline/** @adamrtalbot @drpatelh -subworkflows/nf-core/vcf_annotate_ensemblvep/** @maxulysse @matthdsm @nvnieuwk -subworkflows/nf-core/vcf_annotate_ensemblvep_snpeff/** @maxulysse @matthdsm @nvnieuwk -subworkflows/nf-core/vcf_annotate_snpeff/** @maxulysse -subworkflows/nf-core/vcf_extract_relate_somalier/** @nvnieuwk -subworkflows/nf-core/vcf_gather_bcftools/** @nvnieuwk -subworkflows/nf-core/vcf_impute_glimpse/** @LouisLeNezet -subworkflows/nf-core/vcf_phase_shapeit5/** @LouisLeNezet +modules/nf-core/preseq/ccurve/** @edmundmiller +modules/nf-core/preseq/lcextrap/** @edmundmiller +subworkflows/nf-core/homer/** @edmundmiller diff --git a/.github/scripts/wave_singularity.py b/.github/scripts/wave_singularity.py new file mode 100755 index 00000000000..5e97395674f --- /dev/null +++ b/.github/scripts/wave_singularity.py @@ -0,0 +1,54 @@ +#!/usr/bin/env -S uv run +# /// script +# requires-python = ">=3.10" +# dependencies = [ +# "httpx", +# ] +# /// + +import logging + +import httpx + +logger = logging.getLogger(__name__) + +image_url = "oras://community.wave.seqera.io/library/pybedtools_bedtools_htslib_pip_pypints:aa20de1f1b5ddb30" + +if image_url.startswith("oras://"): + image_url = image_url.replace("oras://", "") + +wave_api_url = "https://wave.seqera.io" +url = f"{wave_api_url}/v1alpha1/inspect" + +# if platform_pat: +# data["toweraccesstoken"] = platform_pat +# else: +# TODO +logger.warning("'platform_pat' not set, no auth to wave back end") + +try: + logger.info(f"calling image inspect at {url} for image url {image_url}") + response = httpx.post( + url=url, + json={"containerImage": image_url}, + headers={"content-type": "application/json"}, + ) + + data = response.json() + logger.debug(data) + layers = data.get("container", {}).get("manifest", {}).get("layers", []) + is_singularity = len(layers) == 1 and layers[0].get("mediaType", "").endswith(".sif") + if not is_singularity: + print(layers) + raise ValueError("not a singularity image") + if "digest" not in layers[0]: + print(layers) + raise ValueError("no 'digest' in first layer found") + + digest = layers[0]["digest"].replace("sha256:", "") + container_url = f"https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/{digest[:2]}/{digest}/data" + print(container_url) + +except httpx.RequestError as exc: + print(f"An error occurred while requesting {exc.request.url!r}.") + print("No singularity image for you") diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index c0c0e4bd36e..30bfcffb8ec 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8be6d86d95d..e689240e9b7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,7 +29,7 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 # FIXME Flip this off once we get to less than a couple hundred. Adding @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Install NodeJS uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4 @@ -58,7 +58,7 @@ jobs: editorconfig: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4 with: @@ -78,7 +78,7 @@ jobs: modules: ${{ steps.tags.outputs.modules }} subworkflows: ${{ steps.tags.outputs.subworkflows }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: fetch-depth: 2 # To retrieve the preceding commit. @@ -111,7 +111,7 @@ jobs: # Prod for version bumping steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: fetch-depth: 0 @@ -148,14 +148,14 @@ jobs: "${{ fromJson(needs.nf-test-changes.outputs.modules) }}", ] steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip with: path: ~/.cache/pip @@ -194,7 +194,7 @@ jobs: "${{ fromJson(needs.nf-test-changes.outputs.subworkflows) }}", ] steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 @@ -398,14 +398,14 @@ jobs: NXF_ANSI_LOG: false steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip-pytest with: path: ~/.cache/pip @@ -472,7 +472,7 @@ jobs: - name: Upload logs on failure if: failure() - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4 + uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4 with: name: logs-${{ matrix.profile }}-${{ steps.parsed.outputs.result }} path: | @@ -653,7 +653,7 @@ jobs: SENTIEON_ENCRYPTION_KEY: ${{ secrets.SENTIEON_ENCRYPTION_KEY }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 - uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4 with: @@ -682,7 +682,7 @@ jobs: with: python-version: "3.11" - - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 + - uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4 id: cache-pip-pdiff with: path: ~/.cache/pip diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2387066d67f..d195d3d9044 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,7 +6,7 @@ repos: additional_dependencies: - prettier@3.2.5 - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.2 + rev: 0.29.3 hooks: - id: check-jsonschema # match meta.ymls in one of the subdirectories of modules/nf-core diff --git a/modules/nf-core/bamtofastq10x/main.nf b/modules/nf-core/bamtofastq10x/main.nf index be1b14415be..bff379c19ee 100644 --- a/modules/nf-core/bamtofastq10x/main.nf +++ b/modules/nf-core/bamtofastq10x/main.nf @@ -11,8 +11,8 @@ process BAMTOFASTQ10X { tuple val(meta), path(bam) output: - tuple val(meta), path("*.fastq.gz"), emit: fastq - path "versions.yml" , emit: versions + tuple val(meta), path("**/*.fastq.gz"), emit: fastq + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,7 +24,7 @@ process BAMTOFASTQ10X { bamtofastq \\ $args \\ $bam \\ - ${prefix}.fastq.gz + $prefix cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -35,7 +35,8 @@ process BAMTOFASTQ10X { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.fastq.gz + mkdir -p ${prefix}/bamtofastq10x + touch ${prefix}/bamtofastq10x/bamtofastq.fastq.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/bamtofastq10x/meta.yml b/modules/nf-core/bamtofastq10x/meta.yml index ace49c25182..f3e5dfcaa24 100644 --- a/modules/nf-core/bamtofastq10x/meta.yml +++ b/modules/nf-core/bamtofastq10x/meta.yml @@ -37,10 +37,10 @@ output: description: | Groovy Map containing sample information e.g. `[ id:'sample1', single_end:false ]` - - "*.fastq.gz": + - "**/*.fastq.gz": type: file description: fastq compressed file - pattern: "*.fastq.gz" + pattern: "**/*.fastq.gz" - versions: - versions.yml: type: file diff --git a/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap b/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap index d534674592d..fd531091017 100644 --- a/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap +++ b/modules/nf-core/bamtofastq10x/tests/main.nf.test.snap @@ -8,11 +8,9 @@ "id": "test" }, [ - [ - "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", - "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", - "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" - ] + "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", + "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", + "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" ] ] ], @@ -25,11 +23,9 @@ "id": "test" }, [ - [ - "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", - "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", - "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" - ] + "bamtofastq_S1_L000_I1_001.fastq.gz:md5,a33682ac881de7a7453d79721b7621a0", + "bamtofastq_S1_L000_R1_001.fastq.gz:md5,5ccebf77d8636d7a7cdfc59737aea79f", + "bamtofastq_S1_L000_R2_001.fastq.gz:md5,2ee7c90e4307deba74065cfd00a65002" ] ] ], @@ -39,9 +35,9 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.0" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-05-22T16:43:24.999397" + "timestamp": "2024-10-02T12:56:21.808042" } } \ No newline at end of file diff --git a/modules/nf-core/bcftools/filter/main.nf b/modules/nf-core/bcftools/filter/main.nf index 8f92c51a2e2..36cbf8c2be2 100644 --- a/modules/nf-core/bcftools/filter/main.nf +++ b/modules/nf-core/bcftools/filter/main.nf @@ -8,7 +8,7 @@ process BCFTOOLS_FILTER { 'biocontainers/bcftools:1.20--h8b25389_0' }" input: - tuple val(meta), path(vcf) + tuple val(meta), path(vcf), path(tbi) output: tuple val(meta), path("*.${extension}"), emit: vcf diff --git a/modules/nf-core/bcftools/filter/meta.yml b/modules/nf-core/bcftools/filter/meta.yml index 8ac594fc222..d72f27554e9 100644 --- a/modules/nf-core/bcftools/filter/meta.yml +++ b/modules/nf-core/bcftools/filter/meta.yml @@ -23,6 +23,10 @@ input: type: file description: VCF input file pattern: "*.{vcf,bcf,vcf.gz,bcf.gz}" + - tbi: + type: file + description: VCF index file + pattern: "*.tbi" output: - vcf: - meta: diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test b/modules/nf-core/bcftools/filter/tests/main.nf.test index 646f37adaec..fadff0e30e2 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test @@ -18,7 +18,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -42,7 +43,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -72,7 +74,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -102,7 +105,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -132,7 +136,8 @@ nextflow_process { """ input[0] = [ [id:"bcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -147,6 +152,31 @@ nextflow_process { } + test("sarscov2 - vcf.gz, tbi - region filter") { + + config "./region_filter.config" + + when { + process { + """ + input[0] = [ + [id:"bcf_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match("region filter") } + ) + } + + } + test("sarscov2 - vcf - stub") { config "./nextflow.config" @@ -157,7 +187,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -182,7 +213,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -208,7 +240,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } @@ -234,7 +267,8 @@ nextflow_process { """ input[0] = [ [id:"vcf_test"], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf', checkIfExists: true), + [] ] """ } diff --git a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap index 3d7605f2665..640907e4209 100644 --- a/modules/nf-core/bcftools/filter/tests/main.nf.test.snap +++ b/modules/nf-core/bcftools/filter/tests/main.nf.test.snap @@ -1,4 +1,49 @@ { + "region filter": { + "content": [ + { + "0": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ], + "csi": [ + + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "bcf_test" + }, + "bcf_test_vcf.vcf.gz:md5,8e722884ffb75155212a3fc053918766" + ] + ], + "versions": [ + "versions.yml:md5,9a336d1ee26b527d7a2bdbeead155f64" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:14:47.394005264" + }, "sarscov2 - vcf_gz_index_tbi - stub": { "content": [ { diff --git a/modules/nf-core/bcftools/filter/tests/region_filter.config b/modules/nf-core/bcftools/filter/tests/region_filter.config new file mode 100644 index 00000000000..b18fb4bf0da --- /dev/null +++ b/modules/nf-core/bcftools/filter/tests/region_filter.config @@ -0,0 +1,4 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z -r MT192765.1 --no-version" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/environment.yml b/modules/nf-core/bcftools/pluginsetgt/environment.yml new file mode 100644 index 00000000000..a394b026327 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::bcftools=1.21" diff --git a/modules/nf-core/bcftools/pluginsetgt/main.nf b/modules/nf-core/bcftools/pluginsetgt/main.nf new file mode 100644 index 00000000000..489b563a5dc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/main.nf @@ -0,0 +1,80 @@ +process BCFTOOLS_PLUGINSETGT { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bcftools:1.21--h8b25389_0': + 'biocontainers/bcftools:1.21--h8b25389_0' }" + + input: + tuple val(meta), path(vcf), path(index) + val(target_gt) + val(new_gt) + path(regions) + path(targets) + + output: + tuple val(meta), path("*.{vcf,vcf.gz,bcf,bcf.gz}"), emit: vcf + tuple val(meta), path("*.tbi") , emit: tbi, optional: true + tuple val(meta), path("*.csi") , emit: csi, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def regions_file = regions ? "--regions-file ${regions}" : "" + def targets_file = targets ? "--targets-file ${targets}" : "" + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + """ + bcftools plugin setGT \\ + --output ${prefix}.${extension} \\ + ${regions_file} \\ + ${targets_file} \\ + $args \\ + --threads $task.cpus \\ + ${vcf} \\ + -- \\ + --target-gt ${target_gt} \\ + --new-gt ${new_gt} \\ + $args2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("--output-type b") || args.contains("-Ob") ? "bcf.gz" : + args.contains("--output-type u") || args.contains("-Ou") ? "bcf" : + args.contains("--output-type z") || args.contains("-Oz") ? "vcf.gz" : + args.contains("--output-type v") || args.contains("-Ov") ? "vcf" : + "vcf" + def index = args.contains("--write-index=tbi") || args.contains("-W=tbi") ? "tbi" : + args.contains("--write-index=csi") || args.contains("-W=csi") ? "csi" : + args.contains("--write-index") || args.contains("-W") ? "csi" : + "" + def create_cmd = extension.endsWith(".gz") ? "echo '' | gzip >" : "touch" + def create_index = extension.endsWith(".gz") && index.matches("csi|tbi") ? "touch ${prefix}.${extension}.${index}" : "" + + """ + ${create_cmd} ${prefix}.${extension} + ${create_index} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/bcftools/pluginsetgt/meta.yml b/modules/nf-core/bcftools/pluginsetgt/meta.yml new file mode 100644 index 00000000000..820ea48cea1 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/meta.yml @@ -0,0 +1,108 @@ +--- +name: "bcftools_pluginsetgt" +description: Sets genotypes according to the specified criteria and filtering expressions. For example, missing genotypes can be set to ref, but much more than that. +keywords: + - setgt + - bcftools + - genotype + - vcf +tools: + - "bcftools": + description: "BCFtools is a set of utilities that manipulate variant calls in + the Variant Call Format (VCF) and its binary counterpart BCF. All commands work + transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.\ + \ Most commands accept VCF, bgzipped VCF and BCF with filetype detected automatically + even when streaming from a pipe. Indexed VCF and BCF will work in all situations. + Un-indexed VCF and BCF and streams will work in most, but not all situations." + homepage: "https://samtools.github.io/bcftools/howtos/index.html" + documentation: "https://samtools.github.io/bcftools/bcftools.html" + tool_dev_url: "https://github.com/samtools/bcftools" + doi: "10.1093/bioinformatics/btp352" + licence: ["MIT"] + args_id: "$args" + identifier: biotools:bcftools + - "bcftools plugin setGT": + description: "Bcftools plugins are tools that can be used with bcftools to manipulate + variant calls in Variant Call Format (VCF) and BCF. The setGT plugin sets genotypes according to the specified criteria and filtering expressions. For example, missing genotypes can be set to ref, but much more than that." + homepage: "https://samtools.github.io/bcftools/howtos/plugins.html" + documentation: "https://samtools.github.io/bcftools/howtos/plugin.setGT.html" + tool_dev_url: "https://github.com/samtools/bcftools" + doi: "10.1093/bioinformatics/btp352" + licence: ["MIT"] + args_id: "$args2" + identifier: biotools:bcftools + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + The vcf file to be inspected. + e.g. 'file.vcf' + - index: + type: file + description: | + The tab index for the VCF file to be inspected. + e.g. 'file.tbi' + - - target_gt: + type: string + description: | + Genotypes to change + - - new_gt: + type: string + description: | + Genotypes to set + - - regions: + type: file + description: | + Optionally, restrict the operation to regions listed in this file. + e.g. 'file.vcf' + - - targets: + type: file + description: | + Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) + e.g. 'file.vcf' +output: + - vcf: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.{vcf,vcf.gz,bcf,bcf.gz}": + type: file + description: VCF output file containing set genotypes + pattern: "*.{vcf,vcf.gz,bcf,bcf.gz}" + - tbi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.tbi": + type: file + description: Alternative VCF file index + pattern: "*.tbi" + - csi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.csi": + type: file + description: Default VCF file index + pattern: "*.csi" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@eweizy" +maintainers: + - "@eweizy" diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test new file mode 100644 index 00000000000..ab915458cfc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test @@ -0,0 +1,308 @@ +nextflow_process { + + name "Test Process BCFTOOLS_PLUGINSETGT" + script "../main.nf" + process "BCFTOOLS_PLUGINSETGT" + + tag "modules" + tag "modules_nfcore" + tag "bcftools" + tag "bcftools/pluginsetgt" + + test("sarscov2 - [vcf, tbi], [], []") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index") { + + config "./vcf_gz_index.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi") { + + config "./vcf_gz_index_csi.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi") { + + config "./vcf_gz_index_tbi.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.tbi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match() }, + { assert process.out.tbi[0][1].endsWith(".tbi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], vcf, tsv, []") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test3.vcf.gz', checkIfExists: true) + input[4] = file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test2.targets.tsv.gz', checkIfExists: true) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.vcf, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - stub") { + + config "./nextflow.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.vcf[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index - stub") { + + config "./vcf_gz_index.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi - stub") { + + config "./vcf_gz_index_csi.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.csi[0][1].endsWith(".csi") } + ) + } + + } + + test("sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi - stub") { + + config "./vcf_gz_index_tbi.config" + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'out', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi', checkIfExists: true) + ] + input[1] = "a" + input[2] = "p" + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.tbi[0][1].endsWith(".tbi") } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap new file mode 100644 index 00000000000..d7bd1c430fc --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/main.nf.test.snap @@ -0,0 +1,333 @@ +{ + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + + ], + "2": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:17.908216187" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:20.519406077" + }, + "sarscov2 - [vcf, tbi], [], []": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out.vcf:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:10:46.935219433" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + + ], + "2": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tbi": [ + + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:01.440738039" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_tbi - stub": { + "content": [ + { + "0": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ], + "csi": [ + + ], + "tbi": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "vcf": [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:20:30.745502548" + }, + "sarscov2 - [vcf, tbi], vcf, tsv, []": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out.vcf:md5,55e955c359bf9094bb692660f3c1c677" + ] + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:35.097141661" + }, + "sarscov2 - [vcf, tbi], [], [], [] - stub": { + "content": [ + "out.vcf", + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:47.7899858" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi" + ] + ], + [ + + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:18:49.513524959" + }, + "sarscov2 - [vcf, tbi], [], [], [] - vcf_gz_index_csi": { + "content": [ + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz:md5,9fb75c9fdb304b49c3895476666a85bb" + ] + ], + [ + [ + { + "id": "out", + "single_end": false + }, + "out_vcf.vcf.gz.csi" + ] + ], + [ + + ], + [ + "versions.yml:md5,f5e31da0a117751eb1d951d0c2a09c75" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T21:19:04.133512404" + } +} \ No newline at end of file diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config b/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config new file mode 100644 index 00000000000..eb8000d60bb --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/nextflow.config @@ -0,0 +1,4 @@ +process { + ext.args = '--no-version --output-type v' + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config new file mode 100644 index 00000000000..9507854d716 --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index --no-version" + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config new file mode 100644 index 00000000000..9e53fe2596d --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_csi.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index=csi --no-version" + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config new file mode 100644 index 00000000000..38abb7860dd --- /dev/null +++ b/modules/nf-core/bcftools/pluginsetgt/tests/vcf_gz_index_tbi.config @@ -0,0 +1,5 @@ +process { + ext.prefix = { "${meta.id}_vcf" } + ext.args = "--output-type z --write-index=tbi --no-version" + ext.args2 = "-s 42" +} diff --git a/modules/nf-core/bedtools/genomecov/main.nf b/modules/nf-core/bedtools/genomecov/main.nf index 8403c530380..35e2ab14b34 100644 --- a/modules/nf-core/bedtools/genomecov/main.nf +++ b/modules/nf-core/bedtools/genomecov/main.nf @@ -4,7 +4,7 @@ process BEDTOOLS_GENOMECOV { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/bedtools_coreutils:ba273c06a3909a15': + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/63/6397750e9730a3fbcc5b4c43f14bd141c64c723fd7dad80e47921a68a7c3cd21/data': 'community.wave.seqera.io/library/bedtools_coreutils:a623c13f66d5262b' }" input: diff --git a/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config b/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config index aee2e62b02f..16cfe993999 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/nextflow.config @@ -1,10 +1,10 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ params { - vep_cache_version = "112" - vep_genome = "WBcel235" - vep_species = "caenorhabditis_elegans" + vep_cache_version = "112" + vep_genome = "WBcel235" + vep_species = "caenorhabditis_elegans" } diff --git a/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config b/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config index 0aa5ea75228..cdad2d94d35 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/tab.gz.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ process { @@ -13,12 +13,12 @@ process { } withName: ENSEMBLVEP_VEP { - ext.args = '--tab' + ext.args = '--tab' ext.prefix = { "${meta.id}_vep" } } withName: ENSEMBLVEP_FILTERVEP { - ext.args = '--filter "Feature_type is Transcript"' + ext.args = '--filter "Feature_type is Transcript"' ext.suffix = "tab" } } diff --git a/modules/nf-core/ensemblvep/filtervep/tests/vcf.config b/modules/nf-core/ensemblvep/filtervep/tests/vcf.config index 0b65fe5c4f1..ee2aef5745b 100644 --- a/modules/nf-core/ensemblvep/filtervep/tests/vcf.config +++ b/modules/nf-core/ensemblvep/filtervep/tests/vcf.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ process { @@ -13,7 +13,7 @@ process { } withName: ENSEMBLVEP_VEP { - ext.args = '--vcf' + ext.args = '--vcf' ext.prefix = { "${meta.id}_vep" } } diff --git a/modules/nf-core/ganon/buildcustom/environment.yml b/modules/nf-core/ganon/buildcustom/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/buildcustom/environment.yml +++ b/modules/nf-core/ganon/buildcustom/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/buildcustom/main.nf b/modules/nf-core/ganon/buildcustom/main.nf index ac1c0eca114..212e49f7f97 100644 --- a/modules/nf-core/ganon/buildcustom/main.nf +++ b/modules/nf-core/ganon/buildcustom/main.nf @@ -1,21 +1,21 @@ process GANON_BUILDCUSTOM { - tag "$meta.id" + tag "${meta.id}" label 'process_high' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(input) + val input_type path taxonomy_files path genome_size_files output: - tuple val(meta), path("*.{hibf,ibf,tax}") , emit: db - tuple val(meta), path("*.info.tsv") , emit: info , optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.{hibf,ibf,tax}"), emit: db + tuple val(meta), path("*.info.tsv"), emit: info, optional: true + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -23,17 +23,18 @@ process GANON_BUILDCUSTOM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" - def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" + def input_cmd = input_type == 'fasta' ? "--input ${input}" : input_type == 'tsv' ? "--input-file ${input}" : error("Invalid input type: ${input_type}. Options: fasta, tsv") + def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" + def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" """ ganon \\ build-custom \\ --threads ${task.cpus} \\ - --input $input \\ + --input ${input} \\ --db-prefix ${prefix} \\ - $taxonomy_args \\ - $genome_size_args \\ - $args + ${taxonomy_args} \\ + ${genome_size_args} \\ + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -44,8 +45,8 @@ process GANON_BUILDCUSTOM { stub: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" - def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" + def taxonomy_args = taxonomy_files ? "--taxonomy-files ${taxonomy_files}" : "" + def genome_size_args = genome_size_files ? "--genome-size-files ${genome_size_files}" : "" """ touch ${prefix}.hibf touch ${prefix}.tax diff --git a/modules/nf-core/ganon/buildcustom/meta.yml b/modules/nf-core/ganon/buildcustom/meta.yml index 538fd21306d..39bc07349ad 100644 --- a/modules/nf-core/ganon/buildcustom/meta.yml +++ b/modules/nf-core/ganon/buildcustom/meta.yml @@ -29,6 +29,13 @@ input: List of input FASTA files, or a directory containing input FASTA files. Note you must supply --input-extension via ext.args if FASTA extensions do not end in the default `fna.gz`. pattern: "*" + - - input_type: + type: string + description: | + Specify whether the file(s) given to the input channel are in FASTA format (and will be supplied as --input) + or in TSV format (and will be supplied as --input-file). For TSV format, the 'file' column should be just the + file name so that it's local to the working directory of this process. + pattern: "fasta|tsv" - - taxonomy_files: type: file description: Pre-downloaded taxonomy files of input sequences. See ganon docs diff --git a/modules/nf-core/ganon/buildcustom/tests/main.nf.test b/modules/nf-core/ganon/buildcustom/tests/main.nf.test index 3d97408bbdb..8fa42278035 100644 --- a/modules/nf-core/ganon/buildcustom/tests/main.nf.test +++ b/modules/nf-core/ganon/buildcustom/tests/main.nf.test @@ -3,6 +3,7 @@ nextflow_process { name "Test Process GANON_BUILDCUSTOM" script "../main.nf" process "GANON_BUILDCUSTOM" + config "./nextflow.config" tag "modules" tag "modules_nfcore" @@ -18,8 +19,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } @@ -28,7 +30,8 @@ nextflow_process { assertAll( { assert process.success }, { assert snapshot( - process.out.db.get(0).get(1).findAll { file(it).name != "test.tax" } + process.out.db.get(0).get(1).findAll { file(it).name != "test.tax" }, + process.out.versions ).match() }, { assert file(process.out.db.get(0).get(1).find { file(it).name == "test.tax" }).text.contains("MT192765.1") }, @@ -47,8 +50,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap b/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap index d1d2b18ee6b..2c3243ffbdc 100644 --- a/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/buildcustom/tests/main.nf.test.snap @@ -22,7 +22,7 @@ ] ], "2": [ - "versions.yml:md5,644b8508be28bf66eb6e66ef12be858c" + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ], "db": [ [ @@ -44,18 +44,29 @@ ] ], "versions": [ - "versions.yml:md5,644b8508be28bf66eb6e66ef12be858c" + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ] } ], - "timestamp": "2024-01-10T15:15:49.270265503" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:00:22.98042261" }, "sarscov2 - genome fasta": { "content": [ [ "test.hibf:md5,d10fe6fc6d198696bc15ca85a1459614" + ], + [ + "versions.yml:md5,9c73293ae36914c6ce3718ad6728ad9e" ] ], - "timestamp": "2024-01-10T15:15:44.000168145" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:03:25.060306554" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/buildcustom/tests/nextflow.config b/modules/nf-core/ganon/buildcustom/tests/nextflow.config new file mode 100644 index 00000000000..a12988eee89 --- /dev/null +++ b/modules/nf-core/ganon/buildcustom/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } +} diff --git a/modules/nf-core/ganon/classify/environment.yml b/modules/nf-core/ganon/classify/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/classify/environment.yml +++ b/modules/nf-core/ganon/classify/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/classify/main.nf b/modules/nf-core/ganon/classify/main.nf index d6db825e9bb..65ee6765244 100644 --- a/modules/nf-core/ganon/classify/main.nf +++ b/modules/nf-core/ganon/classify/main.nf @@ -1,24 +1,23 @@ process GANON_CLASSIFY { - tag "$meta.id" + tag "${meta.id}" label 'process_high' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: - tuple val(meta) , path(fastqs) - path(db) + tuple val(meta), path(fastqs) + path db output: tuple val(meta), path("*.tre"), emit: tre tuple val(meta), path("*.rep"), emit: report - tuple val(meta), path("*.one"), emit: one , optional: true - tuple val(meta), path("*.all"), emit: all , optional: true - tuple val(meta), path("*.unc"), emit: unc , optional: true + tuple val(meta), path("*.one"), emit: one, optional: true + tuple val(meta), path("*.all"), emit: all, optional: true + tuple val(meta), path("*.unc"), emit: unc, optional: true tuple val(meta), path("*.log"), emit: log - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -26,17 +25,17 @@ process GANON_CLASSIFY { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" + def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" """ dbprefix=\$(find -L . -name '*.*ibf' | sed 's/\\.h\\?ibf\$//') ganon \\ classify \\ --db-prefix \${dbprefix%%.*ibf} \\ - $args \\ - --threads $task.cpus \\ + ${args} \\ + --threads ${task.cpus} \\ --output-prefix ${prefix} \\ - $input \ + ${input} \ 2>&1 | tee ${prefix}.log cat <<-END_VERSIONS > versions.yml @@ -48,7 +47,7 @@ process GANON_CLASSIFY { stub: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" + def input = meta.single_end ? "--single-reads ${fastqs}" : "--paired-reads ${fastqs}" """ touch ${prefix}.tre touch ${prefix}.rep diff --git a/modules/nf-core/ganon/classify/tests/main.nf.test b/modules/nf-core/ganon/classify/tests/main.nf.test index e581ca065eb..40ea069e782 100644 --- a/modules/nf-core/ganon/classify/tests/main.nf.test +++ b/modules/nf-core/ganon/classify/tests/main.nf.test @@ -20,8 +20,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } @@ -46,8 +47,11 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.tre, - process.out.report).match()}, + { assert snapshot( + process.out.tre, + process.out.report, + process.out.versions + ).match()}, { assert file(process.out.log[0][1]).text.contains("Total elapsed time:") } ) } @@ -74,8 +78,12 @@ nextflow_process { then { assertAll( { assert process.success }, - { assert snapshot(process.out.tre, - process.out.report).match()}, + { assert snapshot( + process.out.tre, + process.out.report, + process.out.versions + ).match() + }, { assert file(process.out.log[0][1]).text.contains("Total elapsed time:") } ) } diff --git a/modules/nf-core/ganon/classify/tests/main.nf.test.snap b/modules/nf-core/ganon/classify/tests/main.nf.test.snap index 40b36b14fcc..1006fc57e5b 100644 --- a/modules/nf-core/ganon/classify/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/classify/tests/main.nf.test.snap @@ -57,7 +57,7 @@ ] ], "6": [ - "versions.yml:md5,e13af9e126ff4a9ea7ee4b706fbbc0bb" + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ], "all": [ [ @@ -114,11 +114,15 @@ ] ], "versions": [ - "versions.yml:md5,e13af9e126ff4a9ea7ee4b706fbbc0bb" + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] } ], - "timestamp": "2024-01-06T15:08:06.626813557" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:06:22.835846753" }, "sarscov2 paired-end [fastq]": { "content": [ @@ -139,9 +143,16 @@ }, "test.rep:md5,757e5cbf7a978913277401285d743336" ] + ], + [ + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] ], - "timestamp": "2024-01-06T15:07:49.528458193" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:26:16.339673954" }, "sarscov2 single-end [fastq]": { "content": [ @@ -162,8 +173,15 @@ }, "test.rep:md5,9b5f8051aa459a80a678e36259a15746" ] + ], + [ + "versions.yml:md5,7c113ab3c2c1ea32c9f27ceef48db17a" ] ], - "timestamp": "2024-01-06T15:07:12.092925016" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T19:25:41.074523387" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/classify/tests/nextflow.config b/modules/nf-core/ganon/classify/tests/nextflow.config index 18712875d15..56bec927bd3 100644 --- a/modules/nf-core/ganon/classify/tests/nextflow.config +++ b/modules/nf-core/ganon/classify/tests/nextflow.config @@ -1,7 +1,8 @@ process { - + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } - } diff --git a/modules/nf-core/ganon/report/environment.yml b/modules/nf-core/ganon/report/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/report/environment.yml +++ b/modules/nf-core/ganon/report/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/report/main.nf b/modules/nf-core/ganon/report/main.nf index 2b1998f154a..3f520de0e7b 100644 --- a/modules/nf-core/ganon/report/main.nf +++ b/modules/nf-core/ganon/report/main.nf @@ -1,11 +1,10 @@ process GANON_REPORT { - tag "$meta.id" + tag "${meta.id}" label 'process_single' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(rep) @@ -13,7 +12,7 @@ process GANON_REPORT { output: tuple val(meta), path("*.tre"), emit: tre - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -30,7 +29,7 @@ process GANON_REPORT { --input ${rep} \\ --output-prefix ${prefix} \\ --db-prefix \${dbprefix%%.*ibf} \\ - $args + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/ganon/report/tests/main.nf.test b/modules/nf-core/ganon/report/tests/main.nf.test index d350eed066b..e6437b498bc 100644 --- a/modules/nf-core/ganon/report/tests/main.nf.test +++ b/modules/nf-core/ganon/report/tests/main.nf.test @@ -21,8 +21,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/report/tests/main.nf.test.snap b/modules/nf-core/ganon/report/tests/main.nf.test.snap index abad8035e3f..ee248e7d173 100644 --- a/modules/nf-core/ganon/report/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/report/tests/main.nf.test.snap @@ -12,7 +12,7 @@ ] ], "1": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ], "tre": [ [ @@ -24,11 +24,15 @@ ] ], "versions": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ] } ], - "timestamp": "2024-01-06T18:50:07.439069779" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:09:42.438141974" }, "sarscov2 single-end [fastq]": { "content": [ @@ -43,7 +47,7 @@ ] ], "1": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ], "tre": [ [ @@ -55,10 +59,14 @@ ] ], "versions": [ - "versions.yml:md5,7219068902254fbc97f84e8e163213d0" + "versions.yml:md5,e405868d6136de433a8ddbd8e6e3333d" ] } ], - "timestamp": "2024-01-06T18:49:52.505817066" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T18:32:50.997968794" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/report/tests/nextflow.config b/modules/nf-core/ganon/report/tests/nextflow.config index e6dd3131e9f..96982fa8331 100644 --- a/modules/nf-core/ganon/report/tests/nextflow.config +++ b/modules/nf-core/ganon/report/tests/nextflow.config @@ -1,4 +1,7 @@ process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } diff --git a/modules/nf-core/ganon/table/environment.yml b/modules/nf-core/ganon/table/environment.yml index 98f34de89e1..0e073d5ba75 100644 --- a/modules/nf-core/ganon/table/environment.yml +++ b/modules/nf-core/ganon/table/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::ganon=2.0.0 + - bioconda::ganon=2.1.0 diff --git a/modules/nf-core/ganon/table/main.nf b/modules/nf-core/ganon/table/main.nf index d8f247c151d..1e3fca6b453 100644 --- a/modules/nf-core/ganon/table/main.nf +++ b/modules/nf-core/ganon/table/main.nf @@ -1,18 +1,17 @@ process GANON_TABLE { - tag "$meta.id" + tag "${meta.id}" label 'process_single' - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ganon:2.0.0--py39ha35b9be_0': - 'biocontainers/ganon:2.0.0--py39ha35b9be_0' }" + container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container + ? 'https://depot.galaxyproject.org/singularity/ganon:2.1.0--py310hab1bfa5_1' + : 'biocontainers/ganon:2.1.0--py310hab1bfa5_1'}" input: tuple val(meta), path(tre) output: tuple val(meta), path("*.txt"), emit: txt - path "versions.yml" , emit: versions + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when @@ -25,7 +24,7 @@ process GANON_TABLE { table \\ --input ${tre} \\ --output-file ${prefix}.txt \\ - $args + ${args} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/ganon/table/tests/main.nf.test b/modules/nf-core/ganon/table/tests/main.nf.test index 43b6cf0a1d1..9aae4ead0c5 100644 --- a/modules/nf-core/ganon/table/tests/main.nf.test +++ b/modules/nf-core/ganon/table/tests/main.nf.test @@ -22,8 +22,9 @@ nextflow_process { [ id:'test' ], // meta map file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), ] - input[1] = [] + input[1] = 'fasta' input[2] = [] + input[3] = [] """ } } diff --git a/modules/nf-core/ganon/table/tests/main.nf.test.snap b/modules/nf-core/ganon/table/tests/main.nf.test.snap index 2c5c312d0c7..2346f7a713c 100644 --- a/modules/nf-core/ganon/table/tests/main.nf.test.snap +++ b/modules/nf-core/ganon/table/tests/main.nf.test.snap @@ -11,7 +11,7 @@ ] ], "1": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ], "txt": [ [ @@ -22,11 +22,15 @@ ] ], "versions": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ] } ], - "timestamp": "2024-01-07T14:27:58.631022945" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T17:13:04.938896022" }, "sarscov2 single-end [fastq]": { "content": [ @@ -40,7 +44,7 @@ ] ], "1": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ], "txt": [ [ @@ -51,10 +55,14 @@ ] ], "versions": [ - "versions.yml:md5,1cec68ee4a3dcc057d475497732b72c1" + "versions.yml:md5,6a8b6c7a69b2bdd5490414f3352b5a7d" ] } ], - "timestamp": "2024-01-07T14:27:37.318272937" + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T18:33:41.271256635" } } \ No newline at end of file diff --git a/modules/nf-core/ganon/table/tests/nextflow.config b/modules/nf-core/ganon/table/tests/nextflow.config index 26114b4cf7b..e6d79357789 100644 --- a/modules/nf-core/ganon/table/tests/nextflow.config +++ b/modules/nf-core/ganon/table/tests/nextflow.config @@ -1,11 +1,13 @@ process { + withName: GANON_BUILDCUSTOM { + ext.args = "--input-target sequence" + } withName: GANON_CLASSIFY { ext.args = "--output-one --output-all --output-unclassified" } withName: GANON_REPORT { ext.args = "--report-type reads --output-format tsv" } - withName: GANON_TABLE { ext.args = "--output-format tsv --output-value percentages" } diff --git a/modules/nf-core/genmod/annotate/environment.yml b/modules/nf-core/genmod/annotate/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/annotate/environment.yml +++ b/modules/nf-core/genmod/annotate/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/annotate/main.nf b/modules/nf-core/genmod/annotate/main.nf index eb161187687..033caa9ae93 100644 --- a/modules/nf-core/genmod/annotate/main.nf +++ b/modules/nf-core/genmod/annotate/main.nf @@ -4,8 +4,8 @@ process GENMOD_ANNOTATE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/compound/environment.yml b/modules/nf-core/genmod/compound/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/compound/environment.yml +++ b/modules/nf-core/genmod/compound/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/compound/main.nf b/modules/nf-core/genmod/compound/main.nf index 1731b722224..4831da855fa 100644 --- a/modules/nf-core/genmod/compound/main.nf +++ b/modules/nf-core/genmod/compound/main.nf @@ -4,8 +4,8 @@ process GENMOD_COMPOUND { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/models/environment.yml b/modules/nf-core/genmod/models/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/models/environment.yml +++ b/modules/nf-core/genmod/models/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/models/main.nf b/modules/nf-core/genmod/models/main.nf index 0504574a194..90c1fd48233 100644 --- a/modules/nf-core/genmod/models/main.nf +++ b/modules/nf-core/genmod/models/main.nf @@ -4,8 +4,8 @@ process GENMOD_MODELS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/genmod/score/environment.yml b/modules/nf-core/genmod/score/environment.yml index 1eca76fad2c..bbc3fd973a9 100644 --- a/modules/nf-core/genmod/score/environment.yml +++ b/modules/nf-core/genmod/score/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::genmod=3.8.2 + - bioconda::genmod=3.8.3 diff --git a/modules/nf-core/genmod/score/main.nf b/modules/nf-core/genmod/score/main.nf index 15be5f744b3..522e05b6581 100644 --- a/modules/nf-core/genmod/score/main.nf +++ b/modules/nf-core/genmod/score/main.nf @@ -4,8 +4,8 @@ process GENMOD_SCORE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genmod:3.8.2--pyhdfd78af_0': - 'biocontainers/genmod:3.8.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genmod:3.8.3--pyhdfd78af_0': + 'biocontainers/genmod:3.8.3--pyhdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/nf-core/jvarkit/sam2tsv/environment.yml b/modules/nf-core/jvarkit/sam2tsv/environment.yml new file mode 100644 index 00000000000..013223af092 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/environment.yml @@ -0,0 +1,5 @@ +channels: + - bioconda + - conda-forge +dependencies: + - "bioconda::jvarkit=2024.08.25" diff --git a/modules/nf-core/jvarkit/sam2tsv/main.nf b/modules/nf-core/jvarkit/sam2tsv/main.nf new file mode 100644 index 00000000000..fdc49cbd8ba --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/main.nf @@ -0,0 +1,53 @@ +process JVARKIT_SAM2TSV { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/jvarkit:2024.08.25--hdfd78af_1': + 'biocontainers/jvarkit:2024.08.25--hdfd78af_1' }" + + input: + tuple val(meta), path(bam), path(bai), path(regions_file) + tuple val(meta2), path(fasta), path(fasta_index), path(fasta_dict) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def regions_file = regions_file ? " --regions" + " '${regions_file}' " : "" + + """ + mkdir -p TMP + + jvarkit -Xmx1g -XX:-UsePerfData -Djava.io.tmpdir=TMP sam2tsv \\ + --reference "${fasta}" \\ + --output "${prefix}.tsv" \\ + ${args} \\ + ${regions_file} \\ + "${bam}" + rm -rf TMP + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + jvarkit: \$(jvarkit -v) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch "${prefix}.tsv" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + jvarkit: \$(jvarkit -v) + END_VERSIONS + """ +} diff --git a/modules/nf-core/jvarkit/sam2tsv/meta.yml b/modules/nf-core/jvarkit/sam2tsv/meta.yml new file mode 100644 index 00000000000..fe9a2b1cfc8 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/meta.yml @@ -0,0 +1,69 @@ +name: "jvarkit_sam2tsv" +description: Convert sam files to tsv files +keywords: + - sam + - tsv + - jvarkit +tools: + - "jvarkit": + description: "Java utilities for Bioinformatics." + homepage: "https://github.com/lindenb/jvarkit" + documentation: "https://jvarkit.readthedocs.io/" + tool_dev_url: "https://github.com/lindenb/jvarkit" + doi: "10.6084/m9.figshare.1425030" + licence: ["MIT License"] + identifier: "" + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - bam: + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" + - bai: + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" + - regions_file: + type: file + description: Optional. Restrict to regions listed in a file + pattern: "*.{vcf,bed,gtf,gff,vcf.gz,bed.gz,gtf.gz,gff.gz}" + - - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [id: 'reference'] + - fasta: + type: file + description: Reference genome + pattern: "*.{fasta,fa}" + - fasta_index: + type: file + description: Reference genome information for fasta index + pattern: "*.{fasta.fai,fa.fai}" + - fasta_dict: + type: file + description: Reference genome information for fasta dict + pattern: "*.{.dict}" + +output: + - tsv: + - meta: + type: map + description: Groovy Map containing TSV information e.g. [ id:'test' ] + - "*.tsv": + type: file + description: Output file + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@lmfaber" +maintainers: + - "@lmfaber" diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test new file mode 100644 index 00000000000..cf1d05549f7 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test @@ -0,0 +1,74 @@ +nextflow_process { + + name "Test Process JVARKIT_SAM2TSV" + script "../main.nf" + process "JVARKIT_SAM2TSV" + + tag "modules" + tag "modules_nfcore" + tag "jvarkit" + tag "jvarkit/sam2tsv" + + test("sarscov2 - tsv") { + + when { + process { + """ + input[0] =[ + [id:"tsv_test"], + 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] = [ + [id:"tsv_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path(process.out.tsv[0][1]).text.startsWith("#Read-Name Flag")}, + { assert snapshot(process.out).match() + } + ) + } + } + + test("sarscov2 - tsv - stub") { + + options "-stub" + + when { + process { + """ + input[0] =[ + [id:"tsv_test"], + 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] = [ + [id:"tsv_test"], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.fai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.dict', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() + } + ) + } + } +} diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap new file mode 100644 index 00000000000..6a13240a570 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "sarscov2 - tsv": { + "content": [ + { + "0": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,6218e8d498160c442d2bde239878a4d1" + ] + ], + "1": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ], + "tsv": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,6218e8d498160c442d2bde239878a4d1" + ] + ], + "versions": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T13:09:35.31109992" + }, + "sarscov2 - tsv - stub": { + "content": [ + { + "0": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ], + "tsv": [ + [ + { + "id": "tsv_test" + }, + "tsv_test.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,c628a51b7377878922ebd473c89ada95" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T13:09:45.395583956" + } +} \ No newline at end of file diff --git a/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml b/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml new file mode 100644 index 00000000000..c44a7dd33a7 --- /dev/null +++ b/modules/nf-core/jvarkit/sam2tsv/tests/tags.yml @@ -0,0 +1,2 @@ +jvarkit/sam2tsv: + - "modules/nf-core/jvarkit/sam2tsv/**" diff --git a/modules/nf-core/longphase/haplotag/main.nf b/modules/nf-core/longphase/haplotag/main.nf index 701af31fe54..86ba0592556 100644 --- a/modules/nf-core/longphase/haplotag/main.nf +++ b/modules/nf-core/longphase/haplotag/main.nf @@ -24,8 +24,8 @@ process LONGPHASE_HAPLOTAG { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sv_file = params.svs ? "--sv-file ${svs}" : "" - def mod_file = params.mods ? "--mod-file ${mods}" : "" + def sv_file = svs ? "--sv-file ${svs}" : "" + def mod_file = mods ? "--mod-file ${mods}" : "" """ longphase \\ diff --git a/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap b/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap index 225a4f7ed85..3cf35dc32ff 100644 --- a/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap +++ b/modules/nf-core/longphase/haplotag/tests/main.nf.test.snap @@ -119,15 +119,15 @@ "@RG\tID:test\tSM:test", "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -y -x map-ont --secondary=no -R @RG\\tID:test\\tSM:test -t 30 -a genome.mmi test.bam_other.fastq.gz", "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.19.2\tCL:samtools sort -@ 29 -o test.bam_other.fastq.gz.bam --write-index", - "@PG\tID:longphase\tPN:longphase\tPP:samtools\tVN:1.7.3\tCL:longphase haplotag --threads 2 -o test --reference genome.fasta --snp-file test.genome.vcf.gz --bam test.sorted.bam " + "@PG\tID:longphase\tPN:longphase\tPP:samtools\tVN:1.7.3\tCL:longphase haplotag --threads 2 -o test --reference genome.fasta --snp-file test.genome.vcf.gz --bam test.sorted.bam --sv-file NA24385_sv.vcf.gz " ], "721264eb2824a3146b331f2532d10180" ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-25T09:13:39.901419316" + "timestamp": "2024-10-04T13:39:33.50395694" }, "[ bam, bai, snps, [], [] ], fasta, fai - log & cram": { "content": [ diff --git a/modules/nf-core/longphase/phase/main.nf b/modules/nf-core/longphase/phase/main.nf index ad29d997288..f121f4b6dd6 100644 --- a/modules/nf-core/longphase/phase/main.nf +++ b/modules/nf-core/longphase/phase/main.nf @@ -24,8 +24,8 @@ process LONGPHASE_PHASE { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sv_file = params.svs ? "--sv-file ${svs}" : "" - def mod_file = params.mods ? "--mod-file ${mods}" : "" + def sv_file = svs ? "--sv-file ${svs}" : "" + def mod_file = mods ? "--mod-file ${mods}" : "" def bamList = [] for (file in bam) { diff --git a/modules/nf-core/longphase/phase/tests/main.nf.test.snap b/modules/nf-core/longphase/phase/tests/main.nf.test.snap index 02e2bb1731f..8a38c1caa5c 100644 --- a/modules/nf-core/longphase/phase/tests/main.nf.test.snap +++ b/modules/nf-core/longphase/phase/tests/main.nf.test.snap @@ -40,7 +40,7 @@ { "id": "test" }, - "test.vcf.gz:md5,fd2d21056b2de4722f12d5e883d9cb0a" + "test.vcf.gz:md5,b0a3effd6e076edbe7e2f1f7cfff547c" ] ], "1": [ @@ -51,7 +51,7 @@ { "id": "test" }, - "test.vcf.gz:md5,fd2d21056b2de4722f12d5e883d9cb0a" + "test.vcf.gz:md5,b0a3effd6e076edbe7e2f1f7cfff547c" ] ], "versions": [ @@ -60,10 +60,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T12:14:39.961315592" + "timestamp": "2024-10-04T13:37:16.921910004" }, "[ bam x2, bai x2, snps, svs, [] ], fasta, fai": { "content": [ @@ -73,7 +73,7 @@ { "id": "test" }, - "test.vcf.gz:md5,3ced25dc8c1ec0a7c64481c8a163d687" + "test.vcf.gz:md5,04905b6042998e592c9f3b887ae9e09c" ] ], "1": [ @@ -84,7 +84,7 @@ { "id": "test" }, - "test.vcf.gz:md5,3ced25dc8c1ec0a7c64481c8a163d687" + "test.vcf.gz:md5,04905b6042998e592c9f3b887ae9e09c" ] ], "versions": [ @@ -93,10 +93,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-22T12:15:07.970597495" + "timestamp": "2024-10-04T13:37:23.41768963" }, "[ bam, bai, snps, [], [] ], fasta, fai - stub": { "content": [ diff --git a/modules/nf-core/maxbin2/meta.yml b/modules/nf-core/maxbin2/meta.yml index 6b5a98c766d..538ba07f3fd 100644 --- a/modules/nf-core/maxbin2/meta.yml +++ b/modules/nf-core/maxbin2/meta.yml @@ -108,6 +108,9 @@ output: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - "*_bin.tar.gz": + type: file + description: Marker bins + pattern: "*_bin.tar.gz" - marker_genes: - meta: type: map diff --git a/modules/nf-core/mirdeep2/mapper/meta.yml b/modules/nf-core/mirdeep2/mapper/meta.yml index 5844344cf97..a482c4805c5 100644 --- a/modules/nf-core/mirdeep2/mapper/meta.yml +++ b/modules/nf-core/mirdeep2/mapper/meta.yml @@ -36,9 +36,18 @@ input: pattern: "*" output: - outputs: - - meta: {} - - "*.fa": {} - - "*.arf": {} + - meta: + type: map + description: Groovy Map containing sample information, e.g. `[ id:'sample1', single_end:false ]` + - "*.fa": + type: file + description: Collapsed reads in FASTA format. + pattern: "*.fa" + - "*.arf": + type: file + description: Alignment Read Format (ARF) file containing the mapping of reads + to the genome. + pattern: "*.arf" - versions: - versions.yml: type: file diff --git a/modules/nf-core/motus/merge/main.nf b/modules/nf-core/motus/merge/main.nf index 06cb93cc7c1..392024aed6a 100644 --- a/modules/nf-core/motus/merge/main.nf +++ b/modules/nf-core/motus/merge/main.nf @@ -4,8 +4,8 @@ process MOTUS_MERGE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/motus:3.0.3--pyhdfd78af_0': - 'biocontainers/motus:3.0.3--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/motus:3.1.0--pyhdfd78af_0': + 'biocontainers/motus:3.1.0--pyhdfd78af_0' }" input: tuple val(meta), path(input) @@ -42,4 +42,22 @@ process MOTUS_MERGE { motus: \$VERSION END_VERSIONS """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def cmd_input = input.size() > 1 ? "-i ${input.join(',')}" : input.isDirectory() ? "-d ${input}" : "-i ${input}" + def suffix = task.ext.args?.contains("-B") ? "biom" : "txt" + + """ + touch ${prefix}.txt + + VERSION=\$(cat ${profile_version_yml} | grep '/*motus:.*' | sed 's/.*otus: //g') + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$VERSION + END_VERSIONS + """ + } diff --git a/modules/nf-core/motus/merge/tests/main.nf.test b/modules/nf-core/motus/merge/tests/main.nf.test new file mode 100644 index 00000000000..13f0121ec3e --- /dev/null +++ b/modules/nf-core/motus/merge/tests/main.nf.test @@ -0,0 +1,89 @@ +nextflow_process { + name "Test Process MOTUS_MERGE" + script "../main.nf" + process "MOTUS_MERGE" + tag "modules" + tag "modules_nfcore" + tag "motus" + tag "motus/downloaddb" + tag "motus/profile" + tag "motus/merge" + + + setup { + run("MOTUS_DOWNLOADDB") { + script "modules/nf-core/motus/downloaddb/main.nf" + process { + """ + input[0] = Channel.of([ + file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') + ]) + """ + } + } + + run("MOTUS_PROFILE") { + script "modules/nf-core/motus/profile/main.nf" + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true ), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true ) + ] + ] + + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + } + + test("sarscov2 - illumina paired end [fastq]") { + + + when { + process { + """ + input[0] = MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple() + input[1] = MOTUS_DOWNLOADDB.out.db + input[2] = MOTUS_PROFILE.out.versions.first() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + path(process.out.txt[0][1]).readLines()[3..10], + process.out.versions, + ).match() + } + ) + } + } + + test("sarscov2 - illumina paired end [fastq] - stub") { + + options "-stub" + + when { + process { + """ + input[0] = MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple() + input[1] = MOTUS_DOWNLOADDB.out.db + input[2] = MOTUS_PROFILE.out.versions.first() + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( process.out ).match() } + ) + } + } +} diff --git a/modules/nf-core/motus/merge/tests/main.nf.test.snap b/modules/nf-core/motus/merge/tests/main.nf.test.snap new file mode 100644 index 00000000000..a8d75f4f1aa --- /dev/null +++ b/modules/nf-core/motus/merge/tests/main.nf.test.snap @@ -0,0 +1,63 @@ +{ + "sarscov2 - illumina paired end [fastq]": { + "content": [ + [ + "Leptospira alexanderi [ref_mOTU_v31_00001]\t0.0000000000", + "Leptospira weilii [ref_mOTU_v31_00002]\t0.0000000000", + "Chryseobacterium sp. [ref_mOTU_v31_00004]\t0.0000000000", + "Chryseobacterium gallinarum [ref_mOTU_v31_00005]\t0.0000000000", + "Chryseobacterium indologenes [ref_mOTU_v31_00006]\t0.0000000000", + "Chryseobacterium artocarpi/ureilyticum [ref_mOTU_v31_00007]\t0.0000000000", + "Chryseobacterium jejuense [ref_mOTU_v31_00008]\t0.0000000000", + "Chryseobacterium sp. G972 [ref_mOTU_v31_00009]\t0.0000000000" + ], + [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-03T06:11:21.297394816" + }, + "sarscov2 - illumina paired end [fastq] - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ], + "biom": [ + + ], + "txt": [ + [ + { + "id": "test" + }, + "test.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,fb03dc5dcf4912bd54b06f9ee59a7eef" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-10-02T12:18:09.391582" + } +} \ No newline at end of file diff --git a/modules/nf-core/motus/merge/tests/tags.yml b/modules/nf-core/motus/merge/tests/tags.yml new file mode 100644 index 00000000000..44edb8d0758 --- /dev/null +++ b/modules/nf-core/motus/merge/tests/tags.yml @@ -0,0 +1,2 @@ +motus/merge: + - modules/nf-core/motus/merge/** diff --git a/modules/nf-core/motus/preplong/environment.yml b/modules/nf-core/motus/preplong/environment.yml new file mode 100644 index 00000000000..b8ef520eaa2 --- /dev/null +++ b/modules/nf-core/motus/preplong/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::motus=3.1.0 diff --git a/modules/nf-core/motus/preplong/main.nf b/modules/nf-core/motus/preplong/main.nf new file mode 100644 index 00000000000..3fffc149648 --- /dev/null +++ b/modules/nf-core/motus/preplong/main.nf @@ -0,0 +1,53 @@ +process MOTUS_PREPLONG { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/motus:3.1.0--pyhdfd78af_0': + 'biocontainers/motus:3.1.0--pyhdfd78af_0' }" + + input: + tuple val(meta), path(reads) + path db + + output: + tuple val(meta), path("*.gz"), emit: out + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def refdb = db ? "-db ${db}" : "" + + """ + motus \\ + prep_long \\ + $args \\ + -i $reads \\ + $refdb \\ + -t $task.cpus \\ + -o ${prefix}.gz \\ + 2> >(tee ${prefix}.log >&2) + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$(motus --version 2>&1 | sed 's/.* \\([0-9]*\\.[0-9]*\\.[0-9]*\\) .*/\\1/') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo '' | gzip > ${prefix}.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + motus: \$(motus --version 2>&1 | sed 's/.* \\([0-9]*\\.[0-9]*\\.[0-9]*\\) .*/\\1/') + END_VERSIONS + """ +} diff --git a/modules/nf-core/motus/preplong/meta.yml b/modules/nf-core/motus/preplong/meta.yml new file mode 100644 index 00000000000..4db88011ea2 --- /dev/null +++ b/modules/nf-core/motus/preplong/meta.yml @@ -0,0 +1,52 @@ +name: "motus_preplong" +description: Taxonomic meta-omics profiling using universal marker genes +keywords: + - classify + - metagenomics + - fastq + - taxonomic profiling +tools: + - "motus": + description: "Marker gene-based operational taxonomic unit (mOTU) profiling" + homepage: "https://motu-tool.org/" + documentation: "https://github.com/motu-tool/mOTUs/wiki" + tool_dev_url: "https://github.com/motu-tool/mOTUs" + doi: "10.1186/s40168-022-01410-z" + licence: ["GPL v3"] + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - reads: + type: file + description: Long read file to convert, can be fasta(.gz) or fastq(.gz) + pattern: "*.{gz}" + - - db: + type: directory + description: | + mOTUs database downloaded by `motus downloadDB` + pattern: "db_mOTU/" +output: + - out: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + - "*.gz": + type: file + description: converted file (gzipped), ready to be used by motus profile + pattern: "*.gz" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sofstam" +maintainers: + - "@sofstam" diff --git a/modules/nf-core/motus/preplong/tests/main.nf.test b/modules/nf-core/motus/preplong/tests/main.nf.test new file mode 100644 index 00000000000..5ad8e7487f1 --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/main.nf.test @@ -0,0 +1,75 @@ +nextflow_process { + + name "Test Process MOTUS_PREPLONG" + script "../main.nf" + process "MOTUS_PREPLONG" + + tag "modules" + tag "modules_nfcore" + tag "motus" + tag "motus/downloaddb" + tag "motus/preplong" + + setup { + run("MOTUS_DOWNLOADDB") { + script "modules/nf-core/motus/downloaddb/main.nf" + process { + """ + input[0] = Channel.of([ + file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') + ]) + """ + } + } + } + + test("sarscov2 - fasta") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) + ] + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/nanopore/fastq/test_2.fastq.gz', checkIfExists: true) + ] + input[1] = MOTUS_DOWNLOADDB.out.db + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + + } + +} diff --git a/modules/nf-core/motus/preplong/tests/main.nf.test.snap b/modules/nf-core/motus/preplong/tests/main.nf.test.snap new file mode 100644 index 00000000000..5ed72ec8a9a --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/main.nf.test.snap @@ -0,0 +1,72 @@ +{ + "sarscov2 - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ], + "out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-09-06T16:29:18.602046" + }, + "sarscov2 - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,37be4a7321bcb2fdae60affb21a1737c" + ] + ], + "1": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ], + "out": [ + [ + { + "id": "test", + "single_end": false + }, + "test.gz:md5,37be4a7321bcb2fdae60affb21a1737c" + ] + ], + "versions": [ + "versions.yml:md5,8fc614f9fe354b0811def13c772bc6fb" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.04.1" + }, + "timestamp": "2024-09-06T15:55:48.439664" + } +} \ No newline at end of file diff --git a/modules/nf-core/motus/preplong/tests/tags.yml b/modules/nf-core/motus/preplong/tests/tags.yml new file mode 100644 index 00000000000..bdaae3b2032 --- /dev/null +++ b/modules/nf-core/motus/preplong/tests/tags.yml @@ -0,0 +1,2 @@ +motus/preplong: + - "modules/nf-core/motus/preplong/**" diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index f1cd99b0792..6f5b867b768 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.24.1 + - bioconda::multiqc=1.25.1 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index b9ccebdbbc0..9724d2f34ef 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.25--pyhdfd78af_0' : - 'biocontainers/multiqc:1.25--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.25.1--pyhdfd78af_0' : + 'biocontainers/multiqc:1.25.1--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index b779e46924b..2fcbb5ff7d1 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T12:41:34.562023" + "timestamp": "2024-10-02T17:51:46.317523" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:27:11.933869532" + "timestamp": "2024-10-02T17:52:20.680978" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:26:56.709849369" + "timestamp": "2024-10-02T17:52:09.185842" } -} +} \ No newline at end of file diff --git a/modules/nf-core/phantompeakqualtools/main.nf b/modules/nf-core/phantompeakqualtools/main.nf index f0f7dc634a0..e1f22699685 100644 --- a/modules/nf-core/phantompeakqualtools/main.nf +++ b/modules/nf-core/phantompeakqualtools/main.nf @@ -5,7 +5,7 @@ process PHANTOMPEAKQUALTOOLS { // 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 ? - 'oras://community.wave.seqera.io/library/phantompeakqualtools:1.2.2--50be7727b2a72700' : + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/4a/4a1cddfad5b503ee347cc5de17d172e1876c547fca00aa844559c9e764fb400f/data' : 'community.wave.seqera.io/library/phantompeakqualtools:1.2.2--f8026fe2526a5e18' }" input: diff --git a/modules/nf-core/pints/caller/environment.yml b/modules/nf-core/pints/caller/environment.yml index afcdc7eb7f3..1c29653cc0a 100644 --- a/modules/nf-core/pints/caller/environment.yml +++ b/modules/nf-core/pints/caller/environment.yml @@ -2,4 +2,11 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::pypints=1.1.10 + - pybedtools + - bedtools + - htslib + - pip + - pip: # FIXME https://github.com/nf-core/modules/issues/5814 + # NOTE PINTS isn't adding conda builds and is a few versions behind. + # renovate: datasource=pypi depName=pypints + - pypints==1.1.13 diff --git a/modules/nf-core/pints/caller/main.nf b/modules/nf-core/pints/caller/main.nf index 2c0ede18afe..7f927c9dd28 100644 --- a/modules/nf-core/pints/caller/main.nf +++ b/modules/nf-core/pints/caller/main.nf @@ -5,8 +5,8 @@ process PINTS_CALLER { conda "${moduleDir}/environment.yml" // NOTE Stopped publishing at 1.1.9 https://quay.io/repository/biocontainers/pypints?tab=tags container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/pints_caller:650ef63c9768bb5a' : - 'community.wave.seqera.io/library/pints_caller:b1e6404513917871' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/f1/f1a9e30012e1b41baf9acd1ff94e01161138d8aa17f4e97aa32f2dc4effafcd1/data' : + 'community.wave.seqera.io/library/pybedtools_bedtools_htslib_pip_pypints:39699b96998ec5f6' }" input: tuple val(meta), path(bams), path(bais) diff --git a/modules/nf-core/pints/caller/tests/main.nf.test b/modules/nf-core/pints/caller/tests/main.nf.test index 0bb2a7cb1bf..e0e2f8ea3f9 100644 --- a/modules/nf-core/pints/caller/tests/main.nf.test +++ b/modules/nf-core/pints/caller/tests/main.nf.test @@ -35,7 +35,7 @@ nextflow_process { process.out.divergent_TREs, process.out.bidirectional_TREs, file(process.out.unidirectional_TREs.get(0).get(1).get(0)).name, - process.out.versions, + path(process.out.versions.get(0)).yaml, ).match("bams") }, ) @@ -65,9 +65,10 @@ nextflow_process { process.out.divergent_TREs, process.out.bidirectional_TREs, file(process.out.unidirectional_TREs[0][1]).name, - process.out.versions, + path(process.out.versions.get(0)).yaml, ).match("single_bam") }, + { assert snapshot(path(process.out.versions.get(0)).yaml).match("versions") }, ) } } diff --git a/modules/nf-core/pints/caller/tests/main.nf.test.snap b/modules/nf-core/pints/caller/tests/main.nf.test.snap index 767aa4970ce..d6d2a14bab5 100644 --- a/modules/nf-core/pints/caller/tests/main.nf.test.snap +++ b/modules/nf-core/pints/caller/tests/main.nf.test.snap @@ -1,4 +1,19 @@ { + "versions": { + "content": [ + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-29T22:22:29.559913" + }, "bams": { "content": [ [ @@ -24,15 +39,18 @@ ] ], "test_1_unidirectional_peaks.bed", - [ - "versions.yml:md5,6142633d4306c8a74b9716c4aac7e956" - ] + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T12:17:21.517020581" + "timestamp": "2024-09-29T22:19:23.738834" }, "single_bam": { "content": [ @@ -55,14 +73,17 @@ ] ], "test_1_unidirectional_peaks.bed", - [ - "versions.yml:md5,6142633d4306c8a74b9716c4aac7e956" - ] + { + "PINTS_CALLER": { + "python": "3.12.6", + "pints": "1.1.13" + } + } ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-23T11:07:12.112579276" + "timestamp": "2024-09-29T22:22:29.544608" } } \ No newline at end of file diff --git a/modules/nf-core/pypgx/createinputvcf/environment.yml b/modules/nf-core/pypgx/createinputvcf/environment.yml new file mode 100644 index 00000000000..36c4150bd25 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/environment.yml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::pypgx=0.25.0 diff --git a/modules/nf-core/pypgx/createinputvcf/main.nf b/modules/nf-core/pypgx/createinputvcf/main.nf new file mode 100644 index 00000000000..6de30339a65 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/main.nf @@ -0,0 +1,59 @@ +process PYPGX_CREATEINPUTVCF { + tag "$meta.id" + label "process_single" + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pypgx:0.25.0--pyh7e72e81_0': + 'biocontainers/pypgx:0.25.0--pyh7e72e81_0' }" + + input: + tuple val(meta), path(bam), path(bai) + tuple val(meta2), path(fasta) + val(pgx_genes) + val(assembly_version) + + + + output: + tuple val(meta), path("*.vcf.gz"), emit: vcf + tuple val(meta), path("*.vcf.gz.tbi"), emit: tbi + path("versions.yml"), emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def assembly = "${assembly_version}" ?: "GRCh38" + def prefix = task.ext.prefix ?: "${meta.id}" + def pgx_genes = "--genes ${pgx_genes.join(' ')}" ?: '' + + """ + pypgx create-input-vcf \\ + ${args} \\ + ${pgx_genes} \\ + --assembly ${assembly} \\ + ${prefix}.vcf.gz \\ + ${fasta} \\ + $bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pypgx: \$(echo \$(pypgx -v 2>&1) | sed 's/.* //') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo "" | gzip > ${prefix}.vcf.gz + touch ${prefix}.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pypgx: \$(echo \$(pypgx -v 2>&1) | sed 's/.* //') + END_VERSIONS + """ +} diff --git a/modules/nf-core/pypgx/createinputvcf/meta.yml b/modules/nf-core/pypgx/createinputvcf/meta.yml new file mode 100644 index 00000000000..3e95800769b --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/meta.yml @@ -0,0 +1,76 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "pypgx_createinputvcf" +description: Call SNVs/indels from BAM files for all target genes. +keywords: + - pypgx + - Pharmacogenetics + - variants +tools: + - "pypgx": + description: "A Python package for pharmacogenomics research" + homepage: "https://pypgx.readthedocs.io/en/latest/" + documentation: "https://pypgx.readthedocs.io/en/latest/" + tool_dev_url: "https://github.com/sbslee/pypgx" + doi: "10.1371/journal.pone.0272129" + licence: ["MIT"] + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - bam: + type: file + description: Input BAM file + pattern: "*.{bam}" + - bai: + type: file + description: Input BAM index file + pattern: "*.{bam.bai}" + - - meta2: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - fasta: + type: file + description: Reference genome file + pattern: "*.{fasta,fa,fna,fasta.gz,fa.gz,fna.gz}" + - - pgx_genes: + type: list + description: List of PGx genes supported by PyPGx to include in variant calling. + - - assembly_version: + type: string + description: Genome assembly version to use for variant calling. + pattern: "{GRCh37,GRCh38}" +output: + - vcf: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - "*.vcf.gz": + type: file + description: VCF file containing called SNVs/indels + pattern: "*.vcf.gz" + - tbi: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [id: 'test'] + - "*.vcf.gz.tbi": + type: file + description: File containing the VCF tabix index + pattern: "*.vcf.gz.tbi" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@jorisvansteenbrugge" +maintainers: + - "@jorisvansteenbrugge" diff --git a/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test new file mode 100644 index 00000000000..1faef5d16b9 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test @@ -0,0 +1,76 @@ +// nf-core modules test pypgx/createinputvcf +nextflow_process { + + name "Test Process PYPGX_CREATEINPUTVCF" + script "../main.nf" + process "PYPGX_CREATEINPUTVCF" + + tag "modules" + tag "modules_nfcore" + tag "pypgx" + tag "pypgx/createinputvcf" + + + test("human paired end bam CYP2D6 locus - GR37_chr22.fasta") { + when { + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.PGx.CYP2D6.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test.PGx.CYP2D6.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id: 'GRCh37'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/GRCh37_chr22.fasta.gz', checkIfExists: true) + ] + input[2] = ["CYP2D6"] + input[3] = "GRCh37" + """ + } + } + + then { + def vcfFile = path(process.out.vcf[0][1]).vcf + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.vcf[0][1]).name, + process.out.versions, + vcfFile.variantsMD5).match() }, + {assert vcfFile.chromosomes == ['22'] as Set}, + {assert vcfFile.sampleCount == 1} + ) + } + } + + + test("stub") { + options "-stub" + + when { + process { + """ + input[0] = [ + [id: 'test'], + [], + [] + ] + input[1] = [ + [id: 'test_genome'], + [] + ] + input[2] = [] + input[3] = "" + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} diff --git a/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap new file mode 100644 index 00000000000..f41606648d0 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/main.nf.test.snap @@ -0,0 +1,65 @@ +{ + "human paired end bam CYP2D6 locus - GR37_chr22.fasta": { + "content": [ + "test.vcf.gz", + [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ], + "3a4fe74d4e0b45036ebd91bdae36b225" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2024-10-03T08:47:44.853651" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ], + "tbi": [ + [ + { + "id": "test" + }, + "test.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,6afe5f69d9cb49f74eb1958a8ba2e990" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2024-10-03T08:47:53.567926" + } +} \ No newline at end of file diff --git a/modules/nf-core/pypgx/createinputvcf/tests/tags.yml b/modules/nf-core/pypgx/createinputvcf/tests/tags.yml new file mode 100644 index 00000000000..9bab1c03b35 --- /dev/null +++ b/modules/nf-core/pypgx/createinputvcf/tests/tags.yml @@ -0,0 +1,2 @@ +pypgx/createinputvcf: + - "modules/nf-core/pypgx/createinputvcf/**" diff --git a/modules/nf-core/rtgtools/rocplot/tests/main.nf.test b/modules/nf-core/rtgtools/rocplot/tests/main.nf.test index c7c37084e52..52c5386d16c 100644 --- a/modules/nf-core/rtgtools/rocplot/tests/main.nf.test +++ b/modules/nf-core/rtgtools/rocplot/tests/main.nf.test @@ -35,8 +35,8 @@ nextflow_process { file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists: true), 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/test2_haplotc.ann.vcf.gz.tbi', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists: true) ] input[1] = UNTAR.out.untar println(projectDir) diff --git a/modules/nf-core/rtgtools/vcfeval/main.nf b/modules/nf-core/rtgtools/vcfeval/main.nf index 98f9adb18dd..330a1f3d964 100644 --- a/modules/nf-core/rtgtools/vcfeval/main.nf +++ b/modules/nf-core/rtgtools/vcfeval/main.nf @@ -8,7 +8,7 @@ process RTGTOOLS_VCFEVAL { 'biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(truth_vcf), path(truth_vcf_tbi), path(truth_bed), path(evaluation_bed) + tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(truth_vcf), path(truth_vcf_tbi), path(truth_bed), path(regions_bed) tuple val(meta2), path(sdf) output: @@ -33,8 +33,8 @@ process RTGTOOLS_VCFEVAL { script: def args = task.ext.args ?: "" def prefix = task.ext.prefix ?: "${meta.id}" - def bed_regions = truth_bed ? "--bed-regions=${truth_bed}" : "" - def eval_regions = evaluation_bed ? "--evaluation-regions=${evaluation_bed}" : "" + def bed_regions = regions_bed ? "--bed-regions=${regions_bed}" : "" + def eval_regions = truth_bed ? "--evaluation-regions=${truth_bed}" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index ${truth_vcf}" def query_index = query_vcf_tbi ? "" : "rtg index ${query_vcf}" def avail_mem = task.memory.toGiga() + "G" @@ -68,17 +68,17 @@ process RTGTOOLS_VCFEVAL { def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.tp.vcf.gz + echo | gzip > ${prefix}.tp.vcf.gz touch ${prefix}.tp.vcf.gz.tbi - touch ${prefix}.fn.vcf.gz + echo | gzip > ${prefix}.fn.vcf.gz touch ${prefix}.fn.vcf.gz.tbi - touch ${prefix}.fp.vcf.gz + echo | gzip > ${prefix}.fp.vcf.gz touch ${prefix}.fp.vcf.gz.tbi - touch ${prefix}.tp-baseline.vcf.gz + echo | gzip > ${prefix}.tp-baseline.vcf.gz touch ${prefix}.tp-baseline.vcf.gz.tbi - touch ${prefix}.snp_roc.tsv.gz - touch ${prefix}.non_snp_roc.tsv.gz - touch ${prefix}.weighted_roc.tsv.gz + echo | gzip > ${prefix}.snp_roc.tsv.gz + echo | gzip > ${prefix}.non_snp_roc.tsv.gz + echo | gzip > ${prefix}.weighted_roc.tsv.gz touch ${prefix}.summary.txt touch ${prefix}.phasing.txt diff --git a/modules/nf-core/rtgtools/vcfeval/meta.yml b/modules/nf-core/rtgtools/vcfeval/meta.yml index 9814124ee79..4c59bab5216 100644 --- a/modules/nf-core/rtgtools/vcfeval/meta.yml +++ b/modules/nf-core/rtgtools/vcfeval/meta.yml @@ -40,11 +40,13 @@ input: type: file description: A BED file containining the strict regions where VCFeval should only evaluate the fully overlapping variants (optional) + This input should be used to provide the golden truth BED files. pattern: "*.bed" - - evaluation_bed: + - regions_bed: type: file description: A BED file containing the regions where VCFeval will evaluate every fully and partially overlapping variant (optional) + This input should be used to provide the regions used by the analysis pattern: "*.bed" - - meta2: type: map diff --git a/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test new file mode 100644 index 00000000000..55abc842759 --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test @@ -0,0 +1,113 @@ +nextflow_process { + + name "Test Process RTGTOOLS_VCFEVAL" + script "../main.nf" + process "RTGTOOLS_VCFEVAL" + + tag "modules" + tag "modules_nfcore" + tag "rtgtools" + tag "rtgtools/vcfeval" + tag "untar" + + setup { + run("UNTAR") { + script "../../../untar/main.nf" + process { + """ + input[0] = Channel.value([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/genome_sdf.tar.gz', checkIfExists:true) + ]) + """ + } + } + } + + test("homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf") { + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists:true), + 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/test2_haplotc.ann.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists:true) + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - [vcf, [], truth, [], [], []], sdf") { + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + [], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz', checkIfExists:true), + [], + [], + [] + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [id:'test'], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi', checkIfExists:true), + 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/test2_haplotc.ann.vcf.gz.tbi', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists:true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed', checkIfExists:true) + ]) + input[1] = UNTAR.out.untar + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap new file mode 100644 index 00000000000..4f39e2d4641 --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/main.nf.test.snap @@ -0,0 +1,677 @@ +{ + "homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,de36bf613b3dacf4a043311336bb4a94" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f4c8df93c8bdab603036bbc27b4a28c3" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,31988234bee208cacb3de90dabe1797f" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,11d7393a16c25ac0a092382fecafee9b" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,eb0910409b8b088655defbd152103b81" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,fc419367818700d47df073615aeb9077" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,eb0910409b8b088655defbd152103b81" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,31988234bee208cacb3de90dabe1797f" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,11d7393a16c25ac0a092382fecafee9b" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f4c8df93c8bdab603036bbc27b4a28c3" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5171021307097220337dbcaccc860495" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,de36bf613b3dacf4a043311336bb4a94" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:17:31.564974666" + }, + "homo_sapiens - [vcf, [], truth, [], [], []], sdf": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5125ee41457c9d93f46b19e32788edb4" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,a0e9ac2d38c04bd591ab8f857c5c9133" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,5dfacd641b080cc8ad22eebec015c698" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f33feb32f84958fb931063044fba369b" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,133677dbd8be657439ea2b03fdfb8795" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,df96e4e4014cdb3050cb6f221f0cdca9" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,d4bfa2c7271351ca19589f0f57f210b7" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,920af25c3c18a438b11440702562fa35" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,95938320b425e28cf06c45ab45ad0360" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,85edc0101bb9e8d3edc11abe4fdcda93" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,30283ede3bcc5dd247f8a84bf345bf9a" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,95938320b425e28cf06c45ab45ad0360" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,920af25c3c18a438b11440702562fa35" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,df96e4e4014cdb3050cb6f221f0cdca9" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,092a7a3162e7cff25d273525751eb284" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,d4bfa2c7271351ca19589f0f57f210b7" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,30283ede3bcc5dd247f8a84bf345bf9a" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,133677dbd8be657439ea2b03fdfb8795" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,85edc0101bb9e8d3edc11abe4fdcda93" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,f33feb32f84958fb931063044fba369b" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,a0e9ac2d38c04bd591ab8f857c5c9133" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,5125ee41457c9d93f46b19e32788edb4" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,5dfacd641b080cc8ad22eebec015c698" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:18:04.344989466" + }, + "homo_sapiens - [vcf, tbi, truth, truth_tbi, truth_bed, regions_bed], sdf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "10": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "11": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "12": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "13": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "2": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "5": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "6": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "7": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "8": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "9": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "baseline_tbi": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "baseline_vcf": [ + [ + { + "id": "test" + }, + "test.tp-baseline.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "fn_tbi": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fn_vcf": [ + [ + { + "id": "test" + }, + "test.fn.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "fp_tbi": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fp_vcf": [ + [ + { + "id": "test" + }, + "test.fp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "non_snp_roc": [ + [ + { + "id": "test" + }, + "test.non_snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "phasing": [ + [ + { + "id": "test" + }, + "test.phasing.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "snp_roc": [ + [ + { + "id": "test" + }, + "test.snp_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "summary": [ + [ + { + "id": "test" + }, + "test.summary.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tp_tbi": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz.tbi:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "tp_vcf": [ + [ + { + "id": "test" + }, + "test.tp.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,a228f0d9e8b205b4cc7c485151a77bb0" + ], + "weighted_roc": [ + [ + { + "id": "test" + }, + "test.weighted_roc.tsv.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-30T15:23:21.165461388" + } +} \ No newline at end of file diff --git a/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config b/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config new file mode 100644 index 00000000000..7563521514f --- /dev/null +++ b/modules/nf-core/rtgtools/vcfeval/tests/nextflow.config @@ -0,0 +1,4 @@ +process { + withName: UNTAR { + } +} diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index acfd9252ce4..caf3c61a87d 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -12,11 +12,11 @@ process SAMTOOLS_SORT { tuple val(meta2), path(fasta) output: - tuple val(meta), path("*.bam"), emit: bam, optional: true - tuple val(meta), path("*.cram"), emit: cram, optional: true - tuple val(meta), path("*.crai"), emit: crai, optional: true - tuple val(meta), path("*.csi"), emit: csi, optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*.cram"), emit: cram, optional: true + tuple val(meta), path("*.crai"), emit: crai, optional: true + tuple val(meta), path("*.csi"), emit: csi, optional: true + path "versions.yml", emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test b/modules/nf-core/samtools/sort/tests/main.nf.test index c2ea9c72ac1..b05e6691bea 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test +++ b/modules/nf-core/samtools/sort/tests/main.nf.test @@ -39,6 +39,40 @@ nextflow_process { } } + test("multiple bam") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + 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] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot( + process.out.bam, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } }, + process.out.versions + ).match()} + ) + } + } + test("cram") { config "./nextflow_cram.config" @@ -98,6 +132,36 @@ nextflow_process { } } + test("multiple bam - stub") { + + config "./nextflow.config" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ + 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] = Channel.of([ + [ id:'fasta' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("cram - stub") { options "-stub" diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test.snap b/modules/nf-core/samtools/sort/tests/main.nf.test.snap index 2d6b2900432..469891fe3ea 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/sort/tests/main.nf.test.snap @@ -159,6 +159,101 @@ }, "timestamp": "2024-09-16T08:50:19.061912443" }, + "multiple bam": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi" + ] + ], + [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:59:55.479443" + }, + "multiple bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "4": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,8a16ba90c7d294cbb4c33ac0f7127a12" + ] + ], + "crai": [ + + ], + "cram": [ + + ], + "csi": [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi:md5,d185916eaff9afeb4d0aeab3310371f9" + ] + ], + "versions": [ + "versions.yml:md5,2659b187d681241451539d4c53500b9f" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.09.0" + }, + "timestamp": "2024-10-08T11:36:13.781404" + }, "bam": { "content": [ [ @@ -185,8 +280,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.09.0" }, - "timestamp": "2024-09-16T08:49:43.971158333" + "timestamp": "2024-10-08T11:59:46.372244" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/applyvarcal/environment.yml b/modules/nf-core/sentieon/applyvarcal/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/applyvarcal/environment.yml +++ b/modules/nf-core/sentieon/applyvarcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/applyvarcal/main.nf b/modules/nf-core/sentieon/applyvarcal/main.nf index 9f64f5a2f32..724912d689e 100644 --- a/modules/nf-core/sentieon/applyvarcal/main.nf +++ b/modules/nf-core/sentieon/applyvarcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_APPLYVARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) diff --git a/modules/nf-core/sentieon/bwaindex/environment.yml b/modules/nf-core/sentieon/bwaindex/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/bwaindex/environment.yml +++ b/modules/nf-core/sentieon/bwaindex/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/bwaindex/main.nf b/modules/nf-core/sentieon/bwaindex/main.nf index 2d3f1afa61f..4372cc04bae 100644 --- a/modules/nf-core/sentieon/bwaindex/main.nf +++ b/modules/nf-core/sentieon/bwaindex/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAINDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/sentieon/bwamem/environment.yml b/modules/nf-core/sentieon/bwamem/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/bwamem/environment.yml +++ b/modules/nf-core/sentieon/bwamem/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/bwamem/main.nf b/modules/nf-core/sentieon/bwamem/main.nf index 76e364decac..c038a857bf5 100644 --- a/modules/nf-core/sentieon/bwamem/main.nf +++ b/modules/nf-core/sentieon/bwamem/main.nf @@ -5,8 +5,8 @@ process SENTIEON_BWAMEM { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(reads) diff --git a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap index 0dc67a9a5b6..77070ccc45b 100644 --- a/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/bwamem/tests/main.nf.test.snap @@ -8,12 +8,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -21,12 +21,12 @@ "id": "test", "single_end": true }, - "test.bam:md5,58bc2194d084cf8462a3a7f6114c303a", - "test.bam.bai:md5,4fd9b026ff2306cc292cd695e11d5628" + "test.bam:md5,7b62831cb67d6d4a8e33b3cb788dfb1b", + "test.bam.bai:md5,6fc1dff58fab0491ecfa48f016041a18" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -34,7 +34,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:40.112926615" + "timestamp": "2024-10-02T10:25:33.275731212" }, "Paired-End - stub": { "content": [ @@ -50,7 +50,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -63,7 +63,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -71,7 +71,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:20.476791905" + "timestamp": "2024-10-02T10:26:16.58588651" }, "Paired-End": { "content": [ @@ -82,12 +82,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -95,12 +95,12 @@ "id": "test", "single_end": false }, - "test.bam:md5,3418d864f42215d1c0c8d604d9571b0d", + "test.bam:md5,b0c8606d660dbe50a34cf80a376bb268", "test.bam.bai:md5,be4ad85790468042f7fc01ca2e36a919" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -108,7 +108,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:00.346034062" + "timestamp": "2024-10-02T10:25:55.068934639" }, "Single-End - stub": { "content": [ @@ -124,7 +124,7 @@ ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -137,7 +137,7 @@ ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -145,7 +145,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:59:10.054146084" + "timestamp": "2024-10-02T10:26:05.151760076" }, "Single-End Output CRAM": { "content": [ @@ -156,12 +156,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "1": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ], "bam_and_bai": [ [ @@ -169,12 +169,12 @@ "id": "test", "single_end": true }, - "test.cram:md5,04d88bd709dc0bc27ca81a09e80d4a1b", - "test.cram.crai:md5,ac34c713fe95aa8a1fd6291bdbb76dcf" + "test.cram:md5,817cf0847ae0c89062e2ee4be312101a", + "test.cram.crai:md5,60f801c550a18982e55207adb31ec351" ] ], "versions": [ - "versions.yml:md5,6095ad80036c5d876c2616504a21efcc" + "versions.yml:md5,755d24c7416c1408313ec93814cef759" ] } ], @@ -182,6 +182,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-19T08:58:49.962693499" + "timestamp": "2024-10-02T10:25:44.360755915" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/collectvcmetrics/environment.yml b/modules/nf-core/sentieon/collectvcmetrics/environment.yml index f065ece32f4..d1a652d9586 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/environment.yml +++ b/modules/nf-core/sentieon/collectvcmetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::sentieon=202308.02" + - "bioconda::sentieon=202308.03" diff --git a/modules/nf-core/sentieon/collectvcmetrics/main.nf b/modules/nf-core/sentieon/collectvcmetrics/main.nf index 47038ca82f9..c4897a9ba98 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/main.nf +++ b/modules/nf-core/sentieon/collectvcmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COLLECTVCMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta) , path(vcf), path(tbi) diff --git a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap index 1769bf458ad..66598400e90 100644 --- a/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/collectvcmetrics/tests/main.nf.test.snap @@ -19,7 +19,7 @@ ] ], "2": [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ], "metrics": [ [ @@ -38,15 +38,15 @@ ] ], "versions": [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] } ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T14:04:32.056180428" + "timestamp": "2024-10-02T10:26:43.851386846" }, "Test VCF with intervals": { "content": [ @@ -61,14 +61,14 @@ "" ], [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T13:27:27.277407951" + "timestamp": "2024-10-02T10:26:36.744267657" }, "Test VCF": { "content": [ @@ -83,13 +83,13 @@ "" ], [ - "versions.yml:md5,3598e0348efd4895a499bcca3c121577" + "versions.yml:md5,b323d4c67c15a60c781d0b693058b80b" ] ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-12T13:27:19.639784594" + "timestamp": "2024-10-02T10:26:27.119501631" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/coveragemetrics/environment.yml b/modules/nf-core/sentieon/coveragemetrics/environment.yml index f065ece32f4..d1a652d9586 100644 --- a/modules/nf-core/sentieon/coveragemetrics/environment.yml +++ b/modules/nf-core/sentieon/coveragemetrics/environment.yml @@ -4,4 +4,4 @@ channels: - conda-forge - bioconda dependencies: - - "bioconda::sentieon=202308.02" + - "bioconda::sentieon=202308.03" diff --git a/modules/nf-core/sentieon/coveragemetrics/main.nf b/modules/nf-core/sentieon/coveragemetrics/main.nf index cf9afca190e..1ff7b07af11 100644 --- a/modules/nf-core/sentieon/coveragemetrics/main.nf +++ b/modules/nf-core/sentieon/coveragemetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_COVERAGEMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta) , path(bam), path(bai) diff --git a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap index cae0395fd71..31d11a34fa1 100644 --- a/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/coveragemetrics/tests/main.nf.test.snap @@ -26,7 +26,7 @@ ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ @@ -52,7 +52,7 @@ ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -60,7 +60,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:42.344116091" + "timestamp": "2024-10-02T10:27:12.750615072" }, "Test with interval": { "content": [ @@ -114,7 +114,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -165,7 +165,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -173,7 +173,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:35.316973881" + "timestamp": "2024-10-02T10:27:02.629834795" }, "Test multiple BAMs": { "content": [ @@ -227,7 +227,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -278,7 +278,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -286,7 +286,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:57.275424452" + "timestamp": "2024-10-02T10:27:30.422776076" }, "Test - stub": { "content": [ @@ -310,7 +310,7 @@ ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ @@ -331,7 +331,7 @@ ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -339,7 +339,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T15:36:05.272586496" + "timestamp": "2024-10-02T10:27:36.672912519" }, "Test per sample": { "content": [ @@ -393,7 +393,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -444,7 +444,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -452,7 +452,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:28.382765881" + "timestamp": "2024-10-02T10:26:52.908981157" }, "Test readgroup partition": { "content": [ @@ -506,7 +506,7 @@ ] ], "6": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ], "coverage_counts": [ [ @@ -557,7 +557,7 @@ ] ], "versions": [ - "versions.yml:md5,f929dc12581c3a297a974e3eda9057b0" + "versions.yml:md5,ba376730b2ae7f9f177a079f07f5e2f4" ] } ], @@ -565,6 +565,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-07T10:43:49.706927947" + "timestamp": "2024-10-02T10:27:20.950349637" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/datametrics/environment.yml b/modules/nf-core/sentieon/datametrics/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/datametrics/environment.yml +++ b/modules/nf-core/sentieon/datametrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/datametrics/main.nf b/modules/nf-core/sentieon/datametrics/main.nf index 6567cc7218f..85bf6b507e6 100644 --- a/modules/nf-core/sentieon/datametrics/main.nf +++ b/modules/nf-core/sentieon/datametrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DATAMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap b/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap index 25b1ae128fb..d31612106bb 100644 --- a/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/datametrics/tests/main.nf.test.snap @@ -21,7 +21,7 @@ ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -186,7 +186,7 @@ ] ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -194,7 +194,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:01:01.974389137" + "timestamp": "2024-10-02T10:22:45.899449567" }, "metrics - with plots": { "content": [ @@ -205,7 +205,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "1": [ @@ -214,11 +214,11 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -226,7 +226,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "3": [ @@ -235,7 +235,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "4": [ @@ -244,7 +244,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "5": [ @@ -253,7 +253,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "6": [ @@ -298,7 +298,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "gc_metrics": [ @@ -307,7 +307,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "gc_plot": [ @@ -325,7 +325,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "is_metrics": [ @@ -334,7 +334,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "is_plot": [ @@ -352,7 +352,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "mq_plot": [ @@ -370,7 +370,7 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "qd_plot": [ @@ -383,7 +383,7 @@ ] ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -391,7 +391,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:00:41.711146115" + "timestamp": "2024-10-02T10:22:36.981327826" }, "metrics - no plots": { "content": [ @@ -402,7 +402,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "1": [ @@ -411,11 +411,11 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "10": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ], "2": [ [ @@ -423,7 +423,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "3": [ @@ -432,7 +432,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "4": [ @@ -441,7 +441,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "5": [ @@ -450,7 +450,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "6": [ @@ -471,7 +471,7 @@ "id": "test", "single_end": false }, - "test_aln_metrics.txt:md5,1cf61ba2d564cf427976d2543fd770ac" + "test_aln_metrics.txt:md5,1950af402ff3751023761de5bb649b43" ] ], "gc_metrics": [ @@ -480,7 +480,7 @@ "id": "test", "single_end": false }, - "test_gc_metrics.txt:md5,1ed8166e64c9a44e40ab6e5173489ef2" + "test_gc_metrics.txt:md5,42d6ee7ce81858329b66c38e6558d66d" ] ], "gc_plot": [ @@ -492,7 +492,7 @@ "id": "test", "single_end": false }, - "test_gc_summary.txt:md5,33e6d54497ac882486c38ec05b2ca60a" + "test_gc_summary.txt:md5,367143e0f7680555bb68173561919e5f" ] ], "is_metrics": [ @@ -501,7 +501,7 @@ "id": "test", "single_end": false }, - "test_is_metrics.txt:md5,be543f33974d1ed4663ef2676a416669" + "test_is_metrics.txt:md5,0ce93baa9d470f9b6344094218d74e59" ] ], "is_plot": [ @@ -513,7 +513,7 @@ "id": "test", "single_end": false }, - "test_mq_metrics.txt:md5,4f4540509edee8dc3ad78caf1733e206" + "test_mq_metrics.txt:md5,159ed897b11e7621703365134f60c1f7" ] ], "mq_plot": [ @@ -525,14 +525,14 @@ "id": "test", "single_end": false }, - "test_qd_metrics.txt:md5,f53e8b0da374aa35908cfd2180bf1406" + "test_qd_metrics.txt:md5,fa86f2f5cc195ea48565401f68ba0730" ] ], "qd_plot": [ ], "versions": [ - "versions.yml:md5,7c769d886e94ed56a45445ac1c9ebcdf" + "versions.yml:md5,aa6e267932a3f74d88a7bce286a1493a" ] } ], @@ -540,6 +540,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-20T12:00:27.37021578" + "timestamp": "2024-10-02T10:22:26.909097428" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dedup/environment.yml b/modules/nf-core/sentieon/dedup/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dedup/environment.yml +++ b/modules/nf-core/sentieon/dedup/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dedup/main.nf b/modules/nf-core/sentieon/dedup/main.nf index f0b387f64f6..5735df73406 100644 --- a/modules/nf-core/sentieon/dedup/main.nf +++ b/modules/nf-core/sentieon/dedup/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DEDUP { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap index c1cd83ec347..26117a7cdf4 100644 --- a/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/dedup/tests/main.nf.test.snap @@ -7,7 +7,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "1": [ @@ -34,7 +34,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -42,7 +42,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "6": [ @@ -50,11 +50,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -80,7 +80,7 @@ { "id": "test" }, - "test.cram:md5,d2993113f4614f5196fc74d489412fc4" + "test.cram:md5,e46e97256846338e1cff32d862105491" ] ], "metrics": [ @@ -88,7 +88,7 @@ { "id": "test" }, - "test.cram.metrics:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "metrics_multiqc_tsv": [ @@ -96,7 +96,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,ccd45ea1f2397184e3ab271b1ba8bb2a" + "test.cram.metrics.multiqc.tsv:md5,208f7c5fa2f489cfaaffbce116fed0bc" ] ], "score": [ @@ -104,19 +104,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:23.640202" + "timestamp": "2024-10-02T10:28:10.570152622" }, "Test removing duplicates": { "content": [ @@ -126,7 +126,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "1": [ @@ -153,7 +153,7 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "5": [ @@ -161,7 +161,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "6": [ @@ -169,11 +169,11 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -199,7 +199,7 @@ { "id": "test" }, - "test.cram:md5,e67398ab64430191f9d15cb8a8f425c7" + "test.cram:md5,8075d3e7c66d36fdbb81270eefc996d4" ] ], "metrics": [ @@ -207,7 +207,7 @@ { "id": "test" }, - "test.cram.metrics:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics:md5,2a41239de0275a8321f4658286d97d65" ] ], "metrics_multiqc_tsv": [ @@ -215,7 +215,7 @@ { "id": "test" }, - "test.cram.metrics.multiqc.tsv:md5,7fc2ddc6b21838bdc42aff146549cea2" + "test.cram.metrics.multiqc.tsv:md5,2a41239de0275a8321f4658286d97d65" ] ], "score": [ @@ -223,19 +223,19 @@ { "id": "test" }, - "test.score:md5,a97459ff2939682091bac3c3912402dc" + "test.score:md5,835f05ecc5d3ef5d4e31ba7f831d9a8b" ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:33.698037" + "timestamp": "2024-10-02T10:28:19.377946074" }, "Test stub": { "content": [ @@ -292,7 +292,7 @@ ] ], "7": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ], "bai": [ [ @@ -346,14 +346,14 @@ ] ], "versions": [ - "versions.yml:md5,f057aca19107ce54f0cec1e42edd097e" + "versions.yml:md5,763463853476be96846b6da5aecfacf4" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-26T13:02:41.360148" + "timestamp": "2024-10-02T10:28:28.792696026" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/dnamodelapply/environment.yml b/modules/nf-core/sentieon/dnamodelapply/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dnamodelapply/environment.yml +++ b/modules/nf-core/sentieon/dnamodelapply/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnamodelapply/main.nf b/modules/nf-core/sentieon/dnamodelapply/main.nf index b4b10ce4d09..85fd601b393 100644 --- a/modules/nf-core/sentieon/dnamodelapply/main.nf +++ b/modules/nf-core/sentieon/dnamodelapply/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNAMODELAPPLY { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(idx) diff --git a/modules/nf-core/sentieon/dnascope/environment.yml b/modules/nf-core/sentieon/dnascope/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/dnascope/environment.yml +++ b/modules/nf-core/sentieon/dnascope/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/dnascope/main.nf b/modules/nf-core/sentieon/dnascope/main.nf index 63d7d23b8a2..bdeb62521a3 100644 --- a/modules/nf-core/sentieon/dnascope/main.nf +++ b/modules/nf-core/sentieon/dnascope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_DNASCOPE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/environment.yml b/modules/nf-core/sentieon/gvcftyper/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/gvcftyper/environment.yml +++ b/modules/nf-core/sentieon/gvcftyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/gvcftyper/main.nf b/modules/nf-core/sentieon/gvcftyper/main.nf index e2e5d2434d9..6817c6dbe27 100644 --- a/modules/nf-core/sentieon/gvcftyper/main.nf +++ b/modules/nf-core/sentieon/gvcftyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_GVCFTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(gvcfs), path(tbis), path(intervals) diff --git a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap index 5e7e40fb6be..627b62fd872 100644 --- a/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/gvcftyper/tests/main.nf.test.snap @@ -2,58 +2,58 @@ "sentieon gvcftyper dbsnp": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:47.508154" + "timestamp": "2024-10-02T10:29:01.102534193" }, "sentieon gvcftyper dbsnp intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "21606383c760bf676d4c1f747b97d118" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:13:05.636172" + "timestamp": "2024-10-02T10:29:20.933217951" }, "sentieon gvcftyper vcf.gz": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:38.720056" + "timestamp": "2024-10-02T10:28:50.937002394" }, "sentieon gvcftyper intervals": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:56.700687" + "timestamp": "2024-10-02T10:29:11.029924476" }, "sentieon gvcftyper - stub": { "content": [ @@ -75,7 +75,7 @@ ] ], "2": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "vcf_gz": [ [ @@ -94,28 +94,28 @@ ] ], "versions": [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:03:46.379477" + "timestamp": "2024-10-02T10:29:30.788262037" }, "sentieon gvcftyper vcf": { "content": [ [ - "versions.yml:md5,bc9039ece9061340830a80ac2b171f3b" + "versions.yml:md5,03a2696e8be5117cccfe48a9bfd8c68a" ], "test.genotyped.vcf.gz.tbi", "d13216836f1452e200b215b796606671" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T14:12:29.24482" + "timestamp": "2024-10-02T10:28:41.276698125" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/haplotyper/environment.yml b/modules/nf-core/sentieon/haplotyper/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/haplotyper/environment.yml +++ b/modules/nf-core/sentieon/haplotyper/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/haplotyper/main.nf b/modules/nf-core/sentieon/haplotyper/main.nf index 33122d86b2f..a04b342caf0 100644 --- a/modules/nf-core/sentieon/haplotyper/main.nf +++ b/modules/nf-core/sentieon/haplotyper/main.nf @@ -5,8 +5,8 @@ process SENTIEON_HAPLOTYPER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index), path(intervals), path(recal_table) diff --git a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap index 5b77a02f5ee..0527f0fcbe4 100644 --- a/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/haplotyper/tests/main.nf.test.snap @@ -2,49 +2,49 @@ "Sentieon Haplotyper VCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "cea0045051da7877b38a1e25df812a91" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:16:51.711057" + "timestamp": "2024-10-02T10:29:42.675527558" }, "Sentieon Haplotyper Recalibration": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "10faa3b669c49826098e09784d8a4716" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T15:21:57.012186" + "timestamp": "2024-10-02T10:30:38.708688756" }, "Sentieon Haplotyper GVCF": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665" ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:01.797501" + "timestamp": "2024-10-02T10:29:53.99302993" }, "Sentieon Haplotyper BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -53,14 +53,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:12.021226" + "timestamp": "2024-10-02T10:30:03.323463525" }, "Sentieon Haplotyper DBSNP BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "228556b7921205f023fec51098feeb97", @@ -69,14 +69,14 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:30:48.065511" + "timestamp": "2024-10-02T10:30:25.917634004" }, "Sentieon Haplotyper Intervals BOTH": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.g.vcf.gz.tbi", "338fc3c37b208d6595948576833eb665", @@ -85,9 +85,9 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:17:22.554336" + "timestamp": "2024-10-02T10:30:14.249175276" }, "Sentieon Haplotyper - stub": { "content": [ @@ -125,7 +125,7 @@ ] ], "4": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "gvcf": [ [ @@ -160,28 +160,28 @@ ] ], "versions": [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-07-31T10:47:33.117516" + "timestamp": "2024-10-02T10:30:56.435076872" }, "Sentieon Haplotyper multiple CRAMs": { "content": [ [ - "versions.yml:md5,b58c15c81619894cdbab1f2edf694190" + "versions.yml:md5,1a7b41acc44d0724c8dca247e6323877" ], "test.unfiltered.vcf.gz.tbi", "b5d6e09e336438e38f7bf5531799e3a" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T17:04:30.67684393" + "timestamp": "2024-10-02T10:30:49.266709749" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/qualcal/main.nf b/modules/nf-core/sentieon/qualcal/main.nf index 91785ce52a3..de4287e1970 100644 --- a/modules/nf-core/sentieon/qualcal/main.nf +++ b/modules/nf-core/sentieon/qualcal/main.nf @@ -4,8 +4,8 @@ process SENTIEON_QUALCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap index 860131a7d01..676768d5de6 100644 --- a/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/qualcal/tests/main.nf.test.snap @@ -18,7 +18,7 @@ { "id": "test" }, - "test.recalibrated.bam:md5,f77f009ae183d0985e301ca43f0d8bc9" + "test.recalibrated.bam:md5,4fb1bab59ea9b0e04415a319f26622fb" ] ], "3": [ @@ -38,7 +38,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -61,7 +61,7 @@ { "id": "test" }, - "test.recalibrated.bam:md5,f77f009ae183d0985e301ca43f0d8bc9" + "test.recalibrated.bam:md5,4fb1bab59ea9b0e04415a319f26622fb" ] ], "table": [ @@ -76,7 +76,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -84,7 +84,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:58.953198101" + "timestamp": "2024-10-02T10:31:32.425231469" }, "BAM - stub": { "content": [ @@ -130,7 +130,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -173,7 +173,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -181,7 +181,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:20.102366914" + "timestamp": "2024-10-02T10:31:54.72910232" }, "Generate recalibration table - CRAM": { "content": [ @@ -207,7 +207,7 @@ ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ @@ -230,7 +230,7 @@ ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -238,7 +238,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:45.702266837" + "timestamp": "2024-10-02T10:31:19.033117607" }, "no recal BAM - stub": { "content": [ @@ -279,7 +279,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -317,7 +317,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -325,7 +325,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:27.713572216" + "timestamp": "2024-10-02T10:32:01.710216891" }, "Recalibrate - CRAM": { "content": [ @@ -346,7 +346,7 @@ { "id": "test" }, - "test.recalibrated.cram:md5,a092db2ad452a51f95c43e768dfe498d" + "test.recalibrated.cram:md5,9a51a1fd90e0a7cbec18762c6917c3d2" ] ], "3": [ @@ -366,7 +366,7 @@ ] ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ [ @@ -389,7 +389,7 @@ { "id": "test" }, - "test.recalibrated.cram:md5,a092db2ad452a51f95c43e768dfe498d" + "test.recalibrated.cram:md5,9a51a1fd90e0a7cbec18762c6917c3d2" ] ], "table": [ @@ -404,7 +404,7 @@ ] ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -412,7 +412,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:41:12.389107209" + "timestamp": "2024-10-02T10:31:46.677277887" }, "Generate recalibration table - BAM": { "content": [ @@ -438,7 +438,7 @@ ], "5": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ], "csv": [ @@ -461,7 +461,7 @@ ], "versions": [ - "versions.yml:md5,aa4db95f935851225e5a7c3bc18f0ba4" + "versions.yml:md5,9343aad4eaf20c1fe4ba1848f0b2461c" ] } ], @@ -469,6 +469,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-08-13T16:40:37.232122352" + "timestamp": "2024-10-02T10:31:08.50547086" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/readwriter/environment.yml b/modules/nf-core/sentieon/readwriter/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/readwriter/environment.yml +++ b/modules/nf-core/sentieon/readwriter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/readwriter/main.nf b/modules/nf-core/sentieon/readwriter/main.nf index 1011c7b2e13..7e00b9e98f5 100644 --- a/modules/nf-core/sentieon/readwriter/main.nf +++ b/modules/nf-core/sentieon/readwriter/main.nf @@ -5,8 +5,8 @@ process SENTIEON_READWRITER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(index) diff --git a/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap b/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap index 6e71a1d2bf5..0af607892b9 100644 --- a/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap +++ b/modules/nf-core/sentieon/readwriter/tests/main.nf.test.snap @@ -4,56 +4,56 @@ "2f11e4fe3390b8ad0a1852616fd1da04", "test.bam.bai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:14:43.34615" + "timestamp": "2024-10-02T10:32:10.696224516" }, "cram": { "content": [ "2f11e4fe3390b8ad0a1852616fd1da04", "test.cram.crai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:14:53.60186" + "timestamp": "2024-10-02T10:32:23.080911465" }, "merging - output bam": { "content": [ "ed89d81d2d6adafdbb819a1a4ec86493", "test.bam.bai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:03.780064" + "timestamp": "2024-10-02T10:32:36.741074568" }, "merging - output bam to cram": { "content": [ "ed89d81d2d6adafdbb819a1a4ec86493", "test.cram.crai", [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:15.313494" + "timestamp": "2024-10-02T10:33:50.523887508" }, "sentieon readwriter - stub": { "content": [ @@ -84,7 +84,7 @@ ] ], "3": [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ], "index": [ [ @@ -112,14 +112,14 @@ ] ], "versions": [ - "versions.yml:md5,7e0e065f92de4419098841b16968fbed" + "versions.yml:md5,914cac5a1fad066362698afc9419ecb2" ] } ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T13:15:23.88137" + "timestamp": "2024-10-02T10:34:00.856232997" } } \ No newline at end of file diff --git a/modules/nf-core/sentieon/tnfilter/environment.yml b/modules/nf-core/sentieon/tnfilter/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnfilter/environment.yml +++ b/modules/nf-core/sentieon/tnfilter/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnfilter/main.nf b/modules/nf-core/sentieon/tnfilter/main.nf index 57f8f20f57a..e1de21d534d 100644 --- a/modules/nf-core/sentieon/tnfilter/main.nf +++ b/modules/nf-core/sentieon/tnfilter/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNFILTER { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(stats), path(contamination), path(segments), path(orientation_priors) diff --git a/modules/nf-core/sentieon/tnhaplotyper2/environment.yml b/modules/nf-core/sentieon/tnhaplotyper2/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/environment.yml +++ b/modules/nf-core/sentieon/tnhaplotyper2/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnhaplotyper2/main.nf b/modules/nf-core/sentieon/tnhaplotyper2/main.nf index dfa9796754a..4a001cd1a6e 100644 --- a/modules/nf-core/sentieon/tnhaplotyper2/main.nf +++ b/modules/nf-core/sentieon/tnhaplotyper2/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNHAPLOTYPER2 { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/nf-core/sentieon/tnscope/environment.yml b/modules/nf-core/sentieon/tnscope/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/tnscope/environment.yml +++ b/modules/nf-core/sentieon/tnscope/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/tnscope/main.nf b/modules/nf-core/sentieon/tnscope/main.nf index ac13542f978..b588aeb419d 100644 --- a/modules/nf-core/sentieon/tnscope/main.nf +++ b/modules/nf-core/sentieon/tnscope/main.nf @@ -5,8 +5,8 @@ process SENTIEON_TNSCOPE { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/sentieon/varcal/environment.yml b/modules/nf-core/sentieon/varcal/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/varcal/environment.yml +++ b/modules/nf-core/sentieon/varcal/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/varcal/main.nf b/modules/nf-core/sentieon/varcal/main.nf index 7c85c121020..d78eacb44a0 100644 --- a/modules/nf-core/sentieon/varcal/main.nf +++ b/modules/nf-core/sentieon/varcal/main.nf @@ -5,8 +5,8 @@ process SENTIEON_VARCAL { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(vcf), path(tbi) // input vcf and tbi of variants to recalibrate diff --git a/modules/nf-core/sentieon/wgsmetrics/environment.yml b/modules/nf-core/sentieon/wgsmetrics/environment.yml index 185d95bde82..d7abf668ea9 100644 --- a/modules/nf-core/sentieon/wgsmetrics/environment.yml +++ b/modules/nf-core/sentieon/wgsmetrics/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::sentieon=202308.02 + - bioconda::sentieon=202308.03 diff --git a/modules/nf-core/sentieon/wgsmetrics/main.nf b/modules/nf-core/sentieon/wgsmetrics/main.nf index fad8d071700..9f268f5a858 100644 --- a/modules/nf-core/sentieon/wgsmetrics/main.nf +++ b/modules/nf-core/sentieon/wgsmetrics/main.nf @@ -5,8 +5,8 @@ process SENTIEON_WGSMETRICS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'oras://community.wave.seqera.io/library/sentieon:202308.02--ffce1b7074ce9924' : - 'nf-core/sentieon:202308.02--c641bc397cbf79d5' }" + 'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/a6/a64461f38d76bebea8e21441079e76e663e1168b0c59dafee6ee58440ad8c8ac/data' : + 'community.wave.seqera.io/library/sentieon:202308.03--59589f002351c221' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/seqkit/translate/environment.yml b/modules/nf-core/seqkit/translate/environment.yml new file mode 100644 index 00000000000..95584e3c48b --- /dev/null +++ b/modules/nf-core/seqkit/translate/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - "bioconda::seqkit=2.8.2" diff --git a/modules/nf-core/seqkit/translate/main.nf b/modules/nf-core/seqkit/translate/main.nf new file mode 100644 index 00000000000..2b6a60634f2 --- /dev/null +++ b/modules/nf-core/seqkit/translate/main.nf @@ -0,0 +1,62 @@ +process SEQKIT_TRANSLATE { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.8.2--h9ee0642_1': + 'biocontainers/seqkit:2.8.2--h9ee0642_1' }" + + input: + tuple val(meta), path(fastx) + + output: + tuple val(meta), path("${prefix}.*"), emit: fastx + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz|.+\.fsa|.+\.fsa.gz/ ) { + extension = "fasta" + } + extension = fastx.toString().endsWith('.gz') ? "${extension}.gz" : extension + def call_gzip = extension.endsWith('.gz') ? "| gzip -c $args2" : '' + if("${prefix}.${extension}" == "$fastx") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + seqkit \\ + translate \\ + --threads ${task.cpus} \\ + ${args} \\ + ${fastx} \\ + ${call_gzip} \\ + > ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$(seqkit version | cut -d' ' -f2) + END_VERSIONS + """ + + stub: + prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz|.+\.fsa|.+\.fsa.gz/ ) { + extension = "fasta" + } + extension = fastx.toString().endsWith('.gz') ? "${extension}.gz" : extension + if("${prefix}.${extension}" == "$fastx") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + touch ${prefix}.${extension} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$(seqkit version | cut -d' ' -f2) + END_VERSIONS + """ +} diff --git a/modules/nf-core/seqkit/translate/meta.yml b/modules/nf-core/seqkit/translate/meta.yml new file mode 100644 index 00000000000..19e711bfbaa --- /dev/null +++ b/modules/nf-core/seqkit/translate/meta.yml @@ -0,0 +1,47 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "seqkit_translate" +description: Translate DNA/RNA to protein sequence +keywords: + - seqkit + - translate + - protein +tools: + - "seqkit": + description: "A cross-platform and ultrafast toolkit for FASTA/Q file manipulation" + homepage: "https://bioinf.shenwei.me/seqkit/" + documentation: "https://bioinf.shenwei.me/seqkit/usage/" + tool_dev_url: "https://github.com/shenwei356/seqkit" + doi: "10.1371/journal.pone.0163962" + licence: ["MIT"] + identifier: biotools:seqkit + +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - fastx: + type: file + description: Input fasta/fastq file + pattern: "*.{fna,fsa,fas,fa,fasta,fastq,fq}[.gz]" +output: + - fastx: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1' ]` + - ${prefix}.*: + type: file + description: Translated fasta/fastq file + pattern: "*.{fna,fsa,fas,fa,fasta,fastq,fq}[.gz]" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@delfiterradas" +maintainers: + - "@delfiterradas" diff --git a/modules/nf-core/seqkit/translate/tests/main.nf.test b/modules/nf-core/seqkit/translate/tests/main.nf.test new file mode 100644 index 00000000000..de1547fbddf --- /dev/null +++ b/modules/nf-core/seqkit/translate/tests/main.nf.test @@ -0,0 +1,193 @@ +nextflow_process { + + name "Test Process SEQKIT_TRANSLATE" + script "../main.nf" + process "SEQKIT_TRANSLATE" + + tag "modules" + tag "modules_nfcore" + tag "seqkit" + tag "seqkit/translate" + + test("sarscov2 - genome_fasta") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - genome_fasta_gz") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta.gz', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - test_1_fastq_gz") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - transcriptome_fasta") { + + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/transcriptome.fasta', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("file_name_conflict-fail_with_error") { + when { + process { + """ + input[0] = [ + [ id:'test_1' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert !process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } + ) + } + + } + + test("sarscov2-genome_fasta-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + ) + } + + } + + test("file_name_conflict-fail_with_error-stub") { + + options '-stub' + + when { + process { + """ + input[0] = [ + [ id:'genome' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert !process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } + ) + } + + } + +} diff --git a/modules/nf-core/seqkit/translate/tests/main.nf.test.snap b/modules/nf-core/seqkit/translate/tests/main.nf.test.snap new file mode 100644 index 00000000000..68a27185c5f --- /dev/null +++ b/modules/nf-core/seqkit/translate/tests/main.nf.test.snap @@ -0,0 +1,202 @@ +{ + "sarscov2 - genome_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:33.440888698" + }, + "sarscov2 - bam - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-20T15:24:19.344543763" + }, + "sarscov2-genome_fasta-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T13:58:35.061712261" + }, + "sarscov2 - transcriptome_fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta:md5,8ace22c911902152e71043cf62661f1f" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta:md5,8ace22c911902152e71043cf62661f1f" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:12:02.993246822" + }, + "sarscov2 - genome_fasta_gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fasta.gz:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fasta.gz:md5,bbd96f0e48a0ef530d8535dd2e9dda2d" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:43.884810694" + }, + "sarscov2 - test_1_fastq_gz": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,c80e171f26a8c1f81c3b3f004d861b7a" + ] + ], + "1": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ], + "fastx": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,c80e171f26a8c1f81c3b3f004d861b7a" + ] + ], + "versions": [ + "versions.yml:md5,bf64d8d652a9b313153c953eab761f33" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-09-27T14:11:53.792592007" + } +} \ No newline at end of file diff --git a/modules/nf-core/severus/tests/main.nf.test b/modules/nf-core/severus/tests/main.nf.test index 1b85a109f04..ab700a4c12c 100644 --- a/modules/nf-core/severus/tests/main.nf.test +++ b/modules/nf-core/severus/tests/main.nf.test @@ -7,7 +7,6 @@ nextflow_process { tag "modules" tag "modules_nfcore" tag "severus" - tag "deepvariant" test("homo_sapiens - [ bam, bai, [], [], [] ], [[],[]]") { @@ -206,4 +205,4 @@ nextflow_process { } -} \ No newline at end of file +} diff --git a/modules/nf-core/spring/compress/main.nf b/modules/nf-core/spring/compress/main.nf index 2b096216e2c..5f8ceb374ef 100644 --- a/modules/nf-core/spring/compress/main.nf +++ b/modules/nf-core/spring/compress/main.nf @@ -37,4 +37,17 @@ process SPRING_COMPRESS { spring: ${VERSION} END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${prefix}.spring + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spring: ${VERSION} + END_VERSIONS + """ + } diff --git a/modules/nf-core/spring/compress/tests/main.nf.test b/modules/nf-core/spring/compress/tests/main.nf.test index 45690c34fd6..ead6e028335 100644 --- a/modules/nf-core/spring/compress/tests/main.nf.test +++ b/modules/nf-core/spring/compress/tests/main.nf.test @@ -64,4 +64,62 @@ nextflow_process { } } + test("test-spring-compress-single-end-stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + [] + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.spring[0][1]).name, + process.out.versions + ).match() + } + ) + } + } + + test("test-spring-compress-paired-end-stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.spring[0][1]).name, + process.out.versions + ).match() + } + ) + } + } + } diff --git a/modules/nf-core/spring/compress/tests/main.nf.test.snap b/modules/nf-core/spring/compress/tests/main.nf.test.snap index c3a8912b2ee..957e1ed4200 100644 --- a/modules/nf-core/spring/compress/tests/main.nf.test.snap +++ b/modules/nf-core/spring/compress/tests/main.nf.test.snap @@ -1,4 +1,30 @@ { + "test-spring-compress-single-end-stub": { + "content": [ + "test.spring", + [ + "versions.yml:md5,2882bc3a3593cb048417c38e7452a788" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:56:05.145653656" + }, + "test-spring-compress-paired-end-stub": { + "content": [ + "test.spring", + [ + "versions.yml:md5,2882bc3a3593cb048417c38e7452a788" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T09:56:11.592113469" + }, "test-spring-compress-single-end": { "content": [ "test.spring", diff --git a/modules/nf-core/spring/decompress/main.nf b/modules/nf-core/spring/decompress/main.nf index 4cf78299178..86ced26906f 100644 --- a/modules/nf-core/spring/decompress/main.nf +++ b/modules/nf-core/spring/decompress/main.nf @@ -38,4 +38,17 @@ process SPRING_DECOMPRESS { spring: ${VERSION} END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + def output = write_one_fastq_gz ? "echo '' | gzip > ${prefix}.fastq.gz" : "echo '' | gzip > ${prefix}_R1.fastq.gz; echo '' | gzip > ${prefix}_R2.fastq.gz" + """ + ${output} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + spring: ${VERSION} + END_VERSIONS + """ } diff --git a/modules/nf-core/spring/decompress/test/main.nf.test b/modules/nf-core/spring/decompress/test/main.nf.test index 550c6746b82..9428a86bcff 100644 --- a/modules/nf-core/spring/decompress/test/main.nf.test +++ b/modules/nf-core/spring/decompress/test/main.nf.test @@ -8,6 +8,8 @@ nextflow_process { script "../main.nf" process "SPRING_DECOMPRESS" + + test("Write-One-File") { setup { @@ -75,4 +77,79 @@ nextflow_process { ) } } + + test("Write-One-File-stub") { + + options "-stub" + + setup { + run("SPRING_COMPRESS") { + options "-stub" + script "../../compress/main.nf" + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + [] + ] + """ + } + } + } + + when { + process { + """ + input[0] = SPRING_COMPRESS.out.spring + input[1] = true // write_one_fastq_gz + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("Write-Two-Files-stub") { + + options "-stub" + + setup { + run("SPRING_COMPRESS") { + options "-stub" + script "../../compress/main.nf" + process { + """ + input[0] = [ + [ id:'test2' ], // meta map + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + '/genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true), + ] + """ + } + } + } + + when { + process { + """ + input[0] = SPRING_COMPRESS.out.spring + input[1] = false // write_one_fastq_gz + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + } \ No newline at end of file diff --git a/modules/nf-core/spring/decompress/test/main.nf.test.snap b/modules/nf-core/spring/decompress/test/main.nf.test.snap index 14a11d2c41d..7dcadbab61d 100644 --- a/modules/nf-core/spring/decompress/test/main.nf.test.snap +++ b/modules/nf-core/spring/decompress/test/main.nf.test.snap @@ -1,4 +1,76 @@ { + "Write-One-File stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/2a6cfab794852e23e6324eb4955668b2/work/42/aee6c82c1ca502c3b02339f597188b/test.fastq.gz" + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test" + }, + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/2a6cfab794852e23e6324eb4955668b2/work/42/aee6c82c1ca502c3b02339f597188b/test.fastq.gz" + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T10:03:50.626223289" + }, + "Write-Two-Files stub": { + "content": [ + { + "0": [ + [ + { + "id": "test2" + }, + [ + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R1.fastq.gz", + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R2.fastq.gz" + ] + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test2" + }, + [ + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R1.fastq.gz", + "/home/ramprasad.neethiraj/nextflow/modules/.nf-test/tests/528557b5a81e4bffb57c38b19c7aa351/work/74/fc5d116d011bcd47d6f7de8d42ac34/test2_R2.fastq.gz" + ] + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T10:03:57.417015606" + }, "Write-Two-Files": { "content": [ { @@ -70,5 +142,77 @@ "nextflow": "24.04.2" }, "timestamp": "2024-06-21T13:02:07.466039653" + }, + "Write-One-File-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test" + }, + "test.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T13:55:53.594615215" + }, + "Write-Two-Files-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test2" + }, + [ + "test2_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test2_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ], + "fastq": [ + [ + { + "id": "test2" + }, + [ + "test2_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test2_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,4711df5941f1464e3693d24dd29c705b" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-08T13:56:01.212228909" } } \ No newline at end of file diff --git a/modules/nf-core/star/align/main.nf b/modules/nf-core/star/align/main.nf index ae67e00403f..b5bc9ddf8ef 100644 --- a/modules/nf-core/star/align/main.nf +++ b/modules/nf-core/star/align/main.nf @@ -21,33 +21,34 @@ process STAR_ALIGN { tuple val(meta), path('*Log.progress.out'), emit: log_progress path "versions.yml" , emit: versions - tuple val(meta), path('*d.out.bam') , optional:true, emit: bam - tuple val(meta), path('*sortedByCoord.out.bam') , optional:true, emit: bam_sorted - tuple val(meta), path('*toTranscriptome.out.bam'), optional:true, emit: bam_transcript - tuple val(meta), path('*Aligned.unsort.out.bam') , optional:true, emit: bam_unsorted - tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq - tuple val(meta), path('*.tab') , optional:true, emit: tab - tuple val(meta), path('*.SJ.out.tab') , optional:true, emit: spl_junc_tab - tuple val(meta), path('*.ReadsPerGene.out.tab') , optional:true, emit: read_per_gene_tab - tuple val(meta), path('*.out.junction') , optional:true, emit: junction - tuple val(meta), path('*.out.sam') , optional:true, emit: sam - tuple val(meta), path('*.wig') , optional:true, emit: wig - tuple val(meta), path('*.bg') , optional:true, emit: bedgraph + tuple val(meta), path('*d.out.bam') , optional:true, emit: bam + tuple val(meta), path("${prefix}.sortedByCoord.out.bam") , optional:true, emit: bam_sorted + tuple val(meta), path("${prefix}.Aligned.sortedByCoord.out.bam") , optional:true, emit: bam_sorted_aligned + tuple val(meta), path('*toTranscriptome.out.bam') , optional:true, emit: bam_transcript + tuple val(meta), path('*Aligned.unsort.out.bam') , optional:true, emit: bam_unsorted + tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq + tuple val(meta), path('*.tab') , optional:true, emit: tab + tuple val(meta), path('*.SJ.out.tab') , optional:true, emit: spl_junc_tab + tuple val(meta), path('*.ReadsPerGene.out.tab') , optional:true, emit: read_per_gene_tab + tuple val(meta), path('*.out.junction') , optional:true, emit: junction + tuple val(meta), path('*.out.sam') , optional:true, emit: sam + tuple val(meta), path('*.wig') , optional:true, emit: wig + tuple val(meta), path('*.bg') , optional:true, emit: bedgraph when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" def reads1 = [], reads2 = [] meta.single_end ? [reads].flatten().each{reads1 << it} : reads.eachWithIndex{ v, ix -> ( ix & 1 ? reads2 : reads1) << v } def ignore_gtf = star_ignore_sjdbgtf ? '' : "--sjdbGTFfile $gtf" def seq_platform = seq_platform ? "'PL:$seq_platform'" : "" def seq_center = seq_center ? "'CN:$seq_center'" : "" - def attrRG = args.contains("--outSAMattrRGline") ? "" : "--outSAMattrRGline 'ID:$prefix' $seq_center 'SM:$prefix' $seq_platform" + attrRG = args.contains("--outSAMattrRGline") ? "" : "--outSAMattrRGline 'ID:$prefix' $seq_center 'SM:$prefix' $seq_platform" def out_sam_type = (args.contains('--outSAMtype')) ? '' : '--outSAMtype BAM Unsorted' - def mv_unsorted_bam = (args.contains('--outSAMtype BAM Unsorted SortedByCoordinate')) ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' + mv_unsorted_bam = (args.contains('--outSAMtype BAM Unsorted SortedByCoordinate')) ? "mv ${prefix}.Aligned.out.bam ${prefix}.Aligned.unsort.out.bam" : '' """ STAR \\ --genomeDir $index \\ @@ -79,7 +80,7 @@ process STAR_ALIGN { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" """ echo "" | gzip > ${prefix}.unmapped_1.fastq.gz echo "" | gzip > ${prefix}.unmapped_2.fastq.gz diff --git a/modules/nf-core/star/align/meta.yml b/modules/nf-core/star/align/meta.yml index d30556b515a..d9cba2aa704 100644 --- a/modules/nf-core/star/align/meta.yml +++ b/modules/nf-core/star/align/meta.yml @@ -100,10 +100,13 @@ output: type: file description: Sorted BAM file of read alignments (optional) pattern: "*sortedByCoord.out.bam" - - "*sortedByCoord.out.bam": + - ${prefix}.sortedByCoord.out.bam: type: file description: Sorted BAM file of read alignments (optional) pattern: "*sortedByCoord.out.bam" + - bam_sorted_aligned: + - meta: {} + - ${prefix}.Aligned.sortedByCoord.out.bam: {} - bam_transcript: - meta: type: file @@ -146,9 +149,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + pattern: "*.SJ.out.tab" - "*.SJ.out.tab": - type: file - description: STAR output splice junction tab file + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.SJ.out.tab" - read_per_gene_tab: - meta: @@ -156,9 +162,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + pattern: "*.ReadsPerGene.out.tab" - "*.ReadsPerGene.out.tab": - type: file - description: STAR output read per gene tab file + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.ReadsPerGene.out.tab" - junction: - meta: @@ -175,9 +184,12 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + pattern: "*.out.sam" - "*.out.sam": - type: file - description: STAR output SAM file + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] pattern: "*.out.sam" - wig: - meta: diff --git a/modules/nf-core/star/align/tests/main.nf.test.snap b/modules/nf-core/star/align/tests/main.nf.test.snap index c814eb56cbf..0da28d37c6f 100644 --- a/modules/nf-core/star/align/tests/main.nf.test.snap +++ b/modules/nf-core/star/align/tests/main.nf.test.snap @@ -26,7 +26,11 @@ "id": "test", "single_end": true }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -35,7 +39,7 @@ "id": "test", "single_end": true }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -44,7 +48,7 @@ "id": "test", "single_end": true }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -53,7 +57,7 @@ "id": "test", "single_end": true }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -62,10 +66,19 @@ "id": "test", "single_end": true }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -105,10 +118,7 @@ "id": "test", "single_end": true }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -117,7 +127,7 @@ "id": "test", "single_end": true }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -126,7 +136,7 @@ "id": "test", "single_end": true }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -135,10 +145,7 @@ "id": "test", "single_end": true }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -148,9 +155,8 @@ "single_end": true }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -173,10 +179,16 @@ "id": "test", "single_end": true }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": true + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -312,7 +324,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:04.712114" + "timestamp": "2024-10-01T11:39:15.440397" }, "homo_sapiens - paired_end - arriba - stub": { "content": [ @@ -341,7 +353,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -350,7 +366,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -359,7 +375,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -368,7 +384,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -377,10 +393,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -420,10 +445,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -432,7 +454,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -441,7 +463,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -450,10 +472,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -463,9 +482,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -488,10 +506,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -627,7 +651,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:28.874293" + "timestamp": "2024-10-01T11:40:15.472109" }, "homo_sapiens - single_end": { "content": [ @@ -644,13 +668,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": true - }, - "test.Aligned.sortedByCoord.out.bam:md5,c6cfaccaf91bc7fdabed3cfe236d4535" - ] + ], [ @@ -711,7 +729,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T18:02:34.35338" + "timestamp": "2024-10-01T11:23:08.001162" }, "homo_sapiens - paired_end": { "content": [ @@ -728,13 +746,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": false - }, - "test.Aligned.sortedByCoord.out.bam:md5,b9ee1c607e07323bc1652ef3babb543f" - ] + ], [ @@ -795,7 +807,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T18:03:16.701923" + "timestamp": "2024-10-01T11:24:46.295219" }, "homo_sapiens - paired_end - multiple - stub": { "content": [ @@ -824,7 +836,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -833,7 +849,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -842,7 +858,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -851,7 +867,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -860,10 +876,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -903,10 +928,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -915,7 +937,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -924,7 +946,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -933,10 +955,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -946,9 +965,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -971,10 +989,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1110,7 +1134,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:51.360287" + "timestamp": "2024-10-01T11:41:07.310866" }, "homo_sapiens - paired_end - multiple": { "content": [ @@ -1127,13 +1151,7 @@ ] ], [ - [ - { - "id": "test", - "single_end": false - }, - "test.Aligned.sortedByCoord.out.bam:md5,ab07c21d63ab0a6c07d171d213c81d5a" - ] + ], [ @@ -1194,7 +1212,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:13:28.987438" + "timestamp": "2024-10-01T11:38:46.605044" }, "homo_sapiens - paired_end - stub": { "content": [ @@ -1223,7 +1241,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -1232,7 +1254,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -1241,7 +1263,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -1250,7 +1272,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -1259,10 +1281,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -1302,10 +1333,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -1314,7 +1342,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -1323,7 +1351,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -1332,10 +1360,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -1345,9 +1370,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -1370,10 +1394,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1509,7 +1539,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:16.798018" + "timestamp": "2024-10-01T11:39:51.595873" }, "homo_sapiens - paired_end - starfusion": { "content": [ @@ -1584,7 +1614,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:10:55.371956" + "timestamp": "2024-10-01T11:35:43.874508" }, "homo_sapiens - paired_end - arriba": { "content": [ @@ -1653,7 +1683,7 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T13:05:10.7534" + "timestamp": "2024-10-01T11:28:32.599223" }, "homo_sapiens - paired_end - starfusion - stub": { "content": [ @@ -1682,7 +1712,11 @@ "id": "test", "single_end": false }, - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + [ + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", + "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ] ], "11": [ @@ -1691,7 +1725,7 @@ "id": "test", "single_end": false }, - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "12": [ @@ -1700,7 +1734,7 @@ "id": "test", "single_end": false }, - "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "13": [ @@ -1709,7 +1743,7 @@ "id": "test", "single_end": false }, - "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Chimeric.out.junction:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "14": [ @@ -1718,10 +1752,19 @@ "id": "test", "single_end": false }, - "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.out.sam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "15": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Signal.UniqueMultiple.str1.out.wig:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "16": [ [ { "id": "test", @@ -1761,10 +1804,7 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "6": [ @@ -1773,7 +1813,7 @@ "id": "test", "single_end": false }, - "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "7": [ @@ -1782,7 +1822,7 @@ "id": "test", "single_end": false }, - "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.toTranscriptome.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "8": [ @@ -1791,10 +1831,7 @@ "id": "test", "single_end": false }, - [ - "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", - "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" - ] + "test.Aligned.unsort.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "9": [ @@ -1804,9 +1841,8 @@ "single_end": false }, [ - "test.ReadsPerGene.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.SJ.out.tab:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.tab:md5,d41d8cd98f00b204e9800998ecf8427e" + "test.unmapped_1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test.unmapped_2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" ] ] ], @@ -1829,10 +1865,16 @@ "id": "test", "single_end": false }, - [ - "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e", - "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" - ] + "test.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "bam_sorted_aligned": [ + [ + { + "id": "test", + "single_end": false + }, + "test.Aligned.sortedByCoord.out.bam:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], "bam_transcript": [ @@ -1968,6 +2010,6 @@ "nf-test": "0.9.0", "nextflow": "24.04.3" }, - "timestamp": "2024-07-22T15:16:40.64399" + "timestamp": "2024-10-01T11:40:42.29249" } } \ No newline at end of file diff --git a/modules/nf-core/star/align/tests/nextflow.arriba.config b/modules/nf-core/star/align/tests/nextflow.arriba.config index 2324b9e58fe..cf09323fc20 100644 --- a/modules/nf-core/star/align/tests/nextflow.arriba.config +++ b/modules/nf-core/star/align/tests/nextflow.arriba.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/modules/nf-core/star/align/tests/nextflow.config b/modules/nf-core/star/align/tests/nextflow.config index c4ac58088bb..18bc2ee8a44 100644 --- a/modules/nf-core/star/align/tests/nextflow.config +++ b/modules/nf-core/star/align/tests/nextflow.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/modules/nf-core/star/align/tests/nextflow.starfusion.config b/modules/nf-core/star/align/tests/nextflow.starfusion.config index 467b64977c7..7880bfcf507 100644 --- a/modules/nf-core/star/align/tests/nextflow.starfusion.config +++ b/modules/nf-core/star/align/tests/nextflow.starfusion.config @@ -9,6 +9,3 @@ process { } } - -// Fix chown issue for the output star folder -docker.runOptions = '--platform=linux/amd64 -u $(id -u):$(id -g)' diff --git a/modules/nf-core/vardictjava/main.nf b/modules/nf-core/vardictjava/main.nf index 6329391c837..a2c7666b520 100644 --- a/modules/nf-core/vardictjava/main.nf +++ b/modules/nf-core/vardictjava/main.nf @@ -14,7 +14,7 @@ process VARDICTJAVA { output: tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,9 +25,12 @@ process VARDICTJAVA { def args3 = task.ext.args3 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + // Don't run test scripts when -fisher has been used by vardictjava + def run_test = !args.contains("-fisher") + def somatic = bams instanceof List && bams.size() == 2 ? true : false def input = somatic ? "-b \"${bams[0]}|${bams[1]}\"" : "-b ${bams}" - def filter = somatic ? "testsomatic.R" : "teststrandbias.R" + def test = run_test ? somatic ? "| testsomatic.R" : "| teststrandbias.R" : "" def convert_to_vcf = somatic ? "var2vcf_paired.pl" : "var2vcf_valid.pl" """ export JAVA_OPTS='"-Xms${task.memory.toMega()/4}m" "-Xmx${task.memory.toGiga()}g" "-Dsamjdk.reference_fasta=${fasta}"' @@ -37,7 +40,7 @@ process VARDICTJAVA { -th ${task.cpus} \\ -G ${fasta} \\ ${bed} \\ - | ${filter} \\ + ${test} \\ | ${convert_to_vcf} \\ ${args2} \\ | bgzip ${args3} --threads ${task.cpus} > ${prefix}.vcf.gz @@ -50,9 +53,6 @@ process VARDICTJAVA { """ stub: - def args = task.ext.args ?: '-c 1 -S 2 -E 3' - def args2 = task.ext.args2 ?: '' - def args3 = task.ext.args3 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ diff --git a/modules/nf-core/vardictjava/tests/main.nf.test b/modules/nf-core/vardictjava/tests/main.nf.test index 8e5fec10266..31e1058cad8 100644 --- a/modules/nf-core/vardictjava/tests/main.nf.test +++ b/modules/nf-core/vardictjava/tests/main.nf.test @@ -10,9 +10,6 @@ nextflow_process { test("homo_sapiens - [bam, bai, bed] - fasta - fai") { when { - params { - outdir = $outputDir - } process { """ input[0] = Channel.value([ @@ -47,9 +44,6 @@ nextflow_process { test("homo_sapiens - [[bam, bam], [bai, bai], bed] - fasta - fai") { when { - params { - outdir = $outputDir - } process { """ input[0] = Channel.value([ @@ -87,4 +81,75 @@ nextflow_process { } + test("homo_sapiens - [bam, bai, bed] - fasta - fai - fisher") { + + config "./nextflow.config" + when { + process { + """ + input[0] = Channel.value([ + [ id:'test' ], // meta map + 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/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + ]) + input[1] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + + + } + + } + + test("homo_sapiens - [bam, bai, bed] - fasta - fai - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.value([ + [ id:'test' ], // meta map + 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/test.paired_end.sorted.bam.bai', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.bed', checkIfExists: true) + ]) + input[1] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) + ] + input[2] = [ + [id:"ref"], + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta.fai', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + + + } + + } + } diff --git a/modules/nf-core/vardictjava/tests/main.nf.test.snap b/modules/nf-core/vardictjava/tests/main.nf.test.snap index c32a68b7424..35674ed1782 100644 --- a/modules/nf-core/vardictjava/tests/main.nf.test.snap +++ b/modules/nf-core/vardictjava/tests/main.nf.test.snap @@ -27,10 +27,10 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-04T19:08:38.328190023" + "timestamp": "2024-10-07T16:05:15.117453312" }, "homo_sapiens - [[bam, bam], [bai, bai], bed] - fasta - fai": { "content": [ @@ -60,9 +60,75 @@ } ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-04T19:08:54.416661915" + "timestamp": "2024-10-07T16:05:26.932438089" + }, + "homo_sapiens - [bam, bai, bed] - fasta - fai - fisher": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,e8411ecae49b4f6afa6ea0b681ea506e" + ] + ], + "1": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,e8411ecae49b4f6afa6ea0b681ea506e" + ] + ], + "versions": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T16:05:38.456816851" + }, + "homo_sapiens - [bam, bai, bed] - fasta - fai - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "1": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ], + "vcf": [ + [ + { + "id": "test" + }, + "test.vcf.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,6bf7aa0cbaac4a6e2acab2c475ec2389" + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-07T16:05:48.440804849" } } \ No newline at end of file diff --git a/modules/nf-core/vardictjava/tests/nextflow.config b/modules/nf-core/vardictjava/tests/nextflow.config new file mode 100644 index 00000000000..c6e8571bd41 --- /dev/null +++ b/modules/nf-core/vardictjava/tests/nextflow.config @@ -0,0 +1,3 @@ +process { + ext.args = "-c 1 -S 2 -E 3 -fisher" +} \ No newline at end of file diff --git a/nf-test.config b/nf-test.config index 194d44e8317..e0967518457 100644 --- a/nf-test.config +++ b/nf-test.config @@ -14,6 +14,7 @@ config { // load the necessary plugins plugins { load "nft-bam@0.3.0" + load "nft-compress@0.1.0" load "nft-vcf@1.0.7" } } diff --git a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap index 93a4329a202..66f709b2060 100644 --- a/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_align_star/tests/main.nf.test.snap @@ -61,15 +61,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam.stats:md5,8e74b58e799fbf5082c39f98f14c3f46" + "test.sorted.bam.stats:md5,30abf517cda76c6a7468541781c4dd7a" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:58:48.537976" + "timestamp": "2024-10-02T12:47:34.744504" }, "bam_sorted_single_end": { "content": [ @@ -229,15 +229,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,ad0665b0f48b4374f21ca3dd6d3c0d88" + "test.sorted.bam.bai:md5,976fd845b520008692ad34ffad8ee285" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.224779" + "timestamp": "2024-10-02T12:48:46.014079" }, "stats_paired_end_with_transcriptome": { "content": [ @@ -247,15 +247,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.630724" + "timestamp": "2024-10-02T12:49:58.005177" }, "tab_single_end": { "content": [ @@ -331,15 +331,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,40de55db306ef865530f939bbf9299d5" + "test.sorted.bam:md5,13558b77ef97e9ffb694c89eb3e6c147" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.533399" + "timestamp": "2024-10-02T12:51:14.677514" }, "bai_transcript_paired_end_with_transcriptome": { "content": [ @@ -349,15 +349,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,1dd687a38a2d7fb959272c659678a484" + "test.sorted.bam.bai:md5,db96436abfc1ab7d723717beb0f3df7e" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.813279" + "timestamp": "2024-10-02T12:49:58.119857" }, "bai_paired_end_with_transcriptome": { "content": [ @@ -367,15 +367,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,f4104865dd069f7b0922f94bd7b05b9f" + "test.sorted.bam.bai:md5,19b220e6a7d620f5f38418f82bd037e5" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.552294" + "timestamp": "2024-10-02T12:49:57.943382" }, "idxstats_transcript_paired_end": { "content": [ @@ -415,15 +415,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam:md5,6c4beda83d0372cc3f16864e2f5990de" + "test.sorted.bam:md5,6d4390cf855abab0a98f959b31b78d79" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:58:48.479685" + "timestamp": "2024-10-02T12:47:34.424462" }, "idxstats_single_end": { "content": [ @@ -463,15 +463,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba860fb9ece9a136b262d4b7779c6a52" + "test.sorted.bam.stats:md5,10ca84181b17dafd7248296114f05333" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.911706" + "timestamp": "2024-10-02T12:49:58.210566" }, "orig_bam_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -535,15 +535,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,7dccfc9a0e8d530aa222dd8fde13c03e" + "test.sorted.bam:md5,b1a25c0b25f792c2c483c322f85b545d" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.714095" + "timestamp": "2024-10-02T12:49:58.059043" }, "fastq_single_end": { "content": [ @@ -565,15 +565,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.341245" + "timestamp": "2024-10-02T12:48:46.139348" }, "flagstat_paired_end_with_transcriptome": { "content": [ @@ -619,15 +619,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,318219d2960e6ae1fdde8d3da0d4bb64" + "test.sorted.bam:md5,2b175d7c087679d22be5e4d6722acebd" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:00:38.477259" + "timestamp": "2024-10-02T12:49:57.88028" }, "flagstat_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -709,15 +709,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,ba343720cd202366636bdb606c1361b9" + "test.sorted.bam.stats:md5,d7509941ffbfb221115faa2481115f23" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.477062" + "timestamp": "2024-10-02T12:51:14.61369" }, "bai_transcript_paired_end_transcripts_no_transcriptome": { "content": [ @@ -727,15 +727,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,e6382105b52943a408505f25f27872b0" + "test.sorted.bam.bai:md5,06f3624daa0de1ec71cd3b45ef9e628f" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.58742" + "timestamp": "2024-10-02T12:51:14.73189" }, "orig_bam_single_end": { "content": [ @@ -781,15 +781,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,3758b81996c73509c052aac035530aaf" + "test.sorted.bam:md5,50f3b756671f700c51b584c4565b28e0" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T10:59:42.104272" + "timestamp": "2024-10-02T12:48:45.895658" }, "bam_paired_end_transcripts_no_transcriptome": { "content": [ @@ -799,15 +799,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam:md5,318219d2960e6ae1fdde8d3da0d4bb64" + "test.sorted.bam:md5,2b175d7c087679d22be5e4d6722acebd" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.363913" + "timestamp": "2024-10-02T12:51:14.499013" }, "stats_transcript_paired_end": { "content": [ @@ -841,15 +841,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.bai:md5,f4104865dd069f7b0922f94bd7b05b9f" + "test.sorted.bam.bai:md5,19b220e6a7d620f5f38418f82bd037e5" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.422582" + "timestamp": "2024-10-02T12:51:14.553177" }, "idxstats_paired_end_with_transcriptome": { "content": [ @@ -931,15 +931,15 @@ "id": "test", "single_end": false }, - "test.sorted.bam.stats:md5,625f0d8e29429337c7383d4d25814c6c" + "test.sorted.bam.stats:md5,10c63f09ff2b849443bafad71a824b0e" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-06-21T11:01:40.644021" + "timestamp": "2024-10-02T12:51:14.805201" }, "bam_sorted_paired_end_with_transcriptome": { "content": [ @@ -961,15 +961,15 @@ "id": "test", "single_end": true }, - "test.sorted.bam.bai:md5,73c7f3fe35663c287cb421f1c8b761ae" + "test.sorted.bam.bai:md5,b8c0e9281fa362e0dad93e2cd03445eb" ] ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-03-01T14:09:07.343206" + "timestamp": "2024-10-02T12:47:34.635359" }, "fastq_paired_end": { "content": [ diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap index b37a75c9bbc..264ffb2225e 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap @@ -377,14 +377,14 @@ ], [ - + null ] ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.09.0" }, - "timestamp": "2024-07-22T17:05:49.455992" + "timestamp": "2024-10-09T19:19:22.192915" }, "test single end read with UMI - stub": { "content": [ diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index fe459c0af3e..b17b8774516 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -3,13 +3,12 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NEXTFLOW_PIPELINE { - take: print_version // boolean: print version dump_parameters // boolean: dump parameters @@ -22,7 +21,7 @@ workflow UTILS_NEXTFLOW_PIPELINE { // Print workflow version and exit on --version // if (print_version) { - log.info "${workflow.manifest.name} ${getWorkflowVersion()}" + log.info("${workflow.manifest.name} ${getWorkflowVersion()}") System.exit(0) } @@ -45,9 +44,9 @@ workflow UTILS_NEXTFLOW_PIPELINE { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -72,11 +71,11 @@ def getWorkflowVersion() { // Dump pipeline parameters to a JSON file // def dumpParametersToJSON(outdir) { - def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') - def filename = "params_${timestamp}.json" - def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = groovy.json.JsonOutput.toJson(params) - temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) + def timestamp = new java.util.Date().format('yyyy-MM-dd_HH-mm-ss') + def filename = "params_${timestamp}.json" + def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") + def jsonStr = groovy.json.JsonOutput.toJson(params) + temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) nextflow.extension.FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") temp_pf.delete() @@ -91,9 +90,14 @@ def checkCondaChannels() { try { def config = parser.load("conda config --show channels".execute().text) channels = config.channels - } catch(NullPointerException | IOException e) { - log.warn "Could not verify conda channel configuration." - return + } + catch (NullPointerException e) { + log.warn("Could not verify conda channel configuration.") + return null + } + catch (IOException e) { + log.warn("Could not verify conda channel configuration.") + return null } // Check that all channels are present @@ -105,14 +109,8 @@ def checkCondaChannels() { def channel_priority_violation = required_channels_in_order != channels.findAll { ch -> ch in required_channels_in_order } if (channels_missing | channel_priority_violation) { - log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + - " There is a problem with your Conda configuration!\n\n" + - " You will need to set-up the conda-forge and bioconda channels correctly.\n" + - " Please refer to https://bioconda.github.io/\n" + - " The observed channel order is \n" + - " ${channels}\n" + - " but the following channel order is required:\n" + - " ${required_channels_in_order}\n" + - "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + log.warn( + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + " Please refer to https://bioconda.github.io/\n" + " The observed channel order is \n" + " ${channels}\n" + " but the following channel order is required:\n" + " ${required_channels_in_order}\n" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" + ) } } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index 93366fbc3d4..5cb7bafef38 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -3,13 +3,12 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFCORE_PIPELINE { - take: nextflow_cli_args @@ -22,9 +21,9 @@ workflow UTILS_NFCORE_PIPELINE { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FUNCTIONS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -33,12 +32,9 @@ workflow UTILS_NFCORE_PIPELINE { def checkConfigProvided() { def valid_config = true as Boolean if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { - log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + - "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + - " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + - " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + - " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + - "Please refer to the quick start section and usage docs for the pipeline.\n " + log.warn( + "[${workflow.manifest.name}] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + "Please refer to the quick start section and usage docs for the pipeline.\n " + ) valid_config = false } return valid_config @@ -49,12 +45,14 @@ def checkConfigProvided() { // def checkProfileProvided(nextflow_cli_args) { if (workflow.profile.endsWith(',')) { - error "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + - "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + error( + "The `-profile` option cannot end with a trailing comma, please remove it and re-run the pipeline!\n" + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + ) } if (nextflow_cli_args[0]) { - log.warn "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + - "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + log.warn( + "nf-core pipelines do not accept positional arguments. The positional argument `${nextflow_cli_args[0]}` has been detected.\n" + "HINT: A common mistake is to provide multiple values separated by spaces e.g. `-profile test, docker`.\n" + ) } } @@ -70,13 +68,7 @@ def workflowCitation() { manifest_doi.each { doi_ref -> temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" } - return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + - "* The pipeline\n" + - temp_doi_ref + "\n" + - "* The nf-core framework\n" + - " https://doi.org/10.1038/s41587-020-0439-x\n\n" + - "* Software dependencies\n" + - " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" + return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + " https://github.com/${workflow.manifest.name}/blob/master/CITATIONS.md" } // @@ -102,7 +94,7 @@ def getWorkflowVersion() { // def processVersionsFromYAML(yaml_file) { def yaml = new org.yaml.snakeyaml.Yaml() - def versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + def versions = yaml.load(yaml_file).collectEntries { k, v -> [k.tokenize(':')[-1], v] } return yaml.dumpAsMap(versions).trim() } @@ -112,8 +104,8 @@ def processVersionsFromYAML(yaml_file) { def workflowVersionToYAML() { return """ Workflow: - $workflow.manifest.name: ${getWorkflowVersion()} - Nextflow: $workflow.nextflow.version + ${workflow.manifest.name}: ${getWorkflowVersion()} + Nextflow: ${workflow.nextflow.version} """.stripIndent().trim() } @@ -121,11 +113,7 @@ def workflowVersionToYAML() { // Get channel of software versions used in pipeline in YAML format // def softwareVersionsToYAML(ch_versions) { - return ch_versions - .unique() - .map { version -> processVersionsFromYAML(version) } - .unique() - .mix(Channel.of(workflowVersionToYAML())) + return ch_versions.unique().map { version -> processVersionsFromYAML(version) }.unique().mix(Channel.of(workflowVersionToYAML())) } // @@ -133,25 +121,31 @@ def softwareVersionsToYAML(ch_versions) { // def paramsSummaryMultiqc(summary_params) { def summary_section = '' - summary_params.keySet().each { group -> - def group_params = summary_params.get(group) // This gets the parameters of that particular group - if (group_params) { - summary_section += "

$group

\n" - summary_section += "
\n" - group_params.keySet().sort().each { param -> - summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" + summary_params + .keySet() + .each { group -> + def group_params = summary_params.get(group) + // This gets the parameters of that particular group + if (group_params) { + summary_section += "

${group}

\n" + summary_section += "
\n" + group_params + .keySet() + .sort() + .each { param -> + summary_section += "
${param}
${group_params.get(param) ?: 'N/A'}
\n" + } + summary_section += "
\n" } - summary_section += "
\n" } - } - def yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" as String - yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" - yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" - yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" - yaml_file_text += "plot_type: 'html'\n" - yaml_file_text += "data: |\n" - yaml_file_text += "${summary_section}" + def yaml_file_text = "id: '${workflow.manifest.name.replace('/', '-')}-summary'\n" as String + yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" + yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" + yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" + yaml_file_text += "plot_type: 'html'\n" + yaml_file_text += "data: |\n" + yaml_file_text += "${summary_section}" return yaml_file_text } @@ -199,54 +193,54 @@ def logColours(monochrome_logs=true) { colorcodes['hidden'] = monochrome_logs ? '' : "\033[8m" // Regular Colors - colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" - colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" - colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" - colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" - colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" - colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" - colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" - colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" + colorcodes['black'] = monochrome_logs ? '' : "\033[0;30m" + colorcodes['red'] = monochrome_logs ? '' : "\033[0;31m" + colorcodes['green'] = monochrome_logs ? '' : "\033[0;32m" + colorcodes['yellow'] = monochrome_logs ? '' : "\033[0;33m" + colorcodes['blue'] = monochrome_logs ? '' : "\033[0;34m" + colorcodes['purple'] = monochrome_logs ? '' : "\033[0;35m" + colorcodes['cyan'] = monochrome_logs ? '' : "\033[0;36m" + colorcodes['white'] = monochrome_logs ? '' : "\033[0;37m" // Bold - colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" - colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" - colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" - colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" - colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" - colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" - colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" - colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" + colorcodes['bblack'] = monochrome_logs ? '' : "\033[1;30m" + colorcodes['bred'] = monochrome_logs ? '' : "\033[1;31m" + colorcodes['bgreen'] = monochrome_logs ? '' : "\033[1;32m" + colorcodes['byellow'] = monochrome_logs ? '' : "\033[1;33m" + colorcodes['bblue'] = monochrome_logs ? '' : "\033[1;34m" + colorcodes['bpurple'] = monochrome_logs ? '' : "\033[1;35m" + colorcodes['bcyan'] = monochrome_logs ? '' : "\033[1;36m" + colorcodes['bwhite'] = monochrome_logs ? '' : "\033[1;37m" // Underline - colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" - colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" - colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" - colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" - colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" - colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" - colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" - colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" + colorcodes['ublack'] = monochrome_logs ? '' : "\033[4;30m" + colorcodes['ured'] = monochrome_logs ? '' : "\033[4;31m" + colorcodes['ugreen'] = monochrome_logs ? '' : "\033[4;32m" + colorcodes['uyellow'] = monochrome_logs ? '' : "\033[4;33m" + colorcodes['ublue'] = monochrome_logs ? '' : "\033[4;34m" + colorcodes['upurple'] = monochrome_logs ? '' : "\033[4;35m" + colorcodes['ucyan'] = monochrome_logs ? '' : "\033[4;36m" + colorcodes['uwhite'] = monochrome_logs ? '' : "\033[4;37m" // High Intensity - colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" - colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" - colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" - colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" - colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" - colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" - colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" - colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" + colorcodes['iblack'] = monochrome_logs ? '' : "\033[0;90m" + colorcodes['ired'] = monochrome_logs ? '' : "\033[0;91m" + colorcodes['igreen'] = monochrome_logs ? '' : "\033[0;92m" + colorcodes['iyellow'] = monochrome_logs ? '' : "\033[0;93m" + colorcodes['iblue'] = monochrome_logs ? '' : "\033[0;94m" + colorcodes['ipurple'] = monochrome_logs ? '' : "\033[0;95m" + colorcodes['icyan'] = monochrome_logs ? '' : "\033[0;96m" + colorcodes['iwhite'] = monochrome_logs ? '' : "\033[0;97m" // Bold High Intensity - colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" - colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" - colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" - colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" - colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" - colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" - colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" - colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" + colorcodes['biblack'] = monochrome_logs ? '' : "\033[1;90m" + colorcodes['bired'] = monochrome_logs ? '' : "\033[1;91m" + colorcodes['bigreen'] = monochrome_logs ? '' : "\033[1;92m" + colorcodes['biyellow'] = monochrome_logs ? '' : "\033[1;93m" + colorcodes['biblue'] = monochrome_logs ? '' : "\033[1;94m" + colorcodes['bipurple'] = monochrome_logs ? '' : "\033[1;95m" + colorcodes['bicyan'] = monochrome_logs ? '' : "\033[1;96m" + colorcodes['biwhite'] = monochrome_logs ? '' : "\033[1;97m" return colorcodes } @@ -261,14 +255,15 @@ def attachMultiqcReport(multiqc_report) { mqc_report = multiqc_report.getVal() if (mqc_report.getClass() == ArrayList && mqc_report.size() >= 1) { if (mqc_report.size() > 1) { - log.warn "[$workflow.manifest.name] Found multiple reports from process 'MULTIQC', will use only one" + log.warn("[${workflow.manifest.name}] Found multiple reports from process 'MULTIQC', will use only one") } mqc_report = mqc_report[0] } } - } catch (all) { + } + catch (Exception all) { if (multiqc_report) { - log.warn "[$workflow.manifest.name] Could not attach MultiQC report to summary email" + log.warn("[${workflow.manifest.name}] Could not attach MultiQC report to summary email") } } return mqc_report @@ -280,26 +275,35 @@ def attachMultiqcReport(multiqc_report) { def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdir, monochrome_logs=true, multiqc_report=null) { // Set up the e-mail variables - def subject = "[$workflow.manifest.name] Successful: $workflow.runName" + def subject = "[${workflow.manifest.name}] Successful: ${workflow.runName}" if (!workflow.success) { - subject = "[$workflow.manifest.name] FAILED: $workflow.runName" + subject = "[${workflow.manifest.name}] FAILED: ${workflow.runName}" } def summary = [:] - summary_params.keySet().sort().each { group -> - summary << summary_params[group] - } + summary_params + .keySet() + .sort() + .each { group -> + summary << summary_params[group] + } def misc_fields = [:] misc_fields['Date Started'] = workflow.start misc_fields['Date Completed'] = workflow.complete misc_fields['Pipeline script file path'] = workflow.scriptFile misc_fields['Pipeline script hash ID'] = workflow.scriptId - if (workflow.repository) misc_fields['Pipeline repository Git URL'] = workflow.repository - if (workflow.commitId) misc_fields['Pipeline repository Git Commit'] = workflow.commitId - if (workflow.revision) misc_fields['Pipeline Git branch/tag'] = workflow.revision - misc_fields['Nextflow Version'] = workflow.nextflow.version - misc_fields['Nextflow Build'] = workflow.nextflow.build + if (workflow.repository) { + misc_fields['Pipeline repository Git URL'] = workflow.repository + } + if (workflow.commitId) { + misc_fields['Pipeline repository Git Commit'] = workflow.commitId + } + if (workflow.revision) { + misc_fields['Pipeline Git branch/tag'] = workflow.revision + } + misc_fields['Nextflow Version'] = workflow.nextflow.version + misc_fields['Nextflow Build'] = workflow.nextflow.build misc_fields['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp def email_fields = [:] @@ -337,7 +341,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Render the sendmail template def max_multiqc_email_size = (params.containsKey('max_multiqc_email_size') ? params.max_multiqc_email_size : 0) as nextflow.util.MemoryUnit - def smail_fields = [ email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes() ] + def smail_fields = [email: email_address, subject: subject, email_txt: email_txt, email_html: email_html, projectDir: "${workflow.projectDir}", mqcFile: mqc_report, mqcMaxSize: max_multiqc_email_size.toBytes()] def sf = new File("${workflow.projectDir}/assets/sendmail_template.txt") def sendmail_template = engine.createTemplate(sf).make(smail_fields) def sendmail_html = sendmail_template.toString() @@ -346,30 +350,32 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi def colors = logColours(monochrome_logs) as Map if (email_address) { try { - if (plaintext_email) { throw new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } + if (plaintext_email) { +new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") sendmail_tf.withWriter { w -> w << sendmail_html } - [ 'sendmail', '-t' ].execute() << sendmail_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (sendmail)-" - } catch (all) { + ['sendmail', '-t'].execute() << sendmail_html + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Sent summary e-mail to ${email_address} (sendmail)-") + } + catch (Exception all) { // Catch failures and try with plaintext - def mail_cmd = [ 'mail', '-s', subject, '--content-type=text/html', email_address ] + def mail_cmd = ['mail', '-s', subject, '--content-type=text/html', email_address] mail_cmd.execute() << email_html - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Sent summary e-mail to $email_address (mail)-" + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Sent summary e-mail to ${email_address} (mail)-") } } // Write summary e-mail HTML to a file def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html") output_hf.delete() // Write summary e-mail TXT to a file def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } - nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt") output_tf.delete() } @@ -380,12 +386,14 @@ def completionSummary(monochrome_logs=true) { def colors = logColours(monochrome_logs) as Map if (workflow.success) { if (workflow.stats.ignoredCount == 0) { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.green} Pipeline completed successfully${colors.reset}-") + } + else { + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.yellow} Pipeline completed successfully, but with errored process(es) ${colors.reset}-") } - } else { - log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" + } + else { + log.info("-${colors.purple}[${workflow.manifest.name}]${colors.red} Pipeline completed with errors${colors.reset}-") } } @@ -394,21 +402,30 @@ def completionSummary(monochrome_logs=true) { // def imNotification(summary_params, hook_url) { def summary = [:] - summary_params.keySet().sort().each { group -> - summary << summary_params[group] - } + summary_params + .keySet() + .sort() + .each { group -> + summary << summary_params[group] + } def misc_fields = [:] - misc_fields['start'] = workflow.start - misc_fields['complete'] = workflow.complete - misc_fields['scriptfile'] = workflow.scriptFile - misc_fields['scriptid'] = workflow.scriptId - if (workflow.repository) misc_fields['repository'] = workflow.repository - if (workflow.commitId) misc_fields['commitid'] = workflow.commitId - if (workflow.revision) misc_fields['revision'] = workflow.revision - misc_fields['nxf_version'] = workflow.nextflow.version - misc_fields['nxf_build'] = workflow.nextflow.build - misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp + misc_fields['start'] = workflow.start + misc_fields['complete'] = workflow.complete + misc_fields['scriptfile'] = workflow.scriptFile + misc_fields['scriptid'] = workflow.scriptId + if (workflow.repository) { + misc_fields['repository'] = workflow.repository + } + if (workflow.commitId) { + misc_fields['commitid'] = workflow.commitId + } + if (workflow.revision) { + misc_fields['revision'] = workflow.revision + } + misc_fields['nxf_version'] = workflow.nextflow.version + misc_fields['nxf_build'] = workflow.nextflow.build + misc_fields['nxf_timestamp'] = workflow.nextflow.timestamp def msg_fields = [:] msg_fields['version'] = getWorkflowVersion() @@ -433,13 +450,13 @@ def imNotification(summary_params, hook_url) { def json_message = json_template.toString() // POST - def post = new URL(hook_url).openConnection(); + def post = new URL(hook_url).openConnection() post.setRequestMethod("POST") post.setDoOutput(true) post.setRequestProperty("Content-Type", "application/json") - post.getOutputStream().write(json_message.getBytes("UTF-8")); - def postRC = post.getResponseCode(); - if (! postRC.equals(200)) { - log.warn(post.getErrorStream().getText()); + post.getOutputStream().write(json_message.getBytes("UTF-8")) + def postRC = post.getResponseCode() + if (!postRC.equals(200)) { + log.warn(post.getErrorStream().getText()) } } diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf index 2585b65d1b0..2398c620c5f 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/main.nf @@ -3,9 +3,9 @@ // /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT NF-VALIDATION PLUGIN -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include { paramsHelp } from 'plugin/nf-validation' @@ -13,13 +13,12 @@ include { paramsSummaryLog } from 'plugin/nf-validation' include { validateParameters } from 'plugin/nf-validation' /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBWORKFLOW DEFINITION -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow UTILS_NFVALIDATION_PLUGIN { - take: print_help // boolean: print help workflow_command // string: default commmand used to run pipeline @@ -30,7 +29,7 @@ workflow UTILS_NFVALIDATION_PLUGIN { main: - log.debug "Using schema file: ${schema_filename}" + log.debug("Using schema file: ${schema_filename}") // Default values for strings pre_help_text = pre_help_text ?: '' @@ -41,19 +40,19 @@ workflow UTILS_NFVALIDATION_PLUGIN { // Print help message if needed // if (print_help) { - log.info pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text + log.info(pre_help_text + paramsHelp(workflow_command, parameters_schema: schema_filename) + post_help_text) System.exit(0) } // // Print parameter summary to stdout // - log.info pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text + log.info(pre_help_text + paramsSummaryLog(workflow, parameters_schema: schema_filename) + post_help_text) // // Validate parameters relative to the parameter JSON schema // - if (validate_params){ + if (validate_params) { validateParameters(parameters_schema: schema_filename) } diff --git a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test index 5784a33f2f5..c50b1fb5323 100644 --- a/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test +++ b/subworkflows/nf-core/utils_nfvalidation_plugin/tests/main.nf.test @@ -169,7 +169,7 @@ nextflow_workflow { params { monochrome_logs = true test_data = '' - outdir = 1 + outdir = false } workflow { """ diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c5ede631186..5d8a9be3c4f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -437,9 +437,6 @@ mmseqs/tsv2exprofiledb: motus/downloaddb: - modules/nf-core/motus/downloaddb/** - tests/modules/nf-core/motus/downloaddb/** -motus/merge: - - modules/nf-core/motus/merge/** - - tests/modules/nf-core/motus/merge/** msisensor/msi: - modules/nf-core/msisensor/msi/** - tests/modules/nf-core/msisensor/msi/** @@ -578,9 +575,6 @@ roary: rtgtools/format: - modules/nf-core/rtgtools/format/** - tests/modules/nf-core/rtgtools/format/** -rtgtools/vcfeval: - - modules/nf-core/rtgtools/vcfeval/** - - tests/modules/nf-core/rtgtools/vcfeval/** scramble/clusteranalysis: - modules/nf-core/scramble/clusteranalysis/** - tests/modules/nf-core/scramble/clusteranalysis/** @@ -642,9 +636,6 @@ sourmash/taxannotate: spatyper: - modules/nf-core/spatyper/** - tests/modules/nf-core/spatyper/** -spring/decompress: - - modules/nf-core/spring/decompress/** - - tests/modules/nf-core/spring/decompress/** srst2/srst2: - modules/nf-core/srst2/srst2/** - tests/modules/nf-core/srst2/srst2/** diff --git a/tests/modules/nf-core/motus/merge/main.nf b/tests/modules/nf-core/motus/merge/main.nf deleted file mode 100644 index 22260b3f433..00000000000 --- a/tests/modules/nf-core/motus/merge/main.nf +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { MOTUS_DOWNLOADDB } from '../../../../../modules/nf-core/motus/downloaddb/main.nf' -include { MOTUS_PROFILE } from '../../../../../modules/nf-core/motus/profile/main.nf' -include { MOTUS_MERGE } from '../../../../../modules/nf-core/motus/merge/main.nf' -include { MOTUS_MERGE as MOTUS_MERGE_BIOM } from '../../../../../modules/nf-core/motus/merge/main.nf' - -workflow test_motus_merge { - - input = Channel.fromList( - [ - [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ], - [ - [ id:'test2', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] - ) - - MOTUS_DOWNLOADDB ( file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') ) - MOTUS_PROFILE ( input, MOTUS_DOWNLOADDB.out.db ) - MOTUS_MERGE ( MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple(), MOTUS_DOWNLOADDB.out.db, MOTUS_PROFILE.out.versions.first() ) - -} - -workflow test_motus_merge_biom { - - input = Channel.fromList( - [ - [ - [ id:'test', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ], - [ - [ id:'test2', single_end:true ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) - ] - ] - ) - - MOTUS_DOWNLOADDB ( file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') ) - MOTUS_PROFILE ( input, MOTUS_DOWNLOADDB.out.db ) - MOTUS_MERGE_BIOM ( MOTUS_PROFILE.out.out.map{ [[id:"test"], it[1]] }.groupTuple(), MOTUS_DOWNLOADDB.out.db, MOTUS_PROFILE.out.versions.first() ) - -} - diff --git a/tests/modules/nf-core/motus/merge/nextflow.config b/tests/modules/nf-core/motus/merge/nextflow.config deleted file mode 100644 index d5b9187c2fe..00000000000 --- a/tests/modules/nf-core/motus/merge/nextflow.config +++ /dev/null @@ -1,8 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: MOTUS_MERGE_BIOM { - ext.args = "-B" - } -} diff --git a/tests/modules/nf-core/motus/merge/test.yml b/tests/modules/nf-core/motus/merge/test.yml deleted file mode 100644 index aa786fecd2a..00000000000 --- a/tests/modules/nf-core/motus/merge/test.yml +++ /dev/null @@ -1,19 +0,0 @@ -- name: motus merge test_motus_merge - command: nextflow run ./tests/modules/nf-core/motus/merge -entry test_motus_merge -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/motus/merge/nextflow.config - tags: - - motus - - motus/merge - files: - - path: output/motus/test.txt - contains: - - "consensus_taxonomy" - -- name: motus merge test_motus_merge_biom - command: nextflow run ./tests/modules/nf-core/motus/merge -entry test_motus_merge_biom -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/motus/merge/nextflow.config - tags: - - motus - - motus/merge - files: - - path: output/motus/test.biom - contains: - - "Biological Observation Matrix 1.0.0" diff --git a/tests/modules/nf-core/rtgtools/vcfeval/main.nf b/tests/modules/nf-core/rtgtools/vcfeval/main.nf deleted file mode 100644 index 7ca921fcaed..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/main.nf +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { RTGTOOLS_VCFEVAL } from '../../../../../modules/nf-core/rtgtools/vcfeval/main.nf' -include { UNTAR } from '../../../../modules/nf-core/untar/main.nf' - -workflow test_rtgtools_vcfeval { - - input = [ - [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) - ] - - compressed_sdf = [ - [ id:'test' ], - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ] - - sdf = UNTAR( compressed_sdf ).untar - - RTGTOOLS_VCFEVAL ( input, sdf ) -} - -workflow test_rtgtools_vcfeval_no_optional_inputs { - - input = [ - [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), - [], - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - [], - [], - [] - ] - - compressed_sdf = [ - [ id:'test' ], - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ] - - sdf = UNTAR( compressed_sdf ).untar - - RTGTOOLS_VCFEVAL ( input, sdf ) -} diff --git a/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config b/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config deleted file mode 100644 index 4ced2e3b2ab..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/nextflow.config +++ /dev/null @@ -1,8 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: UNTAR { - publishDir = [enabled:false] - } -} diff --git a/tests/modules/nf-core/rtgtools/vcfeval/test.yml b/tests/modules/nf-core/rtgtools/vcfeval/test.yml deleted file mode 100644 index 8f89d2b44b6..00000000000 --- a/tests/modules/nf-core/rtgtools/vcfeval/test.yml +++ /dev/null @@ -1,67 +0,0 @@ -- name: rtgtools vcfeval test_rtgtools_vcfeval - command: nextflow run ./tests/modules/nf-core/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/rtgtools/vcfeval/nextflow.config - tags: - - rtgtools/vcfeval - - rtgtools - files: - - path: output/rtgtools/test.fn.vcf.gz - md5sum: 65142f7398361eebb00028255c4645f9 - - path: output/rtgtools/test.fn.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.fp.vcf.gz - md5sum: 459988c1aa5206214587044971db2518 - - path: output/rtgtools/test.fp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.non_snp_roc.tsv.gz - md5sum: 0ccf995d071c7d27812e9e899b67050a - - path: output/rtgtools/test.phasing.txt - md5sum: 31988234bee208cacb3de90dabe1797f - - path: output/rtgtools/test.snp_roc.tsv.gz - md5sum: cff421e8b15db7d92355fbef0be5ec93 - - path: output/rtgtools/test.summary.txt - md5sum: f4c8df93c8bdab603036bbc27b4a28c3 - - path: output/rtgtools/test.tp-baseline.vcf.gz - md5sum: 65142f7398361eebb00028255c4645f9 - - path: output/rtgtools/test.tp-baseline.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.tp.vcf.gz - md5sum: 459988c1aa5206214587044971db2518 - - path: output/rtgtools/test.tp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.weighted_roc.tsv.gz - md5sum: 946dd5b0a6f33993bc2f7378c503c5cc - - path: output/rtgtools/versions.yml - -- name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs - command: nextflow run ./tests/modules/nf-core/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c ./tests/config/nextflow.config -c ./tests/modules/nf-core/rtgtools/vcfeval/nextflow.config - tags: - - rtgtools/vcfeval - - rtgtools - files: - - path: output/rtgtools/test.fn.vcf.gz - md5sum: 6a148698fa6c20d6e5bbe384d962363a - - path: output/rtgtools/test.fn.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.fp.vcf.gz - md5sum: 9c1606449d3c256233bdd2b6c8016776 - - path: output/rtgtools/test.fp.vcf.gz.tbi - md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test.non_snp_roc.tsv.gz - md5sum: 9990107a5d8951e124d452f6cac26062 - - path: output/rtgtools/test.phasing.txt - md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/test.snp_roc.tsv.gz - md5sum: cde86d34fa86475194e29a74dfc9090c - - path: output/rtgtools/test.summary.txt - md5sum: f33feb32f84958fb931063044fba369b - - path: output/rtgtools/test.tp-baseline.vcf.gz - md5sum: 5d9bb9b55b03d42c1726c0c32498b624 - - path: output/rtgtools/test.tp-baseline.vcf.gz.tbi - md5sum: 95938320b425e28cf06c45ab45ad0360 - - path: output/rtgtools/test.tp.vcf.gz - md5sum: d771fa4d28b42b43e698cee93c92cf65 - - path: output/rtgtools/test.tp.vcf.gz.tbi - md5sum: a0e9ac2d38c04bd591ab8f857c5c9133 - - path: output/rtgtools/test.weighted_roc.tsv.gz - md5sum: 005c2e8bacaaab0b409da449301d67fd - - path: output/rtgtools/versions.yml