diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d380e54..a2aa5387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,10 @@ * `rsem/rsem_calculate_expression`: Calculate expression levels (PR #93). +## BREAKING CHANGES + +* `falco`: Fix a typo in the `--reverse_complement` argument (PR #157). + ## MINOR CHANGES * Upgrade to Viash 0.9.0. @@ -75,6 +79,8 @@ - `kallisto_quant`: Quantifying abundances of transcripts from RNA-Seq data, or more generally of target sequences using high-throughput sequencing reads (PR #152). +* `trimgalore`: Quality and adapter trimming for fastq files (PR #117). + ## MINOR CHANGES * `busco` components: update BUSCO to `5.7.1` (PR #72). diff --git a/src/falco/config.vsh.yaml b/src/falco/config.vsh.yaml index de9906ef..a161e252 100644 --- a/src/falco/config.vsh.yaml +++ b/src/falco/config.vsh.yaml @@ -86,7 +86,7 @@ argument_groups: bisulfite sequencing, and more Ts and fewer Cs are therefore expected and will be accounted for in base content. - - name: --reverse_complliment + - name: --reverse_complement alternatives: [-r] type: boolean_true description: | diff --git a/src/falco/script.sh b/src/falco/script.sh index 43f5efe5..13e2eab4 100644 --- a/src/falco/script.sh +++ b/src/falco/script.sh @@ -4,7 +4,7 @@ set -eo pipefail [[ "$par_nogroup" == "false" ]] && unset par_nogroup [[ "$par_bisulfite" == "false" ]] && unset par_bisulfite -[[ "$par_reverse_compliment" == "false" ]] && unset par_reverse_compliment +[[ "$par_reverse_complement" == "false" ]] && unset par_reverse_complement IFS=";" read -ra input <<< $par_input @@ -15,7 +15,7 @@ $(which falco) \ ${par_limits:+--limits "$par_limits"} \ ${par_subsample:+-subsample $par_subsample} \ ${par_bisulfite:+-bisulfite} \ - ${par_reverse_compliment:+-reverse-compliment} \ + ${par_reverse_complement:+-reverse-complement} \ ${par_outdir:+--outdir "$par_outdir"} \ ${par_format:+--format "$par_format"} \ ${par_data_filename:+-data-filename "$par_data_filename"} \ diff --git a/src/trimgalore/config.vsh.yaml b/src/trimgalore/config.vsh.yaml new file mode 100644 index 00000000..ae12fb10 --- /dev/null +++ b/src/trimgalore/config.vsh.yaml @@ -0,0 +1,297 @@ +name: trimgalore +description: | + A wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files. +keywords: ["trimming", "adapters"] +links: + homepage: https://github.com/FelixKrueger/TrimGalore + documentation: https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md + repository: https://github.com/FelixKrueger/TrimGalore +references: + doi: 10.5281/zenodo.7598955 +license: GPL-3.0 +requirements: + commands: [trim_galore] +authors: + - __merge__: /src/_authors/sai_nirmayi_yasa.yaml + roles: [ author, maintainer ] + +argument_groups: + - name: Input + arguments: + - name: "--input" + type: file + description: Input files. Note that paired-end files need to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz + required: true + multiple: true + example: sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq + - name: Trimming options + arguments: + - name: --quality + alternatives: -q + type: integer + description: Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal. For RRBS samples, quality trimming will be performed first, and adapter trimming is carried in a second round. Other files are quality and adapter trimmed in a single pass. The algorithm is the same as the one used by BWA (Subtract INT from all qualities; compute partial sums from all indices to the end of the sequence; cut sequence at the index at which the sum is minimal). + example: 20 + - name: --phred33 + type: boolean_true + description: Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1.9+ encoding) for quality trimming. + - name: --phred64 + type: boolean_true + description: Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1.5 encoding) for quality trimming. + - name: --fastqc + type: boolean_true + description: Run FastQC in the default mode on the FastQ file once trimming is complete. + - name: --fastqc_args + type: string + description: Passes extra arguments (excluding files) to FastQC. If more than one argument is to be passed to FastQC they must be in the form "arg1 arg2 ...". Passing extra arguments will automatically invoke FastQC, so --fastqc does not have to be specified separately. + example: "--nogroup --noextract" + - name: --fastqc_contaminants + type: file + description: Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against. The file must contain sets of named contaminants in the form name[tab]sequence. Lines prefixed with a hash will be ignored. + example: "contaminants.txt" + - name: --fastqc_adapters + type: file + description: Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library. The file must contain sets of named adapters in the form name[tab]sequence. Lines prefixed with a hash will be ignored. + example: "adapters.txt" + - name: --fastqc_limits + type: file + description: Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules. This file can also be used to selectively remove some modules from the output all together. The format needs to mirror the default limits.txt file found in the Configuration folder. + example: "limits.txt" + - name: --adapter + alternatives: -a + type: string + description: | + Adapter sequence to be trimmed. If not specified explicitly, Trim Galore will try to auto-detect whether the Illumina universal, Nextera transposase or Illumina small RNA adapter sequence was used. A single base may also be given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. + At a special request, multiple adapters can also be specified like so: + -a " AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT" -a2 " AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT", + or so: + -a "file:../multiple_adapters.fa" -a2 "file:../different_adapters.fa" + Potentially in conjucntion with the parameter "-n 3" to trim all adapters. + example: AGCTCCCG + - name: --adapter2 + alternatives: -a2 + type: string + description: Optional adapter sequence to be trimmed off read 2 of paired-end files. This option requires '--paired' to be specified as well. If the libraries to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5' adapter automatically (GATCGTCGGACT). A single base may also be given as e.g. -a2 A{10}, to be expanded to -a2 AAAAAAAAAA. + required: false + example: AGCTCCCG + - name: --illumina + type: boolean_true + description: Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter 'AGATCGGAAGAGC' instead of the default auto-detection of adapter sequence. + - name: --stranded_illumina + type: boolean_true + description: Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter 'ACTGTCTCTTATA' instead of the default auto-detection of adapter sequence. + - name: --nextera + type: boolean_true + description: Adapter sequence to be trimmed is the first 12bp of the Nextera adapter 'CTGTCTCTTATA' instead of the default auto-detection of adapter sequence. + - name: --small_rna + type: boolean_true + description: Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3' Adapter 'TGGAATTCTCGG' instead of the default auto-detection of adapter sequence. Selecting to trim smallRNA adapters will also lower the --length value to 18bp. If the smallRNA libraries are paired-end then a automatically (GATCGTCGGACT) unless -a 2 had been defined explicitly. + - name: --consider_already_trimmed + type: integer + description: During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed. If no adapter sequence exceeds this threshold, no additional adapter trimming will be performed (technically, the adapter is set to '-a X'). Quality trimming is still performed as usual. + required: false + - name: --max_length + type: integer + description: Discard reads that are longer than the specified value after trimming. This is only advised for smallRNA sequencing to remove non-small RNA sequences. + required: false + - name: --stringency + type: integer + description: Overlap with adapter sequence required to trim a sequence. Defaults to a very stringent setting of 1, i.e. even a single bp of overlapping sequence will be trimmed off from the 3' end of any read. + required: false + example: 1 + - name: --error_rate + alternatives: -e + type: double + description: Maximum allowed error rate (no. of errors divided by the length of the matching region) + required: false + example: 0.1 + - name: --gzip + type: boolean_true + description: Compress the output file with GZIP. If the input files are GZIP-compressed the output files will automatically be GZIP compressed as well. As of v0.2.8 the compression will take place on the fly. + - name: --dont_gzip + type: boolean_true + description: Output files won't be compressed with GZIP. This option overrides --gzip. + - name: --length + type: integer + description: Discard reads that became shorter than the specified length because of either quality or adapter trimming. A value of '0' effectively disables this behaviour. For paired-end files, both reads of a read-pair need to be longer than the specified length to be printed out to validated paired-end files. If only one read became too short there is the possibility of keeping such unpaired single-end reads using the --retain_unpaired option. + required: false + example: 20 + - name: --max_n + type: integer + description: The total number of Ns a read may contain before it will be removed altogether.In a paired-end setting, either read exceeding this limit will result in the entire pair being removed from the trimmed output files. If COUNT is a number between 0 and 1, it is interpreted as a fraction of the read length. + required: false + - name: --trim_n + type: boolean_true + description: Removes Ns from either side of the read. This option does currently not work in RRBS mode. + - name: --no_report_file + type: boolean_true + description: If specified no report file will be generated. + - name: --suppress_warn + type: boolean_true + description: If specified any output to STDOUT or STDERR will be suppressed. + - name: --clip_R1 + type: integer + description: Instructs TrimGalore to remove given number of bp from the 5' end of read 1 (or single-end reads). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5' end. + required: false + - name: --clip_R2 + type: integer + description: Instructs TrimGalore to remove given number bp from the 5' end of read 2 (paired-end reads only). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5' end. For paired-end BS-Seq, it is recommended to remove the first few bp because the end-repair reaction may introduce a bias towards low methylation. + required: false + - name: --three_prime_clip_R1 + type: integer + description: Instructs Trim Galore to remove spacified number of bp from the 3' end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed. This may remove some bias from the 3' end that is not directly related to adapter sequence or basecall quality. + required: false + - name: --three_prime_clip_R2 + type: integer + description: Instructs Trim Galore to remove bp from the 3' end of read 2 AFTER adapter/quality trimming has been performed. This may remove some unwanted bias from the 3' end that is not directly related to adapter sequence or basecall quality. + required: false + - name: --nextseq + type: integer + description: This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored. This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without any signal are called as high-quality G bases. This is mutually exlusive with '-q INT'. + required: false + - name: --basename + type: string + description: Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files. Single-end data would be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + required: false + - name: Specific trimming options without adapter/quality trimming + arguments: + - name: --hardtrim5 + type: integer + description: Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to bp at the 5'-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in ._5prime.fq(.gz). + required: false + - name: --hardtrim3 + type: integer + description: Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to bp at the 3'-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in ._3prime.fq(.gz). + required: false + - name: --clock + type: boolean_true + description: In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock. + - name: --polyA + type: boolean_true + description: This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences. When --polyA is selected, Trim Galore attempts to identify from the first supplied sample whether sequences contain more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'. This determines if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary base from the start of the reads. The auto-detection uses a default of A{20} for Read1 (3'-end trimming) and T{150} for Read2 (5'-end trimming). These values may be changed manually using the options -a and -a2. In addition to trimming the sequences, white spaces are replaced with _ and it records in the read ID how many bases were trimmed so it can later be used to identify PolyA trimmed sequences. This is currently done by writing tags to both the start ("32:A:") and end ("_PolyA:32") of the reads. The poly-A trimming mode expects that sequences were both adapter and quality before looking for Poly-A tails, and it is the user's responsibility to carry out an initial round of trimming. + - name: --implicon + type: boolean_true + description: | + This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads. Following this, Trim Galore will exit. In it's current implementation, the UMI carrying reads come in the following format + Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3' + Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5' + Where UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual fragment to be sequenced. The UMI of Read 2 (R2) is written into the read ID of both reads and removed from the actual sequence. + - name: RRBS-specific options + arguments: + - name: --rrbs + type: boolean_true + description: Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed will have a further 2 bp removed from their 3' end. Sequences which were merely trimmed because of poor quality will not be shortened further. Read 2 of paired-end libraries will in addition have the first 2 bp removed from the 5' end (by setting '--clip_r2 2'). This is to avoid using artificial methylation calls from the filled-in cytosine positions close to the 3' MspI site in sequenced fragments. This option is not recommended for users of the Tecan Ovation RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below). + - name: --non_directional + type: boolean_true + description: Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read and, if found, removes the first two basepairs. Like with the option '--rrbs' this avoids using cytosine positions that were filled-in during the end-repair step. '--non_directional' requires '--rrbs' to be specified as well. Note that this option does not set '--clip_r2 2' in paired-end mode. + - name: --keep + type: boolean_true + description: Keep the quality trimmed intermediate file. + - name: Paired-end specific options + arguments: + - name: --paired + type: boolean_true + description: This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files. To pass the validation test, both sequences of a sequence pair are required to have a certain minimum length which is governed by the option --length (see above). If only one read passes this length threshold the other read can be rescued (see option --retain_unpaired). Using this option lets you discard too short read pairs without disturbing the sequence-by-sequence order of FastQ files which is required by many aligners. Trim Galore expects paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz ... . + - name: --retain_unpaired + type: boolean_true + description: If only one of the two paired-end reads became too short, the longer read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq' output files. The length cutoff for unpaired single-end reads is governed by the parameters -r1/--length_1 and -r2/--length_2. + - name: --length_1 + alternatives: -r1 + type: integer + description: Unpaired single-end read length cutoff needed for read 1 to be written to '.unpaired_1.fq' output file. These reads may be mapped in single-end mode. + example: 35 + required: false + - name: --length_2 + alternatives: -r2 + type: integer + description: Unpaired single-end read length cutoff needed for read 2 to be written to '.unpaired_2.fq' output file. These reads may be mapped in single-end mode. + required: false + example: 35 + - name: Output + arguments: + - name: --output_dir + alternatives: -o + type: file + description: If specified all output will be written to this directory instead of the current directory. + direction: output + required: true + default: trimmed_output + - name: --trimmed_r1 + type: file + required: false + description: Output file for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: read_1.fastq + - name: --trimmed_r2 + type: file + required: false + description: Output file for read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: read_2.fastq + - name: --trimming_report_r1 + type: file + required: false + description: Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: read_1.trimming_report.txt + - name: --trimming_report_r2 + type: file + description: Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + required: false + example: read_2.trimming_report.txt + - name: --trimmed_fastqc_html_1 + type: file + required: false + description: FastQC report for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: read_1.fastqc.html + - name: --trimmed_fastqc_html_2 + type: file + description: FastQC report for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + required: false + example: read_2.fastqc.html + - name: --trimmed_fastqc_zip_1 + type: file + required: false + description: FastQC results for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: read_1.fastqc.zip + - name: --trimmed_fastqc_zip_2 + type: file + description: FastQC results for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + required: false + example: read_2.fastqc.zip + - name: --unpaired_r1 + type: file + required: false + description: Output file for unpired read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: unpaired_read_1.fastq + - name: --unpaired_r2 + type: file + required: false + description: Output file for unpaired read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + direction: output + example: unpaired_read_2.fastq + +resources: + - type: bash_script + path: script.sh + +test_resources: + - type: bash_script + path: test.sh + +engines: +- type: docker + image: quay.io/biocontainers/trim-galore:0.6.10--hdfd78af_0 + setup: + - type: docker + run: | + echo "TrimGalore: `trim_galore --version | sed -n 's/.*version\s\+\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p'`" > /var/software_versions.txt + +runners: + - type: executable + - type: nextflow diff --git a/src/trimgalore/help.txt b/src/trimgalore/help.txt new file mode 100644 index 00000000..4bf38e99 --- /dev/null +++ b/src/trimgalore/help.txt @@ -0,0 +1,355 @@ + + USAGE: + +trim_galore [options] + + +-h/--help Print this help message and exits. + +-v/--version Print the version information and exits. + +-q/--quality Trim low-quality ends from reads in addition to adapter removal. For + RRBS samples, quality trimming will be performed first, and adapter + trimming is carried in a second round. Other files are quality and adapter + trimmed in a single pass. The algorithm is the same as the one used by BWA + (Subtract INT from all qualities; compute partial sums from all indices + to the end of the sequence; cut sequence at the index at which the sum is + minimal). Default Phred score: 20. + +--phred33 Instructs Cutadapt to use ASCII+33 quality scores as Phred scores + (Sanger/Illumina 1.9+ encoding) for quality trimming. Default: ON. + +--phred64 Instructs Cutadapt to use ASCII+64 quality scores as Phred scores + (Illumina 1.5 encoding) for quality trimming. + +--fastqc Run FastQC in the default mode on the FastQ file once trimming is complete. + +--fastqc_args "" Passes extra arguments to FastQC. If more than one argument is to be passed + to FastQC they must be in the form "arg1 arg2 etc.". An example would be: + --fastqc_args "--nogroup --outdir /home/". Passing extra arguments will + automatically invoke FastQC, so --fastqc does not have to be specified + separately. + +-a/--adapter Adapter sequence to be trimmed. If not specified explicitly, Trim Galore will + try to auto-detect whether the Illumina universal, Nextera transposase or Illumina + small RNA adapter sequence was used. Also see '--illumina', '--nextera' and + '--small_rna'. If no adapter can be detected within the first 1 million sequences + of the first file specified or if there is a tie between several adapter sequences, + Trim Galore defaults to '--illumina' (as long as the Illumina adapter was one of the + options, else '--nextera' is the default). A single base + may also be given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. + + At a special request, multiple adapters can also be specified like so: + -a " AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT" + -a2 " AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT", or so: + -a "file:../multiple_adapters.fa" + -a2 "file:../different_adapters.fa" + Potentially in conjucntion with the parameter "-n 3" to trim all adapters. Please note + that this is NOT needed for standard trimming! + More Information here: https://github.com/FelixKrueger/TrimGalore/issues/86 + +-a2/--adapter2 Optional adapter sequence to be trimmed off read 2 of paired-end files. This + option requires '--paired' to be specified as well. If the libraries to be trimmed + are smallRNA then a2 will be set to the Illumina small RNA 5' adapter automatically + (GATCGTCGGACT). A single base may also be given as e.g. -a2 A{10}, to be expanded + to -a2 AAAAAAAAAA. + +--illumina Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter + 'AGATCGGAAGAGC' instead of the default auto-detection of adapter sequence. + +--stranded_illumina Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total + RNA adapter 'ACTGTCTCTTATA' instead of the default auto-detection of adapter sequence. + Note that this sequence resembles the Nextera sequence with an additional A from A-tailing. + Please also see https://github.com/FelixKrueger/TrimGalore/issues/127 or + https://support.illumina.com/bulletins/2020/06/trimming-t-overhang-options-for-the-illumina-rna-library-prep-wo.html + for further information. This sequence is currently NOT included in the adapter auto-detection. + +--nextera Adapter sequence to be trimmed is the first 12bp of the Nextera adapter + 'CTGTCTCTTATA' instead of the default auto-detection of adapter sequence. + +--small_rna Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3' Adapter + 'TGGAATTCTCGG' instead of the default auto-detection of adapter sequence. Selecting + to trim smallRNA adapters will also lower the --length value to 18bp. If the smallRNA + libraries are paired-end then a2 will be set to the Illumina small RNA 5' adapter + automatically (GATCGTCGGACT) unless -a 2 had been defined explicitly. + +--consider_already_trimmed During adapter auto-detection, the limit set by allows the user to + set a threshold up to which the file is considered already adapter-trimmed. If no adapter + sequence exceeds this threshold, no additional adapter trimming will be performed (technically, + the adapter is set to '-a X'). Quality trimming is still performed as usual. + Default: NOT SELECTED (i.e. normal auto-detection precedence rules apply). + +--max_length Discard reads that are longer than bp after trimming. This is only advised for + smallRNA sequencing to remove non-small RNA sequences. + + +--stringency Overlap with adapter sequence required to trim a sequence. Defaults to a + very stringent setting of 1, i.e. even a single bp of overlapping sequence + will be trimmed off from the 3' end of any read. + +-e Maximum allowed error rate (no. of errors divided by the length of the matching + region) (default: 0.1) + +--gzip Compress the output file with GZIP. If the input files are GZIP-compressed + the output files will automatically be GZIP compressed as well. As of v0.2.8 the + compression will take place on the fly. + +--dont_gzip Output files won't be compressed with GZIP. This option overrides --gzip. + +--length Discard reads that became shorter than length INT because of either + quality or adapter trimming. A value of '0' effectively disables + this behaviour. Default: 20 bp. + + For paired-end files, both reads of a read-pair need to be longer than + bp to be printed out to validated paired-end files (see option --paired). + If only one read became too short there is the possibility of keeping such + unpaired single-end reads (see --retain_unpaired). Default pair-cutoff: 20 bp. + +--max_n COUNT The total number of Ns a read may contain before it will be removed altogether. + In a paired-end setting, either read exceeding this limit will result in the entire + pair being removed from the trimmed output files. If COUNT is a number between 0 and 1, + it is interpreted as a fraction of the read length. + +--trim-n Removes Ns from either side of the read. This option does currently not work in RRBS mode. + +-o/--output_dir If specified all output will be written to this directory instead of the current + directory. If the directory doesn't exist it will be created for you. + +--no_report_file If specified no report file will be generated. + +--suppress_warn If specified any output to STDOUT or STDERR will be suppressed. + +--clip_R1 Instructs Trim Galore to remove bp from the 5' end of read 1 (or single-end + reads). This may be useful if the qualities were very poor, or if there is some + sort of unwanted bias at the 5' end. Default: OFF. + +--clip_R2 Instructs Trim Galore to remove bp from the 5' end of read 2 (paired-end reads + only). This may be useful if the qualities were very poor, or if there is some sort + of unwanted bias at the 5' end. For paired-end BS-Seq, it is recommended to remove + the first few bp because the end-repair reaction may introduce a bias towards low + methylation. Please refer to the M-bias plot section in the Bismark User Guide for + some examples. Default: OFF. + +--three_prime_clip_R1 Instructs Trim Galore to remove bp from the 3' end of read 1 (or single-end + reads) AFTER adapter/quality trimming has been performed. This may remove some unwanted + bias from the 3' end that is not directly related to adapter sequence or basecall quality. + Default: OFF. + +--three_prime_clip_R2 Instructs Trim Galore to remove bp from the 3' end of read 2 AFTER + adapter/quality trimming has been performed. This may remove some unwanted bias from + the 3' end that is not directly related to adapter sequence or basecall quality. + Default: OFF. + +--2colour/--nextseq INT This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt, which will set a quality + cutoff (that is normally given with -q instead), but qualities of G bases are ignored. + This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without + any signal are called as high-quality G bases. This is mutually exlusive with '-q INT'. + + +--path_to_cutadapt You may use this option to specify a path to the Cutadapt executable, + e.g. /my/home/cutadapt-1.7.1/bin/cutadapt. Else it is assumed that Cutadapt is in + the PATH. + +--basename Use PREFERRED_NAME as the basename for output files, instead of deriving the filenames from + the input files. Single-end data would be called PREFERRED_NAME_trimmed.fq(.gz), or + PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename + only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists. + +-j/--cores INT Number of cores to be used for trimming [default: 1]. For Cutadapt to work with multiple cores, it + requires Python 3 as well as parallel gzip (pigz) installed on the system. Trim Galore attempts to detect + the version of Python used by calling Cutadapt. If Python 2 is detected, --cores is set to 1. If the Python + version cannot be detected, Python 3 is assumed and we let Cutadapt handle potential issues itself. + + If pigz cannot be detected on your system, Trim Galore reverts to using gzip compression. Please note + that gzip compression will slow down multi-core processes so much that it is hardly worthwhile, please + see: https://github.com/FelixKrueger/TrimGalore/issues/16#issuecomment-458557103 for more info). + + Actual core usage: It should be mentioned that the actual number of cores used is a little convoluted. + Assuming that Python 3 is used and pigz is installed, --cores 2 would use 2 cores to read the input + (probably not at a high usage though), 2 cores to write to the output (at moderately high usage), and + 2 cores for Cutadapt itself + 2 additional cores for Cutadapt (not sure what they are used for) + 1 core + for Trim Galore itself. So this can be up to 9 cores, even though most of them won't be used at 100% for + most of the time. Paired-end processing uses twice as many cores for the validation (= writing out) step. + --cores 4 would then be: 4 (read) + 4 (write) + 4 (Cutadapt) + 2 (extra Cutadapt) + 1 (Trim Galore) = 15. + + It seems that --cores 4 could be a sweet spot, anything above has diminishing returns. + + + +SPECIFIC TRIMMING - without adapter/quality trimming + +--hardtrim5 Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences + to bp at the 5'-end. Once hard-trimming of files is complete, Trim Galore will exit. + Hard-trimmed output files will end in ._5prime.fq(.gz). Here is an example: + + before: CCTAAGGAAACAAGTACACTCCACACATGCATAAAGGAAATCAAATGTTATTTTTAAGAAAATGGAAAAT + --hardtrim5 20: CCTAAGGAAACAAGTACACT + +--hardtrim3 Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences + to bp at the 3'-end. Once hard-trimming of files is complete, Trim Galore will exit. + Hard-trimmed output files will end in ._3prime.fq(.gz). Here is an example: + + before: CCTAAGGAAACAAGTACACTCCACACATGCATAAAGGAAATCAAATGTTATTTTTAAGAAAATGGAAAAT + --hardtrim3 20: TTTTTAAGAAAATGGAAAAT + +--clock In this mode, reads are trimmed in a specific way that is currently used for the Mouse + Epigenetic Clock (see here: Multi-tissue DNA methylation age predictor in mouse, Stubbs et al., + Genome Biology, 2017 18:68 https://doi.org/10.1186/s13059-017-1203-5). Following this, Trim Galore + will exit. + + In it's current implementation, the dual-UMI RRBS reads come in the following format: + + Read 1 5' UUUUUUUU CAGTA FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF TACTG UUUUUUUU 3' + Read 2 3' UUUUUUUU GTCAT FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ATGAC UUUUUUUU 5' + + Where UUUUUUUU is a random 8-mer unique molecular identifier (UMI), CAGTA is a constant region, + and FFFFFFF... is the actual RRBS-Fragment to be sequenced. The UMIs for Read 1 (R1) and + Read 2 (R2), as well as the fixed sequences (F1 or F2), are written into the read ID and + removed from the actual sequence. Here is an example: + + R1: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 1:N:0: CGATGTTT + ATCTAGTTCAGTACGGTGTTTTCGAATTAGAAAAATATGTATAGAGGAAATAGATATAAAGGCGTATTCGTTATTG + R2: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 3:N:0: CGATGTTT + CAATTTTGCAGTACAAAAATAATACCTCCTCTATTTATCCAAAATCACAAAAAACCACCCACTTAACTTTCCCTAA + + R1: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 1:N:0: CGATGTTT:R1:ATCTAGTT:R2:CAATTTTG:F1:CAGT:F2:CAGT + CGGTGTTTTCGAATTAGAAAAATATGTATAGAGGAAATAGATATAAAGGCGTATTCGTTATTG + R2: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 3:N:0: CGATGTTT:R1:ATCTAGTT:R2:CAATTTTG:F1:CAGT:F2:CAGT + CAAAAATAATACCTCCTCTATTTATCCAAAATCACAAAAAACCACCCACTTAACTTTCCCTAA + + Following clock trimming, the resulting files (.clock_UMI.R1.fq(.gz) and .clock_UMI.R2.fq(.gz)) + should be adapter- and quality trimmed with Trim Galore as usual. In addition, reads need to be trimmed + by 15bp from their 3' end to get rid of potential UMI and fixed sequences. The command is: + + trim_galore --paired --three_prime_clip_R1 15 --three_prime_clip_R2 15 *.clock_UMI.R1.fq.gz *.clock_UMI.R2.fq.gz + + Following this, reads should be aligned with Bismark and deduplicated with UmiBam + in '--dual_index' mode (see here: https://github.com/FelixKrueger/Umi-Grinder). UmiBam recognises + the UMIs within this pattern: R1:(ATCTAGTT):R2:(CAATTTTG): as (UMI R1) and (UMI R2). + +--polyA This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences. + When --polyA is selected, Trim Galore attempts to identify from the first supplied sample whether + sequences contain more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'. This determines + if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA or PolyT. In case of + paired-end sequencing, Read2 is trimmed for the complementary base from the start of the reads. The + auto-detection uses a default of A{20} for Read1 (3'-end trimming) and T{150} for Read2 (5'-end trimming). + These values may be changed manually using the options -a and -a2. + + In addition to trimming the sequences, white spaces are replaced with _ and it records in the read ID + how many bases were trimmed so it can later be used to identify PolyA trimmed sequences. This is currently done + by writing tags to both the start ("32:A:") and end ("_PolyA:32") of the reads in the following example: + + @READ-ID:1:1102:22039:36996 1:N:0:CCTAATCC + GCCTAAGGAAACAAGTACACTCCACACATGCATAAAGGAAATCAAATGTTATTTTTAAGAAAATGGAAAATAAAAACTTTATAAACACCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + @32:A:READ-ID:1:1102:22039:36996_1:N:0:CCTAATCC_PolyA:32 + GCCTAAGGAAACAAGTACACTCCACACATGCATAAAGGAAATCAAATGTTATTTTTAAGAAAATGGAAAATAAAAACTTTATAAACACC + + PLEASE NOTE: The poly-A trimming mode expects that sequences were both adapter and quality trimmed + before looking for Poly-A tails, and it is the user's responsibility to carry out an initial round of + trimming. The following sequence: + + 1) trim_galore file.fastq.gz + 2) trim_galore --polyA file_trimmed.fq.gz + 3) zcat file_trimmed_trimmed.fq.gz | grep -A 3 PolyA | grep -v ^-- > PolyA_trimmed.fastq + + Will 1) trim qualities and Illumina adapter contamination, 2) find and remove PolyA contamination. + Finally, if desired, 3) will specifically find PolyA trimmed sequences to a specific FastQ file of your choice. + +--implicon This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence + is getting transferred from the start of Read 2 to the readID of both reads. Following this, Trim Galore will exit. + + In it's current implementation, the UMI carrying reads come in the following format: + + Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3' + Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5' + + Where UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual fragment to be + sequenced. The UMI of Read 2 (R2) is written into the read ID of both reads and removed from the actual sequence. + Here is an example: + + R1: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 1:N:0: CGATGTTT + ATCTAGTTCAGTACGGTGTTTTCGAATTAGAAAAATATGTATAGAGGAAATAGATATAAAGGCGTATTCGTTATTG + R2: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 3:N:0: CGATGTTT + CAATTTTGCAGTACAAAAATAATACCTCCTCTATTTATCCAAAATCACAAAAAACCACCCACTTAACTTTCCCTAA + + After --implicon trimming: + R1: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 1:N:0: CGATGTTT:CAATTTTG + ATCTAGTTCAGTACGGTGTTTTCGAATTAGAAAAATATGTATAGAGGAAATAGATATAAAGGCGTATTCGTTATTG + R2: @HWI-D00436:407:CCAETANXX:1:1101:4105:1905 3:N:0: CGATGTTT:CAATTTTG + CAGTACAAAAATAATACCTCCTCTATTTATCCAAAATCACAAAAAACCACCCACTTAACTTTCCCTAA + +RRBS-specific options (MspI digested material): + +--rrbs Specifies that the input file was an MspI digested RRBS sample (recognition + site: CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed + will have a further 2 bp removed from their 3' end. Sequences which were merely + trimmed because of poor quality will not be shortened further. Read 2 of paired-end + libraries will in addition have the first 2 bp removed from the 5' end (by setting + '--clip_r2 2'). This is to avoid using artificial methylation calls from the filled-in + cytosine positions close to the 3' MspI site in sequenced fragments. + This option is not recommended for users of the Tecan Ovation RRBS Methyl-Seq with TrueMethyl + oxBS 1-16 kit (see below). + +--non_directional Selecting this option for non-directional RRBS libraries will screen + quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read + and, if found, removes the first two basepairs. Like with the option + '--rrbs' this avoids using cytosine positions that were filled-in + during the end-repair step. '--non_directional' requires '--rrbs' to + be specified as well. Note that this option does not set '--clip_r2 2' in + paired-end mode. + +--keep Keep the quality trimmed intermediate file. Default: off, which means + the temporary file is being deleted after adapter trimming. Only has + an effect for RRBS samples since other FastQ files are not trimmed + for poor qualities separately. + + +Note for RRBS using the Tecan Ovation RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit: + +Owing to the fact that the Tecan Ovation RRBS kit attaches a varying number of nucleotides (0-3) after each MspI +site Trim Galore should be run WITHOUT the option --rrbs. This trimming is accomplished in a subsequent +diversity trimming step afterwards (see their manual). + + + +Note for RRBS using MseI: + +If your DNA material was digested with MseI (recognition motif: TTAA) instead of MspI it is NOT necessary +to specify --rrbs or --non_directional since virtually all reads should start with the sequence +'TAA', and this holds true for both directional and non-directional libraries. As the end-repair of 'TAA' +restricted sites does not involve any cytosines it does not need to be treated especially. Instead, simply +run Trim Galore! in the standard (i.e. non-RRBS) mode. + + + + +Paired-end specific options: + +--paired This option performs length trimming of quality/adapter/RRBS trimmed reads for + paired-end files. To pass the validation test, both sequences of a sequence pair + are required to have a certain minimum length which is governed by the option + --length (see above). If only one read passes this length threshold the + other read can be rescued (see option --retain_unpaired). Using this option lets + you discard too short read pairs without disturbing the sequence-by-sequence order + of FastQ files which is required by many aligners. + + Trim Galore! expects paired-end files to be supplied in a pairwise fashion, e.g. + file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz ... . + + +--retain_unpaired If only one of the two paired-end reads became too short, the longer + read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq' + output files. The length cutoff for unpaired single-end reads is + governed by the parameters -r1/--length_1 and -r2/--length_2. Default: OFF. + +-r1/--length_1 Unpaired single-end read length cutoff needed for read 1 to be written to + '.unpaired_1.fq' output file. These reads may be mapped in single-end mode. + Default: 35 bp. + +-r2/--length_2 Unpaired single-end read length cutoff needed for read 2 to be written to + '.unpaired_2.fq' output file. These reads may be mapped in single-end mode. + Default: 35 bp. + +Last modified on 02 02 2023. + diff --git a/src/trimgalore/script.sh b/src/trimgalore/script.sh new file mode 100755 index 00000000..1cceea4b --- /dev/null +++ b/src/trimgalore/script.sh @@ -0,0 +1,126 @@ +#!/bin/bash + +set -eo pipefail + +[[ ! -d $output_dir ]] && mkdir -p $par_output_dir + +IFS=";" read -ra input <<< $par_input + +unset_if_false=( + par_phred33 + par_phred64 + par_fastqc + par_illumina + par_stranded_illumina + par_nextera + par_small_rna + par_gzip + par_dont_gzip + par_trim_n + par_no_report_file + par_suppress_warn + par_clock + par_polyA + par_implicon + par_rrbs + par_non_directional + par_keep + par_paired + par_retain_unpaired +) + +for par in ${unset_if_false[@]}; do + test_val="${!par}" + [[ "$test_val" == "false" ]] && unset $par +done + +# Add FastQC file arguments to fastqc_args +fastqc_args="${par_fastqc_args}" +if [ -f "$par_fastqc_contaminants" ]; then + fastqc_args+=" --contaminants $par_fastqc_contaminants" +fi +if [ -f "$par_fastqc_adapters" ]; then + fastqc_args+=" --adapters $par_fastqc_adapters" +fi +if [ -f "$par_fastqc_limits" ]; then + fastqc_args+=" --limits $par_fastqc_limits" +fi + +trim_galore \ + ${par_quality:+-q "${par_quality}"} \ + ${par_phred33:+--phred33} \ + ${par_phred64:+--phred64 } \ + ${par_fastqc:+--fastqc } \ + ${fastqc_args:+--fastqc_args "${fastqc_args}"} \ + ${par_adapter:+-a "${par_adapter}"} \ + ${par_adapter2:+-a2 "${par_adapter2}"} \ + ${par_illumina:+--illumina} \ + ${par_stranded_illumina:+--stranded_illumina} \ + ${par_nextera:+--nextera} \ + ${par_small_rna:+--small_rna} \ + ${par_consider_already_trimmed:+--consider_already_trimmed "${par_consider_already_trimmed}"} \ + ${par_max_length:+--max_length "${par_max_length}"} \ + ${par_stringency:+--stringency "${par_stringency}"} \ + ${par_error_rate:+-e "${par_error_rate}"} \ + ${par_gzip:+--gzip} \ + ${par_dont_gzip:+--dont_gzip} \ + ${par_length:+--length "${par_length}"} \ + ${par_max_n:+--max_n "${par_max_n}"} \ + ${par_trim_n:+--trim-n "${par_trim_n}"} \ + ${par_no_report_file:+--no_report_file} \ + ${par_suppress_warn:+--suppress_warn} \ + ${par_clip_R1:+--clip_R1 "${par_clip_R1}"} \ + ${par_clip_R2:+--clip_R2 "${par_clip_R2}"} \ + ${par_three_prime_clip_R1:+--three_prime_clip_R1 "${par_three_prime_clip_R1}"} \ + ${par_three_prime_clip_R2:+--three_prime_clip_R2 "${par_three_prime_clip_R2}"} \ + ${par_nextseq:+--nextseq "${par_nextseq}"} \ + ${par_basename:+-basename "${par_basename}"} \ + ${par_hardtrim5:+--hardtrim5 "${par_hardtrim5}"} \ + ${par_hardtrim3:+--hardtrim3 "${par_hardtrim3}"} \ + ${par_clock:+--clock} \ + ${par_polyA:+--polyA} \ + ${par_implicon:+--implicon "${par_implicon}"} \ + ${par_rrbs:+--rrbs} \ + ${par_non_directional:+--non_directional} \ + ${par_keep:+--keep} \ + ${par_paired:+--paired} \ + ${par_retain_unpaired:+--retain_unpaired} \ + ${par_length_1:+-r1 "${par_length_1}"} \ + ${par_length_2:+-r2 "${par_length_2}"} \ + ${meta_cpus:+-j "${meta_cpus}"} \ + -o $par_output_dir \ + ${input[*]} + +if [ $par_paired == "true" ]; then + + input_r1=$(basename -- "${input[0]}") + input_r2=$(basename -- "${input[1]}") + [[ ! -z "$par_trimmed_r1" ]] && mv $par_output_dir/*val_1.f*q* $par_trimmed_r1 + [[ ! -z "$par_trimmed_r2" ]] && mv $par_output_dir/*val_2.f*q* $par_trimmed_r2 + [[ ! -z "$par_trimming_report_r1" ]] && mv $par_output_dir/${input_r1}_trimming_report.txt $par_trimming_report_r1 + [[ ! -z "$par_trimming_report_r2" ]] && mv $par_output_dir/${input_r2}_trimming_report.txt $par_trimming_report_r2 + + if [ "$par_fastqc" == "true" ]; then + [[ ! -z "$par_trimmed_fastqc_html_1" ]] && mv $par_output_dir/*val_1_fastqc.html $par_trimmed_fastqc_html_1 + [[ ! -z "$par_trimmed_fastqc_html_2" ]] && mv $par_output_dir/*val_2_fastqc.html $par_trimmed_fastqc_html_2 + [[ ! -z "$par_trimmed_fastqc_zip_1" ]] && mv $par_output_dir/*val_1_fastqc.zip $par_trimmed_fastqc_zip_1 + [[ ! -z "$par_trimmed_fastqc_zip_2" ]] && mv $par_output_dir/*val_2_fastqc.zip $par_trimmed_fastqc_zip_2 + fi + + if [ "$par_retain_unpaired" == "true" ]; then + [[ ! -z "$par_unpaired_r1" ]] && mv $par_output_dir/*.unpaired_1.f*q* $par_unpaired_r1 + [[ ! -z "$par_unpaired_r2" ]] && mv $par_output_dir/*.unpaired_2.f*q* $par_unpaired_r2 + fi + +else + + input_r1=$(basename -- "${input[0]}") + [[ ! -z "$par_trimmed_r1" ]] && mv $par_output_dir/*_trimmed.fq* $par_trimmed_r1 + [[ ! -z "$par_trimming_report_r1" ]] && mv $par_output_dir/${input_r1}_trimming_report.txt $par_trimming_report_r1 + + if [ "$par_fastqc" == "true" ]; then + [[ ! -z "$par_trimmed_fastqc_html_1" ]] && mv $par_output_dir/*_trimmed_fastqc.html $par_trimmed_fastqc_html_1 + [[ ! -z "$par_trimmed_fastqc_zip_1" ]] && mv $par_output_dir/*_trimmed_fastqc.zip $par_trimmed_fastqc_zip_1 + fi + +fi \ No newline at end of file diff --git a/src/trimgalore/test.sh b/src/trimgalore/test.sh new file mode 100644 index 00000000..8cb3ccdb --- /dev/null +++ b/src/trimgalore/test.sh @@ -0,0 +1,125 @@ +#!/bin/bash + +set -eo pipefail + +# helper functions +assert_file_exists() { + [ -f "$1" ] || { echo "File '$1' does not exist" && exit 1; } +} +assert_file_doesnt_exist() { + [ ! -f "$1" ] || { echo "File '$1' exists but shouldn't" && exit 1; } +} +assert_file_empty() { + [ ! -s "$1" ] || { echo "File '$1' is not empty but should be" && exit 1; } +} +assert_file_not_empty() { + [ -s "$1" ] || { echo "File '$1' is empty but shouldn't be" && exit 1; } +} +assert_file_contains() { + grep -q "$2" "$1" || { echo "File '$1' does not contain '$2'" && exit 1; } +} +assert_file_not_contains() { + grep -q "$2" "$1" && { echo "File '$1' contains '$2' but shouldn't" && exit 1; } +} + +################################################################# + +echo ">>> Prepare test data" + +cat > example_R1.fastq <<'EOF' +@SRR6357071.22842410 22842410/1 kraken:taxid|4932 +CAAGTTTTCATCTTCAACAGCTGATTGACTTCTTTGTGGTATGCCTCGATATATTTTTCTTTTTCTTTAATATCTTTATTATAGGTGATTGCCTCATCGTA ++ +BBBBBFFFFFFFFFFFFFFF/BFFFFFFFFFFFFFFFFBFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFBF< +@SRR6357071.52260105 52260105/1 kraken:taxid|4932 +TAGACTTACCAGTACCCTTTTCGACGGCGGAAACATTCAAAATACCGTTAGAGTCGACATCGAAAGTGACTTCAATTTGTGGGACACCTCTTGGAGCTGGT ++ +BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/FFFFFFFFFFFFFFFF +EOF + +cat > example_R2.fastq <<'EOF' +@SRR6357071.22842410 22842410/2 kraken:taxid|4932 +CCGAGATCGAAGAAACGAATTCACCTGATTGCAGCTGTAAAAGCAGTAAAATCAATCAAACCAATACGGACAACCTTACGATACGATGAGGCAATCACCTA ++ +BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +@SRR6357071.52260105 52260105/2 kraken:taxid|4932 +GTTGATTCCAAGAAACTCTACCATTCCAACTAAGAAATCCGAAGTTTTCTCTACTTATGCTGACAACCAACCAGGTGTCTTGATTCAAGTCTTTGAAGGTG ++ +BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +EOF + +################################################################# + +echo ">>> Testing for single-end reads" +"$meta_executable" \ + --input "example_R1.fastq" \ + --trimmed_fastqc_html_1 output_se_test/example.trimmed.html \ + --trimmed_fastqc_zip_1 output_se_test/example.trimmed.zip \ + --trimmed_r1 output_se_test/example.trimmed.fastq \ + --trimming_report_r1 output_se_test/example.trimming_report.txt \ + --fastqc \ + --output_dir output_se_test + +echo ">> Checking output" +assert_file_exists "output_se_test/example.trimmed.html" +assert_file_exists "output_se_test/example.trimmed.zip" +assert_file_exists "output_se_test/example.trimmed.fastq" +assert_file_exists "output_se_test/example.trimming_report.txt" + +echo ">> Check if output is empty" +assert_file_not_empty "output_se_test/example.trimmed.html" +assert_file_not_empty "output_se_test/example.trimmed.zip" +assert_file_not_empty "output_se_test/example.trimmed.fastq" +assert_file_not_empty "output_se_test/example.trimming_report.txt" + +echo ">> Check contents" +assert_file_contains "output_se_test/example.trimmed.fastq" "@SRR6357071.22842410 22842410/1" +assert_file_contains "output_se_test/example.trimming_report.txt" "Sequences removed because they became shorter than the length cutoff" + +################################################################# + +echo ">>> Testing for paired-end reads" +"$meta_executable" \ + --paired \ + --input "example_R1.fastq;example_R2.fastq" \ + --trimmed_fastqc_html_1 output_pe_test/example_R1.trimmed.html \ + --trimmed_fastqc_html_2 output_pe_test/example_R2.trimmed.html \ + --trimmed_fastqc_zip_1 output_pe_test/example_R1.trimmed.zip \ + --trimmed_fastqc_zip_2 output_pe_test/example_R2.trimmed.zip \ + --trimmed_r1 output_pe_test/example_R1.trimmed.fastq \ + --trimmed_r2 output_pe_test/example_R2.trimmed.fastq \ + --trimming_report_r1 output_pe_test/example_R1.trimming_report.txt \ + --trimming_report_r2 output_pe_test/example_R2.trimming_report.txt \ + --fastqc \ + --output_dir output_pe_test + +echo ">> Checking output" +assert_file_exists "output_pe_test/example_R1.trimmed.html" +assert_file_exists "output_pe_test/example_R2.trimmed.html" +assert_file_exists "output_pe_test/example_R1.trimmed.zip" +assert_file_exists "output_pe_test/example_R2.trimmed.zip" +assert_file_exists "output_pe_test/example_R1.trimmed.fastq" +assert_file_exists "output_pe_test/example_R2.trimmed.fastq" +assert_file_exists "output_pe_test/example_R1.trimming_report.txt" +assert_file_exists "output_pe_test/example_R2.trimming_report.txt" + +echo ">> Check if output is empty" +assert_file_not_empty "output_pe_test/example_R1.trimmed.html" +assert_file_not_empty "output_pe_test/example_R2.trimmed.html" +assert_file_not_empty "output_pe_test/example_R1.trimmed.zip" +assert_file_not_empty "output_pe_test/example_R2.trimmed.zip" +assert_file_not_empty "output_pe_test/example_R1.trimmed.fastq" +assert_file_not_empty "output_pe_test/example_R2.trimmed.fastq" +assert_file_not_empty "output_pe_test/example_R1.trimming_report.txt" +assert_file_not_empty "output_pe_test/example_R2.trimming_report.txt" + +echo ">> Check contents" +assert_file_contains "output_pe_test/example_R1.trimmed.fastq" "@SRR6357071.22842410 22842410/1" +assert_file_contains "output_pe_test/example_R2.trimmed.fastq" "@SRR6357071.22842410 22842410/2" +assert_file_contains "output_pe_test/example_R1.trimming_report.txt" "sequences processed in total" +assert_file_contains "output_pe_test/example_R2.trimming_report.txt" "Number of sequence pairs removed because at least one read was shorter than the length cutoff" + +################################################################# + +echo ">>> Test finished successfully" +exit 0 diff --git a/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml index f2d062fe..689e6e57 100644 --- a/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_bed2gff/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/executable/agat/agat_convert_bed2gff" executable: "target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff b/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff index 71f65899..777b7a38 100755 --- a/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff +++ b/target/executable/agat/agat_convert_bed2gff/agat_convert_bed2gff @@ -515,9 +515,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_bed2gff" -LABEL org.opencontainers.image.created="2024-09-19T03:54:22Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:19Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml index e3007239..bd1044f2 100644 --- a/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_embl2gff/.config.vsh.yaml @@ -225,9 +225,9 @@ build_info: output: "target/executable/agat/agat_convert_embl2gff" executable: "target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff b/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff index b50b2e97..3797550d 100755 --- a/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff +++ b/target/executable/agat/agat_convert_embl2gff/agat_convert_embl2gff @@ -505,9 +505,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_embl2gff" -LABEL org.opencontainers.image.created="2024-09-19T03:54:22Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:19Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml b/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml index 94f1207e..f8095003 100644 --- a/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_genscan2gff/.config.vsh.yaml @@ -230,9 +230,9 @@ build_info: output: "target/executable/agat/agat_convert_genscan2gff" executable: "target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff b/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff index 88def98f..84b120a0 100755 --- a/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff +++ b/target/executable/agat/agat_convert_genscan2gff/agat_convert_genscan2gff @@ -514,9 +514,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_genscan2gff" -LABEL org.opencontainers.image.created="2024-09-19T03:54:23Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:20Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml index d249cf50..3393fd6e 100644 --- a/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml @@ -228,9 +228,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gff2gtf" executable: "target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf b/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf index 4f9623e3..dd81b919 100755 --- a/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf +++ b/target/executable/agat/agat_convert_sp_gff2gtf/agat_convert_sp_gff2gtf @@ -519,9 +519,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gff2gtf" -LABEL org.opencontainers.image.created="2024-09-19T03:54:22Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:20Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml index 0da03f7d..6e8cef89 100644 --- a/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml @@ -188,9 +188,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gff2tsv" executable: "target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv b/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv index fff6d53c..4cc57c46 100755 --- a/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv +++ b/target/executable/agat/agat_convert_sp_gff2tsv/agat_convert_sp_gff2tsv @@ -484,9 +484,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gff2tsv" -LABEL org.opencontainers.image.created="2024-09-19T03:54:21Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:19Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml b/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml index d88a6546..35f2498a 100644 --- a/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml +++ b/target/executable/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml @@ -195,9 +195,9 @@ build_info: output: "target/executable/agat/agat_convert_sp_gxf2gxf" executable: "target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf b/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf index de8a36e2..cfec5cee 100755 --- a/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf +++ b/target/executable/agat/agat_convert_sp_gxf2gxf/agat_convert_sp_gxf2gxf @@ -493,9 +493,9 @@ RUN agat --version | sed 's/AGAT\s\(.*\)/agat: "\1"/' > /var/software_versions.t LABEL org.opencontainers.image.authors="Leïla Paquay" LABEL org.opencontainers.image.description="Companion container for running component agat agat_convert_sp_gxf2gxf" -LABEL org.opencontainers.image.created="2024-09-19T03:54:21Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:18Z" LABEL org.opencontainers.image.source="https://github.com/NBISweden/AGAT" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/arriba/.config.vsh.yaml b/target/executable/arriba/.config.vsh.yaml index 468a3d83..187401e7 100644 --- a/target/executable/arriba/.config.vsh.yaml +++ b/target/executable/arriba/.config.vsh.yaml @@ -706,9 +706,9 @@ build_info: output: "target/executable/arriba" executable: "target/executable/arriba/arriba" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/arriba/arriba b/target/executable/arriba/arriba index c2b22db7..b0833728 100755 --- a/target/executable/arriba/arriba +++ b/target/executable/arriba/arriba @@ -754,9 +754,9 @@ RUN arriba -h | grep 'Version:' 2>&1 | sed 's/Version:\s\(.*\)/arriba: "\1"/' > LABEL org.opencontainers.image.authors="Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component arriba" -LABEL org.opencontainers.image.created="2024-09-19T03:54:24Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:22Z" LABEL org.opencontainers.image.source="https://github.com/suhrig/arriba" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml b/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml index 36bcb6b9..50c71f44 100644 --- a/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_annotate/.config.vsh.yaml @@ -469,9 +469,9 @@ build_info: output: "target/executable/bcftools/bcftools_annotate" executable: "target/executable/bcftools/bcftools_annotate/bcftools_annotate" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_annotate/bcftools_annotate b/target/executable/bcftools/bcftools_annotate/bcftools_annotate index a8e3e558..abe0f460 100755 --- a/target/executable/bcftools/bcftools_annotate/bcftools_annotate +++ b/target/executable/bcftools/bcftools_annotate/bcftools_annotate @@ -650,9 +650,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_annotate" -LABEL org.opencontainers.image.created="2024-09-19T03:54:15Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:11Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_concat/.config.vsh.yaml b/target/executable/bcftools/bcftools_concat/.config.vsh.yaml index 2572c566..29505fb9 100644 --- a/target/executable/bcftools/bcftools_concat/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_concat/.config.vsh.yaml @@ -335,9 +335,9 @@ build_info: output: "target/executable/bcftools/bcftools_concat" executable: "target/executable/bcftools/bcftools_concat/bcftools_concat" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_concat/bcftools_concat b/target/executable/bcftools/bcftools_concat/bcftools_concat index 74af8259..8b3eed71 100755 --- a/target/executable/bcftools/bcftools_concat/bcftools_concat +++ b/target/executable/bcftools/bcftools_concat/bcftools_concat @@ -566,9 +566,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_concat" -LABEL org.opencontainers.image.created="2024-09-19T03:54:15Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:12Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_norm/.config.vsh.yaml b/target/executable/bcftools/bcftools_norm/.config.vsh.yaml index 9c6b629c..9cd58bd0 100644 --- a/target/executable/bcftools/bcftools_norm/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_norm/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/executable/bcftools/bcftools_norm" executable: "target/executable/bcftools/bcftools_norm/bcftools_norm" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_norm/bcftools_norm b/target/executable/bcftools/bcftools_norm/bcftools_norm index f04988b1..b651ea9f 100755 --- a/target/executable/bcftools/bcftools_norm/bcftools_norm +++ b/target/executable/bcftools/bcftools_norm/bcftools_norm @@ -589,9 +589,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_norm" -LABEL org.opencontainers.image.created="2024-09-19T03:54:16Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:13Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_sort/.config.vsh.yaml b/target/executable/bcftools/bcftools_sort/.config.vsh.yaml index fefcf44f..11ad4c01 100644 --- a/target/executable/bcftools/bcftools_sort/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_sort/.config.vsh.yaml @@ -185,9 +185,9 @@ build_info: output: "target/executable/bcftools/bcftools_sort" executable: "target/executable/bcftools/bcftools_sort/bcftools_sort" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_sort/bcftools_sort b/target/executable/bcftools/bcftools_sort/bcftools_sort index 7871108a..da9accff 100755 --- a/target/executable/bcftools/bcftools_sort/bcftools_sort +++ b/target/executable/bcftools/bcftools_sort/bcftools_sort @@ -483,9 +483,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_sort" -LABEL org.opencontainers.image.created="2024-09-19T03:54:14Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:11Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcftools/bcftools_stats/.config.vsh.yaml b/target/executable/bcftools/bcftools_stats/.config.vsh.yaml index 4fe8add5..f7202326 100644 --- a/target/executable/bcftools/bcftools_stats/.config.vsh.yaml +++ b/target/executable/bcftools/bcftools_stats/.config.vsh.yaml @@ -458,9 +458,9 @@ build_info: output: "target/executable/bcftools/bcftools_stats" executable: "target/executable/bcftools/bcftools_stats/bcftools_stats" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcftools/bcftools_stats/bcftools_stats b/target/executable/bcftools/bcftools_stats/bcftools_stats index 99f4b2a1..ee509473 100755 --- a/target/executable/bcftools/bcftools_stats/bcftools_stats +++ b/target/executable/bcftools/bcftools_stats/bcftools_stats @@ -626,9 +626,9 @@ RUN echo "bcftools: \"$(bcftools --version | grep 'bcftools' | sed -n 's/^bcftoo LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bcftools bcftools_stats" -LABEL org.opencontainers.image.created="2024-09-19T03:54:15Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:12Z" LABEL org.opencontainers.image.source="https://github.com/samtools/bcftools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bcl_convert/.config.vsh.yaml b/target/executable/bcl_convert/.config.vsh.yaml index 2cd8790e..6af28b8a 100644 --- a/target/executable/bcl_convert/.config.vsh.yaml +++ b/target/executable/bcl_convert/.config.vsh.yaml @@ -418,9 +418,9 @@ build_info: output: "target/executable/bcl_convert" executable: "target/executable/bcl_convert/bcl_convert" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bcl_convert/bcl_convert b/target/executable/bcl_convert/bcl_convert index 62a225fb..cfad8b43 100755 --- a/target/executable/bcl_convert/bcl_convert +++ b/target/executable/bcl_convert/bcl_convert @@ -599,9 +599,9 @@ RUN echo "bcl-convert: \"$(bcl-convert -V 2>&1 >/dev/null | sed -n '/Version/ s/ LABEL org.opencontainers.image.authors="Toni Verbeiren, Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component bcl_convert" -LABEL org.opencontainers.image.created="2024-09-19T03:54:23Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:21Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml index 40f1e0b4..e256b7a8 100644 --- a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml +++ b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml @@ -274,9 +274,9 @@ build_info: output: "target/executable/bd_rhapsody/bd_rhapsody_make_reference" executable: "target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference index 231f9975..77cdb7c6 100755 --- a/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference +++ b/target/executable/bd_rhapsody/bd_rhapsody_make_reference/bd_rhapsody_make_reference @@ -554,9 +554,9 @@ RUN VERSION=$(ls -v /var/bd_rhapsody_cwl | grep '^v' | sed 's#v##' | tail -1) RUN echo "bdgenomics/rhapsody: \"$VERSION\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Weiwei Schultz" LABEL org.opencontainers.image.description="Companion container for running component bd_rhapsody bd_rhapsody_make_reference" -LABEL org.opencontainers.image.created="2024-09-19T03:54:27Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:26Z" LABEL org.opencontainers.image.source="https://bitbucket.org/CRSwDev/cwl/src/master/v2.2.1/Extra_Utilities/" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml index ff2ea434..4537aa67 100644 --- a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml +++ b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml @@ -1115,9 +1115,9 @@ build_info: output: "target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis" executable: "target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis index 556bfabf..91352e93 100755 --- a/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis +++ b/target/executable/bd_rhapsody/bd_rhapsody_sequence_analysis/bd_rhapsody_sequence_analysis @@ -954,9 +954,9 @@ RUN VERSION=$(ls -v /var/bd_rhapsody_cwl | grep '^v' | sed 's#v##' | tail -1) RUN echo "bdgenomics/rhapsody: \"$VERSION\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Weiwei Schultz" LABEL org.opencontainers.image.description="Companion container for running component bd_rhapsody bd_rhapsody_sequence_analysis" -LABEL org.opencontainers.image.created="2024-09-19T03:54:27Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:25Z" LABEL org.opencontainers.image.source="https://bitbucket.org/CRSwDev/cwl/src/master/v2.2.1" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml b/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml index f2f1d8ec..80d353ca 100644 --- a/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bamtofastq/.config.vsh.yaml @@ -187,9 +187,9 @@ build_info: output: "target/executable/bedtools/bedtools_bamtofastq" executable: "target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq b/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq index c7b3255f..01ecc577 100755 --- a/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq +++ b/target/executable/bedtools/bedtools_bamtofastq/bedtools_bamtofastq @@ -483,9 +483,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bamtofastq" -LABEL org.opencontainers.image.created="2024-09-19T03:54:07Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:04Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml b/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml index 02402648..de17f12d 100644 --- a/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bed12tobed6/.config.vsh.yaml @@ -176,9 +176,9 @@ build_info: output: "target/executable/bedtools/bedtools_bed12tobed6" executable: "target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 b/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 index d6f14ff4..70581a26 100755 --- a/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 +++ b/target/executable/bedtools/bedtools_bed12tobed6/bedtools_bed12tobed6 @@ -480,9 +480,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bed12tobed6" -LABEL org.opencontainers.image.created="2024-09-19T03:54:06Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:02Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml b/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml index 08ec0d23..ff2e1663 100644 --- a/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_bedtobam/.config.vsh.yaml @@ -214,9 +214,9 @@ build_info: output: "target/executable/bedtools/bedtools_bedtobam" executable: "target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam b/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam index 78f6f21d..a55c5704 100755 --- a/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam +++ b/target/executable/bedtools/bedtools_bedtobam/bedtools_bedtobam @@ -496,9 +496,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_bedtobam" -LABEL org.opencontainers.image.created="2024-09-19T03:54:08Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:05Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml b/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml index 5a1de429..ed649c71 100644 --- a/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_genomecov/.config.vsh.yaml @@ -337,9 +337,9 @@ build_info: output: "target/executable/bedtools/bedtools_genomecov" executable: "target/executable/bedtools/bedtools_genomecov/bedtools_genomecov" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov b/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov index f6f6729b..6810fe02 100755 --- a/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov +++ b/target/executable/bedtools/bedtools_genomecov/bedtools_genomecov @@ -591,9 +591,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_genomecov" -LABEL org.opencontainers.image.created="2024-09-19T03:54:06Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:02Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml b/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml index 8171eca5..fee494dd 100644 --- a/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_getfasta/.config.vsh.yaml @@ -232,9 +232,9 @@ build_info: output: "target/executable/bedtools/bedtools_getfasta" executable: "target/executable/bedtools/bedtools_getfasta/bedtools_getfasta" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta b/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta index b565263b..ab58e0ca 100755 --- a/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta +++ b/target/executable/bedtools/bedtools_getfasta/bedtools_getfasta @@ -526,9 +526,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Dries Schaumont" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_getfasta" -LABEL org.opencontainers.image.created="2024-09-19T03:54:06Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:02Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml b/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml index a4f81343..d737249a 100644 --- a/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_groupby/.config.vsh.yaml @@ -273,9 +273,9 @@ build_info: output: "target/executable/bedtools/bedtools_groupby" executable: "target/executable/bedtools/bedtools_groupby/bedtools_groupby" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_groupby/bedtools_groupby b/target/executable/bedtools/bedtools_groupby/bedtools_groupby index 55ceaaf8..66a339c7 100755 --- a/target/executable/bedtools/bedtools_groupby/bedtools_groupby +++ b/target/executable/bedtools/bedtools_groupby/bedtools_groupby @@ -552,9 +552,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_groupby" -LABEL org.opencontainers.image.created="2024-09-19T03:54:08Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:04Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml b/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml index 9a9ca43a..3605ad6a 100644 --- a/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_intersect/.config.vsh.yaml @@ -410,9 +410,9 @@ build_info: output: "target/executable/bedtools/bedtools_intersect" executable: "target/executable/bedtools/bedtools_intersect/bedtools_intersect" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_intersect/bedtools_intersect b/target/executable/bedtools/bedtools_intersect/bedtools_intersect index dd43b439..97a7212c 100755 --- a/target/executable/bedtools/bedtools_intersect/bedtools_intersect +++ b/target/executable/bedtools/bedtools_intersect/bedtools_intersect @@ -633,9 +633,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_intersect" -LABEL org.opencontainers.image.created="2024-09-19T03:54:07Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:03Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_links/.config.vsh.yaml b/target/executable/bedtools/bedtools_links/.config.vsh.yaml index bfe01ad0..c11f5600 100644 --- a/target/executable/bedtools/bedtools_links/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_links/.config.vsh.yaml @@ -210,9 +210,9 @@ build_info: output: "target/executable/bedtools/bedtools_links" executable: "target/executable/bedtools/bedtools_links/bedtools_links" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_links/bedtools_links b/target/executable/bedtools/bedtools_links/bedtools_links index c2f1c533..5e999c10 100755 --- a/target/executable/bedtools/bedtools_links/bedtools_links +++ b/target/executable/bedtools/bedtools_links/bedtools_links @@ -500,9 +500,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_links" -LABEL org.opencontainers.image.created="2024-09-19T03:54:07Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:03Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_merge/.config.vsh.yaml b/target/executable/bedtools/bedtools_merge/.config.vsh.yaml index 8419b793..a94b0c9a 100644 --- a/target/executable/bedtools/bedtools_merge/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_merge/.config.vsh.yaml @@ -279,9 +279,9 @@ build_info: output: "target/executable/bedtools/bedtools_merge" executable: "target/executable/bedtools/bedtools_merge/bedtools_merge" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_merge/bedtools_merge b/target/executable/bedtools/bedtools_merge/bedtools_merge index 98e52904..a68d0b23 100755 --- a/target/executable/bedtools/bedtools_merge/bedtools_merge +++ b/target/executable/bedtools/bedtools_merge/bedtools_merge @@ -558,9 +558,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_merge" -LABEL org.opencontainers.image.created="2024-09-19T03:54:05Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:01Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools/bedtools_sort/.config.vsh.yaml b/target/executable/bedtools/bedtools_sort/.config.vsh.yaml index 3e4474b0..10755947 100644 --- a/target/executable/bedtools/bedtools_sort/.config.vsh.yaml +++ b/target/executable/bedtools/bedtools_sort/.config.vsh.yaml @@ -222,9 +222,9 @@ build_info: output: "target/executable/bedtools/bedtools_sort" executable: "target/executable/bedtools/bedtools_sort/bedtools_sort" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/bedtools/bedtools_sort/bedtools_sort b/target/executable/bedtools/bedtools_sort/bedtools_sort index d8a290fc..c8d4b75d 100755 --- a/target/executable/bedtools/bedtools_sort/bedtools_sort +++ b/target/executable/bedtools/bedtools_sort/bedtools_sort @@ -509,9 +509,9 @@ RUN echo "bedtools: \"$(bedtools --version | sed -n 's/^bedtools //p')\"" > /var LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component bedtools bedtools_sort" -LABEL org.opencontainers.image.created="2024-09-19T03:54:08Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:04Z" LABEL org.opencontainers.image.source="https://github.com/arq5x/bedtools2" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_download_datasets/.config.vsh.yaml b/target/executable/busco/busco_download_datasets/.config.vsh.yaml index ab654e18..e0b967e5 100644 --- a/target/executable/busco/busco_download_datasets/.config.vsh.yaml +++ b/target/executable/busco/busco_download_datasets/.config.vsh.yaml @@ -158,9 +158,9 @@ build_info: output: "target/executable/busco/busco_download_datasets" executable: "target/executable/busco/busco_download_datasets/busco_download_datasets" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_download_datasets/busco_download_datasets b/target/executable/busco/busco_download_datasets/busco_download_datasets index 0f1a137d..00b5bd80 100755 --- a/target/executable/busco/busco_download_datasets/busco_download_datasets +++ b/target/executable/busco/busco_download_datasets/busco_download_datasets @@ -475,9 +475,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_download_datasets" -LABEL org.opencontainers.image.created="2024-09-19T03:54:19Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:16Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_list_datasets/.config.vsh.yaml b/target/executable/busco/busco_list_datasets/.config.vsh.yaml index 1811b09c..806b523a 100644 --- a/target/executable/busco/busco_list_datasets/.config.vsh.yaml +++ b/target/executable/busco/busco_list_datasets/.config.vsh.yaml @@ -145,9 +145,9 @@ build_info: output: "target/executable/busco/busco_list_datasets" executable: "target/executable/busco/busco_list_datasets/busco_list_datasets" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_list_datasets/busco_list_datasets b/target/executable/busco/busco_list_datasets/busco_list_datasets index ddb10863..4e94932c 100755 --- a/target/executable/busco/busco_list_datasets/busco_list_datasets +++ b/target/executable/busco/busco_list_datasets/busco_list_datasets @@ -465,9 +465,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_list_datasets" -LABEL org.opencontainers.image.created="2024-09-19T03:54:19Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:16Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/busco/busco_run/.config.vsh.yaml b/target/executable/busco/busco_run/.config.vsh.yaml index 16c1cb43..2515ad56 100644 --- a/target/executable/busco/busco_run/.config.vsh.yaml +++ b/target/executable/busco/busco_run/.config.vsh.yaml @@ -423,9 +423,9 @@ build_info: output: "target/executable/busco/busco_run" executable: "target/executable/busco/busco_run/busco_run" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/busco/busco_run/busco_run b/target/executable/busco/busco_run/busco_run index 3a428338..832fe718 100755 --- a/target/executable/busco/busco_run/busco_run +++ b/target/executable/busco/busco_run/busco_run @@ -632,9 +632,9 @@ RUN busco --version | sed 's/BUSCO\s\(.*\)/busco: "\1"/' > /var/software_version LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component busco busco_run" -LABEL org.opencontainers.image.created="2024-09-19T03:54:19Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:16Z" LABEL org.opencontainers.image.source="https://gitlab.com/ezlab/busco" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/cutadapt/.config.vsh.yaml b/target/executable/cutadapt/.config.vsh.yaml index 00f4c164..a8c00370 100644 --- a/target/executable/cutadapt/.config.vsh.yaml +++ b/target/executable/cutadapt/.config.vsh.yaml @@ -740,9 +740,9 @@ build_info: output: "target/executable/cutadapt" executable: "target/executable/cutadapt/cutadapt" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/cutadapt/cutadapt b/target/executable/cutadapt/cutadapt index 0b32b51d..d2a61b22 100755 --- a/target/executable/cutadapt/cutadapt +++ b/target/executable/cutadapt/cutadapt @@ -831,9 +831,9 @@ RUN cutadapt --version | sed 's/\(.*\)/cutadapt: "\1"/' > /var/software_versions LABEL org.opencontainers.image.authors="Toni Verbeiren" LABEL org.opencontainers.image.description="Companion container for running component cutadapt" -LABEL org.opencontainers.image.created="2024-09-19T03:54:25Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:24Z" LABEL org.opencontainers.image.source="https://github.com/marcelm/cutadapt" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/falco/.config.vsh.yaml b/target/executable/falco/.config.vsh.yaml index 85c12456..090d69ac 100644 --- a/target/executable/falco/.config.vsh.yaml +++ b/target/executable/falco/.config.vsh.yaml @@ -101,7 +101,7 @@ argument_groups: info: null direction: "input" - type: "boolean_true" - name: "--reverse_complliment" + name: "--reverse_complement" alternatives: - "-r" description: "[Falco only] The input is a \nreverse-complement. All modules will\ @@ -317,9 +317,9 @@ build_info: output: "target/executable/falco" executable: "target/executable/falco/falco" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/falco/falco b/target/executable/falco/falco index cef3264d..804dbbcb 100755 --- a/target/executable/falco/falco +++ b/target/executable/falco/falco @@ -243,7 +243,7 @@ function ViashHelp { echo " Cs are therefore expected and will be" echo " accounted for in base content." echo "" - echo " -r, --reverse_complliment" + echo " -r, --reverse_complement" echo " type: boolean_true" echo " [Falco only] The input is a" echo " reverse-complement. All modules will be" @@ -589,9 +589,9 @@ RUN echo "falco: \"$(falco -v | sed -n 's/^falco //p')\"" > /var/software_versio LABEL org.opencontainers.image.authors="Toni Verbeiren" LABEL org.opencontainers.image.description="Companion container for running component falco" -LABEL org.opencontainers.image.created="2024-09-19T03:54:26Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:25Z" LABEL org.opencontainers.image.source="https://github.com/smithlabcode/falco" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -813,14 +813,14 @@ while [[ $# -gt 0 ]]; do VIASH_PAR_BISULFITE=true shift 1 ;; - --reverse_complliment) - [ -n "$VIASH_PAR_REVERSE_COMPLLIMENT" ] && ViashError Bad arguments for option \'--reverse_complliment\': \'$VIASH_PAR_REVERSE_COMPLLIMENT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_REVERSE_COMPLLIMENT=true + --reverse_complement) + [ -n "$VIASH_PAR_REVERSE_COMPLEMENT" ] && ViashError Bad arguments for option \'--reverse_complement\': \'$VIASH_PAR_REVERSE_COMPLEMENT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_REVERSE_COMPLEMENT=true shift 1 ;; -r) - [ -n "$VIASH_PAR_REVERSE_COMPLLIMENT" ] && ViashError Bad arguments for option \'-r\': \'$VIASH_PAR_REVERSE_COMPLLIMENT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_REVERSE_COMPLLIMENT=true + [ -n "$VIASH_PAR_REVERSE_COMPLEMENT" ] && ViashError Bad arguments for option \'-r\': \'$VIASH_PAR_REVERSE_COMPLEMENT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_REVERSE_COMPLEMENT=true shift 1 ;; --outdir) @@ -1120,8 +1120,8 @@ fi if [ -z ${VIASH_PAR_BISULFITE+x} ]; then VIASH_PAR_BISULFITE="false" fi -if [ -z ${VIASH_PAR_REVERSE_COMPLLIMENT+x} ]; then - VIASH_PAR_REVERSE_COMPLLIMENT="false" +if [ -z ${VIASH_PAR_REVERSE_COMPLEMENT+x} ]; then + VIASH_PAR_REVERSE_COMPLEMENT="false" fi # check whether required files exist @@ -1169,9 +1169,9 @@ if [[ -n "$VIASH_PAR_BISULFITE" ]]; then exit 1 fi fi -if [[ -n "$VIASH_PAR_REVERSE_COMPLLIMENT" ]]; then - if ! [[ "$VIASH_PAR_REVERSE_COMPLLIMENT" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then - ViashError '--reverse_complliment' has to be a boolean_true. Use "--help" to get more information on the parameters. +if [[ -n "$VIASH_PAR_REVERSE_COMPLEMENT" ]]; then + if ! [[ "$VIASH_PAR_REVERSE_COMPLEMENT" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--reverse_complement' has to be a boolean_true. Use "--help" to get more information on the parameters. exit 1 fi fi @@ -1406,7 +1406,7 @@ $( if [ ! -z ${VIASH_PAR_ADAPTERS+x} ]; then echo "${VIASH_PAR_ADAPTERS}" | sed $( if [ ! -z ${VIASH_PAR_LIMITS+x} ]; then echo "${VIASH_PAR_LIMITS}" | sed "s#'#'\"'\"'#g;s#.*#par_limits='&'#" ; else echo "# par_limits="; fi ) $( if [ ! -z ${VIASH_PAR_SUBSAMPLE+x} ]; then echo "${VIASH_PAR_SUBSAMPLE}" | sed "s#'#'\"'\"'#g;s#.*#par_subsample='&'#" ; else echo "# par_subsample="; fi ) $( if [ ! -z ${VIASH_PAR_BISULFITE+x} ]; then echo "${VIASH_PAR_BISULFITE}" | sed "s#'#'\"'\"'#g;s#.*#par_bisulfite='&'#" ; else echo "# par_bisulfite="; fi ) -$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLLIMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLLIMENT}" | sed "s#'#'\"'\"'#g;s#.*#par_reverse_complliment='&'#" ; else echo "# par_reverse_complliment="; fi ) +$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLEMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLEMENT}" | sed "s#'#'\"'\"'#g;s#.*#par_reverse_complement='&'#" ; else echo "# par_reverse_complement="; fi ) $( if [ ! -z ${VIASH_PAR_OUTDIR+x} ]; then echo "${VIASH_PAR_OUTDIR}" | sed "s#'#'\"'\"'#g;s#.*#par_outdir='&'#" ; else echo "# par_outdir="; fi ) $( if [ ! -z ${VIASH_PAR_FORMAT+x} ]; then echo "${VIASH_PAR_FORMAT}" | sed "s#'#'\"'\"'#g;s#.*#par_format='&'#" ; else echo "# par_format="; fi ) $( if [ ! -z ${VIASH_PAR_DATA_FILENAME+x} ]; then echo "${VIASH_PAR_DATA_FILENAME}" | sed "s#'#'\"'\"'#g;s#.*#par_data_filename='&'#" ; else echo "# par_data_filename="; fi ) @@ -1438,7 +1438,7 @@ set -eo pipefail [[ "\$par_nogroup" == "false" ]] && unset par_nogroup [[ "\$par_bisulfite" == "false" ]] && unset par_bisulfite -[[ "\$par_reverse_compliment" == "false" ]] && unset par_reverse_compliment +[[ "\$par_reverse_complement" == "false" ]] && unset par_reverse_complement IFS=";" read -ra input <<< \$par_input @@ -1449,7 +1449,7 @@ IFS=";" read -ra input <<< \$par_input \${par_limits:+--limits "\$par_limits"} \\ \${par_subsample:+-subsample \$par_subsample} \\ \${par_bisulfite:+-bisulfite} \\ - \${par_reverse_compliment:+-reverse-compliment} \\ + \${par_reverse_complement:+-reverse-complement} \\ \${par_outdir:+--outdir "\$par_outdir"} \\ \${par_format:+--format "\$par_format"} \\ \${par_data_filename:+-data-filename "\$par_data_filename"} \\ diff --git a/target/executable/fastp/.config.vsh.yaml b/target/executable/fastp/.config.vsh.yaml index 88d23968..55e65de1 100644 --- a/target/executable/fastp/.config.vsh.yaml +++ b/target/executable/fastp/.config.vsh.yaml @@ -1083,9 +1083,9 @@ build_info: output: "target/executable/fastp" executable: "target/executable/fastp/fastp" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/fastp/fastp b/target/executable/fastp/fastp index 3b048aa4..25993481 100755 --- a/target/executable/fastp/fastp +++ b/target/executable/fastp/fastp @@ -1028,9 +1028,9 @@ RUN fastp --version 2>&1 | sed 's# #: "#;s#$#"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component fastp" -LABEL org.opencontainers.image.created="2024-09-19T03:54:23Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:21Z" LABEL org.opencontainers.image.source="https://github.com/OpenGene/fastp" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fastqc/.config.vsh.yaml b/target/executable/fastqc/.config.vsh.yaml index d4dacbb4..6f48a068 100644 --- a/target/executable/fastqc/.config.vsh.yaml +++ b/target/executable/fastqc/.config.vsh.yaml @@ -340,9 +340,9 @@ build_info: output: "target/executable/fastqc" executable: "target/executable/fastqc/fastqc" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/fastqc/fastqc b/target/executable/fastqc/fastqc index 18b311be..98bcca0d 100755 --- a/target/executable/fastqc/fastqc +++ b/target/executable/fastqc/fastqc @@ -601,9 +601,9 @@ RUN echo "fastqc: $(fastqc --version | sed -n 's/^FastQC //p')" > /var/software_ LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component fastqc" -LABEL org.opencontainers.image.created="2024-09-19T03:54:13Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:10Z" LABEL org.opencontainers.image.source="https://github.com/s-andrews/FastQC" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/featurecounts/.config.vsh.yaml b/target/executable/featurecounts/.config.vsh.yaml index a49f7e50..a225b612 100644 --- a/target/executable/featurecounts/.config.vsh.yaml +++ b/target/executable/featurecounts/.config.vsh.yaml @@ -645,9 +645,9 @@ build_info: output: "target/executable/featurecounts" executable: "target/executable/featurecounts/featurecounts" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/featurecounts/featurecounts b/target/executable/featurecounts/featurecounts index ba37ad7f..5487ec16 100755 --- a/target/executable/featurecounts/featurecounts +++ b/target/executable/featurecounts/featurecounts @@ -754,9 +754,9 @@ RUN featureCounts -v 2>&1 | sed 's/featureCounts v\([0-9.]*\)/featureCounts: \1/ LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component featurecounts" -LABEL org.opencontainers.image.created="2024-09-19T03:54:17Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:14Z" LABEL org.opencontainers.image.source="https://github.com/ShiLab-Bioinformatics/subread" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fq_subsample/.config.vsh.yaml b/target/executable/fq_subsample/.config.vsh.yaml index 220e1659..34d87d9e 100644 --- a/target/executable/fq_subsample/.config.vsh.yaml +++ b/target/executable/fq_subsample/.config.vsh.yaml @@ -190,9 +190,9 @@ build_info: output: "target/executable/fq_subsample" executable: "target/executable/fq_subsample/fq_subsample" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/fq_subsample/fq_subsample b/target/executable/fq_subsample/fq_subsample index a6c268d4..035ad09a 100755 --- a/target/executable/fq_subsample/fq_subsample +++ b/target/executable/fq_subsample/fq_subsample @@ -493,9 +493,9 @@ mv target/release/fq /usr/local/bin/ && \ cd / && rm -rf /fq LABEL org.opencontainers.image.description="Companion container for running component fq_subsample" -LABEL org.opencontainers.image.created="2024-09-19T03:54:13Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:09Z" LABEL org.opencontainers.image.source="https://github.com/stjude-rust-labs/fq" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/gffread/.config.vsh.yaml b/target/executable/gffread/.config.vsh.yaml index dbedfdd4..7705f5a4 100644 --- a/target/executable/gffread/.config.vsh.yaml +++ b/target/executable/gffread/.config.vsh.yaml @@ -685,9 +685,9 @@ build_info: output: "target/executable/gffread" executable: "target/executable/gffread/gffread" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/gffread/gffread b/target/executable/gffread/gffread index 233f6a24..20f773c7 100755 --- a/target/executable/gffread/gffread +++ b/target/executable/gffread/gffread @@ -807,9 +807,9 @@ RUN echo "gffread: \"$(gffread --version 2>&1)\"" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component gffread" -LABEL org.opencontainers.image.created="2024-09-19T03:54:05Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:00Z" LABEL org.opencontainers.image.source="https://github.com/gpertea/gffread" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/kallisto/kallisto_index/.config.vsh.yaml b/target/executable/kallisto/kallisto_index/.config.vsh.yaml index 2b457789..5d1526fb 100644 --- a/target/executable/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_index/.config.vsh.yaml @@ -218,9 +218,9 @@ build_info: output: "target/executable/kallisto/kallisto_index" executable: "target/executable/kallisto/kallisto_index/kallisto_index" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/kallisto/kallisto_index/kallisto_index b/target/executable/kallisto/kallisto_index/kallisto_index index b94c9ded..c49826fc 100755 --- a/target/executable/kallisto/kallisto_index/kallisto_index +++ b/target/executable/kallisto/kallisto_index/kallisto_index @@ -506,9 +506,9 @@ tar -xzf kallisto_linux-v0.50.1.tar.gz && \ mv kallisto/kallisto /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component kallisto kallisto_index" -LABEL org.opencontainers.image.created="2024-09-19T03:54:21Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:18Z" LABEL org.opencontainers.image.source="https://github.com/pachterlab/kallisto" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/kallisto/kallisto_quant/.config.vsh.yaml b/target/executable/kallisto/kallisto_quant/.config.vsh.yaml index 537d4a2f..3787105f 100644 --- a/target/executable/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_quant/.config.vsh.yaml @@ -234,9 +234,9 @@ build_info: output: "target/executable/kallisto/kallisto_quant" executable: "target/executable/kallisto/kallisto_quant/kallisto_quant" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/kallisto/kallisto_quant/kallisto_quant b/target/executable/kallisto/kallisto_quant/kallisto_quant index 5d4bd56c..e68e76ea 100755 --- a/target/executable/kallisto/kallisto_quant/kallisto_quant +++ b/target/executable/kallisto/kallisto_quant/kallisto_quant @@ -518,9 +518,9 @@ mv kallisto/kallisto /usr/local/bin/ RUN echo "kallisto: $(kallisto version | sed 's/kallisto, version //')" > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component kallisto kallisto_quant" -LABEL org.opencontainers.image.created="2024-09-19T03:54:20Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:18Z" LABEL org.opencontainers.image.source="https://github.com/pachterlab/kallisto" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/lofreq/lofreq_call/.config.vsh.yaml b/target/executable/lofreq/lofreq_call/.config.vsh.yaml index 103107b3..7022e8f0 100644 --- a/target/executable/lofreq/lofreq_call/.config.vsh.yaml +++ b/target/executable/lofreq/lofreq_call/.config.vsh.yaml @@ -507,9 +507,9 @@ build_info: output: "target/executable/lofreq/lofreq_call" executable: "target/executable/lofreq/lofreq_call/lofreq_call" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/lofreq/lofreq_call/lofreq_call b/target/executable/lofreq/lofreq_call/lofreq_call index 56bd235b..a9854133 100755 --- a/target/executable/lofreq/lofreq_call/lofreq_call +++ b/target/executable/lofreq/lofreq_call/lofreq_call @@ -656,9 +656,9 @@ echo "lofreq: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component lofreq lofreq_call" -LABEL org.opencontainers.image.created="2024-09-19T03:54:16Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:13Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml b/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml index 4b047867..214c5b0c 100644 --- a/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml +++ b/target/executable/lofreq/lofreq_indelqual/.config.vsh.yaml @@ -215,9 +215,9 @@ build_info: output: "target/executable/lofreq/lofreq_indelqual" executable: "target/executable/lofreq/lofreq_indelqual/lofreq_indelqual" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual b/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual index d1af131d..1ae35448 100755 --- a/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual +++ b/target/executable/lofreq/lofreq_indelqual/lofreq_indelqual @@ -501,9 +501,9 @@ echo "lofreq: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component lofreq lofreq_indelqual" -LABEL org.opencontainers.image.created="2024-09-19T03:54:16Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:13Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/multiqc/.config.vsh.yaml b/target/executable/multiqc/.config.vsh.yaml index ec254d72..90c21d15 100644 --- a/target/executable/multiqc/.config.vsh.yaml +++ b/target/executable/multiqc/.config.vsh.yaml @@ -456,9 +456,9 @@ build_info: output: "target/executable/multiqc" executable: "target/executable/multiqc/multiqc" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/multiqc/multiqc b/target/executable/multiqc/multiqc index e2674c56..e7f0bc7d 100755 --- a/target/executable/multiqc/multiqc +++ b/target/executable/multiqc/multiqc @@ -637,9 +637,9 @@ RUN multiqc --version | sed 's/multiqc, version\s\(.*\)/multiqc: "\1"/' > /var/s LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component multiqc" -LABEL org.opencontainers.image.created="2024-09-19T03:54:26Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:24Z" LABEL org.opencontainers.image.source="https://github.com/viash-hub/biobox" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/pear/.config.vsh.yaml b/target/executable/pear/.config.vsh.yaml index 94a5e88d..66bf5b63 100644 --- a/target/executable/pear/.config.vsh.yaml +++ b/target/executable/pear/.config.vsh.yaml @@ -398,9 +398,9 @@ build_info: output: "target/executable/pear" executable: "target/executable/pear/pear" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/pear/pear b/target/executable/pear/pear index 4f479b9a..aef064ed 100755 --- a/target/executable/pear/pear +++ b/target/executable/pear/pear @@ -597,9 +597,9 @@ echo "pear: $version" > /var/software_versions.txt LABEL org.opencontainers.image.authors="Kai Waldrant" LABEL org.opencontainers.image.description="Companion container for running component pear" -LABEL org.opencontainers.image.created="2024-09-19T03:54:09Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:05Z" LABEL org.opencontainers.image.source="https://github.com/tseemann/PEAR" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml b/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml index aeacab70..f54db9fd 100644 --- a/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml +++ b/target/executable/qualimap/qualimap_rnaseq/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/executable/qualimap/qualimap_rnaseq" executable: "target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq b/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq index db575d73..cdc5c7cb 100755 --- a/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq +++ b/target/executable/qualimap/qualimap_rnaseq/qualimap_rnaseq @@ -527,9 +527,9 @@ RUN echo QualiMap: $(qualimap 2>&1 | grep QualiMap | sed 's/^.*QualiMap//') > /v LABEL org.opencontainers.image.authors="Dorien Roosen" LABEL org.opencontainers.image.description="Companion container for running component qualimap qualimap_rnaseq" -LABEL org.opencontainers.image.created="2024-09-19T03:54:12Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:09Z" LABEL org.opencontainers.image.source="https://bitbucket.org/kokonech/qualimap/commits/branch/master" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml b/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml index 8dbd5cb9..1d376426 100644 --- a/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -852,9 +852,9 @@ build_info: output: "target/executable/rsem/rsem_calculate_expression" executable: "target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression b/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression index 7c04bd82..7672395c 100755 --- a/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression +++ b/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression @@ -991,9 +991,9 @@ echo "bowtie: `bowtie --version | grep -oP 'bowtie-align-s version \K\d+\.\d+\.\ echo "HISAT2: `hisat2 --version | grep -oP 'hisat2-align-s version \K\d+\.\d+\.\d+'`" >> /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_calculate_expression" -LABEL org.opencontainers.image.created="2024-09-19T03:54:20Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:17Z" LABEL org.opencontainers.image.source="https://github.com/deweylab/RSEM" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml b/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml index e4c4a8ca..0393b7e3 100644 --- a/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml +++ b/target/executable/rsem/rsem_prepare_reference/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/executable/rsem/rsem_prepare_reference" executable: "target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference b/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference index 3e521b6c..56cd781f 100755 --- a/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference +++ b/target/executable/rsem/rsem_prepare_reference/rsem_prepare_reference @@ -656,9 +656,9 @@ echo "HISAT2: `hisat2 --version | grep -oP 'hisat2-align-s version \K\d+\.\d+\.\ LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_prepare_reference" -LABEL org.opencontainers.image.created="2024-09-19T03:54:20Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:17Z" LABEL org.opencontainers.image.source="https://github.com/deweylab/RSEM" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/salmon/salmon_index/.config.vsh.yaml b/target/executable/salmon/salmon_index/.config.vsh.yaml index 6e0a1dcb..1dfbea9c 100644 --- a/target/executable/salmon/salmon_index/.config.vsh.yaml +++ b/target/executable/salmon/salmon_index/.config.vsh.yaml @@ -277,9 +277,9 @@ build_info: output: "target/executable/salmon/salmon_index" executable: "target/executable/salmon/salmon_index/salmon_index" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/salmon/salmon_index/salmon_index b/target/executable/salmon/salmon_index/salmon_index index becbcc2f..0b42799e 100755 --- a/target/executable/salmon/salmon_index/salmon_index +++ b/target/executable/salmon/salmon_index/salmon_index @@ -546,9 +546,9 @@ RUN salmon index -v 2>&1 | sed 's/salmon \([0-9.]*\)/salmon: \1/' > /var/softwar LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component salmon salmon_index" -LABEL org.opencontainers.image.created="2024-09-19T03:54:25Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:23Z" LABEL org.opencontainers.image.source="https://github.com/COMBINE-lab/salmon" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/salmon/salmon_quant/.config.vsh.yaml b/target/executable/salmon/salmon_quant/.config.vsh.yaml index 7e0bc24c..85a50fe4 100644 --- a/target/executable/salmon/salmon_quant/.config.vsh.yaml +++ b/target/executable/salmon/salmon_quant/.config.vsh.yaml @@ -1173,9 +1173,9 @@ build_info: output: "target/executable/salmon/salmon_quant" executable: "target/executable/salmon/salmon_quant/salmon_quant" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/salmon/salmon_quant/salmon_quant b/target/executable/salmon/salmon_quant/salmon_quant index 65779e40..1526d3c1 100755 --- a/target/executable/salmon/salmon_quant/salmon_quant +++ b/target/executable/salmon/salmon_quant/salmon_quant @@ -1168,9 +1168,9 @@ RUN salmon index -v 2>&1 | sed 's/salmon \([0-9.]*\)/salmon: \1/' > /var/softwar LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component salmon salmon_quant" -LABEL org.opencontainers.image.created="2024-09-19T03:54:25Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:23Z" LABEL org.opencontainers.image.source="https://github.com/COMBINE-lab/salmon" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_collate/.config.vsh.yaml b/target/executable/samtools/samtools_collate/.config.vsh.yaml index 1a33769c..9970ad43 100644 --- a/target/executable/samtools/samtools_collate/.config.vsh.yaml +++ b/target/executable/samtools/samtools_collate/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/executable/samtools/samtools_collate" executable: "target/executable/samtools/samtools_collate/samtools_collate" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_collate/samtools_collate b/target/executable/samtools/samtools_collate/samtools_collate index 07507f47..a4d74b9c 100755 --- a/target/executable/samtools/samtools_collate/samtools_collate +++ b/target/executable/samtools/samtools_collate/samtools_collate @@ -519,9 +519,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_collate" -LABEL org.opencontainers.image.created="2024-09-19T03:54:11Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:07Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_faidx/.config.vsh.yaml b/target/executable/samtools/samtools_faidx/.config.vsh.yaml index 3fd09ea6..5e524238 100644 --- a/target/executable/samtools/samtools_faidx/.config.vsh.yaml +++ b/target/executable/samtools/samtools_faidx/.config.vsh.yaml @@ -243,9 +243,9 @@ build_info: output: "target/executable/samtools/samtools_faidx" executable: "target/executable/samtools/samtools_faidx/samtools_faidx" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_faidx/samtools_faidx b/target/executable/samtools/samtools_faidx/samtools_faidx index 3173dc1e..f2eca695 100755 --- a/target/executable/samtools/samtools_faidx/samtools_faidx +++ b/target/executable/samtools/samtools_faidx/samtools_faidx @@ -512,9 +512,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_faidx" -LABEL org.opencontainers.image.created="2024-09-19T03:54:11Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:07Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_fasta/.config.vsh.yaml b/target/executable/samtools/samtools_fasta/.config.vsh.yaml index 73b3ed9f..6ef8fce2 100644 --- a/target/executable/samtools/samtools_fasta/.config.vsh.yaml +++ b/target/executable/samtools/samtools_fasta/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/executable/samtools/samtools_fasta" executable: "target/executable/samtools/samtools_fasta/samtools_fasta" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_fasta/samtools_fasta b/target/executable/samtools/samtools_fasta/samtools_fasta index 21f5c721..35c73c99 100755 --- a/target/executable/samtools/samtools_fasta/samtools_fasta +++ b/target/executable/samtools/samtools_fasta/samtools_fasta @@ -625,9 +625,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_fasta" -LABEL org.opencontainers.image.created="2024-09-19T03:54:11Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:08Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_fastq/.config.vsh.yaml b/target/executable/samtools/samtools_fastq/.config.vsh.yaml index b332478c..8b7b6acc 100644 --- a/target/executable/samtools/samtools_fastq/.config.vsh.yaml +++ b/target/executable/samtools/samtools_fastq/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/executable/samtools/samtools_fastq" executable: "target/executable/samtools/samtools_fastq/samtools_fastq" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_fastq/samtools_fastq b/target/executable/samtools/samtools_fastq/samtools_fastq index 90b1654c..b06536fe 100755 --- a/target/executable/samtools/samtools_fastq/samtools_fastq +++ b/target/executable/samtools/samtools_fastq/samtools_fastq @@ -626,9 +626,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_fastq" -LABEL org.opencontainers.image.created="2024-09-19T03:54:10Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:07Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_flagstat/.config.vsh.yaml b/target/executable/samtools/samtools_flagstat/.config.vsh.yaml index 96f4b4e3..4f776fe4 100644 --- a/target/executable/samtools/samtools_flagstat/.config.vsh.yaml +++ b/target/executable/samtools/samtools_flagstat/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/executable/samtools/samtools_flagstat" executable: "target/executable/samtools/samtools_flagstat/samtools_flagstat" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_flagstat/samtools_flagstat b/target/executable/samtools/samtools_flagstat/samtools_flagstat index 19ad3bf3..1f3bd3fa 100755 --- a/target/executable/samtools/samtools_flagstat/samtools_flagstat +++ b/target/executable/samtools/samtools_flagstat/samtools_flagstat @@ -474,9 +474,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_flagstat" -LABEL org.opencontainers.image.created="2024-09-19T03:54:10Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:06Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_idxstats/.config.vsh.yaml b/target/executable/samtools/samtools_idxstats/.config.vsh.yaml index 77ec9660..0db9d5a1 100644 --- a/target/executable/samtools/samtools_idxstats/.config.vsh.yaml +++ b/target/executable/samtools/samtools_idxstats/.config.vsh.yaml @@ -183,9 +183,9 @@ build_info: output: "target/executable/samtools/samtools_idxstats" executable: "target/executable/samtools/samtools_idxstats/samtools_idxstats" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_idxstats/samtools_idxstats b/target/executable/samtools/samtools_idxstats/samtools_idxstats index 0e7d660e..3e6cbee0 100755 --- a/target/executable/samtools/samtools_idxstats/samtools_idxstats +++ b/target/executable/samtools/samtools_idxstats/samtools_idxstats @@ -478,9 +478,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_idxstats" -LABEL org.opencontainers.image.created="2024-09-19T03:54:09Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:06Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_index/.config.vsh.yaml b/target/executable/samtools/samtools_index/.config.vsh.yaml index 854bfddb..09a1ed31 100644 --- a/target/executable/samtools/samtools_index/.config.vsh.yaml +++ b/target/executable/samtools/samtools_index/.config.vsh.yaml @@ -189,9 +189,9 @@ build_info: output: "target/executable/samtools/samtools_index" executable: "target/executable/samtools/samtools_index/samtools_index" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_index/samtools_index b/target/executable/samtools/samtools_index/samtools_index index ddcf727f..8b3997a0 100755 --- a/target/executable/samtools/samtools_index/samtools_index +++ b/target/executable/samtools/samtools_index/samtools_index @@ -485,9 +485,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_index" -LABEL org.opencontainers.image.created="2024-09-19T03:54:09Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:05Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_sort/.config.vsh.yaml b/target/executable/samtools/samtools_sort/.config.vsh.yaml index 21858806..06e8b354 100644 --- a/target/executable/samtools/samtools_sort/.config.vsh.yaml +++ b/target/executable/samtools/samtools_sort/.config.vsh.yaml @@ -332,9 +332,9 @@ build_info: output: "target/executable/samtools/samtools_sort" executable: "target/executable/samtools/samtools_sort/samtools_sort" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_sort/samtools_sort b/target/executable/samtools/samtools_sort/samtools_sort index eceb3d9b..d5efe346 100755 --- a/target/executable/samtools/samtools_sort/samtools_sort +++ b/target/executable/samtools/samtools_sort/samtools_sort @@ -556,9 +556,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_sort" -LABEL org.opencontainers.image.created="2024-09-19T03:54:12Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:08Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_stats/.config.vsh.yaml b/target/executable/samtools/samtools_stats/.config.vsh.yaml index cd583896..6ddd1b64 100644 --- a/target/executable/samtools/samtools_stats/.config.vsh.yaml +++ b/target/executable/samtools/samtools_stats/.config.vsh.yaml @@ -401,9 +401,9 @@ build_info: output: "target/executable/samtools/samtools_stats" executable: "target/executable/samtools/samtools_stats/samtools_stats" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_stats/samtools_stats b/target/executable/samtools/samtools_stats/samtools_stats index f97e6429..89cc8bdd 100755 --- a/target/executable/samtools/samtools_stats/samtools_stats +++ b/target/executable/samtools/samtools_stats/samtools_stats @@ -575,9 +575,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_stats" -LABEL org.opencontainers.image.created="2024-09-19T03:54:12Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:08Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/samtools/samtools_view/.config.vsh.yaml b/target/executable/samtools/samtools_view/.config.vsh.yaml index 433e6237..c7c9800b 100644 --- a/target/executable/samtools/samtools_view/.config.vsh.yaml +++ b/target/executable/samtools/samtools_view/.config.vsh.yaml @@ -665,9 +665,9 @@ build_info: output: "target/executable/samtools/samtools_view" executable: "target/executable/samtools/samtools_view/samtools_view" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/samtools/samtools_view/samtools_view b/target/executable/samtools/samtools_view/samtools_view index 8841718a..5ca3d4a7 100755 --- a/target/executable/samtools/samtools_view/samtools_view +++ b/target/executable/samtools/samtools_view/samtools_view @@ -825,9 +825,9 @@ sed 's#Using ##;s# \([0-9\.]*\)$#: \1#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component samtools samtools_view" -LABEL org.opencontainers.image.created="2024-09-19T03:54:10Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:06Z" LABEL org.opencontainers.image.source="https://github.com/samtools/samtools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/seqtk/seqtk_sample/.config.vsh.yaml b/target/executable/seqtk/seqtk_sample/.config.vsh.yaml index b64f342f..94742f67 100644 --- a/target/executable/seqtk/seqtk_sample/.config.vsh.yaml +++ b/target/executable/seqtk/seqtk_sample/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/executable/seqtk/seqtk_sample" executable: "target/executable/seqtk/seqtk_sample/seqtk_sample" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/seqtk/seqtk_sample/seqtk_sample b/target/executable/seqtk/seqtk_sample/seqtk_sample index 9fa5b8e6..f4d591fe 100755 --- a/target/executable/seqtk/seqtk_sample/seqtk_sample +++ b/target/executable/seqtk/seqtk_sample/seqtk_sample @@ -481,9 +481,9 @@ FROM quay.io/biocontainers/seqtk:1.4--he4a0461_2 ENTRYPOINT [] LABEL org.opencontainers.image.authors="Jakub Majercik" LABEL org.opencontainers.image.description="Companion container for running component seqtk seqtk_sample" -LABEL org.opencontainers.image.created="2024-09-19T03:54:28Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:26Z" LABEL org.opencontainers.image.source="https://github.com/lh3/seqtk/tree/v1.4" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml b/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml index d1ba0b6d..409f32e5 100644 --- a/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml +++ b/target/executable/seqtk/seqtk_subseq/.config.vsh.yaml @@ -196,9 +196,9 @@ build_info: output: "target/executable/seqtk/seqtk_subseq" executable: "target/executable/seqtk/seqtk_subseq/seqtk_subseq" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/seqtk/seqtk_subseq/seqtk_subseq b/target/executable/seqtk/seqtk_subseq/seqtk_subseq index 13bea579..6b8fe6bd 100755 --- a/target/executable/seqtk/seqtk_subseq/seqtk_subseq +++ b/target/executable/seqtk/seqtk_subseq/seqtk_subseq @@ -491,9 +491,9 @@ RUN echo $(echo $(seqtk 2>&1) | sed -n 's/.*\(Version: [^ ]*\).*/\1/p') > /var/s LABEL org.opencontainers.image.authors="Theodoro Gasperin Terra Camargo" LABEL org.opencontainers.image.description="Companion container for running component seqtk seqtk_subseq" -LABEL org.opencontainers.image.created="2024-09-19T03:54:27Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:26Z" LABEL org.opencontainers.image.source="https://github.com/lh3/seqtk/tree/v1.4" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/sortmerna/.config.vsh.yaml b/target/executable/sortmerna/.config.vsh.yaml index 47029c3e..a0d89260 100644 --- a/target/executable/sortmerna/.config.vsh.yaml +++ b/target/executable/sortmerna/.config.vsh.yaml @@ -591,9 +591,9 @@ build_info: output: "target/executable/sortmerna" executable: "target/executable/sortmerna/sortmerna" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/sortmerna/sortmerna b/target/executable/sortmerna/sortmerna index 79be3c81..1cb3d892 100755 --- a/target/executable/sortmerna/sortmerna +++ b/target/executable/sortmerna/sortmerna @@ -744,9 +744,9 @@ wget --no-check-certificate https://github.com/sortmerna/sortmerna/releases/down bash sortmerna-4.3.6-Linux.sh --skip-license LABEL org.opencontainers.image.description="Companion container for running component sortmerna" -LABEL org.opencontainers.image.created="2024-09-19T03:54:24Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:22Z" LABEL org.opencontainers.image.source="https://github.com/sortmerna/sortmerna" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/star/star_align_reads/.config.vsh.yaml b/target/executable/star/star_align_reads/.config.vsh.yaml index a0441f53..5edac4be 100644 --- a/target/executable/star/star_align_reads/.config.vsh.yaml +++ b/target/executable/star/star_align_reads/.config.vsh.yaml @@ -2663,9 +2663,9 @@ build_info: output: "target/executable/star/star_align_reads" executable: "target/executable/star/star_align_reads/star_align_reads" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/star/star_align_reads/star_align_reads b/target/executable/star/star_align_reads/star_align_reads index 697ca1bd..ef1fe520 100755 --- a/target/executable/star/star_align_reads/star_align_reads +++ b/target/executable/star/star_align_reads/star_align_reads @@ -1920,9 +1920,9 @@ RUN STAR --version | sed 's#\(.*\)#star: "\1"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Angela Oliveira Pisco, Robrecht Cannoodt" LABEL org.opencontainers.image.description="Companion container for running component star star_align_reads" -LABEL org.opencontainers.image.created="2024-09-19T03:54:18Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:15Z" LABEL org.opencontainers.image.source="https://github.com/alexdobin/STAR" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/star/star_genome_generate/.config.vsh.yaml b/target/executable/star/star_genome_generate/.config.vsh.yaml index 18bf7833..491619f0 100644 --- a/target/executable/star/star_genome_generate/.config.vsh.yaml +++ b/target/executable/star/star_genome_generate/.config.vsh.yaml @@ -333,9 +333,9 @@ build_info: output: "target/executable/star/star_genome_generate" executable: "target/executable/star/star_genome_generate/star_genome_generate" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/star/star_genome_generate/star_genome_generate b/target/executable/star/star_genome_generate/star_genome_generate index 4f09c24a..4b7e8f54 100755 --- a/target/executable/star/star_genome_generate/star_genome_generate +++ b/target/executable/star/star_genome_generate/star_genome_generate @@ -577,9 +577,9 @@ RUN STAR --version | sed 's#\(.*\)#star: "\1"#' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" LABEL org.opencontainers.image.description="Companion container for running component star star_genome_generate" -LABEL org.opencontainers.image.created="2024-09-19T03:54:17Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:14Z" LABEL org.opencontainers.image.source="https://github.com/alexdobin/STAR" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/trimgalore/.config.vsh.yaml b/target/executable/trimgalore/.config.vsh.yaml new file mode 100644 index 00000000..6570872a --- /dev/null +++ b/target/executable/trimgalore/.config.vsh.yaml @@ -0,0 +1,797 @@ +name: "trimgalore" +version: "main" +authors: +- name: "Sai Nirmayi Yasa" + roles: + - "author" + - "maintainer" + info: + links: + email: "nirmayi@data-intuitive.com" + github: "sainirmayi" + linkedin: "sai-nirmayi-yasa" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Junior Bioinformatics Researcher" +argument_groups: +- name: "Input" + arguments: + - type: "file" + name: "--input" + description: "Input files. Note that paired-end files need to be supplied in a\ + \ pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz" + info: null + example: + - "sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" +- name: "Trimming options" + arguments: + - type: "integer" + name: "--quality" + alternatives: + - "-q" + description: "Trim low-quality ends (below the specified Phred score) from reads\ + \ in addition to adapter removal. For RRBS samples, quality trimming will be\ + \ performed first, and adapter trimming is carried in a second round. Other\ + \ files are quality and adapter trimmed in a single pass. The algorithm is the\ + \ same as the one used by BWA (Subtract INT from all qualities; compute partial\ + \ sums from all indices to the end of the sequence; cut sequence at the index\ + \ at which the sum is minimal)." + info: null + example: + - 20 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--phred33" + description: "Instructs Cutadapt to use ASCII+33 quality scores as Phred scores\ + \ (Sanger/Illumina 1.9+ encoding) for quality trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--phred64" + description: "Instructs Cutadapt to use ASCII+64 quality scores as Phred scores\ + \ (Illumina 1.5 encoding) for quality trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--fastqc" + description: "Run FastQC in the default mode on the FastQ file once trimming is\ + \ complete." + info: null + direction: "input" + - type: "string" + name: "--fastqc_args" + description: "Passes extra arguments (excluding files) to FastQC. If more than\ + \ one argument is to be passed to FastQC they must be in the form \"arg1 arg2\ + \ ...\". Passing extra arguments will automatically invoke FastQC, so --fastqc\ + \ does not have to be specified separately." + info: null + example: + - "--nogroup --noextract" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_contaminants" + description: "Specifies a non-default file which contains the list of contaminants\ + \ for FastQC to screen overrepresented sequences against. The file must contain\ + \ sets of named contaminants in the form name[tab]sequence. Lines prefixed with\ + \ a hash will be ignored." + info: null + example: + - "contaminants.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_adapters" + description: "Specifies a non-default file which contains the list of adapter\ + \ sequences which which FasstQC will explicity search against the library. The\ + \ file must contain sets of named adapters in the form name[tab]sequence. Lines\ + \ prefixed with a hash will be ignored." + info: null + example: + - "adapters.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_limits" + description: "Specifies a non-default file which contains a set of criteria which\ + \ FastQC will use to determine the warn/error limits for the various modules.\ + \ This file can also be used to selectively remove some modules from the output\ + \ all together. The format needs to mirror the default limits.txt file found\ + \ in the Configuration folder." + info: null + example: + - "limits.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--adapter" + alternatives: + - "-a" + description: "Adapter sequence to be trimmed. If not specified explicitly, Trim\ + \ Galore will try to auto-detect whether the Illumina universal, Nextera transposase\ + \ or Illumina small RNA adapter sequence was used. A single base may also be\ + \ given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. \nAt a special request,\ + \ multiple adapters can also be specified like so: \n -a \" AGCTCCCG -a TTTCATTATAT\ + \ -a TTTATTCGGATTTAT\" -a2 \" AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT\", \nor\ + \ so:\n -a \"file:../multiple_adapters.fa\" -a2 \"file:../different_adapters.fa\"\ + \nPotentially in conjucntion with the parameter \"-n 3\" to trim all adapters.\ + \ \n" + info: null + example: + - "AGCTCCCG" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--adapter2" + alternatives: + - "-a2" + description: "Optional adapter sequence to be trimmed off read 2 of paired-end\ + \ files. This option requires '--paired' to be specified as well. If the libraries\ + \ to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5'\ + \ adapter automatically (GATCGTCGGACT). A single base may also be given as e.g.\ + \ -a2 A{10}, to be expanded to -a2 AAAAAAAAAA." + info: null + example: + - "AGCTCCCG" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--illumina" + description: "Adapter sequence to be trimmed is the first 13bp of the Illumina\ + \ universal adapter 'AGATCGGAAGAGC' instead of the default auto-detection of\ + \ adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--stranded_illumina" + description: "Adapter sequence to be trimmed is the first 13bp of the Illumina\ + \ stranded mRNA or Total RNA adapter 'ACTGTCTCTTATA' instead of the default\ + \ auto-detection of adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--nextera" + description: "Adapter sequence to be trimmed is the first 12bp of the Nextera\ + \ adapter 'CTGTCTCTTATA' instead of the default auto-detection of adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--small_rna" + description: "Adapter sequence to be trimmed is the first 12bp of the Illumina\ + \ Small RNA 3' Adapter 'TGGAATTCTCGG' instead of the default auto-detection\ + \ of adapter sequence. Selecting to trim smallRNA adapters will also lower the\ + \ --length value to 18bp. If the smallRNA libraries are paired-end then a automatically\ + \ (GATCGTCGGACT) unless -a 2 had been defined explicitly." + info: null + direction: "input" + - type: "integer" + name: "--consider_already_trimmed" + description: "During adapter auto-detection, the limit set by this argument allows\ + \ the user to set a threshold up to which the file is considered already adapter-trimmed.\ + \ If no adapter sequence exceeds this threshold, no additional adapter trimming\ + \ will be performed (technically, the adapter is set to '-a X'). Quality trimming\ + \ is still performed as usual." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--max_length" + description: "Discard reads that are longer than the specified value after trimming.\ + \ This is only advised for smallRNA sequencing to remove non-small RNA sequences." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--stringency" + description: "Overlap with adapter sequence required to trim a sequence. Defaults\ + \ to a very stringent setting of 1, i.e. even a single bp of overlapping sequence\ + \ will be trimmed off from the 3' end of any read." + info: null + example: + - 1 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "double" + name: "--error_rate" + alternatives: + - "-e" + description: "Maximum allowed error rate (no. of errors divided by the length\ + \ of the matching region)" + info: null + example: + - 0.1 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--gzip" + description: "Compress the output file with GZIP. If the input files are GZIP-compressed\ + \ the output files will automatically be GZIP compressed as well. As of v0.2.8\ + \ the compression will take place on the fly." + info: null + direction: "input" + - type: "boolean_true" + name: "--dont_gzip" + description: "Output files won't be compressed with GZIP. This option overrides\ + \ --gzip." + info: null + direction: "input" + - type: "integer" + name: "--length" + description: "Discard reads that became shorter than the specified length because\ + \ of either quality or adapter trimming. A value of '0' effectively disables\ + \ this behaviour. For paired-end files, both reads of a read-pair need to be\ + \ longer than the specified length to be printed out to validated paired-end\ + \ files. If only one read became too short there is the possibility of keeping\ + \ such unpaired single-end reads using the --retain_unpaired option." + info: null + example: + - 20 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--max_n" + description: "The total number of Ns a read may contain before it will be removed\ + \ altogether.In a paired-end setting, either read exceeding this limit will\ + \ result in the entire pair being removed from the trimmed output files. If\ + \ COUNT is a number between 0 and 1, it is interpreted as a fraction of the\ + \ read length." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--trim_n" + description: "Removes Ns from either side of the read. This option does currently\ + \ not work in RRBS mode." + info: null + direction: "input" + - type: "boolean_true" + name: "--no_report_file" + description: "If specified no report file will be generated." + info: null + direction: "input" + - type: "boolean_true" + name: "--suppress_warn" + description: "If specified any output to STDOUT or STDERR will be suppressed." + info: null + direction: "input" + - type: "integer" + name: "--clip_R1" + description: "Instructs TrimGalore to remove given number of bp from the 5' end\ + \ of read 1 (or single-end reads). This may be useful if the qualities were\ + \ very poor, or if there is some sort of unwanted bias at the 5' end." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--clip_R2" + description: "Instructs TrimGalore to remove given number bp from the 5' end of\ + \ read 2 (paired-end reads only). This may be useful if the qualities were very\ + \ poor, or if there is some sort of unwanted bias at the 5' end. For paired-end\ + \ BS-Seq, it is recommended to remove the first few bp because the end-repair\ + \ reaction may introduce a bias towards low methylation." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--three_prime_clip_R1" + description: "Instructs Trim Galore to remove spacified number of bp from the\ + \ 3' end of read 1 (or single-end reads) AFTER adapter/quality trimming has\ + \ been performed. This may remove some bias from the 3' end that is not directly\ + \ related to adapter sequence or basecall quality." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--three_prime_clip_R2" + description: "Instructs Trim Galore to remove bp from the 3' end of read\ + \ 2 AFTER adapter/quality trimming has been performed. This may remove some\ + \ unwanted bias from the 3' end that is not directly related to adapter sequence\ + \ or basecall quality." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--nextseq" + description: "This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt,\ + \ which will set a quality cutoff (that is normally given with -q instead),\ + \ but qualities of G bases are ignored. This trimming is in common for the NextSeq-\ + \ and NovaSeq-platforms, where basecalls without any signal are called as high-quality\ + \ G bases. This is mutually exlusive with '-q INT'." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--basename" + description: "Use specified name (PREFERRED_NAME) as the basename for output files,\ + \ instead of deriving the filenames from the input files. Single-end data would\ + \ be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz)\ + \ and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Specific trimming options without adapter/quality trimming" + arguments: + - type: "integer" + name: "--hardtrim5" + description: "Instead of performing adapter-/quality trimming, this option will\ + \ simply hard-trim sequences to bp at the 5'-end. Once hard-trimming of\ + \ files is complete, Trim Galore will exit. Hard-trimmed output files will end\ + \ in ._5prime.fq(.gz)." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--hardtrim3" + description: "Instead of performing adapter-/quality trimming, this option will\ + \ simply hard-trim sequences to bp at the 3'-end. Once hard-trimming of\ + \ files is complete, Trim Galore will exit. Hard-trimmed output files will end\ + \ in ._3prime.fq(.gz)." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--clock" + description: "In this mode, reads are trimmed in a specific way that is currently\ + \ used for the Mouse Epigenetic Clock." + info: null + direction: "input" + - type: "boolean_true" + name: "--polyA" + description: "This is a new, still experimental, trimming mode to identify and\ + \ remove poly-A tails from sequences. When --polyA is selected, Trim Galore\ + \ attempts to identify from the first supplied sample whether sequences contain\ + \ more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'. This determines\ + \ if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA\ + \ or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary\ + \ base from the start of the reads. The auto-detection uses a default of A{20}\ + \ for Read1 (3'-end trimming) and T{150} for Read2 (5'-end trimming). These\ + \ values may be changed manually using the options -a and -a2. In addition to\ + \ trimming the sequences, white spaces are replaced with _ and it records in\ + \ the read ID how many bases were trimmed so it can later be used to identify\ + \ PolyA trimmed sequences. This is currently done by writing tags to both the\ + \ start (\"32:A:\") and end (\"_PolyA:32\") of the reads. The poly-A trimming\ + \ mode expects that sequences were both adapter and quality before looking\ + \ for Poly-A tails, and it is the user's responsibility to carry out an initial\ + \ round of trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--implicon" + description: "This is a special mode of operation for paired-end data, such as\ + \ required for the IMPLICON method, where a UMI sequence is getting transferred\ + \ from the start of Read 2 to the readID of both reads. Following this, Trim\ + \ Galore will exit. In it's current implementation, the UMI carrying reads come\ + \ in the following format\n Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ + \ 3'\n Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5'\nWhere UUUUUUUU is\ + \ a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual\ + \ fragment to be sequenced. The UMI of Read 2 (R2) is written into the read\ + \ ID of both reads and removed from the actual sequence.\n" + info: null + direction: "input" +- name: "RRBS-specific options" + arguments: + - type: "boolean_true" + name: "--rrbs" + description: "Specifies that the input file was an MspI digested RRBS sample (recognition\ + \ site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed\ + \ will have a further 2 bp removed from their 3' end. Sequences which were merely\ + \ trimmed because of poor quality will not be shortened further. Read 2 of paired-end\ + \ libraries will in addition have the first 2 bp removed from the 5' end (by\ + \ setting '--clip_r2 2'). This is to avoid using artificial methylation calls\ + \ from the filled-in cytosine positions close to the 3' MspI site in sequenced\ + \ fragments. This option is not recommended for users of the Tecan Ovation RRBS\ + \ Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below)." + info: null + direction: "input" + - type: "boolean_true" + name: "--non_directional" + description: "Selecting this option for non-directional RRBS libraries will screen\ + \ quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read and,\ + \ if found, removes the first two basepairs. Like with the option '--rrbs' this\ + \ avoids using cytosine positions that were filled-in during the end-repair\ + \ step. '--non_directional' requires '--rrbs' to be specified as well. Note\ + \ that this option does not set '--clip_r2 2' in paired-end mode." + info: null + direction: "input" + - type: "boolean_true" + name: "--keep" + description: "Keep the quality trimmed intermediate file." + info: null + direction: "input" +- name: "Paired-end specific options" + arguments: + - type: "boolean_true" + name: "--paired" + description: "This option performs length trimming of quality/adapter/RRBS trimmed\ + \ reads for paired-end files. To pass the validation test, both sequences of\ + \ a sequence pair are required to have a certain minimum length which is governed\ + \ by the option --length (see above). If only one read passes this length threshold\ + \ the other read can be rescued (see option --retain_unpaired). Using this option\ + \ lets you discard too short read pairs without disturbing the sequence-by-sequence\ + \ order of FastQ files which is required by many aligners. Trim Galore expects\ + \ paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq\ + \ SRR2_1.fq.gz SRR2_2.fq.gz ... ." + info: null + direction: "input" + - type: "boolean_true" + name: "--retain_unpaired" + description: "If only one of the two paired-end reads became too short, the longer\ + \ read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq' output\ + \ files. The length cutoff for unpaired single-end reads is governed by the\ + \ parameters -r1/--length_1 and -r2/--length_2." + info: null + direction: "input" + - type: "integer" + name: "--length_1" + alternatives: + - "-r1" + description: "Unpaired single-end read length cutoff needed for read 1 to be written\ + \ to '.unpaired_1.fq' output file. These reads may be mapped in single-end mode." + info: null + example: + - 35 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--length_2" + alternatives: + - "-r2" + description: "Unpaired single-end read length cutoff needed for read 2 to be written\ + \ to '.unpaired_2.fq' output file. These reads may be mapped in single-end mode." + info: null + example: + - 35 + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Output" + arguments: + - type: "file" + name: "--output_dir" + alternatives: + - "-o" + description: "If specified all output will be written to this directory instead\ + \ of the current directory." + info: null + default: + - "trimmed_output" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_r1" + description: "Output file for read 1. Only works when 1 file (single-end) or 2\ + \ files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_1.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_r2" + description: "Output file for read 2. Only works when 1 file (single-end) or 2\ + \ files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_2.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimming_report_r1" + description: "Trimming report for read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_1.trimming_report.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimming_report_r2" + description: "Trimming report for read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_2.trimming_report.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_html_1" + description: "FastQC report for trimmed (single-end) reads (or read 1 for paired-end).\ + \ Only works when 1 file (single-end) or 2 files (paired-end) are specified,\ + \ but not for longer lists." + info: null + example: + - "read_1.fastqc.html" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_html_2" + description: "FastQC report for trimmed reads (read2 for paired-end). Only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + example: + - "read_2.fastqc.html" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_zip_1" + description: "FastQC results for trimmed (single-end) reads (or read 1 for paired-end).\ + \ Only works when 1 file (single-end) or 2 files (paired-end) are specified,\ + \ but not for longer lists." + info: null + example: + - "read_1.fastqc.zip" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_zip_2" + description: "FastQC results for trimmed reads (read2 for paired-end). Only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + example: + - "read_2.fastqc.zip" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--unpaired_r1" + description: "Output file for unpired read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "unpaired_read_1.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--unpaired_r2" + description: "Output file for unpaired read 2. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "unpaired_read_2.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "A wrapper tool around Cutadapt and FastQC to consistently apply quality\ + \ and adapter trimming to FastQ files. \n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "trimming" +- "adapters" +license: "GPL-3.0" +references: + doi: + - "10.5281/zenodo.7598955" +links: + repository: "https://github.com/FelixKrueger/TrimGalore" + homepage: "https://github.com/FelixKrueger/TrimGalore" + documentation: "https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/trim-galore:0.6.10--hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "echo \"TrimGalore: `trim_galore --version | sed -n 's/.*version\\s\\+\\([0-9]\\\ + +\\.[0-9]\\+\\.[0-9]\\+\\).*/\\1/p'`\" > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/trimgalore/config.vsh.yaml" + runner: "executable" + engine: "docker|native" + output: "target/executable/trimgalore" + executable: "target/executable/trimgalore/trimgalore" + viash_version: "0.9.0" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/executable/trimgalore/trimgalore b/target/executable/trimgalore/trimgalore new file mode 100755 index 00000000..4a6b1d18 --- /dev/null +++ b/target/executable/trimgalore/trimgalore @@ -0,0 +1,2664 @@ +#!/usr/bin/env bash + +# trimgalore main +# +# This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +# work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +# Intuitive. +# +# The component may contain files which fall under a different license. The +# authors of this component should specify the license in the header of such +# files, or include a separate license file detailing the licenses of all included +# files. +# +# Component authors: +# * Sai Nirmayi Yasa (author, maintainer) + +set -e + +if [ -z "$VIASH_TEMP" ]; then + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$VIASH_TMP} + VIASH_TEMP=${VIASH_TEMP:-$TMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TMP} + VIASH_TEMP=${VIASH_TEMP:-$TEMPDIR} + VIASH_TEMP=${VIASH_TEMP:-$TEMP} + VIASH_TEMP=${VIASH_TEMP:-/tmp} +fi + +# define helper functions +# ViashQuote: put quotes around non flag values +# $1 : unquoted string +# return : possibly quoted string +# examples: +# ViashQuote --foo # returns --foo +# ViashQuote bar # returns 'bar' +# Viashquote --foo=bar # returns --foo='bar' +function ViashQuote { + if [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+=.+$ ]]; then + echo "$1" | sed "s#=\(.*\)#='\1'#" + elif [[ "$1" =~ ^-+[a-zA-Z0-9_\-]+$ ]]; then + echo "$1" + else + echo "'$1'" + fi +} +# ViashRemoveFlags: Remove leading flag +# $1 : string with a possible leading flag +# return : string without possible leading flag +# examples: +# ViashRemoveFlags --foo=bar # returns bar +function ViashRemoveFlags { + echo "$1" | sed 's/^--*[a-zA-Z0-9_\-]*=//' +} +# ViashSourceDir: return the path of a bash file, following symlinks +# usage : ViashSourceDir ${BASH_SOURCE[0]} +# $1 : Should always be set to ${BASH_SOURCE[0]} +# returns : The absolute path of the bash file +function ViashSourceDir { + local source="$1" + while [ -h "$source" ]; do + local dir="$( cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd )" + source="$(readlink "$source")" + [[ $source != /* ]] && source="$dir/$source" + done + cd -P "$( dirname "$source" )" >/dev/null 2>&1 && pwd +} +# ViashFindTargetDir: return the path of the '.build.yaml' file, following symlinks +# usage : ViashFindTargetDir 'ScriptPath' +# $1 : The location from where to start the upward search +# returns : The absolute path of the '.build.yaml' file +function ViashFindTargetDir { + local source="$1" + while [[ "$source" != "" && ! -e "$source/.build.yaml" ]]; do + source=${source%/*} + done + echo $source +} +# see https://en.wikipedia.org/wiki/Syslog#Severity_level +VIASH_LOGCODE_EMERGENCY=0 +VIASH_LOGCODE_ALERT=1 +VIASH_LOGCODE_CRITICAL=2 +VIASH_LOGCODE_ERROR=3 +VIASH_LOGCODE_WARNING=4 +VIASH_LOGCODE_NOTICE=5 +VIASH_LOGCODE_INFO=6 +VIASH_LOGCODE_DEBUG=7 +VIASH_VERBOSITY=$VIASH_LOGCODE_NOTICE + +# ViashLog: Log events depending on the verbosity level +# usage: ViashLog 1 alert Oh no something went wrong! +# $1: required verbosity level +# $2: display tag +# $3+: messages to display +# stdout: Your input, prepended by '[$2] '. +function ViashLog { + local required_level="$1" + local display_tag="$2" + shift 2 + if [ $VIASH_VERBOSITY -ge $required_level ]; then + >&2 echo "[$display_tag]" "$@" + fi +} + +# ViashEmergency: log events when the system is unstable +# usage: ViashEmergency Oh no something went wrong. +# stdout: Your input, prepended by '[emergency] '. +function ViashEmergency { + ViashLog $VIASH_LOGCODE_EMERGENCY emergency "$@" +} + +# ViashAlert: log events when actions must be taken immediately (e.g. corrupted system database) +# usage: ViashAlert Oh no something went wrong. +# stdout: Your input, prepended by '[alert] '. +function ViashAlert { + ViashLog $VIASH_LOGCODE_ALERT alert "$@" +} + +# ViashCritical: log events when a critical condition occurs +# usage: ViashCritical Oh no something went wrong. +# stdout: Your input, prepended by '[critical] '. +function ViashCritical { + ViashLog $VIASH_LOGCODE_CRITICAL critical "$@" +} + +# ViashError: log events when an error condition occurs +# usage: ViashError Oh no something went wrong. +# stdout: Your input, prepended by '[error] '. +function ViashError { + ViashLog $VIASH_LOGCODE_ERROR error "$@" +} + +# ViashWarning: log potentially abnormal events +# usage: ViashWarning Something may have gone wrong. +# stdout: Your input, prepended by '[warning] '. +function ViashWarning { + ViashLog $VIASH_LOGCODE_WARNING warning "$@" +} + +# ViashNotice: log significant but normal events +# usage: ViashNotice This just happened. +# stdout: Your input, prepended by '[notice] '. +function ViashNotice { + ViashLog $VIASH_LOGCODE_NOTICE notice "$@" +} + +# ViashInfo: log normal events +# usage: ViashInfo This just happened. +# stdout: Your input, prepended by '[info] '. +function ViashInfo { + ViashLog $VIASH_LOGCODE_INFO info "$@" +} + +# ViashDebug: log all events, for debugging purposes +# usage: ViashDebug This just happened. +# stdout: Your input, prepended by '[debug] '. +function ViashDebug { + ViashLog $VIASH_LOGCODE_DEBUG debug "$@" +} + +# find source folder of this component +VIASH_META_RESOURCES_DIR=`ViashSourceDir ${BASH_SOURCE[0]}` + +# find the root of the built components & dependencies +VIASH_TARGET_DIR=`ViashFindTargetDir $VIASH_META_RESOURCES_DIR` + +# define meta fields +VIASH_META_NAME="trimgalore" +VIASH_META_FUNCTIONALITY_NAME="trimgalore" +VIASH_META_EXECUTABLE="$VIASH_META_RESOURCES_DIR/$VIASH_META_NAME" +VIASH_META_CONFIG="$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" +VIASH_META_TEMP_DIR="$VIASH_TEMP" + + +# ViashHelp: Display helpful explanation about this executable +function ViashHelp { + echo "trimgalore main" + echo "" + echo "A wrapper tool around Cutadapt and FastQC to consistently apply quality and" + echo "adapter trimming to FastQ files." + echo "" + echo "Input:" + echo " --input" + echo " type: file, required parameter, multiple values allowed, file must exist" + echo " example: sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq" + echo " Input files. Note that paired-end files need to be supplied in a" + echo " pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz" + echo "" + echo "Trimming options:" + echo " -q, --quality" + echo " type: integer" + echo " example: 20" + echo " Trim low-quality ends (below the specified Phred score) from reads in" + echo " addition to adapter removal. For RRBS samples, quality trimming will be" + echo " performed first, and adapter trimming is carried in a second round." + echo " Other files are quality and adapter trimmed in a single pass. The" + echo " algorithm is the same as the one used by BWA (Subtract INT from all" + echo " qualities; compute partial sums from all indices to the end of the" + echo " sequence; cut sequence at the index at which the sum is minimal)." + echo "" + echo " --phred33" + echo " type: boolean_true" + echo " Instructs Cutadapt to use ASCII+33 quality scores as Phred scores" + echo " (Sanger/Illumina 1.9+ encoding) for quality trimming." + echo "" + echo " --phred64" + echo " type: boolean_true" + echo " Instructs Cutadapt to use ASCII+64 quality scores as Phred scores" + echo " (Illumina 1.5 encoding) for quality trimming." + echo "" + echo " --fastqc" + echo " type: boolean_true" + echo " Run FastQC in the default mode on the FastQ file once trimming is" + echo " complete." + echo "" + echo " --fastqc_args" + echo " type: string" + echo " example: --nogroup --noextract" + echo " Passes extra arguments (excluding files) to FastQC. If more than one" + echo " argument is to be passed to FastQC they must be in the form \"arg1 arg2" + echo " ...\". Passing extra arguments will automatically invoke FastQC, so" + echo " --fastqc does not have to be specified separately." + echo "" + echo " --fastqc_contaminants" + echo " type: file, file must exist" + echo " example: contaminants.txt" + echo " Specifies a non-default file which contains the list of contaminants for" + echo " FastQC to screen overrepresented sequences against. The file must" + echo " contain sets of named contaminants in the form name[tab]sequence. Lines" + echo " prefixed with a hash will be ignored." + echo "" + echo " --fastqc_adapters" + echo " type: file, file must exist" + echo " example: adapters.txt" + echo " Specifies a non-default file which contains the list of adapter" + echo " sequences which which FasstQC will explicity search against the library." + echo " The file must contain sets of named adapters in the form" + echo " name[tab]sequence. Lines prefixed with a hash will be ignored." + echo "" + echo " --fastqc_limits" + echo " type: file, file must exist" + echo " example: limits.txt" + echo " Specifies a non-default file which contains a set of criteria which" + echo " FastQC will use to determine the warn/error limits for the various" + echo " modules. This file can also be used to selectively remove some modules" + echo " from the output all together. The format needs to mirror the default" + echo " limits.txt file found in the Configuration folder." + echo "" + echo " -a, --adapter" + echo " type: string" + echo " example: AGCTCCCG" + echo " Adapter sequence to be trimmed. If not specified explicitly, Trim Galore" + echo " will try to auto-detect whether the Illumina universal, Nextera" + echo " transposase or Illumina small RNA adapter sequence was used. A single" + echo " base may also be given as e.g. -a A{10}, to be expanded to -a" + echo " AAAAAAAAAA." + echo " At a special request, multiple adapters can also be specified like so:" + echo " -a \" AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT\" -a2 \" AGCTAGCG -a" + echo " TCTCTTATAT -a TTTCGGATTTAT\"," + echo " or so:" + echo " -a \"file:../multiple_adapters.fa\" -a2 \"file:../different_adapters.fa\"" + echo " Potentially in conjucntion with the parameter \"-n 3\" to trim all" + echo " adapters." + echo "" + echo " -a2, --adapter2" + echo " type: string" + echo " example: AGCTCCCG" + echo " Optional adapter sequence to be trimmed off read 2 of paired-end files." + echo " This option requires '--paired' to be specified as well. If the" + echo " libraries to be trimmed are smallRNA then a2 will be set to the Illumina" + echo " small RNA 5' adapter automatically (GATCGTCGGACT). A single base may" + echo " also be given as e.g. -a2 A{10}, to be expanded to -a2 AAAAAAAAAA." + echo "" + echo " --illumina" + echo " type: boolean_true" + echo " Adapter sequence to be trimmed is the first 13bp of the Illumina" + echo " universal adapter 'AGATCGGAAGAGC' instead of the default auto-detection" + echo " of adapter sequence." + echo "" + echo " --stranded_illumina" + echo " type: boolean_true" + echo " Adapter sequence to be trimmed is the first 13bp of the Illumina" + echo " stranded mRNA or Total RNA adapter 'ACTGTCTCTTATA' instead of the" + echo " default auto-detection of adapter sequence." + echo "" + echo " --nextera" + echo " type: boolean_true" + echo " Adapter sequence to be trimmed is the first 12bp of the Nextera adapter" + echo " 'CTGTCTCTTATA' instead of the default auto-detection of adapter" + echo " sequence." + echo "" + echo " --small_rna" + echo " type: boolean_true" + echo " Adapter sequence to be trimmed is the first 12bp of the Illumina Small" + echo " RNA 3' Adapter 'TGGAATTCTCGG' instead of the default auto-detection of" + echo " adapter sequence. Selecting to trim smallRNA adapters will also lower" + echo " the --length value to 18bp. If the smallRNA libraries are paired-end" + echo " then a automatically (GATCGTCGGACT) unless -a 2 had been defined" + echo " explicitly." + echo "" + echo " --consider_already_trimmed" + echo " type: integer" + echo " During adapter auto-detection, the limit set by this argument allows the" + echo " user to set a threshold up to which the file is considered already" + echo " adapter-trimmed. If no adapter sequence exceeds this threshold, no" + echo " additional adapter trimming will be performed (technically, the adapter" + echo " is set to '-a X'). Quality trimming is still performed as usual." + echo "" + echo " --max_length" + echo " type: integer" + echo " Discard reads that are longer than the specified value after trimming." + echo " This is only advised for smallRNA sequencing to remove non-small RNA" + echo " sequences." + echo "" + echo " --stringency" + echo " type: integer" + echo " example: 1" + echo " Overlap with adapter sequence required to trim a sequence. Defaults to a" + echo " very stringent setting of 1, i.e. even a single bp of overlapping" + echo " sequence will be trimmed off from the 3' end of any read." + echo "" + echo " -e, --error_rate" + echo " type: double" + echo " example: 0.1" + echo " Maximum allowed error rate (no. of errors divided by the length of the" + echo " matching region)" + echo "" + echo " --gzip" + echo " type: boolean_true" + echo " Compress the output file with GZIP. If the input files are" + echo " GZIP-compressed the output files will automatically be GZIP compressed" + echo " as well. As of v0.2.8 the compression will take place on the fly." + echo "" + echo " --dont_gzip" + echo " type: boolean_true" + echo " Output files won't be compressed with GZIP. This option overrides" + echo " --gzip." + echo "" + echo " --length" + echo " type: integer" + echo " example: 20" + echo " Discard reads that became shorter than the specified length because of" + echo " either quality or adapter trimming. A value of '0' effectively disables" + echo " this behaviour. For paired-end files, both reads of a read-pair need to" + echo " be longer than the specified length to be printed out to validated" + echo " paired-end files. If only one read became too short there is the" + echo " possibility of keeping such unpaired single-end reads using the" + echo " --retain_unpaired option." + echo "" + echo " --max_n" + echo " type: integer" + echo " The total number of Ns a read may contain before it will be removed" + echo " altogether.In a paired-end setting, either read exceeding this limit" + echo " will result in the entire pair being removed from the trimmed output" + echo " files. If COUNT is a number between 0 and 1, it is interpreted as a" + echo " fraction of the read length." + echo "" + echo " --trim_n" + echo " type: boolean_true" + echo " Removes Ns from either side of the read. This option does currently not" + echo " work in RRBS mode." + echo "" + echo " --no_report_file" + echo " type: boolean_true" + echo " If specified no report file will be generated." + echo "" + echo " --suppress_warn" + echo " type: boolean_true" + echo " If specified any output to STDOUT or STDERR will be suppressed." + echo "" + echo " --clip_R1" + echo " type: integer" + echo " Instructs TrimGalore to remove given number of bp from the 5' end of" + echo " read 1 (or single-end reads). This may be useful if the qualities were" + echo " very poor, or if there is some sort of unwanted bias at the 5' end." + echo "" + echo " --clip_R2" + echo " type: integer" + echo " Instructs TrimGalore to remove given number bp from the 5' end of read 2" + echo " (paired-end reads only). This may be useful if the qualities were very" + echo " poor, or if there is some sort of unwanted bias at the 5' end. For" + echo " paired-end BS-Seq, it is recommended to remove the first few bp because" + echo " the end-repair reaction may introduce a bias towards low methylation." + echo "" + echo " --three_prime_clip_R1" + echo " type: integer" + echo " Instructs Trim Galore to remove spacified number of bp from the 3' end" + echo " of read 1 (or single-end reads) AFTER adapter/quality trimming has been" + echo " performed. This may remove some bias from the 3' end that is not" + echo " directly related to adapter sequence or basecall quality." + echo "" + echo " --three_prime_clip_R2" + echo " type: integer" + echo " Instructs Trim Galore to remove bp from the 3' end of read 2 AFTER" + echo " adapter/quality trimming has been performed. This may remove some" + echo " unwanted bias from the 3' end that is not directly related to adapter" + echo " sequence or basecall quality." + echo "" + echo " --nextseq" + echo " type: integer" + echo " This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt, which" + echo " will set a quality cutoff (that is normally given with -q instead), but" + echo " qualities of G bases are ignored. This trimming is in common for the" + echo " NextSeq- and NovaSeq-platforms, where basecalls without any signal are" + echo " called as high-quality G bases. This is mutually exlusive with '-q INT'." + echo "" + echo " --basename" + echo " type: string" + echo " Use specified name (PREFERRED_NAME) as the basename for output files," + echo " instead of deriving the filenames from the input files. Single-end data" + echo " would be called PREFERRED_NAME_trimmed.fq(.gz), or" + echo " PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for" + echo " paired-end data. --basename only works when 1 file (single-end) or 2" + echo " files (paired-end) are specified, but not for longer lists." + echo "" + echo "Specific trimming options without adapter/quality trimming:" + echo " --hardtrim5" + echo " type: integer" + echo " Instead of performing adapter-/quality trimming, this option will simply" + echo " hard-trim sequences to bp at the 5'-end. Once hard-trimming of" + echo " files is complete, Trim Galore will exit. Hard-trimmed output files will" + echo " end in ._5prime.fq(.gz)." + echo "" + echo " --hardtrim3" + echo " type: integer" + echo " Instead of performing adapter-/quality trimming, this option will simply" + echo " hard-trim sequences to bp at the 3'-end. Once hard-trimming of" + echo " files is complete, Trim Galore will exit. Hard-trimmed output files will" + echo " end in ._3prime.fq(.gz)." + echo "" + echo " --clock" + echo " type: boolean_true" + echo " In this mode, reads are trimmed in a specific way that is currently used" + echo " for the Mouse Epigenetic Clock." + echo "" + echo " --polyA" + echo " type: boolean_true" + echo " This is a new, still experimental, trimming mode to identify and remove" + echo " poly-A tails from sequences. When --polyA is selected, Trim Galore" + echo " attempts to identify from the first supplied sample whether sequences" + echo " contain more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'." + echo " This determines if Read 1 of a paired-end end file, or single-end files," + echo " are trimmed for PolyA or PolyT. In case of paired-end sequencing, Read2" + echo " is trimmed for the complementary base from the start of the reads. The" + echo " auto-detection uses a default of A{20} for Read1 (3'-end trimming) and" + echo " T{150} for Read2 (5'-end trimming). These values may be changed manually" + echo " using the options -a and -a2. In addition to trimming the sequences," + echo " white spaces are replaced with _ and it records in the read ID how many" + echo " bases were trimmed so it can later be used to identify PolyA trimmed" + echo " sequences. This is currently done by writing tags to both the start" + echo " (\"32:A:\") and end (\"_PolyA:32\") of the reads. The poly-A trimming mode" + echo " expects that sequences were both adapter and quality before looking for" + echo " Poly-A tails, and it is the user's responsibility to carry out an" + echo " initial round of trimming." + echo "" + echo " --implicon" + echo " type: boolean_true" + echo " This is a special mode of operation for paired-end data, such as" + echo " required for the IMPLICON method, where a UMI sequence is getting" + echo " transferred from the start of Read 2 to the readID of both reads." + echo " Following this, Trim Galore will exit. In it's current implementation," + echo " the UMI carrying reads come in the following format" + echo " Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3'" + echo " Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5'" + echo " Where UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and" + echo " FFFFFFF... is the actual fragment to be sequenced. The UMI of Read 2" + echo " (R2) is written into the read ID of both reads and removed from the" + echo " actual sequence." + echo "" + echo "RRBS-specific options:" + echo " --rrbs" + echo " type: boolean_true" + echo " Specifies that the input file was an MspI digested RRBS sample" + echo " (recognition site is CCGG). Single-end or Read 1 sequences (paired-end)" + echo " which were adapter-trimmed will have a further 2 bp removed from their" + echo " 3' end. Sequences which were merely trimmed because of poor quality will" + echo " not be shortened further. Read 2 of paired-end libraries will in" + echo " addition have the first 2 bp removed from the 5' end (by setting" + echo " '--clip_r2 2'). This is to avoid using artificial methylation calls from" + echo " the filled-in cytosine positions close to the 3' MspI site in sequenced" + echo " fragments. This option is not recommended for users of the Tecan Ovation" + echo " RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below)." + echo "" + echo " --non_directional" + echo " type: boolean_true" + echo " Selecting this option for non-directional RRBS libraries will screen" + echo " quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read" + echo " and, if found, removes the first two basepairs. Like with the option" + echo " '--rrbs' this avoids using cytosine positions that were filled-in during" + echo " the end-repair step. '--non_directional' requires '--rrbs' to be" + echo " specified as well. Note that this option does not set '--clip_r2 2' in" + echo " paired-end mode." + echo "" + echo " --keep" + echo " type: boolean_true" + echo " Keep the quality trimmed intermediate file." + echo "" + echo "Paired-end specific options:" + echo " --paired" + echo " type: boolean_true" + echo " This option performs length trimming of quality/adapter/RRBS trimmed" + echo " reads for paired-end files. To pass the validation test, both sequences" + echo " of a sequence pair are required to have a certain minimum length which" + echo " is governed by the option --length (see above). If only one read passes" + echo " this length threshold the other read can be rescued (see option" + echo " --retain_unpaired). Using this option lets you discard too short read" + echo " pairs without disturbing the sequence-by-sequence order of FastQ files" + echo " which is required by many aligners. Trim Galore expects paired-end files" + echo " to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq" + echo " SRR2_1.fq.gz SRR2_2.fq.gz ... ." + echo "" + echo " --retain_unpaired" + echo " type: boolean_true" + echo " If only one of the two paired-end reads became too short, the longer" + echo " read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq'" + echo " output files. The length cutoff for unpaired single-end reads is" + echo " governed by the parameters -r1/--length_1 and -r2/--length_2." + echo "" + echo " -r1, --length_1" + echo " type: integer" + echo " example: 35" + echo " Unpaired single-end read length cutoff needed for read 1 to be written" + echo " to '.unpaired_1.fq' output file. These reads may be mapped in single-end" + echo " mode." + echo "" + echo " -r2, --length_2" + echo " type: integer" + echo " example: 35" + echo " Unpaired single-end read length cutoff needed for read 2 to be written" + echo " to '.unpaired_2.fq' output file. These reads may be mapped in single-end" + echo " mode." + echo "" + echo "Output:" + echo " -o, --output_dir" + echo " type: file, required parameter, output, file must exist" + echo " default: trimmed_output" + echo " If specified all output will be written to this directory instead of the" + echo " current directory." + echo "" + echo " --trimmed_r1" + echo " type: file, output, file must exist" + echo " example: read_1.fastq" + echo " Output file for read 1. Only works when 1 file (single-end) or 2 files" + echo " (paired-end) are specified, but not for longer lists." + echo "" + echo " --trimmed_r2" + echo " type: file, output, file must exist" + echo " example: read_2.fastq" + echo " Output file for read 2. Only works when 1 file (single-end) or 2 files" + echo " (paired-end) are specified, but not for longer lists." + echo "" + echo " --trimming_report_r1" + echo " type: file, output, file must exist" + echo " example: read_1.trimming_report.txt" + echo " Trimming report for read 1. Only works when 1 file (single-end) or 2" + echo " files (paired-end) are specified, but not for longer lists." + echo "" + echo " --trimming_report_r2" + echo " type: file, output, file must exist" + echo " example: read_2.trimming_report.txt" + echo " Trimming report for read 1. Only works when 1 file (single-end) or 2" + echo " files (paired-end) are specified, but not for longer lists." + echo "" + echo " --trimmed_fastqc_html_1" + echo " type: file, output, file must exist" + echo " example: read_1.fastqc.html" + echo " FastQC report for trimmed (single-end) reads (or read 1 for paired-end)." + echo " Only works when 1 file (single-end) or 2 files (paired-end) are" + echo " specified, but not for longer lists." + echo "" + echo " --trimmed_fastqc_html_2" + echo " type: file, output, file must exist" + echo " example: read_2.fastqc.html" + echo " FastQC report for trimmed reads (read2 for paired-end). Only works when" + echo " 1 file (single-end) or 2 files (paired-end) are specified, but not for" + echo " longer lists." + echo "" + echo " --trimmed_fastqc_zip_1" + echo " type: file, output, file must exist" + echo " example: read_1.fastqc.zip" + echo " FastQC results for trimmed (single-end) reads (or read 1 for" + echo " paired-end). Only works when 1 file (single-end) or 2 files (paired-end)" + echo " are specified, but not for longer lists." + echo "" + echo " --trimmed_fastqc_zip_2" + echo " type: file, output, file must exist" + echo " example: read_2.fastqc.zip" + echo " FastQC results for trimmed reads (read2 for paired-end). Only works when" + echo " 1 file (single-end) or 2 files (paired-end) are specified, but not for" + echo " longer lists." + echo "" + echo " --unpaired_r1" + echo " type: file, output, file must exist" + echo " example: unpaired_read_1.fastq" + echo " Output file for unpired read 1. Only works when 1 file (single-end) or 2" + echo " files (paired-end) are specified, but not for longer lists." + echo "" + echo " --unpaired_r2" + echo " type: file, output, file must exist" + echo " example: unpaired_read_2.fastq" + echo " Output file for unpaired read 2. Only works when 1 file (single-end) or" + echo " 2 files (paired-end) are specified, but not for longer lists." +} + +# initialise variables +VIASH_MODE='run' +VIASH_ENGINE_ID='docker' + +######## Helper functions for setting up Docker images for viash ######## +# expects: ViashDockerBuild + +# ViashDockerInstallationCheck: check whether Docker is installed correctly +# +# examples: +# ViashDockerInstallationCheck +function ViashDockerInstallationCheck { + ViashDebug "Checking whether Docker is installed" + if [ ! command -v docker &> /dev/null ]; then + ViashCritical "Docker doesn't seem to be installed. See 'https://docs.docker.com/get-docker/' for instructions." + exit 1 + fi + + ViashDebug "Checking whether the Docker daemon is running" + local save=$-; set +e + local docker_version=$(docker version --format '{{.Client.APIVersion}}' 2> /dev/null) + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashCritical "Docker daemon does not seem to be running. Try one of the following:" + ViashCritical "- Try running 'dockerd' in the command line" + ViashCritical "- See https://docs.docker.com/config/daemon/" + exit 1 + fi +} + +# ViashDockerRemoteTagCheck: check whether a Docker image is available +# on a remote. Assumes `docker login` has been performed, if relevant. +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerRemoteTagCheck python:latest +# echo $? # returns '0' +# ViashDockerRemoteTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerRemoteTagCheck { + docker manifest inspect $1 > /dev/null 2> /dev/null +} + +# ViashDockerLocalTagCheck: check whether a Docker image is available locally +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# docker pull python:latest +# ViashDockerLocalTagCheck python:latest +# echo $? # returns '0' +# ViashDockerLocalTagCheck sdaizudceahifu +# echo $? # returns '1' +function ViashDockerLocalTagCheck { + [ -n "$(docker images -q $1)" ] +} + +# ViashDockerPull: pull a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPull python:latest +# echo $? # returns '0' +# ViashDockerPull sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPull { + ViashNotice "Checking if Docker image is available at '$1'" + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker pull $1 && return 0 || return 1 + else + local save=$-; set +e + docker pull $1 2> /dev/null > /dev/null + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashWarning "Could not pull from '$1'. Docker image doesn't exist or is not accessible." + fi + return $out + fi +} + +# ViashDockerPush: push a Docker image +# +# $1 : image identifier with format `[registry/]image[:tag]` +# exit code $? : whether or not the image was found +# examples: +# ViashDockerPush python:latest +# echo $? # returns '0' +# ViashDockerPush sdaizudceahifu +# echo $? # returns '1' +function ViashDockerPush { + ViashNotice "Pushing image to '$1'" + local save=$-; set +e + local out + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + docker push $1 + out=$? + else + docker push $1 2> /dev/null > /dev/null + out=$? + fi + [[ $save =~ e ]] && set -e + if [ $out -eq 0 ]; then + ViashNotice "Container '$1' push succeeded." + else + ViashError "Container '$1' push errored. You might not be logged in or have the necessary permissions." + fi + return $out +} + +# ViashDockerPullElseBuild: pull a Docker image, else build it +# +# $1 : image identifier with format `[registry/]image[:tag]` +# ViashDockerBuild : a Bash function which builds a docker image, takes image identifier as argument. +# examples: +# ViashDockerPullElseBuild mynewcomponent +function ViashDockerPullElseBuild { + local save=$-; set +e + ViashDockerPull $1 + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashDockerBuild $@ + fi +} + +# ViashDockerSetup: create a Docker image, according to specified docker setup strategy +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $2 : docker setup strategy, see DockerSetupStrategy.scala +# examples: +# ViashDockerSetup mynewcomponent alwaysbuild +function ViashDockerSetup { + local image_id="$1" + local setup_strategy="$2" + if [ "$setup_strategy" == "alwaysbuild" -o "$setup_strategy" == "build" -o "$setup_strategy" == "b" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspull" -o "$setup_strategy" == "pull" -o "$setup_strategy" == "p" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "alwayspullelsebuild" -o "$setup_strategy" == "pullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayspullelsecachedbuild" -o "$setup_strategy" == "pullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "alwayscachedbuild" -o "$setup_strategy" == "cachedbuild" -o "$setup_strategy" == "cb" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [[ "$setup_strategy" =~ ^ifneedbe ]]; then + local save=$-; set +e + ViashDockerLocalTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashInfo "Image $image_id already exists" + elif [ "$setup_strategy" == "ifneedbebuild" ]; then + ViashDockerBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbecachedbuild" ]; then + ViashDockerBuild $image_id $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepull" ]; then + ViashDockerPull $image_id + elif [ "$setup_strategy" == "ifneedbepullelsebuild" ]; then + ViashDockerPullElseBuild $image_id --no-cache $(ViashDockerBuildArgs "$engine_id") + elif [ "$setup_strategy" == "ifneedbepullelsecachedbuild" ]; then + ViashDockerPullElseBuild $image_id $(ViashDockerBuildArgs "$engine_id") + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi + elif [ "$setup_strategy" == "push" -o "$setup_strategy" == "forcepush" -o "$setup_strategy" == "alwayspush" ]; then + ViashDockerPush "$image_id" + elif [ "$setup_strategy" == "pushifnotpresent" -o "$setup_strategy" == "gentlepush" -o "$setup_strategy" == "maybepush" ]; then + local save=$-; set +e + ViashDockerRemoteTagCheck $image_id + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -eq 0 ]; then + ViashNotice "Container '$image_id' exists, doing nothing." + else + ViashNotice "Container '$image_id' does not yet exist." + ViashDockerPush "$image_id" + fi + elif [ "$setup_strategy" == "donothing" -o "$setup_strategy" == "meh" ]; then + ViashNotice "Skipping setup." + else + ViashError "Unrecognised Docker strategy: $setup_strategy" + exit 1 + fi +} + +# ViashDockerCheckCommands: Check whether a docker container has the required commands +# +# $1 : image identifier with format `[registry/]image[:tag]` +# $@ : commands to verify being present +# examples: +# ViashDockerCheckCommands bash:4.0 bash ps foo +function ViashDockerCheckCommands { + local image_id="$1" + shift 1 + local commands="$@" + local save=$-; set +e + local missing # mark 'missing' as local in advance, otherwise the exit code of the command will be missing and always be '0' + missing=$(docker run --rm --entrypoint=sh "$image_id" -c "for command in $commands; do command -v \$command >/dev/null 2>&1; if [ \$? -ne 0 ]; then echo \$command; exit 1; fi; done") + local outCheck=$? + [[ $save =~ e ]] && set -e + if [ $outCheck -ne 0 ]; then + ViashError "Docker container '$image_id' does not contain command '$missing'." + exit 1 + fi +} + +# ViashDockerBuild: build a docker image +# $1 : image identifier with format `[registry/]image[:tag]` +# $... : additional arguments to pass to docker build +# $VIASH_META_TEMP_DIR : temporary directory to store dockerfile & optional resources in +# $VIASH_META_NAME : name of the component +# $VIASH_META_RESOURCES_DIR : directory containing the resources +# $VIASH_VERBOSITY : verbosity level +# exit code $? : whether or not the image was built successfully +function ViashDockerBuild { + local image_id="$1" + shift 1 + + # create temporary directory to store dockerfile & optional resources in + local tmpdir=$(mktemp -d "$VIASH_META_TEMP_DIR/dockerbuild-$VIASH_META_NAME-XXXXXX") + local dockerfile="$tmpdir/Dockerfile" + function clean_up { + rm -rf "$tmpdir" + } + trap clean_up EXIT + + # store dockerfile and resources + ViashDockerfile "$VIASH_ENGINE_ID" > "$dockerfile" + + # generate the build command + local docker_build_cmd="docker build -t '$image_id' $@ '$VIASH_META_RESOURCES_DIR' -f '$dockerfile'" + + # build the container + ViashNotice "Building container '$image_id' with Dockerfile" + ViashInfo "$docker_build_cmd" + local save=$-; set +e + if [ $VIASH_VERBOSITY -ge $VIASH_LOGCODE_INFO ]; then + eval $docker_build_cmd + else + eval $docker_build_cmd &> "$tmpdir/docker_build.log" + fi + + # check exit code + local out=$? + [[ $save =~ e ]] && set -e + if [ $out -ne 0 ]; then + ViashError "Error occurred while building container '$image_id'" + if [ $VIASH_VERBOSITY -lt $VIASH_LOGCODE_INFO ]; then + ViashError "Transcript: --------------------------------" + cat "$tmpdir/docker_build.log" + ViashError "End of transcript --------------------------" + fi + exit 1 + fi +} + +######## End of helper functions for setting up Docker images for viash ######## + +# ViashDockerFile: print the dockerfile to stdout +# $1 : engine identifier +# return : dockerfile required to run this component +# examples: +# ViashDockerFile +function ViashDockerfile { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + cat << 'VIASHDOCKER' +FROM quay.io/biocontainers/trim-galore:0.6.10--hdfd78af_0 +ENTRYPOINT [] +RUN echo "TrimGalore: `trim_galore --version | sed -n 's/.*version\s\+\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p'`" > /var/software_versions.txt + +LABEL org.opencontainers.image.authors="Sai Nirmayi Yasa" +LABEL org.opencontainers.image.description="Companion container for running component trimgalore" +LABEL org.opencontainers.image.created="2024-09-27T09:55:20Z" +LABEL org.opencontainers.image.source="https://github.com/FelixKrueger/TrimGalore" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" +LABEL org.opencontainers.image.version="main" + +VIASHDOCKER + fi +} + +# ViashDockerBuildArgs: return the arguments to pass to docker build +# $1 : engine identifier +# return : arguments to pass to docker build +function ViashDockerBuildArgs { + local engine_id="$1" + + if [[ "$engine_id" == "docker" ]]; then + echo "" + fi +} + +# ViashAbsolutePath: generate absolute path from relative path +# borrowed from https://stackoverflow.com/a/21951256 +# $1 : relative filename +# return : absolute path +# examples: +# ViashAbsolutePath some_file.txt # returns /path/to/some_file.txt +# ViashAbsolutePath /foo/bar/.. # returns /foo +function ViashAbsolutePath { + local thePath + local parr + local outp + local len + if [[ ! "$1" =~ ^/ ]]; then + thePath="$PWD/$1" + else + thePath="$1" + fi + echo "$thePath" | ( + IFS=/ + read -a parr + declare -a outp + for i in "${parr[@]}"; do + case "$i" in + ''|.) continue ;; + ..) + len=${#outp[@]} + if ((len==0)); then + continue + else + unset outp[$((len-1))] + fi + ;; + *) + len=${#outp[@]} + outp[$len]="$i" + ;; + esac + done + echo /"${outp[*]}" + ) +} +# ViashDockerAutodetectMount: auto configuring docker mounts from parameters +# $1 : The parameter value +# returns : New parameter +# $VIASH_DIRECTORY_MOUNTS : Added another parameter to be passed to docker +# $VIASH_DOCKER_AUTOMOUNT_PREFIX : The prefix to be used for the automounts +# examples: +# ViashDockerAutodetectMount /path/to/bar # returns '/viash_automount/path/to/bar' +# ViashDockerAutodetectMountArg /path/to/bar # returns '--volume="/path/to:/viash_automount/path/to"' +function ViashDockerAutodetectMount { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + if [ -z "$base_name" ]; then + echo "$mount_target" + else + echo "$mount_target/$base_name" + fi +} +function ViashDockerAutodetectMountArg { + local abs_path=$(ViashAbsolutePath "$1") + local mount_source + local base_name + if [ -d "$abs_path" ]; then + mount_source="$abs_path" + base_name="" + else + mount_source=`dirname "$abs_path"` + base_name=`basename "$abs_path"` + fi + local mount_target="$VIASH_DOCKER_AUTOMOUNT_PREFIX$mount_source" + ViashDebug "ViashDockerAutodetectMountArg $1 -> $mount_source -> $mount_target" + echo "--volume=\"$mount_source:$mount_target\"" +} +function ViashDockerStripAutomount { + local abs_path=$(ViashAbsolutePath "$1") + echo "${abs_path#$VIASH_DOCKER_AUTOMOUNT_PREFIX}" +} +# initialise variables +VIASH_DIRECTORY_MOUNTS=() + +# configure default docker automount prefix if it is unset +if [ -z "${VIASH_DOCKER_AUTOMOUNT_PREFIX+x}" ]; then + VIASH_DOCKER_AUTOMOUNT_PREFIX="/viash_automount" +fi + +# initialise docker variables +VIASH_DOCKER_RUN_ARGS=(-i --rm) + +# initialise array +VIASH_POSITIONAL_ARGS='' + +while [[ $# -gt 0 ]]; do + case "$1" in + -h|--help) + ViashHelp + exit + ;; + ---v|---verbose) + let "VIASH_VERBOSITY=VIASH_VERBOSITY+1" + shift 1 + ;; + ---verbosity) + VIASH_VERBOSITY="$2" + shift 2 + ;; + ---verbosity=*) + VIASH_VERBOSITY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + --version) + echo "trimgalore main" + exit + ;; + --input) + if [ -z "$VIASH_PAR_INPUT" ]; then + VIASH_PAR_INPUT="$2" + else + VIASH_PAR_INPUT="$VIASH_PAR_INPUT;""$2" + fi + [ $# -lt 2 ] && ViashError Not enough arguments passed to --input. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --input=*) + if [ -z "$VIASH_PAR_INPUT" ]; then + VIASH_PAR_INPUT=$(ViashRemoveFlags "$1") + else + VIASH_PAR_INPUT="$VIASH_PAR_INPUT;"$(ViashRemoveFlags "$1") + fi + shift 1 + ;; + --quality) + [ -n "$VIASH_PAR_QUALITY" ] && ViashError Bad arguments for option \'--quality\': \'$VIASH_PAR_QUALITY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_QUALITY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --quality. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --quality=*) + [ -n "$VIASH_PAR_QUALITY" ] && ViashError Bad arguments for option \'--quality=*\': \'$VIASH_PAR_QUALITY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_QUALITY=$(ViashRemoveFlags "$1") + shift 1 + ;; + -q) + [ -n "$VIASH_PAR_QUALITY" ] && ViashError Bad arguments for option \'-q\': \'$VIASH_PAR_QUALITY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_QUALITY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -q. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --phred33) + [ -n "$VIASH_PAR_PHRED33" ] && ViashError Bad arguments for option \'--phred33\': \'$VIASH_PAR_PHRED33\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PHRED33=true + shift 1 + ;; + --phred64) + [ -n "$VIASH_PAR_PHRED64" ] && ViashError Bad arguments for option \'--phred64\': \'$VIASH_PAR_PHRED64\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PHRED64=true + shift 1 + ;; + --fastqc) + [ -n "$VIASH_PAR_FASTQC" ] && ViashError Bad arguments for option \'--fastqc\': \'$VIASH_PAR_FASTQC\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC=true + shift 1 + ;; + --fastqc_args) + [ -n "$VIASH_PAR_FASTQC_ARGS" ] && ViashError Bad arguments for option \'--fastqc_args\': \'$VIASH_PAR_FASTQC_ARGS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_ARGS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --fastqc_args. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --fastqc_args=*) + [ -n "$VIASH_PAR_FASTQC_ARGS" ] && ViashError Bad arguments for option \'--fastqc_args=*\': \'$VIASH_PAR_FASTQC_ARGS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_ARGS=$(ViashRemoveFlags "$1") + shift 1 + ;; + --fastqc_contaminants) + [ -n "$VIASH_PAR_FASTQC_CONTAMINANTS" ] && ViashError Bad arguments for option \'--fastqc_contaminants\': \'$VIASH_PAR_FASTQC_CONTAMINANTS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_CONTAMINANTS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --fastqc_contaminants. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --fastqc_contaminants=*) + [ -n "$VIASH_PAR_FASTQC_CONTAMINANTS" ] && ViashError Bad arguments for option \'--fastqc_contaminants=*\': \'$VIASH_PAR_FASTQC_CONTAMINANTS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_CONTAMINANTS=$(ViashRemoveFlags "$1") + shift 1 + ;; + --fastqc_adapters) + [ -n "$VIASH_PAR_FASTQC_ADAPTERS" ] && ViashError Bad arguments for option \'--fastqc_adapters\': \'$VIASH_PAR_FASTQC_ADAPTERS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_ADAPTERS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --fastqc_adapters. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --fastqc_adapters=*) + [ -n "$VIASH_PAR_FASTQC_ADAPTERS" ] && ViashError Bad arguments for option \'--fastqc_adapters=*\': \'$VIASH_PAR_FASTQC_ADAPTERS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_ADAPTERS=$(ViashRemoveFlags "$1") + shift 1 + ;; + --fastqc_limits) + [ -n "$VIASH_PAR_FASTQC_LIMITS" ] && ViashError Bad arguments for option \'--fastqc_limits\': \'$VIASH_PAR_FASTQC_LIMITS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_LIMITS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --fastqc_limits. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --fastqc_limits=*) + [ -n "$VIASH_PAR_FASTQC_LIMITS" ] && ViashError Bad arguments for option \'--fastqc_limits=*\': \'$VIASH_PAR_FASTQC_LIMITS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_FASTQC_LIMITS=$(ViashRemoveFlags "$1") + shift 1 + ;; + --adapter) + [ -n "$VIASH_PAR_ADAPTER" ] && ViashError Bad arguments for option \'--adapter\': \'$VIASH_PAR_ADAPTER\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --adapter. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --adapter=*) + [ -n "$VIASH_PAR_ADAPTER" ] && ViashError Bad arguments for option \'--adapter=*\': \'$VIASH_PAR_ADAPTER\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER=$(ViashRemoveFlags "$1") + shift 1 + ;; + -a) + [ -n "$VIASH_PAR_ADAPTER" ] && ViashError Bad arguments for option \'-a\': \'$VIASH_PAR_ADAPTER\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -a. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --adapter2) + [ -n "$VIASH_PAR_ADAPTER2" ] && ViashError Bad arguments for option \'--adapter2\': \'$VIASH_PAR_ADAPTER2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --adapter2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --adapter2=*) + [ -n "$VIASH_PAR_ADAPTER2" ] && ViashError Bad arguments for option \'--adapter2=*\': \'$VIASH_PAR_ADAPTER2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER2=$(ViashRemoveFlags "$1") + shift 1 + ;; + -a2) + [ -n "$VIASH_PAR_ADAPTER2" ] && ViashError Bad arguments for option \'-a2\': \'$VIASH_PAR_ADAPTER2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ADAPTER2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -a2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --illumina) + [ -n "$VIASH_PAR_ILLUMINA" ] && ViashError Bad arguments for option \'--illumina\': \'$VIASH_PAR_ILLUMINA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ILLUMINA=true + shift 1 + ;; + --stranded_illumina) + [ -n "$VIASH_PAR_STRANDED_ILLUMINA" ] && ViashError Bad arguments for option \'--stranded_illumina\': \'$VIASH_PAR_STRANDED_ILLUMINA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STRANDED_ILLUMINA=true + shift 1 + ;; + --nextera) + [ -n "$VIASH_PAR_NEXTERA" ] && ViashError Bad arguments for option \'--nextera\': \'$VIASH_PAR_NEXTERA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NEXTERA=true + shift 1 + ;; + --small_rna) + [ -n "$VIASH_PAR_SMALL_RNA" ] && ViashError Bad arguments for option \'--small_rna\': \'$VIASH_PAR_SMALL_RNA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_SMALL_RNA=true + shift 1 + ;; + --consider_already_trimmed) + [ -n "$VIASH_PAR_CONSIDER_ALREADY_TRIMMED" ] && ViashError Bad arguments for option \'--consider_already_trimmed\': \'$VIASH_PAR_CONSIDER_ALREADY_TRIMMED\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONSIDER_ALREADY_TRIMMED="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --consider_already_trimmed. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --consider_already_trimmed=*) + [ -n "$VIASH_PAR_CONSIDER_ALREADY_TRIMMED" ] && ViashError Bad arguments for option \'--consider_already_trimmed=*\': \'$VIASH_PAR_CONSIDER_ALREADY_TRIMMED\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CONSIDER_ALREADY_TRIMMED=$(ViashRemoveFlags "$1") + shift 1 + ;; + --max_length) + [ -n "$VIASH_PAR_MAX_LENGTH" ] && ViashError Bad arguments for option \'--max_length\': \'$VIASH_PAR_MAX_LENGTH\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MAX_LENGTH="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --max_length. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --max_length=*) + [ -n "$VIASH_PAR_MAX_LENGTH" ] && ViashError Bad arguments for option \'--max_length=*\': \'$VIASH_PAR_MAX_LENGTH\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MAX_LENGTH=$(ViashRemoveFlags "$1") + shift 1 + ;; + --stringency) + [ -n "$VIASH_PAR_STRINGENCY" ] && ViashError Bad arguments for option \'--stringency\': \'$VIASH_PAR_STRINGENCY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STRINGENCY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --stringency. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --stringency=*) + [ -n "$VIASH_PAR_STRINGENCY" ] && ViashError Bad arguments for option \'--stringency=*\': \'$VIASH_PAR_STRINGENCY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STRINGENCY=$(ViashRemoveFlags "$1") + shift 1 + ;; + --error_rate) + [ -n "$VIASH_PAR_ERROR_RATE" ] && ViashError Bad arguments for option \'--error_rate\': \'$VIASH_PAR_ERROR_RATE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ERROR_RATE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --error_rate. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --error_rate=*) + [ -n "$VIASH_PAR_ERROR_RATE" ] && ViashError Bad arguments for option \'--error_rate=*\': \'$VIASH_PAR_ERROR_RATE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ERROR_RATE=$(ViashRemoveFlags "$1") + shift 1 + ;; + -e) + [ -n "$VIASH_PAR_ERROR_RATE" ] && ViashError Bad arguments for option \'-e\': \'$VIASH_PAR_ERROR_RATE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_ERROR_RATE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -e. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --gzip) + [ -n "$VIASH_PAR_GZIP" ] && ViashError Bad arguments for option \'--gzip\': \'$VIASH_PAR_GZIP\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_GZIP=true + shift 1 + ;; + --dont_gzip) + [ -n "$VIASH_PAR_DONT_GZIP" ] && ViashError Bad arguments for option \'--dont_gzip\': \'$VIASH_PAR_DONT_GZIP\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_DONT_GZIP=true + shift 1 + ;; + --length) + [ -n "$VIASH_PAR_LENGTH" ] && ViashError Bad arguments for option \'--length\': \'$VIASH_PAR_LENGTH\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --length. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --length=*) + [ -n "$VIASH_PAR_LENGTH" ] && ViashError Bad arguments for option \'--length=*\': \'$VIASH_PAR_LENGTH\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH=$(ViashRemoveFlags "$1") + shift 1 + ;; + --max_n) + [ -n "$VIASH_PAR_MAX_N" ] && ViashError Bad arguments for option \'--max_n\': \'$VIASH_PAR_MAX_N\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MAX_N="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --max_n. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --max_n=*) + [ -n "$VIASH_PAR_MAX_N" ] && ViashError Bad arguments for option \'--max_n=*\': \'$VIASH_PAR_MAX_N\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_MAX_N=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trim_n) + [ -n "$VIASH_PAR_TRIM_N" ] && ViashError Bad arguments for option \'--trim_n\': \'$VIASH_PAR_TRIM_N\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIM_N=true + shift 1 + ;; + --no_report_file) + [ -n "$VIASH_PAR_NO_REPORT_FILE" ] && ViashError Bad arguments for option \'--no_report_file\': \'$VIASH_PAR_NO_REPORT_FILE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NO_REPORT_FILE=true + shift 1 + ;; + --suppress_warn) + [ -n "$VIASH_PAR_SUPPRESS_WARN" ] && ViashError Bad arguments for option \'--suppress_warn\': \'$VIASH_PAR_SUPPRESS_WARN\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_SUPPRESS_WARN=true + shift 1 + ;; + --clip_R1) + [ -n "$VIASH_PAR_CLIP_R1" ] && ViashError Bad arguments for option \'--clip_R1\': \'$VIASH_PAR_CLIP_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CLIP_R1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --clip_R1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --clip_R1=*) + [ -n "$VIASH_PAR_CLIP_R1" ] && ViashError Bad arguments for option \'--clip_R1=*\': \'$VIASH_PAR_CLIP_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CLIP_R1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --clip_R2) + [ -n "$VIASH_PAR_CLIP_R2" ] && ViashError Bad arguments for option \'--clip_R2\': \'$VIASH_PAR_CLIP_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CLIP_R2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --clip_R2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --clip_R2=*) + [ -n "$VIASH_PAR_CLIP_R2" ] && ViashError Bad arguments for option \'--clip_R2=*\': \'$VIASH_PAR_CLIP_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CLIP_R2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --three_prime_clip_R1) + [ -n "$VIASH_PAR_THREE_PRIME_CLIP_R1" ] && ViashError Bad arguments for option \'--three_prime_clip_R1\': \'$VIASH_PAR_THREE_PRIME_CLIP_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_THREE_PRIME_CLIP_R1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --three_prime_clip_R1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --three_prime_clip_R1=*) + [ -n "$VIASH_PAR_THREE_PRIME_CLIP_R1" ] && ViashError Bad arguments for option \'--three_prime_clip_R1=*\': \'$VIASH_PAR_THREE_PRIME_CLIP_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_THREE_PRIME_CLIP_R1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --three_prime_clip_R2) + [ -n "$VIASH_PAR_THREE_PRIME_CLIP_R2" ] && ViashError Bad arguments for option \'--three_prime_clip_R2\': \'$VIASH_PAR_THREE_PRIME_CLIP_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_THREE_PRIME_CLIP_R2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --three_prime_clip_R2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --three_prime_clip_R2=*) + [ -n "$VIASH_PAR_THREE_PRIME_CLIP_R2" ] && ViashError Bad arguments for option \'--three_prime_clip_R2=*\': \'$VIASH_PAR_THREE_PRIME_CLIP_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_THREE_PRIME_CLIP_R2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --nextseq) + [ -n "$VIASH_PAR_NEXTSEQ" ] && ViashError Bad arguments for option \'--nextseq\': \'$VIASH_PAR_NEXTSEQ\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NEXTSEQ="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --nextseq. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --nextseq=*) + [ -n "$VIASH_PAR_NEXTSEQ" ] && ViashError Bad arguments for option \'--nextseq=*\': \'$VIASH_PAR_NEXTSEQ\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NEXTSEQ=$(ViashRemoveFlags "$1") + shift 1 + ;; + --basename) + [ -n "$VIASH_PAR_BASENAME" ] && ViashError Bad arguments for option \'--basename\': \'$VIASH_PAR_BASENAME\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_BASENAME="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --basename. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --basename=*) + [ -n "$VIASH_PAR_BASENAME" ] && ViashError Bad arguments for option \'--basename=*\': \'$VIASH_PAR_BASENAME\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_BASENAME=$(ViashRemoveFlags "$1") + shift 1 + ;; + --hardtrim5) + [ -n "$VIASH_PAR_HARDTRIM5" ] && ViashError Bad arguments for option \'--hardtrim5\': \'$VIASH_PAR_HARDTRIM5\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_HARDTRIM5="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --hardtrim5. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --hardtrim5=*) + [ -n "$VIASH_PAR_HARDTRIM5" ] && ViashError Bad arguments for option \'--hardtrim5=*\': \'$VIASH_PAR_HARDTRIM5\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_HARDTRIM5=$(ViashRemoveFlags "$1") + shift 1 + ;; + --hardtrim3) + [ -n "$VIASH_PAR_HARDTRIM3" ] && ViashError Bad arguments for option \'--hardtrim3\': \'$VIASH_PAR_HARDTRIM3\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_HARDTRIM3="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --hardtrim3. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --hardtrim3=*) + [ -n "$VIASH_PAR_HARDTRIM3" ] && ViashError Bad arguments for option \'--hardtrim3=*\': \'$VIASH_PAR_HARDTRIM3\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_HARDTRIM3=$(ViashRemoveFlags "$1") + shift 1 + ;; + --clock) + [ -n "$VIASH_PAR_CLOCK" ] && ViashError Bad arguments for option \'--clock\': \'$VIASH_PAR_CLOCK\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_CLOCK=true + shift 1 + ;; + --polyA) + [ -n "$VIASH_PAR_POLYA" ] && ViashError Bad arguments for option \'--polyA\': \'$VIASH_PAR_POLYA\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_POLYA=true + shift 1 + ;; + --implicon) + [ -n "$VIASH_PAR_IMPLICON" ] && ViashError Bad arguments for option \'--implicon\': \'$VIASH_PAR_IMPLICON\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_IMPLICON=true + shift 1 + ;; + --rrbs) + [ -n "$VIASH_PAR_RRBS" ] && ViashError Bad arguments for option \'--rrbs\': \'$VIASH_PAR_RRBS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_RRBS=true + shift 1 + ;; + --non_directional) + [ -n "$VIASH_PAR_NON_DIRECTIONAL" ] && ViashError Bad arguments for option \'--non_directional\': \'$VIASH_PAR_NON_DIRECTIONAL\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_NON_DIRECTIONAL=true + shift 1 + ;; + --keep) + [ -n "$VIASH_PAR_KEEP" ] && ViashError Bad arguments for option \'--keep\': \'$VIASH_PAR_KEEP\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_KEEP=true + shift 1 + ;; + --paired) + [ -n "$VIASH_PAR_PAIRED" ] && ViashError Bad arguments for option \'--paired\': \'$VIASH_PAR_PAIRED\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PAIRED=true + shift 1 + ;; + --retain_unpaired) + [ -n "$VIASH_PAR_RETAIN_UNPAIRED" ] && ViashError Bad arguments for option \'--retain_unpaired\': \'$VIASH_PAR_RETAIN_UNPAIRED\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_RETAIN_UNPAIRED=true + shift 1 + ;; + --length_1) + [ -n "$VIASH_PAR_LENGTH_1" ] && ViashError Bad arguments for option \'--length_1\': \'$VIASH_PAR_LENGTH_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --length_1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --length_1=*) + [ -n "$VIASH_PAR_LENGTH_1" ] && ViashError Bad arguments for option \'--length_1=*\': \'$VIASH_PAR_LENGTH_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_1=$(ViashRemoveFlags "$1") + shift 1 + ;; + -r1) + [ -n "$VIASH_PAR_LENGTH_1" ] && ViashError Bad arguments for option \'-r1\': \'$VIASH_PAR_LENGTH_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -r1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --length_2) + [ -n "$VIASH_PAR_LENGTH_2" ] && ViashError Bad arguments for option \'--length_2\': \'$VIASH_PAR_LENGTH_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --length_2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --length_2=*) + [ -n "$VIASH_PAR_LENGTH_2" ] && ViashError Bad arguments for option \'--length_2=*\': \'$VIASH_PAR_LENGTH_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_2=$(ViashRemoveFlags "$1") + shift 1 + ;; + -r2) + [ -n "$VIASH_PAR_LENGTH_2" ] && ViashError Bad arguments for option \'-r2\': \'$VIASH_PAR_LENGTH_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_LENGTH_2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -r2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output_dir) + [ -n "$VIASH_PAR_OUTPUT_DIR" ] && ViashError Bad arguments for option \'--output_dir\': \'$VIASH_PAR_OUTPUT_DIR\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT_DIR="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --output_dir. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --output_dir=*) + [ -n "$VIASH_PAR_OUTPUT_DIR" ] && ViashError Bad arguments for option \'--output_dir=*\': \'$VIASH_PAR_OUTPUT_DIR\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT_DIR=$(ViashRemoveFlags "$1") + shift 1 + ;; + -o) + [ -n "$VIASH_PAR_OUTPUT_DIR" ] && ViashError Bad arguments for option \'-o\': \'$VIASH_PAR_OUTPUT_DIR\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_OUTPUT_DIR="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to -o. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_r1) + [ -n "$VIASH_PAR_TRIMMED_R1" ] && ViashError Bad arguments for option \'--trimmed_r1\': \'$VIASH_PAR_TRIMMED_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_R1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_r1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_r1=*) + [ -n "$VIASH_PAR_TRIMMED_R1" ] && ViashError Bad arguments for option \'--trimmed_r1=*\': \'$VIASH_PAR_TRIMMED_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_R1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimmed_r2) + [ -n "$VIASH_PAR_TRIMMED_R2" ] && ViashError Bad arguments for option \'--trimmed_r2\': \'$VIASH_PAR_TRIMMED_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_R2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_r2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_r2=*) + [ -n "$VIASH_PAR_TRIMMED_R2" ] && ViashError Bad arguments for option \'--trimmed_r2=*\': \'$VIASH_PAR_TRIMMED_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_R2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimming_report_r1) + [ -n "$VIASH_PAR_TRIMMING_REPORT_R1" ] && ViashError Bad arguments for option \'--trimming_report_r1\': \'$VIASH_PAR_TRIMMING_REPORT_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMING_REPORT_R1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimming_report_r1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimming_report_r1=*) + [ -n "$VIASH_PAR_TRIMMING_REPORT_R1" ] && ViashError Bad arguments for option \'--trimming_report_r1=*\': \'$VIASH_PAR_TRIMMING_REPORT_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMING_REPORT_R1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimming_report_r2) + [ -n "$VIASH_PAR_TRIMMING_REPORT_R2" ] && ViashError Bad arguments for option \'--trimming_report_r2\': \'$VIASH_PAR_TRIMMING_REPORT_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMING_REPORT_R2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimming_report_r2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimming_report_r2=*) + [ -n "$VIASH_PAR_TRIMMING_REPORT_R2" ] && ViashError Bad arguments for option \'--trimming_report_r2=*\': \'$VIASH_PAR_TRIMMING_REPORT_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMING_REPORT_R2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimmed_fastqc_html_1) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ] && ViashError Bad arguments for option \'--trimmed_fastqc_html_1\': \'$VIASH_PAR_TRIMMED_FASTQC_HTML_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_HTML_1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_fastqc_html_1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_fastqc_html_1=*) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ] && ViashError Bad arguments for option \'--trimmed_fastqc_html_1=*\': \'$VIASH_PAR_TRIMMED_FASTQC_HTML_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_HTML_1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimmed_fastqc_html_2) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ] && ViashError Bad arguments for option \'--trimmed_fastqc_html_2\': \'$VIASH_PAR_TRIMMED_FASTQC_HTML_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_HTML_2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_fastqc_html_2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_fastqc_html_2=*) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ] && ViashError Bad arguments for option \'--trimmed_fastqc_html_2=*\': \'$VIASH_PAR_TRIMMED_FASTQC_HTML_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_HTML_2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimmed_fastqc_zip_1) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ] && ViashError Bad arguments for option \'--trimmed_fastqc_zip_1\': \'$VIASH_PAR_TRIMMED_FASTQC_ZIP_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_ZIP_1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_fastqc_zip_1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_fastqc_zip_1=*) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ] && ViashError Bad arguments for option \'--trimmed_fastqc_zip_1=*\': \'$VIASH_PAR_TRIMMED_FASTQC_ZIP_1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_ZIP_1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --trimmed_fastqc_zip_2) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ] && ViashError Bad arguments for option \'--trimmed_fastqc_zip_2\': \'$VIASH_PAR_TRIMMED_FASTQC_ZIP_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_ZIP_2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --trimmed_fastqc_zip_2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --trimmed_fastqc_zip_2=*) + [ -n "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ] && ViashError Bad arguments for option \'--trimmed_fastqc_zip_2=*\': \'$VIASH_PAR_TRIMMED_FASTQC_ZIP_2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_TRIMMED_FASTQC_ZIP_2=$(ViashRemoveFlags "$1") + shift 1 + ;; + --unpaired_r1) + [ -n "$VIASH_PAR_UNPAIRED_R1" ] && ViashError Bad arguments for option \'--unpaired_r1\': \'$VIASH_PAR_UNPAIRED_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_UNPAIRED_R1="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --unpaired_r1. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --unpaired_r1=*) + [ -n "$VIASH_PAR_UNPAIRED_R1" ] && ViashError Bad arguments for option \'--unpaired_r1=*\': \'$VIASH_PAR_UNPAIRED_R1\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_UNPAIRED_R1=$(ViashRemoveFlags "$1") + shift 1 + ;; + --unpaired_r2) + [ -n "$VIASH_PAR_UNPAIRED_R2" ] && ViashError Bad arguments for option \'--unpaired_r2\': \'$VIASH_PAR_UNPAIRED_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_UNPAIRED_R2="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --unpaired_r2. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --unpaired_r2=*) + [ -n "$VIASH_PAR_UNPAIRED_R2" ] && ViashError Bad arguments for option \'--unpaired_r2=*\': \'$VIASH_PAR_UNPAIRED_R2\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_UNPAIRED_R2=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---engine) + VIASH_ENGINE_ID="$2" + shift 2 + ;; + ---engine=*) + VIASH_ENGINE_ID="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---setup) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$2" + shift 2 + ;; + ---setup=*) + VIASH_MODE='setup' + VIASH_SETUP_STRATEGY="$(ViashRemoveFlags "$1")" + shift 1 + ;; + ---dockerfile) + VIASH_MODE='dockerfile' + shift 1 + ;; + ---docker_run_args) + VIASH_DOCKER_RUN_ARGS+=("$2") + shift 2 + ;; + ---docker_run_args=*) + VIASH_DOCKER_RUN_ARGS+=("$(ViashRemoveFlags "$1")") + shift 1 + ;; + ---docker_image_id) + VIASH_MODE='docker_image_id' + shift 1 + ;; + ---debug) + VIASH_MODE='debug' + shift 1 + ;; + ---cpus) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---cpus. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---cpus=*) + [ -n "$VIASH_META_CPUS" ] && ViashError Bad arguments for option \'---cpus=*\': \'$VIASH_META_CPUS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_CPUS=$(ViashRemoveFlags "$1") + shift 1 + ;; + ---memory) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to ---memory. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + ---memory=*) + [ -n "$VIASH_META_MEMORY" ] && ViashError Bad arguments for option \'---memory=*\': \'$VIASH_META_MEMORY\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_META_MEMORY=$(ViashRemoveFlags "$1") + shift 1 + ;; + *) # positional arg or unknown option + # since the positional args will be eval'd, can we always quote, instead of using ViashQuote + VIASH_POSITIONAL_ARGS="$VIASH_POSITIONAL_ARGS '$1'" + [[ $1 == -* ]] && ViashWarning $1 looks like a parameter but is not a defined parameter and will instead be treated as a positional argument. Use "--help" to get more information on the parameters. + shift # past argument + ;; + esac +done + +# parse positional parameters +eval set -- $VIASH_POSITIONAL_ARGS + + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + VIASH_ENGINE_TYPE='native' +elif [ "$VIASH_ENGINE_ID" == "docker" ] ; then + VIASH_ENGINE_TYPE='docker' +else + ViashError "Engine '$VIASH_ENGINE_ID' is not recognized. Options are: docker, native." + exit 1 +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # check if docker is installed properly + ViashDockerInstallationCheck + + # determine docker image id + if [[ "$VIASH_ENGINE_ID" == 'docker' ]]; then + VIASH_DOCKER_IMAGE_ID='images.viash-hub.com/vsh/biobox/trimgalore:main' + fi + + # print dockerfile + if [ "$VIASH_MODE" == "dockerfile" ]; then + ViashDockerfile "$VIASH_ENGINE_ID" + exit 0 + + elif [ "$VIASH_MODE" == "docker_image_id" ]; then + echo "$VIASH_DOCKER_IMAGE_ID" + exit 0 + + # enter docker container + elif [[ "$VIASH_MODE" == "debug" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} -v '$(pwd)':/pwd --workdir /pwd -t $VIASH_DOCKER_IMAGE_ID" + ViashNotice "+ $VIASH_CMD" + eval $VIASH_CMD + exit + + # build docker image + elif [ "$VIASH_MODE" == "setup" ]; then + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" "$VIASH_SETUP_STRATEGY" + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' + exit 0 + fi + + # check if docker image exists + ViashDockerSetup "$VIASH_DOCKER_IMAGE_ID" ifneedbepullelsecachedbuild + ViashDockerCheckCommands "$VIASH_DOCKER_IMAGE_ID" 'ps' 'bash' +fi + +# setting computational defaults + +# helper function for parsing memory strings +function ViashMemoryAsBytes { + local memory=`echo "$1" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]'` + local memory_regex='^([0-9]+)([kmgtp]i?b?|b)$' + if [[ $memory =~ $memory_regex ]]; then + local number=${memory/[^0-9]*/} + local symbol=${memory/*[0-9]/} + + case $symbol in + b) memory_b=$number ;; + kb|k) memory_b=$(( $number * 1000 )) ;; + mb|m) memory_b=$(( $number * 1000 * 1000 )) ;; + gb|g) memory_b=$(( $number * 1000 * 1000 * 1000 )) ;; + tb|t) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 )) ;; + pb|p) memory_b=$(( $number * 1000 * 1000 * 1000 * 1000 * 1000 )) ;; + kib|ki) memory_b=$(( $number * 1024 )) ;; + mib|mi) memory_b=$(( $number * 1024 * 1024 )) ;; + gib|gi) memory_b=$(( $number * 1024 * 1024 * 1024 )) ;; + tib|ti) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 )) ;; + pib|pi) memory_b=$(( $number * 1024 * 1024 * 1024 * 1024 * 1024 )) ;; + esac + echo "$memory_b" + fi +} +# compute memory in different units +if [ ! -z ${VIASH_META_MEMORY+x} ]; then + VIASH_META_MEMORY_B=`ViashMemoryAsBytes $VIASH_META_MEMORY` + # do not define other variables if memory_b is an empty string + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_META_MEMORY_KB=$(( ($VIASH_META_MEMORY_B+999) / 1000 )) + VIASH_META_MEMORY_MB=$(( ($VIASH_META_MEMORY_KB+999) / 1000 )) + VIASH_META_MEMORY_GB=$(( ($VIASH_META_MEMORY_MB+999) / 1000 )) + VIASH_META_MEMORY_TB=$(( ($VIASH_META_MEMORY_GB+999) / 1000 )) + VIASH_META_MEMORY_PB=$(( ($VIASH_META_MEMORY_TB+999) / 1000 )) + VIASH_META_MEMORY_KIB=$(( ($VIASH_META_MEMORY_B+1023) / 1024 )) + VIASH_META_MEMORY_MIB=$(( ($VIASH_META_MEMORY_KIB+1023) / 1024 )) + VIASH_META_MEMORY_GIB=$(( ($VIASH_META_MEMORY_MIB+1023) / 1024 )) + VIASH_META_MEMORY_TIB=$(( ($VIASH_META_MEMORY_GIB+1023) / 1024 )) + VIASH_META_MEMORY_PIB=$(( ($VIASH_META_MEMORY_TIB+1023) / 1024 )) + else + # unset memory if string is empty + unset $VIASH_META_MEMORY_B + fi +fi +# unset nproc if string is empty +if [ -z "$VIASH_META_CPUS" ]; then + unset $VIASH_META_CPUS +fi + + +# check whether required parameters exist +if [ -z ${VIASH_PAR_INPUT+x} ]; then + ViashError '--input' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_PAR_OUTPUT_DIR+x} ]; then + ViashError '--output_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_NAME+x} ]; then + ViashError 'name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then + ViashError 'functionality_name' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_RESOURCES_DIR+x} ]; then + ViashError 'resources_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_EXECUTABLE+x} ]; then + ViashError 'executable' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_CONFIG+x} ]; then + ViashError 'config' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi +if [ -z ${VIASH_META_TEMP_DIR+x} ]; then + ViashError 'temp_dir' is a required argument. Use "--help" to get more information on the parameters. + exit 1 +fi + +# filling in defaults +if [ -z ${VIASH_PAR_PHRED33+x} ]; then + VIASH_PAR_PHRED33="false" +fi +if [ -z ${VIASH_PAR_PHRED64+x} ]; then + VIASH_PAR_PHRED64="false" +fi +if [ -z ${VIASH_PAR_FASTQC+x} ]; then + VIASH_PAR_FASTQC="false" +fi +if [ -z ${VIASH_PAR_ILLUMINA+x} ]; then + VIASH_PAR_ILLUMINA="false" +fi +if [ -z ${VIASH_PAR_STRANDED_ILLUMINA+x} ]; then + VIASH_PAR_STRANDED_ILLUMINA="false" +fi +if [ -z ${VIASH_PAR_NEXTERA+x} ]; then + VIASH_PAR_NEXTERA="false" +fi +if [ -z ${VIASH_PAR_SMALL_RNA+x} ]; then + VIASH_PAR_SMALL_RNA="false" +fi +if [ -z ${VIASH_PAR_GZIP+x} ]; then + VIASH_PAR_GZIP="false" +fi +if [ -z ${VIASH_PAR_DONT_GZIP+x} ]; then + VIASH_PAR_DONT_GZIP="false" +fi +if [ -z ${VIASH_PAR_TRIM_N+x} ]; then + VIASH_PAR_TRIM_N="false" +fi +if [ -z ${VIASH_PAR_NO_REPORT_FILE+x} ]; then + VIASH_PAR_NO_REPORT_FILE="false" +fi +if [ -z ${VIASH_PAR_SUPPRESS_WARN+x} ]; then + VIASH_PAR_SUPPRESS_WARN="false" +fi +if [ -z ${VIASH_PAR_CLOCK+x} ]; then + VIASH_PAR_CLOCK="false" +fi +if [ -z ${VIASH_PAR_POLYA+x} ]; then + VIASH_PAR_POLYA="false" +fi +if [ -z ${VIASH_PAR_IMPLICON+x} ]; then + VIASH_PAR_IMPLICON="false" +fi +if [ -z ${VIASH_PAR_RRBS+x} ]; then + VIASH_PAR_RRBS="false" +fi +if [ -z ${VIASH_PAR_NON_DIRECTIONAL+x} ]; then + VIASH_PAR_NON_DIRECTIONAL="false" +fi +if [ -z ${VIASH_PAR_KEEP+x} ]; then + VIASH_PAR_KEEP="false" +fi +if [ -z ${VIASH_PAR_PAIRED+x} ]; then + VIASH_PAR_PAIRED="false" +fi +if [ -z ${VIASH_PAR_RETAIN_UNPAIRED+x} ]; then + VIASH_PAR_RETAIN_UNPAIRED="false" +fi + +# check whether required files exist +if [ ! -z "$VIASH_PAR_INPUT" ]; then + IFS=';' + set -f + for file in $VIASH_PAR_INPUT; do + unset IFS + if [ ! -e "$file" ]; then + ViashError "Input file '$file' does not exist." + exit 1 + fi + done + set +f +fi +if [ ! -z "$VIASH_PAR_FASTQC_CONTAMINANTS" ] && [ ! -e "$VIASH_PAR_FASTQC_CONTAMINANTS" ]; then + ViashError "Input file '$VIASH_PAR_FASTQC_CONTAMINANTS' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_FASTQC_ADAPTERS" ] && [ ! -e "$VIASH_PAR_FASTQC_ADAPTERS" ]; then + ViashError "Input file '$VIASH_PAR_FASTQC_ADAPTERS' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_FASTQC_LIMITS" ] && [ ! -e "$VIASH_PAR_FASTQC_LIMITS" ]; then + ViashError "Input file '$VIASH_PAR_FASTQC_LIMITS' does not exist." + exit 1 +fi + +# check whether parameters values are of the right type +if [[ -n "$VIASH_PAR_QUALITY" ]]; then + if ! [[ "$VIASH_PAR_QUALITY" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--quality' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_PHRED33" ]]; then + if ! [[ "$VIASH_PAR_PHRED33" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--phred33' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_PHRED64" ]]; then + if ! [[ "$VIASH_PAR_PHRED64" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--phred64' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_FASTQC" ]]; then + if ! [[ "$VIASH_PAR_FASTQC" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--fastqc' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_ILLUMINA" ]]; then + if ! [[ "$VIASH_PAR_ILLUMINA" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--illumina' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_STRANDED_ILLUMINA" ]]; then + if ! [[ "$VIASH_PAR_STRANDED_ILLUMINA" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--stranded_illumina' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_NEXTERA" ]]; then + if ! [[ "$VIASH_PAR_NEXTERA" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--nextera' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_SMALL_RNA" ]]; then + if ! [[ "$VIASH_PAR_SMALL_RNA" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--small_rna' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_CONSIDER_ALREADY_TRIMMED" ]]; then + if ! [[ "$VIASH_PAR_CONSIDER_ALREADY_TRIMMED" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--consider_already_trimmed' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_MAX_LENGTH" ]]; then + if ! [[ "$VIASH_PAR_MAX_LENGTH" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--max_length' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_STRINGENCY" ]]; then + if ! [[ "$VIASH_PAR_STRINGENCY" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--stringency' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_ERROR_RATE" ]]; then + if ! [[ "$VIASH_PAR_ERROR_RATE" =~ ^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$ ]]; then + ViashError '--error_rate' has to be a double. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_GZIP" ]]; then + if ! [[ "$VIASH_PAR_GZIP" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--gzip' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_DONT_GZIP" ]]; then + if ! [[ "$VIASH_PAR_DONT_GZIP" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--dont_gzip' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_LENGTH" ]]; then + if ! [[ "$VIASH_PAR_LENGTH" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--length' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_MAX_N" ]]; then + if ! [[ "$VIASH_PAR_MAX_N" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--max_n' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_TRIM_N" ]]; then + if ! [[ "$VIASH_PAR_TRIM_N" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--trim_n' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_NO_REPORT_FILE" ]]; then + if ! [[ "$VIASH_PAR_NO_REPORT_FILE" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--no_report_file' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_SUPPRESS_WARN" ]]; then + if ! [[ "$VIASH_PAR_SUPPRESS_WARN" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--suppress_warn' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_CLIP_R1" ]]; then + if ! [[ "$VIASH_PAR_CLIP_R1" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--clip_R1' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_CLIP_R2" ]]; then + if ! [[ "$VIASH_PAR_CLIP_R2" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--clip_R2' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_THREE_PRIME_CLIP_R1" ]]; then + if ! [[ "$VIASH_PAR_THREE_PRIME_CLIP_R1" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--three_prime_clip_R1' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_THREE_PRIME_CLIP_R2" ]]; then + if ! [[ "$VIASH_PAR_THREE_PRIME_CLIP_R2" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--three_prime_clip_R2' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_NEXTSEQ" ]]; then + if ! [[ "$VIASH_PAR_NEXTSEQ" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--nextseq' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_HARDTRIM5" ]]; then + if ! [[ "$VIASH_PAR_HARDTRIM5" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--hardtrim5' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_HARDTRIM3" ]]; then + if ! [[ "$VIASH_PAR_HARDTRIM3" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--hardtrim3' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_CLOCK" ]]; then + if ! [[ "$VIASH_PAR_CLOCK" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--clock' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_POLYA" ]]; then + if ! [[ "$VIASH_PAR_POLYA" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--polyA' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_IMPLICON" ]]; then + if ! [[ "$VIASH_PAR_IMPLICON" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--implicon' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_RRBS" ]]; then + if ! [[ "$VIASH_PAR_RRBS" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--rrbs' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_NON_DIRECTIONAL" ]]; then + if ! [[ "$VIASH_PAR_NON_DIRECTIONAL" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--non_directional' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_KEEP" ]]; then + if ! [[ "$VIASH_PAR_KEEP" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--keep' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_PAIRED" ]]; then + if ! [[ "$VIASH_PAR_PAIRED" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--paired' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_RETAIN_UNPAIRED" ]]; then + if ! [[ "$VIASH_PAR_RETAIN_UNPAIRED" =~ ^(true|True|TRUE|false|False|FALSE|yes|Yes|YES|no|No|NO)$ ]]; then + ViashError '--retain_unpaired' has to be a boolean_true. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_LENGTH_1" ]]; then + if ! [[ "$VIASH_PAR_LENGTH_1" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--length_1' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_PAR_LENGTH_2" ]]; then + if ! [[ "$VIASH_PAR_LENGTH_2" =~ ^[-+]?[0-9]+$ ]]; then + ViashError '--length_2' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_CPUS" ]]; then + if ! [[ "$VIASH_META_CPUS" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'cpus' has to be an integer. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_B" ]]; then + if ! [[ "$VIASH_META_MEMORY_B" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_b' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pb' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_KIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_KIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_kib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_MIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_MIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_mib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_GIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_GIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_gib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_TIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_TIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_tib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi +if [[ -n "$VIASH_META_MEMORY_PIB" ]]; then + if ! [[ "$VIASH_META_MEMORY_PIB" =~ ^[-+]?[0-9]+$ ]]; then + ViashError 'memory_pib' has to be a long. Use "--help" to get more information on the parameters. + exit 1 + fi +fi + +# create parent directories of output files, if so desired +if [ ! -z "$VIASH_PAR_OUTPUT_DIR" ] && [ ! -d "$(dirname "$VIASH_PAR_OUTPUT_DIR")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_OUTPUT_DIR")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R1" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_R1")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_R1")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R2" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_R2")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_R2")" +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R1" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMING_REPORT_R1")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMING_REPORT_R1")" +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R2" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMING_REPORT_R2")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMING_REPORT_R2")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_HTML_1")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_HTML_1")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_HTML_2")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_HTML_2")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1")" +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ] && [ ! -d "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2")" +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R1" ] && [ ! -d "$(dirname "$VIASH_PAR_UNPAIRED_R1")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_UNPAIRED_R1")" +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R2" ] && [ ! -d "$(dirname "$VIASH_PAR_UNPAIRED_R2")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_UNPAIRED_R2")" +fi + +if [ "$VIASH_ENGINE_ID" == "native" ] ; then + if [ "$VIASH_MODE" == "run" ]; then + VIASH_CMD="bash" + else + ViashError "Engine '$VIASH_ENGINE_ID' does not support mode '$VIASH_MODE'." + exit 1 + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # detect volumes from file arguments + VIASH_CHOWN_VARS=() +if [ ! -z "$VIASH_PAR_INPUT" ]; then + VIASH_TEST_INPUT=() + IFS=';' + for var in $VIASH_PAR_INPUT; do + unset IFS + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) + var=$(ViashDockerAutodetectMount "$var") + VIASH_TEST_INPUT+=( "$var" ) + done + VIASH_PAR_INPUT=$(IFS=';' ; echo "${VIASH_TEST_INPUT[*]}") +fi +if [ ! -z "$VIASH_PAR_FASTQC_CONTAMINANTS" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_FASTQC_CONTAMINANTS")" ) + VIASH_PAR_FASTQC_CONTAMINANTS=$(ViashDockerAutodetectMount "$VIASH_PAR_FASTQC_CONTAMINANTS") +fi +if [ ! -z "$VIASH_PAR_FASTQC_ADAPTERS" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_FASTQC_ADAPTERS")" ) + VIASH_PAR_FASTQC_ADAPTERS=$(ViashDockerAutodetectMount "$VIASH_PAR_FASTQC_ADAPTERS") +fi +if [ ! -z "$VIASH_PAR_FASTQC_LIMITS" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_FASTQC_LIMITS")" ) + VIASH_PAR_FASTQC_LIMITS=$(ViashDockerAutodetectMount "$VIASH_PAR_FASTQC_LIMITS") +fi +if [ ! -z "$VIASH_PAR_OUTPUT_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_OUTPUT_DIR")" ) + VIASH_PAR_OUTPUT_DIR=$(ViashDockerAutodetectMount "$VIASH_PAR_OUTPUT_DIR") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_OUTPUT_DIR" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R1" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_R1")" ) + VIASH_PAR_TRIMMED_R1=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_R1") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_R1" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R2" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_R2")" ) + VIASH_PAR_TRIMMED_R2=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_R2") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_R2" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R1" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMING_REPORT_R1")" ) + VIASH_PAR_TRIMMING_REPORT_R1=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMING_REPORT_R1") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMING_REPORT_R1" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R2" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMING_REPORT_R2")" ) + VIASH_PAR_TRIMMING_REPORT_R2=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMING_REPORT_R2") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMING_REPORT_R2" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_FASTQC_HTML_1")" ) + VIASH_PAR_TRIMMED_FASTQC_HTML_1=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_FASTQC_HTML_1") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_FASTQC_HTML_2")" ) + VIASH_PAR_TRIMMED_FASTQC_HTML_2=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_FASTQC_HTML_2") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1")" ) + VIASH_PAR_TRIMMED_FASTQC_ZIP_1=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ) +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2")" ) + VIASH_PAR_TRIMMED_FASTQC_ZIP_2=$(ViashDockerAutodetectMount "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ) +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R1" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_UNPAIRED_R1")" ) + VIASH_PAR_UNPAIRED_R1=$(ViashDockerAutodetectMount "$VIASH_PAR_UNPAIRED_R1") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_UNPAIRED_R1" ) +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R2" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_UNPAIRED_R2")" ) + VIASH_PAR_UNPAIRED_R2=$(ViashDockerAutodetectMount "$VIASH_PAR_UNPAIRED_R2") + VIASH_CHOWN_VARS+=( "$VIASH_PAR_UNPAIRED_R2" ) +fi +if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_RESOURCES_DIR")" ) + VIASH_META_RESOURCES_DIR=$(ViashDockerAutodetectMount "$VIASH_META_RESOURCES_DIR") +fi +if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_EXECUTABLE")" ) + VIASH_META_EXECUTABLE=$(ViashDockerAutodetectMount "$VIASH_META_EXECUTABLE") +fi +if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_CONFIG")" ) + VIASH_META_CONFIG=$(ViashDockerAutodetectMount "$VIASH_META_CONFIG") +fi +if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_META_TEMP_DIR")" ) + VIASH_META_TEMP_DIR=$(ViashDockerAutodetectMount "$VIASH_META_TEMP_DIR") +fi + + # get unique mounts + VIASH_UNIQUE_MOUNTS=($(for val in "${VIASH_DIRECTORY_MOUNTS[@]}"; do echo "$val"; done | sort -u)) +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # change file ownership + function ViashPerformChown { + if (( ${#VIASH_CHOWN_VARS[@]} )); then + set +e + VIASH_CMD="docker run --entrypoint=bash --rm ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID -c 'chown $(id -u):$(id -g) --silent --recursive ${VIASH_CHOWN_VARS[@]}'" + ViashDebug "+ $VIASH_CMD" + eval $VIASH_CMD + set -e + fi + } + trap ViashPerformChown EXIT +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # helper function for filling in extra docker args + if [ ! -z "$VIASH_META_MEMORY_B" ]; then + VIASH_DOCKER_RUN_ARGS+=("--memory=${VIASH_META_MEMORY_B}") + fi + if [ ! -z "$VIASH_META_CPUS" ]; then + VIASH_DOCKER_RUN_ARGS+=("--cpus=${VIASH_META_CPUS}") + fi +fi + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + VIASH_CMD="docker run --entrypoint=bash ${VIASH_DOCKER_RUN_ARGS[@]} ${VIASH_UNIQUE_MOUNTS[@]} $VIASH_DOCKER_IMAGE_ID" +fi + + +# set dependency paths + + +ViashDebug "Running command: $(echo $VIASH_CMD)" +cat << VIASHEOF | eval $VIASH_CMD +set -e +tempscript=\$(mktemp "$VIASH_META_TEMP_DIR/viash-run-trimgalore-XXXXXX").sh +function clean_up { + rm "\$tempscript" +} +function interrupt { + echo -e "\nCTRL-C Pressed..." + exit 1 +} +trap clean_up EXIT +trap interrupt INT SIGINT +cat > "\$tempscript" << 'VIASHMAIN' +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_INPUT+x} ]; then echo "${VIASH_PAR_INPUT}" | sed "s#'#'\"'\"'#g;s#.*#par_input='&'#" ; else echo "# par_input="; fi ) +$( if [ ! -z ${VIASH_PAR_QUALITY+x} ]; then echo "${VIASH_PAR_QUALITY}" | sed "s#'#'\"'\"'#g;s#.*#par_quality='&'#" ; else echo "# par_quality="; fi ) +$( if [ ! -z ${VIASH_PAR_PHRED33+x} ]; then echo "${VIASH_PAR_PHRED33}" | sed "s#'#'\"'\"'#g;s#.*#par_phred33='&'#" ; else echo "# par_phred33="; fi ) +$( if [ ! -z ${VIASH_PAR_PHRED64+x} ]; then echo "${VIASH_PAR_PHRED64}" | sed "s#'#'\"'\"'#g;s#.*#par_phred64='&'#" ; else echo "# par_phred64="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC+x} ]; then echo "${VIASH_PAR_FASTQC}" | sed "s#'#'\"'\"'#g;s#.*#par_fastqc='&'#" ; else echo "# par_fastqc="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_ARGS+x} ]; then echo "${VIASH_PAR_FASTQC_ARGS}" | sed "s#'#'\"'\"'#g;s#.*#par_fastqc_args='&'#" ; else echo "# par_fastqc_args="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_CONTAMINANTS+x} ]; then echo "${VIASH_PAR_FASTQC_CONTAMINANTS}" | sed "s#'#'\"'\"'#g;s#.*#par_fastqc_contaminants='&'#" ; else echo "# par_fastqc_contaminants="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_ADAPTERS+x} ]; then echo "${VIASH_PAR_FASTQC_ADAPTERS}" | sed "s#'#'\"'\"'#g;s#.*#par_fastqc_adapters='&'#" ; else echo "# par_fastqc_adapters="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_LIMITS+x} ]; then echo "${VIASH_PAR_FASTQC_LIMITS}" | sed "s#'#'\"'\"'#g;s#.*#par_fastqc_limits='&'#" ; else echo "# par_fastqc_limits="; fi ) +$( if [ ! -z ${VIASH_PAR_ADAPTER+x} ]; then echo "${VIASH_PAR_ADAPTER}" | sed "s#'#'\"'\"'#g;s#.*#par_adapter='&'#" ; else echo "# par_adapter="; fi ) +$( if [ ! -z ${VIASH_PAR_ADAPTER2+x} ]; then echo "${VIASH_PAR_ADAPTER2}" | sed "s#'#'\"'\"'#g;s#.*#par_adapter2='&'#" ; else echo "# par_adapter2="; fi ) +$( if [ ! -z ${VIASH_PAR_ILLUMINA+x} ]; then echo "${VIASH_PAR_ILLUMINA}" | sed "s#'#'\"'\"'#g;s#.*#par_illumina='&'#" ; else echo "# par_illumina="; fi ) +$( if [ ! -z ${VIASH_PAR_STRANDED_ILLUMINA+x} ]; then echo "${VIASH_PAR_STRANDED_ILLUMINA}" | sed "s#'#'\"'\"'#g;s#.*#par_stranded_illumina='&'#" ; else echo "# par_stranded_illumina="; fi ) +$( if [ ! -z ${VIASH_PAR_NEXTERA+x} ]; then echo "${VIASH_PAR_NEXTERA}" | sed "s#'#'\"'\"'#g;s#.*#par_nextera='&'#" ; else echo "# par_nextera="; fi ) +$( if [ ! -z ${VIASH_PAR_SMALL_RNA+x} ]; then echo "${VIASH_PAR_SMALL_RNA}" | sed "s#'#'\"'\"'#g;s#.*#par_small_rna='&'#" ; else echo "# par_small_rna="; fi ) +$( if [ ! -z ${VIASH_PAR_CONSIDER_ALREADY_TRIMMED+x} ]; then echo "${VIASH_PAR_CONSIDER_ALREADY_TRIMMED}" | sed "s#'#'\"'\"'#g;s#.*#par_consider_already_trimmed='&'#" ; else echo "# par_consider_already_trimmed="; fi ) +$( if [ ! -z ${VIASH_PAR_MAX_LENGTH+x} ]; then echo "${VIASH_PAR_MAX_LENGTH}" | sed "s#'#'\"'\"'#g;s#.*#par_max_length='&'#" ; else echo "# par_max_length="; fi ) +$( if [ ! -z ${VIASH_PAR_STRINGENCY+x} ]; then echo "${VIASH_PAR_STRINGENCY}" | sed "s#'#'\"'\"'#g;s#.*#par_stringency='&'#" ; else echo "# par_stringency="; fi ) +$( if [ ! -z ${VIASH_PAR_ERROR_RATE+x} ]; then echo "${VIASH_PAR_ERROR_RATE}" | sed "s#'#'\"'\"'#g;s#.*#par_error_rate='&'#" ; else echo "# par_error_rate="; fi ) +$( if [ ! -z ${VIASH_PAR_GZIP+x} ]; then echo "${VIASH_PAR_GZIP}" | sed "s#'#'\"'\"'#g;s#.*#par_gzip='&'#" ; else echo "# par_gzip="; fi ) +$( if [ ! -z ${VIASH_PAR_DONT_GZIP+x} ]; then echo "${VIASH_PAR_DONT_GZIP}" | sed "s#'#'\"'\"'#g;s#.*#par_dont_gzip='&'#" ; else echo "# par_dont_gzip="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH+x} ]; then echo "${VIASH_PAR_LENGTH}" | sed "s#'#'\"'\"'#g;s#.*#par_length='&'#" ; else echo "# par_length="; fi ) +$( if [ ! -z ${VIASH_PAR_MAX_N+x} ]; then echo "${VIASH_PAR_MAX_N}" | sed "s#'#'\"'\"'#g;s#.*#par_max_n='&'#" ; else echo "# par_max_n="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIM_N+x} ]; then echo "${VIASH_PAR_TRIM_N}" | sed "s#'#'\"'\"'#g;s#.*#par_trim_n='&'#" ; else echo "# par_trim_n="; fi ) +$( if [ ! -z ${VIASH_PAR_NO_REPORT_FILE+x} ]; then echo "${VIASH_PAR_NO_REPORT_FILE}" | sed "s#'#'\"'\"'#g;s#.*#par_no_report_file='&'#" ; else echo "# par_no_report_file="; fi ) +$( if [ ! -z ${VIASH_PAR_SUPPRESS_WARN+x} ]; then echo "${VIASH_PAR_SUPPRESS_WARN}" | sed "s#'#'\"'\"'#g;s#.*#par_suppress_warn='&'#" ; else echo "# par_suppress_warn="; fi ) +$( if [ ! -z ${VIASH_PAR_CLIP_R1+x} ]; then echo "${VIASH_PAR_CLIP_R1}" | sed "s#'#'\"'\"'#g;s#.*#par_clip_R1='&'#" ; else echo "# par_clip_R1="; fi ) +$( if [ ! -z ${VIASH_PAR_CLIP_R2+x} ]; then echo "${VIASH_PAR_CLIP_R2}" | sed "s#'#'\"'\"'#g;s#.*#par_clip_R2='&'#" ; else echo "# par_clip_R2="; fi ) +$( if [ ! -z ${VIASH_PAR_THREE_PRIME_CLIP_R1+x} ]; then echo "${VIASH_PAR_THREE_PRIME_CLIP_R1}" | sed "s#'#'\"'\"'#g;s#.*#par_three_prime_clip_R1='&'#" ; else echo "# par_three_prime_clip_R1="; fi ) +$( if [ ! -z ${VIASH_PAR_THREE_PRIME_CLIP_R2+x} ]; then echo "${VIASH_PAR_THREE_PRIME_CLIP_R2}" | sed "s#'#'\"'\"'#g;s#.*#par_three_prime_clip_R2='&'#" ; else echo "# par_three_prime_clip_R2="; fi ) +$( if [ ! -z ${VIASH_PAR_NEXTSEQ+x} ]; then echo "${VIASH_PAR_NEXTSEQ}" | sed "s#'#'\"'\"'#g;s#.*#par_nextseq='&'#" ; else echo "# par_nextseq="; fi ) +$( if [ ! -z ${VIASH_PAR_BASENAME+x} ]; then echo "${VIASH_PAR_BASENAME}" | sed "s#'#'\"'\"'#g;s#.*#par_basename='&'#" ; else echo "# par_basename="; fi ) +$( if [ ! -z ${VIASH_PAR_HARDTRIM5+x} ]; then echo "${VIASH_PAR_HARDTRIM5}" | sed "s#'#'\"'\"'#g;s#.*#par_hardtrim5='&'#" ; else echo "# par_hardtrim5="; fi ) +$( if [ ! -z ${VIASH_PAR_HARDTRIM3+x} ]; then echo "${VIASH_PAR_HARDTRIM3}" | sed "s#'#'\"'\"'#g;s#.*#par_hardtrim3='&'#" ; else echo "# par_hardtrim3="; fi ) +$( if [ ! -z ${VIASH_PAR_CLOCK+x} ]; then echo "${VIASH_PAR_CLOCK}" | sed "s#'#'\"'\"'#g;s#.*#par_clock='&'#" ; else echo "# par_clock="; fi ) +$( if [ ! -z ${VIASH_PAR_POLYA+x} ]; then echo "${VIASH_PAR_POLYA}" | sed "s#'#'\"'\"'#g;s#.*#par_polyA='&'#" ; else echo "# par_polyA="; fi ) +$( if [ ! -z ${VIASH_PAR_IMPLICON+x} ]; then echo "${VIASH_PAR_IMPLICON}" | sed "s#'#'\"'\"'#g;s#.*#par_implicon='&'#" ; else echo "# par_implicon="; fi ) +$( if [ ! -z ${VIASH_PAR_RRBS+x} ]; then echo "${VIASH_PAR_RRBS}" | sed "s#'#'\"'\"'#g;s#.*#par_rrbs='&'#" ; else echo "# par_rrbs="; fi ) +$( if [ ! -z ${VIASH_PAR_NON_DIRECTIONAL+x} ]; then echo "${VIASH_PAR_NON_DIRECTIONAL}" | sed "s#'#'\"'\"'#g;s#.*#par_non_directional='&'#" ; else echo "# par_non_directional="; fi ) +$( if [ ! -z ${VIASH_PAR_KEEP+x} ]; then echo "${VIASH_PAR_KEEP}" | sed "s#'#'\"'\"'#g;s#.*#par_keep='&'#" ; else echo "# par_keep="; fi ) +$( if [ ! -z ${VIASH_PAR_PAIRED+x} ]; then echo "${VIASH_PAR_PAIRED}" | sed "s#'#'\"'\"'#g;s#.*#par_paired='&'#" ; else echo "# par_paired="; fi ) +$( if [ ! -z ${VIASH_PAR_RETAIN_UNPAIRED+x} ]; then echo "${VIASH_PAR_RETAIN_UNPAIRED}" | sed "s#'#'\"'\"'#g;s#.*#par_retain_unpaired='&'#" ; else echo "# par_retain_unpaired="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH_1+x} ]; then echo "${VIASH_PAR_LENGTH_1}" | sed "s#'#'\"'\"'#g;s#.*#par_length_1='&'#" ; else echo "# par_length_1="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH_2+x} ]; then echo "${VIASH_PAR_LENGTH_2}" | sed "s#'#'\"'\"'#g;s#.*#par_length_2='&'#" ; else echo "# par_length_2="; fi ) +$( if [ ! -z ${VIASH_PAR_OUTPUT_DIR+x} ]; then echo "${VIASH_PAR_OUTPUT_DIR}" | sed "s#'#'\"'\"'#g;s#.*#par_output_dir='&'#" ; else echo "# par_output_dir="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_R1+x} ]; then echo "${VIASH_PAR_TRIMMED_R1}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_r1='&'#" ; else echo "# par_trimmed_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_R2+x} ]; then echo "${VIASH_PAR_TRIMMED_R2}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_r2='&'#" ; else echo "# par_trimmed_r2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMING_REPORT_R1+x} ]; then echo "${VIASH_PAR_TRIMMING_REPORT_R1}" | sed "s#'#'\"'\"'#g;s#.*#par_trimming_report_r1='&'#" ; else echo "# par_trimming_report_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMING_REPORT_R2+x} ]; then echo "${VIASH_PAR_TRIMMING_REPORT_R2}" | sed "s#'#'\"'\"'#g;s#.*#par_trimming_report_r2='&'#" ; else echo "# par_trimming_report_r2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_HTML_1+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_HTML_1}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_fastqc_html_1='&'#" ; else echo "# par_trimmed_fastqc_html_1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_HTML_2+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_HTML_2}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_fastqc_html_2='&'#" ; else echo "# par_trimmed_fastqc_html_2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_ZIP_1+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_ZIP_1}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_fastqc_zip_1='&'#" ; else echo "# par_trimmed_fastqc_zip_1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_ZIP_2+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_ZIP_2}" | sed "s#'#'\"'\"'#g;s#.*#par_trimmed_fastqc_zip_2='&'#" ; else echo "# par_trimmed_fastqc_zip_2="; fi ) +$( if [ ! -z ${VIASH_PAR_UNPAIRED_R1+x} ]; then echo "${VIASH_PAR_UNPAIRED_R1}" | sed "s#'#'\"'\"'#g;s#.*#par_unpaired_r1='&'#" ; else echo "# par_unpaired_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_UNPAIRED_R2+x} ]; then echo "${VIASH_PAR_UNPAIRED_R2}" | sed "s#'#'\"'\"'#g;s#.*#par_unpaired_r2='&'#" ; else echo "# par_unpaired_r2="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\"'\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\"'\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\"'\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\"'\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\"'\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\"'\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END +#!/bin/bash + +set -eo pipefail + +[[ ! -d \$output_dir ]] && mkdir -p \$par_output_dir + +IFS=";" read -ra input <<< \$par_input + +unset_if_false=( + par_phred33 + par_phred64 + par_fastqc + par_illumina + par_stranded_illumina + par_nextera + par_small_rna + par_gzip + par_dont_gzip + par_trim_n + par_no_report_file + par_suppress_warn + par_clock + par_polyA + par_implicon + par_rrbs + par_non_directional + par_keep + par_paired + par_retain_unpaired +) + +for par in \${unset_if_false[@]}; do + test_val="\${!par}" + [[ "\$test_val" == "false" ]] && unset \$par +done + +# Add FastQC file arguments to fastqc_args +fastqc_args="\${par_fastqc_args}" +if [ -f "\$par_fastqc_contaminants" ]; then + fastqc_args+=" --contaminants \$par_fastqc_contaminants" +fi +if [ -f "\$par_fastqc_adapters" ]; then + fastqc_args+=" --adapters \$par_fastqc_adapters" +fi +if [ -f "\$par_fastqc_limits" ]; then + fastqc_args+=" --limits \$par_fastqc_limits" +fi + +trim_galore \\ + \${par_quality:+-q "\${par_quality}"} \\ + \${par_phred33:+--phred33} \\ + \${par_phred64:+--phred64 } \\ + \${par_fastqc:+--fastqc } \\ + \${fastqc_args:+--fastqc_args "\${fastqc_args}"} \\ + \${par_adapter:+-a "\${par_adapter}"} \\ + \${par_adapter2:+-a2 "\${par_adapter2}"} \\ + \${par_illumina:+--illumina} \\ + \${par_stranded_illumina:+--stranded_illumina} \\ + \${par_nextera:+--nextera} \\ + \${par_small_rna:+--small_rna} \\ + \${par_consider_already_trimmed:+--consider_already_trimmed "\${par_consider_already_trimmed}"} \\ + \${par_max_length:+--max_length "\${par_max_length}"} \\ + \${par_stringency:+--stringency "\${par_stringency}"} \\ + \${par_error_rate:+-e "\${par_error_rate}"} \\ + \${par_gzip:+--gzip} \\ + \${par_dont_gzip:+--dont_gzip} \\ + \${par_length:+--length "\${par_length}"} \\ + \${par_max_n:+--max_n "\${par_max_n}"} \\ + \${par_trim_n:+--trim-n "\${par_trim_n}"} \\ + \${par_no_report_file:+--no_report_file} \\ + \${par_suppress_warn:+--suppress_warn} \\ + \${par_clip_R1:+--clip_R1 "\${par_clip_R1}"} \\ + \${par_clip_R2:+--clip_R2 "\${par_clip_R2}"} \\ + \${par_three_prime_clip_R1:+--three_prime_clip_R1 "\${par_three_prime_clip_R1}"} \\ + \${par_three_prime_clip_R2:+--three_prime_clip_R2 "\${par_three_prime_clip_R2}"} \\ + \${par_nextseq:+--nextseq "\${par_nextseq}"} \\ + \${par_basename:+-basename "\${par_basename}"} \\ + \${par_hardtrim5:+--hardtrim5 "\${par_hardtrim5}"} \\ + \${par_hardtrim3:+--hardtrim3 "\${par_hardtrim3}"} \\ + \${par_clock:+--clock} \\ + \${par_polyA:+--polyA} \\ + \${par_implicon:+--implicon "\${par_implicon}"} \\ + \${par_rrbs:+--rrbs} \\ + \${par_non_directional:+--non_directional} \\ + \${par_keep:+--keep} \\ + \${par_paired:+--paired} \\ + \${par_retain_unpaired:+--retain_unpaired} \\ + \${par_length_1:+-r1 "\${par_length_1}"} \\ + \${par_length_2:+-r2 "\${par_length_2}"} \\ + \${meta_cpus:+-j "\${meta_cpus}"} \\ + -o \$par_output_dir \\ + \${input[*]} + +if [ \$par_paired == "true" ]; then + + input_r1=\$(basename -- "\${input[0]}") + input_r2=\$(basename -- "\${input[1]}") + [[ ! -z "\$par_trimmed_r1" ]] && mv \$par_output_dir/*val_1.f*q* \$par_trimmed_r1 + [[ ! -z "\$par_trimmed_r2" ]] && mv \$par_output_dir/*val_2.f*q* \$par_trimmed_r2 + [[ ! -z "\$par_trimming_report_r1" ]] && mv \$par_output_dir/\${input_r1}_trimming_report.txt \$par_trimming_report_r1 + [[ ! -z "\$par_trimming_report_r2" ]] && mv \$par_output_dir/\${input_r2}_trimming_report.txt \$par_trimming_report_r2 + + if [ "\$par_fastqc" == "true" ]; then + [[ ! -z "\$par_trimmed_fastqc_html_1" ]] && mv \$par_output_dir/*val_1_fastqc.html \$par_trimmed_fastqc_html_1 + [[ ! -z "\$par_trimmed_fastqc_html_2" ]] && mv \$par_output_dir/*val_2_fastqc.html \$par_trimmed_fastqc_html_2 + [[ ! -z "\$par_trimmed_fastqc_zip_1" ]] && mv \$par_output_dir/*val_1_fastqc.zip \$par_trimmed_fastqc_zip_1 + [[ ! -z "\$par_trimmed_fastqc_zip_2" ]] && mv \$par_output_dir/*val_2_fastqc.zip \$par_trimmed_fastqc_zip_2 + fi + + if [ "\$par_retain_unpaired" == "true" ]; then + [[ ! -z "\$par_unpaired_r1" ]] && mv \$par_output_dir/*.unpaired_1.f*q* \$par_unpaired_r1 + [[ ! -z "\$par_unpaired_r2" ]] && mv \$par_output_dir/*.unpaired_2.f*q* \$par_unpaired_r2 + fi + +else + + input_r1=\$(basename -- "\${input[0]}") + [[ ! -z "\$par_trimmed_r1" ]] && mv \$par_output_dir/*_trimmed.fq* \$par_trimmed_r1 + [[ ! -z "\$par_trimming_report_r1" ]] && mv \$par_output_dir/\${input_r1}_trimming_report.txt \$par_trimming_report_r1 + + if [ "\$par_fastqc" == "true" ]; then + [[ ! -z "\$par_trimmed_fastqc_html_1" ]] && mv \$par_output_dir/*_trimmed_fastqc.html \$par_trimmed_fastqc_html_1 + [[ ! -z "\$par_trimmed_fastqc_zip_1" ]] && mv \$par_output_dir/*_trimmed_fastqc.zip \$par_trimmed_fastqc_zip_1 + fi + +fi +VIASHMAIN +bash "\$tempscript" & +wait "\$!" + +VIASHEOF + + +if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then + # strip viash automount from file paths + + if [ ! -z "$VIASH_PAR_INPUT" ]; then + unset VIASH_TEST_INPUT + IFS=';' + for var in $VIASH_PAR_INPUT; do + unset IFS + if [ -z "$VIASH_TEST_INPUT" ]; then + VIASH_TEST_INPUT="$(ViashDockerStripAutomount "$var")" + else + VIASH_TEST_INPUT="$VIASH_TEST_INPUT;""$(ViashDockerStripAutomount "$var")" + fi + done + VIASH_PAR_INPUT="$VIASH_TEST_INPUT" + fi + if [ ! -z "$VIASH_PAR_FASTQC_CONTAMINANTS" ]; then + VIASH_PAR_FASTQC_CONTAMINANTS=$(ViashDockerStripAutomount "$VIASH_PAR_FASTQC_CONTAMINANTS") + fi + if [ ! -z "$VIASH_PAR_FASTQC_ADAPTERS" ]; then + VIASH_PAR_FASTQC_ADAPTERS=$(ViashDockerStripAutomount "$VIASH_PAR_FASTQC_ADAPTERS") + fi + if [ ! -z "$VIASH_PAR_FASTQC_LIMITS" ]; then + VIASH_PAR_FASTQC_LIMITS=$(ViashDockerStripAutomount "$VIASH_PAR_FASTQC_LIMITS") + fi + if [ ! -z "$VIASH_PAR_OUTPUT_DIR" ]; then + VIASH_PAR_OUTPUT_DIR=$(ViashDockerStripAutomount "$VIASH_PAR_OUTPUT_DIR") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_R1" ]; then + VIASH_PAR_TRIMMED_R1=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_R1") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_R2" ]; then + VIASH_PAR_TRIMMED_R2=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_R2") + fi + if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R1" ]; then + VIASH_PAR_TRIMMING_REPORT_R1=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMING_REPORT_R1") + fi + if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R2" ]; then + VIASH_PAR_TRIMMING_REPORT_R2=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMING_REPORT_R2") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ]; then + VIASH_PAR_TRIMMED_FASTQC_HTML_1=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_FASTQC_HTML_1") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ]; then + VIASH_PAR_TRIMMED_FASTQC_HTML_2=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_FASTQC_HTML_2") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ]; then + VIASH_PAR_TRIMMED_FASTQC_ZIP_1=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1") + fi + if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ]; then + VIASH_PAR_TRIMMED_FASTQC_ZIP_2=$(ViashDockerStripAutomount "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2") + fi + if [ ! -z "$VIASH_PAR_UNPAIRED_R1" ]; then + VIASH_PAR_UNPAIRED_R1=$(ViashDockerStripAutomount "$VIASH_PAR_UNPAIRED_R1") + fi + if [ ! -z "$VIASH_PAR_UNPAIRED_R2" ]; then + VIASH_PAR_UNPAIRED_R2=$(ViashDockerStripAutomount "$VIASH_PAR_UNPAIRED_R2") + fi + if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then + VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") + fi + if [ ! -z "$VIASH_META_EXECUTABLE" ]; then + VIASH_META_EXECUTABLE=$(ViashDockerStripAutomount "$VIASH_META_EXECUTABLE") + fi + if [ ! -z "$VIASH_META_CONFIG" ]; then + VIASH_META_CONFIG=$(ViashDockerStripAutomount "$VIASH_META_CONFIG") + fi + if [ ! -z "$VIASH_META_TEMP_DIR" ]; then + VIASH_META_TEMP_DIR=$(ViashDockerStripAutomount "$VIASH_META_TEMP_DIR") + fi +fi + + +# check whether required files exist +if [ ! -z "$VIASH_PAR_OUTPUT_DIR" ] && [ ! -e "$VIASH_PAR_OUTPUT_DIR" ]; then + ViashError "Output file '$VIASH_PAR_OUTPUT_DIR' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R1" ] && [ ! -e "$VIASH_PAR_TRIMMED_R1" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_R1' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_R2" ] && [ ! -e "$VIASH_PAR_TRIMMED_R2" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_R2' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R1" ] && [ ! -e "$VIASH_PAR_TRIMMING_REPORT_R1" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMING_REPORT_R1' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMING_REPORT_R2" ] && [ ! -e "$VIASH_PAR_TRIMMING_REPORT_R2" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMING_REPORT_R2' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ] && [ ! -e "$VIASH_PAR_TRIMMED_FASTQC_HTML_1" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_FASTQC_HTML_1' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ] && [ ! -e "$VIASH_PAR_TRIMMED_FASTQC_HTML_2" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_FASTQC_HTML_2' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ] && [ ! -e "$VIASH_PAR_TRIMMED_FASTQC_ZIP_1" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_FASTQC_ZIP_1' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ] && [ ! -e "$VIASH_PAR_TRIMMED_FASTQC_ZIP_2" ]; then + ViashError "Output file '$VIASH_PAR_TRIMMED_FASTQC_ZIP_2' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R1" ] && [ ! -e "$VIASH_PAR_UNPAIRED_R1" ]; then + ViashError "Output file '$VIASH_PAR_UNPAIRED_R1' does not exist." + exit 1 +fi +if [ ! -z "$VIASH_PAR_UNPAIRED_R2" ] && [ ! -e "$VIASH_PAR_UNPAIRED_R2" ]; then + ViashError "Output file '$VIASH_PAR_UNPAIRED_R2' does not exist." + exit 1 +fi + + +exit 0 diff --git a/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml index 6cc2faa8..4cfeb41f 100644 --- a/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_dedup/.config.vsh.yaml @@ -611,9 +611,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_dedup" executable: "target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup b/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup index 596f7178..b9f95f5a 100755 --- a/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup +++ b/target/executable/umi_tools/umi_tools_dedup/umi_tools_dedup @@ -770,9 +770,9 @@ RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.authors="Emma Rousseau" LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_dedup" -LABEL org.opencontainers.image.created="2024-09-19T03:54:14Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:11Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml index 34f24f11..28322b51 100644 --- a/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_extract/.config.vsh.yaml @@ -449,9 +449,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_extract" executable: "target/executable/umi_tools/umi_tools_extract/umi_tools_extract" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_extract/umi_tools_extract b/target/executable/umi_tools/umi_tools_extract/umi_tools_extract index 7227b421..7e813033 100755 --- a/target/executable/umi_tools/umi_tools_extract/umi_tools_extract +++ b/target/executable/umi_tools/umi_tools_extract/umi_tools_extract @@ -637,9 +637,9 @@ ENTRYPOINT [] RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_extract" -LABEL org.opencontainers.image.created="2024-09-19T03:54:13Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:10Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml b/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml index d3a23c7d..4f097811 100644 --- a/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml +++ b/target/executable/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml @@ -256,9 +256,9 @@ build_info: output: "target/executable/umi_tools/umi_tools_prepareforrsem" executable: "target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem b/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem index 8f17ffcd..e2215a12 100755 --- a/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem +++ b/target/executable/umi_tools/umi_tools_prepareforrsem/umi_tools_prepareforrsem @@ -519,9 +519,9 @@ ENTRYPOINT [] RUN umi_tools -v | sed 's/ version//g' > /var/software_versions.txt LABEL org.opencontainers.image.description="Companion container for running component umi_tools umi_tools_prepareforrsem" -LABEL org.opencontainers.image.created="2024-09-19T03:54:14Z" +LABEL org.opencontainers.image.created="2024-09-27T09:55:10Z" LABEL org.opencontainers.image.source="https://github.com/CGATOxford/UMI-tools" -LABEL org.opencontainers.image.revision="bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" +LABEL org.opencontainers.image.revision="237a2e3a229ee589d1ebbc282526f87398e26f58" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml index 9d267369..78df1b83 100644 --- a/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_bed2gff/.config.vsh.yaml @@ -235,9 +235,9 @@ build_info: output: "target/nextflow/agat/agat_convert_bed2gff" executable: "target/nextflow/agat/agat_convert_bed2gff/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_bed2gff/main.nf b/target/nextflow/agat/agat_convert_bed2gff/main.nf index 31875b09..dd066116 100644 --- a/target/nextflow/agat/agat_convert_bed2gff/main.nf +++ b/target/nextflow/agat/agat_convert_bed2gff/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_bed2gff", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml index e64e46ad..fe4a6e5d 100644 --- a/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_embl2gff/.config.vsh.yaml @@ -225,9 +225,9 @@ build_info: output: "target/nextflow/agat/agat_convert_embl2gff" executable: "target/nextflow/agat/agat_convert_embl2gff/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_embl2gff/main.nf b/target/nextflow/agat/agat_convert_embl2gff/main.nf index 44b4a6f9..cf33cdd5 100644 --- a/target/nextflow/agat/agat_convert_embl2gff/main.nf +++ b/target/nextflow/agat/agat_convert_embl2gff/main.nf @@ -3085,9 +3085,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_embl2gff", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml b/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml index 85b9a415..2a590569 100644 --- a/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_genscan2gff/.config.vsh.yaml @@ -230,9 +230,9 @@ build_info: output: "target/nextflow/agat/agat_convert_genscan2gff" executable: "target/nextflow/agat/agat_convert_genscan2gff/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_genscan2gff/main.nf b/target/nextflow/agat/agat_convert_genscan2gff/main.nf index 57f09aac..68a0840f 100644 --- a/target/nextflow/agat/agat_convert_genscan2gff/main.nf +++ b/target/nextflow/agat/agat_convert_genscan2gff/main.nf @@ -3087,9 +3087,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_genscan2gff", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml index 488d3a47..40045593 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gff2gtf/.config.vsh.yaml @@ -228,9 +228,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gff2gtf" executable: "target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf b/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf index 6b1bf4ad..e147e5a4 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gff2gtf/main.nf @@ -3068,9 +3068,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gff2gtf", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml index 39dad285..7e4c51a6 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gff2tsv/.config.vsh.yaml @@ -188,9 +188,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gff2tsv" executable: "target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf b/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf index 76b55885..76ca4ef1 100644 --- a/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gff2tsv/main.nf @@ -3046,9 +3046,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gff2tsv", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml b/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml index e7029cfc..47ef0181 100644 --- a/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml +++ b/target/nextflow/agat/agat_convert_sp_gxf2gxf/.config.vsh.yaml @@ -195,9 +195,9 @@ build_info: output: "target/nextflow/agat/agat_convert_sp_gxf2gxf" executable: "target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf b/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf index c889fc70..1a295653 100644 --- a/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf +++ b/target/nextflow/agat/agat_convert_sp_gxf2gxf/main.nf @@ -3046,9 +3046,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/agat/agat_convert_sp_gxf2gxf", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/arriba/.config.vsh.yaml b/target/nextflow/arriba/.config.vsh.yaml index 01e33a1b..b311f218 100644 --- a/target/nextflow/arriba/.config.vsh.yaml +++ b/target/nextflow/arriba/.config.vsh.yaml @@ -706,9 +706,9 @@ build_info: output: "target/nextflow/arriba" executable: "target/nextflow/arriba/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/arriba/main.nf b/target/nextflow/arriba/main.nf index 764782c8..b17bc439 100644 --- a/target/nextflow/arriba/main.nf +++ b/target/nextflow/arriba/main.nf @@ -3592,9 +3592,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/arriba", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml index 818a5a51..3d5ee1fb 100644 --- a/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_annotate/.config.vsh.yaml @@ -469,9 +469,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_annotate" executable: "target/nextflow/bcftools/bcftools_annotate/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_annotate/main.nf b/target/nextflow/bcftools/bcftools_annotate/main.nf index 33744042..48ad5891 100644 --- a/target/nextflow/bcftools/bcftools_annotate/main.nf +++ b/target/nextflow/bcftools/bcftools_annotate/main.nf @@ -3335,9 +3335,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_annotate", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml index b0ffac8e..5d76c240 100644 --- a/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_concat/.config.vsh.yaml @@ -335,9 +335,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_concat" executable: "target/nextflow/bcftools/bcftools_concat/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_concat/main.nf b/target/nextflow/bcftools/bcftools_concat/main.nf index 27091617..719b35d5 100644 --- a/target/nextflow/bcftools/bcftools_concat/main.nf +++ b/target/nextflow/bcftools/bcftools_concat/main.nf @@ -3207,9 +3207,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_concat", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml index 237135f8..b6cecaf2 100644 --- a/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_norm/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_norm" executable: "target/nextflow/bcftools/bcftools_norm/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_norm/main.nf b/target/nextflow/bcftools/bcftools_norm/main.nf index b9edf86c..f98247e7 100644 --- a/target/nextflow/bcftools/bcftools_norm/main.nf +++ b/target/nextflow/bcftools/bcftools_norm/main.nf @@ -3300,9 +3300,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_norm", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml index 2fbf5753..067310f6 100644 --- a/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_sort/.config.vsh.yaml @@ -185,9 +185,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_sort" executable: "target/nextflow/bcftools/bcftools_sort/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_sort/main.nf b/target/nextflow/bcftools/bcftools_sort/main.nf index 3349ff9f..83b95499 100644 --- a/target/nextflow/bcftools/bcftools_sort/main.nf +++ b/target/nextflow/bcftools/bcftools_sort/main.nf @@ -3048,9 +3048,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_sort", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml b/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml index 2f56f075..3a894cc4 100644 --- a/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml +++ b/target/nextflow/bcftools/bcftools_stats/.config.vsh.yaml @@ -458,9 +458,9 @@ build_info: output: "target/nextflow/bcftools/bcftools_stats" executable: "target/nextflow/bcftools/bcftools_stats/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcftools/bcftools_stats/main.nf b/target/nextflow/bcftools/bcftools_stats/main.nf index 92a03f55..564684fc 100644 --- a/target/nextflow/bcftools/bcftools_stats/main.nf +++ b/target/nextflow/bcftools/bcftools_stats/main.nf @@ -3337,9 +3337,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcftools/bcftools_stats", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bcl_convert/.config.vsh.yaml b/target/nextflow/bcl_convert/.config.vsh.yaml index f92bc305..733bd6c1 100644 --- a/target/nextflow/bcl_convert/.config.vsh.yaml +++ b/target/nextflow/bcl_convert/.config.vsh.yaml @@ -418,9 +418,9 @@ build_info: output: "target/nextflow/bcl_convert" executable: "target/nextflow/bcl_convert/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bcl_convert/main.nf b/target/nextflow/bcl_convert/main.nf index a5ef2c74..9bfaeb64 100644 --- a/target/nextflow/bcl_convert/main.nf +++ b/target/nextflow/bcl_convert/main.nf @@ -3329,9 +3329,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bcl_convert", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml index 8870aded..4195c1d3 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/.config.vsh.yaml @@ -274,9 +274,9 @@ build_info: output: "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference" executable: "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf index 5ff7cb68..f686364e 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_make_reference/main.nf @@ -3146,9 +3146,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bd_rhapsody/bd_rhapsody_make_reference", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml index 278e6fcb..c685d370 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/.config.vsh.yaml @@ -1115,9 +1115,9 @@ build_info: output: "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis" executable: "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf index 8bbef68e..504c6169 100644 --- a/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf +++ b/target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis/main.nf @@ -4193,9 +4193,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bd_rhapsody/bd_rhapsody_sequence_analysis", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml index 19ceb438..ad37b594 100644 --- a/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bamtofastq/.config.vsh.yaml @@ -187,9 +187,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bamtofastq" executable: "target/nextflow/bedtools/bedtools_bamtofastq/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bamtofastq/main.nf b/target/nextflow/bedtools/bedtools_bamtofastq/main.nf index dbb6e927..60f66873 100644 --- a/target/nextflow/bedtools/bedtools_bamtofastq/main.nf +++ b/target/nextflow/bedtools/bedtools_bamtofastq/main.nf @@ -3050,9 +3050,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bamtofastq", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml index c6a6d717..8a276648 100644 --- a/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bed12tobed6/.config.vsh.yaml @@ -176,9 +176,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bed12tobed6" executable: "target/nextflow/bedtools/bedtools_bed12tobed6/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf b/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf index a233286a..f5870432 100644 --- a/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf +++ b/target/nextflow/bedtools/bedtools_bed12tobed6/main.nf @@ -3035,9 +3035,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bed12tobed6", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml index c913476e..ac986745 100644 --- a/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_bedtobam/.config.vsh.yaml @@ -214,9 +214,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_bedtobam" executable: "target/nextflow/bedtools/bedtools_bedtobam/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_bedtobam/main.nf b/target/nextflow/bedtools/bedtools_bedtobam/main.nf index 127d121e..de992983 100644 --- a/target/nextflow/bedtools/bedtools_bedtobam/main.nf +++ b/target/nextflow/bedtools/bedtools_bedtobam/main.nf @@ -3083,9 +3083,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_bedtobam", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml index ed7bfc44..8b0a8e7c 100644 --- a/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_genomecov/.config.vsh.yaml @@ -337,9 +337,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_genomecov" executable: "target/nextflow/bedtools/bedtools_genomecov/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_genomecov/main.nf b/target/nextflow/bedtools/bedtools_genomecov/main.nf index 7b55b9f2..6c0fd460 100644 --- a/target/nextflow/bedtools/bedtools_genomecov/main.nf +++ b/target/nextflow/bedtools/bedtools_genomecov/main.nf @@ -3207,9 +3207,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_genomecov", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml index 7e4c8127..12874b5b 100644 --- a/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_getfasta/.config.vsh.yaml @@ -232,9 +232,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_getfasta" executable: "target/nextflow/bedtools/bedtools_getfasta/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_getfasta/main.nf b/target/nextflow/bedtools/bedtools_getfasta/main.nf index ea08d938..76db9900 100644 --- a/target/nextflow/bedtools/bedtools_getfasta/main.nf +++ b/target/nextflow/bedtools/bedtools_getfasta/main.nf @@ -3086,9 +3086,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_getfasta", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml index dfbeefd1..0304d7a3 100644 --- a/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_groupby/.config.vsh.yaml @@ -273,9 +273,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_groupby" executable: "target/nextflow/bedtools/bedtools_groupby/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_groupby/main.nf b/target/nextflow/bedtools/bedtools_groupby/main.nf index 1a3d38cf..453ab5bf 100644 --- a/target/nextflow/bedtools/bedtools_groupby/main.nf +++ b/target/nextflow/bedtools/bedtools_groupby/main.nf @@ -3130,9 +3130,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_groupby", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml index 2efd86fc..d67052c9 100644 --- a/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_intersect/.config.vsh.yaml @@ -410,9 +410,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_intersect" executable: "target/nextflow/bedtools/bedtools_intersect/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_intersect/main.nf b/target/nextflow/bedtools/bedtools_intersect/main.nf index 4d29ea7b..a2c2d211 100644 --- a/target/nextflow/bedtools/bedtools_intersect/main.nf +++ b/target/nextflow/bedtools/bedtools_intersect/main.nf @@ -3282,9 +3282,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_intersect", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml index 53729c26..90ffe1fa 100644 --- a/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_links/.config.vsh.yaml @@ -210,9 +210,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_links" executable: "target/nextflow/bedtools/bedtools_links/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_links/main.nf b/target/nextflow/bedtools/bedtools_links/main.nf index ec5ad5a0..b8d3bfb4 100644 --- a/target/nextflow/bedtools/bedtools_links/main.nf +++ b/target/nextflow/bedtools/bedtools_links/main.nf @@ -3073,9 +3073,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_links", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml index 18dfb6cf..b5b6b607 100644 --- a/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_merge/.config.vsh.yaml @@ -279,9 +279,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_merge" executable: "target/nextflow/bedtools/bedtools_merge/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_merge/main.nf b/target/nextflow/bedtools/bedtools_merge/main.nf index 4f9f2507..d8adc286 100644 --- a/target/nextflow/bedtools/bedtools_merge/main.nf +++ b/target/nextflow/bedtools/bedtools_merge/main.nf @@ -3134,9 +3134,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_merge", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml b/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml index fc3cfbcd..ef2f8989 100644 --- a/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml +++ b/target/nextflow/bedtools/bedtools_sort/.config.vsh.yaml @@ -222,9 +222,9 @@ build_info: output: "target/nextflow/bedtools/bedtools_sort" executable: "target/nextflow/bedtools/bedtools_sort/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/bedtools/bedtools_sort/main.nf b/target/nextflow/bedtools/bedtools_sort/main.nf index 3af7eee4..64de427d 100644 --- a/target/nextflow/bedtools/bedtools_sort/main.nf +++ b/target/nextflow/bedtools/bedtools_sort/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/bedtools/bedtools_sort", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml b/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml index 8ddd7a6d..4db9cd11 100644 --- a/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml +++ b/target/nextflow/busco/busco_download_datasets/.config.vsh.yaml @@ -158,9 +158,9 @@ build_info: output: "target/nextflow/busco/busco_download_datasets" executable: "target/nextflow/busco/busco_download_datasets/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_download_datasets/main.nf b/target/nextflow/busco/busco_download_datasets/main.nf index 98e3e8e9..ab22709a 100644 --- a/target/nextflow/busco/busco_download_datasets/main.nf +++ b/target/nextflow/busco/busco_download_datasets/main.nf @@ -3011,9 +3011,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_download_datasets", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml b/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml index bbeed197..c1b249b0 100644 --- a/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml +++ b/target/nextflow/busco/busco_list_datasets/.config.vsh.yaml @@ -145,9 +145,9 @@ build_info: output: "target/nextflow/busco/busco_list_datasets" executable: "target/nextflow/busco/busco_list_datasets/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_list_datasets/main.nf b/target/nextflow/busco/busco_list_datasets/main.nf index cecf9066..b63e7537 100644 --- a/target/nextflow/busco/busco_list_datasets/main.nf +++ b/target/nextflow/busco/busco_list_datasets/main.nf @@ -2997,9 +2997,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_list_datasets", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/busco/busco_run/.config.vsh.yaml b/target/nextflow/busco/busco_run/.config.vsh.yaml index cfee07e0..e7e609fa 100644 --- a/target/nextflow/busco/busco_run/.config.vsh.yaml +++ b/target/nextflow/busco/busco_run/.config.vsh.yaml @@ -423,9 +423,9 @@ build_info: output: "target/nextflow/busco/busco_run" executable: "target/nextflow/busco/busco_run/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/busco/busco_run/main.nf b/target/nextflow/busco/busco_run/main.nf index a9e996a0..c3653fb2 100644 --- a/target/nextflow/busco/busco_run/main.nf +++ b/target/nextflow/busco/busco_run/main.nf @@ -3309,9 +3309,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/busco/busco_run", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/cutadapt/.config.vsh.yaml b/target/nextflow/cutadapt/.config.vsh.yaml index 62083dd9..81479325 100644 --- a/target/nextflow/cutadapt/.config.vsh.yaml +++ b/target/nextflow/cutadapt/.config.vsh.yaml @@ -740,9 +740,9 @@ build_info: output: "target/nextflow/cutadapt" executable: "target/nextflow/cutadapt/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/cutadapt/main.nf b/target/nextflow/cutadapt/main.nf index d22aff76..b22e8f50 100644 --- a/target/nextflow/cutadapt/main.nf +++ b/target/nextflow/cutadapt/main.nf @@ -3619,9 +3619,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/cutadapt", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/falco/.config.vsh.yaml b/target/nextflow/falco/.config.vsh.yaml index 7fa46dc3..f5f8b361 100644 --- a/target/nextflow/falco/.config.vsh.yaml +++ b/target/nextflow/falco/.config.vsh.yaml @@ -101,7 +101,7 @@ argument_groups: info: null direction: "input" - type: "boolean_true" - name: "--reverse_complliment" + name: "--reverse_complement" alternatives: - "-r" description: "[Falco only] The input is a \nreverse-complement. All modules will\ @@ -317,9 +317,9 @@ build_info: output: "target/nextflow/falco" executable: "target/nextflow/falco/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/falco/main.nf b/target/nextflow/falco/main.nf index f4b2bdb1..727bbd36 100644 --- a/target/nextflow/falco/main.nf +++ b/target/nextflow/falco/main.nf @@ -2919,7 +2919,7 @@ meta = [ }, { "type" : "boolean_true", - "name" : "--reverse_complliment", + "name" : "--reverse_complement", "alternatives" : [ "-r" ], @@ -3170,9 +3170,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/falco", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", @@ -3220,7 +3220,7 @@ $( if [ ! -z ${VIASH_PAR_ADAPTERS+x} ]; then echo "${VIASH_PAR_ADAPTERS}" | sed $( if [ ! -z ${VIASH_PAR_LIMITS+x} ]; then echo "${VIASH_PAR_LIMITS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_limits='&'#" ; else echo "# par_limits="; fi ) $( if [ ! -z ${VIASH_PAR_SUBSAMPLE+x} ]; then echo "${VIASH_PAR_SUBSAMPLE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_subsample='&'#" ; else echo "# par_subsample="; fi ) $( if [ ! -z ${VIASH_PAR_BISULFITE+x} ]; then echo "${VIASH_PAR_BISULFITE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_bisulfite='&'#" ; else echo "# par_bisulfite="; fi ) -$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLLIMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLLIMENT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_reverse_complliment='&'#" ; else echo "# par_reverse_complliment="; fi ) +$( if [ ! -z ${VIASH_PAR_REVERSE_COMPLEMENT+x} ]; then echo "${VIASH_PAR_REVERSE_COMPLEMENT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_reverse_complement='&'#" ; else echo "# par_reverse_complement="; fi ) $( if [ ! -z ${VIASH_PAR_OUTDIR+x} ]; then echo "${VIASH_PAR_OUTDIR}" | sed "s#'#'\\"'\\"'#g;s#.*#par_outdir='&'#" ; else echo "# par_outdir="; fi ) $( if [ ! -z ${VIASH_PAR_FORMAT+x} ]; then echo "${VIASH_PAR_FORMAT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_format='&'#" ; else echo "# par_format="; fi ) $( if [ ! -z ${VIASH_PAR_DATA_FILENAME+x} ]; then echo "${VIASH_PAR_DATA_FILENAME}" | sed "s#'#'\\"'\\"'#g;s#.*#par_data_filename='&'#" ; else echo "# par_data_filename="; fi ) @@ -3252,7 +3252,7 @@ set -eo pipefail [[ "\\$par_nogroup" == "false" ]] && unset par_nogroup [[ "\\$par_bisulfite" == "false" ]] && unset par_bisulfite -[[ "\\$par_reverse_compliment" == "false" ]] && unset par_reverse_compliment +[[ "\\$par_reverse_complement" == "false" ]] && unset par_reverse_complement IFS=";" read -ra input <<< \\$par_input @@ -3263,7 +3263,7 @@ IFS=";" read -ra input <<< \\$par_input \\${par_limits:+--limits "\\$par_limits"} \\\\ \\${par_subsample:+-subsample \\$par_subsample} \\\\ \\${par_bisulfite:+-bisulfite} \\\\ - \\${par_reverse_compliment:+-reverse-compliment} \\\\ + \\${par_reverse_complement:+-reverse-complement} \\\\ \\${par_outdir:+--outdir "\\$par_outdir"} \\\\ \\${par_format:+--format "\\$par_format"} \\\\ \\${par_data_filename:+-data-filename "\\$par_data_filename"} \\\\ diff --git a/target/nextflow/falco/nextflow_schema.json b/target/nextflow/falco/nextflow_schema.json index 22f431e3..b27a73a8 100644 --- a/target/nextflow/falco/nextflow_schema.json +++ b/target/nextflow/falco/nextflow_schema.json @@ -96,7 +96,7 @@ , - "reverse_complliment": { + "reverse_complement": { "type": "boolean", "description": "Type: `boolean_true`, default: `false`. [Falco only] The input is a \nreverse-complement", diff --git a/target/nextflow/fastp/.config.vsh.yaml b/target/nextflow/fastp/.config.vsh.yaml index 4b968633..cc88d9b3 100644 --- a/target/nextflow/fastp/.config.vsh.yaml +++ b/target/nextflow/fastp/.config.vsh.yaml @@ -1083,9 +1083,9 @@ build_info: output: "target/nextflow/fastp" executable: "target/nextflow/fastp/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fastp/main.nf b/target/nextflow/fastp/main.nf index 82851164..9962ea52 100644 --- a/target/nextflow/fastp/main.nf +++ b/target/nextflow/fastp/main.nf @@ -4023,9 +4023,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fastp", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/fastqc/.config.vsh.yaml b/target/nextflow/fastqc/.config.vsh.yaml index 7504fd74..80169b93 100644 --- a/target/nextflow/fastqc/.config.vsh.yaml +++ b/target/nextflow/fastqc/.config.vsh.yaml @@ -340,9 +340,9 @@ build_info: output: "target/nextflow/fastqc" executable: "target/nextflow/fastqc/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fastqc/main.nf b/target/nextflow/fastqc/main.nf index c86dd195..dc786da2 100644 --- a/target/nextflow/fastqc/main.nf +++ b/target/nextflow/fastqc/main.nf @@ -3182,9 +3182,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fastqc", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/featurecounts/.config.vsh.yaml b/target/nextflow/featurecounts/.config.vsh.yaml index 54234068..baa220c5 100644 --- a/target/nextflow/featurecounts/.config.vsh.yaml +++ b/target/nextflow/featurecounts/.config.vsh.yaml @@ -645,9 +645,9 @@ build_info: output: "target/nextflow/featurecounts" executable: "target/nextflow/featurecounts/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/featurecounts/main.nf b/target/nextflow/featurecounts/main.nf index b4e99bbd..7a8ad52c 100644 --- a/target/nextflow/featurecounts/main.nf +++ b/target/nextflow/featurecounts/main.nf @@ -3549,9 +3549,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/featurecounts", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/fq_subsample/.config.vsh.yaml b/target/nextflow/fq_subsample/.config.vsh.yaml index ad7ed7cd..7c2d749b 100644 --- a/target/nextflow/fq_subsample/.config.vsh.yaml +++ b/target/nextflow/fq_subsample/.config.vsh.yaml @@ -190,9 +190,9 @@ build_info: output: "target/nextflow/fq_subsample" executable: "target/nextflow/fq_subsample/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/fq_subsample/main.nf b/target/nextflow/fq_subsample/main.nf index 89e019ea..6b4e1ae1 100644 --- a/target/nextflow/fq_subsample/main.nf +++ b/target/nextflow/fq_subsample/main.nf @@ -3032,9 +3032,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fq_subsample", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/gffread/.config.vsh.yaml b/target/nextflow/gffread/.config.vsh.yaml index 47f9a718..c5d2d7d3 100644 --- a/target/nextflow/gffread/.config.vsh.yaml +++ b/target/nextflow/gffread/.config.vsh.yaml @@ -685,9 +685,9 @@ build_info: output: "target/nextflow/gffread" executable: "target/nextflow/gffread/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/gffread/main.nf b/target/nextflow/gffread/main.nf index ac99b179..efa36393 100644 --- a/target/nextflow/gffread/main.nf +++ b/target/nextflow/gffread/main.nf @@ -3606,9 +3606,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/gffread", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml index 9f35eea6..58e07998 100644 --- a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml @@ -218,9 +218,9 @@ build_info: output: "target/nextflow/kallisto/kallisto_index" executable: "target/nextflow/kallisto/kallisto_index/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/kallisto/kallisto_index/main.nf b/target/nextflow/kallisto/kallisto_index/main.nf index c43cf700..0a5fd9ef 100644 --- a/target/nextflow/kallisto/kallisto_index/main.nf +++ b/target/nextflow/kallisto/kallisto_index/main.nf @@ -3071,9 +3071,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/kallisto/kallisto_index", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml index 725092c0..787d53f3 100644 --- a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml @@ -234,9 +234,9 @@ build_info: output: "target/nextflow/kallisto/kallisto_quant" executable: "target/nextflow/kallisto/kallisto_quant/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/kallisto/kallisto_quant/main.nf b/target/nextflow/kallisto/kallisto_quant/main.nf index 85e094f0..7a447705 100644 --- a/target/nextflow/kallisto/kallisto_quant/main.nf +++ b/target/nextflow/kallisto/kallisto_quant/main.nf @@ -3092,9 +3092,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/kallisto/kallisto_quant", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml b/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml index 36be6d57..ddcec3e4 100644 --- a/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml +++ b/target/nextflow/lofreq/lofreq_call/.config.vsh.yaml @@ -507,9 +507,9 @@ build_info: output: "target/nextflow/lofreq/lofreq_call" executable: "target/nextflow/lofreq/lofreq_call/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/lofreq/lofreq_call/main.nf b/target/nextflow/lofreq/lofreq_call/main.nf index 9afd8172..042937c9 100644 --- a/target/nextflow/lofreq/lofreq_call/main.nf +++ b/target/nextflow/lofreq/lofreq_call/main.nf @@ -3414,9 +3414,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/lofreq/lofreq_call", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml b/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml index f61689de..c11b0bfc 100644 --- a/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml +++ b/target/nextflow/lofreq/lofreq_indelqual/.config.vsh.yaml @@ -215,9 +215,9 @@ build_info: output: "target/nextflow/lofreq/lofreq_indelqual" executable: "target/nextflow/lofreq/lofreq_indelqual/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/lofreq/lofreq_indelqual/main.nf b/target/nextflow/lofreq/lofreq_indelqual/main.nf index 9832fc85..9e54eb45 100644 --- a/target/nextflow/lofreq/lofreq_indelqual/main.nf +++ b/target/nextflow/lofreq/lofreq_indelqual/main.nf @@ -3077,9 +3077,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/lofreq/lofreq_indelqual", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/multiqc/.config.vsh.yaml b/target/nextflow/multiqc/.config.vsh.yaml index 561cf789..2dd9867f 100644 --- a/target/nextflow/multiqc/.config.vsh.yaml +++ b/target/nextflow/multiqc/.config.vsh.yaml @@ -456,9 +456,9 @@ build_info: output: "target/nextflow/multiqc" executable: "target/nextflow/multiqc/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/multiqc/main.nf b/target/nextflow/multiqc/main.nf index d280a678..07d1a308 100644 --- a/target/nextflow/multiqc/main.nf +++ b/target/nextflow/multiqc/main.nf @@ -3366,9 +3366,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/multiqc", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/pear/.config.vsh.yaml b/target/nextflow/pear/.config.vsh.yaml index a23091bc..36a077c1 100644 --- a/target/nextflow/pear/.config.vsh.yaml +++ b/target/nextflow/pear/.config.vsh.yaml @@ -398,9 +398,9 @@ build_info: output: "target/nextflow/pear" executable: "target/nextflow/pear/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/pear/main.nf b/target/nextflow/pear/main.nf index 1801657e..f802f4d6 100644 --- a/target/nextflow/pear/main.nf +++ b/target/nextflow/pear/main.nf @@ -3259,9 +3259,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/pear", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml b/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml index 6ea24d8d..523044e1 100644 --- a/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml +++ b/target/nextflow/qualimap/qualimap_rnaseq/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/nextflow/qualimap/qualimap_rnaseq" executable: "target/nextflow/qualimap/qualimap_rnaseq/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/qualimap/qualimap_rnaseq/main.nf b/target/nextflow/qualimap/qualimap_rnaseq/main.nf index 7c48651a..95834759 100644 --- a/target/nextflow/qualimap/qualimap_rnaseq/main.nf +++ b/target/nextflow/qualimap/qualimap_rnaseq/main.nf @@ -3129,9 +3129,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/qualimap/qualimap_rnaseq", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml index 978be96a..770bd1e2 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -852,9 +852,9 @@ build_info: output: "target/nextflow/rsem/rsem_calculate_expression" executable: "target/nextflow/rsem/rsem_calculate_expression/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rsem/rsem_calculate_expression/main.nf b/target/nextflow/rsem/rsem_calculate_expression/main.nf index 6bfbbb75..9f86e055 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/main.nf +++ b/target/nextflow/rsem/rsem_calculate_expression/main.nf @@ -3661,9 +3661,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rsem/rsem_calculate_expression", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml b/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml index 1bb494ea..c2558d42 100644 --- a/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml @@ -416,9 +416,9 @@ build_info: output: "target/nextflow/rsem/rsem_prepare_reference" executable: "target/nextflow/rsem/rsem_prepare_reference/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/rsem/rsem_prepare_reference/main.nf b/target/nextflow/rsem/rsem_prepare_reference/main.nf index 93b8c9a7..6d73a041 100644 --- a/target/nextflow/rsem/rsem_prepare_reference/main.nf +++ b/target/nextflow/rsem/rsem_prepare_reference/main.nf @@ -3245,9 +3245,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/rsem/rsem_prepare_reference", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/salmon/salmon_index/.config.vsh.yaml b/target/nextflow/salmon/salmon_index/.config.vsh.yaml index 64165322..d9213eab 100644 --- a/target/nextflow/salmon/salmon_index/.config.vsh.yaml +++ b/target/nextflow/salmon/salmon_index/.config.vsh.yaml @@ -277,9 +277,9 @@ build_info: output: "target/nextflow/salmon/salmon_index" executable: "target/nextflow/salmon/salmon_index/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/salmon/salmon_index/main.nf b/target/nextflow/salmon/salmon_index/main.nf index aa711274..8f2a6ff3 100644 --- a/target/nextflow/salmon/salmon_index/main.nf +++ b/target/nextflow/salmon/salmon_index/main.nf @@ -3129,9 +3129,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/salmon/salmon_index", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/salmon/salmon_quant/.config.vsh.yaml b/target/nextflow/salmon/salmon_quant/.config.vsh.yaml index 20dae8e1..32d92d78 100644 --- a/target/nextflow/salmon/salmon_quant/.config.vsh.yaml +++ b/target/nextflow/salmon/salmon_quant/.config.vsh.yaml @@ -1173,9 +1173,9 @@ build_info: output: "target/nextflow/salmon/salmon_quant" executable: "target/nextflow/salmon/salmon_quant/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/salmon/salmon_quant/main.nf b/target/nextflow/salmon/salmon_quant/main.nf index 7303750d..10517ead 100644 --- a/target/nextflow/salmon/salmon_quant/main.nf +++ b/target/nextflow/salmon/salmon_quant/main.nf @@ -3964,9 +3964,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/salmon/salmon_quant", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_collate/.config.vsh.yaml b/target/nextflow/samtools/samtools_collate/.config.vsh.yaml index c4a5aedc..5e77fd0a 100644 --- a/target/nextflow/samtools/samtools_collate/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_collate/.config.vsh.yaml @@ -264,9 +264,9 @@ build_info: output: "target/nextflow/samtools/samtools_collate" executable: "target/nextflow/samtools/samtools_collate/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_collate/main.nf b/target/nextflow/samtools/samtools_collate/main.nf index 05486942..a4526533 100644 --- a/target/nextflow/samtools/samtools_collate/main.nf +++ b/target/nextflow/samtools/samtools_collate/main.nf @@ -3140,9 +3140,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_collate", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml b/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml index 0fb7c8c4..abd1852b 100644 --- a/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_faidx/.config.vsh.yaml @@ -243,9 +243,9 @@ build_info: output: "target/nextflow/samtools/samtools_faidx" executable: "target/nextflow/samtools/samtools_faidx/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_faidx/main.nf b/target/nextflow/samtools/samtools_faidx/main.nf index 9ba55633..e1a03382 100644 --- a/target/nextflow/samtools/samtools_faidx/main.nf +++ b/target/nextflow/samtools/samtools_faidx/main.nf @@ -3112,9 +3112,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_faidx", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml b/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml index 18b8a749..6a30688b 100644 --- a/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_fasta/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/nextflow/samtools/samtools_fasta" executable: "target/nextflow/samtools/samtools_fasta/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_fasta/main.nf b/target/nextflow/samtools/samtools_fasta/main.nf index c0d0e847..d99f24d2 100644 --- a/target/nextflow/samtools/samtools_fasta/main.nf +++ b/target/nextflow/samtools/samtools_fasta/main.nf @@ -3304,9 +3304,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_fasta", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml b/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml index 46cefae2..d4a96f95 100644 --- a/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_fastq/.config.vsh.yaml @@ -433,9 +433,9 @@ build_info: output: "target/nextflow/samtools/samtools_fastq" executable: "target/nextflow/samtools/samtools_fastq/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_fastq/main.nf b/target/nextflow/samtools/samtools_fastq/main.nf index aa6f2ede..00d015b8 100644 --- a/target/nextflow/samtools/samtools_fastq/main.nf +++ b/target/nextflow/samtools/samtools_fastq/main.nf @@ -3304,9 +3304,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_fastq", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml b/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml index 1f7243c9..07f76758 100644 --- a/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_flagstat/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/nextflow/samtools/samtools_flagstat" executable: "target/nextflow/samtools/samtools_flagstat/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_flagstat/main.nf b/target/nextflow/samtools/samtools_flagstat/main.nf index 0bcf12fc..92aa513b 100644 --- a/target/nextflow/samtools/samtools_flagstat/main.nf +++ b/target/nextflow/samtools/samtools_flagstat/main.nf @@ -3028,9 +3028,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_flagstat", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml b/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml index 199bf423..ad6186ad 100644 --- a/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_idxstats/.config.vsh.yaml @@ -183,9 +183,9 @@ build_info: output: "target/nextflow/samtools/samtools_idxstats" executable: "target/nextflow/samtools/samtools_idxstats/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_idxstats/main.nf b/target/nextflow/samtools/samtools_idxstats/main.nf index c5cf2a27..363a860e 100644 --- a/target/nextflow/samtools/samtools_idxstats/main.nf +++ b/target/nextflow/samtools/samtools_idxstats/main.nf @@ -3040,9 +3040,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_idxstats", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_index/.config.vsh.yaml b/target/nextflow/samtools/samtools_index/.config.vsh.yaml index 1a62fd9c..bac115a9 100644 --- a/target/nextflow/samtools/samtools_index/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_index/.config.vsh.yaml @@ -189,9 +189,9 @@ build_info: output: "target/nextflow/samtools/samtools_index" executable: "target/nextflow/samtools/samtools_index/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_index/main.nf b/target/nextflow/samtools/samtools_index/main.nf index 9ee21742..ec3720fe 100644 --- a/target/nextflow/samtools/samtools_index/main.nf +++ b/target/nextflow/samtools/samtools_index/main.nf @@ -3053,9 +3053,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_index", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_sort/.config.vsh.yaml b/target/nextflow/samtools/samtools_sort/.config.vsh.yaml index 2ed24b05..adfc63ee 100644 --- a/target/nextflow/samtools/samtools_sort/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_sort/.config.vsh.yaml @@ -332,9 +332,9 @@ build_info: output: "target/nextflow/samtools/samtools_sort" executable: "target/nextflow/samtools/samtools_sort/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_sort/main.nf b/target/nextflow/samtools/samtools_sort/main.nf index bfc7d177..b3c1d0c0 100644 --- a/target/nextflow/samtools/samtools_sort/main.nf +++ b/target/nextflow/samtools/samtools_sort/main.nf @@ -3225,9 +3225,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_sort", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_stats/.config.vsh.yaml b/target/nextflow/samtools/samtools_stats/.config.vsh.yaml index c2e49f66..3a38871c 100644 --- a/target/nextflow/samtools/samtools_stats/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_stats/.config.vsh.yaml @@ -401,9 +401,9 @@ build_info: output: "target/nextflow/samtools/samtools_stats" executable: "target/nextflow/samtools/samtools_stats/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_stats/main.nf b/target/nextflow/samtools/samtools_stats/main.nf index 18e2c8d9..504fb2a6 100644 --- a/target/nextflow/samtools/samtools_stats/main.nf +++ b/target/nextflow/samtools/samtools_stats/main.nf @@ -3295,9 +3295,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_stats", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/samtools/samtools_view/.config.vsh.yaml b/target/nextflow/samtools/samtools_view/.config.vsh.yaml index e9f7f987..fd03b187 100644 --- a/target/nextflow/samtools/samtools_view/.config.vsh.yaml +++ b/target/nextflow/samtools/samtools_view/.config.vsh.yaml @@ -665,9 +665,9 @@ build_info: output: "target/nextflow/samtools/samtools_view" executable: "target/nextflow/samtools/samtools_view/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/samtools/samtools_view/main.nf b/target/nextflow/samtools/samtools_view/main.nf index 713e5beb..6b003932 100644 --- a/target/nextflow/samtools/samtools_view/main.nf +++ b/target/nextflow/samtools/samtools_view/main.nf @@ -3476,9 +3476,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/samtools/samtools_view", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml b/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml index 5cffe1c9..d9c5eb1c 100644 --- a/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml +++ b/target/nextflow/seqtk/seqtk_sample/.config.vsh.yaml @@ -173,9 +173,9 @@ build_info: output: "target/nextflow/seqtk/seqtk_sample" executable: "target/nextflow/seqtk/seqtk_sample/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/seqtk/seqtk_sample/main.nf b/target/nextflow/seqtk/seqtk_sample/main.nf index e1ce86b4..ca550fcd 100644 --- a/target/nextflow/seqtk/seqtk_sample/main.nf +++ b/target/nextflow/seqtk/seqtk_sample/main.nf @@ -3030,9 +3030,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/seqtk/seqtk_sample", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml b/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml index 4072a8ff..08ef61ea 100644 --- a/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml +++ b/target/nextflow/seqtk/seqtk_subseq/.config.vsh.yaml @@ -196,9 +196,9 @@ build_info: output: "target/nextflow/seqtk/seqtk_subseq" executable: "target/nextflow/seqtk/seqtk_subseq/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/seqtk/seqtk_subseq/main.nf b/target/nextflow/seqtk/seqtk_subseq/main.nf index 92908aa6..0d699b7a 100644 --- a/target/nextflow/seqtk/seqtk_subseq/main.nf +++ b/target/nextflow/seqtk/seqtk_subseq/main.nf @@ -3060,9 +3060,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/seqtk/seqtk_subseq", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/sortmerna/.config.vsh.yaml b/target/nextflow/sortmerna/.config.vsh.yaml index 09a52a19..505c1b06 100644 --- a/target/nextflow/sortmerna/.config.vsh.yaml +++ b/target/nextflow/sortmerna/.config.vsh.yaml @@ -591,9 +591,9 @@ build_info: output: "target/nextflow/sortmerna" executable: "target/nextflow/sortmerna/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/sortmerna/main.nf b/target/nextflow/sortmerna/main.nf index 5aa48db9..9f793e5e 100644 --- a/target/nextflow/sortmerna/main.nf +++ b/target/nextflow/sortmerna/main.nf @@ -3456,9 +3456,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/sortmerna", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/star/star_align_reads/.config.vsh.yaml b/target/nextflow/star/star_align_reads/.config.vsh.yaml index c538a1b2..f0559c88 100644 --- a/target/nextflow/star/star_align_reads/.config.vsh.yaml +++ b/target/nextflow/star/star_align_reads/.config.vsh.yaml @@ -2663,9 +2663,9 @@ build_info: output: "target/nextflow/star/star_align_reads" executable: "target/nextflow/star/star_align_reads/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/star/star_align_reads/main.nf b/target/nextflow/star/star_align_reads/main.nf index 659240ce..f98dc507 100644 --- a/target/nextflow/star/star_align_reads/main.nf +++ b/target/nextflow/star/star_align_reads/main.nf @@ -5943,9 +5943,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/star/star_align_reads", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/star/star_genome_generate/.config.vsh.yaml b/target/nextflow/star/star_genome_generate/.config.vsh.yaml index 0b3ecce4..0750c83c 100644 --- a/target/nextflow/star/star_genome_generate/.config.vsh.yaml +++ b/target/nextflow/star/star_genome_generate/.config.vsh.yaml @@ -333,9 +333,9 @@ build_info: output: "target/nextflow/star/star_genome_generate" executable: "target/nextflow/star/star_genome_generate/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/star/star_genome_generate/main.nf b/target/nextflow/star/star_genome_generate/main.nf index ac58738c..275f1c7f 100644 --- a/target/nextflow/star/star_genome_generate/main.nf +++ b/target/nextflow/star/star_genome_generate/main.nf @@ -3195,9 +3195,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/star/star_genome_generate", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/trimgalore/.config.vsh.yaml b/target/nextflow/trimgalore/.config.vsh.yaml new file mode 100644 index 00000000..b1105872 --- /dev/null +++ b/target/nextflow/trimgalore/.config.vsh.yaml @@ -0,0 +1,797 @@ +name: "trimgalore" +version: "main" +authors: +- name: "Sai Nirmayi Yasa" + roles: + - "author" + - "maintainer" + info: + links: + email: "nirmayi@data-intuitive.com" + github: "sainirmayi" + linkedin: "sai-nirmayi-yasa" + organizations: + - name: "Data Intuitive" + href: "https://www.data-intuitive.com" + role: "Junior Bioinformatics Researcher" +argument_groups: +- name: "Input" + arguments: + - type: "file" + name: "--input" + description: "Input files. Note that paired-end files need to be supplied in a\ + \ pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz" + info: null + example: + - "sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq" + must_exist: true + create_parent: true + required: true + direction: "input" + multiple: true + multiple_sep: ";" +- name: "Trimming options" + arguments: + - type: "integer" + name: "--quality" + alternatives: + - "-q" + description: "Trim low-quality ends (below the specified Phred score) from reads\ + \ in addition to adapter removal. For RRBS samples, quality trimming will be\ + \ performed first, and adapter trimming is carried in a second round. Other\ + \ files are quality and adapter trimmed in a single pass. The algorithm is the\ + \ same as the one used by BWA (Subtract INT from all qualities; compute partial\ + \ sums from all indices to the end of the sequence; cut sequence at the index\ + \ at which the sum is minimal)." + info: null + example: + - 20 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--phred33" + description: "Instructs Cutadapt to use ASCII+33 quality scores as Phred scores\ + \ (Sanger/Illumina 1.9+ encoding) for quality trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--phred64" + description: "Instructs Cutadapt to use ASCII+64 quality scores as Phred scores\ + \ (Illumina 1.5 encoding) for quality trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--fastqc" + description: "Run FastQC in the default mode on the FastQ file once trimming is\ + \ complete." + info: null + direction: "input" + - type: "string" + name: "--fastqc_args" + description: "Passes extra arguments (excluding files) to FastQC. If more than\ + \ one argument is to be passed to FastQC they must be in the form \"arg1 arg2\ + \ ...\". Passing extra arguments will automatically invoke FastQC, so --fastqc\ + \ does not have to be specified separately." + info: null + example: + - "--nogroup --noextract" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_contaminants" + description: "Specifies a non-default file which contains the list of contaminants\ + \ for FastQC to screen overrepresented sequences against. The file must contain\ + \ sets of named contaminants in the form name[tab]sequence. Lines prefixed with\ + \ a hash will be ignored." + info: null + example: + - "contaminants.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_adapters" + description: "Specifies a non-default file which contains the list of adapter\ + \ sequences which which FasstQC will explicity search against the library. The\ + \ file must contain sets of named adapters in the form name[tab]sequence. Lines\ + \ prefixed with a hash will be ignored." + info: null + example: + - "adapters.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--fastqc_limits" + description: "Specifies a non-default file which contains a set of criteria which\ + \ FastQC will use to determine the warn/error limits for the various modules.\ + \ This file can also be used to selectively remove some modules from the output\ + \ all together. The format needs to mirror the default limits.txt file found\ + \ in the Configuration folder." + info: null + example: + - "limits.txt" + must_exist: true + create_parent: true + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--adapter" + alternatives: + - "-a" + description: "Adapter sequence to be trimmed. If not specified explicitly, Trim\ + \ Galore will try to auto-detect whether the Illumina universal, Nextera transposase\ + \ or Illumina small RNA adapter sequence was used. A single base may also be\ + \ given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. \nAt a special request,\ + \ multiple adapters can also be specified like so: \n -a \" AGCTCCCG -a TTTCATTATAT\ + \ -a TTTATTCGGATTTAT\" -a2 \" AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT\", \nor\ + \ so:\n -a \"file:../multiple_adapters.fa\" -a2 \"file:../different_adapters.fa\"\ + \nPotentially in conjucntion with the parameter \"-n 3\" to trim all adapters.\ + \ \n" + info: null + example: + - "AGCTCCCG" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--adapter2" + alternatives: + - "-a2" + description: "Optional adapter sequence to be trimmed off read 2 of paired-end\ + \ files. This option requires '--paired' to be specified as well. If the libraries\ + \ to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5'\ + \ adapter automatically (GATCGTCGGACT). A single base may also be given as e.g.\ + \ -a2 A{10}, to be expanded to -a2 AAAAAAAAAA." + info: null + example: + - "AGCTCCCG" + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--illumina" + description: "Adapter sequence to be trimmed is the first 13bp of the Illumina\ + \ universal adapter 'AGATCGGAAGAGC' instead of the default auto-detection of\ + \ adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--stranded_illumina" + description: "Adapter sequence to be trimmed is the first 13bp of the Illumina\ + \ stranded mRNA or Total RNA adapter 'ACTGTCTCTTATA' instead of the default\ + \ auto-detection of adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--nextera" + description: "Adapter sequence to be trimmed is the first 12bp of the Nextera\ + \ adapter 'CTGTCTCTTATA' instead of the default auto-detection of adapter sequence." + info: null + direction: "input" + - type: "boolean_true" + name: "--small_rna" + description: "Adapter sequence to be trimmed is the first 12bp of the Illumina\ + \ Small RNA 3' Adapter 'TGGAATTCTCGG' instead of the default auto-detection\ + \ of adapter sequence. Selecting to trim smallRNA adapters will also lower the\ + \ --length value to 18bp. If the smallRNA libraries are paired-end then a automatically\ + \ (GATCGTCGGACT) unless -a 2 had been defined explicitly." + info: null + direction: "input" + - type: "integer" + name: "--consider_already_trimmed" + description: "During adapter auto-detection, the limit set by this argument allows\ + \ the user to set a threshold up to which the file is considered already adapter-trimmed.\ + \ If no adapter sequence exceeds this threshold, no additional adapter trimming\ + \ will be performed (technically, the adapter is set to '-a X'). Quality trimming\ + \ is still performed as usual." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--max_length" + description: "Discard reads that are longer than the specified value after trimming.\ + \ This is only advised for smallRNA sequencing to remove non-small RNA sequences." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--stringency" + description: "Overlap with adapter sequence required to trim a sequence. Defaults\ + \ to a very stringent setting of 1, i.e. even a single bp of overlapping sequence\ + \ will be trimmed off from the 3' end of any read." + info: null + example: + - 1 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "double" + name: "--error_rate" + alternatives: + - "-e" + description: "Maximum allowed error rate (no. of errors divided by the length\ + \ of the matching region)" + info: null + example: + - 0.1 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--gzip" + description: "Compress the output file with GZIP. If the input files are GZIP-compressed\ + \ the output files will automatically be GZIP compressed as well. As of v0.2.8\ + \ the compression will take place on the fly." + info: null + direction: "input" + - type: "boolean_true" + name: "--dont_gzip" + description: "Output files won't be compressed with GZIP. This option overrides\ + \ --gzip." + info: null + direction: "input" + - type: "integer" + name: "--length" + description: "Discard reads that became shorter than the specified length because\ + \ of either quality or adapter trimming. A value of '0' effectively disables\ + \ this behaviour. For paired-end files, both reads of a read-pair need to be\ + \ longer than the specified length to be printed out to validated paired-end\ + \ files. If only one read became too short there is the possibility of keeping\ + \ such unpaired single-end reads using the --retain_unpaired option." + info: null + example: + - 20 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--max_n" + description: "The total number of Ns a read may contain before it will be removed\ + \ altogether.In a paired-end setting, either read exceeding this limit will\ + \ result in the entire pair being removed from the trimmed output files. If\ + \ COUNT is a number between 0 and 1, it is interpreted as a fraction of the\ + \ read length." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--trim_n" + description: "Removes Ns from either side of the read. This option does currently\ + \ not work in RRBS mode." + info: null + direction: "input" + - type: "boolean_true" + name: "--no_report_file" + description: "If specified no report file will be generated." + info: null + direction: "input" + - type: "boolean_true" + name: "--suppress_warn" + description: "If specified any output to STDOUT or STDERR will be suppressed." + info: null + direction: "input" + - type: "integer" + name: "--clip_R1" + description: "Instructs TrimGalore to remove given number of bp from the 5' end\ + \ of read 1 (or single-end reads). This may be useful if the qualities were\ + \ very poor, or if there is some sort of unwanted bias at the 5' end." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--clip_R2" + description: "Instructs TrimGalore to remove given number bp from the 5' end of\ + \ read 2 (paired-end reads only). This may be useful if the qualities were very\ + \ poor, or if there is some sort of unwanted bias at the 5' end. For paired-end\ + \ BS-Seq, it is recommended to remove the first few bp because the end-repair\ + \ reaction may introduce a bias towards low methylation." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--three_prime_clip_R1" + description: "Instructs Trim Galore to remove spacified number of bp from the\ + \ 3' end of read 1 (or single-end reads) AFTER adapter/quality trimming has\ + \ been performed. This may remove some bias from the 3' end that is not directly\ + \ related to adapter sequence or basecall quality." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--three_prime_clip_R2" + description: "Instructs Trim Galore to remove bp from the 3' end of read\ + \ 2 AFTER adapter/quality trimming has been performed. This may remove some\ + \ unwanted bias from the 3' end that is not directly related to adapter sequence\ + \ or basecall quality." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--nextseq" + description: "This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt,\ + \ which will set a quality cutoff (that is normally given with -q instead),\ + \ but qualities of G bases are ignored. This trimming is in common for the NextSeq-\ + \ and NovaSeq-platforms, where basecalls without any signal are called as high-quality\ + \ G bases. This is mutually exlusive with '-q INT'." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "string" + name: "--basename" + description: "Use specified name (PREFERRED_NAME) as the basename for output files,\ + \ instead of deriving the filenames from the input files. Single-end data would\ + \ be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz)\ + \ and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Specific trimming options without adapter/quality trimming" + arguments: + - type: "integer" + name: "--hardtrim5" + description: "Instead of performing adapter-/quality trimming, this option will\ + \ simply hard-trim sequences to bp at the 5'-end. Once hard-trimming of\ + \ files is complete, Trim Galore will exit. Hard-trimmed output files will end\ + \ in ._5prime.fq(.gz)." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--hardtrim3" + description: "Instead of performing adapter-/quality trimming, this option will\ + \ simply hard-trim sequences to bp at the 3'-end. Once hard-trimming of\ + \ files is complete, Trim Galore will exit. Hard-trimmed output files will end\ + \ in ._3prime.fq(.gz)." + info: null + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "boolean_true" + name: "--clock" + description: "In this mode, reads are trimmed in a specific way that is currently\ + \ used for the Mouse Epigenetic Clock." + info: null + direction: "input" + - type: "boolean_true" + name: "--polyA" + description: "This is a new, still experimental, trimming mode to identify and\ + \ remove poly-A tails from sequences. When --polyA is selected, Trim Galore\ + \ attempts to identify from the first supplied sample whether sequences contain\ + \ more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'. This determines\ + \ if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA\ + \ or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary\ + \ base from the start of the reads. The auto-detection uses a default of A{20}\ + \ for Read1 (3'-end trimming) and T{150} for Read2 (5'-end trimming). These\ + \ values may be changed manually using the options -a and -a2. In addition to\ + \ trimming the sequences, white spaces are replaced with _ and it records in\ + \ the read ID how many bases were trimmed so it can later be used to identify\ + \ PolyA trimmed sequences. This is currently done by writing tags to both the\ + \ start (\"32:A:\") and end (\"_PolyA:32\") of the reads. The poly-A trimming\ + \ mode expects that sequences were both adapter and quality before looking\ + \ for Poly-A tails, and it is the user's responsibility to carry out an initial\ + \ round of trimming." + info: null + direction: "input" + - type: "boolean_true" + name: "--implicon" + description: "This is a special mode of operation for paired-end data, such as\ + \ required for the IMPLICON method, where a UMI sequence is getting transferred\ + \ from the start of Read 2 to the readID of both reads. Following this, Trim\ + \ Galore will exit. In it's current implementation, the UMI carrying reads come\ + \ in the following format\n Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ + \ 3'\n Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5'\nWhere UUUUUUUU is\ + \ a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual\ + \ fragment to be sequenced. The UMI of Read 2 (R2) is written into the read\ + \ ID of both reads and removed from the actual sequence.\n" + info: null + direction: "input" +- name: "RRBS-specific options" + arguments: + - type: "boolean_true" + name: "--rrbs" + description: "Specifies that the input file was an MspI digested RRBS sample (recognition\ + \ site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed\ + \ will have a further 2 bp removed from their 3' end. Sequences which were merely\ + \ trimmed because of poor quality will not be shortened further. Read 2 of paired-end\ + \ libraries will in addition have the first 2 bp removed from the 5' end (by\ + \ setting '--clip_r2 2'). This is to avoid using artificial methylation calls\ + \ from the filled-in cytosine positions close to the 3' MspI site in sequenced\ + \ fragments. This option is not recommended for users of the Tecan Ovation RRBS\ + \ Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below)." + info: null + direction: "input" + - type: "boolean_true" + name: "--non_directional" + description: "Selecting this option for non-directional RRBS libraries will screen\ + \ quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read and,\ + \ if found, removes the first two basepairs. Like with the option '--rrbs' this\ + \ avoids using cytosine positions that were filled-in during the end-repair\ + \ step. '--non_directional' requires '--rrbs' to be specified as well. Note\ + \ that this option does not set '--clip_r2 2' in paired-end mode." + info: null + direction: "input" + - type: "boolean_true" + name: "--keep" + description: "Keep the quality trimmed intermediate file." + info: null + direction: "input" +- name: "Paired-end specific options" + arguments: + - type: "boolean_true" + name: "--paired" + description: "This option performs length trimming of quality/adapter/RRBS trimmed\ + \ reads for paired-end files. To pass the validation test, both sequences of\ + \ a sequence pair are required to have a certain minimum length which is governed\ + \ by the option --length (see above). If only one read passes this length threshold\ + \ the other read can be rescued (see option --retain_unpaired). Using this option\ + \ lets you discard too short read pairs without disturbing the sequence-by-sequence\ + \ order of FastQ files which is required by many aligners. Trim Galore expects\ + \ paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq\ + \ SRR2_1.fq.gz SRR2_2.fq.gz ... ." + info: null + direction: "input" + - type: "boolean_true" + name: "--retain_unpaired" + description: "If only one of the two paired-end reads became too short, the longer\ + \ read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq' output\ + \ files. The length cutoff for unpaired single-end reads is governed by the\ + \ parameters -r1/--length_1 and -r2/--length_2." + info: null + direction: "input" + - type: "integer" + name: "--length_1" + alternatives: + - "-r1" + description: "Unpaired single-end read length cutoff needed for read 1 to be written\ + \ to '.unpaired_1.fq' output file. These reads may be mapped in single-end mode." + info: null + example: + - 35 + required: false + direction: "input" + multiple: false + multiple_sep: ";" + - type: "integer" + name: "--length_2" + alternatives: + - "-r2" + description: "Unpaired single-end read length cutoff needed for read 2 to be written\ + \ to '.unpaired_2.fq' output file. These reads may be mapped in single-end mode." + info: null + example: + - 35 + required: false + direction: "input" + multiple: false + multiple_sep: ";" +- name: "Output" + arguments: + - type: "file" + name: "--output_dir" + alternatives: + - "-o" + description: "If specified all output will be written to this directory instead\ + \ of the current directory." + info: null + default: + - "trimmed_output" + must_exist: true + create_parent: true + required: true + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_r1" + description: "Output file for read 1. Only works when 1 file (single-end) or 2\ + \ files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_1.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_r2" + description: "Output file for read 2. Only works when 1 file (single-end) or 2\ + \ files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_2.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimming_report_r1" + description: "Trimming report for read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_1.trimming_report.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimming_report_r2" + description: "Trimming report for read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "read_2.trimming_report.txt" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_html_1" + description: "FastQC report for trimmed (single-end) reads (or read 1 for paired-end).\ + \ Only works when 1 file (single-end) or 2 files (paired-end) are specified,\ + \ but not for longer lists." + info: null + example: + - "read_1.fastqc.html" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_html_2" + description: "FastQC report for trimmed reads (read2 for paired-end). Only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + example: + - "read_2.fastqc.html" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_zip_1" + description: "FastQC results for trimmed (single-end) reads (or read 1 for paired-end).\ + \ Only works when 1 file (single-end) or 2 files (paired-end) are specified,\ + \ but not for longer lists." + info: null + example: + - "read_1.fastqc.zip" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--trimmed_fastqc_zip_2" + description: "FastQC results for trimmed reads (read2 for paired-end). Only works\ + \ when 1 file (single-end) or 2 files (paired-end) are specified, but not for\ + \ longer lists." + info: null + example: + - "read_2.fastqc.zip" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--unpaired_r1" + description: "Output file for unpired read 1. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "unpaired_read_1.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" + - type: "file" + name: "--unpaired_r2" + description: "Output file for unpaired read 2. Only works when 1 file (single-end)\ + \ or 2 files (paired-end) are specified, but not for longer lists." + info: null + example: + - "unpaired_read_2.fastq" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" +resources: +- type: "bash_script" + path: "script.sh" + is_executable: true +description: "A wrapper tool around Cutadapt and FastQC to consistently apply quality\ + \ and adapter trimming to FastQ files. \n" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true +info: null +status: "enabled" +requirements: + commands: + - "ps" +keywords: +- "trimming" +- "adapters" +license: "GPL-3.0" +references: + doi: + - "10.5281/zenodo.7598955" +links: + repository: "https://github.com/FelixKrueger/TrimGalore" + homepage: "https://github.com/FelixKrueger/TrimGalore" + documentation: "https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md" +runners: +- type: "executable" + id: "executable" + docker_setup_strategy: "ifneedbepullelsecachedbuild" +- type: "nextflow" + id: "nextflow" + directives: + tag: "$id" + auto: + simplifyInput: true + simplifyOutput: false + transcript: false + publish: false + config: + labels: + mem1gb: "memory = 1000000000.B" + mem2gb: "memory = 2000000000.B" + mem5gb: "memory = 5000000000.B" + mem10gb: "memory = 10000000000.B" + mem20gb: "memory = 20000000000.B" + mem50gb: "memory = 50000000000.B" + mem100gb: "memory = 100000000000.B" + mem200gb: "memory = 200000000000.B" + mem500gb: "memory = 500000000000.B" + mem1tb: "memory = 1000000000000.B" + mem2tb: "memory = 2000000000000.B" + mem5tb: "memory = 5000000000000.B" + mem10tb: "memory = 10000000000000.B" + mem20tb: "memory = 20000000000000.B" + mem50tb: "memory = 50000000000000.B" + mem100tb: "memory = 100000000000000.B" + mem200tb: "memory = 200000000000000.B" + mem500tb: "memory = 500000000000000.B" + mem1gib: "memory = 1073741824.B" + mem2gib: "memory = 2147483648.B" + mem4gib: "memory = 4294967296.B" + mem8gib: "memory = 8589934592.B" + mem16gib: "memory = 17179869184.B" + mem32gib: "memory = 34359738368.B" + mem64gib: "memory = 68719476736.B" + mem128gib: "memory = 137438953472.B" + mem256gib: "memory = 274877906944.B" + mem512gib: "memory = 549755813888.B" + mem1tib: "memory = 1099511627776.B" + mem2tib: "memory = 2199023255552.B" + mem4tib: "memory = 4398046511104.B" + mem8tib: "memory = 8796093022208.B" + mem16tib: "memory = 17592186044416.B" + mem32tib: "memory = 35184372088832.B" + mem64tib: "memory = 70368744177664.B" + mem128tib: "memory = 140737488355328.B" + mem256tib: "memory = 281474976710656.B" + mem512tib: "memory = 562949953421312.B" + cpu1: "cpus = 1" + cpu2: "cpus = 2" + cpu5: "cpus = 5" + cpu10: "cpus = 10" + cpu20: "cpus = 20" + cpu50: "cpus = 50" + cpu100: "cpus = 100" + cpu200: "cpus = 200" + cpu500: "cpus = 500" + cpu1000: "cpus = 1000" + debug: false + container: "docker" +engines: +- type: "docker" + id: "docker" + image: "quay.io/biocontainers/trim-galore:0.6.10--hdfd78af_0" + target_registry: "images.viash-hub.com" + target_tag: "main" + namespace_separator: "/" + setup: + - type: "docker" + run: + - "echo \"TrimGalore: `trim_galore --version | sed -n 's/.*version\\s\\+\\([0-9]\\\ + +\\.[0-9]\\+\\.[0-9]\\+\\).*/\\1/p'`\" > /var/software_versions.txt\n" + entrypoint: [] + cmd: null +- type: "native" + id: "native" +build_info: + config: "src/trimgalore/config.vsh.yaml" + runner: "nextflow" + engine: "docker|native" + output: "target/nextflow/trimgalore" + executable: "target/nextflow/trimgalore/main.nf" + viash_version: "0.9.0" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" +package_config: + name: "biobox" + version: "main" + description: "A collection of bioinformatics tools for working with sequence data.\n" + info: null + viash_version: "0.9.0" + source: "src" + target: "target" + config_mods: + - ".requirements.commands := ['ps']\n" + - ".engines += { type: \"native\" }" + - ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'" + - ".engines[.type == 'docker'].target_tag := 'main'" + keywords: + - "bioinformatics" + - "modules" + - "sequencing" + license: "MIT" + organization: "vsh" + links: + repository: "https://github.com/viash-hub/biobox" + issue_tracker: "https://github.com/viash-hub/biobox/issues" diff --git a/target/nextflow/trimgalore/main.nf b/target/nextflow/trimgalore/main.nf new file mode 100644 index 00000000..eaf5975e --- /dev/null +++ b/target/nextflow/trimgalore/main.nf @@ -0,0 +1,4287 @@ +// trimgalore main +// +// This wrapper script is auto-generated by viash 0.9.0 and is thus a derivative +// work thereof. This software comes with ABSOLUTELY NO WARRANTY from Data +// Intuitive. +// +// The component may contain files which fall under a different license. The +// authors of this component should specify the license in the header of such +// files, or include a separate license file detailing the licenses of all included +// files. +// +// Component authors: +// * Sai Nirmayi Yasa (author, maintainer) + +//////////////////////////// +// VDSL3 helper functions // +//////////////////////////// + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_checkArgumentType.nf' +class UnexpectedArgumentTypeException extends Exception { + String errorIdentifier + String stage + String plainName + String expectedClass + String foundClass + + // ${key ? " in module '$key'" : ""}${id ? " id '$id'" : ""} + UnexpectedArgumentTypeException(String errorIdentifier, String stage, String plainName, String expectedClass, String foundClass) { + super("Error${errorIdentifier ? " $errorIdentifier" : ""}:${stage ? " $stage" : "" } argument '${plainName}' has the wrong type. " + + "Expected type: ${expectedClass}. Found type: ${foundClass}") + this.errorIdentifier = errorIdentifier + this.stage = stage + this.plainName = plainName + this.expectedClass = expectedClass + this.foundClass = foundClass + } +} + +/** + * Checks if the given value is of the expected type. If not, an exception is thrown. + * + * @param stage The stage of the argument (input or output) + * @param par The parameter definition + * @param value The value to check + * @param errorIdentifier The identifier to use in the error message + * @return The value, if it is of the expected type + * @throws UnexpectedArgumentTypeException If the value is not of the expected type +*/ +def _checkArgumentType(String stage, Map par, Object value, String errorIdentifier) { + // expectedClass will only be != null if value is not of the expected type + def expectedClass = null + def foundClass = null + + // todo: split if need be + + if (!par.required && value == null) { + expectedClass = null + } else if (par.multiple) { + if (value !instanceof Collection) { + value = [value] + } + + // split strings + value = value.collectMany{ val -> + if (val instanceof String) { + // collect() to ensure that the result is a List and not simply an array + val.split(par.multiple_sep).collect() + } else { + [val] + } + } + + // process globs + if (par.type == "file" && par.direction == "input") { + value = value.collect{ it instanceof String ? file(it, hidden: true) : it }.flatten() + } + + // check types of elements in list + try { + value = value.collect { listVal -> + _checkArgumentType(stage, par + [multiple: false], listVal, errorIdentifier) + } + } catch (UnexpectedArgumentTypeException e) { + expectedClass = "List[${e.expectedClass}]" + foundClass = "List[${e.foundClass}]" + } + } else if (par.type == "string") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else if (par.type == "integer") { + // cast to integer if need be + if (value instanceof String) { + try { + value = value.toInteger() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigInteger) { + value = value.intValue() + } + expectedClass = value instanceof Integer ? null : "Integer" + } else if (par.type == "long") { + // cast to long if need be + if (value instanceof String) { + try { + value = value.toLong() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof Integer) { + value = value.toLong() + } + expectedClass = value instanceof Long ? null : "Long" + } else if (par.type == "double") { + // cast to double if need be + if (value instanceof String) { + try { + value = value.toDouble() + } catch (NumberFormatException e) { + // do nothing + } + } + if (value instanceof java.math.BigDecimal) { + value = value.doubleValue() + } + if (value instanceof Float) { + value = value.toDouble() + } + expectedClass = value instanceof Double ? null : "Double" + } else if (par.type == "boolean" | par.type == "boolean_true" | par.type == "boolean_false") { + // cast to boolean if need be + if (value instanceof String) { + def valueLower = value.toLowerCase() + if (valueLower == "true") { + value = true + } else if (valueLower == "false") { + value = false + } + } + expectedClass = value instanceof Boolean ? null : "Boolean" + } else if (par.type == "file" && (par.direction == "input" || stage == "output")) { + // cast to path if need be + if (value instanceof String) { + value = file(value, hidden: true) + } + if (value instanceof File) { + value = value.toPath() + } + expectedClass = value instanceof Path ? null : "Path" + } else if (par.type == "file" && stage == "input" && par.direction == "output") { + // cast to string if need be + if (value instanceof GString) { + value = value.toString() + } + expectedClass = value instanceof String ? null : "String" + } else { + // didn't find a match for par.type + expectedClass = par.type + } + + if (expectedClass != null) { + if (foundClass == null) { + foundClass = value.getClass().getName() + } + throw new UnexpectedArgumentTypeException(errorIdentifier, stage, par.plainName, expectedClass, foundClass) + } + + return value +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processInputValues.nf' +Map _processInputValues(Map inputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.required) { + assert inputs.containsKey(arg.plainName) && inputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required input argument '${arg.plainName}' is missing" + } + } + + inputs = inputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid input argument" + + value = _checkArgumentType("input", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return inputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/arguments/_processOutputValues.nf' +Map _processOutputValues(Map outputs, Map config, String id, String key) { + if (!workflow.stubRun) { + config.allArguments.each { arg -> + if (arg.direction == "output" && arg.required) { + assert outputs.containsKey(arg.plainName) && outputs.get(arg.plainName) != null : + "Error in module '${key}' id '${id}': required output argument '${arg.plainName}' is missing" + } + } + + outputs = outputs.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && it.direction == "output" } + assert par != null : "Error in module '${key}' id '${id}': '${name}' is not a valid output argument" + + value = _checkArgumentType("output", par, value, "in module '$key' id '$id'") + + [ name, value ] + } + } + return outputs +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/IDChecker.nf' +class IDChecker { + final def items = [] as Set + + @groovy.transform.WithWriteLock + boolean observe(String item) { + if (items.contains(item)) { + return false + } else { + items << item + return true + } + } + + @groovy.transform.WithReadLock + boolean contains(String item) { + return items.contains(item) + } + + @groovy.transform.WithReadLock + Set getItems() { + return items.clone() + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_checkUniqueIds.nf' + +/** + * Check if the ids are unique across parameter sets + * + * @param parameterSets a list of parameter sets. + */ +private void _checkUniqueIds(List>> parameterSets) { + def ppIds = parameterSets.collect{it[0]} + assert ppIds.size() == ppIds.unique().size() : "All argument sets should have unique ids. Detected ids: $ppIds" +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_getChild.nf' + +// helper functions for reading params from file // +def _getChild(parent, child) { + if (child.contains("://") || java.nio.file.Paths.get(child).isAbsolute()) { + child + } else { + def parentAbsolute = java.nio.file.Paths.get(parent).toAbsolutePath().toString() + parentAbsolute.replaceAll('/[^/]*$', "/") + child + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_parseParamList.nf' +/** + * Figure out the param list format based on the file extension + * + * @param param_list A String containing the path to the parameter list file. + * + * @return A String containing the format of the parameter list file. + */ +def _paramListGuessFormat(param_list) { + if (param_list !instanceof String) { + "asis" + } else if (param_list.endsWith(".csv")) { + "csv" + } else if (param_list.endsWith(".json") || param_list.endsWith(".jsn")) { + "json" + } else if (param_list.endsWith(".yaml") || param_list.endsWith(".yml")) { + "yaml" + } else { + "yaml_blob" + } +} + + +/** + * Read the param list + * + * @param param_list One of the following: + * - A String containing the path to the parameter list file (csv, json or yaml), + * - A yaml blob of a list of maps (yaml_blob), + * - Or a groovy list of maps (asis). + * @param config A Map of the Viash configuration. + * + * @return A List of Maps containing the parameters. + */ +def _parseParamList(param_list, Map config) { + // first determine format by extension + def paramListFormat = _paramListGuessFormat(param_list) + + def paramListPath = (paramListFormat != "asis" && paramListFormat != "yaml_blob") ? + file(param_list, hidden: true) : + null + + // get the correct parser function for the detected params_list format + def paramSets = [] + if (paramListFormat == "asis") { + paramSets = param_list + } else if (paramListFormat == "yaml_blob") { + paramSets = readYamlBlob(param_list) + } else if (paramListFormat == "yaml") { + paramSets = readYaml(paramListPath) + } else if (paramListFormat == "json") { + paramSets = readJson(paramListPath) + } else if (paramListFormat == "csv") { + paramSets = readCsv(paramListPath) + } else { + error "Format of provided --param_list not recognised.\n" + + "Found: '$paramListFormat'.\n" + + "Expected: a csv file, a json file, a yaml file,\n" + + "a yaml blob or a groovy list of maps." + } + + // data checks + assert paramSets instanceof List: "--param_list should contain a list of maps" + for (value in paramSets) { + assert value instanceof Map: "--param_list should contain a list of maps" + } + + // id is argument + def idIsArgument = config.allArguments.any{it.plainName == "id"} + + // Reformat from List to List> by adding the ID as first element of a Tuple2 + paramSets = paramSets.collect({ data -> + def id = data.id + if (!idIsArgument) { + data = data.findAll{k, v -> k != "id"} + } + [id, data] + }) + + // Split parameters with 'multiple: true' + paramSets = paramSets.collect({ id, data -> + data = _splitParams(data, config) + [id, data] + }) + + // The paths of input files inside a param_list file may have been specified relatively to the + // location of the param_list file. These paths must be made absolute. + if (paramListPath) { + paramSets = paramSets.collect({ id, data -> + def new_data = data.collectEntries{ parName, parValue -> + def par = config.allArguments.find{it.plainName == parName} + if (par && par.type == "file" && par.direction == "input") { + if (parValue instanceof Collection) { + parValue = parValue.collectMany{path -> + def x = _resolveSiblingIfNotAbsolute(path, paramListPath) + x instanceof Collection ? x : [x] + } + } else { + parValue = _resolveSiblingIfNotAbsolute(parValue, paramListPath) + } + } + [parName, parValue] + } + [id, new_data] + }) + } + + return paramSets +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/_splitParams.nf' +/** + * Split parameters for arguments that accept multiple values using their separator + * + * @param paramList A Map containing parameters to split. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A Map of parameters where the parameter values have been split into a list using + * their seperator. + */ +Map _splitParams(Map parValues, Map config){ + def parsedParamValues = parValues.collectEntries { parName, parValue -> + def parameterSettings = config.allArguments.find({it.plainName == parName}) + + if (!parameterSettings) { + // if argument is not found, do not alter + return [parName, parValue] + } + if (parameterSettings.multiple) { // Check if parameter can accept multiple values + if (parValue instanceof Collection) { + parValue = parValue.collect{it instanceof String ? it.split(parameterSettings.multiple_sep) : it } + } else if (parValue instanceof String) { + parValue = parValue.split(parameterSettings.multiple_sep) + } else if (parValue == null) { + parValue = [] + } else { + parValue = [ parValue ] + } + parValue = parValue.flatten() + } + // For all parameters check if multiple values are only passed for + // arguments that allow it. Quietly simplify lists of length 1. + if (!parameterSettings.multiple && parValue instanceof Collection) { + assert parValue.size() == 1 : + "Error: argument ${parName} has too many values.\n" + + " Expected amount: 1. Found: ${parValue.size()}" + parValue = parValue[0] + } + [parName, parValue] + } + return parsedParamValues +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/channelFromParams.nf' +/** + * Parse nextflow parameters based on settings defined in a viash config. + * Return a list of parameter sets, each parameter set corresponding to + * an event in a nextflow channel. The output from this function can be used + * with Channel.fromList to create a nextflow channel with Vdsl3 formatted + * events. + * + * This function performs: + * - A filtering of the params which can be found in the config file. + * - Process the params_list argument which allows a user to to initialise + * a Vsdl3 channel with multiple parameter sets. Possible formats are + * csv, json, yaml, or simply a yaml_blob. A csv should have column names + * which correspond to the different arguments of this pipeline. A json or a yaml + * file should be a list of maps, each of which has keys corresponding to the + * arguments of the pipeline. A yaml blob can also be passed directly as a parameter. + * When passing a csv, json or yaml, relative path names are relativized to the + * location of the parameter file. + * - Combine the parameter sets into a vdsl3 Channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A list of parameters with the first element of the event being + * the event ID and the second element containing a map of the parsed parameters. + */ + +private List>> _paramsToParamSets(Map params, Map config){ + // todo: fetch key from run args + def key_ = config.name + + /* parse regular parameters (not in param_list) */ + /*************************************************/ + def globalParams = config.allArguments + .findAll { params.containsKey(it.plainName) } + .collectEntries { [ it.plainName, params[it.plainName] ] } + def globalID = params.get("id", null) + + /* process params_list arguments */ + /*********************************/ + def paramList = params.containsKey("param_list") && params.param_list != null ? + params.param_list : [] + // if (paramList instanceof String) { + // paramList = [paramList] + // } + // def paramSets = paramList.collectMany{ _parseParamList(it, config) } + // TODO: be able to process param_list when it is a list of strings + def paramSets = _parseParamList(paramList, config) + if (paramSets.isEmpty()) { + paramSets = [[null, [:]]] + } + + /* combine arguments into channel */ + /**********************************/ + def processedParams = paramSets.indexed().collect{ index, tup -> + // Process ID + def id = tup[0] ?: globalID + + if (workflow.stubRun && !id) { + // if stub run, explicitly add an id if missing + id = "stub${index}" + } + assert id != null: "Each parameter set should have at least an 'id'" + + // Process params + def parValues = globalParams + tup[1] + // // Remove parameters which are null, if the default is also null + // parValues = parValues.collectEntries{paramName, paramValue -> + // parameterSettings = config.functionality.allArguments.find({it.plainName == paramName}) + // if ( paramValue != null || parameterSettings.get("default", null) != null ) { + // [paramName, paramValue] + // } + // } + parValues = parValues.collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + assert par != null : "Error in module '${key_}' id '${id}': '${name}' is not a valid input argument" + + if (par == null) { + return [:] + } + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + + [ name, value ] + } + + [id, parValues] + } + + // Check if ids (first element of each list) is unique + _checkUniqueIds(processedParams) + return processedParams +} + +/** + * Parse nextflow parameters based on settings defined in a viash config + * and return a nextflow channel. + * + * @param params Input parameters. Can optionaly contain a 'param_list' key that + * provides a list of arguments that can be split up into multiple events + * in the output channel possible formats of param_lists are: a csv file, + * json file, a yaml file or a yaml blob. Each parameters set (event) must + * have a unique ID. + * @param config A Map of the Viash configuration. This Map can be generated from the config file + * using the readConfig() function. + * + * @return A nextflow Channel with events. Events are formatted as a tuple that contains + * first contains the ID of the event and as second element holds a parameter map. + * + * + */ +def channelFromParams(Map params, Map config) { + def processedParams = _paramsToParamSets(params, config) + return Channel.fromList(processedParams) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/checkUniqueIds.nf' +def checkUniqueIds(Map args) { + def stopOnError = args.stopOnError == null ? args.stopOnError : true + + def idChecker = new IDChecker() + + return filter { tup -> + if (!idChecker.observe(tup[0])) { + if (stopOnError) { + error "Duplicate id: ${tup[0]}" + } else { + log.warn "Duplicate id: ${tup[0]}, removing duplicate entry" + return false + } + } + return true + } +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/preprocessInputs.nf' +// This helper file will be deprecated soon +preprocessInputsDeprecationWarningPrinted = false + +def preprocessInputsDeprecationWarning() { + if (!preprocessInputsDeprecationWarningPrinted) { + preprocessInputsDeprecationWarningPrinted = true + System.err.println("Warning: preprocessInputs() is deprecated and will be removed in Viash 0.9.0.") + } +} + +/** + * Generate a nextflow Workflow that allows processing a channel of + * Vdsl3 formatted events and apply a Viash config to them: + * - Gather default parameters from the Viash config and make + * sure that they are correctly formatted (see applyConfig method). + * - Format the input parameters (also using the applyConfig method). + * - Apply the default parameter to the input parameters. + * - Do some assertions: + * ~ Check if the event IDs in the channel are unique. + * + * The events in the channel are formatted as tuples, with the + * first element of the tuples being a unique id of the parameter set, + * and the second element containg the the parameters themselves. + * Optional extra elements of the tuples will be passed to the output as is. + * + * @param args A map that must contain a 'config' key that points + * to a parsed config (see readConfig()). Optionally, a + * 'key' key can be provided which can be used to create a unique + * name for the workflow process. + * + * @return A workflow that allows processing a channel of Vdsl3 formatted events + * and apply a Viash config to them. + */ +def preprocessInputs(Map args) { + preprocessInputsDeprecationWarning() + + def config = args.config + assert config instanceof Map : + "Error in preprocessInputs: config must be a map. " + + "Expected class: Map. Found: config.getClass() is ${config.getClass()}" + def key_ = args.key ?: config.name + + // Get different parameter types (used throughout this function) + def defaultArgs = config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + map { tup -> + def id = tup[0] + def data = tup[1] + def passthrough = tup.drop(2) + + def new_data = (defaultArgs + data).collectEntries { name, value -> + def par = config.allArguments.find { it.plainName == name && (it.direction == "input" || it.type == "file") } + + if (par != null) { + value = _checkArgumentType("input", par, value, "in module '$key_' id '$id'") + } + + [ name, value ] + } + + [ id, new_data ] + passthrough + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runComponents.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component config. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component config. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component config. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component config. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runComponents(Map args) { + log.warn("runComponents is deprecated, use runEach instead") + assert args.components: "runComponents should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runComponents" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def id_ = args.id + + workflow runComponentsWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def comp_config = comp_.config + + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_config) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + // def new_id = id_(tup[0], tup[1], comp_config) + def new_id = tup[0] + if (id_ instanceof String) { + new_id = id_ + } else if (id_ instanceof Closure) { + new_id = id_(new_id, tup[1], comp_config) + } + [new_id] + tup.drop(1) + } + : filter_ch + def data_ch = id_ch | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_config) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_config) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + post_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runComponentsWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/runEach.nf' +/** + * Run a list of components on a stream of data. + * + * @param components: list of Viash VDSL3 modules to run + * @param fromState: a closure, a map or a list of keys to extract from the input data. + * If a closure, it will be called with the id, the data and the component itself. + * @param toState: a closure, a map or a list of keys to extract from the output data + * If a closure, it will be called with the id, the output data, the old state and the component itself. + * @param filter: filter function to apply to the input. + * It will be called with the id, the data and the component itself. + * @param id: id to use for the output data + * If a closure, it will be called with the id, the data and the component itself. + * @param auto: auto options to pass to the components + * + * @return: a workflow that runs the components + **/ +def runEach(Map args) { + assert args.components: "runEach should be passed a list of components to run" + + def components_ = args.components + if (components_ !instanceof List) { + components_ = [ components_ ] + } + assert components_.size() > 0: "pass at least one component to runEach" + + def fromState_ = args.fromState + def toState_ = args.toState + def filter_ = args.filter + def runIf_ = args.runIf + def id_ = args.id + + assert !runIf_ || runIf_ instanceof Closure: "runEach: must pass a Closure to runIf." + + workflow runEachWf { + take: input_ch + main: + + // generate one channel per method + out_chs = components_.collect{ comp_ -> + def filter_ch = filter_ + ? input_ch | filter{tup -> + filter_(tup[0], tup[1], comp_) + } + : input_ch + def id_ch = id_ + ? filter_ch | map{tup -> + def new_id = id_ + if (new_id instanceof Closure) { + new_id = new_id(tup[0], tup[1], comp_) + } + assert new_id instanceof String : "Error in runEach: id should be a String or a Closure that returns a String. Expected: id instanceof String. Found: ${new_id.getClass()}" + [new_id] + tup.drop(1) + } + : filter_ch + def chPassthrough = null + def chRun = null + if (runIf_) { + def idRunIfBranch = id_ch.branch{ tup -> + run: runIf_(tup[0], tup[1], comp_) + passthrough: true + } + chPassthrough = idRunIfBranch.passthrough + chRun = idRunIfBranch.run + } else { + chRun = id_ch + chPassthrough = Channel.empty() + } + def data_ch = chRun | map{tup -> + def new_data = tup[1] + if (fromState_ instanceof Map) { + new_data = fromState_.collectEntries{ key0, key1 -> + [key0, new_data[key1]] + } + } else if (fromState_ instanceof List) { + new_data = fromState_.collectEntries{ key -> + [key, new_data[key]] + } + } else if (fromState_ instanceof Closure) { + new_data = fromState_(tup[0], new_data, comp_) + } + tup.take(1) + [new_data] + tup.drop(1) + } + def out_ch = data_ch + | comp_.run( + auto: (args.auto ?: [:]) + [simplifyInput: false, simplifyOutput: false] + ) + def post_ch = toState_ + ? out_ch | map{tup -> + def output = tup[1] + def old_state = tup[2] + def new_state = null + if (toState_ instanceof Map) { + new_state = old_state + toState_.collectEntries{ key0, key1 -> + [key0, output[key1]] + } + } else if (toState_ instanceof List) { + new_state = old_state + toState_.collectEntries{ key -> + [key, output[key]] + } + } else if (toState_ instanceof Closure) { + new_state = toState_(tup[0], output, old_state, comp_) + } + [tup[0], new_state] + tup.drop(3) + } + : out_ch + + def return_ch = post_ch + | concat(chPassthrough) + + return_ch + } + + // mix all results + output_ch = + (out_chs.size == 1) + ? out_chs[0] + : out_chs[0].mix(*out_chs.drop(1)) + + emit: output_ch + } + + return runEachWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/channel/safeJoin.nf' +/** + * Join sourceChannel to targetChannel + * + * This function joins the sourceChannel to the targetChannel. + * However, each id in the targetChannel must be present in the + * sourceChannel. If _meta.join_id exists in the targetChannel, that is + * used as an id instead. If the id doesn't match any id in the sourceChannel, + * an error is thrown. + */ + +def safeJoin(targetChannel, sourceChannel, key) { + def sourceIDs = new IDChecker() + + def sourceCheck = sourceChannel + | map { tup -> + sourceIDs.observe(tup[0]) + tup + } + def targetCheck = targetChannel + | map { tup -> + def id = tup[0] + + if (!sourceIDs.contains(id)) { + error ( + "Error in module '${key}' when merging output with original state.\n" + + " Reason: output with id '${id}' could not be joined with source channel.\n" + + " If the IDs in the output channel differ from the input channel,\n" + + " please set `tup[1]._meta.join_id to the original ID.\n" + + " Original IDs in input channel: ['${sourceIDs.getItems().join("', '")}'].\n" + + " Unexpected ID in the output channel: '${id}'.\n" + + " Example input event: [\"id\", [input: file(...)]],\n" + + " Example output event: [\"newid\", [output: file(...), _meta: [join_id: \"id\"]]]" + ) + } + // TODO: add link to our documentation on how to fix this + + tup + } + + sourceCheck.cross(targetChannel) + | map{ left, right -> + right + left.drop(1) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/_processArgument.nf' +def _processArgument(arg) { + arg.multiple = arg.multiple != null ? arg.multiple : false + arg.required = arg.required != null ? arg.required : false + arg.direction = arg.direction != null ? arg.direction : "input" + arg.multiple_sep = arg.multiple_sep != null ? arg.multiple_sep : ";" + arg.plainName = arg.name.replaceAll("^-*", "") + + if (arg.type == "file") { + arg.must_exist = arg.must_exist != null ? arg.must_exist : true + arg.create_parent = arg.create_parent != null ? arg.create_parent : true + } + + // add default values to output files which haven't already got a default + if (arg.type == "file" && arg.direction == "output" && arg.default == null) { + def mult = arg.multiple ? "_*" : "" + def extSearch = "" + if (arg.default != null) { + extSearch = arg.default + } else if (arg.example != null) { + extSearch = arg.example + } + if (extSearch instanceof List) { + extSearch = extSearch[0] + } + def extSearchResult = extSearch.find("\\.[^\\.]+\$") + def ext = extSearchResult != null ? extSearchResult : "" + arg.default = "\$id.\$key.${arg.plainName}${mult}${ext}" + if (arg.multiple) { + arg.default = [arg.default] + } + } + + if (!arg.multiple) { + if (arg.default != null && arg.default instanceof List) { + arg.default = arg.default[0] + } + if (arg.example != null && arg.example instanceof List) { + arg.example = arg.example[0] + } + } + + if (arg.type == "boolean_true") { + arg.default = false + } + if (arg.type == "boolean_false") { + arg.default = true + } + + arg +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/addGlobalParams.nf' +def addGlobalArguments(config) { + def localConfig = [ + "argument_groups": [ + [ + "name": "Nextflow input-output arguments", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "arguments" : [ + [ + 'name': '--publish_dir', + 'required': true, + 'type': 'string', + 'description': 'Path to an output directory.', + 'example': 'output/', + 'multiple': false + ], + [ + 'name': '--param_list', + 'required': false, + 'type': 'string', + 'description': '''Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob. + | + |* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ ['id': 'foo', 'input': 'foo.txt'], ['id': 'bar', 'input': 'bar.txt'] ]`. + |* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`. + |* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]`. + |* A yaml blob can also be passed directly as a string. Example: `--param_list "[ {'id': 'foo', 'input': 'foo.txt'}, {'id': 'bar', 'input': 'bar.txt'} ]"`. + | + |When passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.'''.stripMargin(), + 'example': 'my_params.yaml', + 'multiple': false, + 'hidden': true + ] + // TODO: allow multiple: true in param_list? + // TODO: allow to specify a --param_list_regex to filter the param_list? + // TODO: allow to specify a --param_list_from_state to remap entries in the param_list? + ] + ] + ] + ] + + return processConfig(_mergeMap(config, localConfig)) +} + +def _mergeMap(Map lhs, Map rhs) { + return rhs.inject(lhs.clone()) { map, entry -> + if (map[entry.key] instanceof Map && entry.value instanceof Map) { + map[entry.key] = _mergeMap(map[entry.key], entry.value) + } else if (map[entry.key] instanceof Collection && entry.value instanceof Collection) { + map[entry.key] += entry.value + } else { + map[entry.key] = entry.value + } + return map + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/generateHelp.nf' +def _generateArgumentHelp(param) { + // alternatives are not supported + // def names = param.alternatives ::: List(param.name) + + def unnamedProps = [ + ["required parameter", param.required], + ["multiple values allowed", param.multiple], + ["output", param.direction.toLowerCase() == "output"], + ["file must exist", param.type == "file" && param.must_exist] + ].findAll{it[1]}.collect{it[0]} + + def dflt = null + if (param.default != null) { + if (param.default instanceof List) { + dflt = param.default.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + dflt = param.default.toString() + } + } + def example = null + if (param.example != null) { + if (param.example instanceof List) { + example = param.example.join(param.multiple_sep != null ? param.multiple_sep : ", ") + } else { + example = param.example.toString() + } + } + def min = param.min?.toString() + def max = param.max?.toString() + + def escapeChoice = { choice -> + def s1 = choice.replaceAll("\\n", "\\\\n") + def s2 = s1.replaceAll("\"", """\\\"""") + s2.contains(",") || s2 != choice ? "\"" + s2 + "\"" : s2 + } + def choices = param.choices == null ? + null : + "[ " + param.choices.collect{escapeChoice(it.toString())}.join(", ") + " ]" + + def namedPropsStr = [ + ["type", ([param.type] + unnamedProps).join(", ")], + ["default", dflt], + ["example", example], + ["choices", choices], + ["min", min], + ["max", max] + ] + .findAll{it[1]} + .collect{"\n " + it[0] + ": " + it[1].replaceAll("\n", "\\n")} + .join("") + + def descStr = param.description == null ? + "" : + _paragraphWrap("\n" + param.description.trim(), 80 - 8).join("\n ") + + "\n --" + param.plainName + + namedPropsStr + + descStr +} + +// Based on Helper.generateHelp() in Helper.scala +def _generateHelp(config) { + def fun = config + + // PART 1: NAME AND VERSION + def nameStr = fun.name + + (fun.version == null ? "" : " " + fun.version) + + // PART 2: DESCRIPTION + def descrStr = fun.description == null ? + "" : + "\n\n" + _paragraphWrap(fun.description.trim(), 80).join("\n") + + // PART 3: Usage + def usageStr = fun.usage == null ? + "" : + "\n\nUsage:\n" + fun.usage.trim() + + // PART 4: Options + def argGroupStrs = fun.allArgumentGroups.collect{argGroup -> + def name = argGroup.name + def descriptionStr = argGroup.description == null ? + "" : + "\n " + _paragraphWrap(argGroup.description.trim(), 80-4).join("\n ") + "\n" + def arguments = argGroup.arguments.collect{arg -> + arg instanceof String ? fun.allArguments.find{it.plainName == arg} : arg + }.findAll{it != null} + def argumentStrs = arguments.collect{param -> _generateArgumentHelp(param)} + + "\n\n$name:" + + descriptionStr + + argumentStrs.join("\n") + } + + // FINAL: combine + def out = nameStr + + descrStr + + usageStr + + argGroupStrs.join("") + + return out +} + +// based on Format._paragraphWrap +def _paragraphWrap(str, maxLength) { + def outLines = [] + str.split("\n").each{par -> + def words = par.split("\\s").toList() + + def word = null + def line = words.pop() + while(!words.isEmpty()) { + word = words.pop() + if (line.length() + word.length() + 1 <= maxLength) { + line = line + " " + word + } else { + outLines.add(line) + line = word + } + } + if (words.isEmpty()) { + outLines.add(line) + } + } + return outLines +} + +def helpMessage(config) { + if (params.containsKey("help") && params.help) { + def mergedConfig = addGlobalArguments(config) + def helpStr = _generateHelp(mergedConfig) + println(helpStr) + exit 0 + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/processConfig.nf' +def processConfig(config) { + // set defaults for arguments + config.arguments = + (config.arguments ?: []).collect{_processArgument(it)} + + // set defaults for argument_group arguments + config.argument_groups = + (config.argument_groups ?: []).collect{grp -> + grp.arguments = (grp.arguments ?: []).collect{_processArgument(it)} + grp + } + + // create combined arguments list + config.allArguments = + config.arguments + + config.argument_groups.collectMany{it.arguments} + + // add missing argument groups (based on Functionality::allArgumentGroups()) + def argGroups = config.argument_groups + if (argGroups.any{it.name.toLowerCase() == "arguments"}) { + argGroups = argGroups.collect{ grp -> + if (grp.name.toLowerCase() == "arguments") { + grp = grp + [ + arguments: grp.arguments + config.arguments + ] + } + grp + } + } else { + argGroups = argGroups + [ + name: "Arguments", + arguments: config.arguments + ] + } + config.allArgumentGroups = argGroups + + config +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/config/readConfig.nf' + +def readConfig(file) { + def config = readYaml(file ?: moduleDir.resolve("config.vsh.yaml")) + processConfig(config) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_resolveSiblingIfNotAbsolute.nf' +/** + * Resolve a path relative to the current file. + * + * @param str The path to resolve, as a String. + * @param parentPath The path to resolve relative to, as a Path. + * + * @return The path that may have been resovled, as a Path. + */ +def _resolveSiblingIfNotAbsolute(str, parentPath) { + if (str !instanceof String) { + return str + } + if (!_stringIsAbsolutePath(str)) { + return parentPath.resolveSibling(str) + } else { + return file(str, hidden: true) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/_stringIsAbsolutePath.nf' +/** + * Check whether a path as a string is absolute. + * + * In the past, we tried using `file(., relative: true).isAbsolute()`, + * but the 'relative' option was added in 22.10.0. + * + * @param path The path to check, as a String. + * + * @return Whether the path is absolute, as a boolean. + */ +def _stringIsAbsolutePath(path) { + def _resolve_URL_PROTOCOL = ~/^([a-zA-Z][a-zA-Z0-9]*:)?\\/.+/ + + assert path instanceof String + return _resolve_URL_PROTOCOL.matcher(path).matches() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/collectTraces.nf' +class CustomTraceObserver implements nextflow.trace.TraceObserver { + List traces + + CustomTraceObserver(List traces) { + this.traces = traces + } + + @Override + void onProcessComplete(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } + + @Override + void onProcessCached(nextflow.processor.TaskHandler handler, nextflow.trace.TraceRecord trace) { + def trace2 = trace.store.clone() + trace2.script = null + traces.add(trace2) + } +} + +def collectTraces() { + def traces = Collections.synchronizedList([]) + + // add custom trace observer which stores traces in the traces object + session.observers.add(new CustomTraceObserver(traces)) + + traces +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/deepClone.nf' +/** + * Performs a deep clone of the given object. + * @param x an object + */ +def deepClone(x) { + iterateMap(x, {it instanceof Cloneable ? it.clone() : it}) +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getPublishDir.nf' +def getPublishDir() { + return params.containsKey("publish_dir") ? params.publish_dir : + params.containsKey("publishDir") ? params.publishDir : + null +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/getRootDir.nf' + +// Recurse upwards until we find a '.build.yaml' file +def _findBuildYamlFile(pathPossiblySymlink) { + def path = pathPossiblySymlink.toRealPath() + def child = path.resolve(".build.yaml") + if (java.nio.file.Files.isDirectory(path) && java.nio.file.Files.exists(child)) { + return child + } else { + def parent = path.getParent() + if (parent == null) { + return null + } else { + return _findBuildYamlFile(parent) + } + } +} + +// get the root of the target folder +def getRootDir() { + def dir = _findBuildYamlFile(meta.resources_dir) + assert dir != null: "Could not find .build.yaml in the folder structure" + dir.getParent() +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/iterateMap.nf' +/** + * Recursively apply a function over the leaves of an object. + * @param obj The object to iterate over. + * @param fun The function to apply to each value. + * @return The object with the function applied to each value. + */ +def iterateMap(obj, fun) { + if (obj instanceof List && obj !instanceof String) { + return obj.collect{item -> + iterateMap(item, fun) + } + } else if (obj instanceof Map) { + return obj.collectEntries{key, item -> + [key.toString(), iterateMap(item, fun)] + } + } else { + return fun(obj) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/functions/niceView.nf' +/** + * A view for printing the event of each channel as a YAML blob. + * This is useful for debugging. + */ +def niceView() { + workflow niceViewWf { + take: input + main: + output = input + | view{toYamlBlob(it)} + emit: output + } + return niceViewWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readCsv.nf' + +def readCsv(file_path) { + def output = [] + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + + // todo: allow escaped quotes in string + // todo: allow single quotes? + def splitRegex = java.util.regex.Pattern.compile(''',(?=(?:[^"]*"[^"]*")*[^"]*$)''') + def removeQuote = java.util.regex.Pattern.compile('''"(.*)"''') + + def br = java.nio.file.Files.newBufferedReader(inputFile) + + def row = -1 + def header = null + while (br.ready() && header == null) { + def line = br.readLine() + row++ + if (!line.startsWith("#")) { + header = splitRegex.split(line, -1).collect{field -> + m = removeQuote.matcher(field) + m.find() ? m.replaceFirst('$1') : field + } + } + } + assert header != null: "CSV file should contain a header" + + while (br.ready()) { + def line = br.readLine() + row++ + if (line == null) { + br.close() + break + } + + if (!line.startsWith("#")) { + def predata = splitRegex.split(line, -1) + def data = predata.collect{field -> + if (field == "") { + return null + } + def m = removeQuote.matcher(field) + if (m.find()) { + return m.replaceFirst('$1') + } else { + return field + } + } + assert header.size() == data.size(): "Row $row should contain the same number as fields as the header" + + def dataMap = [header, data].transpose().collectEntries().findAll{it.value != null} + output.add(dataMap) + } + } + + output +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJson.nf' +def readJson(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parse(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readJsonBlob.nf' +def readJsonBlob(str) { + def jsonSlurper = new groovy.json.JsonSlurper() + jsonSlurper.parseText(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readTaggedYaml.nf' +// Custom constructor to modify how certain objects are parsed from YAML +class CustomConstructor extends org.yaml.snakeyaml.constructor.Constructor { + Path root + + class ConstructPath extends org.yaml.snakeyaml.constructor.AbstractConstruct { + public Object construct(org.yaml.snakeyaml.nodes.Node node) { + String filename = (String) constructScalar(node); + if (root != null) { + return root.resolve(filename); + } + return java.nio.file.Paths.get(filename); + } + } + + CustomConstructor(org.yaml.snakeyaml.LoaderOptions options, Path root) { + super(options) + this.root = root + // Handling !file tag and parse it back to a File type + this.yamlConstructors.put(new org.yaml.snakeyaml.nodes.Tag("!file"), new ConstructPath()) + } +} + +def readTaggedYaml(Path path) { + def options = new org.yaml.snakeyaml.LoaderOptions() + def constructor = new CustomConstructor(options, path.getParent()) + def yaml = new org.yaml.snakeyaml.Yaml(constructor) + return yaml.load(path.text) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYaml.nf' +def readYaml(file_path) { + def inputFile = file_path !instanceof Path ? file(file_path, hidden: true) : file_path + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(inputFile) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/readYamlBlob.nf' +def readYamlBlob(str) { + def yamlSlurper = new org.yaml.snakeyaml.Yaml() + yamlSlurper.load(str) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toJsonBlob.nf' +String toJsonBlob(data) { + return groovy.json.JsonOutput.toJson(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toTaggedYamlBlob.nf' +// Custom representer to modify how certain objects are represented in YAML +class CustomRepresenter extends org.yaml.snakeyaml.representer.Representer { + Path relativizer + + class RepresentPath implements org.yaml.snakeyaml.representer.Represent { + public String getFileName(Object obj) { + if (obj instanceof File) { + obj = ((File) obj).toPath(); + } + if (obj !instanceof Path) { + throw new IllegalArgumentException("Object: " + obj + " is not a Path or File"); + } + def path = (Path) obj; + + if (relativizer != null) { + return relativizer.relativize(path).toString() + } else { + return path.toString() + } + } + + public org.yaml.snakeyaml.nodes.Node representData(Object data) { + String filename = getFileName(data); + def tag = new org.yaml.snakeyaml.nodes.Tag("!file"); + return representScalar(tag, filename); + } + } + CustomRepresenter(org.yaml.snakeyaml.DumperOptions options, Path relativizer) { + super(options) + this.relativizer = relativizer + this.representers.put(sun.nio.fs.UnixPath, new RepresentPath()) + this.representers.put(Path, new RepresentPath()) + this.representers.put(File, new RepresentPath()) + } +} + +String toTaggedYamlBlob(data) { + return toRelativeTaggedYamlBlob(data, null) +} +String toRelativeTaggedYamlBlob(data, Path relativizer) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + def representer = new CustomRepresenter(options, relativizer) + def yaml = new org.yaml.snakeyaml.Yaml(representer, options) + return yaml.dump(data) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/toYamlBlob.nf' +String toYamlBlob(data) { + def options = new org.yaml.snakeyaml.DumperOptions() + options.setDefaultFlowStyle(org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK) + options.setPrettyFlow(true) + def yaml = new org.yaml.snakeyaml.Yaml(options) + def cleanData = iterateMap(data, { it instanceof Path ? it.toString() : it }) + return yaml.dump(cleanData) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeJson.nf' +void writeJson(data, file) { + assert data: "writeJson: data should not be null" + assert file: "writeJson: file should not be null" + file.write(toJsonBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/readwrite/writeYaml.nf' +void writeYaml(data, file) { + assert data: "writeYaml: data should not be null" + assert file: "writeYaml: file should not be null" + file.write(toYamlBlob(data)) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/findStates.nf' +def findStates(Map params, Map config) { + def auto_config = deepClone(config) + def auto_params = deepClone(params) + + auto_config = auto_config.clone() + // override arguments + auto_config.argument_groups = [] + auto_config.arguments = [ + [ + type: "string", + name: "--id", + description: "A dummy identifier", + required: false + ], + [ + type: "file", + name: "--input_states", + example: "/path/to/input/directory/**/state.yaml", + description: "Path to input directory containing the datasets to be integrated.", + required: true, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--filter", + example: "foo/.*/state.yaml", + description: "Regex to filter state files by path.", + required: false + ], + // to do: make this a yaml blob? + [ + type: "string", + name: "--rename_keys", + example: ["newKey1:oldKey1", "newKey2:oldKey2"], + description: "Rename keys in the detected input files. This is useful if the input files do not match the set of input arguments of the workflow.", + required: false, + multiple: true, + multiple_sep: ";" + ], + [ + type: "string", + name: "--settings", + example: '{"output_dataset": "dataset.h5ad", "k": 10}', + description: "Global arguments as a JSON glob to be passed to all components.", + required: false + ] + ] + if (!(auto_params.containsKey("id"))) { + auto_params["id"] = "auto" + } + + // run auto config through processConfig once more + auto_config = processConfig(auto_config) + + workflow findStatesWf { + helpMessage(auto_config) + + output_ch = + channelFromParams(auto_params, auto_config) + | flatMap { autoId, args -> + + def globalSettings = args.settings ? readYamlBlob(args.settings) : [:] + + // look for state files in input dir + def stateFiles = args.input_states + + // filter state files by regex + if (args.filter) { + stateFiles = stateFiles.findAll{ stateFile -> + def stateFileStr = stateFile.toString() + def matcher = stateFileStr =~ args.filter + matcher.matches()} + } + + // read in states + def states = stateFiles.collect { stateFile -> + def state_ = readTaggedYaml(stateFile) + [state_.id, state_] + } + + // construct renameMap + if (args.rename_keys) { + def renameMap = args.rename_keys.collectEntries{renameString -> + def split = renameString.split(":") + assert split.size() == 2: "Argument 'rename_keys' should be of the form 'newKey:oldKey', or 'newKey:oldKey;newKey:oldKey' in case of multiple values" + split + } + + // rename keys in state, only let states through which have all keys + // also add global settings + states = states.collectMany{id, state -> + def newState = [:] + + for (key in renameMap.keySet()) { + def origKey = renameMap[key] + if (!(state.containsKey(origKey))) { + return [] + } + newState[key] = state[origKey] + } + + [[id, globalSettings + newState]] + } + } + + states + } + emit: + output_ch + } + + return findStatesWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/joinStates.nf' +def joinStates(Closure apply_) { + workflow joinStatesWf { + take: input_ch + main: + output_ch = input_ch + | toSortedList + | filter{ it.size() > 0 } + | map{ tups -> + def ids = tups.collect{it[0]} + def states = tups.collect{it[1]} + apply_(ids, states) + } + + emit: output_ch + } + return joinStatesWf +} +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/publishStates.nf' +def collectFiles(obj) { + if (obj instanceof java.io.File || obj instanceof Path) { + return [obj] + } else if (obj instanceof List && obj !instanceof String) { + return obj.collectMany{item -> + collectFiles(item) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectFiles(item) + } + } else { + return [] + } +} + +/** + * Recurse through a state and collect all input files and their target output filenames. + * @param obj The state to recurse through. + * @param prefix The prefix to prepend to the output filenames. + */ +def collectInputOutputPaths(obj, prefix) { + if (obj instanceof File || obj instanceof Path) { + def path = obj instanceof Path ? obj : obj.toPath() + def ext = path.getFileName().toString().find("\\.[^\\.]+\$") ?: "" + def newFilename = prefix + ext + return [[obj, newFilename]] + } else if (obj instanceof List && obj !instanceof String) { + return obj.withIndex().collectMany{item, ix -> + collectInputOutputPaths(item, prefix + "_" + ix) + } + } else if (obj instanceof Map) { + return obj.collectMany{key, item -> + collectInputOutputPaths(item, prefix + "." + key) + } + } else { + return [] + } +} + +def publishStates(Map args) { + def key_ = args.get("key") + def yamlTemplate_ = args.get("output_state", args.get("outputState", '$id.$key.state.yaml')) + + assert key_ != null : "publishStates: key must be specified" + + workflow publishStatesWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] + + // the input files and the target output filenames + def inputoutputFilenames_ = collectInputOutputPaths(state_, id_ + "." + key_).transpose() + def inputFiles_ = inputoutputFilenames_[0] + def outputFilenames_ = inputoutputFilenames_[1] + + def yamlFilename = yamlTemplate_ + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + + // TODO: do the pathnames in state_ match up with the outputFilenames_? + + // convert state to yaml blob + def yamlBlob_ = toRelativeTaggedYamlBlob([id: id_] + state_, java.nio.file.Paths.get(yamlFilename)) + + [id_, yamlBlob_, yamlFilename, inputFiles_, outputFilenames_] + } + | publishStatesProc + emit: input_ch + } + return publishStatesWf +} +process publishStatesProc { + // todo: check publishpath? + publishDir path: "${getPublishDir()}/", mode: "copy" + tag "$id" + input: + tuple val(id), val(yamlBlob), val(yamlFile), path(inputFiles, stageAs: "_inputfile?/*"), val(outputFiles) + output: + tuple val(id), path{[yamlFile] + outputFiles} + script: + def copyCommands = [ + inputFiles instanceof List ? inputFiles : [inputFiles], + outputFiles instanceof List ? outputFiles : [outputFiles] + ] + .transpose() + .collectMany{infile, outfile -> + if (infile.toString() != outfile.toString()) { + [ + "[ -d \"\$(dirname '${outfile.toString()}')\" ] || mkdir -p \"\$(dirname '${outfile.toString()}')\"", + "cp -r '${infile.toString()}' '${outfile.toString()}'" + ] + } else { + // no need to copy if infile is the same as outfile + [] + } + } + """ +mkdir -p "\$(dirname '${yamlFile}')" +echo "Storing state as yaml" +echo '${yamlBlob}' > '${yamlFile}' +echo "Copying output files to destination folder" +${copyCommands.join("\n ")} +""" +} + + +// this assumes that the state contains no other values other than those specified in the config +def publishStatesByConfig(Map args) { + def config = args.get("config") + assert config != null : "publishStatesByConfig: config must be specified" + + def key_ = args.get("key", config.name) + assert key_ != null : "publishStatesByConfig: key must be specified" + + workflow publishStatesSimpleWf { + take: input_ch + main: + input_ch + | map { tup -> + def id_ = tup[0] + def state_ = tup[1] // e.g. [output: new File("myoutput.h5ad"), k: 10] + def origState_ = tup[2] // e.g. [output: '$id.$key.foo.h5ad'] + + // TODO: allow overriding the state.yaml template + // TODO TODO: if auto.publish == "state", add output_state as an argument + def yamlTemplate = params.containsKey("output_state") ? params.output_state : '$id.$key.state.yaml' + def yamlFilename = yamlTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + def yamlDir = java.nio.file.Paths.get(yamlFilename).getParent() + + // the processed state is a list of [key, value, inputPath, outputFilename] tuples, where + // - key is a String + // - value is any object that can be serialized to a Yaml (so a String/Integer/Long/Double/Boolean, a List, a Map, or a Path) + // - inputPath is a List[Path] + // - outputFilename is a List[String] + // - (key, value) are the tuples that will be saved to the state.yaml file + // - (inputPath, outputFilename) are the files that will be copied from src to dest (relative to the state.yaml) + def processedState = + config.allArguments + .findAll { it.direction == "output" } + .collectMany { par -> + def plainName_ = par.plainName + // if the state does not contain the key, it's an + // optional argument for which the component did + // not generate any output + if (!state_.containsKey(plainName_)) { + return [] + } + def value = state_[plainName_] + // if the parameter is not a file, it should be stored + // in the state as-is, but is not something that needs + // to be copied from the source path to the dest path + if (par.type != "file") { + return [[key: plainName_, value: value, inputPath: [], outputFilename: []]] + } + // if the orig state does not contain this filename, + // it's an optional argument for which the user specified + // that it should not be returned as a state + if (!origState_.containsKey(plainName_)) { + return [] + } + def filenameTemplate = origState_[plainName_] + // if the pararameter is multiple: true, fetch the template + if (par.multiple && filenameTemplate instanceof List) { + filenameTemplate = filenameTemplate[0] + } + // instantiate the template + def filename = filenameTemplate + .replaceAll('\\$id', id_) + .replaceAll('\\$\\{id\\}', id_) + .replaceAll('\\$key', key_) + .replaceAll('\\$\\{key\\}', key_) + if (par.multiple) { + // if the parameter is multiple: true, the filename + // should contain a wildcard '*' that is replaced with + // the index of the file + assert filename.contains("*") : "Module '${key_}' id '${id_}': Multiple output files specified, but no wildcard '*' in the filename: ${filename}" + def outputPerFile = value.withIndex().collect{ val, ix -> + def filename_ix = filename.replace("*", ix.toString()) + def value_ = java.nio.file.Paths.get(filename_ix) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = val instanceof File ? val.toPath() : val + [value: value_, inputPath: inputPath, outputFilename: filename_ix] + } + def transposedOutputs = ["value", "inputPath", "outputFilename"].collectEntries{ key -> + [key, outputPerFile.collect{dic -> dic[key]}] + } + return [[key: plainName_] + transposedOutputs] + } else { + def value_ = java.nio.file.Paths.get(filename) + // if id contains a slash + if (yamlDir != null) { + value_ = yamlDir.relativize(value_) + } + def inputPath = value instanceof File ? value.toPath() : value + return [[key: plainName_, value: value_, inputPath: [inputPath], outputFilename: [filename]]] + } + } + + def updatedState_ = processedState.collectEntries{[it.key, it.value]} + def inputPaths = processedState.collectMany{it.inputPath} + def outputFilenames = processedState.collectMany{it.outputFilename} + + // convert state to yaml blob + def yamlBlob_ = toTaggedYamlBlob([id: id_] + updatedState_) + + [id_, yamlBlob_, yamlFilename, inputPaths, outputFilenames] + } + | publishStatesProc + emit: input_ch + } + return publishStatesSimpleWf +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/states/setState.nf' +def setState(fun) { + assert fun instanceof Closure || fun instanceof Map || fun instanceof List : + "Error in setState: Expected process argument to be a Closure, a Map, or a List. Found: class ${fun.getClass()}" + + // if fun is a List, convert to map + if (fun instanceof List) { + // check whether fun is a list[string] + assert fun.every{it instanceof CharSequence} : "Error in setState: argument is a List, but not all elements are Strings" + fun = fun.collectEntries{[it, it]} + } + + // if fun is a map, convert to closure + if (fun instanceof Map) { + // check whether fun is a map[string, string] + assert fun.values().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all values are Strings" + assert fun.keySet().every{it instanceof CharSequence} : "Error in setState: argument is a Map, but not all keys are Strings" + def funMap = fun.clone() + // turn the map into a closure to be used later on + fun = { id_, state_ -> + assert state_ instanceof Map : "Error in setState: the state is not a Map" + funMap.collectMany{newkey, origkey -> + if (state_.containsKey(origkey)) { + [[newkey, state_[origkey]]] + } else { + [] + } + }.collectEntries() + } + } + + map { tup -> + def id = tup[0] + def state = tup[1] + def unfilteredState = fun(id, state) + def newState = unfilteredState.findAll{key, val -> val != null} + [id, newState] + tup.drop(2) + } +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processAuto.nf' +// TODO: unit test processAuto +def processAuto(Map auto) { + // remove null values + auto = auto.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = ["simplifyInput", "simplifyOutput", "transcript", "publish"] + def unexpectedKeys = auto.keySet() - expectedKeys + assert unexpectedKeys.isEmpty(), "unexpected keys in auto: '${unexpectedKeys.join("', '")}'" + + // check auto.simplifyInput + assert auto.simplifyInput instanceof Boolean, "auto.simplifyInput must be a boolean" + + // check auto.simplifyOutput + assert auto.simplifyOutput instanceof Boolean, "auto.simplifyOutput must be a boolean" + + // check auto.transcript + assert auto.transcript instanceof Boolean, "auto.transcript must be a boolean" + + // check auto.publish + assert auto.publish instanceof Boolean || auto.publish == "state", "auto.publish must be a boolean or 'state'" + + return auto.subMap(expectedKeys) +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processDirectives.nf' +def assertMapKeys(map, expectedKeys, requiredKeys, mapName) { + assert map instanceof Map : "Expected argument '$mapName' to be a Map. Found: class ${map.getClass()}" + map.forEach { key, val -> + assert key in expectedKeys : "Unexpected key '$key' in ${mapName ? mapName + " " : ""}map" + } + requiredKeys.forEach { requiredKey -> + assert map.containsKey(requiredKey) : "Missing required key '$key' in ${mapName ? mapName + " " : ""}map" + } +} + +// TODO: unit test processDirectives +def processDirectives(Map drctv) { + // remove null values + drctv = drctv.findAll{k, v -> v != null} + + // check for unexpected keys + def expectedKeys = [ + "accelerator", "afterScript", "beforeScript", "cache", "conda", "container", "containerOptions", "cpus", "disk", "echo", "errorStrategy", "executor", "machineType", "maxErrors", "maxForks", "maxRetries", "memory", "module", "penv", "pod", "publishDir", "queue", "label", "scratch", "storeDir", "stageInMode", "stageOutMode", "tag", "time" + ] + def unexpectedKeys = drctv.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Unexpected keys in process directive: '${unexpectedKeys.join("', '")}'" + + /* DIRECTIVE accelerator + accepted examples: + - [ limit: 4, type: "nvidia-tesla-k80" ] + */ + if (drctv.containsKey("accelerator")) { + assertMapKeys(drctv["accelerator"], ["type", "limit", "request", "runtime"], [], "accelerator") + } + + /* DIRECTIVE afterScript + accepted examples: + - "source /cluster/bin/cleanup" + */ + if (drctv.containsKey("afterScript")) { + assert drctv["afterScript"] instanceof CharSequence + } + + /* DIRECTIVE beforeScript + accepted examples: + - "source /cluster/bin/setup" + */ + if (drctv.containsKey("beforeScript")) { + assert drctv["beforeScript"] instanceof CharSequence + } + + /* DIRECTIVE cache + accepted examples: + - true + - false + - "deep" + - "lenient" + */ + if (drctv.containsKey("cache")) { + assert drctv["cache"] instanceof CharSequence || drctv["cache"] instanceof Boolean + if (drctv["cache"] instanceof CharSequence) { + assert drctv["cache"] in ["deep", "lenient"] : "Unexpected value for cache" + } + } + + /* DIRECTIVE conda + accepted examples: + - "bwa=0.7.15" + - "bwa=0.7.15 fastqc=0.11.5" + - ["bwa=0.7.15", "fastqc=0.11.5"] + */ + if (drctv.containsKey("conda")) { + if (drctv["conda"] instanceof List) { + drctv["conda"] = drctv["conda"].join(" ") + } + assert drctv["conda"] instanceof CharSequence + } + + /* DIRECTIVE container + accepted examples: + - "foo/bar:tag" + - [ registry: "reg", image: "im", tag: "ta" ] + is transformed to "reg/im:ta" + - [ image: "im" ] + is transformed to "im:latest" + */ + if (drctv.containsKey("container")) { + assert drctv["container"] instanceof Map || drctv["container"] instanceof CharSequence + if (drctv["container"] instanceof Map) { + def m = drctv["container"] + assertMapKeys(m, [ "registry", "image", "tag" ], ["image"], "container") + def part1 = + System.getenv('OVERRIDE_CONTAINER_REGISTRY') ? System.getenv('OVERRIDE_CONTAINER_REGISTRY') + "/" : + params.containsKey("override_container_registry") ? params["override_container_registry"] + "/" : // todo: remove? + m.registry ? m.registry + "/" : + "" + def part2 = m.image + def part3 = m.tag ? ":" + m.tag : ":latest" + drctv["container"] = part1 + part2 + part3 + } + } + + /* DIRECTIVE containerOptions + accepted examples: + - "--foo bar" + - ["--foo bar", "-f b"] + */ + if (drctv.containsKey("containerOptions")) { + if (drctv["containerOptions"] instanceof List) { + drctv["containerOptions"] = drctv["containerOptions"].join(" ") + } + assert drctv["containerOptions"] instanceof CharSequence + } + + /* DIRECTIVE cpus + accepted examples: + - 1 + - 10 + */ + if (drctv.containsKey("cpus")) { + assert drctv["cpus"] instanceof Integer + } + + /* DIRECTIVE disk + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("disk")) { + assert drctv["disk"] instanceof CharSequence + // assert drctv["disk"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE echo + accepted examples: + - true + - false + */ + if (drctv.containsKey("echo")) { + assert drctv["echo"] instanceof Boolean + } + + /* DIRECTIVE errorStrategy + accepted examples: + - "terminate" + - "finish" + */ + if (drctv.containsKey("errorStrategy")) { + assert drctv["errorStrategy"] instanceof CharSequence + assert drctv["errorStrategy"] in ["terminate", "finish", "ignore", "retry"] : "Unexpected value for errorStrategy" + } + + /* DIRECTIVE executor + accepted examples: + - "local" + - "sge" + */ + if (drctv.containsKey("executor")) { + assert drctv["executor"] instanceof CharSequence + assert drctv["executor"] in ["local", "sge", "uge", "lsf", "slurm", "pbs", "pbspro", "moab", "condor", "nqsii", "ignite", "k8s", "awsbatch", "google-pipelines"] : "Unexpected value for executor" + } + + /* DIRECTIVE machineType + accepted examples: + - "n1-highmem-8" + */ + if (drctv.containsKey("machineType")) { + assert drctv["machineType"] instanceof CharSequence + } + + /* DIRECTIVE maxErrors + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxErrors")) { + assert drctv["maxErrors"] instanceof Integer + } + + /* DIRECTIVE maxForks + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxForks")) { + assert drctv["maxForks"] instanceof Integer + } + + /* DIRECTIVE maxRetries + accepted examples: + - 1 + - 3 + */ + if (drctv.containsKey("maxRetries")) { + assert drctv["maxRetries"] instanceof Integer + } + + /* DIRECTIVE memory + accepted examples: + - "1 GB" + - "2TB" + - "3.2KB" + - "10.B" + */ + if (drctv.containsKey("memory")) { + assert drctv["memory"] instanceof CharSequence + // assert drctv["memory"].matches("[0-9]+(\\.[0-9]*)? *[KMGTPEZY]?B") + // ^ does not allow closures + } + + /* DIRECTIVE module + accepted examples: + - "ncbi-blast/2.2.27" + - "ncbi-blast/2.2.27:t_coffee/10.0" + - ["ncbi-blast/2.2.27", "t_coffee/10.0"] + */ + if (drctv.containsKey("module")) { + if (drctv["module"] instanceof List) { + drctv["module"] = drctv["module"].join(":") + } + assert drctv["module"] instanceof CharSequence + } + + /* DIRECTIVE penv + accepted examples: + - "smp" + */ + if (drctv.containsKey("penv")) { + assert drctv["penv"] instanceof CharSequence + } + + /* DIRECTIVE pod + accepted examples: + - [ label: "key", value: "val" ] + - [ annotation: "key", value: "val" ] + - [ env: "key", value: "val" ] + - [ [label: "l", value: "v"], [env: "e", value: "v"]] + */ + if (drctv.containsKey("pod")) { + if (drctv["pod"] instanceof Map) { + drctv["pod"] = [ drctv["pod"] ] + } + assert drctv["pod"] instanceof List + drctv["pod"].forEach { pod -> + assert pod instanceof Map + // TODO: should more checks be added? + // See https://www.nextflow.io/docs/latest/process.html?highlight=directives#pod + // e.g. does it contain 'label' and 'value', or 'annotation' and 'value', or ...? + } + } + + /* DIRECTIVE publishDir + accepted examples: + - [] + - [ [ path: "foo", enabled: true ], [ path: "bar", enabled: false ] ] + - "/path/to/dir" + is transformed to [[ path: "/path/to/dir" ]] + - [ path: "/path/to/dir", mode: "cache" ] + is transformed to [[ path: "/path/to/dir", mode: "cache" ]] + */ + // TODO: should we also look at params["publishDir"]? + if (drctv.containsKey("publishDir")) { + def pblsh = drctv["publishDir"] + + // check different options + assert pblsh instanceof List || pblsh instanceof Map || pblsh instanceof CharSequence + + // turn into list if not already so + // for some reason, 'if (!pblsh instanceof List) pblsh = [ pblsh ]' doesn't work. + pblsh = pblsh instanceof List ? pblsh : [ pblsh ] + + // check elements of publishDir + pblsh = pblsh.collect{ elem -> + // turn into map if not already so + elem = elem instanceof CharSequence ? [ path: elem ] : elem + + // check types and keys + assert elem instanceof Map : "Expected publish argument '$elem' to be a String or a Map. Found: class ${elem.getClass()}" + assertMapKeys(elem, [ "path", "mode", "overwrite", "pattern", "saveAs", "enabled" ], ["path"], "publishDir") + + // check elements in map + assert elem.containsKey("path") + assert elem["path"] instanceof CharSequence + if (elem.containsKey("mode")) { + assert elem["mode"] instanceof CharSequence + assert elem["mode"] in [ "symlink", "rellink", "link", "copy", "copyNoFollow", "move" ] + } + if (elem.containsKey("overwrite")) { + assert elem["overwrite"] instanceof Boolean + } + if (elem.containsKey("pattern")) { + assert elem["pattern"] instanceof CharSequence + } + if (elem.containsKey("saveAs")) { + assert elem["saveAs"] instanceof CharSequence //: "saveAs as a Closure is currently not supported. Surround your closure with single quotes to get the desired effect. Example: '\{ foo \}'" + } + if (elem.containsKey("enabled")) { + assert elem["enabled"] instanceof Boolean + } + + // return final result + elem + } + // store final directive + drctv["publishDir"] = pblsh + } + + /* DIRECTIVE queue + accepted examples: + - "long" + - "short,long" + - ["short", "long"] + */ + if (drctv.containsKey("queue")) { + if (drctv["queue"] instanceof List) { + drctv["queue"] = drctv["queue"].join(",") + } + assert drctv["queue"] instanceof CharSequence + } + + /* DIRECTIVE label + accepted examples: + - "big_mem" + - "big_cpu" + - ["big_mem", "big_cpu"] + */ + if (drctv.containsKey("label")) { + if (drctv["label"] instanceof CharSequence) { + drctv["label"] = [ drctv["label"] ] + } + assert drctv["label"] instanceof List + drctv["label"].forEach { label -> + assert label instanceof CharSequence + // assert label.matches("[a-zA-Z0-9]([a-zA-Z0-9_]*[a-zA-Z0-9])?") + // ^ does not allow closures + } + } + + /* DIRECTIVE scratch + accepted examples: + - true + - "/path/to/scratch" + - '$MY_PATH_TO_SCRATCH' + - "ram-disk" + */ + if (drctv.containsKey("scratch")) { + assert drctv["scratch"] == true || drctv["scratch"] instanceof CharSequence + } + + /* DIRECTIVE storeDir + accepted examples: + - "/path/to/storeDir" + */ + if (drctv.containsKey("storeDir")) { + assert drctv["storeDir"] instanceof CharSequence + } + + /* DIRECTIVE stageInMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageInMode")) { + assert drctv["stageInMode"] instanceof CharSequence + assert drctv["stageInMode"] in ["copy", "link", "symlink", "rellink"] + } + + /* DIRECTIVE stageOutMode + accepted examples: + - "copy" + - "link" + */ + if (drctv.containsKey("stageOutMode")) { + assert drctv["stageOutMode"] instanceof CharSequence + assert drctv["stageOutMode"] in ["copy", "move", "rsync"] + } + + /* DIRECTIVE tag + accepted examples: + - "foo" + - '$id' + */ + if (drctv.containsKey("tag")) { + assert drctv["tag"] instanceof CharSequence + } + + /* DIRECTIVE time + accepted examples: + - "1h" + - "2days" + - "1day 6hours 3minutes 30seconds" + */ + if (drctv.containsKey("time")) { + assert drctv["time"] instanceof CharSequence + // todo: validation regex? + } + + return drctv +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/processWorkflowArgs.nf' +def processWorkflowArgs(Map args, Map defaultWfArgs, Map meta) { + // override defaults with args + def workflowArgs = defaultWfArgs + args + + // check whether 'key' exists + assert workflowArgs.containsKey("key") : "Error in module '${meta.config.name}': key is a required argument" + + // if 'key' is a closure, apply it to the original key + if (workflowArgs["key"] instanceof Closure) { + workflowArgs["key"] = workflowArgs["key"](meta.config.name) + } + def key = workflowArgs["key"] + assert key instanceof CharSequence : "Expected process argument 'key' to be a String. Found: class ${key.getClass()}" + assert key ==~ /^[a-zA-Z_]\w*$/ : "Error in module '$key': Expected process argument 'key' to consist of only letters, digits or underscores. Found: ${key}" + + // check for any unexpected keys + def expectedKeys = ["key", "directives", "auto", "map", "mapId", "mapData", "mapPassthrough", "filter", "runIf", "fromState", "toState", "args", "renameKeys", "debug"] + def unexpectedKeys = workflowArgs.keySet() - expectedKeys + assert unexpectedKeys.isEmpty() : "Error in module '$key': unexpected arguments to the '.run()' function: '${unexpectedKeys.join("', '")}'" + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("directives") : "Error in module '$key': directives is a required argument" + assert workflowArgs["directives"] instanceof Map : "Error in module '$key': Expected process argument 'directives' to be a Map. Found: class ${workflowArgs['directives'].getClass()}" + workflowArgs["directives"] = processDirectives(defaultWfArgs.directives + workflowArgs["directives"]) + + // check whether directives exists and apply defaults + assert workflowArgs.containsKey("auto") : "Error in module '$key': auto is a required argument" + assert workflowArgs["auto"] instanceof Map : "Error in module '$key': Expected process argument 'auto' to be a Map. Found: class ${workflowArgs['auto'].getClass()}" + workflowArgs["auto"] = processAuto(defaultWfArgs.auto + workflowArgs["auto"]) + + // auto define publish, if so desired + if (workflowArgs.auto.publish == true && (workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : [:]).isEmpty()) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.publish is true, params.publish_dir needs to be defined.\n" + + // " Example: params.publish_dir = \"./output/\"" + def publishDir = getPublishDir() + + if (publishDir != null) { + workflowArgs.directives.publishDir = [[ + path: publishDir, + saveAs: "{ it.startsWith('.') ? null : it }", // don't publish hidden files, by default + mode: "copy" + ]] + } + } + + // auto define transcript, if so desired + if (workflowArgs.auto.transcript == true) { + // can't assert at this level thanks to the no_publish profile + // assert params.containsKey("transcriptsDir") || params.containsKey("transcripts_dir") || params.containsKey("publishDir") || params.containsKey("publish_dir") : + // "Error in module '${workflowArgs['key']}': if auto.transcript is true, either params.transcripts_dir or params.publish_dir needs to be defined.\n" + + // " Example: params.transcripts_dir = \"./transcripts/\"" + def transcriptsDir = + params.containsKey("transcripts_dir") ? params.transcripts_dir : + params.containsKey("transcriptsDir") ? params.transcriptsDir : + params.containsKey("publish_dir") ? params.publish_dir + "/_transcripts" : + params.containsKey("publishDir") ? params.publishDir + "/_transcripts" : + null + if (transcriptsDir != null) { + def timestamp = nextflow.Nextflow.getSession().getWorkflowMetadata().start.format('yyyy-MM-dd_HH-mm-ss') + def transcriptsPublishDir = [ + path: "$transcriptsDir/$timestamp/\${task.process.replaceAll(':', '-')}/\${id}/", + saveAs: "{ it.startsWith('.') ? it.replaceAll('^.', '') : null }", + mode: "copy" + ] + def publishDirs = workflowArgs.directives.publishDir != null ? workflowArgs.directives.publishDir : null ? workflowArgs.directives.publishDir : [] + workflowArgs.directives.publishDir = publishDirs + transcriptsPublishDir + } + } + + // if this is a stubrun, remove certain directives? + if (workflow.stubRun) { + workflowArgs.directives.keySet().removeAll(["publishDir", "cpus", "memory", "label"]) + } + + for (nam in ["map", "mapId", "mapData", "mapPassthrough", "filter", "runIf"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam]) { + assert workflowArgs[nam] instanceof Closure : "Error in module '$key': Expected process argument '$nam' to be null or a Closure. Found: class ${workflowArgs[nam].getClass()}" + } + } + + // TODO: should functions like 'map', 'mapId', 'mapData', 'mapPassthrough' be deprecated as well? + for (nam in ["map", "mapData", "mapPassthrough", "renameKeys"]) { + if (workflowArgs.containsKey(nam) && workflowArgs[nam] != null) { + log.warn "module '$key': workflow argument '$nam' is deprecated and will be removed in Viash 0.9.0. Please use 'fromState' and 'toState' instead." + } + } + + // check fromState + workflowArgs["fromState"] = _processFromState(workflowArgs.get("fromState"), key, meta.config) + + // check toState + workflowArgs["toState"] = _processToState(workflowArgs.get("toState"), key, meta.config) + + // return output + return workflowArgs +} + +def _processFromState(fromState, key_, config_) { + assert fromState == null || fromState instanceof Closure || fromState instanceof Map || fromState instanceof List : + "Error in module '$key_': Expected process argument 'fromState' to be null, a Closure, a Map, or a List. Found: class ${fromState.getClass()}" + if (fromState == null) { + return null + } + + // if fromState is a List, convert to map + if (fromState instanceof List) { + // check whether fromstate is a list[string] + assert fromState.every{it instanceof CharSequence} : "Error in module '$key_': fromState is a List, but not all elements are Strings" + fromState = fromState.collectEntries{[it, it]} + } + + // if fromState is a map, convert to closure + if (fromState instanceof Map) { + // check whether fromstate is a map[string, string] + assert fromState.values().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all values are Strings" + assert fromState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': fromState is a Map, but not all keys are Strings" + def fromStateMap = fromState.clone() + def requiredInputNames = meta.config.allArguments.findAll{it.required && it.direction == "Input"}.collect{it.plainName} + // turn the map into a closure to be used later on + fromState = { it -> + def state = it[1] + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def data = fromStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (state.containsKey(origkey)) { + [[newkey, state[origkey]]] + } else if (!requiredInputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': fromState key '$origkey' not found in current state") + } + }.collectEntries() + data + } + } + + return fromState +} + +def _processToState(toState, key_, config_) { + if (toState == null) { + toState = { tup -> tup[1] } + } + + // toState should be a closure, map[string, string], or list[string] + assert toState instanceof Closure || toState instanceof Map || toState instanceof List : + "Error in module '$key_': Expected process argument 'toState' to be a Closure, a Map, or a List. Found: class ${toState.getClass()}" + + // if toState is a List, convert to map + if (toState instanceof List) { + // check whether toState is a list[string] + assert toState.every{it instanceof CharSequence} : "Error in module '$key_': toState is a List, but not all elements are Strings" + toState = toState.collectEntries{[it, it]} + } + + // if toState is a map, convert to closure + if (toState instanceof Map) { + // check whether toState is a map[string, string] + assert toState.values().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all values are Strings" + assert toState.keySet().every{it instanceof CharSequence} : "Error in module '$key_': toState is a Map, but not all keys are Strings" + def toStateMap = toState.clone() + def requiredOutputNames = config_.allArguments.findAll{it.required && it.direction == "Output"}.collect{it.plainName} + // turn the map into a closure to be used later on + toState = { it -> + def output = it[1] + def state = it[2] + assert output instanceof Map : "Error in module '$key_': the output is not a Map" + assert state instanceof Map : "Error in module '$key_': the state is not a Map" + def extraEntries = toStateMap.collectMany{newkey, origkey -> + // check whether newkey corresponds to a required argument + if (output.containsKey(origkey)) { + [[newkey, output[origkey]]] + } else if (!requiredOutputNames.contains(origkey)) { + [] + } else { + throw new Exception("Error in module '$key_': toState key '$origkey' not found in current output") + } + }.collectEntries() + state + extraEntries + } + } + + return toState +} + +// helper file: 'src/main/resources/io/viash/runners/nextflow/workflowFactory/workflowFactory.nf' +def _debug(workflowArgs, debugKey) { + if (workflowArgs.debug) { + view { "process '${workflowArgs.key}' $debugKey tuple: $it" } + } else { + map { it } + } +} + +// depends on: innerWorkflowFactory +def workflowFactory(Map args, Map defaultWfArgs, Map meta) { + def workflowArgs = processWorkflowArgs(args, defaultWfArgs, meta) + def key_ = workflowArgs["key"] + + workflow workflowInstance { + take: input_ + + main: + def chModified = input_ + | checkUniqueIds([:]) + | _debug(workflowArgs, "input") + | map { tuple -> + tuple = deepClone(tuple) + + if (workflowArgs.map) { + tuple = workflowArgs.map(tuple) + } + if (workflowArgs.mapId) { + tuple[0] = workflowArgs.mapId(tuple[0]) + } + if (workflowArgs.mapData) { + tuple[1] = workflowArgs.mapData(tuple[1]) + } + if (workflowArgs.mapPassthrough) { + tuple = tuple.take(2) + workflowArgs.mapPassthrough(tuple.drop(2)) + } + + // check tuple + assert tuple instanceof List : + "Error in module '${key_}': element in channel should be a tuple [id, data, ...otherargs...]\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: List. Found: tuple.getClass() is ${tuple.getClass()}" + assert tuple.size() >= 2 : + "Error in module '${key_}': expected length of tuple in input channel to be two or greater.\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: tuple.size() == ${tuple.size()}" + + // check id field + if (tuple[0] instanceof GString) { + tuple[0] = tuple[0].toString() + } + assert tuple[0] instanceof CharSequence : + "Error in module '${key_}': first element of tuple in channel should be a String\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Found: ${tuple[0]}" + + // match file to input file + if (workflowArgs.auto.simplifyInput && (tuple[1] instanceof Path || tuple[1] instanceof List)) { + def inputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + + assert inputFiles.size() == 1 : + "Error in module '${key_}' id '${tuple[0]}'.\n" + + " Anonymous file inputs are only allowed when the process has exactly one file input.\n" + + " Expected: inputFiles.size() == 1. Found: inputFiles.size() is ${inputFiles.size()}" + + tuple[1] = [[ inputFiles[0].plainName, tuple[1] ]].collectEntries() + } + + // check data field + assert tuple[1] instanceof Map : + "Error in module '${key_}' id '${tuple[0]}': second element of tuple in channel should be a Map\n" + + " Example: [\"id\", [input: file('foo.txt'), arg: 10]].\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // rename keys of data field in tuple + if (workflowArgs.renameKeys) { + assert workflowArgs.renameKeys instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class: Map. Found: renameKeys.getClass() is ${workflowArgs.renameKeys.getClass()}" + assert tuple[1] instanceof Map : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Expected class: Map. Found: tuple[1].getClass() is ${tuple[1].getClass()}" + + // TODO: allow renameKeys to be a function? + workflowArgs.renameKeys.each { newKey, oldKey -> + assert newKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of newKey: String. Found: newKey.getClass() is ${newKey.getClass()}" + assert oldKey instanceof CharSequence : + "Error renaming data keys in module '${key_}' id '${tuple[0]}'.\n" + + " Example: renameKeys: ['new_key': 'old_key'].\n" + + " Expected class of oldKey: String. Found: oldKey.getClass() is ${oldKey.getClass()}" + assert tuple[1].containsKey(oldKey) : + "Error renaming data keys in module '${key}' id '${tuple[0]}'.\n" + + " Key '$oldKey' is missing in the data map. tuple[1].keySet() is '${tuple[1].keySet()}'" + tuple[1].put(newKey, tuple[1][oldKey]) + } + tuple[1].keySet().removeAll(workflowArgs.renameKeys.collect{ newKey, oldKey -> oldKey }) + } + tuple + } + + + def chRun = null + def chPassthrough = null + if (workflowArgs.runIf) { + def runIfBranch = chModified.branch{ tup -> + run: workflowArgs.runIf(tup[0], tup[1]) + passthrough: true + } + chRun = runIfBranch.run + chPassthrough = runIfBranch.passthrough + } else { + chRun = chModified + chPassthrough = Channel.empty() + } + + def chRunFiltered = workflowArgs.filter ? + chRun | filter{workflowArgs.filter(it)} : + chRun + + def chArgs = workflowArgs.fromState ? + chRunFiltered | map{ + def new_data = workflowArgs.fromState(it.take(2)) + [it[0], new_data] + } : + chRunFiltered | map {tup -> tup.take(2)} + + // fill in defaults + def chArgsWithDefaults = chArgs + | map { tuple -> + def id_ = tuple[0] + def data_ = tuple[1] + + // TODO: could move fromState to here + + // fetch default params from functionality + def defaultArgs = meta.config.allArguments + .findAll { it.containsKey("default") } + .collectEntries { [ it.plainName, it.default ] } + + // fetch overrides in params + def paramArgs = meta.config.allArguments + .findAll { par -> + def argKey = key_ + "__" + par.plainName + params.containsKey(argKey) + } + .collectEntries { [ it.plainName, params[key_ + "__" + it.plainName] ] } + + // fetch overrides in data + def dataArgs = meta.config.allArguments + .findAll { data_.containsKey(it.plainName) } + .collectEntries { [ it.plainName, data_[it.plainName] ] } + + // combine params + def combinedArgs = defaultArgs + paramArgs + workflowArgs.args + dataArgs + + // remove arguments with explicit null values + combinedArgs + .removeAll{_, val -> val == null || val == "viash_no_value" || val == "force_null"} + + combinedArgs = _processInputValues(combinedArgs, meta.config, id_, key_) + + [id_, combinedArgs] + tuple.drop(2) + } + + // TODO: move some of the _meta.join_id wrangling to the safeJoin() function. + def chInitialOutput = chArgsWithDefaults + | _debug(workflowArgs, "processed") + // run workflow + | innerWorkflowFactory(workflowArgs) + // check output tuple + | map { id_, output_ -> + + // see if output map contains metadata + def meta_ = + output_ instanceof Map && output_.containsKey("_meta") ? + output_["_meta"] : + [:] + def join_id = meta_.join_id ?: id_ + + // remove metadata + output_ = output_.findAll{k, v -> k != "_meta"} + + // check value types + output_ = _processOutputValues(output_, meta.config, id_, key_) + + // simplify output if need be + if (workflowArgs.auto.simplifyOutput && output_.size() == 1) { + output_ = output_.values()[0] + } + + [join_id, id_, output_] + } + // | view{"chInitialOutput: ${it.take(3)}"} + + // join the output [prev_id, new_id, output] with the previous state [prev_id, state, ...] + def chNewState = safeJoin(chInitialOutput, chRunFiltered, key_) + // input tuple format: [join_id, id, output, prev_state, ...] + // output tuple format: [join_id, id, new_state, ...] + | map{ tup -> + def new_state = workflowArgs.toState(tup.drop(1).take(3)) + tup.take(2) + [new_state] + tup.drop(4) + } + + if (workflowArgs.auto.publish == "state") { + def chPublish = chNewState + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [join_id, id, new_state] + | map{ tup -> + tup.take(3) + } + + safeJoin(chPublish, chArgsWithDefaults, key_) + // input tuple format: [join_id, id, new_state, orig_state, ...] + // output tuple format: [id, new_state, orig_state] + | map { tup -> + tup.drop(1).take(3) + } + | publishStatesByConfig(key: key_, config: meta.config) + } + + // remove join_id and meta + chReturn = chNewState + | map { tup -> + // input tuple format: [join_id, id, new_state, ...] + // output tuple format: [id, new_state, ...] + tup.drop(1) + } + | _debug(workflowArgs, "output") + | concat(chPassthrough) + + emit: chReturn + } + + def wf = workflowInstance.cloneWithName(key_) + + // add factory function + wf.metaClass.run = { runArgs -> + workflowFactory(runArgs, workflowArgs, meta) + } + // add config to module for later introspection + wf.metaClass.config = meta.config + + return wf +} + +nextflow.enable.dsl=2 + +// START COMPONENT-SPECIFIC CODE + +// create meta object +meta = [ + "resources_dir": moduleDir.toRealPath().normalize(), + "config": processConfig(readJsonBlob('''{ + "name" : "trimgalore", + "version" : "main", + "authors" : [ + { + "name" : "Sai Nirmayi Yasa", + "roles" : [ + "author", + "maintainer" + ], + "info" : { + "links" : { + "email" : "nirmayi@data-intuitive.com", + "github" : "sainirmayi", + "linkedin" : "sai-nirmayi-yasa" + }, + "organizations" : [ + { + "name" : "Data Intuitive", + "href" : "https://www.data-intuitive.com", + "role" : "Junior Bioinformatics Researcher" + } + ] + } + } + ], + "argument_groups" : [ + { + "name" : "Input", + "arguments" : [ + { + "type" : "file", + "name" : "--input", + "description" : "Input files. Note that paired-end files need to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz", + "example" : [ + "sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "input", + "multiple" : true, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Trimming options", + "arguments" : [ + { + "type" : "integer", + "name" : "--quality", + "alternatives" : [ + "-q" + ], + "description" : "Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal. For RRBS samples, quality trimming will be performed first, and adapter trimming is carried in a second round. Other files are quality and adapter trimmed in a single pass. The algorithm is the same as the one used by BWA (Subtract INT from all qualities; compute partial sums from all indices to the end of the sequence; cut sequence at the index at which the sum is minimal).", + "example" : [ + 20 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "boolean_true", + "name" : "--phred33", + "description" : "Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1.9+ encoding) for quality trimming.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--phred64", + "description" : "Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1.5 encoding) for quality trimming.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--fastqc", + "description" : "Run FastQC in the default mode on the FastQ file once trimming is complete.", + "direction" : "input" + }, + { + "type" : "string", + "name" : "--fastqc_args", + "description" : "Passes extra arguments (excluding files) to FastQC. If more than one argument is to be passed to FastQC they must be in the form \\"arg1 arg2 ...\\". Passing extra arguments will automatically invoke FastQC, so --fastqc does not have to be specified separately.", + "example" : [ + "--nogroup --noextract" + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--fastqc_contaminants", + "description" : "Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against. The file must contain sets of named contaminants in the form name[tab]sequence. Lines prefixed with a hash will be ignored.", + "example" : [ + "contaminants.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--fastqc_adapters", + "description" : "Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library. The file must contain sets of named adapters in the form name[tab]sequence. Lines prefixed with a hash will be ignored.", + "example" : [ + "adapters.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--fastqc_limits", + "description" : "Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules. This file can also be used to selectively remove some modules from the output all together. The format needs to mirror the default limits.txt file found in the Configuration folder.", + "example" : [ + "limits.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "string", + "name" : "--adapter", + "alternatives" : [ + "-a" + ], + "description" : "Adapter sequence to be trimmed. If not specified explicitly, Trim Galore will try to auto-detect whether the Illumina universal, Nextera transposase or Illumina small RNA adapter sequence was used. A single base may also be given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. \nAt a special request, multiple adapters can also be specified like so: \n -a \\" AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT\\" -a2 \\" AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT\\", \nor so:\n -a \\"file:../multiple_adapters.fa\\" -a2 \\"file:../different_adapters.fa\\"\nPotentially in conjucntion with the parameter \\"-n 3\\" to trim all adapters. \n", + "example" : [ + "AGCTCCCG" + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "string", + "name" : "--adapter2", + "alternatives" : [ + "-a2" + ], + "description" : "Optional adapter sequence to be trimmed off read 2 of paired-end files. This option requires '--paired' to be specified as well. If the libraries to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5' adapter automatically (GATCGTCGGACT). A single base may also be given as e.g. -a2 A{10}, to be expanded to -a2 AAAAAAAAAA.", + "example" : [ + "AGCTCCCG" + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "boolean_true", + "name" : "--illumina", + "description" : "Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter 'AGATCGGAAGAGC' instead of the default auto-detection of adapter sequence.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--stranded_illumina", + "description" : "Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter 'ACTGTCTCTTATA' instead of the default auto-detection of adapter sequence.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--nextera", + "description" : "Adapter sequence to be trimmed is the first 12bp of the Nextera adapter 'CTGTCTCTTATA' instead of the default auto-detection of adapter sequence.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--small_rna", + "description" : "Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3' Adapter 'TGGAATTCTCGG' instead of the default auto-detection of adapter sequence. Selecting to trim smallRNA adapters will also lower the --length value to 18bp. If the smallRNA libraries are paired-end then a automatically (GATCGTCGGACT) unless -a 2 had been defined explicitly.", + "direction" : "input" + }, + { + "type" : "integer", + "name" : "--consider_already_trimmed", + "description" : "During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed. If no adapter sequence exceeds this threshold, no additional adapter trimming will be performed (technically, the adapter is set to '-a X'). Quality trimming is still performed as usual.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--max_length", + "description" : "Discard reads that are longer than the specified value after trimming. This is only advised for smallRNA sequencing to remove non-small RNA sequences.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--stringency", + "description" : "Overlap with adapter sequence required to trim a sequence. Defaults to a very stringent setting of 1, i.e. even a single bp of overlapping sequence will be trimmed off from the 3' end of any read.", + "example" : [ + 1 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "double", + "name" : "--error_rate", + "alternatives" : [ + "-e" + ], + "description" : "Maximum allowed error rate (no. of errors divided by the length of the matching region)", + "example" : [ + 0.1 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "boolean_true", + "name" : "--gzip", + "description" : "Compress the output file with GZIP. If the input files are GZIP-compressed the output files will automatically be GZIP compressed as well. As of v0.2.8 the compression will take place on the fly.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--dont_gzip", + "description" : "Output files won't be compressed with GZIP. This option overrides --gzip.", + "direction" : "input" + }, + { + "type" : "integer", + "name" : "--length", + "description" : "Discard reads that became shorter than the specified length because of either quality or adapter trimming. A value of '0' effectively disables this behaviour. For paired-end files, both reads of a read-pair need to be longer than the specified length to be printed out to validated paired-end files. If only one read became too short there is the possibility of keeping such unpaired single-end reads using the --retain_unpaired option.", + "example" : [ + 20 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--max_n", + "description" : "The total number of Ns a read may contain before it will be removed altogether.In a paired-end setting, either read exceeding this limit will result in the entire pair being removed from the trimmed output files. If COUNT is a number between 0 and 1, it is interpreted as a fraction of the read length.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "boolean_true", + "name" : "--trim_n", + "description" : "Removes Ns from either side of the read. This option does currently not work in RRBS mode.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--no_report_file", + "description" : "If specified no report file will be generated.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--suppress_warn", + "description" : "If specified any output to STDOUT or STDERR will be suppressed.", + "direction" : "input" + }, + { + "type" : "integer", + "name" : "--clip_R1", + "description" : "Instructs TrimGalore to remove given number of bp from the 5' end of read 1 (or single-end reads). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5' end.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--clip_R2", + "description" : "Instructs TrimGalore to remove given number bp from the 5' end of read 2 (paired-end reads only). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5' end. For paired-end BS-Seq, it is recommended to remove the first few bp because the end-repair reaction may introduce a bias towards low methylation.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--three_prime_clip_R1", + "description" : "Instructs Trim Galore to remove spacified number of bp from the 3' end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed. This may remove some bias from the 3' end that is not directly related to adapter sequence or basecall quality.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--three_prime_clip_R2", + "description" : "Instructs Trim Galore to remove bp from the 3' end of read 2 AFTER adapter/quality trimming has been performed. This may remove some unwanted bias from the 3' end that is not directly related to adapter sequence or basecall quality.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--nextseq", + "description" : "This enables the option '--nextseq-trim=3'CUTOFF' within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored. This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without any signal are called as high-quality G bases. This is mutually exlusive with '-q INT'.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "string", + "name" : "--basename", + "description" : "Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files. Single-end data would be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Specific trimming options without adapter/quality trimming", + "arguments" : [ + { + "type" : "integer", + "name" : "--hardtrim5", + "description" : "Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to bp at the 5'-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in ._5prime.fq(.gz).", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--hardtrim3", + "description" : "Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to bp at the 3'-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in ._3prime.fq(.gz).", + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "boolean_true", + "name" : "--clock", + "description" : "In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--polyA", + "description" : "This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences. When --polyA is selected, Trim Galore attempts to identify from the first supplied sample whether sequences contain more often a stretch of either 'AAAAAAAAAA' or 'TTTTTTTTTT'. This determines if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary base from the start of the reads. The auto-detection uses a default of A{20} for Read1 (3'-end trimming) and T{150} for Read2 (5'-end trimming). These values may be changed manually using the options -a and -a2. In addition to trimming the sequences, white spaces are replaced with _ and it records in the read ID how many bases were trimmed so it can later be used to identify PolyA trimmed sequences. This is currently done by writing tags to both the start (\\"32:A:\\") and end (\\"_PolyA:32\\") of the reads. The poly-A trimming mode expects that sequences were both adapter and quality before looking for Poly-A tails, and it is the user's responsibility to carry out an initial round of trimming.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--implicon", + "description" : "This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads. Following this, Trim Galore will exit. In it's current implementation, the UMI carrying reads come in the following format\n Read 1 5' FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3'\n Read 2 3' UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5'\nWhere UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual fragment to be sequenced. The UMI of Read 2 (R2) is written into the read ID of both reads and removed from the actual sequence.\n", + "direction" : "input" + } + ] + }, + { + "name" : "RRBS-specific options", + "arguments" : [ + { + "type" : "boolean_true", + "name" : "--rrbs", + "description" : "Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed will have a further 2 bp removed from their 3' end. Sequences which were merely trimmed because of poor quality will not be shortened further. Read 2 of paired-end libraries will in addition have the first 2 bp removed from the 5' end (by setting '--clip_r2 2'). This is to avoid using artificial methylation calls from the filled-in cytosine positions close to the 3' MspI site in sequenced fragments. This option is not recommended for users of the Tecan Ovation RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below).", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--non_directional", + "description" : "Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for 'CAA' or 'CGA' at the start of the read and, if found, removes the first two basepairs. Like with the option '--rrbs' this avoids using cytosine positions that were filled-in during the end-repair step. '--non_directional' requires '--rrbs' to be specified as well. Note that this option does not set '--clip_r2 2' in paired-end mode.", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--keep", + "description" : "Keep the quality trimmed intermediate file.", + "direction" : "input" + } + ] + }, + { + "name" : "Paired-end specific options", + "arguments" : [ + { + "type" : "boolean_true", + "name" : "--paired", + "description" : "This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files. To pass the validation test, both sequences of a sequence pair are required to have a certain minimum length which is governed by the option --length (see above). If only one read passes this length threshold the other read can be rescued (see option --retain_unpaired). Using this option lets you discard too short read pairs without disturbing the sequence-by-sequence order of FastQ files which is required by many aligners. Trim Galore expects paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz ... .", + "direction" : "input" + }, + { + "type" : "boolean_true", + "name" : "--retain_unpaired", + "description" : "If only one of the two paired-end reads became too short, the longer read will be written to either '.unpaired_1.fq' or '.unpaired_2.fq' output files. The length cutoff for unpaired single-end reads is governed by the parameters -r1/--length_1 and -r2/--length_2.", + "direction" : "input" + }, + { + "type" : "integer", + "name" : "--length_1", + "alternatives" : [ + "-r1" + ], + "description" : "Unpaired single-end read length cutoff needed for read 1 to be written to '.unpaired_1.fq' output file. These reads may be mapped in single-end mode.", + "example" : [ + 35 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "integer", + "name" : "--length_2", + "alternatives" : [ + "-r2" + ], + "description" : "Unpaired single-end read length cutoff needed for read 2 to be written to '.unpaired_2.fq' output file. These reads may be mapped in single-end mode.", + "example" : [ + 35 + ], + "required" : false, + "direction" : "input", + "multiple" : false, + "multiple_sep" : ";" + } + ] + }, + { + "name" : "Output", + "arguments" : [ + { + "type" : "file", + "name" : "--output_dir", + "alternatives" : [ + "-o" + ], + "description" : "If specified all output will be written to this directory instead of the current directory.", + "default" : [ + "trimmed_output" + ], + "must_exist" : true, + "create_parent" : true, + "required" : true, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_r1", + "description" : "Output file for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_1.fastq" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_r2", + "description" : "Output file for read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_2.fastq" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimming_report_r1", + "description" : "Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_1.trimming_report.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimming_report_r2", + "description" : "Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_2.trimming_report.txt" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_fastqc_html_1", + "description" : "FastQC report for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_1.fastqc.html" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_fastqc_html_2", + "description" : "FastQC report for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_2.fastqc.html" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_fastqc_zip_1", + "description" : "FastQC results for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_1.fastqc.zip" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--trimmed_fastqc_zip_2", + "description" : "FastQC results for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "read_2.fastqc.zip" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--unpaired_r1", + "description" : "Output file for unpired read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "unpaired_read_1.fastq" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, + { + "type" : "file", + "name" : "--unpaired_r2", + "description" : "Output file for unpaired read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists.", + "example" : [ + "unpaired_read_2.fastq" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + } + ] + } + ], + "resources" : [ + { + "type" : "bash_script", + "path" : "script.sh", + "is_executable" : true + } + ], + "description" : "A wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files. \n", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + } + ], + "status" : "enabled", + "requirements" : { + "commands" : [ + "ps" + ] + }, + "keywords" : [ + "trimming", + "adapters" + ], + "license" : "GPL-3.0", + "references" : { + "doi" : [ + "10.5281/zenodo.7598955" + ] + }, + "links" : { + "repository" : "https://github.com/FelixKrueger/TrimGalore", + "homepage" : "https://github.com/FelixKrueger/TrimGalore", + "documentation" : "https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md" + }, + "runners" : [ + { + "type" : "executable", + "id" : "executable", + "docker_setup_strategy" : "ifneedbepullelsecachedbuild" + }, + { + "type" : "nextflow", + "id" : "nextflow", + "directives" : { + "tag" : "$id" + }, + "auto" : { + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false + }, + "config" : { + "labels" : { + "mem1gb" : "memory = 1000000000.B", + "mem2gb" : "memory = 2000000000.B", + "mem5gb" : "memory = 5000000000.B", + "mem10gb" : "memory = 10000000000.B", + "mem20gb" : "memory = 20000000000.B", + "mem50gb" : "memory = 50000000000.B", + "mem100gb" : "memory = 100000000000.B", + "mem200gb" : "memory = 200000000000.B", + "mem500gb" : "memory = 500000000000.B", + "mem1tb" : "memory = 1000000000000.B", + "mem2tb" : "memory = 2000000000000.B", + "mem5tb" : "memory = 5000000000000.B", + "mem10tb" : "memory = 10000000000000.B", + "mem20tb" : "memory = 20000000000000.B", + "mem50tb" : "memory = 50000000000000.B", + "mem100tb" : "memory = 100000000000000.B", + "mem200tb" : "memory = 200000000000000.B", + "mem500tb" : "memory = 500000000000000.B", + "mem1gib" : "memory = 1073741824.B", + "mem2gib" : "memory = 2147483648.B", + "mem4gib" : "memory = 4294967296.B", + "mem8gib" : "memory = 8589934592.B", + "mem16gib" : "memory = 17179869184.B", + "mem32gib" : "memory = 34359738368.B", + "mem64gib" : "memory = 68719476736.B", + "mem128gib" : "memory = 137438953472.B", + "mem256gib" : "memory = 274877906944.B", + "mem512gib" : "memory = 549755813888.B", + "mem1tib" : "memory = 1099511627776.B", + "mem2tib" : "memory = 2199023255552.B", + "mem4tib" : "memory = 4398046511104.B", + "mem8tib" : "memory = 8796093022208.B", + "mem16tib" : "memory = 17592186044416.B", + "mem32tib" : "memory = 35184372088832.B", + "mem64tib" : "memory = 70368744177664.B", + "mem128tib" : "memory = 140737488355328.B", + "mem256tib" : "memory = 281474976710656.B", + "mem512tib" : "memory = 562949953421312.B", + "cpu1" : "cpus = 1", + "cpu2" : "cpus = 2", + "cpu5" : "cpus = 5", + "cpu10" : "cpus = 10", + "cpu20" : "cpus = 20", + "cpu50" : "cpus = 50", + "cpu100" : "cpus = 100", + "cpu200" : "cpus = 200", + "cpu500" : "cpus = 500", + "cpu1000" : "cpus = 1000" + } + }, + "debug" : false, + "container" : "docker" + } + ], + "engines" : [ + { + "type" : "docker", + "id" : "docker", + "image" : "quay.io/biocontainers/trim-galore:0.6.10--hdfd78af_0", + "target_registry" : "images.viash-hub.com", + "target_tag" : "main", + "namespace_separator" : "/", + "setup" : [ + { + "type" : "docker", + "run" : [ + "echo \\"TrimGalore: `trim_galore --version | sed -n 's/.*version\\\\s\\\\+\\\\([0-9]\\\\+\\\\.[0-9]\\\\+\\\\.[0-9]\\\\+\\\\).*/\\\\1/p'`\\" > /var/software_versions.txt\n" + ] + } + ] + }, + { + "type" : "native", + "id" : "native" + } + ], + "build_info" : { + "config" : "/workdir/root/repo/src/trimgalore/config.vsh.yaml", + "runner" : "nextflow", + "engine" : "docker|native", + "output" : "target/nextflow/trimgalore", + "viash_version" : "0.9.0", + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" + }, + "package_config" : { + "name" : "biobox", + "version" : "main", + "description" : "A collection of bioinformatics tools for working with sequence data.\n", + "viash_version" : "0.9.0", + "source" : "src", + "target" : "target", + "config_mods" : [ + ".requirements.commands := ['ps']\n", + ".engines += { type: \\"native\\" }", + ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'", + ".engines[.type == 'docker'].target_tag := 'main'" + ], + "keywords" : [ + "bioinformatics", + "modules", + "sequencing" + ], + "license" : "MIT", + "organization" : "vsh", + "links" : { + "repository" : "https://github.com/viash-hub/biobox", + "issue_tracker" : "https://github.com/viash-hub/biobox/issues" + } + } +}''')) +] + +// resolve dependencies dependencies (if any) + + +// inner workflow +// inner workflow hook +def innerWorkflowFactory(args) { + def rawScript = '''set -e +tempscript=".viash_script.sh" +cat > "$tempscript" << VIASHMAIN +## VIASH START +# The following code has been auto-generated by Viash. +$( if [ ! -z ${VIASH_PAR_INPUT+x} ]; then echo "${VIASH_PAR_INPUT}" | sed "s#'#'\\"'\\"'#g;s#.*#par_input='&'#" ; else echo "# par_input="; fi ) +$( if [ ! -z ${VIASH_PAR_QUALITY+x} ]; then echo "${VIASH_PAR_QUALITY}" | sed "s#'#'\\"'\\"'#g;s#.*#par_quality='&'#" ; else echo "# par_quality="; fi ) +$( if [ ! -z ${VIASH_PAR_PHRED33+x} ]; then echo "${VIASH_PAR_PHRED33}" | sed "s#'#'\\"'\\"'#g;s#.*#par_phred33='&'#" ; else echo "# par_phred33="; fi ) +$( if [ ! -z ${VIASH_PAR_PHRED64+x} ]; then echo "${VIASH_PAR_PHRED64}" | sed "s#'#'\\"'\\"'#g;s#.*#par_phred64='&'#" ; else echo "# par_phred64="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC+x} ]; then echo "${VIASH_PAR_FASTQC}" | sed "s#'#'\\"'\\"'#g;s#.*#par_fastqc='&'#" ; else echo "# par_fastqc="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_ARGS+x} ]; then echo "${VIASH_PAR_FASTQC_ARGS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_fastqc_args='&'#" ; else echo "# par_fastqc_args="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_CONTAMINANTS+x} ]; then echo "${VIASH_PAR_FASTQC_CONTAMINANTS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_fastqc_contaminants='&'#" ; else echo "# par_fastqc_contaminants="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_ADAPTERS+x} ]; then echo "${VIASH_PAR_FASTQC_ADAPTERS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_fastqc_adapters='&'#" ; else echo "# par_fastqc_adapters="; fi ) +$( if [ ! -z ${VIASH_PAR_FASTQC_LIMITS+x} ]; then echo "${VIASH_PAR_FASTQC_LIMITS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_fastqc_limits='&'#" ; else echo "# par_fastqc_limits="; fi ) +$( if [ ! -z ${VIASH_PAR_ADAPTER+x} ]; then echo "${VIASH_PAR_ADAPTER}" | sed "s#'#'\\"'\\"'#g;s#.*#par_adapter='&'#" ; else echo "# par_adapter="; fi ) +$( if [ ! -z ${VIASH_PAR_ADAPTER2+x} ]; then echo "${VIASH_PAR_ADAPTER2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_adapter2='&'#" ; else echo "# par_adapter2="; fi ) +$( if [ ! -z ${VIASH_PAR_ILLUMINA+x} ]; then echo "${VIASH_PAR_ILLUMINA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_illumina='&'#" ; else echo "# par_illumina="; fi ) +$( if [ ! -z ${VIASH_PAR_STRANDED_ILLUMINA+x} ]; then echo "${VIASH_PAR_STRANDED_ILLUMINA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_stranded_illumina='&'#" ; else echo "# par_stranded_illumina="; fi ) +$( if [ ! -z ${VIASH_PAR_NEXTERA+x} ]; then echo "${VIASH_PAR_NEXTERA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_nextera='&'#" ; else echo "# par_nextera="; fi ) +$( if [ ! -z ${VIASH_PAR_SMALL_RNA+x} ]; then echo "${VIASH_PAR_SMALL_RNA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_small_rna='&'#" ; else echo "# par_small_rna="; fi ) +$( if [ ! -z ${VIASH_PAR_CONSIDER_ALREADY_TRIMMED+x} ]; then echo "${VIASH_PAR_CONSIDER_ALREADY_TRIMMED}" | sed "s#'#'\\"'\\"'#g;s#.*#par_consider_already_trimmed='&'#" ; else echo "# par_consider_already_trimmed="; fi ) +$( if [ ! -z ${VIASH_PAR_MAX_LENGTH+x} ]; then echo "${VIASH_PAR_MAX_LENGTH}" | sed "s#'#'\\"'\\"'#g;s#.*#par_max_length='&'#" ; else echo "# par_max_length="; fi ) +$( if [ ! -z ${VIASH_PAR_STRINGENCY+x} ]; then echo "${VIASH_PAR_STRINGENCY}" | sed "s#'#'\\"'\\"'#g;s#.*#par_stringency='&'#" ; else echo "# par_stringency="; fi ) +$( if [ ! -z ${VIASH_PAR_ERROR_RATE+x} ]; then echo "${VIASH_PAR_ERROR_RATE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_error_rate='&'#" ; else echo "# par_error_rate="; fi ) +$( if [ ! -z ${VIASH_PAR_GZIP+x} ]; then echo "${VIASH_PAR_GZIP}" | sed "s#'#'\\"'\\"'#g;s#.*#par_gzip='&'#" ; else echo "# par_gzip="; fi ) +$( if [ ! -z ${VIASH_PAR_DONT_GZIP+x} ]; then echo "${VIASH_PAR_DONT_GZIP}" | sed "s#'#'\\"'\\"'#g;s#.*#par_dont_gzip='&'#" ; else echo "# par_dont_gzip="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH+x} ]; then echo "${VIASH_PAR_LENGTH}" | sed "s#'#'\\"'\\"'#g;s#.*#par_length='&'#" ; else echo "# par_length="; fi ) +$( if [ ! -z ${VIASH_PAR_MAX_N+x} ]; then echo "${VIASH_PAR_MAX_N}" | sed "s#'#'\\"'\\"'#g;s#.*#par_max_n='&'#" ; else echo "# par_max_n="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIM_N+x} ]; then echo "${VIASH_PAR_TRIM_N}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trim_n='&'#" ; else echo "# par_trim_n="; fi ) +$( if [ ! -z ${VIASH_PAR_NO_REPORT_FILE+x} ]; then echo "${VIASH_PAR_NO_REPORT_FILE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_no_report_file='&'#" ; else echo "# par_no_report_file="; fi ) +$( if [ ! -z ${VIASH_PAR_SUPPRESS_WARN+x} ]; then echo "${VIASH_PAR_SUPPRESS_WARN}" | sed "s#'#'\\"'\\"'#g;s#.*#par_suppress_warn='&'#" ; else echo "# par_suppress_warn="; fi ) +$( if [ ! -z ${VIASH_PAR_CLIP_R1+x} ]; then echo "${VIASH_PAR_CLIP_R1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_clip_R1='&'#" ; else echo "# par_clip_R1="; fi ) +$( if [ ! -z ${VIASH_PAR_CLIP_R2+x} ]; then echo "${VIASH_PAR_CLIP_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_clip_R2='&'#" ; else echo "# par_clip_R2="; fi ) +$( if [ ! -z ${VIASH_PAR_THREE_PRIME_CLIP_R1+x} ]; then echo "${VIASH_PAR_THREE_PRIME_CLIP_R1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_three_prime_clip_R1='&'#" ; else echo "# par_three_prime_clip_R1="; fi ) +$( if [ ! -z ${VIASH_PAR_THREE_PRIME_CLIP_R2+x} ]; then echo "${VIASH_PAR_THREE_PRIME_CLIP_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_three_prime_clip_R2='&'#" ; else echo "# par_three_prime_clip_R2="; fi ) +$( if [ ! -z ${VIASH_PAR_NEXTSEQ+x} ]; then echo "${VIASH_PAR_NEXTSEQ}" | sed "s#'#'\\"'\\"'#g;s#.*#par_nextseq='&'#" ; else echo "# par_nextseq="; fi ) +$( if [ ! -z ${VIASH_PAR_BASENAME+x} ]; then echo "${VIASH_PAR_BASENAME}" | sed "s#'#'\\"'\\"'#g;s#.*#par_basename='&'#" ; else echo "# par_basename="; fi ) +$( if [ ! -z ${VIASH_PAR_HARDTRIM5+x} ]; then echo "${VIASH_PAR_HARDTRIM5}" | sed "s#'#'\\"'\\"'#g;s#.*#par_hardtrim5='&'#" ; else echo "# par_hardtrim5="; fi ) +$( if [ ! -z ${VIASH_PAR_HARDTRIM3+x} ]; then echo "${VIASH_PAR_HARDTRIM3}" | sed "s#'#'\\"'\\"'#g;s#.*#par_hardtrim3='&'#" ; else echo "# par_hardtrim3="; fi ) +$( if [ ! -z ${VIASH_PAR_CLOCK+x} ]; then echo "${VIASH_PAR_CLOCK}" | sed "s#'#'\\"'\\"'#g;s#.*#par_clock='&'#" ; else echo "# par_clock="; fi ) +$( if [ ! -z ${VIASH_PAR_POLYA+x} ]; then echo "${VIASH_PAR_POLYA}" | sed "s#'#'\\"'\\"'#g;s#.*#par_polyA='&'#" ; else echo "# par_polyA="; fi ) +$( if [ ! -z ${VIASH_PAR_IMPLICON+x} ]; then echo "${VIASH_PAR_IMPLICON}" | sed "s#'#'\\"'\\"'#g;s#.*#par_implicon='&'#" ; else echo "# par_implicon="; fi ) +$( if [ ! -z ${VIASH_PAR_RRBS+x} ]; then echo "${VIASH_PAR_RRBS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_rrbs='&'#" ; else echo "# par_rrbs="; fi ) +$( if [ ! -z ${VIASH_PAR_NON_DIRECTIONAL+x} ]; then echo "${VIASH_PAR_NON_DIRECTIONAL}" | sed "s#'#'\\"'\\"'#g;s#.*#par_non_directional='&'#" ; else echo "# par_non_directional="; fi ) +$( if [ ! -z ${VIASH_PAR_KEEP+x} ]; then echo "${VIASH_PAR_KEEP}" | sed "s#'#'\\"'\\"'#g;s#.*#par_keep='&'#" ; else echo "# par_keep="; fi ) +$( if [ ! -z ${VIASH_PAR_PAIRED+x} ]; then echo "${VIASH_PAR_PAIRED}" | sed "s#'#'\\"'\\"'#g;s#.*#par_paired='&'#" ; else echo "# par_paired="; fi ) +$( if [ ! -z ${VIASH_PAR_RETAIN_UNPAIRED+x} ]; then echo "${VIASH_PAR_RETAIN_UNPAIRED}" | sed "s#'#'\\"'\\"'#g;s#.*#par_retain_unpaired='&'#" ; else echo "# par_retain_unpaired="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH_1+x} ]; then echo "${VIASH_PAR_LENGTH_1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_length_1='&'#" ; else echo "# par_length_1="; fi ) +$( if [ ! -z ${VIASH_PAR_LENGTH_2+x} ]; then echo "${VIASH_PAR_LENGTH_2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_length_2='&'#" ; else echo "# par_length_2="; fi ) +$( if [ ! -z ${VIASH_PAR_OUTPUT_DIR+x} ]; then echo "${VIASH_PAR_OUTPUT_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#par_output_dir='&'#" ; else echo "# par_output_dir="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_R1+x} ]; then echo "${VIASH_PAR_TRIMMED_R1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_r1='&'#" ; else echo "# par_trimmed_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_R2+x} ]; then echo "${VIASH_PAR_TRIMMED_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_r2='&'#" ; else echo "# par_trimmed_r2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMING_REPORT_R1+x} ]; then echo "${VIASH_PAR_TRIMMING_REPORT_R1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimming_report_r1='&'#" ; else echo "# par_trimming_report_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMING_REPORT_R2+x} ]; then echo "${VIASH_PAR_TRIMMING_REPORT_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimming_report_r2='&'#" ; else echo "# par_trimming_report_r2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_HTML_1+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_HTML_1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_fastqc_html_1='&'#" ; else echo "# par_trimmed_fastqc_html_1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_HTML_2+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_HTML_2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_fastqc_html_2='&'#" ; else echo "# par_trimmed_fastqc_html_2="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_ZIP_1+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_ZIP_1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_fastqc_zip_1='&'#" ; else echo "# par_trimmed_fastqc_zip_1="; fi ) +$( if [ ! -z ${VIASH_PAR_TRIMMED_FASTQC_ZIP_2+x} ]; then echo "${VIASH_PAR_TRIMMED_FASTQC_ZIP_2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_trimmed_fastqc_zip_2='&'#" ; else echo "# par_trimmed_fastqc_zip_2="; fi ) +$( if [ ! -z ${VIASH_PAR_UNPAIRED_R1+x} ]; then echo "${VIASH_PAR_UNPAIRED_R1}" | sed "s#'#'\\"'\\"'#g;s#.*#par_unpaired_r1='&'#" ; else echo "# par_unpaired_r1="; fi ) +$( if [ ! -z ${VIASH_PAR_UNPAIRED_R2+x} ]; then echo "${VIASH_PAR_UNPAIRED_R2}" | sed "s#'#'\\"'\\"'#g;s#.*#par_unpaired_r2='&'#" ; else echo "# par_unpaired_r2="; fi ) +$( if [ ! -z ${VIASH_META_NAME+x} ]; then echo "${VIASH_META_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_name='&'#" ; else echo "# meta_name="; fi ) +$( if [ ! -z ${VIASH_META_FUNCTIONALITY_NAME+x} ]; then echo "${VIASH_META_FUNCTIONALITY_NAME}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_functionality_name='&'#" ; else echo "# meta_functionality_name="; fi ) +$( if [ ! -z ${VIASH_META_RESOURCES_DIR+x} ]; then echo "${VIASH_META_RESOURCES_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_resources_dir='&'#" ; else echo "# meta_resources_dir="; fi ) +$( if [ ! -z ${VIASH_META_EXECUTABLE+x} ]; then echo "${VIASH_META_EXECUTABLE}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_executable='&'#" ; else echo "# meta_executable="; fi ) +$( if [ ! -z ${VIASH_META_CONFIG+x} ]; then echo "${VIASH_META_CONFIG}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_config='&'#" ; else echo "# meta_config="; fi ) +$( if [ ! -z ${VIASH_META_TEMP_DIR+x} ]; then echo "${VIASH_META_TEMP_DIR}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_temp_dir='&'#" ; else echo "# meta_temp_dir="; fi ) +$( if [ ! -z ${VIASH_META_CPUS+x} ]; then echo "${VIASH_META_CPUS}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_cpus='&'#" ; else echo "# meta_cpus="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_B+x} ]; then echo "${VIASH_META_MEMORY_B}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_b='&'#" ; else echo "# meta_memory_b="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KB+x} ]; then echo "${VIASH_META_MEMORY_KB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kb='&'#" ; else echo "# meta_memory_kb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MB+x} ]; then echo "${VIASH_META_MEMORY_MB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mb='&'#" ; else echo "# meta_memory_mb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GB+x} ]; then echo "${VIASH_META_MEMORY_GB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gb='&'#" ; else echo "# meta_memory_gb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TB+x} ]; then echo "${VIASH_META_MEMORY_TB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tb='&'#" ; else echo "# meta_memory_tb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PB+x} ]; then echo "${VIASH_META_MEMORY_PB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pb='&'#" ; else echo "# meta_memory_pb="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_KIB+x} ]; then echo "${VIASH_META_MEMORY_KIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_kib='&'#" ; else echo "# meta_memory_kib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_MIB+x} ]; then echo "${VIASH_META_MEMORY_MIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_mib='&'#" ; else echo "# meta_memory_mib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_GIB+x} ]; then echo "${VIASH_META_MEMORY_GIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_gib='&'#" ; else echo "# meta_memory_gib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_TIB+x} ]; then echo "${VIASH_META_MEMORY_TIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_tib='&'#" ; else echo "# meta_memory_tib="; fi ) +$( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" | sed "s#'#'\\"'\\"'#g;s#.*#meta_memory_pib='&'#" ; else echo "# meta_memory_pib="; fi ) + +## VIASH END +#!/bin/bash + +set -eo pipefail + +[[ ! -d \\$output_dir ]] && mkdir -p \\$par_output_dir + +IFS=";" read -ra input <<< \\$par_input + +unset_if_false=( + par_phred33 + par_phred64 + par_fastqc + par_illumina + par_stranded_illumina + par_nextera + par_small_rna + par_gzip + par_dont_gzip + par_trim_n + par_no_report_file + par_suppress_warn + par_clock + par_polyA + par_implicon + par_rrbs + par_non_directional + par_keep + par_paired + par_retain_unpaired +) + +for par in \\${unset_if_false[@]}; do + test_val="\\${!par}" + [[ "\\$test_val" == "false" ]] && unset \\$par +done + +# Add FastQC file arguments to fastqc_args +fastqc_args="\\${par_fastqc_args}" +if [ -f "\\$par_fastqc_contaminants" ]; then + fastqc_args+=" --contaminants \\$par_fastqc_contaminants" +fi +if [ -f "\\$par_fastqc_adapters" ]; then + fastqc_args+=" --adapters \\$par_fastqc_adapters" +fi +if [ -f "\\$par_fastqc_limits" ]; then + fastqc_args+=" --limits \\$par_fastqc_limits" +fi + +trim_galore \\\\ + \\${par_quality:+-q "\\${par_quality}"} \\\\ + \\${par_phred33:+--phred33} \\\\ + \\${par_phred64:+--phred64 } \\\\ + \\${par_fastqc:+--fastqc } \\\\ + \\${fastqc_args:+--fastqc_args "\\${fastqc_args}"} \\\\ + \\${par_adapter:+-a "\\${par_adapter}"} \\\\ + \\${par_adapter2:+-a2 "\\${par_adapter2}"} \\\\ + \\${par_illumina:+--illumina} \\\\ + \\${par_stranded_illumina:+--stranded_illumina} \\\\ + \\${par_nextera:+--nextera} \\\\ + \\${par_small_rna:+--small_rna} \\\\ + \\${par_consider_already_trimmed:+--consider_already_trimmed "\\${par_consider_already_trimmed}"} \\\\ + \\${par_max_length:+--max_length "\\${par_max_length}"} \\\\ + \\${par_stringency:+--stringency "\\${par_stringency}"} \\\\ + \\${par_error_rate:+-e "\\${par_error_rate}"} \\\\ + \\${par_gzip:+--gzip} \\\\ + \\${par_dont_gzip:+--dont_gzip} \\\\ + \\${par_length:+--length "\\${par_length}"} \\\\ + \\${par_max_n:+--max_n "\\${par_max_n}"} \\\\ + \\${par_trim_n:+--trim-n "\\${par_trim_n}"} \\\\ + \\${par_no_report_file:+--no_report_file} \\\\ + \\${par_suppress_warn:+--suppress_warn} \\\\ + \\${par_clip_R1:+--clip_R1 "\\${par_clip_R1}"} \\\\ + \\${par_clip_R2:+--clip_R2 "\\${par_clip_R2}"} \\\\ + \\${par_three_prime_clip_R1:+--three_prime_clip_R1 "\\${par_three_prime_clip_R1}"} \\\\ + \\${par_three_prime_clip_R2:+--three_prime_clip_R2 "\\${par_three_prime_clip_R2}"} \\\\ + \\${par_nextseq:+--nextseq "\\${par_nextseq}"} \\\\ + \\${par_basename:+-basename "\\${par_basename}"} \\\\ + \\${par_hardtrim5:+--hardtrim5 "\\${par_hardtrim5}"} \\\\ + \\${par_hardtrim3:+--hardtrim3 "\\${par_hardtrim3}"} \\\\ + \\${par_clock:+--clock} \\\\ + \\${par_polyA:+--polyA} \\\\ + \\${par_implicon:+--implicon "\\${par_implicon}"} \\\\ + \\${par_rrbs:+--rrbs} \\\\ + \\${par_non_directional:+--non_directional} \\\\ + \\${par_keep:+--keep} \\\\ + \\${par_paired:+--paired} \\\\ + \\${par_retain_unpaired:+--retain_unpaired} \\\\ + \\${par_length_1:+-r1 "\\${par_length_1}"} \\\\ + \\${par_length_2:+-r2 "\\${par_length_2}"} \\\\ + \\${meta_cpus:+-j "\\${meta_cpus}"} \\\\ + -o \\$par_output_dir \\\\ + \\${input[*]} + +if [ \\$par_paired == "true" ]; then + + input_r1=\\$(basename -- "\\${input[0]}") + input_r2=\\$(basename -- "\\${input[1]}") + [[ ! -z "\\$par_trimmed_r1" ]] && mv \\$par_output_dir/*val_1.f*q* \\$par_trimmed_r1 + [[ ! -z "\\$par_trimmed_r2" ]] && mv \\$par_output_dir/*val_2.f*q* \\$par_trimmed_r2 + [[ ! -z "\\$par_trimming_report_r1" ]] && mv \\$par_output_dir/\\${input_r1}_trimming_report.txt \\$par_trimming_report_r1 + [[ ! -z "\\$par_trimming_report_r2" ]] && mv \\$par_output_dir/\\${input_r2}_trimming_report.txt \\$par_trimming_report_r2 + + if [ "\\$par_fastqc" == "true" ]; then + [[ ! -z "\\$par_trimmed_fastqc_html_1" ]] && mv \\$par_output_dir/*val_1_fastqc.html \\$par_trimmed_fastqc_html_1 + [[ ! -z "\\$par_trimmed_fastqc_html_2" ]] && mv \\$par_output_dir/*val_2_fastqc.html \\$par_trimmed_fastqc_html_2 + [[ ! -z "\\$par_trimmed_fastqc_zip_1" ]] && mv \\$par_output_dir/*val_1_fastqc.zip \\$par_trimmed_fastqc_zip_1 + [[ ! -z "\\$par_trimmed_fastqc_zip_2" ]] && mv \\$par_output_dir/*val_2_fastqc.zip \\$par_trimmed_fastqc_zip_2 + fi + + if [ "\\$par_retain_unpaired" == "true" ]; then + [[ ! -z "\\$par_unpaired_r1" ]] && mv \\$par_output_dir/*.unpaired_1.f*q* \\$par_unpaired_r1 + [[ ! -z "\\$par_unpaired_r2" ]] && mv \\$par_output_dir/*.unpaired_2.f*q* \\$par_unpaired_r2 + fi + +else + + input_r1=\\$(basename -- "\\${input[0]}") + [[ ! -z "\\$par_trimmed_r1" ]] && mv \\$par_output_dir/*_trimmed.fq* \\$par_trimmed_r1 + [[ ! -z "\\$par_trimming_report_r1" ]] && mv \\$par_output_dir/\\${input_r1}_trimming_report.txt \\$par_trimming_report_r1 + + if [ "\\$par_fastqc" == "true" ]; then + [[ ! -z "\\$par_trimmed_fastqc_html_1" ]] && mv \\$par_output_dir/*_trimmed_fastqc.html \\$par_trimmed_fastqc_html_1 + [[ ! -z "\\$par_trimmed_fastqc_zip_1" ]] && mv \\$par_output_dir/*_trimmed_fastqc.zip \\$par_trimmed_fastqc_zip_1 + fi + +fi +VIASHMAIN +bash "$tempscript" +''' + + return vdsl3WorkflowFactory(args, meta, rawScript) +} + + + +/** + * Generate a workflow for VDSL3 modules. + * + * This function is called by the workflowFactory() function. + * + * Input channel: [id, input_map] + * Output channel: [id, output_map] + * + * Internally, this workflow will convert the input channel + * to a format which the Nextflow module will be able to handle. + */ +def vdsl3WorkflowFactory(Map args, Map meta, String rawScript) { + def key = args["key"] + def processObj = null + + workflow processWf { + take: input_ + main: + + if (processObj == null) { + processObj = _vdsl3ProcessFactory(args, meta, rawScript) + } + + output_ = input_ + | map { tuple -> + def id = tuple[0] + def data_ = tuple[1] + + if (workflow.stubRun) { + // add id if missing + data_ = [id: 'stub'] + data_ + } + + // process input files separately + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { par -> + def val = data_.containsKey(par.plainName) ? data_[par.plainName] : [] + def inputFiles = [] + if (val == null) { + inputFiles = [] + } else if (val instanceof List) { + inputFiles = val + } else if (val instanceof Path) { + inputFiles = [ val ] + } else { + inputFiles = [] + } + if (!workflow.stubRun) { + // throw error when an input file doesn't exist + inputFiles.each{ file -> + assert file.exists() : + "Error in module '${key}' id '${id}' argument '${par.plainName}'.\n" + + " Required input file does not exist.\n" + + " Path: '$file'.\n" + + " Expected input file to exist" + } + } + inputFiles + } + + // remove input files + def argsExclInputFiles = meta.config.allArguments + .findAll { (it.type != "file" || it.direction != "input") && data_.containsKey(it.plainName) } + .collectEntries { par -> + def parName = par.plainName + def val = data_[parName] + if (par.multiple && val instanceof Collection) { + val = val.join(par.multiple_sep) + } + if (par.direction == "output" && par.type == "file") { + val = val + .replaceAll('\\$id', id) + .replaceAll('\\$\\{id\\}', id) + .replaceAll('\\$key', key) + .replaceAll('\\$\\{key\\}', key) + } + [parName, val] + } + + [ id ] + inputPaths + [ argsExclInputFiles, meta.resources_dir ] + } + | processObj + | map { output -> + def outputFiles = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .indexed() + .collectEntries{ index, par -> + def out = output[index + 1] + // strip dummy '.exitcode' file from output (see nextflow-io/nextflow#2678) + if (!out instanceof List || out.size() <= 1) { + if (par.multiple) { + out = [] + } else { + assert !par.required : + "Error in module '${key}' id '${output[0]}' argument '${par.plainName}'.\n" + + " Required output file is missing" + out = null + } + } else if (out.size() == 2 && !par.multiple) { + out = out[1] + } else { + out = out.drop(1) + } + [ par.plainName, out ] + } + + // drop null outputs + outputFiles.removeAll{it.value == null} + + [ output[0], outputFiles ] + } + emit: output_ + } + + return processWf +} + +// depends on: session? +def _vdsl3ProcessFactory(Map workflowArgs, Map meta, String rawScript) { + // autodetect process key + def wfKey = workflowArgs["key"] + def procKeyPrefix = "${wfKey}_process" + def scriptMeta = nextflow.script.ScriptMeta.current() + def existing = scriptMeta.getProcessNames().findAll{it.startsWith(procKeyPrefix)} + def numbers = existing.collect{it.replace(procKeyPrefix, "0").toInteger()} + def newNumber = (numbers + [-1]).max() + 1 + + def procKey = newNumber == 0 ? procKeyPrefix : "$procKeyPrefix$newNumber" + + if (newNumber > 0) { + log.warn "Key for module '${wfKey}' is duplicated.\n", + "If you run a component multiple times in the same workflow,\n" + + "it's recommended you set a unique key for every call,\n" + + "for example: ${wfKey}.run(key: \"foo\")." + } + + // subset directives and convert to list of tuples + def drctv = workflowArgs.directives + + // TODO: unit test the two commands below + // convert publish array into tags + def valueToStr = { val -> + // ignore closures + if (val instanceof CharSequence) { + if (!val.matches('^[{].*[}]$')) { + '"' + val + '"' + } else { + val + } + } else if (val instanceof List) { + "[" + val.collect{valueToStr(it)}.join(", ") + "]" + } else if (val instanceof Map) { + "[" + val.collect{k, v -> k + ": " + valueToStr(v)}.join(", ") + "]" + } else { + val.inspect() + } + } + + // multiple entries allowed: label, publishdir + def drctvStrs = drctv.collect { key, value -> + if (key in ["label", "publishDir"]) { + value.collect{ val -> + if (val instanceof Map) { + "\n$key " + val.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else if (val == null) { + "" + } else { + "\n$key " + valueToStr(val) + } + }.join() + } else if (value instanceof Map) { + "\n$key " + value.collect{ k, v -> k + ": " + valueToStr(v) }.join(", ") + } else { + "\n$key " + valueToStr(value) + } + }.join() + + def inputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "input" } + .collect { ', path(viash_par_' + it.plainName + ', stageAs: "_viash_par/' + it.plainName + '_?/*")' } + .join() + + def outputPaths = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + // insert dummy into every output (see nextflow-io/nextflow#2678) + if (!par.multiple) { + ', path{[".exitcode", args.' + par.plainName + ']}' + } else { + ', path{[".exitcode"] + args.' + par.plainName + '}' + } + } + .join() + + // TODO: move this functionality somewhere else? + if (workflowArgs.auto.transcript) { + outputPaths = outputPaths + ', path{[".exitcode", ".command*"]}' + } else { + outputPaths = outputPaths + ', path{[".exitcode"]}' + } + + // create dirs for output files (based on BashWrapper.createParentFiles) + def createParentStr = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" && it.create_parent } + .collect { par -> + def contents = "args[\"${par.plainName}\"] instanceof List ? args[\"${par.plainName}\"].join('\" \"') : args[\"${par.plainName}\"]" + "\${ args.containsKey(\"${par.plainName}\") ? \"mkdir_parent '\" + escapeText(${contents}) + \"'\" : \"\" }" + } + .join("\n") + + // construct inputFileExports + def inputFileExports = meta.config.allArguments + .findAll { it.type == "file" && it.direction.toLowerCase() == "input" } + .collect { par -> + def contents = "viash_par_${par.plainName} instanceof List ? viash_par_${par.plainName}.join(\"${par.multiple_sep}\") : viash_par_${par.plainName}" + "\n\${viash_par_${par.plainName}.empty ? \"\" : \"export VIASH_PAR_${par.plainName.toUpperCase()}='\" + escapeText(${contents}) + \"'\"}" + } + + // NOTE: if using docker, use /tmp instead of tmpDir! + def tmpDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('VIASH_TMPDIR') ?: + System.getenv('VIASH_TEMPDIR') ?: + System.getenv('VIASH_TMP') ?: + System.getenv('TEMP') ?: + System.getenv('TMPDIR') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMP') ?: + '/tmp' + ).toAbsolutePath() + + // construct stub + def stub = meta.config.allArguments + .findAll { it.type == "file" && it.direction == "output" } + .collect { par -> + "\${ args.containsKey(\"${par.plainName}\") ? \"touch2 \\\"\" + (args[\"${par.plainName}\"] instanceof String ? args[\"${par.plainName}\"].replace(\"_*\", \"_0\") : args[\"${par.plainName}\"].join('\" \"')) + \"\\\"\" : \"\" }" + } + .join("\n") + + // escape script + def escapedScript = rawScript.replace('\\', '\\\\').replace('$', '\\$').replace('"""', '\\"\\"\\"') + + // publishdir assert + def assertStr = (workflowArgs.auto.publish == true) || workflowArgs.auto.transcript ? + """\nassert task.publishDir.size() > 0: "if auto.publish is true, params.publish_dir needs to be defined.\\n Example: --publish_dir './output/'" """ : + "" + + // generate process string + def procStr = + """nextflow.enable.dsl=2 + | + |def escapeText = { s -> s.toString().replaceAll("'", "'\\\"'\\\"'") } + |process $procKey {$drctvStrs + |input: + | tuple val(id)$inputPaths, val(args), path(resourcesDir, stageAs: ".viash_meta_resources") + |output: + | tuple val("\$id")$outputPaths, optional: true + |stub: + |\"\"\" + |touch2() { mkdir -p "\\\$(dirname "\\\$1")" && touch "\\\$1" ; } + |$stub + |\"\"\" + |script:$assertStr + |def parInject = args + | .findAll{key, value -> value != null} + | .collect{key, value -> "export VIASH_PAR_\${key.toUpperCase()}='\${escapeText(value)}'"} + | .join("\\n") + |\"\"\" + |# meta exports + |export VIASH_META_RESOURCES_DIR="\${resourcesDir}" + |export VIASH_META_TEMP_DIR="${['docker', 'podman', 'charliecloud'].any{ it == workflow.containerEngine } ? '/tmp' : tmpDir}" + |export VIASH_META_NAME="${meta.config.name}" + |# export VIASH_META_EXECUTABLE="\\\$VIASH_META_RESOURCES_DIR/\\\$VIASH_META_NAME" + |export VIASH_META_CONFIG="\\\$VIASH_META_RESOURCES_DIR/.config.vsh.yaml" + |\${task.cpus ? "export VIASH_META_CPUS=\$task.cpus" : "" } + |\${task.memory?.bytes != null ? "export VIASH_META_MEMORY_B=\$task.memory.bytes" : "" } + |if [ ! -z \\\${VIASH_META_MEMORY_B+x} ]; then + | export VIASH_META_MEMORY_KB=\\\$(( (\\\$VIASH_META_MEMORY_B+999) / 1000 )) + | export VIASH_META_MEMORY_MB=\\\$(( (\\\$VIASH_META_MEMORY_KB+999) / 1000 )) + | export VIASH_META_MEMORY_GB=\\\$(( (\\\$VIASH_META_MEMORY_MB+999) / 1000 )) + | export VIASH_META_MEMORY_TB=\\\$(( (\\\$VIASH_META_MEMORY_GB+999) / 1000 )) + | export VIASH_META_MEMORY_PB=\\\$(( (\\\$VIASH_META_MEMORY_TB+999) / 1000 )) + | export VIASH_META_MEMORY_KIB=\\\$(( (\\\$VIASH_META_MEMORY_B+1023) / 1024 )) + | export VIASH_META_MEMORY_MIB=\\\$(( (\\\$VIASH_META_MEMORY_KIB+1023) / 1024 )) + | export VIASH_META_MEMORY_GIB=\\\$(( (\\\$VIASH_META_MEMORY_MIB+1023) / 1024 )) + | export VIASH_META_MEMORY_TIB=\\\$(( (\\\$VIASH_META_MEMORY_GIB+1023) / 1024 )) + | export VIASH_META_MEMORY_PIB=\\\$(( (\\\$VIASH_META_MEMORY_TIB+1023) / 1024 )) + |fi + | + |# meta synonyms + |export VIASH_TEMP="\\\$VIASH_META_TEMP_DIR" + |export TEMP_DIR="\\\$VIASH_META_TEMP_DIR" + | + |# create output dirs if need be + |function mkdir_parent { + | for file in "\\\$@"; do + | mkdir -p "\\\$(dirname "\\\$file")" + | done + |} + |$createParentStr + | + |# argument exports${inputFileExports.join()} + |\$parInject + | + |# process script + |${escapedScript} + |\"\"\" + |} + |""".stripMargin() + + // TODO: print on debug + // if (workflowArgs.debug == true) { + // println("######################\n$procStr\n######################") + // } + + // write process to temp file + def tempFile = java.nio.file.Files.createTempFile("viash-process-${procKey}-", ".nf") + addShutdownHook { java.nio.file.Files.deleteIfExists(tempFile) } + tempFile.text = procStr + + // create process from temp file + def binding = new nextflow.script.ScriptBinding([:]) + def session = nextflow.Nextflow.getSession() + def parser = new nextflow.script.ScriptParser(session) + .setModule(true) + .setBinding(binding) + def moduleScript = parser.runScript(tempFile) + .getScript() + + // register module in meta + def module = new nextflow.script.IncludeDef.Module(name: procKey) + scriptMeta.addModule(moduleScript, module.name, module.alias) + + // retrieve and return process from meta + return scriptMeta.getProcess(procKey) +} + +// defaults +meta["defaults"] = [ + // key to be used to trace the process and determine output names + key: null, + + // fixed arguments to be passed to script + args: [:], + + // default directives + directives: readJsonBlob('''{ + "container" : { + "registry" : "images.viash-hub.com", + "image" : "vsh/biobox/trimgalore", + "tag" : "main" + }, + "tag" : "$id" +}'''), + + // auto settings + auto: readJsonBlob('''{ + "simplifyInput" : true, + "simplifyOutput" : false, + "transcript" : false, + "publish" : false +}'''), + + // Apply a map over the incoming tuple + // Example: `{ tup -> [ tup[0], [input: tup[1].output] ] + tup.drop(2) }` + map: null, + + // Apply a map over the ID element of a tuple (i.e. the first element) + // Example: `{ id -> id + "_foo" }` + mapId: null, + + // Apply a map over the data element of a tuple (i.e. the second element) + // Example: `{ data -> [ input: data.output ] }` + mapData: null, + + // Apply a map over the passthrough elements of a tuple (i.e. the tuple excl. the first two elements) + // Example: `{ pt -> pt.drop(1) }` + mapPassthrough: null, + + // Filter the channel + // Example: `{ tup -> tup[0] == "foo" }` + filter: null, + + // Choose whether or not to run the component on the tuple if the condition is true. + // Otherwise, the tuple will be passed through. + // Example: `{ tup -> tup[0] != "skip_this" }` + runIf: null, + + // Rename keys in the data field of the tuple (i.e. the second element) + // Will likely be deprecated in favour of `fromState`. + // Example: `[ "new_key": "old_key" ]` + renameKeys: null, + + // Fetch data from the state and pass it to the module without altering the current state. + // + // `fromState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be passed to the module as is. + // - If it is a `List[String]`, the data will be the values of the state at the given keys. + // - If it is a `Map[String, String]`, the data will be the values of the state at the given keys, with the keys renamed according to the map. + // - If it is a function, the tuple (`[id, state]`) in the channel will be passed to the function, and the result will be used as the data. + // + // Example: `{ id, state -> [input: state.fastq_file] }` + // Default: `null` + fromState: null, + + // Determine how the state should be updated after the module has been run. + // + // `toState` should be `null`, `List[String]`, `Map[String, String]` or a function. + // + // - If it is `null`, the state will be replaced with the output of the module. + // - If it is a `List[String]`, the state will be updated with the values of the data at the given keys. + // - If it is a `Map[String, String]`, the state will be updated with the values of the data at the given keys, with the keys renamed according to the map. + // - If it is a function, a tuple (`[id, output, state]`) will be passed to the function, and the result will be used as the new state. + // + // Example: `{ id, output, state -> state + [counts: state.output] }` + // Default: `{ id, output, state -> output }` + toState: null, + + // Whether or not to print debug messages + // Default: `false` + debug: false +] + +// initialise default workflow +meta["workflow"] = workflowFactory([key: meta.config.name], meta.defaults, meta) + +// add workflow to environment +nextflow.script.ScriptMeta.current().addDefinition(meta.workflow) + +// anonymous workflow for running this module as a standalone +workflow { + // add id argument if it's not already in the config + // TODO: deep copy + def newConfig = deepClone(meta.config) + def newParams = deepClone(params) + + def argsContainsId = newConfig.allArguments.any{it.plainName == "id"} + if (!argsContainsId) { + def idArg = [ + 'name': '--id', + 'required': false, + 'type': 'string', + 'description': 'A unique id for every entry.', + 'multiple': false + ] + newConfig.arguments.add(0, idArg) + newConfig = processConfig(newConfig) + } + if (!newParams.containsKey("id")) { + newParams.id = "run" + } + + helpMessage(newConfig) + + channelFromParams(newParams, newConfig) + // make sure id is not in the state if id is not in the args + | map {id, state -> + if (!argsContainsId) { + [id, state.findAll{k, v -> k != "id"}] + } else { + [id, state] + } + } + | meta.workflow.run( + auto: [ publish: "state" ] + ) +} + +// END COMPONENT-SPECIFIC CODE diff --git a/target/nextflow/trimgalore/nextflow.config b/target/nextflow/trimgalore/nextflow.config new file mode 100644 index 00000000..04ac43b3 --- /dev/null +++ b/target/nextflow/trimgalore/nextflow.config @@ -0,0 +1,126 @@ +manifest { + name = 'trimgalore' + mainScript = 'main.nf' + nextflowVersion = '!>=20.12.1-edge' + version = 'main' + description = 'A wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files. \n' + author = 'Sai Nirmayi Yasa' +} + +process.container = 'nextflow/bash:latest' + +// detect tempdir +tempDir = java.nio.file.Paths.get( + System.getenv('NXF_TEMP') ?: + System.getenv('VIASH_TEMP') ?: + System.getenv('TEMPDIR') ?: + System.getenv('TMPDIR') ?: + '/tmp' +).toAbsolutePath() + +profiles { + no_publish { + process { + withName: '.*' { + publishDir = [ + enabled: false + ] + } + } + } + mount_temp { + docker.temp = tempDir + podman.temp = tempDir + charliecloud.temp = tempDir + } + docker { + docker.enabled = true + // docker.userEmulation = true + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + singularity { + singularity.enabled = true + singularity.autoMounts = true + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + podman { + podman.enabled = true + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + shifter { + shifter.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + } + charliecloud { + charliecloud.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + } +} + +process{ + withLabel: mem1gb { memory = 1000000000.B } + withLabel: mem2gb { memory = 2000000000.B } + withLabel: mem5gb { memory = 5000000000.B } + withLabel: mem10gb { memory = 10000000000.B } + withLabel: mem20gb { memory = 20000000000.B } + withLabel: mem50gb { memory = 50000000000.B } + withLabel: mem100gb { memory = 100000000000.B } + withLabel: mem200gb { memory = 200000000000.B } + withLabel: mem500gb { memory = 500000000000.B } + withLabel: mem1tb { memory = 1000000000000.B } + withLabel: mem2tb { memory = 2000000000000.B } + withLabel: mem5tb { memory = 5000000000000.B } + withLabel: mem10tb { memory = 10000000000000.B } + withLabel: mem20tb { memory = 20000000000000.B } + withLabel: mem50tb { memory = 50000000000000.B } + withLabel: mem100tb { memory = 100000000000000.B } + withLabel: mem200tb { memory = 200000000000000.B } + withLabel: mem500tb { memory = 500000000000000.B } + withLabel: mem1gib { memory = 1073741824.B } + withLabel: mem2gib { memory = 2147483648.B } + withLabel: mem4gib { memory = 4294967296.B } + withLabel: mem8gib { memory = 8589934592.B } + withLabel: mem16gib { memory = 17179869184.B } + withLabel: mem32gib { memory = 34359738368.B } + withLabel: mem64gib { memory = 68719476736.B } + withLabel: mem128gib { memory = 137438953472.B } + withLabel: mem256gib { memory = 274877906944.B } + withLabel: mem512gib { memory = 549755813888.B } + withLabel: mem1tib { memory = 1099511627776.B } + withLabel: mem2tib { memory = 2199023255552.B } + withLabel: mem4tib { memory = 4398046511104.B } + withLabel: mem8tib { memory = 8796093022208.B } + withLabel: mem16tib { memory = 17592186044416.B } + withLabel: mem32tib { memory = 35184372088832.B } + withLabel: mem64tib { memory = 70368744177664.B } + withLabel: mem128tib { memory = 140737488355328.B } + withLabel: mem256tib { memory = 281474976710656.B } + withLabel: mem512tib { memory = 562949953421312.B } + withLabel: cpu1 { cpus = 1 } + withLabel: cpu2 { cpus = 2 } + withLabel: cpu5 { cpus = 5 } + withLabel: cpu10 { cpus = 10 } + withLabel: cpu20 { cpus = 20 } + withLabel: cpu50 { cpus = 50 } + withLabel: cpu100 { cpus = 100 } + withLabel: cpu200 { cpus = 200 } + withLabel: cpu500 { cpus = 500 } + withLabel: cpu1000 { cpus = 1000 } +} + + diff --git a/target/nextflow/trimgalore/nextflow_schema.json b/target/nextflow/trimgalore/nextflow_schema.json new file mode 100644 index 00000000..99334938 --- /dev/null +++ b/target/nextflow/trimgalore/nextflow_schema.json @@ -0,0 +1,711 @@ +{ +"$schema": "http://json-schema.org/draft-07/schema", +"title": "trimgalore", +"description": "A wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files. \n", +"type": "object", +"definitions": { + + + + "input" : { + "title": "Input", + "type": "object", + "description": "No description", + "properties": { + + + "input": { + "type": + "string", + "description": "Type: List of `file`, required, example: `sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq`, multiple_sep: `\";\"`. Input files", + "help_text": "Type: List of `file`, required, example: `sample1_r1.fq;sample1_r2.fq;sample2_r1.fq;sample2_r2.fq`, multiple_sep: `\";\"`. Input files. Note that paired-end files need to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz" + + } + + +} +}, + + + "trimming options" : { + "title": "Trimming options", + "type": "object", + "description": "No description", + "properties": { + + + "quality": { + "type": + "integer", + "description": "Type: `integer`, example: `20`. Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal", + "help_text": "Type: `integer`, example: `20`. Trim low-quality ends (below the specified Phred score) from reads in addition to adapter removal. For RRBS samples, quality trimming will be performed first, and adapter trimming is carried in a second round. Other files are quality and adapter trimmed in a single pass. The algorithm is the same as the one used by BWA (Subtract INT from all qualities; compute partial sums from all indices to the end of the sequence; cut sequence at the index at which the sum is minimal)." + + } + + + , + "phred33": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1", + "help_text": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+33 quality scores as Phred scores (Sanger/Illumina 1.9+ encoding) for quality trimming." + , + "default": "False" + } + + + , + "phred64": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1", + "help_text": "Type: `boolean_true`, default: `false`. Instructs Cutadapt to use ASCII+64 quality scores as Phred scores (Illumina 1.5 encoding) for quality trimming." + , + "default": "False" + } + + + , + "fastqc": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Run FastQC in the default mode on the FastQ file once trimming is complete", + "help_text": "Type: `boolean_true`, default: `false`. Run FastQC in the default mode on the FastQ file once trimming is complete." + , + "default": "False" + } + + + , + "fastqc_args": { + "type": + "string", + "description": "Type: `string`, example: `--nogroup --noextract`. Passes extra arguments (excluding files) to FastQC", + "help_text": "Type: `string`, example: `--nogroup --noextract`. Passes extra arguments (excluding files) to FastQC. If more than one argument is to be passed to FastQC they must be in the form \"arg1 arg2 ...\". Passing extra arguments will automatically invoke FastQC, so --fastqc does not have to be specified separately." + + } + + + , + "fastqc_contaminants": { + "type": + "string", + "description": "Type: `file`, example: `contaminants.txt`. Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against", + "help_text": "Type: `file`, example: `contaminants.txt`. Specifies a non-default file which contains the list of contaminants for FastQC to screen overrepresented sequences against. The file must contain sets of named contaminants in the form name[tab]sequence. Lines prefixed with a hash will be ignored." + + } + + + , + "fastqc_adapters": { + "type": + "string", + "description": "Type: `file`, example: `adapters.txt`. Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library", + "help_text": "Type: `file`, example: `adapters.txt`. Specifies a non-default file which contains the list of adapter sequences which which FasstQC will explicity search against the library. The file must contain sets of named adapters in the form name[tab]sequence. Lines prefixed with a hash will be ignored." + + } + + + , + "fastqc_limits": { + "type": + "string", + "description": "Type: `file`, example: `limits.txt`. Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules", + "help_text": "Type: `file`, example: `limits.txt`. Specifies a non-default file which contains a set of criteria which FastQC will use to determine the warn/error limits for the various modules. This file can also be used to selectively remove some modules from the output all together. The format needs to mirror the default limits.txt file found in the Configuration folder." + + } + + + , + "adapter": { + "type": + "string", + "description": "Type: `string`, example: `AGCTCCCG`. Adapter sequence to be trimmed", + "help_text": "Type: `string`, example: `AGCTCCCG`. Adapter sequence to be trimmed. If not specified explicitly, Trim Galore will try to auto-detect whether the Illumina universal, Nextera transposase or Illumina small RNA adapter sequence was used. A single base may also be given as e.g. -a A{10}, to be expanded to -a AAAAAAAAAA. \nAt a special request, multiple adapters can also be specified like so: \n -a \" AGCTCCCG -a TTTCATTATAT -a TTTATTCGGATTTAT\" -a2 \" AGCTAGCG -a TCTCTTATAT -a TTTCGGATTTAT\", \nor so:\n -a \"file:../multiple_adapters.fa\" -a2 \"file:../different_adapters.fa\"\nPotentially in conjucntion with the parameter \"-n 3\" to trim all adapters. \n" + + } + + + , + "adapter2": { + "type": + "string", + "description": "Type: `string`, example: `AGCTCCCG`. Optional adapter sequence to be trimmed off read 2 of paired-end files", + "help_text": "Type: `string`, example: `AGCTCCCG`. Optional adapter sequence to be trimmed off read 2 of paired-end files. This option requires \u0027--paired\u0027 to be specified as well. If the libraries to be trimmed are smallRNA then a2 will be set to the Illumina small RNA 5\u0027 adapter automatically (GATCGTCGGACT). A single base may also be given as e.g. -a2 A{10}, to be expanded to -a2 AAAAAAAAAA." + + } + + + , + "illumina": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter \u0027AGATCGGAAGAGC\u0027 instead of the default auto-detection of adapter sequence", + "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina universal adapter \u0027AGATCGGAAGAGC\u0027 instead of the default auto-detection of adapter sequence." + , + "default": "False" + } + + + , + "stranded_illumina": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter \u0027ACTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence", + "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 13bp of the Illumina stranded mRNA or Total RNA adapter \u0027ACTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence." + , + "default": "False" + } + + + , + "nextera": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Nextera adapter \u0027CTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence", + "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Nextera adapter \u0027CTGTCTCTTATA\u0027 instead of the default auto-detection of adapter sequence." + , + "default": "False" + } + + + , + "small_rna": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3\u0027 Adapter \u0027TGGAATTCTCGG\u0027 instead of the default auto-detection of adapter sequence", + "help_text": "Type: `boolean_true`, default: `false`. Adapter sequence to be trimmed is the first 12bp of the Illumina Small RNA 3\u0027 Adapter \u0027TGGAATTCTCGG\u0027 instead of the default auto-detection of adapter sequence. Selecting to trim smallRNA adapters will also lower the --length value to 18bp. If the smallRNA libraries are paired-end then a automatically (GATCGTCGGACT) unless -a 2 had been defined explicitly." + , + "default": "False" + } + + + , + "consider_already_trimmed": { + "type": + "integer", + "description": "Type: `integer`. During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed", + "help_text": "Type: `integer`. During adapter auto-detection, the limit set by this argument allows the user to set a threshold up to which the file is considered already adapter-trimmed. If no adapter sequence exceeds this threshold, no additional adapter trimming will be performed (technically, the adapter is set to \u0027-a X\u0027). Quality trimming is still performed as usual." + + } + + + , + "max_length": { + "type": + "integer", + "description": "Type: `integer`. Discard reads that are longer than the specified value after trimming", + "help_text": "Type: `integer`. Discard reads that are longer than the specified value after trimming. This is only advised for smallRNA sequencing to remove non-small RNA sequences." + + } + + + , + "stringency": { + "type": + "integer", + "description": "Type: `integer`, example: `1`. Overlap with adapter sequence required to trim a sequence", + "help_text": "Type: `integer`, example: `1`. Overlap with adapter sequence required to trim a sequence. Defaults to a very stringent setting of 1, i.e. even a single bp of overlapping sequence will be trimmed off from the 3\u0027 end of any read." + + } + + + , + "error_rate": { + "type": + "number", + "description": "Type: `double`, example: `0.1`. Maximum allowed error rate (no", + "help_text": "Type: `double`, example: `0.1`. Maximum allowed error rate (no. of errors divided by the length of the matching region)" + + } + + + , + "gzip": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Compress the output file with GZIP", + "help_text": "Type: `boolean_true`, default: `false`. Compress the output file with GZIP. If the input files are GZIP-compressed the output files will automatically be GZIP compressed as well. As of v0.2.8 the compression will take place on the fly." + , + "default": "False" + } + + + , + "dont_gzip": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Output files won\u0027t be compressed with GZIP", + "help_text": "Type: `boolean_true`, default: `false`. Output files won\u0027t be compressed with GZIP. This option overrides --gzip." + , + "default": "False" + } + + + , + "length": { + "type": + "integer", + "description": "Type: `integer`, example: `20`. Discard reads that became shorter than the specified length because of either quality or adapter trimming", + "help_text": "Type: `integer`, example: `20`. Discard reads that became shorter than the specified length because of either quality or adapter trimming. A value of \u00270\u0027 effectively disables this behaviour. For paired-end files, both reads of a read-pair need to be longer than the specified length to be printed out to validated paired-end files. If only one read became too short there is the possibility of keeping such unpaired single-end reads using the --retain_unpaired option." + + } + + + , + "max_n": { + "type": + "integer", + "description": "Type: `integer`. The total number of Ns a read may contain before it will be removed altogether", + "help_text": "Type: `integer`. The total number of Ns a read may contain before it will be removed altogether.In a paired-end setting, either read exceeding this limit will result in the entire pair being removed from the trimmed output files. If COUNT is a number between 0 and 1, it is interpreted as a fraction of the read length." + + } + + + , + "trim_n": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Removes Ns from either side of the read", + "help_text": "Type: `boolean_true`, default: `false`. Removes Ns from either side of the read. This option does currently not work in RRBS mode." + , + "default": "False" + } + + + , + "no_report_file": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. If specified no report file will be generated", + "help_text": "Type: `boolean_true`, default: `false`. If specified no report file will be generated." + , + "default": "False" + } + + + , + "suppress_warn": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. If specified any output to STDOUT or STDERR will be suppressed", + "help_text": "Type: `boolean_true`, default: `false`. If specified any output to STDOUT or STDERR will be suppressed." + , + "default": "False" + } + + + , + "clip_R1": { + "type": + "integer", + "description": "Type: `integer`. Instructs TrimGalore to remove given number of bp from the 5\u0027 end of read 1 (or single-end reads)", + "help_text": "Type: `integer`. Instructs TrimGalore to remove given number of bp from the 5\u0027 end of read 1 (or single-end reads). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5\u0027 end." + + } + + + , + "clip_R2": { + "type": + "integer", + "description": "Type: `integer`. Instructs TrimGalore to remove given number bp from the 5\u0027 end of read 2 (paired-end reads only)", + "help_text": "Type: `integer`. Instructs TrimGalore to remove given number bp from the 5\u0027 end of read 2 (paired-end reads only). This may be useful if the qualities were very poor, or if there is some sort of unwanted bias at the 5\u0027 end. For paired-end BS-Seq, it is recommended to remove the first few bp because the end-repair reaction may introduce a bias towards low methylation." + + } + + + , + "three_prime_clip_R1": { + "type": + "integer", + "description": "Type: `integer`. Instructs Trim Galore to remove spacified number of bp from the 3\u0027 end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed", + "help_text": "Type: `integer`. Instructs Trim Galore to remove spacified number of bp from the 3\u0027 end of read 1 (or single-end reads) AFTER adapter/quality trimming has been performed. This may remove some bias from the 3\u0027 end that is not directly related to adapter sequence or basecall quality." + + } + + + , + "three_prime_clip_R2": { + "type": + "integer", + "description": "Type: `integer`. Instructs Trim Galore to remove \u003cint\u003e bp from the 3\u0027 end of read 2 AFTER adapter/quality trimming has been performed", + "help_text": "Type: `integer`. Instructs Trim Galore to remove \u003cint\u003e bp from the 3\u0027 end of read 2 AFTER adapter/quality trimming has been performed. This may remove some unwanted bias from the 3\u0027 end that is not directly related to adapter sequence or basecall quality." + + } + + + , + "nextseq": { + "type": + "integer", + "description": "Type: `integer`. This enables the option \u0027--nextseq-trim=3\u0027CUTOFF\u0027 within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored", + "help_text": "Type: `integer`. This enables the option \u0027--nextseq-trim=3\u0027CUTOFF\u0027 within Cutadapt, which will set a quality cutoff (that is normally given with -q instead), but qualities of G bases are ignored. This trimming is in common for the NextSeq- and NovaSeq-platforms, where basecalls without any signal are called as high-quality G bases. This is mutually exlusive with \u0027-q INT\u0027." + + } + + + , + "basename": { + "type": + "string", + "description": "Type: `string`. Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files", + "help_text": "Type: `string`. Use specified name (PREFERRED_NAME) as the basename for output files, instead of deriving the filenames from the input files. Single-end data would be called PREFERRED_NAME_trimmed.fq(.gz), or PREFERRED_NAME_val_1.fq(.gz) and PREFERRED_NAME_val_2.fq(.gz) for paired-end data. --basename only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + + } + + +} +}, + + + "specific trimming options without adapter/quality trimming" : { + "title": "Specific trimming options without adapter/quality trimming", + "type": "object", + "description": "No description", + "properties": { + + + "hardtrim5": { + "type": + "integer", + "description": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 5\u0027-end", + "help_text": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 5\u0027-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in .\u003cint\u003e_5prime.fq(.gz)." + + } + + + , + "hardtrim3": { + "type": + "integer", + "description": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 3\u0027-end", + "help_text": "Type: `integer`. Instead of performing adapter-/quality trimming, this option will simply hard-trim sequences to \u003cint\u003e bp at the 3\u0027-end. Once hard-trimming of files is complete, Trim Galore will exit. Hard-trimmed output files will end in .\u003cint\u003e_3prime.fq(.gz)." + + } + + + , + "clock": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock", + "help_text": "Type: `boolean_true`, default: `false`. In this mode, reads are trimmed in a specific way that is currently used for the Mouse Epigenetic Clock." + , + "default": "False" + } + + + , + "polyA": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences", + "help_text": "Type: `boolean_true`, default: `false`. This is a new, still experimental, trimming mode to identify and remove poly-A tails from sequences. When --polyA is selected, Trim Galore attempts to identify from the first supplied sample whether sequences contain more often a stretch of either \u0027AAAAAAAAAA\u0027 or \u0027TTTTTTTTTT\u0027. This determines if Read 1 of a paired-end end file, or single-end files, are trimmed for PolyA or PolyT. In case of paired-end sequencing, Read2 is trimmed for the complementary base from the start of the reads. The auto-detection uses a default of A{20} for Read1 (3\u0027-end trimming) and T{150} for Read2 (5\u0027-end trimming). These values may be changed manually using the options -a and -a2. In addition to trimming the sequences, white spaces are replaced with _ and it records in the read ID how many bases were trimmed so it can later be used to identify PolyA trimmed sequences. This is currently done by writing tags to both the start (\"32:A:\") and end (\"_PolyA:32\") of the reads. The poly-A trimming mode expects that sequences were both adapter and quality before looking for Poly-A tails, and it is the user\u0027s responsibility to carry out an initial round of trimming." + , + "default": "False" + } + + + , + "implicon": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads", + "help_text": "Type: `boolean_true`, default: `false`. This is a special mode of operation for paired-end data, such as required for the IMPLICON method, where a UMI sequence is getting transferred from the start of Read 2 to the readID of both reads. Following this, Trim Galore will exit. In it\u0027s current implementation, the UMI carrying reads come in the following format\n Read 1 5\u0027 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3\u0027\n Read 2 3\u0027 UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5\u0027\nWhere UUUUUUUU is a random 8-mer unique molecular identifier (UMI) and FFFFFFF... is the actual fragment to be sequenced. The UMI of Read 2 (R2) is written into the read ID of both reads and removed from the actual sequence.\n" + , + "default": "False" + } + + +} +}, + + + "rrbs-specific options" : { + "title": "RRBS-specific options", + "type": "object", + "description": "No description", + "properties": { + + + "rrbs": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG)", + "help_text": "Type: `boolean_true`, default: `false`. Specifies that the input file was an MspI digested RRBS sample (recognition site is CCGG). Single-end or Read 1 sequences (paired-end) which were adapter-trimmed will have a further 2 bp removed from their 3\u0027 end. Sequences which were merely trimmed because of poor quality will not be shortened further. Read 2 of paired-end libraries will in addition have the first 2 bp removed from the 5\u0027 end (by setting \u0027--clip_r2 2\u0027). This is to avoid using artificial methylation calls from the filled-in cytosine positions close to the 3\u0027 MspI site in sequenced fragments. This option is not recommended for users of the Tecan Ovation RRBS Methyl-Seq with TrueMethyl oxBS 1-16 kit (see below)." + , + "default": "False" + } + + + , + "non_directional": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for \u0027CAA\u0027 or \u0027CGA\u0027 at the start of the read and, if found, removes the first two basepairs", + "help_text": "Type: `boolean_true`, default: `false`. Selecting this option for non-directional RRBS libraries will screen quality-trimmed sequences for \u0027CAA\u0027 or \u0027CGA\u0027 at the start of the read and, if found, removes the first two basepairs. Like with the option \u0027--rrbs\u0027 this avoids using cytosine positions that were filled-in during the end-repair step. \u0027--non_directional\u0027 requires \u0027--rrbs\u0027 to be specified as well. Note that this option does not set \u0027--clip_r2 2\u0027 in paired-end mode." + , + "default": "False" + } + + + , + "keep": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. Keep the quality trimmed intermediate file", + "help_text": "Type: `boolean_true`, default: `false`. Keep the quality trimmed intermediate file." + , + "default": "False" + } + + +} +}, + + + "paired-end specific options" : { + "title": "Paired-end specific options", + "type": "object", + "description": "No description", + "properties": { + + + "paired": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files", + "help_text": "Type: `boolean_true`, default: `false`. This option performs length trimming of quality/adapter/RRBS trimmed reads for paired-end files. To pass the validation test, both sequences of a sequence pair are required to have a certain minimum length which is governed by the option --length (see above). If only one read passes this length threshold the other read can be rescued (see option --retain_unpaired). Using this option lets you discard too short read pairs without disturbing the sequence-by-sequence order of FastQ files which is required by many aligners. Trim Galore expects paired-end files to be supplied in a pairwise fashion, e.g. file1_1.fq file1_2.fq SRR2_1.fq.gz SRR2_2.fq.gz ... ." + , + "default": "False" + } + + + , + "retain_unpaired": { + "type": + "boolean", + "description": "Type: `boolean_true`, default: `false`. If only one of the two paired-end reads became too short, the longer read will be written to either \u0027", + "help_text": "Type: `boolean_true`, default: `false`. If only one of the two paired-end reads became too short, the longer read will be written to either \u0027.unpaired_1.fq\u0027 or \u0027.unpaired_2.fq\u0027 output files. The length cutoff for unpaired single-end reads is governed by the parameters -r1/--length_1 and -r2/--length_2." + , + "default": "False" + } + + + , + "length_1": { + "type": + "integer", + "description": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 1 to be written to \u0027", + "help_text": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 1 to be written to \u0027.unpaired_1.fq\u0027 output file. These reads may be mapped in single-end mode." + + } + + + , + "length_2": { + "type": + "integer", + "description": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 2 to be written to \u0027", + "help_text": "Type: `integer`, example: `35`. Unpaired single-end read length cutoff needed for read 2 to be written to \u0027.unpaired_2.fq\u0027 output file. These reads may be mapped in single-end mode." + + } + + +} +}, + + + "output" : { + "title": "Output", + "type": "object", + "description": "No description", + "properties": { + + + "output_dir": { + "type": + "string", + "description": "Type: `file`, required, default: `$id.$key.output_dir.output_dir`. If specified all output will be written to this directory instead of the current directory", + "help_text": "Type: `file`, required, default: `$id.$key.output_dir.output_dir`. If specified all output will be written to this directory instead of the current directory." + , + "default": "$id.$key.output_dir.output_dir" + } + + + , + "trimmed_r1": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_r1.fastq`, example: `read_1.fastq`. Output file for read 1", + "help_text": "Type: `file`, default: `$id.$key.trimmed_r1.fastq`, example: `read_1.fastq`. Output file for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_r1.fastq" + } + + + , + "trimmed_r2": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_r2.fastq`, example: `read_2.fastq`. Output file for read 2", + "help_text": "Type: `file`, default: `$id.$key.trimmed_r2.fastq`, example: `read_2.fastq`. Output file for read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_r2.fastq" + } + + + , + "trimming_report_r1": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimming_report_r1.txt`, example: `read_1.trimming_report.txt`. Trimming report for read 1", + "help_text": "Type: `file`, default: `$id.$key.trimming_report_r1.txt`, example: `read_1.trimming_report.txt`. Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimming_report_r1.txt" + } + + + , + "trimming_report_r2": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimming_report_r2.txt`, example: `read_2.trimming_report.txt`. Trimming report for read 1", + "help_text": "Type: `file`, default: `$id.$key.trimming_report_r2.txt`, example: `read_2.trimming_report.txt`. Trimming report for read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimming_report_r2.txt" + } + + + , + "trimmed_fastqc_html_1": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_1.html`, example: `read_1.fastqc.html`. FastQC report for trimmed (single-end) reads (or read 1 for paired-end)", + "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_1.html`, example: `read_1.fastqc.html`. FastQC report for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_fastqc_html_1.html" + } + + + , + "trimmed_fastqc_html_2": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_2.html`, example: `read_2.fastqc.html`. FastQC report for trimmed reads (read2 for paired-end)", + "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_html_2.html`, example: `read_2.fastqc.html`. FastQC report for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_fastqc_html_2.html" + } + + + , + "trimmed_fastqc_zip_1": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_1.zip`, example: `read_1.fastqc.zip`. FastQC results for trimmed (single-end) reads (or read 1 for paired-end)", + "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_1.zip`, example: `read_1.fastqc.zip`. FastQC results for trimmed (single-end) reads (or read 1 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_fastqc_zip_1.zip" + } + + + , + "trimmed_fastqc_zip_2": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_2.zip`, example: `read_2.fastqc.zip`. FastQC results for trimmed reads (read2 for paired-end)", + "help_text": "Type: `file`, default: `$id.$key.trimmed_fastqc_zip_2.zip`, example: `read_2.fastqc.zip`. FastQC results for trimmed reads (read2 for paired-end). Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.trimmed_fastqc_zip_2.zip" + } + + + , + "unpaired_r1": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.unpaired_r1.fastq`, example: `unpaired_read_1.fastq`. Output file for unpired read 1", + "help_text": "Type: `file`, default: `$id.$key.unpaired_r1.fastq`, example: `unpaired_read_1.fastq`. Output file for unpired read 1. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.unpaired_r1.fastq" + } + + + , + "unpaired_r2": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.unpaired_r2.fastq`, example: `unpaired_read_2.fastq`. Output file for unpaired read 2", + "help_text": "Type: `file`, default: `$id.$key.unpaired_r2.fastq`, example: `unpaired_read_2.fastq`. Output file for unpaired read 2. Only works when 1 file (single-end) or 2 files (paired-end) are specified, but not for longer lists." + , + "default": "$id.$key.unpaired_r2.fastq" + } + + +} +}, + + + "nextflow input-output arguments" : { + "title": "Nextflow input-output arguments", + "type": "object", + "description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.", + "properties": { + + + "publish_dir": { + "type": + "string", + "description": "Type: `string`, required, example: `output/`. Path to an output directory", + "help_text": "Type: `string`, required, example: `output/`. Path to an output directory." + + } + + + , + "param_list": { + "type": + "string", + "description": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel", + "help_text": "Type: `string`, example: `my_params.yaml`. Allows inputting multiple parameter sets to initialise a Nextflow channel. A `param_list` can either be a list of maps, a csv file, a json file, a yaml file, or simply a yaml blob.\n\n* A list of maps (as-is) where the keys of each map corresponds to the arguments of the pipeline. Example: in a `nextflow.config` file: `param_list: [ [\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027], [\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027] ]`.\n* A csv file should have column names which correspond to the different arguments of this pipeline. Example: `--param_list data.csv` with columns `id,input`.\n* A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline. Example: `--param_list data.json` with contents `[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]`.\n* A yaml blob can also be passed directly as a string. Example: `--param_list \"[ {\u0027id\u0027: \u0027foo\u0027, \u0027input\u0027: \u0027foo.txt\u0027}, {\u0027id\u0027: \u0027bar\u0027, \u0027input\u0027: \u0027bar.txt\u0027} ]\"`.\n\nWhen passing a csv, json or yaml file, relative path names are relativized to the location of the parameter file. No relativation is performed when `param_list` is a list of maps (as-is) or a yaml blob.", + "hidden": true + + } + + +} +} +}, +"allOf": [ + + { + "$ref": "#/definitions/input" + }, + + { + "$ref": "#/definitions/trimming options" + }, + + { + "$ref": "#/definitions/specific trimming options without adapter/quality trimming" + }, + + { + "$ref": "#/definitions/rrbs-specific options" + }, + + { + "$ref": "#/definitions/paired-end specific options" + }, + + { + "$ref": "#/definitions/output" + }, + + { + "$ref": "#/definitions/nextflow input-output arguments" + } +] +} diff --git a/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml index 8d018d3f..9face1ca 100644 --- a/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_dedup/.config.vsh.yaml @@ -611,9 +611,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_dedup" executable: "target/nextflow/umi_tools/umi_tools_dedup/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_dedup/main.nf b/target/nextflow/umi_tools/umi_tools_dedup/main.nf index e30ffac2..5b82dd82 100644 --- a/target/nextflow/umi_tools/umi_tools_dedup/main.nf +++ b/target/nextflow/umi_tools/umi_tools_dedup/main.nf @@ -3487,9 +3487,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_dedup", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml index a75c61b1..f3a7d47b 100644 --- a/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml @@ -449,9 +449,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_extract" executable: "target/nextflow/umi_tools/umi_tools_extract/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_extract/main.nf b/target/nextflow/umi_tools/umi_tools_extract/main.nf index 88bb05c0..2fd49f12 100644 --- a/target/nextflow/umi_tools/umi_tools_extract/main.nf +++ b/target/nextflow/umi_tools/umi_tools_extract/main.nf @@ -3316,9 +3316,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_extract", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox", diff --git a/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml b/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml index 738e5a7b..0d779151 100644 --- a/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml +++ b/target/nextflow/umi_tools/umi_tools_prepareforrsem/.config.vsh.yaml @@ -256,9 +256,9 @@ build_info: output: "target/nextflow/umi_tools/umi_tools_prepareforrsem" executable: "target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf" viash_version: "0.9.0" - git_commit: "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca" - git_remote: "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox" - git_tag: "v0.2.0-5-gbc9cc0a" + git_commit: "237a2e3a229ee589d1ebbc282526f87398e26f58" + git_remote: "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox" + git_tag: "v0.2.0-7-g237a2e3" package_config: name: "biobox" version: "main" diff --git a/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf b/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf index 8621ce50..8ec6d7f5 100644 --- a/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf +++ b/target/nextflow/umi_tools/umi_tools_prepareforrsem/main.nf @@ -3121,9 +3121,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_prepareforrsem", "viash_version" : "0.9.0", - "git_commit" : "bc9cc0a6ce4e0b87a4ce47561b4812b449e101ca", - "git_remote" : "https://x-access-token:ghs_lSKHBbqnO6mkOoPjjavM2ghphcCkFP1NX9Uo@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-5-gbc9cc0a" + "git_commit" : "237a2e3a229ee589d1ebbc282526f87398e26f58", + "git_remote" : "https://x-access-token:ghs_d8HWKccvaGy0CcM6cBJNV2ku91TvFG4KZuEr@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-7-g237a2e3" }, "package_config" : { "name" : "biobox",