diff --git a/src/multiqc_custom_biotype/config.vsh.yaml b/src/multiqc_custom_biotype/config.vsh.yaml index ac6cae8..bad8dc5 100644 --- a/src/multiqc_custom_biotype/config.vsh.yaml +++ b/src/multiqc_custom_biotype/config.vsh.yaml @@ -36,6 +36,10 @@ resources: # Include the header for the biotypes in the component - path: biotypes_header.txt +test_resources: + - type: bash_script + path: test.sh + engines: - type: docker image: python:latest diff --git a/src/multiqc_custom_biotype/script.py b/src/multiqc_custom_biotype/script.py index 6a4f8dc..b676a1b 100755 --- a/src/multiqc_custom_biotype/script.py +++ b/src/multiqc_custom_biotype/script.py @@ -82,7 +82,7 @@ if __name__ == "__main__": filtered_lines.append(filtered_line) # Concatenate the header and the processed lines - result = biotypes_header + '\n' + '\n'.join(filtered_lines) + '\n' + result = biotypes_header + '\n'.join(filtered_lines) + '\n' # Write the result to par_featurecounts_multiqc with open(par["featurecounts_multiqc"], 'w') as output_file: diff --git a/src/multiqc_custom_biotype/test.sh b/src/multiqc_custom_biotype/test.sh new file mode 100644 index 0000000..f43c768 --- /dev/null +++ b/src/multiqc_custom_biotype/test.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +set -e + +echo "> Prepare test data" + +cat > "test.featurecounts.txt" << HERE +# Program:featureCounts v2.0.1; Command:"featureCounts" "-t" "CDS" "-T" "2" "-a" "genome.gtf" "-s" "1" "-o" "test.featureCounts.txt" "test.single_end.bam" +Geneid Chr Start End Strand Length test.single_end.bam +orf1ab MT192765.1;MT192765.1 259;13461 13461;21545 +;+ 21287 38 +S MT192765.1 21556 25374 + 3819 4 +ORF3a MT192765.1 25386 26210 + 825 0 +E MT192765.1 26238 26462 + 225 1 +M MT192765.1 26516 27181 + 666 1 +ORF6 MT192765.1 27195 27377 + 183 0 +ORF7a MT192765.1 27387 27749 + 363 0 +ORF7b MT192765.1 27749 27877 + 129 0 +ORF8 MT192765.1 27887 28249 + 363 0 +N MT192765.1 28267 29523 + 1257 2 +ORF10 MT192765.1 29551 29664 + 114 0 +HERE + +echo "> Run test" +"$meta_executable" \ + --biocounts "test.featurecounts.txt" \ + --id "test" \ + --featurecounts_multiqc "test.biotype_counts_mqc.tsv" \ + --featurecounts_rrna_multiqc "test.biotype_counts_rrna_mqc.tsv" + +echo "> Check results" +[ ! -f "test.biotype_counts_mqc.tsv" ] && echo "test.biotype_counts_mqc.tsv was not created" && exit 1 +[ ! -s "test.biotype_counts_mqc.tsv" ] && echo "test.biotype_counts_mqc.tsv is empty" && exit 1 +[ ! -f "test.biotype_counts_rrna_mqc.tsv" ] && echo "test.biotype_counts_rrna_mqc.tsv was not created" && exit 1 +[ ! -s "test.biotype_counts_rrna_mqc.tsv" ] && echo "test.biotype_counts_rrna_mqc.tsv is empty" && exit 1 + +exit 0 diff --git a/src/tx2gene/config.vsh.yaml b/src/tx2gene/config.vsh.yaml index 50ccec4..567510b 100644 --- a/src/tx2gene/config.vsh.yaml +++ b/src/tx2gene/config.vsh.yaml @@ -12,7 +12,7 @@ argument_groups: - name: "--quant_results" type: file multiple: true - multiple_sep: "," + multiple_sep: ";" - name: "--gtf" type: file - name: "--gtf_extra_attributes" @@ -32,17 +32,17 @@ argument_groups: type: file direction: output default: tx2gene.tsv - - name: "--updated_versions" - type: file - default: versions.yml - direction: output resources: - type: bash_script path: script.sh # copied from https://github.com/nf-core/rnaseq/blob/3.14.0/bin/tx2gene.py - path: tx2gene.py - + +test_resources: + - type: bash_script + path: test.sh + engines: - type: docker image: ubuntu:22.04 diff --git a/src/tx2gene/script.sh b/src/tx2gene/script.sh index 1883346..33b5f6d 100755 --- a/src/tx2gene/script.sh +++ b/src/tx2gene/script.sh @@ -3,13 +3,13 @@ set -eo pipefail function clean_up { - rm -rf "$salmon_tmpdir" + rm -rf "$tmpdir" } trap clean_up EXIT -tmpdir=$(mktemp -d "$meta_temp_dir/$meta_functionality_name-XXXXXXXX") +tmpdir=$(mktemp -d "$meta_temp_dir/$meta_name-XXXXXXXX") -IFS="," read -ra results <<< $par_quant_results +IFS=";" read -ra results <<< $par_quant_results for result in ${results[*]} do cp -r $result $tmpdir diff --git a/src/tx2gene/test.sh b/src/tx2gene/test.sh new file mode 100644 index 0000000..9077a00 --- /dev/null +++ b/src/tx2gene/test.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +set -e + +echo "> Prepare test data" + +cat > "sample1_quant_results.sf" << HERE +Name Length EffectiveLength TPM NumReads +ENSSASG00005000004 3822 3572 15216.8 753 +ENSSASG00005000003 13218 12968 1502.34 269.9 +ENSSASG00005000002 21290 21040 23916.3 6971.1 +HERE + +cat > "sample2_quant_results.sf" << HERE +Name Length EffectiveLength TPM NumReads +ENSSASG00005000004 3822 3572 23713.5 703 +ENSSASG00005000003 13218 12968 14280 1536.92 +ENSSASG00005000002 21290 21040 37447.4 6539.08 +HERE + +cat > "genes.gtf" << HERE +MN908947.3 ensembl transcript 266 21555 . + . gene_id "ENSSASG00005000002"; gene_version "1"; transcript_id "ENSSAST00005000002"; transcript_version "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1ab"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl exon 266 21555 . + . gene_id "ENSSASG00005000002"; gene_version "1"; transcript_id "ENSSAST00005000002"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1ab"; transcript_source "ensembl"; transcript_biotype "protein_coding"; exon_id "ENSSASE00005000002"; exon_version "1"; +MN908947.3 ensembl CDS 266 21552 . + 0 gene_id "ENSSASG00005000002"; gene_version "1"; transcript_id "ENSSAST00005000002"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1ab"; transcript_source "ensembl"; transcript_biotype "protein_coding"; protein_id "ENSSASP00005000002"; protein_version "1"; +MN908947.3 ensembl start_codon 266 268 . + 0 gene_id "ENSSASG00005000002"; gene_version "1"; transcript_id "ENSSAST00005000002"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1ab"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl stop_codon 21553 21555 . + 0 gene_id "ENSSASG00005000002"; gene_version "1"; transcript_id "ENSSAST00005000002"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1ab"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl transcript 266 13483 . + . gene_id "ENSSASG00005000003"; gene_version "1"; transcript_id "ENSSAST00005000003"; transcript_version "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1a"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl exon 266 13483 . + . gene_id "ENSSASG00005000003"; gene_version "1"; transcript_id "ENSSAST00005000003"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1a"; transcript_source "ensembl"; transcript_biotype "protein_coding"; exon_id "ENSSASE00005000003"; exon_version "1"; +MN908947.3 ensembl CDS 266 13480 . + 0 gene_id "ENSSASG00005000003"; gene_version "1"; transcript_id "ENSSAST00005000003"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1a"; transcript_source "ensembl"; transcript_biotype "protein_coding"; protein_id "ENSSASP00005000003"; protein_version "1"; +MN908947.3 ensembl start_codon 266 268 . + 0 gene_id "ENSSASG00005000003"; gene_version "1"; transcript_id "ENSSAST00005000003"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1a"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl stop_codon 13481 13483 . + 0 gene_id "ENSSASG00005000003"; gene_version "1"; transcript_id "ENSSAST00005000003"; transcript_version "1"; exon_number "1"; gene_name "ORF1ab"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "ORF1a"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl transcript 21563 25384 . + . gene_id "ENSSASG00005000004"; gene_version "1"; transcript_id "ENSSAST00005000004"; transcript_version "1"; gene_name "S"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "S"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl exon 21563 25384 . + . gene_id "ENSSASG00005000004"; gene_version "1"; transcript_id "ENSSAST00005000004"; transcript_version "1"; exon_number "1"; gene_name "S"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "S"; transcript_source "ensembl"; transcript_biotype "protein_coding"; exon_id "ENSSASE00005000004"; exon_version "1"; +MN908947.3 ensembl CDS 21563 25381 . + 0 gene_id "ENSSASG00005000004"; gene_version "1"; transcript_id "ENSSAST00005000004"; transcript_version "1"; exon_number "1"; gene_name "S"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "S"; transcript_source "ensembl"; transcript_biotype "protein_coding"; protein_id "ENSSASP00005000004"; protein_version "1"; +MN908947.3 ensembl start_codon 21563 21565 . + 0 gene_id "ENSSASG00005000004"; gene_version "1"; transcript_id "ENSSAST00005000004"; transcript_version "1"; exon_number "1"; gene_name "S"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "S"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +MN908947.3 ensembl stop_codon 25382 25384 . + 0 gene_id "ENSSASG00005000004"; gene_version "1"; transcript_id "ENSSAST00005000004"; transcript_version "1"; exon_number "1"; gene_name "S"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "S"; transcript_source "ensembl"; transcript_biotype "protein_coding"; +HERE + +echo "> Run test" +"$meta_executable" \ + --quant_results "sample1_quant_results.sf;sample2_quant_results.sf" \ + --gtf "genes.gtf" \ + --quant_type "salmon" \ + --gtf_extra_attributes "gene_name" \ + --gtf_group_features "gene_id" \ + --tsv "tx2gene.tsv" + +echo "> Check results" +[ ! -f "tx2gene.tsv" ] && echo "tx2gene.tsv was not created" && exit 1 +[ ! -s "tx2gene.tsv" ] && echo "tx2gene.tsv is empty" && exit 1 + +exit 0 diff --git a/src/tximport/config.vsh.yaml b/src/tximport/config.vsh.yaml index 6ec430a..82cdd9a 100644 --- a/src/tximport/config.vsh.yaml +++ b/src/tximport/config.vsh.yaml @@ -12,7 +12,7 @@ argument_groups: - name: "--quant_results" type: file multiple: true - multiple_sep: "," + multiple_sep: ";" - name: "--tx2gene_tsv" type: file - name: "--quant_type" @@ -41,7 +41,7 @@ argument_groups: - name: "--lengths_gene" type: file direction: output - default: merged.gene_length.tsv + default: merged.gene_lengths.tsv - name: "--tpm_transcript" type: file direction: output @@ -53,7 +53,7 @@ argument_groups: - name: "--lengths_transcript" type: file direction: output - default: merged.transcript_length.tsv + default: merged.transcript_lengths.tsv resources: - type: bash_script @@ -61,6 +61,10 @@ resources: # copied from https://github.com/nf-core/rnaseq/blob/3.14.0/bin/tximport.r - path: tximport.r +test_resources: + - type: bash_script + path: test.sh + engines: - type: docker image: ubuntu:22.04 diff --git a/src/tximport/script.sh b/src/tximport/script.sh index 531606b..69a5b86 100755 --- a/src/tximport/script.sh +++ b/src/tximport/script.sh @@ -3,13 +3,13 @@ set -eo pipefail function clean_up { - rm -rf "$salmon_tmpdir" + rm -rf "$tmpdir" } trap clean_up EXIT -tmpdir=$(mktemp -d "$meta_temp_dir/$meta_functionality_name-XXXXXXXX") +tmpdir=$(mktemp -d "$meta_temp_dir/$meta_name-XXXXXXXX") -IFS="," read -ra results <<< $par_quant_results +IFS=";" read -ra results <<< $par_quant_results for result in ${results[*]} do cp -r $result $tmpdir diff --git a/src/tximport/test.sh b/src/tximport/test.sh new file mode 100644 index 0000000..c3af1b6 --- /dev/null +++ b/src/tximport/test.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +set -e + +echo "> Prepare test data" + +cat > "sample1_quant_results.sf" << HERE +Name Length EffectiveLength TPM NumReads +ENSSASG00005000004 3822 3572 15216.8 753 +ENSSASG00005000003 13218 12968 1502.34 269.9 +ENSSASG00005000002 21290 21040 23916.3 6971.1 +HERE + +cat > "sample2_quant_results.sf" << HERE +Name Length EffectiveLength TPM NumReads +ENSSASG00005000004 3822 3572 23713.5 703 +ENSSASG00005000003 13218 12968 14280 1536.92 +ENSSASG00005000002 21290 21040 37447.4 6539.08 +HERE + +cat > tx2gene.tsv << HERE +ENSSASG00005000002 ENSSASG00005000002 ORF1ab +ENSSASG00005000003 ENSSASG00005000003 ORF1ab +ENSSASG00005000004 ENSSASG00005000004 S +HERE + +echo "> Run test" +"$meta_executable" \ + --quant_results "sample1_quant_results.sf;sample2_quant_results.sf" \ + --tx2gene_tsv "tx2gene.tsv" \ + --quant_type "salmon" \ + # --tpm_gene gene_tpm.tsv \ + # --counts_gene gene_counts.tsv \ + # --counts_gene_length_scaled gene_counts_length_scaled.tsv \ + # --counts_gene_scaled gene_counts_scaled.tsv \ + # --lengths_gene gene_length.tsv \ + # --tpm_transcript transcript_tpm.tsv \ + # --counts_transcript transcript_counts.tsv \ + # --lengths_transcript transcript_length.tsv + +echo "> Check results" +[ ! -f "merged.gene_tpm.tsv" ] && echo "merged.gene_tpm.tsv was not created" && exit 1 +[ ! -s "merged.gene_tpm.tsv" ] && echo "merged.gene_tpm.tsv is empty" && exit 1 +[ ! -f "merged.gene_counts.tsv" ] && echo "merged.gene_counts.tsv was not created" && exit 1 +[ ! -s "merged.gene_counts.tsv" ] && echo "merged.gene_counts.tsv is empty" && exit 1 +[ ! -f "merged.gene_counts_length_scaled.tsv" ] && echo "merged.gene_counts_length_scaled.tsv was not created" && exit 1 +[ ! -s "merged.gene_counts_length_scaled.tsv" ] && echo "merged.gene_counts_length_scaled.tsv is empty" && exit 1 +[ ! -f "merged.gene_counts_scaled.tsv" ] && echo "merged.gene_counts_scaled.tsv was not created" && exit 1 +[ ! -s "merged.gene_counts_scaled.tsv" ] && echo "merged.gene_counts_scaled.tsv is empty" && exit 1 +[ ! -f "merged.gene_lengths.tsv" ] && echo "merged.gene_lengths.tsv was not created" && exit 1 +[ ! -s "merged.gene_lengths.tsv" ] && echo "merged.gene_lengths.tsv is empty" && exit 1 +[ ! -f "merged.transcript_tpm.tsv" ] && echo "merged.transcript_tpm.tsv was not created" && exit 1 +[ ! -s "merged.transcript_tpm.tsv" ] && echo "merged.transcript_tpm.tsv is empty" && exit 1 +[ ! -f "merged.transcript_counts.tsv" ] && echo "merged.transcript_counts.tsv was not created" && exit 1 +[ ! -s "merged.transcript_counts.tsv" ] && echo "merged.transcript_counts.tsv is empty" && exit 1 +[ ! -f "merged.transcript_lengths.tsv" ] && echo "merged.transcript_lengths.tsv was not created" && exit 1 +[ ! -s "merged.transcript_lengths.tsv" ] && echo "merged.transcript_lengths.tsv is empty" && exit 1 + +exit 0 \ No newline at end of file diff --git a/src/workflows/genome_alignment_and_quant/config.vsh.yaml b/src/workflows/genome_alignment_and_quant/config.vsh.yaml index 7816d39..6fefdbb 100644 --- a/src/workflows/genome_alignment_and_quant/config.vsh.yaml +++ b/src/workflows/genome_alignment_and_quant/config.vsh.yaml @@ -39,16 +39,9 @@ argument_groups: type: boolean default: false description: When using pre-built STAR indices do not re-extract and use splice junctions from the GTF file - - name: "--seq_platform" + - name: --star_sjdb_gtf_feature_exon type: string - description: Sequencing platform. - - name: "--seq_center" - type: string - description: Sequencing center. - - name: "--extra_star_align_args" - type: string - default: '' - description: Extra arguments to pass to STAR alignment command in addition to defaults defined by the pipeline. + description: Feature type in GTF file to be used as exons for building transcripts - name: "--bam_csi_index" type: boolean default: false diff --git a/src/workflows/genome_alignment_and_quant/main.nf b/src/workflows/genome_alignment_and_quant/main.nf index f2c2aa9..e352e8d 100644 --- a/src/workflows/genome_alignment_and_quant/main.nf +++ b/src/workflows/genome_alignment_and_quant/main.nf @@ -4,381 +4,382 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | star_align_reads.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "fastq_1", - "input_r2": "fastq_2", - "genome_dir": "star_index", - "sjdb_gtf_file": "gtf", - "out_sam_attr_rg_line": "star_sam_attr_rg_line" - ], - toState: [ - "genome_bam": "aligned_reads", - "transcriptome_bam": "reads_aligned_to_transcriptome", - "star_multiqc": "log" - ], - args: [ - quant_mode: "TranscriptomeSAM", - twopass_mode: "Basic", - out_sam_type: "BAM;Unsorted", - run_rng_seed: 0, - out_filter_multimap_nmax: 20, - align_sjdb_overhang_min: 1, - out_sam_attributes: "NH;HI;AS;NM;MD", - quant_transcriptome_sam_output: "BanSingleEnd" - ] - ) + | star_align_reads.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "fastq_1", + "input_r2": "fastq_2", + "genome_dir": "star_index", + "sjdb_gtf_file": "gtf", + "out_sam_attr_rg_line": "star_sam_attr_rg_line", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "genome_bam": "aligned_reads", + "transcriptome_bam": "reads_aligned_to_transcriptome", + "star_multiqc": "log" + ], + args: [ + quant_mode: "TranscriptomeSAM", + twopass_mode: "Basic", + out_sam_type: "BAM;Unsorted", + run_rng_seed: 0, + out_filter_multimap_nmax: 20, + align_sjdb_overhang_min: 1, + out_sam_attributes: "NH;HI;AS;NM;MD", + quant_transcriptome_sam_output: "BanSingleEnd" + ] + ) - // GENOME BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: ["input": "genome_bam"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + // GENOME BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: ["input": "genome_bam"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - // - // Remove duplicate reads from BAM file based on UMIs - // - - // Deduplicate genome BAM file - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "get_output_stats": "umi_dedup_stats" - ], - toState: [ "genome_bam_sorted": "output_bam" ], - key: "genome_deduped" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_deduped" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta", - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_deduped_idxstats" - ) + // + // Remove duplicate reads from BAM file based on UMIs + // + + // Deduplicate genome BAM file + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "get_output_stats": "umi_dedup_stats" + ], + toState: [ "genome_bam_sorted": "output_bam" ], + key: "genome_deduped" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_deduped" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta", + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_deduped_idxstats" + ) - // Deduplicate transcriptome BAM file + // Deduplicate transcriptome BAM file - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ], - key: "transcriptome_sorted" - ) - | samtools_index.run ( + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "csi": "bam_csi_index" + ], + toState: [ "transcriptome_bam_index": "output" ], + key: "transcriptome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index", + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_idxstats" + ) + + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index", + "get_output_stats": "umi_dedup_stats", + ], + toState: [ "transcriptome_bam_deduped": "output_bam" ], + key: "transcriptome_deduped" + ) + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam_deduped" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_deduped_sorted" + ) + | samtools_index.run ( runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, fromState: [ "input": "transcriptome_bam", "csi": "bam_csi_index" ], toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index", - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_idxstats" - ) - - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index", - "get_output_stats": "umi_dedup_stats", - ], - toState: [ "transcriptome_bam_deduped": "output_bam" ], - key: "transcriptome_deduped" - ) - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam_deduped" ], - toState: [ "transcriptome_bam": "output" ], key: "transcriptome_deduped_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "csi": "bam_csi_index" - ], - toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_deduped_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_deduped_idxstats" - ) + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_deduped_idxstats" + ) - // Fix paired-end reads in name sorted BAM file - | umitools_prepareforquant.run ( - runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, - fromState: [ "bam": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ] - ) + // Fix paired-end reads in name sorted BAM file + | umitools_prepareforquant.run ( + runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, + fromState: [ "bam": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ] + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "lib_type": "lib_type", - "alignments": "transcriptome_bam", - "targets": "transcript_fasta", - "gene_map": "gtf" - ], - toState: [ - "quant_out_dir": "output", - "quant_results_file": "quant_results" - ] - ) + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "lib_type": "lib_type", + "alignments": "transcriptome_bam", + "targets": "transcript_fasta", + "gene_map": "gtf" + ], + toState: [ + "quant_out_dir": "output", + "quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - - | rsem_calculate_expression.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "id": "id", - "strandedness": "strandedness", - "paired": "paired", - "input": "input", - "index": "rsem_index", - "extra_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "rsem_counts_gene": "counts_gene", - "rsem_counts_transcripts": "counts_transcripts", - "rsem_multiqc": "stat", - "star_multiqc": "logs", - "bam_star_rsem": "bam_star", - "bam_genome_rsem": "bam_genome", - "bam_transcript_rsem": "bam_transcript" - ] - ) - - // RSEM_Star BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: ["input": "bam_star_rsem"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + | map { id, state -> + def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } + + | rsem_calculate_expression.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "id": "id", + "strandedness": "strandedness", + "paired": "paired", + "input": "input", + "index": "rsem_index", + "extra_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "rsem_counts_gene": "counts_gene", + "rsem_counts_transcripts": "counts_transcripts", + "rsem_multiqc": "stat", + "star_multiqc": "logs", + "bam_star_rsem": "bam_star", + "bam_genome_rsem": "bam_genome", + "bam_transcript_rsem": "bam_transcript" + ] + ) + + // RSEM_Star BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: ["input": "bam_star_rsem"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" ] - ) + | setState ( + [ "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" ] + ) emit: output_ch diff --git a/src/workflows/merge_quant_results/main.nf b/src/workflows/merge_quant_results/main.nf index e8358a3..185e736 100644 --- a/src/workflows/merge_quant_results/main.nf +++ b/src/workflows/merge_quant_results/main.nf @@ -5,62 +5,62 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results - [id, state + [quant_results: quant_results]] - } - - | tx2gene.run ( - fromState: [ - "quant_results": "quant_results", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf": "gtf", - "gtf_group_features": "gtf_group_features", - "quant_type": "quant_type" - ], - toState: [ "tx2gene_tsv": "tsv" ] - ) + | map { id, state -> + def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results + [id, state + [quant_results: quant_results]] + } + + | tx2gene.run ( + fromState: [ + "quant_results": "quant_results", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf": "gtf", + "gtf_group_features": "gtf_group_features", + "quant_type": "quant_type" + ], + toState: [ "tx2gene_tsv": "tsv" ] + ) - | tximport.run ( - fromState: [ - "quant_results": "quant_results", - "tx2gene_tsv": "tx2gene_tsv", - "quant_type": "quant_type" - ], - toState: [ - "tpm_gene": "tpm_gene", + | tximport.run ( + fromState: [ + "quant_results": "quant_results", + "tx2gene_tsv": "tx2gene_tsv", + "quant_type": "quant_type" + ], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "length_gene": "length_gene", + "length_transcript": "length_transcript" + ] + ) + + | summarizedexperiment.run ( + fromState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "tx2gene_tsv": "tx2gene_tsv" + ], + toState: [ "quant_merged_summarizedexperiment": "output" ] + ) + + | setState ( + [ "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "length_gene": "length_gene", - "length_transcript": "length_transcript" - ] - ) - - | summarizedexperiment.run ( - fromState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "tx2gene_tsv": "tx2gene_tsv" - ], - toState: [ "quant_merged_summarizedexperiment": "output" ] - ) - - | setState ( - [ "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] - ) + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] + ) emit: output_ch diff --git a/src/workflows/post_processing/main.nf b/src/workflows/post_processing/main.nf index 541ef71..640b97b 100644 --- a/src/workflows/post_processing/main.nf +++ b/src/workflows/post_processing/main.nf @@ -7,154 +7,154 @@ workflow run_wf { main: output_ch = input_ch - | picard_markduplicates.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "genome_bam", - "fasta": "fasta", - "fai": "fai", - "extra_picard_args": "extra_picard_args" - ], - toState: [ - "processed_genome_bam": "output_bam", - "markduplicates_metrics": "metrics" - ] - ) - | samtools_sort.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ "input": "processed_genome_bam" ], - toState: [ "processed_genome_bam": "output" ], - key: "genome_sorted_MarkDuplicates" - ) - | samtools_index.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted_MarkDuplicates", - ) - | samtools_stats.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_stats": "output" ], - key: "MarkDuplicates_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ + | picard_markduplicates.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "genome_bam", + "fasta": "fasta", + "fai": "fai", + "extra_picard_args": "extra_picard_args" + ], + toState: [ + "processed_genome_bam": "output_bam", + "markduplicates_metrics": "metrics" + ] + ) + | samtools_sort.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "input": "processed_genome_bam" ], + toState: [ "processed_genome_bam": "output" ], + key: "genome_sorted_MarkDuplicates" + ) + | samtools_index.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted_MarkDuplicates", + ) + | samtools_stats.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_stats": "output" ], + key: "MarkDuplicates_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "MarkDuplicates_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "bam": "processed_genome_bam", "bai": "genome_bam_index" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "MarkDuplicates_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "MarkDuplicates_idxstats" - ) + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "MarkDuplicates_idxstats" + ) - | stringtie.run ( - runIf: { id, state -> !state.skip_stringtie }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "annotation_gtf": "gtf", - "extra_stringtie_args": "extra_stringtie_args" - ], - toState: [ - "stringtie_transcript_gtf": "transcript_gtf", - "stringtie_coverage_gtf": "coverage_gtf", - "stringtie_abundance": "abundance", - "stringtie_ballgown": "ballgown" - ] - ) + | stringtie.run ( + runIf: { id, state -> !state.skip_stringtie }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "annotation_gtf": "gtf", + "extra_stringtie_args": "extra_stringtie_args" + ], + toState: [ + "stringtie_transcript_gtf": "transcript_gtf", + "stringtie_coverage_gtf": "coverage_gtf", + "stringtie_abundance": "abundance", + "stringtie_ballgown": "ballgown" + ] + ) - // Genome-wide coverage with BEDTools + // Genome-wide coverage with BEDTools - | bedtools_genomecov.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "extra_bedtools_args": "extra_bedtools_args" - ], - toState: [ + | bedtools_genomecov.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "extra_bedtools_args": "extra_bedtools_args" + ], + toState: [ + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse" + ] + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bedgraph_forward": "output_bedgraph" ], + key: "bedclip_forward" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_forward": "bigwig" ], + key: "bedgraphtobigwig_forward" + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes", + ], + toState: [ "bedgraph_reverse": "output_bedgraph" ], + key: "bedclip_reverse" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_reverse": "bigwig" ], + key: "bedgraphtobigwig_reverse" + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "processed_genome_bam": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse" - ] - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bedgraph_forward": "output_bedgraph" ], - key: "bedclip_forward" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_forward": "bigwig" ], - key: "bedgraphtobigwig_forward" - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes", - ], - toState: [ "bedgraph_reverse": "output_bedgraph" ], - key: "bedclip_reverse" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_reverse": "bigwig" ], - key: "bedgraphtobigwig_reverse" - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - "processed_genome_bam": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ) + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ) emit: output_ch diff --git a/src/workflows/pre_processing/main.nf b/src/workflows/pre_processing/main.nf index 3988cfc..55ce1b1 100644 --- a/src/workflows/pre_processing/main.nf +++ b/src/workflows/pre_processing/main.nf @@ -6,238 +6,238 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [paired: paired, input: input] ] - } - - // Perform QC on input fastq files - | fastqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2" - ] - ) - - // Extract UMIs from fastq files and discard read 1 or read 2 if required - | umitools_extract.run ( - runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] - [ paired: state.paired, - input: input, - bc_pattern: bc_pattern, - umi_discard_read: state.umi_discard_read ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Discard read if required - | map { id, state -> - def paired = state.paired - def fastq_2 = state.fastq_2 - if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { - fastq_2 = state.remove(state.fastq_2) - paired = false + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [paired: paired, input: input] ] } - [ id, state + [paired: paired, fastq_2: fastq_2] ] - } - // Trim reads using Trim galore! - | trimgalore.run ( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - min_trimmed_reads: state.min_trimmed_reads ] - }, - toState: [ - "fastq_1": "trimmed_r1", - "fastq_2": "trimmed_r2", - "trim_log_1": "trimming_report_r1", - "trim_log_2": "trimming_report_r2", - "trim_zip_1": "trimmed_fastqc_zip_1", - "trim_zip_2": "trimmed_fastqc_zip_2", - "trim_html_1": "trimmed_fastqc_html_1", - "trim_html_2": "trimmed_fastqc_html_2" - ], - args: [gzip: true, fastqc: true] - ) - - // Trim reads using fastp - | fastp.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: [ - "in1": "fastq_1", - "in2": "fastq_2", - "merge": "fastp_save_merged", - "interleaved_in": "interleaved_reads", - "detect_adapter_for_pe": "fastp_pe_detect_adapter", - "adapter_fasta": "fastp_adapter_fasta" - ], - toState: [ - "fastq_1": "out1", - "fastq_2": "out2", - "failed_trim": "failed_out", - "failed_trim_unpaired1": "unpaired1", - "failed_trim_unpaired2": "unpaired2", - "trim_json": "json", - "trim_html": "html", - "trim_merged_out": "merged_out" - ] - ) - - // Perform FASTQC on reads trimmed using fastp - | fastqc.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "trim_html_1": "fastqc_html_1", - "trim_html_2": "fastqc_html_2", - "trim_zip_1": "fastqc_zip_1", - "trim_zip_2": "fastqc_zip_2" - ], - key: "fastqc_trimming" - ) - - // Filter out contaminant RNA - | bbmap_bbsplit.run ( - runIf: { id, state -> !state.skip_bbsplit }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - built_bbsplit_index: state.bbsplit_index ] - }, - args: ["only_build_index": false], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Sort reads by rRNA and non-rRNA - | sortmerna.run ( - runIf: { id, state -> state.remove_ribo_rna }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def filePaths = state.ribo_database_manifest.readLines() - def refs = filePaths.collect { it } - [ paired: state.paired, - input: input, - ribo_database_manifest: refs ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "sortmerna_log": "sortmerna_log" - ] - ) - - // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness - | fq_subsample.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ - input: input, - extra_args: state.extra_fq_subsample_args + // Perform QC on input fastq files + | fastqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2" ] - }, - toState: [ - "subsampled_fastq_1": "output_1", - "subsampled_fastq_2": "output_2" - ] - ) + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - | salmon_quant.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null - def mates1 = state.paired ? state.subsampled_fastq_1 : null - def mates2 = state.paired ? state.subsampled_fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - args: [ "skip_quant": true ], - toState: [ "salmon_quant_output": "output" ] - ) + // Extract UMIs from fastq files and discard read 1 or read 2 if required + | umitools_extract.run ( + runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] + [ paired: state.paired, + input: input, + bc_pattern: bc_pattern, + umi_discard_read: state.umi_discard_read ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Discard read if required + | map { id, state -> + def paired = state.paired + def fastq_2 = state.fastq_2 + if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { + fastq_2 = state.remove(state.fastq_2) + paired = false + } + [ id, state + [paired: paired, fastq_2: fastq_2] ] + } - | map { id, state -> - def mod_state = (!state.paired) ? - [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : - [] - [ id, state + mod_state ] - } + // Trim reads using Trim galore! + | trimgalore.run ( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + min_trimmed_reads: state.min_trimmed_reads ] + }, + toState: [ + "fastq_1": "trimmed_r1", + "fastq_2": "trimmed_r2", + "trim_log_1": "trimming_report_r1", + "trim_log_2": "trimming_report_r2", + "trim_zip_1": "trimmed_fastqc_zip_1", + "trim_zip_2": "trimmed_fastqc_zip_2", + "trim_html_1": "trimmed_fastqc_html_1", + "trim_html_2": "trimmed_fastqc_html_2" + ], + args: [gzip: true, fastqc: true] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + // Trim reads using fastp + | fastp.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: [ + "in1": "fastq_1", + "in2": "fastq_2", + "merge": "fastp_save_merged", + "interleaved_in": "interleaved_reads", + "detect_adapter_for_pe": "fastp_pe_detect_adapter", + "adapter_fasta": "fastp_adapter_fasta" + ], + toState: [ + "fastq_1": "out1", + "fastq_2": "out2", + "failed_trim": "failed_out", + "failed_trim_unpaired1": "unpaired1", + "failed_trim_unpaired2": "unpaired2", + "trim_json": "json", + "trim_html": "html", + "trim_merged_out": "merged_out" + ] + ) - | setState ( - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "qc_output1": "fastq_1", - "qc_output2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "failed_trim": "failed_trim", - "failed_trim_unpaired1": "failed_trim_unpaired1", - "failed_trim_unpaired2": "failed_trim_unpaired2", - "trim_json": "trim_json", - "trim_html": "trim_html", - "trim_merged_out": "trim_merged_out", - "salmon_quant_output": "salmon_quant_output" - ) + // Perform FASTQC on reads trimmed using fastp + | fastqc.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "trim_html_1": "fastqc_html_1", + "trim_html_2": "fastqc_html_2", + "trim_zip_1": "fastqc_zip_1", + "trim_zip_2": "fastqc_zip_2" + ], + key: "fastqc_trimming" + ) + + // Filter out contaminant RNA + | bbmap_bbsplit.run ( + runIf: { id, state -> !state.skip_bbsplit }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + built_bbsplit_index: state.bbsplit_index ] + }, + args: ["only_build_index": false], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Sort reads by rRNA and non-rRNA + | sortmerna.run ( + runIf: { id, state -> state.remove_ribo_rna }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def filePaths = state.ribo_database_manifest.readLines() + def refs = filePaths.collect { it } + [ paired: state.paired, + input: input, + ribo_database_manifest: refs ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "sortmerna_log": "sortmerna_log" + ] + ) + + // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness + | fq_subsample.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ + input: input, + extra_args: state.extra_fq_subsample_args + ] + }, + toState: [ + "subsampled_fastq_1": "output_1", + "subsampled_fastq_2": "output_2" + ] + ) + + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + | salmon_quant.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null + def mates1 = state.paired ? state.subsampled_fastq_1 : null + def mates2 = state.paired ? state.subsampled_fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + args: [ "skip_quant": true ], + toState: [ "salmon_quant_output": "output" ] + ) + + | map { id, state -> + def mod_state = (!state.paired) ? + [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : + [] + [ id, state + mod_state ] + } + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "qc_output1": "fastq_1", + "qc_output2": "fastq_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "sortmerna_log": "sortmerna_log", + "failed_trim": "failed_trim", + "failed_trim_unpaired1": "failed_trim_unpaired1", + "failed_trim_unpaired2": "failed_trim_unpaired2", + "trim_json": "trim_json", + "trim_html": "trim_html", + "trim_merged_out": "trim_merged_out", + "salmon_quant_output": "salmon_quant_output" + ) emit: output_ch diff --git a/src/workflows/prepare_genome/main.nf b/src/workflows/prepare_genome/main.nf index 85aac62..3791868 100644 --- a/src/workflows/prepare_genome/main.nf +++ b/src/workflows/prepare_genome/main.nf @@ -6,278 +6,280 @@ workflow run_wf { main: output_ch = input_ch - // Uncompress fasta - | gunzip.run ( - fromState: [ "input": "fasta" ], - toState: [ "fasta": "output" ], - key: "gunzip_fasta", - args: [ output: "reference_genome.fasta" ] - ) + // Uncompress fasta + | gunzip.run ( + fromState: [ "input": "fasta" ], + toState: [ "fasta": "output" ], + key: "gunzip_fasta", + args: [ output: "reference_genome.fasta" ] + ) - // uncompress gtf - | gunzip.run ( - runIf: {id, state -> state.gtf}, - fromState: [ "input": "gtf" ], - toState: [ "gtf": "output" ], - key: "gunzip_gtf", - args: [output: "gene_annotation.gtf"] - ) + // uncompress gtf + | gunzip.run ( + runIf: {id, state -> state.gtf}, + fromState: [ "input": "gtf" ], + toState: [ "gtf": "output" ], + key: "gunzip_gtf", + args: [output: "gene_annotation.gtf"] + ) - // uncompress gff - | gunzip.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ "input": "gff" ], - toState: [ "gff": "output" ], - key: "gunzip_gff", - args: [output: "gene_annotation.gff"] - ) + // uncompress gff + | gunzip.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ "input": "gff" ], + toState: [ "gff": "output" ], + key: "gunzip_gff", + args: [output: "gene_annotation.gff"] + ) - // gff to gtf - | gffread.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ - "input": "gff", - "genome": "fasta" - ], - toState: [ "gtf": "outfile" ], - args: [ - outfile: "gene_annotation.gtf", - gtf_output: true - ] - ) + // gff to gtf + | gffread.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ + "input": "gff", + "genome": "fasta" + ], + toState: [ "gtf": "outfile" ], + args: [ + outfile: "gene_annotation.gtf", + gtf_output: true, + keep_attrs: true, + keep_exon_attrs: true + ] + ) - | gtf_filter.run( - runIf: {id, state -> state.gtf && state.filter_gtf}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf" - ], - toState: [ "gtf": "filtered_gtf" ], - args: [filtered_gtf: "gene_annotation.gtf"] - ) + | gtf_filter.run( + runIf: {id, state -> state.gtf && state.filter_gtf}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf" + ], + toState: [ "gtf": "filtered_gtf" ], + args: [filtered_gtf: "gene_annotation.gtf"] + ) - // uncompress additional fasta - | gunzip.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ "input": "additional_fasta" ], - toState: [ "additional_fasta": "output" ], - key: "gunzip_additional_fasta", - args: [output: "additional.fasta"] - ) + // uncompress additional fasta + | gunzip.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ "input": "additional_fasta" ], + toState: [ "additional_fasta": "output" ], + key: "gunzip_additional_fasta", + args: [output: "additional.fasta"] + ) - // concatenate additional fasta - | cat_additional_fasta.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "additional_fasta": "additional_fasta", - "biotype": "biotype" - ], - toState: [ - "fasta": "fasta_output", - "gtf": "gtf_output" - ], - args: [ - fasta_output: "genome_additional.fasta", - gtf_output: "genome_additional.gtf" - ] - ) + // concatenate additional fasta + | cat_additional_fasta.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "additional_fasta": "additional_fasta", + "biotype": "biotype" + ], + toState: [ + "fasta": "fasta_output", + "gtf": "gtf_output" + ], + args: [ + fasta_output: "genome_additional.fasta", + gtf_output: "genome_additional.gtf" + ] + ) - // uncompress bed file - | gunzip.run ( - runIf: {id, state -> state.gene_bed}, - fromState: [ "input": "gene_bed" ], - toState: [ "gene_bed": "output" ], - key: "gunzip_gene_bed", - args: [output: "genome_additional.bed"] - ) + // uncompress bed file + | gunzip.run ( + runIf: {id, state -> state.gene_bed}, + fromState: [ "input": "gene_bed" ], + toState: [ "gene_bed": "output" ], + key: "gunzip_gene_bed", + args: [output: "genome_additional.bed"] + ) - // gtf to bed - | gtf2bed.run ( - runIf: { id, state -> !state.gene_bed}, - fromState: [ "gtf": "gtf" ], - toState: [ "gene_bed": "bed_output" ], - args: [bed_output: "genome_additional.bed"] - ) + // gtf to bed + | gtf2bed.run ( + runIf: { id, state -> !state.gene_bed}, + fromState: [ "gtf": "gtf" ], + toState: [ "gene_bed": "bed_output" ], + args: [bed_output: "genome_additional.bed"] + ) - // uncompress transcript fasta - | gunzip.run ( - runIf: {id, state -> state.transcript_fasta}, - fromState: [ "input": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - key: "transcript_fasta", - args: [output: "transcriptome.fasta"] - ) + // uncompress transcript fasta + | gunzip.run ( + runIf: {id, state -> state.transcript_fasta}, + fromState: [ "input": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + key: "transcript_fasta", + args: [output: "transcriptome.fasta"] + ) - // preprocess transcripts fasta if gtf is in gencode format - | preprocess_transcripts_fasta.run ( - runIf: {id, state -> state.transcript_fasta && state.gencode}, - fromState: [ "transcript_fasta": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - args: [output: "transcriptome.fasta"] - ) + // preprocess transcripts fasta if gtf is in gencode format + | preprocess_transcripts_fasta.run ( + runIf: {id, state -> state.transcript_fasta && state.gencode}, + fromState: [ "transcript_fasta": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + args: [output: "transcriptome.fasta"] + ) - // make transcript FASTA if not provided - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.transcript_fasta}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "make_transcript_fasta_output": "output" ], - key: "make_transcript_fasta",\ - args: [reference_name: "genome"] - ) - | map { id, state -> - def transcript_fasta = (!state.transcript_fasta) ? - state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : - state.transcript_fasta - [ id, state + [transcript_fasta: transcript_fasta] ] - } + // make transcript FASTA if not provided + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.transcript_fasta}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "make_transcript_fasta_output": "output" ], + key: "make_transcript_fasta", + args: [reference_name: "genome"] + ) + | map { id, state -> + def transcript_fasta = (!state.transcript_fasta) ? + state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : + state.transcript_fasta + [ id, state + [transcript_fasta: transcript_fasta] ] + } - // chromosome size and fai index - | getchromsizes.run ( - fromState: [ "fasta": "fasta" ], - toState: [ - "fai": "fai", - "sizes": "sizes" - ], - key: "chromsizes", - args: [ - fai: "genome_additional.fasta.fai", - sizes: "genome_additional.fasta.sizes" - ] - ) - - // untar bbsplit index, if available - | untar.run ( - runIf: {id, state -> state.bbsplit_index}, - fromState: [ "input": "bbsplit_index" ], - toState: [ "bbsplit_index": "output" ], - key: "untar_bbsplit_index", - args: [output: "BBSplit_index"] - ) - - // create bbsplit index, if not already availble - | bbmap_bbsplit.run ( - runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, - fromState: [ - "primary_ref": "fasta", - "bbsplit_fasta_list": "bbsplit_fasta_list" - ], - toState: [ "bbsplit_index": "bbsplit_index" ], - args: [ - only_build_index: true, - bbsplit_index: "BBSplit_index" - ], - key: "generate_bbsplit_index" - ) + // chromosome size and fai index + | getchromsizes.run ( + fromState: [ "fasta": "fasta" ], + toState: [ + "fai": "fai", + "sizes": "sizes" + ], + key: "chromsizes", + args: [ + fai: "genome_additional.fasta.fai", + sizes: "genome_additional.fasta.sizes" + ] + ) + + // untar bbsplit index, if available + | untar.run ( + runIf: {id, state -> state.bbsplit_index}, + fromState: [ "input": "bbsplit_index" ], + toState: [ "bbsplit_index": "output" ], + key: "untar_bbsplit_index", + args: [output: "BBSplit_index"] + ) + + // create bbsplit index, if not already availble + | bbmap_bbsplit.run ( + runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, + fromState: [ + "primary_ref": "fasta", + "bbsplit_fasta_list": "bbsplit_fasta_list" + ], + toState: [ "bbsplit_index": "bbsplit_index" ], + args: [ + only_build_index: true, + bbsplit_index: "BBSplit_index" + ], + key: "generate_bbsplit_index" + ) - // Uncompress STAR index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.star_index}, - fromState: [ "input": "star_index" ], - toState: [ "star_index": "output" ], - key: "untar_star_index", - args: [output: "STAR_index"] - ) - - // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode - | star_genome_generate.run ( - runIf: {id, state -> !state.star_index && !state.skip_alignment}, - fromState: [ - "genome_fasta_files": "fasta", - "sjdb_gtf_file": "gtf", - "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ "star_index": "index" ], - key: "generate_star_index", - args: [index: "STAR_index"] - ) + // Uncompress STAR index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.star_index}, + fromState: [ "input": "star_index" ], + toState: [ "star_index": "output" ], + key: "untar_star_index", + args: [output: "STAR_index"] + ) + + // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode + | star_genome_generate.run ( + runIf: {id, state -> !state.star_index && !state.skip_alignment}, + fromState: [ + "genome_fasta_files": "fasta", + "sjdb_gtf_file": "gtf", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ "star_index": "index" ], + key: "generate_star_index", + args: [index: "STAR_index"] + ) - // Uncompress RSEM index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.rsem_index}, - fromState: [ "input": "rsem_index" ], - toState: [ "rsem_index": "output" ], - key: "untar_rsem_index", - args: [output: "RSEM_index"] - ) + // Uncompress RSEM index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.rsem_index}, + fromState: [ "input": "rsem_index" ], + toState: [ "rsem_index": "output" ], + key: "untar_rsem_index", + args: [output: "RSEM_index"] + ) - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "rsem_index": "output" ], - key: "generate_rsem_index", - args: [reference_name: "genome"] - ) - - // TODO: Uncompress HISAT2 index or generate from scratch if required + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "rsem_index": "output" ], + key: "generate_rsem_index", + args: [reference_name: "genome"] + ) + + // TODO: Uncompress HISAT2 index or generate from scratch if required - // Uncompress Salmon index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.salmon_index}, - fromState: [ "input": "salmon_index" ], - toState: [ "salmon_index": "output" ], - key: "untar_salmon_index", - args: [output: "Salmon_index"] - ) + // Uncompress Salmon index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.salmon_index}, + fromState: [ "input": "salmon_index" ], + toState: [ "salmon_index": "output" ], + key: "untar_salmon_index", + args: [output: "Salmon_index"] + ) - | salmon_index.run ( - runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, - fromState: [ - "genome": "fasta", - "transcripts": "transcript_fasta", - "kmer_len": "pseudo_aligner_kmer_size", - "gencode": "gencode" - ], - toState: [ "salmon_index": "index" ], - key: "generate_salmon_index", - args: [index: "Salmon_index"] - ) + | salmon_index.run ( + runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, + fromState: [ + "genome": "fasta", + "transcripts": "transcript_fasta", + "kmer_len": "pseudo_aligner_kmer_size", + "gencode": "gencode" + ], + toState: [ "salmon_index": "index" ], + key: "generate_salmon_index", + args: [index: "Salmon_index"] + ) - // Uncompress Kallisto index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.kallisto_index}, - fromState: [ "input": "kallisto_index" ], - toState: [ "kallisto_index": "output" ], - key: "untar_kallisto_index", - args: [output: "Kallisto_index"] - ) + // Uncompress Kallisto index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.kallisto_index}, + fromState: [ "input": "kallisto_index" ], + toState: [ "kallisto_index": "output" ], + key: "untar_kallisto_index", + args: [output: "Kallisto_index"] + ) - | kallisto_index.run( - runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, - fromState: [ - "transcriptome_fasta": "transcript_fasta", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" - ], - toState: [ "kallisto_index": "kallisto_index" ], - key: "generate_kallisto_index", - args: [kallisto_index: "Kallisto_index"] - ) + | kallisto_index.run( + runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, + fromState: [ + "transcriptome_fasta": "transcript_fasta", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" + ], + toState: [ "kallisto_index": "kallisto_index" ], + key: "generate_kallisto_index", + args: [kallisto_index: "Kallisto_index"] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - "fasta_uncompressed": "fasta", - "gtf_uncompressed": "gtf", - "transcript_fasta_uncompressed": "transcript_fasta", - "gene_bed_uncompressed": "gene_bed", - "star_index_uncompressed": "star_index", - "salmon_index_uncompressed": "salmon_index", - "kallisto_index_uncompressed": "kallisto_index", - "bbsplit_index_uncompressed": "bbsplit_index", - "rsem_index_uncompressed": "rsem_index", - "chrom_sizes": "sizes", - "fai": "fai" - ) + | setState ( + "fasta_uncompressed": "fasta", + "gtf_uncompressed": "gtf", + "transcript_fasta_uncompressed": "transcript_fasta", + "gene_bed_uncompressed": "gene_bed", + "star_index_uncompressed": "star_index", + "salmon_index_uncompressed": "salmon_index", + "kallisto_index_uncompressed": "kallisto_index", + "bbsplit_index_uncompressed": "bbsplit_index", + "rsem_index_uncompressed": "rsem_index", + "chrom_sizes": "sizes", + "fai": "fai" + ) emit: output_ch diff --git a/src/workflows/pseudo_alignment_and_quant/main.nf b/src/workflows/pseudo_alignment_and_quant/main.nf index e275962..2f05133 100644 --- a/src/workflows/pseudo_alignment_and_quant/main.nf +++ b/src/workflows/pseudo_alignment_and_quant/main.nf @@ -4,86 +4,87 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } - - - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'salmon' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.fastq_1 : null - def mates1 = state.paired ? state.fastq_1 : null - def mates2 = state.paired ? state.fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - toState: [ - "quant_out_dir": "output", - "salmon_quant_results_file": "quant_results" - ] - ) + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | map { id, state -> - def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - | kallisto_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, - fromState: [ - "input": "input", - "paired": "paired", - "gtf": "gtf", - "index": "kallisto_index", - "fragment_length": "kallisto_quant_fragment_length", - "fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "quant_out_dir": "output", - "kallisto_quant_results_file": "quant_results_file", - "pseudo_multiqc": "log" - ] - ) + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'salmon' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.fastq_1 : null + def mates1 = state.paired ? state.fastq_1 : null + def mates2 = state.paired ? state.fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + toState: [ + "quant_out_dir": "output", + "salmon_quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } - | setState ( - [ "pseudo_multiqc": "quant_results", - "quant_out_dir": "quant_out_dir", - "salmon_quant_results_file": "salmon_quant_results_file", - "kallisto_quant_results_file": "kallisto_quant_results_file" ] - ) + | kallisto_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, + fromState: [ + "input": "input", + "paired": "paired", + "gtf": "gtf", + "index": "kallisto_index", + "fragment_length": "kallisto_quant_fragment_length", + "fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "quant_out_dir": "output", + "kallisto_quant_results_file": "quant_results_file", + "pseudo_multiqc": "log" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ "pseudo_multiqc": "quant_results", + "quant_out_dir": "quant_out_dir", + "salmon_quant_results_file": "salmon_quant_results_file", + "kallisto_quant_results_file": "kallisto_quant_results_file" ] + ) emit: output_ch diff --git a/src/workflows/quality_control/config.vsh.yaml b/src/workflows/quality_control/config.vsh.yaml index 4f57330..0755c04 100644 --- a/src/workflows/quality_control/config.vsh.yaml +++ b/src/workflows/quality_control/config.vsh.yaml @@ -120,9 +120,9 @@ argument_groups: - name: "--rseqc_modules" type: string multiple: true - multiple_sep: "," + multiple_sep: ";" description: Specify the RSeQC modules to run_wf - default: bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication + default: bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication choices: [ "bam_stat", "inner_distance", "infer_experiment", "junction_annotation", "junction_saturation", "read_distribution", "read_duplication", "tin" ] - name: "--sample_size" type: integer diff --git a/src/workflows/quality_control/main.nf b/src/workflows/quality_control/main.nf index ca458dd..6eca35a 100644 --- a/src/workflows/quality_control/main.nf +++ b/src/workflows/quality_control/main.nf @@ -7,733 +7,735 @@ workflow run_wf { qc_ch = input_ch - // Feature biotype QC using featureCounts - | map { id, state -> - def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) - def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type - def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) - [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] - } + // temporary fix to force assignment when alignment in skipped + | map {it} - | featurecounts.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, - fromState: [ - "paired": "paired", - "strand": "strand", - "annotation": "gtf", - "input": "genome_bam", - "attribute_type": "attribute_type", - "feature_type": "featurecounts_feature_type", - "count_read_pairs": "paired" - ], - toState: [ - "featurecounts": "counts", - "featurecounts_summary": "summary" - ], - args: [ - both_aligned: true, - same_strand: true - ] - ) + // Feature biotype QC using featureCounts + | map { id, state -> + def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) + def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type + def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) + [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] + } - | multiqc_custom_biotype.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, - fromState: [ - "id": "id", - "biocounts": "featurecounts", - "biotypes_header": "biotypes_header" - ], - toState: [ - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" - ] - ) - - | preseq_lcextrap.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, - fromState: [ - "paired": "paired", - "input": "genome_bam", - "extra_preseq_args": "extra_preseq_args" - ], - toState: [ "preseq_output": "output" ] - ) - - | rseqc_bamstat.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "map_qual": "map_qual" - ], - toState: [ "bamstat_output": "output" ] - ) - | rseqc_inferexperiment.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual" - ], - toState: [ "strandedness_output": "output" ] - ) - // Get predicted strandedness from the RSeQC infer_experiment.py output - | map { id, state -> - def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) - def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true - [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] - } - | rseqc_innerdistance.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, - key: "inner_distance", - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual", - "lower_bound_size": "lower_bound_size", - "upper_bound_size": "upper_bound_size", - "step_size": "step_size" - ], - toState: [ - "inner_dist_output_stats": "output_stats", - "inner_dist_output_dist": "output_dist", - "inner_dist_output_freq": "output_freq", - "inner_dist_output_plot": "output_plot", - "inner_dist_output_plot_r": "output_plot_r" - ] - ) - | rseqc_junctionannotation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "map_qual": "map_qual", - "min_intron": "min_intron" - ], - toState: [ - "junction_annotation_output_log": "output_log", - "junction_annotation_output_plot_r": "output_plot_r", - "junction_annotation_output_junction_bed": "output_junction_bed", - "junction_annotation_output_junction_interact": "output_junction_interact", - "junction_annotation_output_junction_sheet": "output_junction_sheet", - "junction_annotation_output_splice_events_plot": "output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" - ] - ) - | rseqc_junctionsaturation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", - "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", - "sampling_percentile_step": "sampling_percentile_step", - "min_intron": "min_intron", - "min_splice_read": "min_splice_read", - "map_qual": "map_qual" - ], - toState: [ - "junction_saturation_output_plot_r": "output_plot_r", - "junction_saturation_output_plot": "output_plot" - ] - ) - | rseqc_readdistribution.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - ], - toState: [ "read_distribution_output": "output" ] - ) - | rseqc_readduplication.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "read_count_upper_limit": "read_count_upper_limit", - "map_qual": "map_qual" - ], - toState: [ - "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" - ] - ) - | rseqc_tin.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "bam_input": "genome_bam", - "bai_input": "genome_bam_index", - "refgene": "gene_bed", - "minimum_coverage": "minimum_coverage", - "sample_size": "tin_sample_size", - "subtract_background": "subtract_background" - ], - toState: [ - "tin_output_summary": "output_tin_summary", - "tin_output_metrics": "output_tin" - ] - ) + | featurecounts.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, + fromState: [ + "paired": "paired", + "strand": "strand", + "annotation": "gtf", + "input": "genome_bam", + "attribute_type": "attribute_type", + "feature_type": "featurecounts_feature_type", + "count_read_pairs": "paired" + ], + toState: [ + "featurecounts": "counts", + "featurecounts_summary": "summary" + ], + args: [ + both_aligned: true, + same_strand: true + ] + ) - | dupradar.run( - runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, - fromState: [ - "id": "id", - "input": "genome_bam", - "gtf_annotation": "gtf", - "paired": "paired", - "strandedness": "strandedness" - ], - toState: [ - "dupradar_output_dupmatrix": "output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "output_expression_histogram", - "dupradar_output_intercept_slope": "output_intercept_slope" - ] - ) + | multiqc_custom_biotype.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, + fromState: [ + "id": "id", + "biocounts": "featurecounts", + "biotypes_header": "biotypes_header" + ], + toState: [ + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" + ] + ) + + | preseq_lcextrap.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, + fromState: [ + "paired": "paired", + "input": "genome_bam", + "extra_preseq_args": "extra_preseq_args" + ], + toState: [ "preseq_output": "output" ] + ) + + | rseqc_bamstat.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "map_qual": "map_qual" + ], + toState: [ "bamstat_output": "output" ] + ) + | rseqc_inferexperiment.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual" + ], + toState: [ "strandedness_output": "output" ] + ) + // Get predicted strandedness from the RSeQC infer_experiment.py output + | map { id, state -> + def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) + def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true + [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] + } + | rseqc_innerdistance.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, + key: "inner_distance", + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual", + "lower_bound_size": "lower_bound_size", + "upper_bound_size": "upper_bound_size", + "step_size": "step_size" + ], + toState: [ + "inner_dist_output_stats": "output_stats", + "inner_dist_output_dist": "output_dist", + "inner_dist_output_freq": "output_freq", + "inner_dist_output_plot": "output_plot", + "inner_dist_output_plot_r": "output_plot_r" + ] + ) + | rseqc_junctionannotation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "map_qual": "map_qual", + "min_intron": "min_intron" + ], + toState: [ + "junction_annotation_output_log": "output_log", + "junction_annotation_output_plot_r": "output_plot_r", + "junction_annotation_output_junction_bed": "output_junction_bed", + "junction_annotation_output_junction_interact": "output_junction_interact", + "junction_annotation_output_junction_sheet": "output_junction_sheet", + "junction_annotation_output_splice_events_plot": "output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" + ] + ) + | rseqc_junctionsaturation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", + "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", + "sampling_percentile_step": "sampling_percentile_step", + "min_intron": "min_intron", + "min_splice_read": "min_splice_read", + "map_qual": "map_qual" + ], + toState: [ + "junction_saturation_output_plot_r": "output_plot_r", + "junction_saturation_output_plot": "output_plot" + ] + ) + | rseqc_readdistribution.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + ], + toState: [ "read_distribution_output": "output" ] + ) + | rseqc_readduplication.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "read_count_upper_limit": "read_count_upper_limit", + "map_qual": "map_qual" + ], + toState: [ + "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" + ] + ) + | rseqc_tin.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "bam_input": "genome_bam", + "bai_input": "genome_bam_index", + "refgene": "gene_bed", + "minimum_coverage": "minimum_coverage", + "sample_size": "tin_sample_size", + "subtract_background": "subtract_background" + ], + toState: [ + "tin_output_summary": "output_tin_summary", + "tin_output_metrics": "output_tin" + ] + ) - | qualimap.run( - runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "gtf": "gtf", - "pr_bases": "pr_bases", - "tr_bias": "tr_bias", - "algorithm": "algorithm", - "sequencing_protocol": "sequencing_protocol", - "sorted": "sorted", - "java_memory_size": "java_memory_size", - ], - toState: [ - "qualimap_output_pdf": "output_pdf", - "qualimap_output_dir": "output_dir" - ] - ) + | dupradar.run( + runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, + fromState: [ + "id": "id", + "input": "genome_bam", + "gtf_annotation": "gtf", + "paired": "paired", + "strandedness": "strandedness" + ], + toState: [ + "dupradar_output_dupmatrix": "output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "output_expression_histogram", + "dupradar_output_intercept_slope": "output_intercept_slope" + ] + ) + + | qualimap.run( + runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "gtf": "gtf", + "pr_bases": "pr_bases", + "tr_bias": "tr_bias", + "algorithm": "algorithm", + "sequencing_protocol": "sequencing_protocol", + "sorted": "sorted", + "java_memory_size": "java_memory_size", + ], + toState: [ + "qualimap_output_pdf": "output_pdf", + "qualimap_output_dir": "output_dir" + ] + ) merged_ch = qc_ch - - | toSortedList - | map { list -> - def ids = list.collect { id, state -> id } - def strandedness = list.collect { id, state -> state.strandedness } - def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } - def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } - def passed_mapping = list.collect { id, state -> state.passed_mapping } - def percent_mapped = list.collect { id, state -> state.percent_mapped } - def inferred_strand = list.collect { id, state -> state.inferred_strand } - def passed_strand_check = list.collect { id, state -> state.passed_strand_check } - def gtf = list.collect { id, state -> state.gtf }.unique()[0] - def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] - def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] - def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] - def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] - def aligner = list.collect { id, state -> state.aligner }.unique()[0] - def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] - def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] - def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] - def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] - def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] - def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] - def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] - def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] - def quant_results = list.collect { id, state -> - (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? - state.quant_results_file : - null } - def rsem_counts_gene = list.collect { id, state -> - (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? - state.rsem_counts_gene : - null } - def rsem_counts_transcripts = list.collect { id, state -> - (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? - state.rsem_counts_transcripts : - null } - def pseudo_quant_out_dir = list.collect { id, state -> - (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? - state.pseudo_quant_out_dir : - null } - def pseudo_salmon_quant_results = list.collect { id, state -> - (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? - state.pseudo_salmon_quant_results_file : - null } - def pseudo_kallisto_quant_results = list.collect { id, state -> - (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? - state.pseudo_kallisto_quant_results_file : - null } - def fastqc_zip_1 = list.collect { id, state -> - (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? - state.fastqc_zip_1 : - null } - def fastqc_zip_2 = list.collect { id, state -> - (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? - state.fastqc_zip_2 : - null } - def trim_zip_1 = list.collect { id, state -> - (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? - state.trim_zip_1 : - null } - def trim_zip_2 = list.collect { id, state -> - (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? - state.trim_zip_2 : - null } - def trim_log_1 = list.collect { id, state -> - (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? - state.trim_log_1 : - null } - def trim_log_2 = list.collect { id, state -> - (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? - state.trim_log_2 : - null } - def sortmerna_multiqc = list.collect { id, state -> - (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? - state.sortmerna_multiqc : - null } - def star_multiqc = list.collect { id, state -> - (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? - state.star_multiqc : - null } - def genome_bam_stats = list.collect { id, state -> - (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? - state.genome_bam_stats : - null } - def genome_bam_flagstat = list.collect { id, state -> - (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? - state.genome_bam_flagstat : - null } - def genome_bam_idxstats = list.collect { id, state -> - (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? - state.genome_bam_idxstats : - null } - def markduplicates_multiqc = list.collect { id, state -> - (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? - state.markduplicates_multiqc : - null } - def salmon_multiqc = list.collect { id, state -> - (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? - state.salmon_multiqc : - null } - def rsem_multiqc = list.collect { id, state -> - (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? - state.rsem_multiqc : - null } - def pseudo_multiqc = list.collect { id, state -> - (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? - state.pseudo_multiqc : - null } - def featurecounts_multiqc = list.collect { id, state -> - (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? - state.featurecounts_multiqc : - null } - def featurecounts_rrna_multiqc = list.collect { id, state -> - (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? - state.featurecounts_rrna_multiqc : - null } - def preseq_output = list.collect { id, state -> - (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? - state.preseq_output : - null } - def qualimap_output_dir = list.collect { id, state -> - (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? - state.qualimap_output_dir : - null } - def dupradar_output_dup_intercept_mqc = list.collect { id, state -> - (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? - state.dupradar_output_dup_intercept_mqc : + | toSortedList + | map { list -> + def ids = list.collect { id, state -> id } + def strandedness = list.collect { id, state -> state.strandedness } + def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } + def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } + def passed_mapping = list.collect { id, state -> state.passed_mapping } + def percent_mapped = list.collect { id, state -> state.percent_mapped } + def inferred_strand = list.collect { id, state -> state.inferred_strand } + def passed_strand_check = list.collect { id, state -> state.passed_strand_check } + def gtf = list.collect { id, state -> state.gtf }.unique()[0] + def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] + def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] + def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] + def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] + def aligner = list.collect { id, state -> state.aligner }.unique()[0] + def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] + def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] + def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] + def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] + def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] + def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] + def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] + def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] + def quant_results = list.collect { id, state -> + (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? + state.quant_results_file : null } - def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> - (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? - state.dupradar_output_duprate_exp_denscurve_mqc : + def rsem_counts_gene = list.collect { id, state -> + (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? + state.rsem_counts_gene : null } - def bamstat_output = list.collect { id, state -> - (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? - state.bamstat_output : + def rsem_counts_transcripts = list.collect { id, state -> + (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? + state.rsem_counts_transcripts : + null } + def pseudo_quant_out_dir = list.collect { id, state -> + (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? + state.pseudo_quant_out_dir : + null } + def pseudo_salmon_quant_results = list.collect { id, state -> + (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? + state.pseudo_salmon_quant_results_file : + null } + def pseudo_kallisto_quant_results = list.collect { id, state -> + (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? + state.pseudo_kallisto_quant_results_file : + null } + def fastqc_zip_1 = list.collect { id, state -> + (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? + state.fastqc_zip_1 : + null } + def fastqc_zip_2 = list.collect { id, state -> + (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? + state.fastqc_zip_2 : + null } + def trim_zip_1 = list.collect { id, state -> + (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? + state.trim_zip_1 : + null } + def trim_zip_2 = list.collect { id, state -> + (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? + state.trim_zip_2 : null } - def inferexperiment_multiqc = list.collect { id, state -> - (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? - state.strandedness_output : + def trim_log_1 = list.collect { id, state -> + (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? + state.trim_log_1 : null } - def inner_dist_output_freq = list.collect { id, state -> - (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? - state.inner_dist_output_freq : + def trim_log_2 = list.collect { id, state -> + (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? + state.trim_log_2 : + null } + def sortmerna_multiqc = list.collect { id, state -> + (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? + state.sortmerna_multiqc : + null } + def star_multiqc = list.collect { id, state -> + (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? + state.star_multiqc : + null } + def genome_bam_stats = list.collect { id, state -> + (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? + state.genome_bam_stats : + null } + def genome_bam_flagstat = list.collect { id, state -> + (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? + state.genome_bam_flagstat : null } - def junction_annotation_output_log = list.collect { id, state -> - (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? - state.junction_annotation_output_log : - null } - def junction_saturation_output_plot_r = list.collect { id, state -> - (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? - state.junction_saturation_output_plot_r : - null } - def read_distribution_output = list.collect { id, state -> - (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? - state.read_distribution_output : - null } - def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> - (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? - state.read_duplication_output_duplication_rate_mapping : - null } - def tin_output_summary = list.collect { id, state -> - (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? - state.tin_output_summary : - null } - def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] - ["merged", [ - ids: ids, - strandedness: strandedness, - num_trimmed_reads: num_trimmed_reads, - passed_trimmed_reads: passed_trimmed_reads, - passed_mapping: passed_mapping, - percent_mapped: percent_mapped, - inferred_strand: inferred_strand, - passed_strand_check: passed_strand_check, - skip_align: skip_align, - skip_pseudo_align: skip_pseudo_align, - quant_results: quant_results.findAll { it != null }, - rsem_counts_gene: rsem_counts_gene.findAll { it != null }, - rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, - pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, - pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, - pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, - gtf: gtf, - gtf_extra_attributes: gtf_extra_attributes, - gtf_group_features: gtf_group_features, - pca_header_multiqc: pca_header_multiqc, - clustering_header_multiqc: clustering_header_multiqc, - aligner: aligner, - pseudo_aligner: pseudo_aligner, - deseq2_vst: deseq2_vst, - extra_deseq2_args: extra_deseq2_args, - extra_deseq2_args2: extra_deseq2_args2, - skip_deseq2_qc: skip_deseq2_qc, - fastqc_zip: fastqc_zip_1 + fastqc_zip_2, - trim_zip: trim_zip_1 + trim_zip_2, - trim_log: trim_log_1 + trim_log_2, - sortmerna_multiqc: sortmerna_multiqc, - star_multiqc: star_multiqc, - genome_bam_stats: genome_bam_stats, - genome_bam_flagstat: genome_bam_flagstat, - genome_bam_idxstats: genome_bam_idxstats, - markduplicates_multiqc: markduplicates_multiqc, - salmon_multiqc: salmon_multiqc, - rsem_multiqc: rsem_multiqc, - pseudo_multiqc: pseudo_multiqc, - featurecounts_multiqc: featurecounts_multiqc, - featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, - preseq_output: preseq_output, - qualimap_output_dir: qualimap_output_dir, - dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, - dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, - bamstat_output: bamstat_output, - inner_dist_output_freq: inner_dist_output_freq, - inferexperiment_multiqc: inferexperiment_multiqc, - junction_annotation_output_log: junction_annotation_output_log, - junction_saturation_output_plot_r: junction_saturation_output_plot_r, - read_distribution_output: read_distribution_output, - read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, - tin_output_summary: tin_output_summary, - multiqc_custom_config: multiqc_custom_config - ] ] - } + def genome_bam_idxstats = list.collect { id, state -> + (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? + state.genome_bam_idxstats : + null } + def markduplicates_multiqc = list.collect { id, state -> + (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? + state.markduplicates_multiqc : + null } + def salmon_multiqc = list.collect { id, state -> + (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? + state.salmon_multiqc : + null } + def rsem_multiqc = list.collect { id, state -> + (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? + state.rsem_multiqc : + null } + def pseudo_multiqc = list.collect { id, state -> + (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? + state.pseudo_multiqc : + null } + def featurecounts_multiqc = list.collect { id, state -> + (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? + state.featurecounts_multiqc : + null } + def featurecounts_rrna_multiqc = list.collect { id, state -> + (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? + state.featurecounts_rrna_multiqc : + null } + def preseq_output = list.collect { id, state -> + (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? + state.preseq_output : + null } + def qualimap_output_dir = list.collect { id, state -> + (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? + state.qualimap_output_dir : + null } + def dupradar_output_dup_intercept_mqc = list.collect { id, state -> + (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? + state.dupradar_output_dup_intercept_mqc : + null } + def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> + (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? + state.dupradar_output_duprate_exp_denscurve_mqc : + null } + def bamstat_output = list.collect { id, state -> + (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? + state.bamstat_output : + null } + def inferexperiment_multiqc = list.collect { id, state -> + (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? + state.strandedness_output : + null } + def inner_dist_output_freq = list.collect { id, state -> + (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? + state.inner_dist_output_freq : + null } + def junction_annotation_output_log = list.collect { id, state -> + (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? + state.junction_annotation_output_log : + null } + def junction_saturation_output_plot_r = list.collect { id, state -> + (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? + state.junction_saturation_output_plot_r : + null } + def read_distribution_output = list.collect { id, state -> + (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? + state.read_distribution_output : + null } + def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> + (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? + state.read_duplication_output_duplication_rate_mapping : + null } + def tin_output_summary = list.collect { id, state -> + (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? + state.tin_output_summary : + null } + def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] + ["merged", [ + ids: ids, + strandedness: strandedness, + num_trimmed_reads: num_trimmed_reads, + passed_trimmed_reads: passed_trimmed_reads, + passed_mapping: passed_mapping, + percent_mapped: percent_mapped, + inferred_strand: inferred_strand, + passed_strand_check: passed_strand_check, + skip_align: skip_align, + skip_pseudo_align: skip_pseudo_align, + quant_results: quant_results.findAll { it != null }, + rsem_counts_gene: rsem_counts_gene.findAll { it != null }, + rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, + pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, + pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, + pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, + gtf: gtf, + gtf_extra_attributes: gtf_extra_attributes, + gtf_group_features: gtf_group_features, + pca_header_multiqc: pca_header_multiqc, + clustering_header_multiqc: clustering_header_multiqc, + aligner: aligner, + pseudo_aligner: pseudo_aligner, + deseq2_vst: deseq2_vst, + extra_deseq2_args: extra_deseq2_args, + extra_deseq2_args2: extra_deseq2_args2, + skip_deseq2_qc: skip_deseq2_qc, + fastqc_zip: fastqc_zip_1 + fastqc_zip_2, + trim_zip: trim_zip_1 + trim_zip_2, + trim_log: trim_log_1 + trim_log_2, + sortmerna_multiqc: sortmerna_multiqc, + star_multiqc: star_multiqc, + genome_bam_stats: genome_bam_stats, + genome_bam_flagstat: genome_bam_flagstat, + genome_bam_idxstats: genome_bam_idxstats, + markduplicates_multiqc: markduplicates_multiqc, + salmon_multiqc: salmon_multiqc, + rsem_multiqc: rsem_multiqc, + pseudo_multiqc: pseudo_multiqc, + featurecounts_multiqc: featurecounts_multiqc, + featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, + preseq_output: preseq_output, + qualimap_output_dir: qualimap_output_dir, + dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, + dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, + bamstat_output: bamstat_output, + inner_dist_output_freq: inner_dist_output_freq, + inferexperiment_multiqc: inferexperiment_multiqc, + junction_annotation_output_log: junction_annotation_output_log, + junction_saturation_output_plot_r: junction_saturation_output_plot_r, + read_distribution_output: read_distribution_output, + read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, + tin_output_summary: tin_output_summary, + multiqc_custom_config: multiqc_custom_config + ] ] + } - // Merge quantification results of alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, - fromState: [ - "salmon_quant_results": "quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features" - ], - args: [ quant_type: "salmon"], - toState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_quant_results" - ) + // Merge quantification results of alignment + | merge_quant_results.run ( + runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, + fromState: [ + "salmon_quant_results": "quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features" + ], + args: [ quant_type: "salmon"], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_quant_results" + ) - | rsem_merge_counts.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "counts_gene": "rsem_counts_gene", - "counts_transcripts": "rsem_counts_transcripts" - ], - toState: [ - "tpm_gene": "merged_gene_tpm", - "counts_gene": "merged_gene_counts", - "tpm_transcript": "merged_transcript_tpm", - "counts_transcript": "merged_transcript_counts" - ] - ) - - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, - fromState: { id, state -> - def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled - [ - counts: counts, - vst: state.deseq2_vst, - label: state.aligner + | rsem_merge_counts.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "counts_gene": "rsem_counts_gene", + "counts_transcripts": "rsem_counts_transcripts" + ], + toState: [ + "tpm_gene": "merged_gene_tpm", + "counts_gene": "merged_gene_counts", + "tpm_transcript": "merged_transcript_tpm", + "counts_transcript": "merged_transcript_counts" ] - }, - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_align_quant" - ) + ) - // Merge quantification results of pseudo alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_pseudo_align }, - fromState: [ - "salmon_quant_results": "pseudo_salmon_quant_results", - "kallisto_quant_results": "pseudo_kallisto_quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features", - "quant_type": "pseudo_aligner" - ], - toState: [ - "pseudo_tpm_gene": "tpm_gene", - "pseudo_counts_gene": "counts_gene", - "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "counts_gene_scaled", - "pseudo_tpm_transcript": "tpm_transcript", - "pseudo_counts_transcript": "counts_transcript", - "pseudo_lengths_gene": "lengths_gene", - "pseudo_lengths_transcript": "lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_pseudo_quant_results" - ) + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, + fromState: { id, state -> + def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled + [ + counts: counts, + vst: state.deseq2_vst, + label: state.aligner + ] + }, + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output": "outdir", + "deseq2_pca_multiqc": "pca_multiqc", + "deseq2_dists_multiqc": "dists_multiqc" + ], + key: "deseq2_qc_align_quant" + ) - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, - fromState: [ - "counts": "pseudo_counts_gene_length_scaled", - "vst": "deseq2_vst", - "label": "pseudo_aligner" - ], - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_pseuso_align_quant" - ) - - // Get list of samples that failed trimming, mapping, and strand check for MultiQC report - | map { id, state -> - def fail_trimming_header = ["Sample", "Reads after trimming"] - def fail_trimming_multiqc = "" - def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] - def fail_mapping_multiqc = "" - def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] - def fail_strand_multiqc = "" - if (state.ids.size() > 0) { - fail_trimming_multiqc += "${fail_trimming_header.join('\t')}\n" - fail_mapping_multiqc += "${star_mapping_header.join('\t')}\n" - fail_strand_multiqc += "${strand_check_header.join('\t')}\n" - for (i=0; i !state.skip_pseudo_align }, + fromState: [ + "salmon_quant_results": "pseudo_salmon_quant_results", + "kallisto_quant_results": "pseudo_kallisto_quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features", + "quant_type": "pseudo_aligner" + ], + toState: [ + "pseudo_tpm_gene": "tpm_gene", + "pseudo_counts_gene": "counts_gene", + "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "counts_gene_scaled", + "pseudo_tpm_transcript": "tpm_transcript", + "pseudo_counts_transcript": "counts_transcript", + "pseudo_lengths_gene": "lengths_gene", + "pseudo_lengths_transcript": "lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_pseudo_quant_results" + ) + + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, + fromState: [ + "counts": "pseudo_counts_gene_length_scaled", + "vst": "deseq2_vst", + "label": "pseudo_aligner" + ], + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output_pseudo": "outdir", + "deseq2_pca_multiqc_pseudo": "pca_multiqc", + "deseq2_dists_multiqc_pseudo": "dists_multiqc" + ], + key: "deseq2_qc_pseuso_align_quant" + ) - [ id, state + [fail_trimming_multiqc: fail_trimming_multiqc, fail_mapping_multiqc: fail_mapping_multiqc, fail_strand_multiqc: fail_strand_multiqc] ] - } - - | map { id, state -> - state.each { key, value -> - if (value instanceof ArrayList) { - value.removeAll { it == null } + // Get list of samples that failed trimming, mapping, and strand check for MultiQC report + | map { id, state -> + def fail_trimming_header = ["Sample", "Reads after trimming"] + def fail_trimming_multiqc = "" + def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] + def fail_mapping_multiqc = "" + def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] + def fail_strand_multiqc = "" + if (state.ids.size() > 0) { + fail_trimming_multiqc += "${fail_trimming_header.join('\t')}\n" + fail_mapping_multiqc += "${star_mapping_header.join('\t')}\n" + fail_strand_multiqc += "${strand_check_header.join('\t')}\n" + for (i=0; i value != null } - [ id, mod_state ] - } - | prepare_multiqc_input.run( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "fail_trimming_multiqc": "fail_trimming_multiqc", - "fail_mapping_multiqc": "fail_mapping_multiqc", - "fail_strand_multiqc": "fail_strand_multiqc", - "fastqc_raw_multiqc": "fastqc_zip", - "fastqc_trim_multiqc": "trim_zip", - "trim_log_multiqc": "trim_log", - "sortmerna_multiqc": "sortmerna_multiqc", - "star_multiqc": "star_multiqc", - "salmon_multiqc": "salmon_multiqc", - "rsem_multiqc": "rsem_multiqc", - "pseudo_multiqc": "pseudo_multiqc", - "samtools_stats": "genome_bam_stats", - "samtools_flagstat": "genome_bam_flagstat", - "samtools_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_multiqc", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "aligner_pca_multiqc": "deseq2_pca_multiqc", - "aligner_clustering_multiqc": "deseq2_dists_multiqc", - "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", - "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", - "preseq_multiqc": "preseq_output", - "qualimap_multiqc": "qualimap_output_dir", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "bamstat_multiqc": "bamstat_output", - "inferexperiment_multiqc": "inferexperiment_multiqc", - "innerdistance_multiqc": "inner_dist_output_freq", - "junctionannotation_multiqc": "junction_annotation_output_log", - "junctionsaturation_multiqc": "junction_saturation_output_plot_r", - "readdistribution_multiqc": "read_distribution_output", - "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", - "tin_multiqc": "tin_output_summary", - "multiqc_config": "multiqc_custom_config" - ], - toState: [ "multiqc_input": "output" ] - ) + | map { id, state -> + state.each { key, value -> + if (value instanceof ArrayList) { + value.removeAll { it == null } + } + } + mod_state = state.findAll { key, value -> value != null } + [ id, mod_state ] + } - | multiqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "title": "multiqc_title", - "input": "multiqc_input", - ], - args: [exclude_modules: "general_stats"], - toState: [ - "multiqc_report": "output_report", - "multiqc_data": "output_data", - "multiqc_plots": "output_plots" - ] - ) + | prepare_multiqc_input.run( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "fail_trimming_multiqc": "fail_trimming_multiqc", + "fail_mapping_multiqc": "fail_mapping_multiqc", + "fail_strand_multiqc": "fail_strand_multiqc", + "fastqc_raw_multiqc": "fastqc_zip", + "fastqc_trim_multiqc": "trim_zip", + "trim_log_multiqc": "trim_log", + "sortmerna_multiqc": "sortmerna_multiqc", + "star_multiqc": "star_multiqc", + "salmon_multiqc": "salmon_multiqc", + "rsem_multiqc": "rsem_multiqc", + "pseudo_multiqc": "pseudo_multiqc", + "samtools_stats": "genome_bam_stats", + "samtools_flagstat": "genome_bam_flagstat", + "samtools_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_multiqc", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "aligner_pca_multiqc": "deseq2_pca_multiqc", + "aligner_clustering_multiqc": "deseq2_dists_multiqc", + "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", + "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", + "preseq_multiqc": "preseq_output", + "qualimap_multiqc": "qualimap_output_dir", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "bamstat_multiqc": "bamstat_output", + "inferexperiment_multiqc": "inferexperiment_multiqc", + "innerdistance_multiqc": "inner_dist_output_freq", + "junctionannotation_multiqc": "junction_annotation_output_log", + "junctionsaturation_multiqc": "junction_saturation_output_plot_r", + "readdistribution_multiqc": "read_distribution_output", + "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", + "tin_multiqc": "tin_output_summary", + "multiqc_config": "multiqc_custom_config" + ], + toState: [ "multiqc_input": "output" ] + ) - | map { id, state -> - [ id, [ - tpm_gene: state.tpm_gene, - counts_gene: state.counts_gene, - counts_gene_length_scaled: state.counts_gene_length_scaled, - counts_gene_scaled: state.counts_gene_scaled, - tpm_transcript: state.tpm_transcript, - counts_transcript: state.counts_transcript, - quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, - deseq2_output: state.deseq2_output, - pseudo_tpm_gene: state.pseudo_tpm_gene, - pseudo_counts_gene: state.pseudo_counts_gene, - pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, - pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, - pseudo_tpm_transcript: state.pseudo_tpm_transcript, - pseudo_counts_transcript: state.pseudo_counts_transcript, - pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, - deseq2_output_pseudo: state.deseq2_output_pseudo, - multiqc_report: state.multiqc_report, - multiqc_data: state.multiqc_data, - multiqc_plots: state.multiqc_plots - ] ] - } + | multiqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "title": "multiqc_title", + "input": "multiqc_input", + ], + args: [exclude_modules: "general_stats"], + toState: [ + "multiqc_report": "output_report", + "multiqc_data": "output_data", + "multiqc_plots": "output_plots" + ] + ) - | map { list -> list[1]} + | map { id, state -> + [ id, [ + tpm_gene: state.tpm_gene, + counts_gene: state.counts_gene, + counts_gene_length_scaled: state.counts_gene_length_scaled, + counts_gene_scaled: state.counts_gene_scaled, + tpm_transcript: state.tpm_transcript, + counts_transcript: state.counts_transcript, + quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, + deseq2_output: state.deseq2_output, + pseudo_tpm_gene: state.pseudo_tpm_gene, + pseudo_counts_gene: state.pseudo_counts_gene, + pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, + pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, + pseudo_tpm_transcript: state.pseudo_tpm_transcript, + pseudo_counts_transcript: state.pseudo_counts_transcript, + pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, + deseq2_output_pseudo: state.deseq2_output_pseudo, + multiqc_report: state.multiqc_report, + multiqc_data: state.multiqc_data, + multiqc_plots: state.multiqc_plots + ] ] + } + + | map { list -> list[1]} output_ch = qc_ch - | combine(merged_ch) + | combine(merged_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) + | setState ( + [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) emit: output_ch diff --git a/src/workflows/rnaseq/config.vsh.yaml b/src/workflows/rnaseq/config.vsh.yaml index 70606d8..e7704f2 100644 --- a/src/workflows/rnaseq/config.vsh.yaml +++ b/src/workflows/rnaseq/config.vsh.yaml @@ -193,19 +193,6 @@ argument_groups: - name: "--bam_csi_index" type: boolean_true description: Create a CSI index for BAM files instead of the traditional BAI index. This will be required for genomes with larger chromosome sizes. - # - name: "--extra_star_align_args" - # type: string - # default: '--quantMode TranscriptomeSAM --twopassMode Basic --outSAMtype BAM Unsorted --runRNGseed 0 --outFilterMultimapNmax 20 --alignSJDBoverhangMin 1 --outSAMattributes NH HI AS NM MD --quantTranscriptomeBan Singleend --outSAMstrandField intronMotif' - # description: Extra arguments to pass to STAR alignment command in addition to defaults defined by the pipeline. - # - name: "--star_ignore_sjdbgtf" - # type: boolean_true - # description: When using pre-built STAR indices, do not re-extract and use splice junctions from the GTF file. - # - name: "--seq_platform" - # type: string - # description: Sequencing platform. - # - name: "--seq_center" - # type: string - # description: Sequencing center information to be added to read group of BAM files. - name: "--salmon_quant_libtype" type: string description: Override Salmon library type inferred based on strandedness defined in meta object. @@ -317,12 +304,12 @@ argument_groups: - name: "--rseqc_modules" type: string multiple: true - multiple_sep: "," - description: Specify the RSeQC modules to run_wf - default: bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication + multiple_sep: ";" + description: Specify the RSeQC modules to run_wf (comma-separated list) + default: bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication choices: [ "bam_stat", "inner_distance", "infer_experiment", "junction_annotation", "junction_saturation", "read_distribution", "read_duplication", "tin" ] - - name: Multiqc paramenters + - name: MultiQC paramenters arguments: - name: "--multiqc_custom_config" type: file @@ -380,14 +367,14 @@ argument_groups: required: false must_exist: false description: Path to output directory - default: fastq/$id.read_1.fastq + default: fastq/$id.read_1.fastq.gz - name: "--output_fastq_2" type: file direction: output required: false must_exist: false description: Path to output directory - default: fastq/$id.read_2.fastq + default: fastq/$id.read_2.fastq.gz # FastQC - name: "--fastqc_html_1" @@ -872,6 +859,10 @@ argument_groups: type: file direction: output default: deseq2_qc + - name: "--deseq2_output_pseudo" + type: file + direction: output + default: deseq2_qc_pseudo # MultiQC - name: "--multiqc_report" @@ -903,6 +894,10 @@ argument_groups: type: file direction: output default: pseudo_alignment_quantification/gene_counts_scaled.tsv + - name: "--pseudo_tpm_gene" + type: file + direction: output + default: pseudo_alignment_quantification/gene_tpm.tsv - name: "--pseudo_tpm_transcript" type: file direction: output diff --git a/src/workflows/rnaseq/main.nf b/src/workflows/rnaseq/main.nf index 736d44d..efe9a51 100644 --- a/src/workflows/rnaseq/main.nf +++ b/src/workflows/rnaseq/main.nf @@ -5,22 +5,22 @@ workflow run_wf { main: reference_ch = input_ch - | map { id, state -> - def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type - def filter_gtf = - ( - ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set - || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set - || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided - ) - && - ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided - [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] - } - - | toSortedList - - | map { list -> + | map { id, state -> + def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type + def filter_gtf = + ( + ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set + || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set + || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided + ) + && + ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided + [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] + } + + | toSortedList + + | map { list -> [ "ref", [ fasta: list.collect { id, state -> state.fasta }.unique()[0], gtf: list.collect { id, state -> state.gtf }.unique()[0], @@ -46,184 +46,438 @@ workflow run_wf { filter_gtf: list.collect { id, state -> state.filter_gtf }.unique()[0], pseudo_aligner_kmer_size: list.collect { id, state -> state.pseudo_aligner_kmer_size }.unique()[0] ] ] - } + } - // prepare all the necessary files for reference genome - | prepare_genome.run ( - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "gff": "gff", - "additional_fasta": "additional_fasta", - "transcript_fasta": "transcript_fasta", - "gene_bed": "gene_bed", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "star_index": "star_index", - "rsem_index": "rsem_index", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", - // "splicesites": "splicesites", - // "hisat2_index": "hisat2_index", - "bbsplit_index": "bbsplit_index", - "skip_bbsplit": "skip_bbsplit", - "gencode": "gencode", - "biotype": "biotype", - "filter_gtf": "filter_gtf", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "skip_alignment": "skip_alignment", - "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ - "fasta": "uncompressed_fasta", - "gtf": "gtf_uncompressed", - "transcript_fasta": "transcript_fasta_uncompressed", - "fai": "fai", - "chrom_sizes": "chrom_sizes", - "bbsplit_index": "bbsplit_index_uncompressed", - "star_index": "star_index_uncompressed", - "salmon_index": "salmon_index_uncompressed", - "kallisto_index": "kallisto_index_uncompressed", - "gene_bed": "gene_bed_uncompressed" - ] - ) + // prepare all the necessary files for reference genome + | prepare_genome.run ( + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "gff": "gff", + "additional_fasta": "additional_fasta", + "transcript_fasta": "transcript_fasta", + "gene_bed": "gene_bed", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "star_index": "star_index", + "rsem_index": "rsem_index", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", + // "splicesites": "splicesites", + // "hisat2_index": "hisat2_index", + "bbsplit_index": "bbsplit_index", + "skip_bbsplit": "skip_bbsplit", + "gencode": "gencode", + "biotype": "biotype", + "filter_gtf": "filter_gtf", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "skip_alignment": "skip_alignment", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "fasta": "uncompressed_fasta", + "gtf": "gtf_uncompressed", + "transcript_fasta": "transcript_fasta_uncompressed", + "fai": "fai", + "chrom_sizes": "chrom_sizes", + "bbsplit_index": "bbsplit_index_uncompressed", + "star_index": "star_index_uncompressed", + "salmon_index": "salmon_index_uncompressed", + "kallisto_index": "kallisto_index_uncompressed", + "gene_bed": "gene_bed_uncompressed" + ] + ) - // Check if contigs in genome fasta file > 512 Mbp - | map { id, state -> - (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] - } + // Check if contigs in genome fasta file > 512 Mbp + | map { id, state -> + (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] + } - | map { list -> list[1]} + | map { list -> list[1]} analysis_ch = input_ch - | combine(reference_ch) + | combine(reference_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - // Concatenate FastQ files from same sample if required - | cat_fastq.run ( - fromState: [ - "read_1": "fastq_1", - "read_2": "fastq_2" - ], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) + // Concatenate FastQ files from same sample if required + | cat_fastq.run ( + fromState: [ + "read_1": "fastq_1", + "read_2": "fastq_2" + ], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) - // Pre-process fastq files - | pre_processing.run ( - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "umitools_bc_pattern": "umitools_bc_pattern", - "umitools_bc_pattern2": "umitools_bc_pattern2", - "strandedness": "strandedness", - "transcript_fasta": "transcript_fasta", - "gtf": "gtf", - "with_umi": "with_umi", - "bbsplit_index": "bbsplit_index", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "bc_pattern": "bc_pattern", - "ribo_database_manifest": "ribo_database_manifest", - "salmon_index": "salmon_index", - "skip_qc": "skip_qc", - "skip_fastqc": "skip_fastqc", - "skip_skip_umi_extract": "skip_umi_extract", - "umi_discard_read": "umi_discard_read", - "skip_trimming": "skip_trimming", - "trimmer": "trimmer", - "skip_bbsplit": "skip_bbsplit", - "remove_ribo_rna": "remove_ribo_rna" - ], - toState: [ + // Pre-process fastq files + | pre_processing.run ( + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "umitools_bc_pattern": "umitools_bc_pattern", + "umitools_bc_pattern2": "umitools_bc_pattern2", + "strandedness": "strandedness", + "transcript_fasta": "transcript_fasta", + "gtf": "gtf", + "with_umi": "with_umi", + "bbsplit_index": "bbsplit_index", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "bc_pattern": "bc_pattern", + "ribo_database_manifest": "ribo_database_manifest", + "salmon_index": "salmon_index", + "skip_qc": "skip_qc", + "skip_fastqc": "skip_fastqc", + "skip_skip_umi_extract": "skip_umi_extract", + "umi_discard_read": "umi_discard_read", + "skip_trimming": "skip_trimming", + "trimmer": "trimmer", + "skip_bbsplit": "skip_bbsplit", + "remove_ribo_rna": "remove_ribo_rna" + ], + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "fastq_1": "qc_output1", + "fastq_2": "qc_output2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "passed_trimmed_reads": "passed_trimmed_reads", + "num_trimmed_reads": "num_trimmed_reads", + "sortmerna_log": "sortmerna_log", + "salmon_quant_output": "salmon_quant_output", + "fastp_failed_trim": "failed_trim", + "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", + "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", + "fastp_trim_json": "trim_json", + "fastp_trim_html": "trim_html", + "fastp_trim_merged_out": "trim_merged_out" + ] + ) + + // Infer strandedness from Salmon pseudo-alignment results + | map { id, state -> + (state.strandedness == 'auto') ? + [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : + [id, state] + } + + // Filter FastQ files based on minimum trimmed read count after adapter trimming + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def num_reads = (state.skip_trimming) ? + state.min_trimmed_reads + 1 : + ( + (state.trimmer == "fastp") ? + getFastpReadsAfterFiltering(state.fastp_trim_json) : + ( + (!state.skip_trimming && input.size() == 2) ? + getTrimGaloreReadsAfterFiltering(state.trim_log_2) : + getTrimGaloreReadsAfterFiltering(state.trim_log_1) + ) + ) + def passed_trimmed_reads = + (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? + true : + false + [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] + } + + // Genome alignment and quantification + | genome_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "bam_csi_index": "bam_csi_index", + "aligner": "aligner", + "rsem_index": "rsem_index", + "star_index": "star_index", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "salmon_quant_libtype": "salmon_quant_libtype", + "salmon_index": "salmon_index", + "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" + ] + ) + + // Filter channels to get samples that passed STAR minimum mapping percentage + | map { id, state -> + def percent_mapped = (!state.skip_alignment && state.passed_trimmed_reads) ? getStarPercentMapped(state.star_multiqc) : 0.0 + def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false + [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] + } + + // Pseudo-alignment and quantification + | pseudo_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "pseudo_aligner": "pseudo_aligner", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "extra_star_align_args": "extra_star_align_args", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "seq_platform": "seq_platform", + "seq_center": "seq_center", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "lib_type": "salmon_quant_libtype", + "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", + "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "pseudo_quant_out_dir": "quant_out_dir", + "pseudo_salmon_quant_results_file": "salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", + "pseudo_multiqc": "pseudo_multiqc" + ] + ) + + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired ] ] + } + + // Post-processing + | post_processing.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "fasta": "fasta", + "fai": "fai", + "gtf": "gtf", + "genome_bam": "genome_bam_sorted", + "chrom_sizes": "chrom_sizes", + "star_multiqc": "star_multiqc", + "extra_picard_args": "extra_picard_args", + "extra_stringtie_args": "extra_stringtie_args", + "stringtie_ignore_gtf": "stringtie_ignore_gtf", + "extra_bedtools_args": "extra_bedtools_args", + "bam_csi_index": "bam_csi_index", + "min_mapped_reads": "min_mapped_reads", + "with_umi": "with_umi", + "skip_qc": "skip_qc", + "skip_markduplicates": "skip_markduplicates", + "skip_stringtie": "skip_stringtie", + "skip_bigwig":"gencode" + ], + toState: [ + "genome_bam_sorted": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ] + ) + + // Final QC + | quality_control.run ( + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "skip_align": "skip_alignment", + "skip_pseudo_align": "skip_pseudo_alignment", + "skip_dupradar": "skip_dupradar", + "skip_qualimap": "skip_qualimap", + "skip_rseqc": "skip_rseqc", + "skip_multiqc": "skip_multiqc", + "skip_preseq": "skip_preseq", + "gtf": "gtf", + "num_trimmed_reads": "num_trimmed_reads", + "passed_trimmed_reads": "passed_trimmed_reads", + "passed_mapping": "passed_mapping", + "percent_mapped": "percent_mapped", + "genome_bam": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "salmon_multiqc": "salmon_multiqc", + "quant_results_file": "quant_results_file", + "rsem_multiqc": "rsem_multiqc", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "pseudo_multiqc": "pseudo_multiqc", + "pseudo_quant_out_dir": "pseudo_quant_out_dir", + "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "gene_bed": "gene_bed", + "extra_preseq_args": "extra_preseq_args", + "biotype": "biotype", + "skip_biotype_qc": "skip_biotype_qc", + "featurecounts_group_type": "featurecounts_group_type", + "featurecounts_feature_type": "featurecounts_feature_type", + "gencode": "gencode", + "skip_deseq2_qc": "skip_deseq2_qc", + "deseq2_vst": "deseq2_vst", + "multiqc_custom_config": "multiqc_custom_config", + "multiqc_title": "multiqc_title", + "multiqc_methods_description": "multiqc_methods_description", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "sortmerna_multiqc": "sortmerna_log", + "star_multiqc": "star_multiqc", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_metrics", + "rseqc_modules": "rseqc_modules" + ], + toState: [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ + "output_fasta": "fasta", + "output_gtf": "gtf", + "output_transcript_fasta": "transcript_fasta", + "output_gene_bed": "gene_bed", + "output_bbsplit_index": "bbsplit_index", + "output_star_index": "star_index", + "output_salmon_index": "salmon_index", + "output_kallisto_index": "kallisto_index", "fastqc_html_1": "fastqc_html_1", "fastqc_html_2": "fastqc_html_2", "fastqc_zip_1": "fastqc_zip_1", "fastqc_zip_2": "fastqc_zip_2", - "fastq_1": "qc_output1", - "fastq_2": "qc_output2", + "output_fastq_1": "fastq_1", + "output_fastq_2": "fastq_2", "trim_log_1": "trim_log_1", "trim_log_2": "trim_log_2", "trim_zip_1": "trim_zip_1", "trim_zip_2": "trim_zip_2", "trim_html_1": "trim_html_1", "trim_html_2": "trim_html_2", - "passed_trimmed_reads": "passed_trimmed_reads", - "num_trimmed_reads": "num_trimmed_reads", "sortmerna_log": "sortmerna_log", - "salmon_quant_output": "salmon_quant_output", - "fastp_failed_trim": "failed_trim", - "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", - "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", - "fastp_trim_json": "trim_json", - "fastp_trim_html": "trim_html", - "fastp_trim_merged_out": "trim_merged_out" - ] - ) - - // Infer strandedness from Salmon pseudo-alignment results - | map { id, state -> - (state.strandedness == 'auto') ? - [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : - [id, state] - } - - // Filter FastQ files based on minimum trimmed read count after adapter trimming - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def num_reads = (state.skip_trimming) ? - state.min_trimmed_reads + 1 : - ( - (state.trimmer == "fastp") ? - getFastpReadsAfterFiltering(state.fastp_trim_json) : - ( - (!state.skip_trimming && input.size() == 2) ? - getTrimGaloreReadsAfterFiltering(state.trim_log_2) : - getTrimGaloreReadsAfterFiltering(state.trim_log_1) - ) - ) - def passed_trimmed_reads = - (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? - true : - false - [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] - } - - // Genome alignment and quantification - | genome_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "bam_csi_index": "bam_csi_index", - "aligner": "aligner", - "rsem_index": "rsem_index", - "star_index": "star_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "salmon_quant_libtype": "salmon_quant_libtype", - "salmon_index": "salmon_index", - "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", + "star_log": "star_multiqc", "genome_bam_sorted": "genome_bam_sorted", "genome_bam_index": "genome_bam_index", "genome_bam_stats": "genome_bam_stats", @@ -234,162 +488,21 @@ workflow run_wf { "transcriptome_bam_stats": "transcriptome_bam_stats", "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" - ] - ) - - // Filter channels to get samples that passed STAR minimum mapping percentage - | map { id, state -> - def percent_mapped = (!state.skip_alignment) ? getStarPercentMapped(state.star_multiqc) : 0.0 - def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false - [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] - } - - // Pseudo-alignment and quantification - | pseudo_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "pseudo_aligner": "pseudo_aligner", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "lib_type": "salmon_quant_libtype", - "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", - "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "pseudo_quant_out_dir": "quant_out_dir", - "pseudo_salmon_quant_results_file": "salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", - "pseudo_multiqc": "pseudo_multiqc" - ] - ) - - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired ] ] - } - - // Post-processing - | post_processing.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "fasta": "fasta", - "fai": "fai", - "gtf": "gtf", - "genome_bam": "genome_bam_sorted", - "chrom_sizes": "chrom_sizes", - "star_multiqc": "star_multiqc", - "extra_picard_args": "extra_picard_args", - "extra_stringtie_args": "extra_stringtie_args", - "stringtie_ignore_gtf": "stringtie_ignore_gtf", - "extra_bedtools_args": "extra_bedtools_args", - "bam_csi_index": "bam_csi_index", - "min_mapped_reads": "min_mapped_reads", - "with_umi": "with_umi", - "skip_qc": "skip_qc", - "skip_markduplicates": "skip_markduplicates", - "skip_stringtie": "skip_stringtie", - "skip_bigwig":"gencode" - ], - toState: [ - "genome_bam_sorted": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", + "salmon_quant_results": "quant_out_dir", + "pseudo_quant_results": "pseudo_quant_out_dir", "markduplicates_metrics": "markduplicates_metrics", "stringtie_transcript_gtf": "stringtie_transcript_gtf", "stringtie_coverage_gtf": "stringtie_coverage_gtf", "stringtie_abundance": "stringtie_abundance", "stringtie_ballgown": "stringtie_ballgown", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", "bedgraph_forward": "bedgraph_forward", "bedgraph_reverse": "bedgraph_reverse", "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ] - ) - - // Final QC - | quality_control.run ( - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "skip_align": "skip_alignment", - "skip_pseudo_align": "skip_pseudo_alignment", - "skip_dupradar": "skip_dupradar", - "skip_qualimap": "skip_qualimap", - "skip_rseqc": "skip_rseqc", - "skip_multiqc": "skip_multiqc", - "skip_preseq": "skip_preseq", - "gtf": "gtf", - "num_trimmed_reads": "num_trimmed_reads", - "passed_trimmed_reads": "passed_trimmed_reads", - "passed_mapping": "passed_mapping", - "percent_mapped": "percent_mapped", - "genome_bam": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "salmon_multiqc": "salmon_multiqc", - "quant_results_file": "quant_results_file", - "rsem_multiqc": "rsem_multiqc", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "pseudo_multiqc": "pseudo_multiqc", - "pseudo_quant_out_dir": "pseudo_quant_out_dir", - "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "gene_bed": "gene_bed", - "extra_preseq_args": "extra_preseq_args", - "biotype": "biotype", - "skip_biotype_qc": "skip_biotype_qc", - "featurecounts_group_type": "featurecounts_group_type", - "featurecounts_feature_type": "featurecounts_feature_type", - "gencode": "gencode", - "skip_deseq2_qc": "skip_deseq2_qc", - "deseq2_vst": "deseq2_vst", - "multiqc_custom_config": "multiqc_custom_config", - "multiqc_title": "multiqc_title", - "multiqc_methods_description": "multiqc_methods_description", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "sortmerna_multiqc": "sortmerna_log", - "star_multiqc": "star_multiqc", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_metrics", - "rseqc_modules": "rseqc_modules" - ], - toState: [ + "bigwig_reverse": "bigwig_reverse", "preseq_output": "preseq_output", "bamstat_output": "bamstat_output", "strandedness_output": "strandedness_output", @@ -422,140 +535,33 @@ workflow run_wf { "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "qualimap_output_pdf": "qualimap_output_pdf", "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", "multiqc_report": "multiqc_report", "multiqc_data": "multiqc_data", "multiqc_plots": "multiqc_plots" - ] - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - [ - "output_fasta": "fasta", - "output_gtf": "gtf", - "output_transcript_fasta": "transcript_fasta", - "output_gene_bed": "gene_bed", - "output_bbsplit_index": "bbsplit_index", - "output_star_index": "star_index", - "output_salmon_index": "salmon_index", - "output_kallisto_index": "kallisto_index", - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "output_fastq_1": "fastq_1", - "output_fastq_2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "star_log": "star_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "salmon_quant_results": "quant_out_dir", - "pseudo_quant_results": "pseudo_quant_out_dir", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse", - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) - - output_ch = analysis_ch + ] + ) emit: - output_ch + analysis_ch } import nextflow.Nextflow diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/.config.vsh.yaml index b53bd35..b114c3b 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/main.nf index 8302aa1..9075708 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/fastp/main.nf @@ -4023,9 +4023,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/fastp", "viash_version" : "0.9.0", - "git_commit" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/.config.vsh.yaml index 0b4a6e0..37865fe 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/main.nf index 042bf2b..6db06cc 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/featurecounts/main.nf @@ -3549,9 +3549,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/featurecounts", "viash_version" : "0.9.0", - "git_commit" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/.config.vsh.yaml index a6b5707..90eb2f2 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/main.nf index e0a1764..9c3fc68 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/gffread/main.nf @@ -3606,9 +3606,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/gffread", "viash_version" : "0.9.0", - "git_commit" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/.config.vsh.yaml index 7d5d881..eddcbae 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/main.nf index 026c331..9abc618 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/multiqc/main.nf @@ -3366,9 +3366,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/multiqc", "viash_version" : "0.9.0", - "git_commit" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml index e7ab701..b77ed36 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/main.nf index 610b611..01da680 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/rsem/rsem_prepare_reference/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/.config.vsh.yaml index ee479fc..9426bd8 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/main.nf index 69eec34..66caf72 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_index/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/.config.vsh.yaml index 1ca63e7..1f7058a 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/main.nf index df9d30c..21999e3a 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/.config.vsh.yaml index 249982e..4efc0e0 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/main.nf index 4c4395c..b637167 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_flagstat/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/.config.vsh.yaml index bbad56a..5bc8c43 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/main.nf index 60fb848..86aa0a2 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_idxstats/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/.config.vsh.yaml index 6f0ef1b..7c6beaa 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/main.nf index 7a857ef..210ff4b 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_index/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/.config.vsh.yaml index e6b54dd..4933b68 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/main.nf index b488127..b48f412 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/.config.vsh.yaml index 8d001b6..90ed44a 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/main.nf index 4b5e55e..4faeaa1 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_stats/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/.config.vsh.yaml index 6f32935..2723c12 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/main.nf index 616db3a..8057868 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/.config.vsh.yaml index 627bc7c..288d0cf 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/main.nf index 6f611a2..72211a4 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_genome_generate/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/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" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml b/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml index b9087e1..2a04ee4 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/.config.vsh.yaml @@ -434,9 +434,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: "065297be5fb2d88020fc50e042bb3f49c9254ae9" - git_remote: "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox" - git_tag: "v0.2.0-25-g065297b" + git_commit: "a13b57d04a3f3741eedd1af10fd96a9bee126f55" + git_remote: "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox" + git_tag: "v0.2.0-26-ga13b57d" package_config: name: "biobox" version: "main" diff --git a/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/main.nf b/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/main.nf index 89c8780..c392b78 100644 --- a/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/main.nf +++ b/target/dependencies/vsh/vsh/biobox/main/nextflow/umi_tools/umi_tools_extract/main.nf @@ -3299,9 +3299,9 @@ meta = [ "engine" : "docker|native", "output" : "target/nextflow/umi_tools/umi_tools_extract", "viash_version" : "0.9.0", - "git_commit" : "065297be5fb2d88020fc50e042bb3f49c9254ae9", - "git_remote" : "https://x-access-token:ghs_bGw8YykA469ibXe1g5GsidZ6N0n23m22jhvl@github.com/viash-hub/biobox", - "git_tag" : "v0.2.0-25-g065297b" + "git_commit" : "a13b57d04a3f3741eedd1af10fd96a9bee126f55", + "git_remote" : "https://x-access-token:ghs_xpDMoQpz4lF1RaGsMH4IlMbO48cLeW1cIYSF@github.com/viash-hub/biobox", + "git_tag" : "v0.2.0-26-ga13b57d" }, "package_config" : { "name" : "biobox", diff --git a/target/executable/bbmap_bbsplit/.config.vsh.yaml b/target/executable/bbmap_bbsplit/.config.vsh.yaml index 61ab78f..b07aca9 100644 --- a/target/executable/bbmap_bbsplit/.config.vsh.yaml +++ b/target/executable/bbmap_bbsplit/.config.vsh.yaml @@ -238,8 +238,8 @@ build_info: output: "target/executable/bbmap_bbsplit" executable: "target/executable/bbmap_bbsplit/bbmap_bbsplit" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/bbmap_bbsplit/bbmap_bbsplit b/target/executable/bbmap_bbsplit/bbmap_bbsplit index d478a71..22fb677 100755 --- a/target/executable/bbmap_bbsplit/bbmap_bbsplit +++ b/target/executable/bbmap_bbsplit/bbmap_bbsplit @@ -506,9 +506,9 @@ tar xzf BBMap_39.01.tar.gz && \ cp -r bbmap/* /usr/local/bin LABEL org.opencontainers.image.description="Companion container for running component bbmap_bbsplit" -LABEL org.opencontainers.image.created="2024-11-21T08:06:07Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:31Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/bedtools_genomecov/.config.vsh.yaml b/target/executable/bedtools_genomecov/.config.vsh.yaml index 990a144..b3e6899 100644 --- a/target/executable/bedtools_genomecov/.config.vsh.yaml +++ b/target/executable/bedtools_genomecov/.config.vsh.yaml @@ -178,8 +178,8 @@ build_info: output: "target/executable/bedtools_genomecov" executable: "target/executable/bedtools_genomecov/bedtools_genomecov" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/bedtools_genomecov/bedtools_genomecov b/target/executable/bedtools_genomecov/bedtools_genomecov index 9700c32..4997838 100755 --- a/target/executable/bedtools_genomecov/bedtools_genomecov +++ b/target/executable/bedtools_genomecov/bedtools_genomecov @@ -481,9 +481,9 @@ mv bedtools.static /usr/local/bin/bedtools && \ chmod a+x /usr/local/bin/bedtools LABEL org.opencontainers.image.description="Companion container for running component bedtools_genomecov" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/cat_additional_fasta/.config.vsh.yaml b/target/executable/cat_additional_fasta/.config.vsh.yaml index 58d42b2..07ba9ba 100644 --- a/target/executable/cat_additional_fasta/.config.vsh.yaml +++ b/target/executable/cat_additional_fasta/.config.vsh.yaml @@ -182,8 +182,8 @@ build_info: output: "target/executable/cat_additional_fasta" executable: "target/executable/cat_additional_fasta/cat_additional_fasta" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/cat_additional_fasta/cat_additional_fasta b/target/executable/cat_additional_fasta/cat_additional_fasta index f32addf..7d6c085 100755 --- a/target/executable/cat_additional_fasta/cat_additional_fasta +++ b/target/executable/cat_additional_fasta/cat_additional_fasta @@ -480,9 +480,9 @@ function ViashDockerfile { FROM python:latest ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component cat_additional_fasta" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:28Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/cat_fastq/.config.vsh.yaml b/target/executable/cat_fastq/.config.vsh.yaml index 0effe98..b285595 100644 --- a/target/executable/cat_fastq/.config.vsh.yaml +++ b/target/executable/cat_fastq/.config.vsh.yaml @@ -169,8 +169,8 @@ build_info: output: "target/executable/cat_fastq" executable: "target/executable/cat_fastq/cat_fastq" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/cat_fastq/cat_fastq b/target/executable/cat_fastq/cat_fastq index f78604c..726cb72 100755 --- a/target/executable/cat_fastq/cat_fastq +++ b/target/executable/cat_fastq/cat_fastq @@ -472,9 +472,9 @@ function ViashDockerfile { FROM ubuntu:22.04 ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component cat_fastq" -LABEL org.opencontainers.image.created="2024-11-21T08:06:03Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:27Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/deseq2_qc/.config.vsh.yaml b/target/executable/deseq2_qc/.config.vsh.yaml index f40ce7c..68bc8df 100644 --- a/target/executable/deseq2_qc/.config.vsh.yaml +++ b/target/executable/deseq2_qc/.config.vsh.yaml @@ -237,8 +237,8 @@ build_info: output: "target/executable/deseq2_qc" executable: "target/executable/deseq2_qc/deseq2_qc" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/deseq2_qc/deseq2_qc b/target/executable/deseq2_qc/deseq2_qc index 784839f..32190e1 100755 --- a/target/executable/deseq2_qc/deseq2_qc +++ b/target/executable/deseq2_qc/deseq2_qc @@ -506,9 +506,9 @@ RUN Rscript -e 'if (!requireNamespace("remotes", quietly = TRUE)) install.packag Rscript -e 'remotes::install_cran(c("optparse", "ggplot2", "RColorBrewer", "pheatmap", "stringr", "matrixStats"), repos = "https://cran.rstudio.com")' LABEL org.opencontainers.image.description="Companion container for running component deseq2_qc" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/dupradar/.config.vsh.yaml b/target/executable/dupradar/.config.vsh.yaml index c3cf236..2c983c6 100644 --- a/target/executable/dupradar/.config.vsh.yaml +++ b/target/executable/dupradar/.config.vsh.yaml @@ -266,8 +266,8 @@ build_info: output: "target/executable/dupradar" executable: "target/executable/dupradar/dupradar" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/dupradar/dupradar b/target/executable/dupradar/dupradar index 65f0574..678ff50 100755 --- a/target/executable/dupradar/dupradar +++ b/target/executable/dupradar/dupradar @@ -520,9 +520,9 @@ RUN Rscript -e 'if (!requireNamespace("BiocManager", quietly = TRUE)) install.pa Rscript -e 'if (!requireNamespace("dupRadar", quietly = TRUE)) BiocManager::install("dupRadar")' LABEL org.opencontainers.image.description="Companion container for running component dupradar" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/fastqc/.config.vsh.yaml b/target/executable/fastqc/.config.vsh.yaml index 61b945c..ca9e1b9 100644 --- a/target/executable/fastqc/.config.vsh.yaml +++ b/target/executable/fastqc/.config.vsh.yaml @@ -198,8 +198,8 @@ build_info: output: "target/executable/fastqc" executable: "target/executable/fastqc/fastqc" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/fastqc/fastqc b/target/executable/fastqc/fastqc index c72c5b2..f72f353 100755 --- a/target/executable/fastqc/fastqc +++ b/target/executable/fastqc/fastqc @@ -490,9 +490,9 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* LABEL org.opencontainers.image.description="Companion container for running component fastqc" -LABEL org.opencontainers.image.created="2024-11-21T08:06:08Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:33Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" 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 c7410b7..46ca2d1 100644 --- a/target/executable/fq_subsample/.config.vsh.yaml +++ b/target/executable/fq_subsample/.config.vsh.yaml @@ -177,8 +177,8 @@ build_info: output: "target/executable/fq_subsample" executable: "target/executable/fq_subsample/fq_subsample" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/fq_subsample/fq_subsample b/target/executable/fq_subsample/fq_subsample index d33374b..b1ef5cc 100755 --- a/target/executable/fq_subsample/fq_subsample +++ b/target/executable/fq_subsample/fq_subsample @@ -485,9 +485,9 @@ cargo install --locked --path . && \ mv /usr/local/fq/target/release/fq /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component fq_subsample" -LABEL org.opencontainers.image.created="2024-11-21T08:06:06Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:32Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/getchromsizes/.config.vsh.yaml b/target/executable/getchromsizes/.config.vsh.yaml index 9186ba6..b1549ed 100644 --- a/target/executable/getchromsizes/.config.vsh.yaml +++ b/target/executable/getchromsizes/.config.vsh.yaml @@ -167,8 +167,8 @@ build_info: output: "target/executable/getchromsizes" executable: "target/executable/getchromsizes/getchromsizes" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/getchromsizes/getchromsizes b/target/executable/getchromsizes/getchromsizes index b101951..dffcb7f 100755 --- a/target/executable/getchromsizes/getchromsizes +++ b/target/executable/getchromsizes/getchromsizes @@ -480,9 +480,9 @@ make && \ make install LABEL org.opencontainers.image.description="Companion container for running component getchromsizes" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/gtf2bed/.config.vsh.yaml b/target/executable/gtf2bed/.config.vsh.yaml index 2f2c15b..835a821 100644 --- a/target/executable/gtf2bed/.config.vsh.yaml +++ b/target/executable/gtf2bed/.config.vsh.yaml @@ -145,8 +145,8 @@ build_info: output: "target/executable/gtf2bed" executable: "target/executable/gtf2bed/gtf2bed" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/gtf2bed/gtf2bed b/target/executable/gtf2bed/gtf2bed index 0c1baf5..b163db2 100755 --- a/target/executable/gtf2bed/gtf2bed +++ b/target/executable/gtf2bed/gtf2bed @@ -466,9 +466,9 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* LABEL org.opencontainers.image.description="Companion container for running component gtf2bed" -LABEL org.opencontainers.image.created="2024-11-21T08:06:06Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/gtf_filter/.config.vsh.yaml b/target/executable/gtf_filter/.config.vsh.yaml index f068a6f..562a7dc 100644 --- a/target/executable/gtf_filter/.config.vsh.yaml +++ b/target/executable/gtf_filter/.config.vsh.yaml @@ -155,8 +155,8 @@ build_info: output: "target/executable/gtf_filter" executable: "target/executable/gtf_filter/gtf_filter" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/gtf_filter/gtf_filter b/target/executable/gtf_filter/gtf_filter index c0e6c8e..b97b9b2 100755 --- a/target/executable/gtf_filter/gtf_filter +++ b/target/executable/gtf_filter/gtf_filter @@ -470,9 +470,9 @@ function ViashDockerfile { FROM python:latest ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component gtf_filter" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/gunzip/.config.vsh.yaml b/target/executable/gunzip/.config.vsh.yaml index 13f1db5..1cff7b4 100644 --- a/target/executable/gunzip/.config.vsh.yaml +++ b/target/executable/gunzip/.config.vsh.yaml @@ -144,8 +144,8 @@ build_info: output: "target/executable/gunzip" executable: "target/executable/gunzip/gunzip" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/gunzip/gunzip b/target/executable/gunzip/gunzip index ee4ab60..f07b83e 100755 --- a/target/executable/gunzip/gunzip +++ b/target/executable/gunzip/gunzip @@ -466,9 +466,9 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* LABEL org.opencontainers.image.description="Companion container for running component gunzip" -LABEL org.opencontainers.image.created="2024-11-21T08:05:59Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:24Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" 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 34e9f66..2914711 100644 --- a/target/executable/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_index/.config.vsh.yaml @@ -155,8 +155,8 @@ build_info: output: "target/executable/kallisto/kallisto_index" executable: "target/executable/kallisto/kallisto_index/kallisto_index" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/kallisto/kallisto_index/kallisto_index b/target/executable/kallisto/kallisto_index/kallisto_index index 6c4cf26..c1530cc 100755 --- a/target/executable/kallisto/kallisto_index/kallisto_index +++ b/target/executable/kallisto/kallisto_index/kallisto_index @@ -471,9 +471,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-11-21T08:06:00Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:25Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" 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 594dcd1..3016f58 100644 --- a/target/executable/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/executable/kallisto/kallisto_quant/.config.vsh.yaml @@ -253,8 +253,8 @@ build_info: output: "target/executable/kallisto/kallisto_quant" executable: "target/executable/kallisto/kallisto_quant/kallisto_quant" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/kallisto/kallisto_quant/kallisto_quant b/target/executable/kallisto/kallisto_quant/kallisto_quant index ddf18af..d77ea84 100755 --- a/target/executable/kallisto/kallisto_quant/kallisto_quant +++ b/target/executable/kallisto/kallisto_quant/kallisto_quant @@ -515,9 +515,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_quant" -LABEL org.opencontainers.image.created="2024-11-21T08:06:00Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:25Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/multiqc_custom_biotype/.config.vsh.yaml b/target/executable/multiqc_custom_biotype/.config.vsh.yaml index 781168d..c7d1c7e 100644 --- a/target/executable/multiqc_custom_biotype/.config.vsh.yaml +++ b/target/executable/multiqc_custom_biotype/.config.vsh.yaml @@ -64,6 +64,10 @@ resources: - type: "file" path: "biotypes_header.txt" description: "Calculate features percentage for biotype counts" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: null status: "enabled" requirements: @@ -161,8 +165,8 @@ build_info: output: "target/executable/multiqc_custom_biotype" executable: "target/executable/multiqc_custom_biotype/multiqc_custom_biotype" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/multiqc_custom_biotype/multiqc_custom_biotype b/target/executable/multiqc_custom_biotype/multiqc_custom_biotype index 00df96a..501fa9d 100755 --- a/target/executable/multiqc_custom_biotype/multiqc_custom_biotype +++ b/target/executable/multiqc_custom_biotype/multiqc_custom_biotype @@ -476,9 +476,9 @@ function ViashDockerfile { FROM python:latest ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component multiqc_custom_biotype" -LABEL org.opencontainers.image.created="2024-11-21T08:06:03Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:28Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -1183,7 +1183,7 @@ if __name__ == "__main__": filtered_lines.append(filtered_line) # Concatenate the header and the processed lines - result = biotypes_header + '\\n' + '\\n'.join(filtered_lines) + '\\n' + result = biotypes_header + '\\n'.join(filtered_lines) + '\\n' # Write the result to par_featurecounts_multiqc with open(par["featurecounts_multiqc"], 'w') as output_file: diff --git a/target/executable/picard_markduplicates/.config.vsh.yaml b/target/executable/picard_markduplicates/.config.vsh.yaml index 2141f16..32c6157 100644 --- a/target/executable/picard_markduplicates/.config.vsh.yaml +++ b/target/executable/picard_markduplicates/.config.vsh.yaml @@ -207,8 +207,8 @@ build_info: output: "target/executable/picard_markduplicates" executable: "target/executable/picard_markduplicates/picard_markduplicates" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/picard_markduplicates/picard_markduplicates b/target/executable/picard_markduplicates/picard_markduplicates index 9282cb9..a4d8323 100755 --- a/target/executable/picard_markduplicates/picard_markduplicates +++ b/target/executable/picard_markduplicates/picard_markduplicates @@ -494,9 +494,9 @@ wget --no-check-certificate https://github.com/broadinstitute/picard/releases/do mv picard.jar /usr/local/bin LABEL org.opencontainers.image.description="Companion container for running component picard_markduplicates" -LABEL org.opencontainers.image.created="2024-11-21T08:06:02Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:26Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/prepare_multiqc_input/.config.vsh.yaml b/target/executable/prepare_multiqc_input/.config.vsh.yaml index ea84db3..68cf79a 100644 --- a/target/executable/prepare_multiqc_input/.config.vsh.yaml +++ b/target/executable/prepare_multiqc_input/.config.vsh.yaml @@ -409,8 +409,8 @@ build_info: output: "target/executable/prepare_multiqc_input" executable: "target/executable/prepare_multiqc_input/prepare_multiqc_input" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/prepare_multiqc_input/prepare_multiqc_input b/target/executable/prepare_multiqc_input/prepare_multiqc_input index ffba03a..a3c8956 100755 --- a/target/executable/prepare_multiqc_input/prepare_multiqc_input +++ b/target/executable/prepare_multiqc_input/prepare_multiqc_input @@ -557,9 +557,9 @@ function ViashDockerfile { FROM ubuntu:22.04 ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component prepare_multiqc_input" -LABEL org.opencontainers.image.created="2024-11-21T08:05:57Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:22Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/preprocess_transcripts_fasta/.config.vsh.yaml b/target/executable/preprocess_transcripts_fasta/.config.vsh.yaml index e4ac4b3..df1e2e5 100644 --- a/target/executable/preprocess_transcripts_fasta/.config.vsh.yaml +++ b/target/executable/preprocess_transcripts_fasta/.config.vsh.yaml @@ -138,8 +138,8 @@ build_info: output: "target/executable/preprocess_transcripts_fasta" executable: "target/executable/preprocess_transcripts_fasta/preprocess_transcripts_fasta" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/preprocess_transcripts_fasta/preprocess_transcripts_fasta b/target/executable/preprocess_transcripts_fasta/preprocess_transcripts_fasta index 4e7e4c4..fc163f9 100755 --- a/target/executable/preprocess_transcripts_fasta/preprocess_transcripts_fasta +++ b/target/executable/preprocess_transcripts_fasta/preprocess_transcripts_fasta @@ -462,9 +462,9 @@ function ViashDockerfile { FROM ubuntu:22.04 ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component preprocess_transcripts_fasta" -LABEL org.opencontainers.image.created="2024-11-21T08:06:02Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:27Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/preseq_lcextrap/.config.vsh.yaml b/target/executable/preseq_lcextrap/.config.vsh.yaml index 37ca9f3..46c539f 100644 --- a/target/executable/preseq_lcextrap/.config.vsh.yaml +++ b/target/executable/preseq_lcextrap/.config.vsh.yaml @@ -191,8 +191,8 @@ build_info: output: "target/executable/preseq_lcextrap" executable: "target/executable/preseq_lcextrap/preseq_lcextrap" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/preseq_lcextrap/preseq_lcextrap b/target/executable/preseq_lcextrap/preseq_lcextrap index ac186ee..0559a95 100755 --- a/target/executable/preseq_lcextrap/preseq_lcextrap +++ b/target/executable/preseq_lcextrap/preseq_lcextrap @@ -495,9 +495,9 @@ mkdir build && cd build && \ make && make install && make HAVE_HTSLIB=1 all LABEL org.opencontainers.image.description="Companion container for running component preseq_lcextrap" -LABEL org.opencontainers.image.created="2024-11-21T08:06:01Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:26Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/qualimap/.config.vsh.yaml b/target/executable/qualimap/.config.vsh.yaml index 5536758..7694026 100644 --- a/target/executable/qualimap/.config.vsh.yaml +++ b/target/executable/qualimap/.config.vsh.yaml @@ -271,8 +271,8 @@ build_info: output: "target/executable/qualimap" executable: "target/executable/qualimap/qualimap" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/qualimap/qualimap b/target/executable/qualimap/qualimap index 5302980..8efca93 100755 --- a/target/executable/qualimap/qualimap +++ b/target/executable/qualimap/qualimap @@ -537,9 +537,9 @@ RUN Rscript -e 'if (!requireNamespace("remotes", quietly = TRUE)) install.packag Rscript -e 'remotes::install_cran(c("optparse"), repos = "https://cran.rstudio.com")' LABEL org.opencontainers.image.description="Companion container for running component qualimap" -LABEL org.opencontainers.image.created="2024-11-21T08:05:59Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:24Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" 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 5b7dfe2..1659c42 100644 --- a/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/executable/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -299,8 +299,8 @@ 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: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" 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 de2ff1b..914f877 100755 --- a/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression +++ b/target/executable/rsem/rsem_calculate_expression/rsem_calculate_expression @@ -542,9 +542,9 @@ echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc && \ /bin/bash -c "source /etc/profile && source ~/.bashrc && echo $PATH && which STAR" LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_calculate_expression" -LABEL org.opencontainers.image.created="2024-11-21T08:05:59Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:24Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rsem/rsem_merge_counts/.config.vsh.yaml b/target/executable/rsem/rsem_merge_counts/.config.vsh.yaml index 9aa5bc8..d09129b 100644 --- a/target/executable/rsem/rsem_merge_counts/.config.vsh.yaml +++ b/target/executable/rsem/rsem_merge_counts/.config.vsh.yaml @@ -182,8 +182,8 @@ build_info: output: "target/executable/rsem/rsem_merge_counts" executable: "target/executable/rsem/rsem_merge_counts/rsem_merge_counts" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rsem/rsem_merge_counts/rsem_merge_counts b/target/executable/rsem/rsem_merge_counts/rsem_merge_counts index 25bf636..0c92756 100755 --- a/target/executable/rsem/rsem_merge_counts/rsem_merge_counts +++ b/target/executable/rsem/rsem_merge_counts/rsem_merge_counts @@ -483,9 +483,9 @@ function ViashDockerfile { FROM ubuntu:22.04 ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component rsem rsem_merge_counts" -LABEL org.opencontainers.image.created="2024-11-21T08:05:58Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:23Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml b/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml index c8613ee..01d707f 100644 --- a/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_bamstat/.config.vsh.yaml @@ -163,8 +163,8 @@ build_info: output: "target/executable/rseqc/rseqc_bamstat" executable: "target/executable/rseqc/rseqc_bamstat/rseqc_bamstat" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat b/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat index 47a46b5..daf5db3 100755 --- a/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat +++ b/target/executable/rseqc/rseqc_bamstat/rseqc_bamstat @@ -477,9 +477,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_bamstat" -LABEL org.opencontainers.image.created="2024-11-21T08:06:03Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:28Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml b/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml index 78bc745..a18522e 100644 --- a/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_inferexperiment/.config.vsh.yaml @@ -186,8 +186,8 @@ build_info: output: "target/executable/rseqc/rseqc_inferexperiment" executable: "target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment b/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment index 91e28eb..3775154 100755 --- a/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment +++ b/target/executable/rseqc/rseqc_inferexperiment/rseqc_inferexperiment @@ -487,9 +487,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_inferexperiment" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_innerdistance/.config.vsh.yaml b/target/executable/rseqc/rseqc_innerdistance/.config.vsh.yaml index 604cc12..6ebfaee 100644 --- a/target/executable/rseqc/rseqc_innerdistance/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_innerdistance/.config.vsh.yaml @@ -272,8 +272,8 @@ build_info: output: "target/executable/rseqc/rseqc_innerdistance" executable: "target/executable/rseqc/rseqc_innerdistance/rseqc_innerdistance" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_innerdistance/rseqc_innerdistance b/target/executable/rseqc/rseqc_innerdistance/rseqc_innerdistance index 512e057..0c1cadd 100755 --- a/target/executable/rseqc/rseqc_innerdistance/rseqc_innerdistance +++ b/target/executable/rseqc/rseqc_innerdistance/rseqc_innerdistance @@ -529,9 +529,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_innerdistance" -LABEL org.opencontainers.image.created="2024-11-21T08:06:03Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:27Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_junctionannotation/.config.vsh.yaml b/target/executable/rseqc/rseqc_junctionannotation/.config.vsh.yaml index 5ded3c6..5f17d79 100644 --- a/target/executable/rseqc/rseqc_junctionannotation/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_junctionannotation/.config.vsh.yaml @@ -260,8 +260,8 @@ build_info: output: "target/executable/rseqc/rseqc_junctionannotation" executable: "target/executable/rseqc/rseqc_junctionannotation/rseqc_junctionannotation" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_junctionannotation/rseqc_junctionannotation b/target/executable/rseqc/rseqc_junctionannotation/rseqc_junctionannotation index 0333751..c8b3770 100755 --- a/target/executable/rseqc/rseqc_junctionannotation/rseqc_junctionannotation +++ b/target/executable/rseqc/rseqc_junctionannotation/rseqc_junctionannotation @@ -519,9 +519,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_junctionannotation" -LABEL org.opencontainers.image.created="2024-11-21T08:06:03Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:28Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_junctionsaturation/.config.vsh.yaml b/target/executable/rseqc/rseqc_junctionsaturation/.config.vsh.yaml index 4ca00b9..c064304 100644 --- a/target/executable/rseqc/rseqc_junctionsaturation/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_junctionsaturation/.config.vsh.yaml @@ -249,8 +249,8 @@ build_info: output: "target/executable/rseqc/rseqc_junctionsaturation" executable: "target/executable/rseqc/rseqc_junctionsaturation/rseqc_junctionsaturation" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_junctionsaturation/rseqc_junctionsaturation b/target/executable/rseqc/rseqc_junctionsaturation/rseqc_junctionsaturation index 5d97084..5191548 100755 --- a/target/executable/rseqc/rseqc_junctionsaturation/rseqc_junctionsaturation +++ b/target/executable/rseqc/rseqc_junctionsaturation/rseqc_junctionsaturation @@ -522,9 +522,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_junctionsaturation" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_readdistribution/.config.vsh.yaml b/target/executable/rseqc/rseqc_readdistribution/.config.vsh.yaml index 3582d73..ff46cb1 100644 --- a/target/executable/rseqc/rseqc_readdistribution/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_readdistribution/.config.vsh.yaml @@ -162,8 +162,8 @@ build_info: output: "target/executable/rseqc/rseqc_readdistribution" executable: "target/executable/rseqc/rseqc_readdistribution/rseqc_readdistribution" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_readdistribution/rseqc_readdistribution b/target/executable/rseqc/rseqc_readdistribution/rseqc_readdistribution index 1b17f46..d09055b 100755 --- a/target/executable/rseqc/rseqc_readdistribution/rseqc_readdistribution +++ b/target/executable/rseqc/rseqc_readdistribution/rseqc_readdistribution @@ -474,9 +474,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_readdistribution" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_readduplication/.config.vsh.yaml b/target/executable/rseqc/rseqc_readduplication/.config.vsh.yaml index 4e06efc..efd3d23 100644 --- a/target/executable/rseqc/rseqc_readduplication/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_readduplication/.config.vsh.yaml @@ -211,8 +211,8 @@ build_info: output: "target/executable/rseqc/rseqc_readduplication" executable: "target/executable/rseqc/rseqc_readduplication/rseqc_readduplication" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_readduplication/rseqc_readduplication b/target/executable/rseqc/rseqc_readduplication/rseqc_readduplication index e239c58..bcc3ca6 100755 --- a/target/executable/rseqc/rseqc_readduplication/rseqc_readduplication +++ b/target/executable/rseqc/rseqc_readduplication/rseqc_readduplication @@ -499,9 +499,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "RSeQC" LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_readduplication" -LABEL org.opencontainers.image.created="2024-11-21T08:06:02Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:27Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/rseqc/rseqc_tin/.config.vsh.yaml b/target/executable/rseqc/rseqc_tin/.config.vsh.yaml index ec0f254..b0ada7c 100644 --- a/target/executable/rseqc/rseqc_tin/.config.vsh.yaml +++ b/target/executable/rseqc/rseqc_tin/.config.vsh.yaml @@ -214,8 +214,8 @@ build_info: output: "target/executable/rseqc/rseqc_tin" executable: "target/executable/rseqc/rseqc_tin/rseqc_tin" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/rseqc/rseqc_tin/rseqc_tin b/target/executable/rseqc/rseqc_tin/rseqc_tin index 104c866..8df328f 100755 --- a/target/executable/rseqc/rseqc_tin/rseqc_tin +++ b/target/executable/rseqc/rseqc_tin/rseqc_tin @@ -501,9 +501,9 @@ RUN apt-get update && \ RUN pip3 install RSeQC LABEL org.opencontainers.image.description="Companion container for running component rseqc rseqc_tin" -LABEL org.opencontainers.image.created="2024-11-21T08:06:04Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:29Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/sortmerna/.config.vsh.yaml b/target/executable/sortmerna/.config.vsh.yaml index ff1f9df..db3cad2 100644 --- a/target/executable/sortmerna/.config.vsh.yaml +++ b/target/executable/sortmerna/.config.vsh.yaml @@ -192,8 +192,8 @@ build_info: output: "target/executable/sortmerna" executable: "target/executable/sortmerna/sortmerna" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/sortmerna/sortmerna b/target/executable/sortmerna/sortmerna index a022b36..d37d18e 100755 --- a/target/executable/sortmerna/sortmerna +++ b/target/executable/sortmerna/sortmerna @@ -486,9 +486,9 @@ function ViashDockerfile { FROM quay.io/biocontainers/sortmerna:4.3.6--h9ee0642_0 ENTRYPOINT [] LABEL org.opencontainers.image.description="Companion container for running component sortmerna" -LABEL org.opencontainers.image.created="2024-11-21T08:06:07Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:32Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/stringtie/.config.vsh.yaml b/target/executable/stringtie/.config.vsh.yaml index 0c4eaed..99e1579 100644 --- a/target/executable/stringtie/.config.vsh.yaml +++ b/target/executable/stringtie/.config.vsh.yaml @@ -216,8 +216,8 @@ build_info: output: "target/executable/stringtie" executable: "target/executable/stringtie/stringtie" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/stringtie/stringtie b/target/executable/stringtie/stringtie index 3928bf3..6731f1d 100755 --- a/target/executable/stringtie/stringtie +++ b/target/executable/stringtie/stringtie @@ -496,9 +496,9 @@ tar -xzf stringtie-2.2.1.Linux_x86_64.tar.gz && \ cp stringtie-2.2.1.Linux_x86_64/stringtie /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component stringtie" -LABEL org.opencontainers.image.created="2024-11-21T08:06:08Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:33Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/summarizedexperiment/.config.vsh.yaml b/target/executable/summarizedexperiment/.config.vsh.yaml index 91f0e66..4250ef7 100644 --- a/target/executable/summarizedexperiment/.config.vsh.yaml +++ b/target/executable/summarizedexperiment/.config.vsh.yaml @@ -199,8 +199,8 @@ build_info: output: "target/executable/summarizedexperiment" executable: "target/executable/summarizedexperiment/summarizedexperiment" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/summarizedexperiment/summarizedexperiment b/target/executable/summarizedexperiment/summarizedexperiment index 06bc4fa..ad433b7 100755 --- a/target/executable/summarizedexperiment/summarizedexperiment +++ b/target/executable/summarizedexperiment/summarizedexperiment @@ -487,9 +487,9 @@ RUN Rscript -e 'if (!requireNamespace("BiocManager", quietly = TRUE)) install.pa Rscript -e 'if (!requireNamespace("tximeta", quietly = TRUE)) BiocManager::install("tximeta")' LABEL org.opencontainers.image.description="Companion container for running component summarizedexperiment" -LABEL org.opencontainers.image.created="2024-11-21T08:06:06Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:31Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/trimgalore/.config.vsh.yaml b/target/executable/trimgalore/.config.vsh.yaml index 10724f0..1dab1c8 100644 --- a/target/executable/trimgalore/.config.vsh.yaml +++ b/target/executable/trimgalore/.config.vsh.yaml @@ -788,8 +788,8 @@ build_info: output: "target/executable/trimgalore" executable: "target/executable/trimgalore/trimgalore" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/trimgalore/trimgalore b/target/executable/trimgalore/trimgalore index 92ca798..971832e 100755 --- a/target/executable/trimgalore/trimgalore +++ b/target/executable/trimgalore/trimgalore @@ -858,9 +858,9 @@ 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.description="Companion container for running component trimgalore" -LABEL org.opencontainers.image.created="2024-11-21T08:06:07Z" +LABEL org.opencontainers.image.created="2024-11-27T08:42:32Z" LABEL org.opencontainers.image.source="https://github.com/FelixKrueger/TrimGalore" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/tx2gene/.config.vsh.yaml b/target/executable/tx2gene/.config.vsh.yaml index 4a4b6a4..c5d4316 100644 --- a/target/executable/tx2gene/.config.vsh.yaml +++ b/target/executable/tx2gene/.config.vsh.yaml @@ -11,7 +11,7 @@ argument_groups: required: false direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "file" name: "--gtf" info: null @@ -63,17 +63,6 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" - - type: "file" - name: "--updated_versions" - info: null - default: - - "versions.yml" - must_exist: true - create_parent: true - required: false - direction: "output" - multiple: false - multiple_sep: ";" resources: - type: "bash_script" path: "script.sh" @@ -81,6 +70,10 @@ resources: - type: "file" path: "tx2gene.py" description: "Get transcript id (tx) to gene names for tximport" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: migration_info: git_repo: "https://github.com/nf-core/rnaseq.git" @@ -192,8 +185,8 @@ build_info: output: "target/executable/tx2gene" executable: "target/executable/tx2gene/tx2gene" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/tx2gene/tx2gene b/target/executable/tx2gene/tx2gene index c0a026d..e937a4b 100755 --- a/target/executable/tx2gene/tx2gene +++ b/target/executable/tx2gene/tx2gene @@ -199,10 +199,6 @@ function ViashHelp { echo " --tsv" echo " type: file, output, file must exist" echo " default: tx2gene.tsv" - echo "" - echo " --updated_versions" - echo " type: file, output, file must exist" - echo " default: versions.yml" } # initialise variables @@ -487,9 +483,9 @@ RUN apt-get update && \ RUN pip install --upgrade pip LABEL org.opencontainers.image.description="Companion container for running component tx2gene" -LABEL org.opencontainers.image.created="2024-11-21T08:06:06Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:31Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -633,7 +629,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_PAR_QUANT_RESULTS="$2" else - VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS,""$2" + VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS;""$2" fi [ $# -lt 2 ] && ViashError Not enough arguments passed to --quant_results. Use "--help" to get more information on the parameters. && exit 1 shift 2 @@ -642,7 +638,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_PAR_QUANT_RESULTS=$(ViashRemoveFlags "$1") else - VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS,"$(ViashRemoveFlags "$1") + VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS;"$(ViashRemoveFlags "$1") fi shift 1 ;; @@ -701,17 +697,6 @@ while [[ $# -gt 0 ]]; do VIASH_PAR_TSV=$(ViashRemoveFlags "$1") shift 1 ;; - --updated_versions) - [ -n "$VIASH_PAR_UPDATED_VERSIONS" ] && ViashError Bad arguments for option \'--updated_versions\': \'$VIASH_PAR_UPDATED_VERSIONS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_UPDATED_VERSIONS="$2" - [ $# -lt 2 ] && ViashError Not enough arguments passed to --updated_versions. Use "--help" to get more information on the parameters. && exit 1 - shift 2 - ;; - --updated_versions=*) - [ -n "$VIASH_PAR_UPDATED_VERSIONS" ] && ViashError Bad arguments for option \'--updated_versions=*\': \'$VIASH_PAR_UPDATED_VERSIONS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_UPDATED_VERSIONS=$(ViashRemoveFlags "$1") - shift 1 - ;; ---engine) VIASH_ENGINE_ID="$2" shift 2 @@ -919,13 +904,10 @@ fi if [ -z ${VIASH_PAR_TSV+x} ]; then VIASH_PAR_TSV="tx2gene.tsv" fi -if [ -z ${VIASH_PAR_UPDATED_VERSIONS+x} ]; then - VIASH_PAR_UPDATED_VERSIONS="versions.yml" -fi # check whether required files exist if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then - IFS=',' + IFS=';' set -f for file in $VIASH_PAR_QUANT_RESULTS; do unset IFS @@ -1032,9 +1014,6 @@ fi if [ ! -z "$VIASH_PAR_TSV" ] && [ ! -d "$(dirname "$VIASH_PAR_TSV")" ]; then mkdir -p "$(dirname "$VIASH_PAR_TSV")" fi -if [ ! -z "$VIASH_PAR_UPDATED_VERSIONS" ] && [ ! -d "$(dirname "$VIASH_PAR_UPDATED_VERSIONS")" ]; then - mkdir -p "$(dirname "$VIASH_PAR_UPDATED_VERSIONS")" -fi if [ "$VIASH_ENGINE_ID" == "native" ] ; then if [ "$VIASH_MODE" == "run" ]; then @@ -1050,14 +1029,14 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then VIASH_CHOWN_VARS=() if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_TEST_QUANT_RESULTS=() - IFS=',' + IFS=';' for var in $VIASH_PAR_QUANT_RESULTS; do unset IFS VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) var=$(ViashDockerAutodetectMount "$var") VIASH_TEST_QUANT_RESULTS+=( "$var" ) done - VIASH_PAR_QUANT_RESULTS=$(IFS=',' ; echo "${VIASH_TEST_QUANT_RESULTS[*]}") + VIASH_PAR_QUANT_RESULTS=$(IFS=';' ; echo "${VIASH_TEST_QUANT_RESULTS[*]}") fi if [ ! -z "$VIASH_PAR_GTF" ]; then VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_GTF")" ) @@ -1068,11 +1047,6 @@ if [ ! -z "$VIASH_PAR_TSV" ]; then VIASH_PAR_TSV=$(ViashDockerAutodetectMount "$VIASH_PAR_TSV") VIASH_CHOWN_VARS+=( "$VIASH_PAR_TSV" ) fi -if [ ! -z "$VIASH_PAR_UPDATED_VERSIONS" ]; then - VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_UPDATED_VERSIONS")" ) - VIASH_PAR_UPDATED_VERSIONS=$(ViashDockerAutodetectMount "$VIASH_PAR_UPDATED_VERSIONS") - VIASH_CHOWN_VARS+=( "$VIASH_PAR_UPDATED_VERSIONS" ) -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") @@ -1148,7 +1122,6 @@ $( if [ ! -z ${VIASH_PAR_GTF_EXTRA_ATTRIBUTES+x} ]; then echo "${VIASH_PAR_GTF_E $( if [ ! -z ${VIASH_PAR_GTF_GROUP_FEATURES+x} ]; then echo "${VIASH_PAR_GTF_GROUP_FEATURES}" | sed "s#'#'\"'\"'#g;s#.*#par_gtf_group_features='&'#" ; else echo "# par_gtf_group_features="; fi ) $( if [ ! -z ${VIASH_PAR_QUANT_TYPE+x} ]; then echo "${VIASH_PAR_QUANT_TYPE}" | sed "s#'#'\"'\"'#g;s#.*#par_quant_type='&'#" ; else echo "# par_quant_type="; fi ) $( if [ ! -z ${VIASH_PAR_TSV+x} ]; then echo "${VIASH_PAR_TSV}" | sed "s#'#'\"'\"'#g;s#.*#par_tsv='&'#" ; else echo "# par_tsv="; fi ) -$( if [ ! -z ${VIASH_PAR_UPDATED_VERSIONS+x} ]; then echo "${VIASH_PAR_UPDATED_VERSIONS}" | sed "s#'#'\"'\"'#g;s#.*#par_updated_versions='&'#" ; else echo "# par_updated_versions="; 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 ) @@ -1174,13 +1147,13 @@ $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" set -eo pipefail function clean_up { - rm -rf "\$salmon_tmpdir" + rm -rf "\$tmpdir" } trap clean_up EXIT -tmpdir=\$(mktemp -d "\$meta_temp_dir/\$meta_functionality_name-XXXXXXXX") +tmpdir=\$(mktemp -d "\$meta_temp_dir/\$meta_name-XXXXXXXX") -IFS="," read -ra results <<< \$par_quant_results +IFS=";" read -ra results <<< \$par_quant_results for result in \${results[*]} do cp -r \$result \$tmpdir @@ -1205,13 +1178,13 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then unset VIASH_TEST_QUANT_RESULTS - IFS=',' + IFS=';' for var in $VIASH_PAR_QUANT_RESULTS; do unset IFS if [ -z "$VIASH_TEST_QUANT_RESULTS" ]; then VIASH_TEST_QUANT_RESULTS="$(ViashDockerStripAutomount "$var")" else - VIASH_TEST_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS,""$(ViashDockerStripAutomount "$var")" + VIASH_TEST_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS;""$(ViashDockerStripAutomount "$var")" fi done VIASH_PAR_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS" @@ -1222,9 +1195,6 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then if [ ! -z "$VIASH_PAR_TSV" ]; then VIASH_PAR_TSV=$(ViashDockerStripAutomount "$VIASH_PAR_TSV") fi - if [ ! -z "$VIASH_PAR_UPDATED_VERSIONS" ]; then - VIASH_PAR_UPDATED_VERSIONS=$(ViashDockerStripAutomount "$VIASH_PAR_UPDATED_VERSIONS") - fi if [ ! -z "$VIASH_META_RESOURCES_DIR" ]; then VIASH_META_RESOURCES_DIR=$(ViashDockerStripAutomount "$VIASH_META_RESOURCES_DIR") fi @@ -1245,10 +1215,6 @@ if [ ! -z "$VIASH_PAR_TSV" ] && [ ! -e "$VIASH_PAR_TSV" ]; then ViashError "Output file '$VIASH_PAR_TSV' does not exist." exit 1 fi -if [ ! -z "$VIASH_PAR_UPDATED_VERSIONS" ] && [ ! -e "$VIASH_PAR_UPDATED_VERSIONS" ]; then - ViashError "Output file '$VIASH_PAR_UPDATED_VERSIONS' does not exist." - exit 1 -fi exit 0 diff --git a/target/executable/tximport/.config.vsh.yaml b/target/executable/tximport/.config.vsh.yaml index 3ed8754..5d50b00 100644 --- a/target/executable/tximport/.config.vsh.yaml +++ b/target/executable/tximport/.config.vsh.yaml @@ -11,7 +11,7 @@ argument_groups: required: false direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "file" name: "--tx2gene_tsv" info: null @@ -82,7 +82,7 @@ argument_groups: name: "--lengths_gene" info: null default: - - "merged.gene_length.tsv" + - "merged.gene_lengths.tsv" must_exist: true create_parent: true required: false @@ -115,7 +115,7 @@ argument_groups: name: "--lengths_transcript" info: null default: - - "merged.transcript_length.tsv" + - "merged.transcript_lengths.tsv" must_exist: true create_parent: true required: false @@ -129,6 +129,10 @@ resources: - type: "file" path: "tximport.r" description: "Get dataframe linking transcript ID, gene ID, and gene name" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: migration_info: git_repo: "https://github.com/nf-core/rnaseq.git" @@ -247,8 +251,8 @@ build_info: output: "target/executable/tximport" executable: "target/executable/tximport/tximport" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/tximport/tximport b/target/executable/tximport/tximport index eff1ad8..af60eee 100755 --- a/target/executable/tximport/tximport +++ b/target/executable/tximport/tximport @@ -206,7 +206,7 @@ function ViashHelp { echo "" echo " --lengths_gene" echo " type: file, output, file must exist" - echo " default: merged.gene_length.tsv" + echo " default: merged.gene_lengths.tsv" echo "" echo " --tpm_transcript" echo " type: file, output, file must exist" @@ -218,7 +218,7 @@ function ViashHelp { echo "" echo " --lengths_transcript" echo " type: file, output, file must exist" - echo " default: merged.transcript_length.tsv" + echo " default: merged.transcript_lengths.tsv" } # initialise variables @@ -508,9 +508,9 @@ RUN Rscript -e 'if (!requireNamespace("remotes", quietly = TRUE)) install.packag Rscript -e 'remotes::install_cran(c("jsonlite"), repos = "https://cran.rstudio.com")' LABEL org.opencontainers.image.description="Companion container for running component tximport" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER @@ -654,7 +654,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_PAR_QUANT_RESULTS="$2" else - VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS,""$2" + VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS;""$2" fi [ $# -lt 2 ] && ViashError Not enough arguments passed to --quant_results. Use "--help" to get more information on the parameters. && exit 1 shift 2 @@ -663,7 +663,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_PAR_QUANT_RESULTS=$(ViashRemoveFlags "$1") else - VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS,"$(ViashRemoveFlags "$1") + VIASH_PAR_QUANT_RESULTS="$VIASH_PAR_QUANT_RESULTS;"$(ViashRemoveFlags "$1") fi shift 1 ;; @@ -988,7 +988,7 @@ if [ -z ${VIASH_PAR_COUNTS_GENE_SCALED+x} ]; then VIASH_PAR_COUNTS_GENE_SCALED="merged.gene_counts_scaled.tsv" fi if [ -z ${VIASH_PAR_LENGTHS_GENE+x} ]; then - VIASH_PAR_LENGTHS_GENE="merged.gene_length.tsv" + VIASH_PAR_LENGTHS_GENE="merged.gene_lengths.tsv" fi if [ -z ${VIASH_PAR_TPM_TRANSCRIPT+x} ]; then VIASH_PAR_TPM_TRANSCRIPT="merged.transcript_tpm.tsv" @@ -997,12 +997,12 @@ if [ -z ${VIASH_PAR_COUNTS_TRANSCRIPT+x} ]; then VIASH_PAR_COUNTS_TRANSCRIPT="merged.transcript_counts.tsv" fi if [ -z ${VIASH_PAR_LENGTHS_TRANSCRIPT+x} ]; then - VIASH_PAR_LENGTHS_TRANSCRIPT="merged.transcript_length.tsv" + VIASH_PAR_LENGTHS_TRANSCRIPT="merged.transcript_lengths.tsv" fi # check whether required files exist if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then - IFS=',' + IFS=';' set -f for file in $VIASH_PAR_QUANT_RESULTS; do unset IFS @@ -1145,14 +1145,14 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then VIASH_CHOWN_VARS=() if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then VIASH_TEST_QUANT_RESULTS=() - IFS=',' + IFS=';' for var in $VIASH_PAR_QUANT_RESULTS; do unset IFS VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$var")" ) var=$(ViashDockerAutodetectMount "$var") VIASH_TEST_QUANT_RESULTS+=( "$var" ) done - VIASH_PAR_QUANT_RESULTS=$(IFS=',' ; echo "${VIASH_TEST_QUANT_RESULTS[*]}") + VIASH_PAR_QUANT_RESULTS=$(IFS=';' ; echo "${VIASH_TEST_QUANT_RESULTS[*]}") fi if [ ! -z "$VIASH_PAR_TX2GENE_TSV" ]; then VIASH_DIRECTORY_MOUNTS+=( "$(ViashDockerAutodetectMountArg "$VIASH_PAR_TX2GENE_TSV")" ) @@ -1303,13 +1303,13 @@ $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" set -eo pipefail function clean_up { - rm -rf "\$salmon_tmpdir" + rm -rf "\$tmpdir" } trap clean_up EXIT -tmpdir=\$(mktemp -d "\$meta_temp_dir/\$meta_functionality_name-XXXXXXXX") +tmpdir=\$(mktemp -d "\$meta_temp_dir/\$meta_name-XXXXXXXX") -IFS="," read -ra results <<< \$par_quant_results +IFS=";" read -ra results <<< \$par_quant_results for result in \${results[*]} do cp -r \$result \$tmpdir @@ -1333,13 +1333,13 @@ if [[ "$VIASH_ENGINE_TYPE" == "docker" ]]; then if [ ! -z "$VIASH_PAR_QUANT_RESULTS" ]; then unset VIASH_TEST_QUANT_RESULTS - IFS=',' + IFS=';' for var in $VIASH_PAR_QUANT_RESULTS; do unset IFS if [ -z "$VIASH_TEST_QUANT_RESULTS" ]; then VIASH_TEST_QUANT_RESULTS="$(ViashDockerStripAutomount "$var")" else - VIASH_TEST_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS,""$(ViashDockerStripAutomount "$var")" + VIASH_TEST_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS;""$(ViashDockerStripAutomount "$var")" fi done VIASH_PAR_QUANT_RESULTS="$VIASH_TEST_QUANT_RESULTS" diff --git a/target/executable/ucsc/bedclip/.config.vsh.yaml b/target/executable/ucsc/bedclip/.config.vsh.yaml index a7969f0..8d3b859 100644 --- a/target/executable/ucsc/bedclip/.config.vsh.yaml +++ b/target/executable/ucsc/bedclip/.config.vsh.yaml @@ -164,8 +164,8 @@ build_info: output: "target/executable/ucsc/bedclip" executable: "target/executable/ucsc/bedclip/bedclip" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/ucsc/bedclip/bedclip b/target/executable/ucsc/bedclip/bedclip index 479513a..654e163 100755 --- a/target/executable/ucsc/bedclip/bedclip +++ b/target/executable/ucsc/bedclip/bedclip @@ -473,9 +473,9 @@ RUN apt-get update && \ RUN rsync -aP rsync://hgdownload.soe.ucsc.edu/genome/admin/exe/linux.x86_64/bedClip /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component ucsc bedclip" -LABEL org.opencontainers.image.created="2024-11-21T08:06:05Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:30Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/ucsc/bedgraphtobigwig/.config.vsh.yaml b/target/executable/ucsc/bedgraphtobigwig/.config.vsh.yaml index 708dc4f..074a06e 100644 --- a/target/executable/ucsc/bedgraphtobigwig/.config.vsh.yaml +++ b/target/executable/ucsc/bedgraphtobigwig/.config.vsh.yaml @@ -164,8 +164,8 @@ build_info: output: "target/executable/ucsc/bedgraphtobigwig" executable: "target/executable/ucsc/bedgraphtobigwig/bedgraphtobigwig" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/ucsc/bedgraphtobigwig/bedgraphtobigwig b/target/executable/ucsc/bedgraphtobigwig/bedgraphtobigwig index 2ce509b..f56d9b2 100755 --- a/target/executable/ucsc/bedgraphtobigwig/bedgraphtobigwig +++ b/target/executable/ucsc/bedgraphtobigwig/bedgraphtobigwig @@ -473,9 +473,9 @@ RUN apt-get update && \ RUN rsync -aP rsync://hgdownload.soe.ucsc.edu/genome/admin/exe/linux.x86_64/bedGraphToBigWig /usr/local/bin/ LABEL org.opencontainers.image.description="Companion container for running component ucsc bedgraphtobigwig" -LABEL org.opencontainers.image.created="2024-11-21T08:06:06Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:31Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umitools/umitools_dedup/.config.vsh.yaml b/target/executable/umitools/umitools_dedup/.config.vsh.yaml index 79794b0..f2dac9d 100644 --- a/target/executable/umitools/umitools_dedup/.config.vsh.yaml +++ b/target/executable/umitools/umitools_dedup/.config.vsh.yaml @@ -195,8 +195,8 @@ build_info: output: "target/executable/umitools/umitools_dedup" executable: "target/executable/umitools/umitools_dedup/umitools_dedup" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/umitools/umitools_dedup/umitools_dedup b/target/executable/umitools/umitools_dedup/umitools_dedup index e70ff7e..d202d11 100755 --- a/target/executable/umitools/umitools_dedup/umitools_dedup +++ b/target/executable/umitools/umitools_dedup/umitools_dedup @@ -489,9 +489,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "umi_tools" LABEL org.opencontainers.image.description="Companion container for running component umitools umitools_dedup" -LABEL org.opencontainers.image.created="2024-11-21T08:06:01Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:26Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umitools/umitools_extract/.config.vsh.yaml b/target/executable/umitools/umitools_extract/.config.vsh.yaml index 2ed30ad..b69d88b 100644 --- a/target/executable/umitools/umitools_extract/.config.vsh.yaml +++ b/target/executable/umitools/umitools_extract/.config.vsh.yaml @@ -253,8 +253,8 @@ build_info: output: "target/executable/umitools/umitools_extract" executable: "target/executable/umitools/umitools_extract/umitools_extract" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/umitools/umitools_extract/umitools_extract b/target/executable/umitools/umitools_extract/umitools_extract index efc56c8..6049564 100755 --- a/target/executable/umitools/umitools_extract/umitools_extract +++ b/target/executable/umitools/umitools_extract/umitools_extract @@ -521,9 +521,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "umi_tools" LABEL org.opencontainers.image.description="Companion container for running component umitools umitools_extract" -LABEL org.opencontainers.image.created="2024-11-21T08:06:01Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:25Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/umitools_prepareforquant/.config.vsh.yaml b/target/executable/umitools_prepareforquant/.config.vsh.yaml index e49170c..d09e804 100644 --- a/target/executable/umitools_prepareforquant/.config.vsh.yaml +++ b/target/executable/umitools_prepareforquant/.config.vsh.yaml @@ -156,8 +156,8 @@ build_info: output: "target/executable/umitools_prepareforquant" executable: "target/executable/umitools_prepareforquant/umitools_prepareforquant" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/executable/umitools_prepareforquant/umitools_prepareforquant b/target/executable/umitools_prepareforquant/umitools_prepareforquant index 3c415b4..ead7947 100755 --- a/target/executable/umitools_prepareforquant/umitools_prepareforquant +++ b/target/executable/umitools_prepareforquant/umitools_prepareforquant @@ -473,9 +473,9 @@ RUN pip install --upgrade pip && \ pip install --upgrade --no-cache-dir "umi_tools" "pysam" LABEL org.opencontainers.image.description="Companion container for running component umitools_prepareforquant" -LABEL org.opencontainers.image.created="2024-11-21T08:06:08Z" -LABEL org.opencontainers.image.source="https://x-access-token/ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" -LABEL org.opencontainers.image.revision="a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" +LABEL org.opencontainers.image.created="2024-11-27T08:42:33Z" +LABEL org.opencontainers.image.source="https://x-access-token/ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" +LABEL org.opencontainers.image.revision="ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" LABEL org.opencontainers.image.version="main" VIASHDOCKER diff --git a/target/executable/workflows/genome_alignment_and_quant/.config.vsh.yaml b/target/executable/workflows/genome_alignment_and_quant/.config.vsh.yaml index 4d82483..5d5f7d4 100644 --- a/target/executable/workflows/genome_alignment_and_quant/.config.vsh.yaml +++ b/target/executable/workflows/genome_alignment_and_quant/.config.vsh.yaml @@ -93,32 +93,13 @@ argument_groups: multiple: false multiple_sep: ";" - type: "string" - name: "--seq_platform" - description: "Sequencing platform." + name: "--star_sjdb_gtf_feature_exon" + description: "Feature type in GTF file to be used as exons for building transcripts" info: null required: false direction: "input" multiple: false multiple_sep: ";" - - type: "string" - name: "--seq_center" - description: "Sequencing center." - info: null - required: false - direction: "input" - multiple: false - multiple_sep: ";" - - type: "string" - name: "--extra_star_align_args" - description: "Extra arguments to pass to STAR alignment command in addition to\ - \ defaults defined by the pipeline." - info: null - default: - - "" - required: false - direction: "input" - multiple: false - multiple_sep: ";" - type: "boolean" name: "--bam_csi_index" description: "Create a CSI index for BAM files instead of the traditional BAI\ @@ -603,8 +584,8 @@ build_info: output: "target/executable/workflows/genome_alignment_and_quant" executable: "target/executable/workflows/genome_alignment_and_quant/genome_alignment_and_quant" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads" - "target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort" diff --git a/target/executable/workflows/genome_alignment_and_quant/genome_alignment_and_quant b/target/executable/workflows/genome_alignment_and_quant/genome_alignment_and_quant index ee34a4b..37938e1 100755 --- a/target/executable/workflows/genome_alignment_and_quant/genome_alignment_and_quant +++ b/target/executable/workflows/genome_alignment_and_quant/genome_alignment_and_quant @@ -215,19 +215,9 @@ function ViashHelp { echo " When using pre-built STAR indices do not re-extract and use splice" echo " junctions from the GTF file" echo "" - echo " --seq_platform" + echo " --star_sjdb_gtf_feature_exon" echo " type: string" - echo " Sequencing platform." - echo "" - echo " --seq_center" - echo " type: string" - echo " Sequencing center." - echo "" - echo " --extra_star_align_args" - echo " type: string" - echo " default:" - echo " Extra arguments to pass to STAR alignment command in addition to" - echo " defaults defined by the pipeline." + echo " Feature type in GTF file to be used as exons for building transcripts" echo "" echo " --bam_csi_index" echo " type: boolean" @@ -498,37 +488,15 @@ while [[ $# -gt 0 ]]; do VIASH_PAR_STAR_IGNORE_SJDBGTF=$(ViashRemoveFlags "$1") shift 1 ;; - --seq_platform) - [ -n "$VIASH_PAR_SEQ_PLATFORM" ] && ViashError Bad arguments for option \'--seq_platform\': \'$VIASH_PAR_SEQ_PLATFORM\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_SEQ_PLATFORM="$2" - [ $# -lt 2 ] && ViashError Not enough arguments passed to --seq_platform. Use "--help" to get more information on the parameters. && exit 1 + --star_sjdb_gtf_feature_exon) + [ -n "$VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON" ] && ViashError Bad arguments for option \'--star_sjdb_gtf_feature_exon\': \'$VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --star_sjdb_gtf_feature_exon. Use "--help" to get more information on the parameters. && exit 1 shift 2 ;; - --seq_platform=*) - [ -n "$VIASH_PAR_SEQ_PLATFORM" ] && ViashError Bad arguments for option \'--seq_platform=*\': \'$VIASH_PAR_SEQ_PLATFORM\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_SEQ_PLATFORM=$(ViashRemoveFlags "$1") - shift 1 - ;; - --seq_center) - [ -n "$VIASH_PAR_SEQ_CENTER" ] && ViashError Bad arguments for option \'--seq_center\': \'$VIASH_PAR_SEQ_CENTER\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_SEQ_CENTER="$2" - [ $# -lt 2 ] && ViashError Not enough arguments passed to --seq_center. Use "--help" to get more information on the parameters. && exit 1 - shift 2 - ;; - --seq_center=*) - [ -n "$VIASH_PAR_SEQ_CENTER" ] && ViashError Bad arguments for option \'--seq_center=*\': \'$VIASH_PAR_SEQ_CENTER\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_SEQ_CENTER=$(ViashRemoveFlags "$1") - shift 1 - ;; - --extra_star_align_args) - [ -n "$VIASH_PAR_EXTRA_STAR_ALIGN_ARGS" ] && ViashError Bad arguments for option \'--extra_star_align_args\': \'$VIASH_PAR_EXTRA_STAR_ALIGN_ARGS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_EXTRA_STAR_ALIGN_ARGS="$2" - [ $# -lt 2 ] && ViashError Not enough arguments passed to --extra_star_align_args. Use "--help" to get more information on the parameters. && exit 1 - shift 2 - ;; - --extra_star_align_args=*) - [ -n "$VIASH_PAR_EXTRA_STAR_ALIGN_ARGS" ] && ViashError Bad arguments for option \'--extra_star_align_args=*\': \'$VIASH_PAR_EXTRA_STAR_ALIGN_ARGS\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 - VIASH_PAR_EXTRA_STAR_ALIGN_ARGS=$(ViashRemoveFlags "$1") + --star_sjdb_gtf_feature_exon=*) + [ -n "$VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON" ] && ViashError Bad arguments for option \'--star_sjdb_gtf_feature_exon=*\': \'$VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_STAR_SJDB_GTF_FEATURE_EXON=$(ViashRemoveFlags "$1") shift 1 ;; --bam_csi_index) @@ -1012,9 +980,6 @@ fi if [ -z ${VIASH_PAR_STAR_IGNORE_SJDBGTF+x} ]; then VIASH_PAR_STAR_IGNORE_SJDBGTF="false" fi -if [ -z ${VIASH_PAR_EXTRA_STAR_ALIGN_ARGS+x} ]; then - VIASH_PAR_EXTRA_STAR_ALIGN_ARGS="" -fi if [ -z ${VIASH_PAR_BAM_CSI_INDEX+x} ]; then VIASH_PAR_BAM_CSI_INDEX="false" fi @@ -1355,381 +1320,382 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | star_align_reads.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "fastq_1", - "input_r2": "fastq_2", - "genome_dir": "star_index", - "sjdb_gtf_file": "gtf", - "out_sam_attr_rg_line": "star_sam_attr_rg_line" - ], - toState: [ - "genome_bam": "aligned_reads", - "transcriptome_bam": "reads_aligned_to_transcriptome", - "star_multiqc": "log" - ], - args: [ - quant_mode: "TranscriptomeSAM", - twopass_mode: "Basic", - out_sam_type: "BAM;Unsorted", - run_rng_seed: 0, - out_filter_multimap_nmax: 20, - align_sjdb_overhang_min: 1, - out_sam_attributes: "NH;HI;AS;NM;MD", - quant_transcriptome_sam_output: "BanSingleEnd" - ] - ) + | star_align_reads.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "fastq_1", + "input_r2": "fastq_2", + "genome_dir": "star_index", + "sjdb_gtf_file": "gtf", + "out_sam_attr_rg_line": "star_sam_attr_rg_line", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "genome_bam": "aligned_reads", + "transcriptome_bam": "reads_aligned_to_transcriptome", + "star_multiqc": "log" + ], + args: [ + quant_mode: "TranscriptomeSAM", + twopass_mode: "Basic", + out_sam_type: "BAM;Unsorted", + run_rng_seed: 0, + out_filter_multimap_nmax: 20, + align_sjdb_overhang_min: 1, + out_sam_attributes: "NH;HI;AS;NM;MD", + quant_transcriptome_sam_output: "BanSingleEnd" + ] + ) - // GENOME BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: ["input": "genome_bam"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + // GENOME BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: ["input": "genome_bam"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - // - // Remove duplicate reads from BAM file based on UMIs - // - - // Deduplicate genome BAM file - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "get_output_stats": "umi_dedup_stats" - ], - toState: [ "genome_bam_sorted": "output_bam" ], - key: "genome_deduped" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_deduped" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta", - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_deduped_idxstats" - ) + // + // Remove duplicate reads from BAM file based on UMIs + // + + // Deduplicate genome BAM file + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "get_output_stats": "umi_dedup_stats" + ], + toState: [ "genome_bam_sorted": "output_bam" ], + key: "genome_deduped" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_deduped" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta", + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_deduped_idxstats" + ) - // Deduplicate transcriptome BAM file + // Deduplicate transcriptome BAM file - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ], - key: "transcriptome_sorted" - ) - | samtools_index.run ( + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "csi": "bam_csi_index" + ], + toState: [ "transcriptome_bam_index": "output" ], + key: "transcriptome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index", + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_idxstats" + ) + + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index", + "get_output_stats": "umi_dedup_stats", + ], + toState: [ "transcriptome_bam_deduped": "output_bam" ], + key: "transcriptome_deduped" + ) + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam_deduped" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_deduped_sorted" + ) + | samtools_index.run ( runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, fromState: [ "input": "transcriptome_bam", "csi": "bam_csi_index" ], toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index", - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_idxstats" - ) - - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index", - "get_output_stats": "umi_dedup_stats", - ], - toState: [ "transcriptome_bam_deduped": "output_bam" ], - key: "transcriptome_deduped" - ) - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam_deduped" ], - toState: [ "transcriptome_bam": "output" ], key: "transcriptome_deduped_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "csi": "bam_csi_index" - ], - toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_deduped_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_deduped_idxstats" - ) + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_deduped_idxstats" + ) - // Fix paired-end reads in name sorted BAM file - | umitools_prepareforquant.run ( - runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, - fromState: [ "bam": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ] - ) + // Fix paired-end reads in name sorted BAM file + | umitools_prepareforquant.run ( + runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, + fromState: [ "bam": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ] + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "lib_type": "lib_type", - "alignments": "transcriptome_bam", - "targets": "transcript_fasta", - "gene_map": "gtf" - ], - toState: [ - "quant_out_dir": "output", - "quant_results_file": "quant_results" - ] - ) + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "lib_type": "lib_type", + "alignments": "transcriptome_bam", + "targets": "transcript_fasta", + "gene_map": "gtf" + ], + toState: [ + "quant_out_dir": "output", + "quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - - | rsem_calculate_expression.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "id": "id", - "strandedness": "strandedness", - "paired": "paired", - "input": "input", - "index": "rsem_index", - "extra_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "rsem_counts_gene": "counts_gene", - "rsem_counts_transcripts": "counts_transcripts", - "rsem_multiqc": "stat", - "star_multiqc": "logs", - "bam_star_rsem": "bam_star", - "bam_genome_rsem": "bam_genome", - "bam_transcript_rsem": "bam_transcript" - ] - ) - - // RSEM_Star BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: ["input": "bam_star_rsem"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + | map { id, state -> + def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } + + | rsem_calculate_expression.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "id": "id", + "strandedness": "strandedness", + "paired": "paired", + "input": "input", + "index": "rsem_index", + "extra_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "rsem_counts_gene": "counts_gene", + "rsem_counts_transcripts": "counts_transcripts", + "rsem_multiqc": "stat", + "star_multiqc": "logs", + "bam_star_rsem": "bam_star", + "bam_genome_rsem": "bam_genome", + "bam_transcript_rsem": "bam_transcript" + ] + ) + + // RSEM_Star BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: ["input": "bam_star_rsem"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" ] - ) + | setState ( + [ "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" ] + ) emit: output_ch diff --git a/target/executable/workflows/merge_quant_results/.config.vsh.yaml b/target/executable/workflows/merge_quant_results/.config.vsh.yaml index 323da30..ddbf642 100644 --- a/target/executable/workflows/merge_quant_results/.config.vsh.yaml +++ b/target/executable/workflows/merge_quant_results/.config.vsh.yaml @@ -278,8 +278,8 @@ build_info: output: "target/executable/workflows/merge_quant_results" executable: "target/executable/workflows/merge_quant_results/merge_quant_results" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/tx2gene" - "target/nextflow/tximport" diff --git a/target/executable/workflows/merge_quant_results/merge_quant_results b/target/executable/workflows/merge_quant_results/merge_quant_results index b4a4c89..80bbd94 100755 --- a/target/executable/workflows/merge_quant_results/merge_quant_results +++ b/target/executable/workflows/merge_quant_results/merge_quant_results @@ -783,62 +783,62 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results - [id, state + [quant_results: quant_results]] - } - - | tx2gene.run ( - fromState: [ - "quant_results": "quant_results", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf": "gtf", - "gtf_group_features": "gtf_group_features", - "quant_type": "quant_type" - ], - toState: [ "tx2gene_tsv": "tsv" ] - ) + | map { id, state -> + def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results + [id, state + [quant_results: quant_results]] + } + + | tx2gene.run ( + fromState: [ + "quant_results": "quant_results", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf": "gtf", + "gtf_group_features": "gtf_group_features", + "quant_type": "quant_type" + ], + toState: [ "tx2gene_tsv": "tsv" ] + ) - | tximport.run ( - fromState: [ - "quant_results": "quant_results", - "tx2gene_tsv": "tx2gene_tsv", - "quant_type": "quant_type" - ], - toState: [ - "tpm_gene": "tpm_gene", + | tximport.run ( + fromState: [ + "quant_results": "quant_results", + "tx2gene_tsv": "tx2gene_tsv", + "quant_type": "quant_type" + ], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "length_gene": "length_gene", + "length_transcript": "length_transcript" + ] + ) + + | summarizedexperiment.run ( + fromState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "tx2gene_tsv": "tx2gene_tsv" + ], + toState: [ "quant_merged_summarizedexperiment": "output" ] + ) + + | setState ( + [ "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "length_gene": "length_gene", - "length_transcript": "length_transcript" - ] - ) - - | summarizedexperiment.run ( - fromState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "tx2gene_tsv": "tx2gene_tsv" - ], - toState: [ "quant_merged_summarizedexperiment": "output" ] - ) - - | setState ( - [ "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] - ) + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] + ) emit: output_ch diff --git a/target/executable/workflows/post_processing/.config.vsh.yaml b/target/executable/workflows/post_processing/.config.vsh.yaml index 618149c..b48453f 100644 --- a/target/executable/workflows/post_processing/.config.vsh.yaml +++ b/target/executable/workflows/post_processing/.config.vsh.yaml @@ -486,8 +486,8 @@ build_info: output: "target/executable/workflows/post_processing" executable: "target/executable/workflows/post_processing/post_processing" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/picard_markduplicates" - "target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort" diff --git a/target/executable/workflows/post_processing/post_processing b/target/executable/workflows/post_processing/post_processing index 9da24c9..7a67893 100755 --- a/target/executable/workflows/post_processing/post_processing +++ b/target/executable/workflows/post_processing/post_processing @@ -1176,154 +1176,154 @@ workflow run_wf { main: output_ch = input_ch - | picard_markduplicates.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "genome_bam", - "fasta": "fasta", - "fai": "fai", - "extra_picard_args": "extra_picard_args" - ], - toState: [ - "processed_genome_bam": "output_bam", - "markduplicates_metrics": "metrics" - ] - ) - | samtools_sort.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ "input": "processed_genome_bam" ], - toState: [ "processed_genome_bam": "output" ], - key: "genome_sorted_MarkDuplicates" - ) - | samtools_index.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted_MarkDuplicates", - ) - | samtools_stats.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_stats": "output" ], - key: "MarkDuplicates_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ + | picard_markduplicates.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "genome_bam", + "fasta": "fasta", + "fai": "fai", + "extra_picard_args": "extra_picard_args" + ], + toState: [ + "processed_genome_bam": "output_bam", + "markduplicates_metrics": "metrics" + ] + ) + | samtools_sort.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "input": "processed_genome_bam" ], + toState: [ "processed_genome_bam": "output" ], + key: "genome_sorted_MarkDuplicates" + ) + | samtools_index.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted_MarkDuplicates", + ) + | samtools_stats.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_stats": "output" ], + key: "MarkDuplicates_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "MarkDuplicates_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "bam": "processed_genome_bam", "bai": "genome_bam_index" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "MarkDuplicates_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "MarkDuplicates_idxstats" - ) + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "MarkDuplicates_idxstats" + ) - | stringtie.run ( - runIf: { id, state -> !state.skip_stringtie }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "annotation_gtf": "gtf", - "extra_stringtie_args": "extra_stringtie_args" - ], - toState: [ - "stringtie_transcript_gtf": "transcript_gtf", - "stringtie_coverage_gtf": "coverage_gtf", - "stringtie_abundance": "abundance", - "stringtie_ballgown": "ballgown" - ] - ) + | stringtie.run ( + runIf: { id, state -> !state.skip_stringtie }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "annotation_gtf": "gtf", + "extra_stringtie_args": "extra_stringtie_args" + ], + toState: [ + "stringtie_transcript_gtf": "transcript_gtf", + "stringtie_coverage_gtf": "coverage_gtf", + "stringtie_abundance": "abundance", + "stringtie_ballgown": "ballgown" + ] + ) - // Genome-wide coverage with BEDTools + // Genome-wide coverage with BEDTools - | bedtools_genomecov.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "extra_bedtools_args": "extra_bedtools_args" - ], - toState: [ + | bedtools_genomecov.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "extra_bedtools_args": "extra_bedtools_args" + ], + toState: [ + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse" + ] + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bedgraph_forward": "output_bedgraph" ], + key: "bedclip_forward" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_forward": "bigwig" ], + key: "bedgraphtobigwig_forward" + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes", + ], + toState: [ "bedgraph_reverse": "output_bedgraph" ], + key: "bedclip_reverse" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_reverse": "bigwig" ], + key: "bedgraphtobigwig_reverse" + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "processed_genome_bam": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse" - ] - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bedgraph_forward": "output_bedgraph" ], - key: "bedclip_forward" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_forward": "bigwig" ], - key: "bedgraphtobigwig_forward" - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes", - ], - toState: [ "bedgraph_reverse": "output_bedgraph" ], - key: "bedclip_reverse" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_reverse": "bigwig" ], - key: "bedgraphtobigwig_reverse" - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - "processed_genome_bam": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ) + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ) emit: output_ch diff --git a/target/executable/workflows/pre_processing/.config.vsh.yaml b/target/executable/workflows/pre_processing/.config.vsh.yaml index 44c8613..6534d1a 100644 --- a/target/executable/workflows/pre_processing/.config.vsh.yaml +++ b/target/executable/workflows/pre_processing/.config.vsh.yaml @@ -673,8 +673,8 @@ build_info: output: "target/executable/workflows/pre_processing" executable: "target/executable/workflows/pre_processing/pre_processing" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/fastqc" - "target/nextflow/umitools/umitools_extract" diff --git a/target/executable/workflows/pre_processing/pre_processing b/target/executable/workflows/pre_processing/pre_processing index a04014a..ad03fb0 100755 --- a/target/executable/workflows/pre_processing/pre_processing +++ b/target/executable/workflows/pre_processing/pre_processing @@ -1540,238 +1540,238 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [paired: paired, input: input] ] - } - - // Perform QC on input fastq files - | fastqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2" - ] - ) - - // Extract UMIs from fastq files and discard read 1 or read 2 if required - | umitools_extract.run ( - runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] - [ paired: state.paired, - input: input, - bc_pattern: bc_pattern, - umi_discard_read: state.umi_discard_read ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Discard read if required - | map { id, state -> - def paired = state.paired - def fastq_2 = state.fastq_2 - if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { - fastq_2 = state.remove(state.fastq_2) - paired = false + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [paired: paired, input: input] ] } - [ id, state + [paired: paired, fastq_2: fastq_2] ] - } - // Trim reads using Trim galore! - | trimgalore.run ( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - min_trimmed_reads: state.min_trimmed_reads ] - }, - toState: [ - "fastq_1": "trimmed_r1", - "fastq_2": "trimmed_r2", - "trim_log_1": "trimming_report_r1", - "trim_log_2": "trimming_report_r2", - "trim_zip_1": "trimmed_fastqc_zip_1", - "trim_zip_2": "trimmed_fastqc_zip_2", - "trim_html_1": "trimmed_fastqc_html_1", - "trim_html_2": "trimmed_fastqc_html_2" - ], - args: [gzip: true, fastqc: true] - ) - - // Trim reads using fastp - | fastp.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: [ - "in1": "fastq_1", - "in2": "fastq_2", - "merge": "fastp_save_merged", - "interleaved_in": "interleaved_reads", - "detect_adapter_for_pe": "fastp_pe_detect_adapter", - "adapter_fasta": "fastp_adapter_fasta" - ], - toState: [ - "fastq_1": "out1", - "fastq_2": "out2", - "failed_trim": "failed_out", - "failed_trim_unpaired1": "unpaired1", - "failed_trim_unpaired2": "unpaired2", - "trim_json": "json", - "trim_html": "html", - "trim_merged_out": "merged_out" - ] - ) - - // Perform FASTQC on reads trimmed using fastp - | fastqc.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "trim_html_1": "fastqc_html_1", - "trim_html_2": "fastqc_html_2", - "trim_zip_1": "fastqc_zip_1", - "trim_zip_2": "fastqc_zip_2" - ], - key: "fastqc_trimming" - ) - - // Filter out contaminant RNA - | bbmap_bbsplit.run ( - runIf: { id, state -> !state.skip_bbsplit }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - built_bbsplit_index: state.bbsplit_index ] - }, - args: ["only_build_index": false], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Sort reads by rRNA and non-rRNA - | sortmerna.run ( - runIf: { id, state -> state.remove_ribo_rna }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def filePaths = state.ribo_database_manifest.readLines() - def refs = filePaths.collect { it } - [ paired: state.paired, - input: input, - ribo_database_manifest: refs ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "sortmerna_log": "sortmerna_log" - ] - ) - - // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness - | fq_subsample.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ - input: input, - extra_args: state.extra_fq_subsample_args + // Perform QC on input fastq files + | fastqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2" ] - }, - toState: [ - "subsampled_fastq_1": "output_1", - "subsampled_fastq_2": "output_2" - ] - ) + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - | salmon_quant.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null - def mates1 = state.paired ? state.subsampled_fastq_1 : null - def mates2 = state.paired ? state.subsampled_fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - args: [ "skip_quant": true ], - toState: [ "salmon_quant_output": "output" ] - ) + // Extract UMIs from fastq files and discard read 1 or read 2 if required + | umitools_extract.run ( + runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] + [ paired: state.paired, + input: input, + bc_pattern: bc_pattern, + umi_discard_read: state.umi_discard_read ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Discard read if required + | map { id, state -> + def paired = state.paired + def fastq_2 = state.fastq_2 + if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { + fastq_2 = state.remove(state.fastq_2) + paired = false + } + [ id, state + [paired: paired, fastq_2: fastq_2] ] + } - | map { id, state -> - def mod_state = (!state.paired) ? - [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : - [] - [ id, state + mod_state ] - } + // Trim reads using Trim galore! + | trimgalore.run ( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + min_trimmed_reads: state.min_trimmed_reads ] + }, + toState: [ + "fastq_1": "trimmed_r1", + "fastq_2": "trimmed_r2", + "trim_log_1": "trimming_report_r1", + "trim_log_2": "trimming_report_r2", + "trim_zip_1": "trimmed_fastqc_zip_1", + "trim_zip_2": "trimmed_fastqc_zip_2", + "trim_html_1": "trimmed_fastqc_html_1", + "trim_html_2": "trimmed_fastqc_html_2" + ], + args: [gzip: true, fastqc: true] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + // Trim reads using fastp + | fastp.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: [ + "in1": "fastq_1", + "in2": "fastq_2", + "merge": "fastp_save_merged", + "interleaved_in": "interleaved_reads", + "detect_adapter_for_pe": "fastp_pe_detect_adapter", + "adapter_fasta": "fastp_adapter_fasta" + ], + toState: [ + "fastq_1": "out1", + "fastq_2": "out2", + "failed_trim": "failed_out", + "failed_trim_unpaired1": "unpaired1", + "failed_trim_unpaired2": "unpaired2", + "trim_json": "json", + "trim_html": "html", + "trim_merged_out": "merged_out" + ] + ) - | setState ( - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "qc_output1": "fastq_1", - "qc_output2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "failed_trim": "failed_trim", - "failed_trim_unpaired1": "failed_trim_unpaired1", - "failed_trim_unpaired2": "failed_trim_unpaired2", - "trim_json": "trim_json", - "trim_html": "trim_html", - "trim_merged_out": "trim_merged_out", - "salmon_quant_output": "salmon_quant_output" - ) + // Perform FASTQC on reads trimmed using fastp + | fastqc.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "trim_html_1": "fastqc_html_1", + "trim_html_2": "fastqc_html_2", + "trim_zip_1": "fastqc_zip_1", + "trim_zip_2": "fastqc_zip_2" + ], + key: "fastqc_trimming" + ) + + // Filter out contaminant RNA + | bbmap_bbsplit.run ( + runIf: { id, state -> !state.skip_bbsplit }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + built_bbsplit_index: state.bbsplit_index ] + }, + args: ["only_build_index": false], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Sort reads by rRNA and non-rRNA + | sortmerna.run ( + runIf: { id, state -> state.remove_ribo_rna }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def filePaths = state.ribo_database_manifest.readLines() + def refs = filePaths.collect { it } + [ paired: state.paired, + input: input, + ribo_database_manifest: refs ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "sortmerna_log": "sortmerna_log" + ] + ) + + // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness + | fq_subsample.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ + input: input, + extra_args: state.extra_fq_subsample_args + ] + }, + toState: [ + "subsampled_fastq_1": "output_1", + "subsampled_fastq_2": "output_2" + ] + ) + + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + | salmon_quant.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null + def mates1 = state.paired ? state.subsampled_fastq_1 : null + def mates2 = state.paired ? state.subsampled_fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + args: [ "skip_quant": true ], + toState: [ "salmon_quant_output": "output" ] + ) + + | map { id, state -> + def mod_state = (!state.paired) ? + [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : + [] + [ id, state + mod_state ] + } + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "qc_output1": "fastq_1", + "qc_output2": "fastq_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "sortmerna_log": "sortmerna_log", + "failed_trim": "failed_trim", + "failed_trim_unpaired1": "failed_trim_unpaired1", + "failed_trim_unpaired2": "failed_trim_unpaired2", + "trim_json": "trim_json", + "trim_html": "trim_html", + "trim_merged_out": "trim_merged_out", + "salmon_quant_output": "salmon_quant_output" + ) emit: output_ch diff --git a/target/executable/workflows/prepare_genome/.config.vsh.yaml b/target/executable/workflows/prepare_genome/.config.vsh.yaml index e46e2cd..5849d7b 100644 --- a/target/executable/workflows/prepare_genome/.config.vsh.yaml +++ b/target/executable/workflows/prepare_genome/.config.vsh.yaml @@ -509,8 +509,8 @@ build_info: output: "target/executable/workflows/prepare_genome" executable: "target/executable/workflows/prepare_genome/prepare_genome" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/gunzip" - "target/dependencies/vsh/vsh/biobox/main/nextflow/gffread" diff --git a/target/executable/workflows/prepare_genome/prepare_genome b/target/executable/workflows/prepare_genome/prepare_genome index cff17f8..ef62ac1 100755 --- a/target/executable/workflows/prepare_genome/prepare_genome +++ b/target/executable/workflows/prepare_genome/prepare_genome @@ -1176,278 +1176,280 @@ workflow run_wf { main: output_ch = input_ch - // Uncompress fasta - | gunzip.run ( - fromState: [ "input": "fasta" ], - toState: [ "fasta": "output" ], - key: "gunzip_fasta", - args: [ output: "reference_genome.fasta" ] - ) + // Uncompress fasta + | gunzip.run ( + fromState: [ "input": "fasta" ], + toState: [ "fasta": "output" ], + key: "gunzip_fasta", + args: [ output: "reference_genome.fasta" ] + ) - // uncompress gtf - | gunzip.run ( - runIf: {id, state -> state.gtf}, - fromState: [ "input": "gtf" ], - toState: [ "gtf": "output" ], - key: "gunzip_gtf", - args: [output: "gene_annotation.gtf"] - ) + // uncompress gtf + | gunzip.run ( + runIf: {id, state -> state.gtf}, + fromState: [ "input": "gtf" ], + toState: [ "gtf": "output" ], + key: "gunzip_gtf", + args: [output: "gene_annotation.gtf"] + ) - // uncompress gff - | gunzip.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ "input": "gff" ], - toState: [ "gff": "output" ], - key: "gunzip_gff", - args: [output: "gene_annotation.gff"] - ) + // uncompress gff + | gunzip.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ "input": "gff" ], + toState: [ "gff": "output" ], + key: "gunzip_gff", + args: [output: "gene_annotation.gff"] + ) - // gff to gtf - | gffread.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ - "input": "gff", - "genome": "fasta" - ], - toState: [ "gtf": "outfile" ], - args: [ - outfile: "gene_annotation.gtf", - gtf_output: true - ] - ) + // gff to gtf + | gffread.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ + "input": "gff", + "genome": "fasta" + ], + toState: [ "gtf": "outfile" ], + args: [ + outfile: "gene_annotation.gtf", + gtf_output: true, + keep_attrs: true, + keep_exon_attrs: true + ] + ) - | gtf_filter.run( - runIf: {id, state -> state.gtf && state.filter_gtf}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf" - ], - toState: [ "gtf": "filtered_gtf" ], - args: [filtered_gtf: "gene_annotation.gtf"] - ) + | gtf_filter.run( + runIf: {id, state -> state.gtf && state.filter_gtf}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf" + ], + toState: [ "gtf": "filtered_gtf" ], + args: [filtered_gtf: "gene_annotation.gtf"] + ) - // uncompress additional fasta - | gunzip.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ "input": "additional_fasta" ], - toState: [ "additional_fasta": "output" ], - key: "gunzip_additional_fasta", - args: [output: "additional.fasta"] - ) + // uncompress additional fasta + | gunzip.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ "input": "additional_fasta" ], + toState: [ "additional_fasta": "output" ], + key: "gunzip_additional_fasta", + args: [output: "additional.fasta"] + ) - // concatenate additional fasta - | cat_additional_fasta.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "additional_fasta": "additional_fasta", - "biotype": "biotype" - ], - toState: [ - "fasta": "fasta_output", - "gtf": "gtf_output" - ], - args: [ - fasta_output: "genome_additional.fasta", - gtf_output: "genome_additional.gtf" - ] - ) + // concatenate additional fasta + | cat_additional_fasta.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "additional_fasta": "additional_fasta", + "biotype": "biotype" + ], + toState: [ + "fasta": "fasta_output", + "gtf": "gtf_output" + ], + args: [ + fasta_output: "genome_additional.fasta", + gtf_output: "genome_additional.gtf" + ] + ) - // uncompress bed file - | gunzip.run ( - runIf: {id, state -> state.gene_bed}, - fromState: [ "input": "gene_bed" ], - toState: [ "gene_bed": "output" ], - key: "gunzip_gene_bed", - args: [output: "genome_additional.bed"] - ) + // uncompress bed file + | gunzip.run ( + runIf: {id, state -> state.gene_bed}, + fromState: [ "input": "gene_bed" ], + toState: [ "gene_bed": "output" ], + key: "gunzip_gene_bed", + args: [output: "genome_additional.bed"] + ) - // gtf to bed - | gtf2bed.run ( - runIf: { id, state -> !state.gene_bed}, - fromState: [ "gtf": "gtf" ], - toState: [ "gene_bed": "bed_output" ], - args: [bed_output: "genome_additional.bed"] - ) + // gtf to bed + | gtf2bed.run ( + runIf: { id, state -> !state.gene_bed}, + fromState: [ "gtf": "gtf" ], + toState: [ "gene_bed": "bed_output" ], + args: [bed_output: "genome_additional.bed"] + ) - // uncompress transcript fasta - | gunzip.run ( - runIf: {id, state -> state.transcript_fasta}, - fromState: [ "input": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - key: "transcript_fasta", - args: [output: "transcriptome.fasta"] - ) + // uncompress transcript fasta + | gunzip.run ( + runIf: {id, state -> state.transcript_fasta}, + fromState: [ "input": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + key: "transcript_fasta", + args: [output: "transcriptome.fasta"] + ) - // preprocess transcripts fasta if gtf is in gencode format - | preprocess_transcripts_fasta.run ( - runIf: {id, state -> state.transcript_fasta && state.gencode}, - fromState: [ "transcript_fasta": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - args: [output: "transcriptome.fasta"] - ) + // preprocess transcripts fasta if gtf is in gencode format + | preprocess_transcripts_fasta.run ( + runIf: {id, state -> state.transcript_fasta && state.gencode}, + fromState: [ "transcript_fasta": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + args: [output: "transcriptome.fasta"] + ) - // make transcript FASTA if not provided - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.transcript_fasta}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "make_transcript_fasta_output": "output" ], - key: "make_transcript_fasta",\\ - args: [reference_name: "genome"] - ) - | map { id, state -> - def transcript_fasta = (!state.transcript_fasta) ? - state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : - state.transcript_fasta - [ id, state + [transcript_fasta: transcript_fasta] ] - } + // make transcript FASTA if not provided + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.transcript_fasta}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "make_transcript_fasta_output": "output" ], + key: "make_transcript_fasta", + args: [reference_name: "genome"] + ) + | map { id, state -> + def transcript_fasta = (!state.transcript_fasta) ? + state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : + state.transcript_fasta + [ id, state + [transcript_fasta: transcript_fasta] ] + } - // chromosome size and fai index - | getchromsizes.run ( - fromState: [ "fasta": "fasta" ], - toState: [ - "fai": "fai", - "sizes": "sizes" - ], - key: "chromsizes", - args: [ - fai: "genome_additional.fasta.fai", - sizes: "genome_additional.fasta.sizes" - ] - ) - - // untar bbsplit index, if available - | untar.run ( - runIf: {id, state -> state.bbsplit_index}, - fromState: [ "input": "bbsplit_index" ], - toState: [ "bbsplit_index": "output" ], - key: "untar_bbsplit_index", - args: [output: "BBSplit_index"] - ) - - // create bbsplit index, if not already availble - | bbmap_bbsplit.run ( - runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, - fromState: [ - "primary_ref": "fasta", - "bbsplit_fasta_list": "bbsplit_fasta_list" - ], - toState: [ "bbsplit_index": "bbsplit_index" ], - args: [ - only_build_index: true, - bbsplit_index: "BBSplit_index" - ], - key: "generate_bbsplit_index" - ) + // chromosome size and fai index + | getchromsizes.run ( + fromState: [ "fasta": "fasta" ], + toState: [ + "fai": "fai", + "sizes": "sizes" + ], + key: "chromsizes", + args: [ + fai: "genome_additional.fasta.fai", + sizes: "genome_additional.fasta.sizes" + ] + ) + + // untar bbsplit index, if available + | untar.run ( + runIf: {id, state -> state.bbsplit_index}, + fromState: [ "input": "bbsplit_index" ], + toState: [ "bbsplit_index": "output" ], + key: "untar_bbsplit_index", + args: [output: "BBSplit_index"] + ) + + // create bbsplit index, if not already availble + | bbmap_bbsplit.run ( + runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, + fromState: [ + "primary_ref": "fasta", + "bbsplit_fasta_list": "bbsplit_fasta_list" + ], + toState: [ "bbsplit_index": "bbsplit_index" ], + args: [ + only_build_index: true, + bbsplit_index: "BBSplit_index" + ], + key: "generate_bbsplit_index" + ) - // Uncompress STAR index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.star_index}, - fromState: [ "input": "star_index" ], - toState: [ "star_index": "output" ], - key: "untar_star_index", - args: [output: "STAR_index"] - ) - - // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode - | star_genome_generate.run ( - runIf: {id, state -> !state.star_index && !state.skip_alignment}, - fromState: [ - "genome_fasta_files": "fasta", - "sjdb_gtf_file": "gtf", - "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ "star_index": "index" ], - key: "generate_star_index", - args: [index: "STAR_index"] - ) + // Uncompress STAR index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.star_index}, + fromState: [ "input": "star_index" ], + toState: [ "star_index": "output" ], + key: "untar_star_index", + args: [output: "STAR_index"] + ) + + // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode + | star_genome_generate.run ( + runIf: {id, state -> !state.star_index && !state.skip_alignment}, + fromState: [ + "genome_fasta_files": "fasta", + "sjdb_gtf_file": "gtf", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ "star_index": "index" ], + key: "generate_star_index", + args: [index: "STAR_index"] + ) - // Uncompress RSEM index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.rsem_index}, - fromState: [ "input": "rsem_index" ], - toState: [ "rsem_index": "output" ], - key: "untar_rsem_index", - args: [output: "RSEM_index"] - ) + // Uncompress RSEM index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.rsem_index}, + fromState: [ "input": "rsem_index" ], + toState: [ "rsem_index": "output" ], + key: "untar_rsem_index", + args: [output: "RSEM_index"] + ) - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "rsem_index": "output" ], - key: "generate_rsem_index", - args: [reference_name: "genome"] - ) - - // TODO: Uncompress HISAT2 index or generate from scratch if required + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "rsem_index": "output" ], + key: "generate_rsem_index", + args: [reference_name: "genome"] + ) + + // TODO: Uncompress HISAT2 index or generate from scratch if required - // Uncompress Salmon index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.salmon_index}, - fromState: [ "input": "salmon_index" ], - toState: [ "salmon_index": "output" ], - key: "untar_salmon_index", - args: [output: "Salmon_index"] - ) + // Uncompress Salmon index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.salmon_index}, + fromState: [ "input": "salmon_index" ], + toState: [ "salmon_index": "output" ], + key: "untar_salmon_index", + args: [output: "Salmon_index"] + ) - | salmon_index.run ( - runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, - fromState: [ - "genome": "fasta", - "transcripts": "transcript_fasta", - "kmer_len": "pseudo_aligner_kmer_size", - "gencode": "gencode" - ], - toState: [ "salmon_index": "index" ], - key: "generate_salmon_index", - args: [index: "Salmon_index"] - ) + | salmon_index.run ( + runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, + fromState: [ + "genome": "fasta", + "transcripts": "transcript_fasta", + "kmer_len": "pseudo_aligner_kmer_size", + "gencode": "gencode" + ], + toState: [ "salmon_index": "index" ], + key: "generate_salmon_index", + args: [index: "Salmon_index"] + ) - // Uncompress Kallisto index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.kallisto_index}, - fromState: [ "input": "kallisto_index" ], - toState: [ "kallisto_index": "output" ], - key: "untar_kallisto_index", - args: [output: "Kallisto_index"] - ) + // Uncompress Kallisto index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.kallisto_index}, + fromState: [ "input": "kallisto_index" ], + toState: [ "kallisto_index": "output" ], + key: "untar_kallisto_index", + args: [output: "Kallisto_index"] + ) - | kallisto_index.run( - runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, - fromState: [ - "transcriptome_fasta": "transcript_fasta", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" - ], - toState: [ "kallisto_index": "kallisto_index" ], - key: "generate_kallisto_index", - args: [kallisto_index: "Kallisto_index"] - ) + | kallisto_index.run( + runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, + fromState: [ + "transcriptome_fasta": "transcript_fasta", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" + ], + toState: [ "kallisto_index": "kallisto_index" ], + key: "generate_kallisto_index", + args: [kallisto_index: "Kallisto_index"] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - "fasta_uncompressed": "fasta", - "gtf_uncompressed": "gtf", - "transcript_fasta_uncompressed": "transcript_fasta", - "gene_bed_uncompressed": "gene_bed", - "star_index_uncompressed": "star_index", - "salmon_index_uncompressed": "salmon_index", - "kallisto_index_uncompressed": "kallisto_index", - "bbsplit_index_uncompressed": "bbsplit_index", - "rsem_index_uncompressed": "rsem_index", - "chrom_sizes": "sizes", - "fai": "fai" - ) + | setState ( + "fasta_uncompressed": "fasta", + "gtf_uncompressed": "gtf", + "transcript_fasta_uncompressed": "transcript_fasta", + "gene_bed_uncompressed": "gene_bed", + "star_index_uncompressed": "star_index", + "salmon_index_uncompressed": "salmon_index", + "kallisto_index_uncompressed": "kallisto_index", + "bbsplit_index_uncompressed": "bbsplit_index", + "rsem_index_uncompressed": "rsem_index", + "chrom_sizes": "sizes", + "fai": "fai" + ) emit: output_ch diff --git a/target/executable/workflows/pseudo_alignment_and_quant/.config.vsh.yaml b/target/executable/workflows/pseudo_alignment_and_quant/.config.vsh.yaml index 71bcd15..47ebc95 100644 --- a/target/executable/workflows/pseudo_alignment_and_quant/.config.vsh.yaml +++ b/target/executable/workflows/pseudo_alignment_and_quant/.config.vsh.yaml @@ -283,8 +283,8 @@ build_info: output: "target/executable/workflows/pseudo_alignment_and_quant" executable: "target/executable/workflows/pseudo_alignment_and_quant/pseudo_alignment_and_quant" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant" - "target/nextflow/kallisto/kallisto_quant" diff --git a/target/executable/workflows/pseudo_alignment_and_quant/pseudo_alignment_and_quant b/target/executable/workflows/pseudo_alignment_and_quant/pseudo_alignment_and_quant index 5ef6d31..bdd7eeb 100755 --- a/target/executable/workflows/pseudo_alignment_and_quant/pseudo_alignment_and_quant +++ b/target/executable/workflows/pseudo_alignment_and_quant/pseudo_alignment_and_quant @@ -806,86 +806,87 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } - - - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'salmon' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.fastq_1 : null - def mates1 = state.paired ? state.fastq_1 : null - def mates2 = state.paired ? state.fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - toState: [ - "quant_out_dir": "output", - "salmon_quant_results_file": "quant_results" - ] - ) + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | map { id, state -> - def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - | kallisto_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, - fromState: [ - "input": "input", - "paired": "paired", - "gtf": "gtf", - "index": "kallisto_index", - "fragment_length": "kallisto_quant_fragment_length", - "fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "quant_out_dir": "output", - "kallisto_quant_results_file": "quant_results_file", - "pseudo_multiqc": "log" - ] - ) + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'salmon' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.fastq_1 : null + def mates1 = state.paired ? state.fastq_1 : null + def mates2 = state.paired ? state.fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + toState: [ + "quant_out_dir": "output", + "salmon_quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } - | setState ( - [ "pseudo_multiqc": "quant_results", - "quant_out_dir": "quant_out_dir", - "salmon_quant_results_file": "salmon_quant_results_file", - "kallisto_quant_results_file": "kallisto_quant_results_file" ] - ) + | kallisto_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, + fromState: [ + "input": "input", + "paired": "paired", + "gtf": "gtf", + "index": "kallisto_index", + "fragment_length": "kallisto_quant_fragment_length", + "fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "quant_out_dir": "output", + "kallisto_quant_results_file": "quant_results_file", + "pseudo_multiqc": "log" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ "pseudo_multiqc": "quant_results", + "quant_out_dir": "quant_out_dir", + "salmon_quant_results_file": "salmon_quant_results_file", + "kallisto_quant_results_file": "kallisto_quant_results_file" ] + ) emit: output_ch diff --git a/target/executable/workflows/quality_control/.config.vsh.yaml b/target/executable/workflows/quality_control/.config.vsh.yaml index 1645b29..e5d254c 100644 --- a/target/executable/workflows/quality_control/.config.vsh.yaml +++ b/target/executable/workflows/quality_control/.config.vsh.yaml @@ -295,7 +295,7 @@ argument_groups: description: "Specify the RSeQC modules to run_wf" info: null default: - - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + - "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" required: false choices: - "bam_stat" @@ -308,7 +308,7 @@ argument_groups: - "tin" direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "integer" name: "--sample_size" description: "Numer of reads sampled from SAM/BAM file to infer experiment and\ @@ -1556,8 +1556,8 @@ build_info: output: "target/executable/workflows/quality_control" executable: "target/executable/workflows/quality_control/quality_control" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/rseqc/rseqc_bamstat" - "target/nextflow/rseqc/rseqc_inferexperiment" diff --git a/target/executable/workflows/quality_control/quality_control b/target/executable/workflows/quality_control/quality_control index 78b05ad..95da924 100755 --- a/target/executable/workflows/quality_control/quality_control +++ b/target/executable/workflows/quality_control/quality_control @@ -321,7 +321,7 @@ function ViashHelp { echo " --rseqc_modules" echo " type: string, multiple values allowed" echo " default:" - echo "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + echo "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" echo " choices: [ bam_stat, inner_distance, infer_experiment," echo "junction_annotation, junction_saturation, read_distribution, read_duplication," echo "tin ]" @@ -1161,7 +1161,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_RSEQC_MODULES" ]; then VIASH_PAR_RSEQC_MODULES="$2" else - VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES,""$2" + VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES;""$2" fi [ $# -lt 2 ] && ViashError Not enough arguments passed to --rseqc_modules. Use "--help" to get more information on the parameters. && exit 1 shift 2 @@ -1170,7 +1170,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_RSEQC_MODULES" ]; then VIASH_PAR_RSEQC_MODULES=$(ViashRemoveFlags "$1") else - VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES,"$(ViashRemoveFlags "$1") + VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES;"$(ViashRemoveFlags "$1") fi shift 1 ;; @@ -2444,7 +2444,7 @@ if [ -z ${VIASH_PAR_BIOTYPES_HEADER+x} ]; then VIASH_PAR_BIOTYPES_HEADER="src/assets/multiqc/biotypes_header.txt" fi if [ -z ${VIASH_PAR_RSEQC_MODULES+x} ]; then - VIASH_PAR_RSEQC_MODULES="bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + VIASH_PAR_RSEQC_MODULES="bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" fi if [ -z ${VIASH_PAR_SAMPLE_SIZE+x} ]; then VIASH_PAR_SAMPLE_SIZE="200000" @@ -3080,11 +3080,11 @@ fi # check whether value is belongs to a set of choices if [ ! -z "$VIASH_PAR_RSEQC_MODULES" ]; then - VIASH_PAR_RSEQC_MODULES_CHOICES=("bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication,tin") - IFS=',' + VIASH_PAR_RSEQC_MODULES_CHOICES=("bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication;tin") + IFS=';' set -f for val in $VIASH_PAR_RSEQC_MODULES; do - if ! [[ ",${VIASH_PAR_RSEQC_MODULES_CHOICES[*]}," =~ ",${val}," ]]; then + if ! [[ ";${VIASH_PAR_RSEQC_MODULES_CHOICES[*]};" =~ ";${val};" ]]; then ViashError '--rseqc_modules' specified value of \'${val}\' is not in the list of allowed values. Use "--help" to get more information on the parameters. exit 1 fi @@ -3344,733 +3344,735 @@ workflow run_wf { qc_ch = input_ch - // Feature biotype QC using featureCounts - | map { id, state -> - def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) - def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type - def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) - [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] - } + // temporary fix to force assignment when alignment in skipped + | map {it} - | featurecounts.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, - fromState: [ - "paired": "paired", - "strand": "strand", - "annotation": "gtf", - "input": "genome_bam", - "attribute_type": "attribute_type", - "feature_type": "featurecounts_feature_type", - "count_read_pairs": "paired" - ], - toState: [ - "featurecounts": "counts", - "featurecounts_summary": "summary" - ], - args: [ - both_aligned: true, - same_strand: true - ] - ) + // Feature biotype QC using featureCounts + | map { id, state -> + def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) + def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type + def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) + [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] + } - | multiqc_custom_biotype.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, - fromState: [ - "id": "id", - "biocounts": "featurecounts", - "biotypes_header": "biotypes_header" - ], - toState: [ - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" - ] - ) - - | preseq_lcextrap.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, - fromState: [ - "paired": "paired", - "input": "genome_bam", - "extra_preseq_args": "extra_preseq_args" - ], - toState: [ "preseq_output": "output" ] - ) - - | rseqc_bamstat.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "map_qual": "map_qual" - ], - toState: [ "bamstat_output": "output" ] - ) - | rseqc_inferexperiment.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual" - ], - toState: [ "strandedness_output": "output" ] - ) - // Get predicted strandedness from the RSeQC infer_experiment.py output - | map { id, state -> - def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) - def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true - [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] - } - | rseqc_innerdistance.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, - key: "inner_distance", - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual", - "lower_bound_size": "lower_bound_size", - "upper_bound_size": "upper_bound_size", - "step_size": "step_size" - ], - toState: [ - "inner_dist_output_stats": "output_stats", - "inner_dist_output_dist": "output_dist", - "inner_dist_output_freq": "output_freq", - "inner_dist_output_plot": "output_plot", - "inner_dist_output_plot_r": "output_plot_r" - ] - ) - | rseqc_junctionannotation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "map_qual": "map_qual", - "min_intron": "min_intron" - ], - toState: [ - "junction_annotation_output_log": "output_log", - "junction_annotation_output_plot_r": "output_plot_r", - "junction_annotation_output_junction_bed": "output_junction_bed", - "junction_annotation_output_junction_interact": "output_junction_interact", - "junction_annotation_output_junction_sheet": "output_junction_sheet", - "junction_annotation_output_splice_events_plot": "output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" - ] - ) - | rseqc_junctionsaturation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", - "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", - "sampling_percentile_step": "sampling_percentile_step", - "min_intron": "min_intron", - "min_splice_read": "min_splice_read", - "map_qual": "map_qual" - ], - toState: [ - "junction_saturation_output_plot_r": "output_plot_r", - "junction_saturation_output_plot": "output_plot" - ] - ) - | rseqc_readdistribution.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - ], - toState: [ "read_distribution_output": "output" ] - ) - | rseqc_readduplication.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "read_count_upper_limit": "read_count_upper_limit", - "map_qual": "map_qual" - ], - toState: [ - "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" - ] - ) - | rseqc_tin.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "bam_input": "genome_bam", - "bai_input": "genome_bam_index", - "refgene": "gene_bed", - "minimum_coverage": "minimum_coverage", - "sample_size": "tin_sample_size", - "subtract_background": "subtract_background" - ], - toState: [ - "tin_output_summary": "output_tin_summary", - "tin_output_metrics": "output_tin" - ] - ) + | featurecounts.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, + fromState: [ + "paired": "paired", + "strand": "strand", + "annotation": "gtf", + "input": "genome_bam", + "attribute_type": "attribute_type", + "feature_type": "featurecounts_feature_type", + "count_read_pairs": "paired" + ], + toState: [ + "featurecounts": "counts", + "featurecounts_summary": "summary" + ], + args: [ + both_aligned: true, + same_strand: true + ] + ) - | dupradar.run( - runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, - fromState: [ - "id": "id", - "input": "genome_bam", - "gtf_annotation": "gtf", - "paired": "paired", - "strandedness": "strandedness" - ], - toState: [ - "dupradar_output_dupmatrix": "output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "output_expression_histogram", - "dupradar_output_intercept_slope": "output_intercept_slope" - ] - ) + | multiqc_custom_biotype.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, + fromState: [ + "id": "id", + "biocounts": "featurecounts", + "biotypes_header": "biotypes_header" + ], + toState: [ + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" + ] + ) + + | preseq_lcextrap.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, + fromState: [ + "paired": "paired", + "input": "genome_bam", + "extra_preseq_args": "extra_preseq_args" + ], + toState: [ "preseq_output": "output" ] + ) + + | rseqc_bamstat.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "map_qual": "map_qual" + ], + toState: [ "bamstat_output": "output" ] + ) + | rseqc_inferexperiment.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual" + ], + toState: [ "strandedness_output": "output" ] + ) + // Get predicted strandedness from the RSeQC infer_experiment.py output + | map { id, state -> + def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) + def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true + [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] + } + | rseqc_innerdistance.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, + key: "inner_distance", + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual", + "lower_bound_size": "lower_bound_size", + "upper_bound_size": "upper_bound_size", + "step_size": "step_size" + ], + toState: [ + "inner_dist_output_stats": "output_stats", + "inner_dist_output_dist": "output_dist", + "inner_dist_output_freq": "output_freq", + "inner_dist_output_plot": "output_plot", + "inner_dist_output_plot_r": "output_plot_r" + ] + ) + | rseqc_junctionannotation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "map_qual": "map_qual", + "min_intron": "min_intron" + ], + toState: [ + "junction_annotation_output_log": "output_log", + "junction_annotation_output_plot_r": "output_plot_r", + "junction_annotation_output_junction_bed": "output_junction_bed", + "junction_annotation_output_junction_interact": "output_junction_interact", + "junction_annotation_output_junction_sheet": "output_junction_sheet", + "junction_annotation_output_splice_events_plot": "output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" + ] + ) + | rseqc_junctionsaturation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", + "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", + "sampling_percentile_step": "sampling_percentile_step", + "min_intron": "min_intron", + "min_splice_read": "min_splice_read", + "map_qual": "map_qual" + ], + toState: [ + "junction_saturation_output_plot_r": "output_plot_r", + "junction_saturation_output_plot": "output_plot" + ] + ) + | rseqc_readdistribution.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + ], + toState: [ "read_distribution_output": "output" ] + ) + | rseqc_readduplication.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "read_count_upper_limit": "read_count_upper_limit", + "map_qual": "map_qual" + ], + toState: [ + "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" + ] + ) + | rseqc_tin.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "bam_input": "genome_bam", + "bai_input": "genome_bam_index", + "refgene": "gene_bed", + "minimum_coverage": "minimum_coverage", + "sample_size": "tin_sample_size", + "subtract_background": "subtract_background" + ], + toState: [ + "tin_output_summary": "output_tin_summary", + "tin_output_metrics": "output_tin" + ] + ) - | qualimap.run( - runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "gtf": "gtf", - "pr_bases": "pr_bases", - "tr_bias": "tr_bias", - "algorithm": "algorithm", - "sequencing_protocol": "sequencing_protocol", - "sorted": "sorted", - "java_memory_size": "java_memory_size", - ], - toState: [ - "qualimap_output_pdf": "output_pdf", - "qualimap_output_dir": "output_dir" - ] - ) + | dupradar.run( + runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, + fromState: [ + "id": "id", + "input": "genome_bam", + "gtf_annotation": "gtf", + "paired": "paired", + "strandedness": "strandedness" + ], + toState: [ + "dupradar_output_dupmatrix": "output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "output_expression_histogram", + "dupradar_output_intercept_slope": "output_intercept_slope" + ] + ) + + | qualimap.run( + runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "gtf": "gtf", + "pr_bases": "pr_bases", + "tr_bias": "tr_bias", + "algorithm": "algorithm", + "sequencing_protocol": "sequencing_protocol", + "sorted": "sorted", + "java_memory_size": "java_memory_size", + ], + toState: [ + "qualimap_output_pdf": "output_pdf", + "qualimap_output_dir": "output_dir" + ] + ) merged_ch = qc_ch - - | toSortedList - | map { list -> - def ids = list.collect { id, state -> id } - def strandedness = list.collect { id, state -> state.strandedness } - def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } - def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } - def passed_mapping = list.collect { id, state -> state.passed_mapping } - def percent_mapped = list.collect { id, state -> state.percent_mapped } - def inferred_strand = list.collect { id, state -> state.inferred_strand } - def passed_strand_check = list.collect { id, state -> state.passed_strand_check } - def gtf = list.collect { id, state -> state.gtf }.unique()[0] - def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] - def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] - def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] - def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] - def aligner = list.collect { id, state -> state.aligner }.unique()[0] - def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] - def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] - def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] - def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] - def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] - def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] - def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] - def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] - def quant_results = list.collect { id, state -> - (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? - state.quant_results_file : - null } - def rsem_counts_gene = list.collect { id, state -> - (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? - state.rsem_counts_gene : - null } - def rsem_counts_transcripts = list.collect { id, state -> - (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? - state.rsem_counts_transcripts : - null } - def pseudo_quant_out_dir = list.collect { id, state -> - (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? - state.pseudo_quant_out_dir : - null } - def pseudo_salmon_quant_results = list.collect { id, state -> - (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? - state.pseudo_salmon_quant_results_file : - null } - def pseudo_kallisto_quant_results = list.collect { id, state -> - (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? - state.pseudo_kallisto_quant_results_file : - null } - def fastqc_zip_1 = list.collect { id, state -> - (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? - state.fastqc_zip_1 : - null } - def fastqc_zip_2 = list.collect { id, state -> - (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? - state.fastqc_zip_2 : - null } - def trim_zip_1 = list.collect { id, state -> - (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? - state.trim_zip_1 : - null } - def trim_zip_2 = list.collect { id, state -> - (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? - state.trim_zip_2 : - null } - def trim_log_1 = list.collect { id, state -> - (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? - state.trim_log_1 : - null } - def trim_log_2 = list.collect { id, state -> - (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? - state.trim_log_2 : - null } - def sortmerna_multiqc = list.collect { id, state -> - (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? - state.sortmerna_multiqc : - null } - def star_multiqc = list.collect { id, state -> - (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? - state.star_multiqc : - null } - def genome_bam_stats = list.collect { id, state -> - (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? - state.genome_bam_stats : - null } - def genome_bam_flagstat = list.collect { id, state -> - (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? - state.genome_bam_flagstat : - null } - def genome_bam_idxstats = list.collect { id, state -> - (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? - state.genome_bam_idxstats : - null } - def markduplicates_multiqc = list.collect { id, state -> - (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? - state.markduplicates_multiqc : - null } - def salmon_multiqc = list.collect { id, state -> - (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? - state.salmon_multiqc : - null } - def rsem_multiqc = list.collect { id, state -> - (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? - state.rsem_multiqc : - null } - def pseudo_multiqc = list.collect { id, state -> - (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? - state.pseudo_multiqc : - null } - def featurecounts_multiqc = list.collect { id, state -> - (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? - state.featurecounts_multiqc : - null } - def featurecounts_rrna_multiqc = list.collect { id, state -> - (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? - state.featurecounts_rrna_multiqc : - null } - def preseq_output = list.collect { id, state -> - (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? - state.preseq_output : - null } - def qualimap_output_dir = list.collect { id, state -> - (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? - state.qualimap_output_dir : - null } - def dupradar_output_dup_intercept_mqc = list.collect { id, state -> - (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? - state.dupradar_output_dup_intercept_mqc : + | toSortedList + | map { list -> + def ids = list.collect { id, state -> id } + def strandedness = list.collect { id, state -> state.strandedness } + def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } + def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } + def passed_mapping = list.collect { id, state -> state.passed_mapping } + def percent_mapped = list.collect { id, state -> state.percent_mapped } + def inferred_strand = list.collect { id, state -> state.inferred_strand } + def passed_strand_check = list.collect { id, state -> state.passed_strand_check } + def gtf = list.collect { id, state -> state.gtf }.unique()[0] + def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] + def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] + def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] + def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] + def aligner = list.collect { id, state -> state.aligner }.unique()[0] + def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] + def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] + def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] + def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] + def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] + def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] + def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] + def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] + def quant_results = list.collect { id, state -> + (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? + state.quant_results_file : null } - def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> - (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? - state.dupradar_output_duprate_exp_denscurve_mqc : + def rsem_counts_gene = list.collect { id, state -> + (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? + state.rsem_counts_gene : null } - def bamstat_output = list.collect { id, state -> - (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? - state.bamstat_output : + def rsem_counts_transcripts = list.collect { id, state -> + (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? + state.rsem_counts_transcripts : + null } + def pseudo_quant_out_dir = list.collect { id, state -> + (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? + state.pseudo_quant_out_dir : + null } + def pseudo_salmon_quant_results = list.collect { id, state -> + (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? + state.pseudo_salmon_quant_results_file : + null } + def pseudo_kallisto_quant_results = list.collect { id, state -> + (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? + state.pseudo_kallisto_quant_results_file : + null } + def fastqc_zip_1 = list.collect { id, state -> + (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? + state.fastqc_zip_1 : + null } + def fastqc_zip_2 = list.collect { id, state -> + (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? + state.fastqc_zip_2 : + null } + def trim_zip_1 = list.collect { id, state -> + (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? + state.trim_zip_1 : + null } + def trim_zip_2 = list.collect { id, state -> + (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? + state.trim_zip_2 : null } - def inferexperiment_multiqc = list.collect { id, state -> - (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? - state.strandedness_output : + def trim_log_1 = list.collect { id, state -> + (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? + state.trim_log_1 : null } - def inner_dist_output_freq = list.collect { id, state -> - (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? - state.inner_dist_output_freq : + def trim_log_2 = list.collect { id, state -> + (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? + state.trim_log_2 : + null } + def sortmerna_multiqc = list.collect { id, state -> + (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? + state.sortmerna_multiqc : + null } + def star_multiqc = list.collect { id, state -> + (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? + state.star_multiqc : + null } + def genome_bam_stats = list.collect { id, state -> + (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? + state.genome_bam_stats : + null } + def genome_bam_flagstat = list.collect { id, state -> + (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? + state.genome_bam_flagstat : null } - def junction_annotation_output_log = list.collect { id, state -> - (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? - state.junction_annotation_output_log : - null } - def junction_saturation_output_plot_r = list.collect { id, state -> - (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? - state.junction_saturation_output_plot_r : - null } - def read_distribution_output = list.collect { id, state -> - (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? - state.read_distribution_output : - null } - def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> - (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? - state.read_duplication_output_duplication_rate_mapping : - null } - def tin_output_summary = list.collect { id, state -> - (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? - state.tin_output_summary : - null } - def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] - ["merged", [ - ids: ids, - strandedness: strandedness, - num_trimmed_reads: num_trimmed_reads, - passed_trimmed_reads: passed_trimmed_reads, - passed_mapping: passed_mapping, - percent_mapped: percent_mapped, - inferred_strand: inferred_strand, - passed_strand_check: passed_strand_check, - skip_align: skip_align, - skip_pseudo_align: skip_pseudo_align, - quant_results: quant_results.findAll { it != null }, - rsem_counts_gene: rsem_counts_gene.findAll { it != null }, - rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, - pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, - pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, - pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, - gtf: gtf, - gtf_extra_attributes: gtf_extra_attributes, - gtf_group_features: gtf_group_features, - pca_header_multiqc: pca_header_multiqc, - clustering_header_multiqc: clustering_header_multiqc, - aligner: aligner, - pseudo_aligner: pseudo_aligner, - deseq2_vst: deseq2_vst, - extra_deseq2_args: extra_deseq2_args, - extra_deseq2_args2: extra_deseq2_args2, - skip_deseq2_qc: skip_deseq2_qc, - fastqc_zip: fastqc_zip_1 + fastqc_zip_2, - trim_zip: trim_zip_1 + trim_zip_2, - trim_log: trim_log_1 + trim_log_2, - sortmerna_multiqc: sortmerna_multiqc, - star_multiqc: star_multiqc, - genome_bam_stats: genome_bam_stats, - genome_bam_flagstat: genome_bam_flagstat, - genome_bam_idxstats: genome_bam_idxstats, - markduplicates_multiqc: markduplicates_multiqc, - salmon_multiqc: salmon_multiqc, - rsem_multiqc: rsem_multiqc, - pseudo_multiqc: pseudo_multiqc, - featurecounts_multiqc: featurecounts_multiqc, - featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, - preseq_output: preseq_output, - qualimap_output_dir: qualimap_output_dir, - dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, - dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, - bamstat_output: bamstat_output, - inner_dist_output_freq: inner_dist_output_freq, - inferexperiment_multiqc: inferexperiment_multiqc, - junction_annotation_output_log: junction_annotation_output_log, - junction_saturation_output_plot_r: junction_saturation_output_plot_r, - read_distribution_output: read_distribution_output, - read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, - tin_output_summary: tin_output_summary, - multiqc_custom_config: multiqc_custom_config - ] ] - } + def genome_bam_idxstats = list.collect { id, state -> + (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? + state.genome_bam_idxstats : + null } + def markduplicates_multiqc = list.collect { id, state -> + (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? + state.markduplicates_multiqc : + null } + def salmon_multiqc = list.collect { id, state -> + (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? + state.salmon_multiqc : + null } + def rsem_multiqc = list.collect { id, state -> + (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? + state.rsem_multiqc : + null } + def pseudo_multiqc = list.collect { id, state -> + (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? + state.pseudo_multiqc : + null } + def featurecounts_multiqc = list.collect { id, state -> + (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? + state.featurecounts_multiqc : + null } + def featurecounts_rrna_multiqc = list.collect { id, state -> + (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? + state.featurecounts_rrna_multiqc : + null } + def preseq_output = list.collect { id, state -> + (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? + state.preseq_output : + null } + def qualimap_output_dir = list.collect { id, state -> + (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? + state.qualimap_output_dir : + null } + def dupradar_output_dup_intercept_mqc = list.collect { id, state -> + (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? + state.dupradar_output_dup_intercept_mqc : + null } + def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> + (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? + state.dupradar_output_duprate_exp_denscurve_mqc : + null } + def bamstat_output = list.collect { id, state -> + (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? + state.bamstat_output : + null } + def inferexperiment_multiqc = list.collect { id, state -> + (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? + state.strandedness_output : + null } + def inner_dist_output_freq = list.collect { id, state -> + (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? + state.inner_dist_output_freq : + null } + def junction_annotation_output_log = list.collect { id, state -> + (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? + state.junction_annotation_output_log : + null } + def junction_saturation_output_plot_r = list.collect { id, state -> + (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? + state.junction_saturation_output_plot_r : + null } + def read_distribution_output = list.collect { id, state -> + (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? + state.read_distribution_output : + null } + def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> + (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? + state.read_duplication_output_duplication_rate_mapping : + null } + def tin_output_summary = list.collect { id, state -> + (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? + state.tin_output_summary : + null } + def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] + ["merged", [ + ids: ids, + strandedness: strandedness, + num_trimmed_reads: num_trimmed_reads, + passed_trimmed_reads: passed_trimmed_reads, + passed_mapping: passed_mapping, + percent_mapped: percent_mapped, + inferred_strand: inferred_strand, + passed_strand_check: passed_strand_check, + skip_align: skip_align, + skip_pseudo_align: skip_pseudo_align, + quant_results: quant_results.findAll { it != null }, + rsem_counts_gene: rsem_counts_gene.findAll { it != null }, + rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, + pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, + pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, + pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, + gtf: gtf, + gtf_extra_attributes: gtf_extra_attributes, + gtf_group_features: gtf_group_features, + pca_header_multiqc: pca_header_multiqc, + clustering_header_multiqc: clustering_header_multiqc, + aligner: aligner, + pseudo_aligner: pseudo_aligner, + deseq2_vst: deseq2_vst, + extra_deseq2_args: extra_deseq2_args, + extra_deseq2_args2: extra_deseq2_args2, + skip_deseq2_qc: skip_deseq2_qc, + fastqc_zip: fastqc_zip_1 + fastqc_zip_2, + trim_zip: trim_zip_1 + trim_zip_2, + trim_log: trim_log_1 + trim_log_2, + sortmerna_multiqc: sortmerna_multiqc, + star_multiqc: star_multiqc, + genome_bam_stats: genome_bam_stats, + genome_bam_flagstat: genome_bam_flagstat, + genome_bam_idxstats: genome_bam_idxstats, + markduplicates_multiqc: markduplicates_multiqc, + salmon_multiqc: salmon_multiqc, + rsem_multiqc: rsem_multiqc, + pseudo_multiqc: pseudo_multiqc, + featurecounts_multiqc: featurecounts_multiqc, + featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, + preseq_output: preseq_output, + qualimap_output_dir: qualimap_output_dir, + dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, + dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, + bamstat_output: bamstat_output, + inner_dist_output_freq: inner_dist_output_freq, + inferexperiment_multiqc: inferexperiment_multiqc, + junction_annotation_output_log: junction_annotation_output_log, + junction_saturation_output_plot_r: junction_saturation_output_plot_r, + read_distribution_output: read_distribution_output, + read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, + tin_output_summary: tin_output_summary, + multiqc_custom_config: multiqc_custom_config + ] ] + } - // Merge quantification results of alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, - fromState: [ - "salmon_quant_results": "quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features" - ], - args: [ quant_type: "salmon"], - toState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_quant_results" - ) + // Merge quantification results of alignment + | merge_quant_results.run ( + runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, + fromState: [ + "salmon_quant_results": "quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features" + ], + args: [ quant_type: "salmon"], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_quant_results" + ) - | rsem_merge_counts.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "counts_gene": "rsem_counts_gene", - "counts_transcripts": "rsem_counts_transcripts" - ], - toState: [ - "tpm_gene": "merged_gene_tpm", - "counts_gene": "merged_gene_counts", - "tpm_transcript": "merged_transcript_tpm", - "counts_transcript": "merged_transcript_counts" - ] - ) - - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, - fromState: { id, state -> - def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled - [ - counts: counts, - vst: state.deseq2_vst, - label: state.aligner + | rsem_merge_counts.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "counts_gene": "rsem_counts_gene", + "counts_transcripts": "rsem_counts_transcripts" + ], + toState: [ + "tpm_gene": "merged_gene_tpm", + "counts_gene": "merged_gene_counts", + "tpm_transcript": "merged_transcript_tpm", + "counts_transcript": "merged_transcript_counts" ] - }, - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_align_quant" - ) + ) - // Merge quantification results of pseudo alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_pseudo_align }, - fromState: [ - "salmon_quant_results": "pseudo_salmon_quant_results", - "kallisto_quant_results": "pseudo_kallisto_quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features", - "quant_type": "pseudo_aligner" - ], - toState: [ - "pseudo_tpm_gene": "tpm_gene", - "pseudo_counts_gene": "counts_gene", - "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "counts_gene_scaled", - "pseudo_tpm_transcript": "tpm_transcript", - "pseudo_counts_transcript": "counts_transcript", - "pseudo_lengths_gene": "lengths_gene", - "pseudo_lengths_transcript": "lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_pseudo_quant_results" - ) + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, + fromState: { id, state -> + def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled + [ + counts: counts, + vst: state.deseq2_vst, + label: state.aligner + ] + }, + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output": "outdir", + "deseq2_pca_multiqc": "pca_multiqc", + "deseq2_dists_multiqc": "dists_multiqc" + ], + key: "deseq2_qc_align_quant" + ) - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, - fromState: [ - "counts": "pseudo_counts_gene_length_scaled", - "vst": "deseq2_vst", - "label": "pseudo_aligner" - ], - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_pseuso_align_quant" - ) - - // Get list of samples that failed trimming, mapping, and strand check for MultiQC report - | map { id, state -> - def fail_trimming_header = ["Sample", "Reads after trimming"] - def fail_trimming_multiqc = "" - def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] - def fail_mapping_multiqc = "" - def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] - def fail_strand_multiqc = "" - if (state.ids.size() > 0) { - fail_trimming_multiqc += "\${fail_trimming_header.join('\\t')}\\n" - fail_mapping_multiqc += "\${star_mapping_header.join('\\t')}\\n" - fail_strand_multiqc += "\${strand_check_header.join('\\t')}\\n" - for (i=0; i !state.skip_pseudo_align }, + fromState: [ + "salmon_quant_results": "pseudo_salmon_quant_results", + "kallisto_quant_results": "pseudo_kallisto_quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features", + "quant_type": "pseudo_aligner" + ], + toState: [ + "pseudo_tpm_gene": "tpm_gene", + "pseudo_counts_gene": "counts_gene", + "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "counts_gene_scaled", + "pseudo_tpm_transcript": "tpm_transcript", + "pseudo_counts_transcript": "counts_transcript", + "pseudo_lengths_gene": "lengths_gene", + "pseudo_lengths_transcript": "lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_pseudo_quant_results" + ) + + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, + fromState: [ + "counts": "pseudo_counts_gene_length_scaled", + "vst": "deseq2_vst", + "label": "pseudo_aligner" + ], + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output_pseudo": "outdir", + "deseq2_pca_multiqc_pseudo": "pca_multiqc", + "deseq2_dists_multiqc_pseudo": "dists_multiqc" + ], + key: "deseq2_qc_pseuso_align_quant" + ) - [ id, state + [fail_trimming_multiqc: fail_trimming_multiqc, fail_mapping_multiqc: fail_mapping_multiqc, fail_strand_multiqc: fail_strand_multiqc] ] - } - - | map { id, state -> - state.each { key, value -> - if (value instanceof ArrayList) { - value.removeAll { it == null } + // Get list of samples that failed trimming, mapping, and strand check for MultiQC report + | map { id, state -> + def fail_trimming_header = ["Sample", "Reads after trimming"] + def fail_trimming_multiqc = "" + def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] + def fail_mapping_multiqc = "" + def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] + def fail_strand_multiqc = "" + if (state.ids.size() > 0) { + fail_trimming_multiqc += "\${fail_trimming_header.join('\\t')}\\n" + fail_mapping_multiqc += "\${star_mapping_header.join('\\t')}\\n" + fail_strand_multiqc += "\${strand_check_header.join('\\t')}\\n" + for (i=0; i value != null } - [ id, mod_state ] - } - | prepare_multiqc_input.run( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "fail_trimming_multiqc": "fail_trimming_multiqc", - "fail_mapping_multiqc": "fail_mapping_multiqc", - "fail_strand_multiqc": "fail_strand_multiqc", - "fastqc_raw_multiqc": "fastqc_zip", - "fastqc_trim_multiqc": "trim_zip", - "trim_log_multiqc": "trim_log", - "sortmerna_multiqc": "sortmerna_multiqc", - "star_multiqc": "star_multiqc", - "salmon_multiqc": "salmon_multiqc", - "rsem_multiqc": "rsem_multiqc", - "pseudo_multiqc": "pseudo_multiqc", - "samtools_stats": "genome_bam_stats", - "samtools_flagstat": "genome_bam_flagstat", - "samtools_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_multiqc", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "aligner_pca_multiqc": "deseq2_pca_multiqc", - "aligner_clustering_multiqc": "deseq2_dists_multiqc", - "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", - "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", - "preseq_multiqc": "preseq_output", - "qualimap_multiqc": "qualimap_output_dir", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "bamstat_multiqc": "bamstat_output", - "inferexperiment_multiqc": "inferexperiment_multiqc", - "innerdistance_multiqc": "inner_dist_output_freq", - "junctionannotation_multiqc": "junction_annotation_output_log", - "junctionsaturation_multiqc": "junction_saturation_output_plot_r", - "readdistribution_multiqc": "read_distribution_output", - "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", - "tin_multiqc": "tin_output_summary", - "multiqc_config": "multiqc_custom_config" - ], - toState: [ "multiqc_input": "output" ] - ) + | map { id, state -> + state.each { key, value -> + if (value instanceof ArrayList) { + value.removeAll { it == null } + } + } + mod_state = state.findAll { key, value -> value != null } + [ id, mod_state ] + } - | multiqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "title": "multiqc_title", - "input": "multiqc_input", - ], - args: [exclude_modules: "general_stats"], - toState: [ - "multiqc_report": "output_report", - "multiqc_data": "output_data", - "multiqc_plots": "output_plots" - ] - ) + | prepare_multiqc_input.run( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "fail_trimming_multiqc": "fail_trimming_multiqc", + "fail_mapping_multiqc": "fail_mapping_multiqc", + "fail_strand_multiqc": "fail_strand_multiqc", + "fastqc_raw_multiqc": "fastqc_zip", + "fastqc_trim_multiqc": "trim_zip", + "trim_log_multiqc": "trim_log", + "sortmerna_multiqc": "sortmerna_multiqc", + "star_multiqc": "star_multiqc", + "salmon_multiqc": "salmon_multiqc", + "rsem_multiqc": "rsem_multiqc", + "pseudo_multiqc": "pseudo_multiqc", + "samtools_stats": "genome_bam_stats", + "samtools_flagstat": "genome_bam_flagstat", + "samtools_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_multiqc", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "aligner_pca_multiqc": "deseq2_pca_multiqc", + "aligner_clustering_multiqc": "deseq2_dists_multiqc", + "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", + "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", + "preseq_multiqc": "preseq_output", + "qualimap_multiqc": "qualimap_output_dir", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "bamstat_multiqc": "bamstat_output", + "inferexperiment_multiqc": "inferexperiment_multiqc", + "innerdistance_multiqc": "inner_dist_output_freq", + "junctionannotation_multiqc": "junction_annotation_output_log", + "junctionsaturation_multiqc": "junction_saturation_output_plot_r", + "readdistribution_multiqc": "read_distribution_output", + "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", + "tin_multiqc": "tin_output_summary", + "multiqc_config": "multiqc_custom_config" + ], + toState: [ "multiqc_input": "output" ] + ) - | map { id, state -> - [ id, [ - tpm_gene: state.tpm_gene, - counts_gene: state.counts_gene, - counts_gene_length_scaled: state.counts_gene_length_scaled, - counts_gene_scaled: state.counts_gene_scaled, - tpm_transcript: state.tpm_transcript, - counts_transcript: state.counts_transcript, - quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, - deseq2_output: state.deseq2_output, - pseudo_tpm_gene: state.pseudo_tpm_gene, - pseudo_counts_gene: state.pseudo_counts_gene, - pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, - pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, - pseudo_tpm_transcript: state.pseudo_tpm_transcript, - pseudo_counts_transcript: state.pseudo_counts_transcript, - pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, - deseq2_output_pseudo: state.deseq2_output_pseudo, - multiqc_report: state.multiqc_report, - multiqc_data: state.multiqc_data, - multiqc_plots: state.multiqc_plots - ] ] - } + | multiqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "title": "multiqc_title", + "input": "multiqc_input", + ], + args: [exclude_modules: "general_stats"], + toState: [ + "multiqc_report": "output_report", + "multiqc_data": "output_data", + "multiqc_plots": "output_plots" + ] + ) - | map { list -> list[1]} + | map { id, state -> + [ id, [ + tpm_gene: state.tpm_gene, + counts_gene: state.counts_gene, + counts_gene_length_scaled: state.counts_gene_length_scaled, + counts_gene_scaled: state.counts_gene_scaled, + tpm_transcript: state.tpm_transcript, + counts_transcript: state.counts_transcript, + quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, + deseq2_output: state.deseq2_output, + pseudo_tpm_gene: state.pseudo_tpm_gene, + pseudo_counts_gene: state.pseudo_counts_gene, + pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, + pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, + pseudo_tpm_transcript: state.pseudo_tpm_transcript, + pseudo_counts_transcript: state.pseudo_counts_transcript, + pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, + deseq2_output_pseudo: state.deseq2_output_pseudo, + multiqc_report: state.multiqc_report, + multiqc_data: state.multiqc_data, + multiqc_plots: state.multiqc_plots + ] ] + } + + | map { list -> list[1]} output_ch = qc_ch - | combine(merged_ch) + | combine(merged_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) + | setState ( + [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) emit: output_ch diff --git a/target/executable/workflows/rnaseq/.config.vsh.yaml b/target/executable/workflows/rnaseq/.config.vsh.yaml index 16f6e37..ba47302 100644 --- a/target/executable/workflows/rnaseq/.config.vsh.yaml +++ b/target/executable/workflows/rnaseq/.config.vsh.yaml @@ -693,10 +693,10 @@ argument_groups: multiple_sep: ";" - type: "string" name: "--rseqc_modules" - description: "Specify the RSeQC modules to run_wf" + description: "Specify the RSeQC modules to run_wf (comma-separated list)" info: null default: - - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + - "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" required: false choices: - "bam_stat" @@ -709,8 +709,8 @@ argument_groups: - "tin" direction: "input" multiple: true - multiple_sep: "," -- name: "Multiqc paramenters" + multiple_sep: ";" +- name: "MultiQC paramenters" arguments: - type: "file" name: "--multiqc_custom_config" @@ -840,7 +840,7 @@ argument_groups: description: "Path to output directory" info: null default: - - "fastq/$id.read_1.fastq" + - "fastq/$id.read_1.fastq.gz" must_exist: false create_parent: true required: false @@ -852,7 +852,7 @@ argument_groups: description: "Path to output directory" info: null default: - - "fastq/$id.read_2.fastq" + - "fastq/$id.read_2.fastq.gz" must_exist: false create_parent: true required: false @@ -1865,6 +1865,17 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" + - type: "file" + name: "--deseq2_output_pseudo" + info: null + default: + - "deseq2_qc_pseudo" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" - type: "file" name: "--multiqc_report" info: null @@ -1940,6 +1951,17 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" + - type: "file" + name: "--pseudo_tpm_gene" + info: null + default: + - "pseudo_alignment_quantification/gene_tpm.tsv" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" - type: "file" name: "--pseudo_tpm_transcript" info: null @@ -2090,8 +2112,8 @@ build_info: output: "target/executable/workflows/rnaseq" executable: "target/executable/workflows/rnaseq/rnaseq" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/workflows/prepare_genome" - "target/nextflow/cat_fastq" diff --git a/target/executable/workflows/rnaseq/rnaseq b/target/executable/workflows/rnaseq/rnaseq index 5c51e84..c35d2a6 100755 --- a/target/executable/workflows/rnaseq/rnaseq +++ b/target/executable/workflows/rnaseq/rnaseq @@ -553,13 +553,13 @@ function ViashHelp { echo " --rseqc_modules" echo " type: string, multiple values allowed" echo " default:" - echo "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + echo "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" echo " choices: [ bam_stat, inner_distance, infer_experiment," echo "junction_annotation, junction_saturation, read_distribution, read_duplication," echo "tin ]" - echo " Specify the RSeQC modules to run_wf" + echo " Specify the RSeQC modules to run_wf (comma-separated list)" echo "" - echo "Multiqc paramenters:" + echo "MultiQC paramenters:" echo " --multiqc_custom_config" echo " type: file, file must exist" echo " default: src/assets/multiqc_config.yml" @@ -610,12 +610,12 @@ function ViashHelp { echo "" echo " --output_fastq_1" echo " type: file, output" - echo " default: fastq/\$id.read_1.fastq" + echo " default: fastq/\$id.read_1.fastq.gz" echo " Path to output directory" echo "" echo " --output_fastq_2" echo " type: file, output" - echo " default: fastq/\$id.read_2.fastq" + echo " default: fastq/\$id.read_2.fastq.gz" echo " Path to output directory" echo "" echo " --fastqc_html_1" @@ -1016,6 +1016,10 @@ function ViashHelp { echo " type: file, output, file must exist" echo " default: deseq2_qc" echo "" + echo " --deseq2_output_pseudo" + echo " type: file, output, file must exist" + echo " default: deseq2_qc_pseudo" + echo "" echo " --multiqc_report" echo " type: file, output, file must exist" echo " default: multiqc/multiqc_report.html" @@ -1043,6 +1047,10 @@ function ViashHelp { echo " type: file, output, file must exist" echo " default: pseudo_alignment_quantification/gene_counts_scaled.tsv" echo "" + echo " --pseudo_tpm_gene" + echo " type: file, output, file must exist" + echo " default: pseudo_alignment_quantification/gene_tpm.tsv" + echo "" echo " --pseudo_tpm_transcript" echo " type: file, output, file must exist" echo " default: pseudo_alignment_quantification/transcript_tpm.tsv" @@ -1773,7 +1781,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_RSEQC_MODULES" ]; then VIASH_PAR_RSEQC_MODULES="$2" else - VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES,""$2" + VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES;""$2" fi [ $# -lt 2 ] && ViashError Not enough arguments passed to --rseqc_modules. Use "--help" to get more information on the parameters. && exit 1 shift 2 @@ -1782,7 +1790,7 @@ while [[ $# -gt 0 ]]; do if [ -z "$VIASH_PAR_RSEQC_MODULES" ]; then VIASH_PAR_RSEQC_MODULES=$(ViashRemoveFlags "$1") else - VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES,"$(ViashRemoveFlags "$1") + VIASH_PAR_RSEQC_MODULES="$VIASH_PAR_RSEQC_MODULES;"$(ViashRemoveFlags "$1") fi shift 1 ;; @@ -2886,6 +2894,17 @@ while [[ $# -gt 0 ]]; do VIASH_PAR_DESEQ2_OUTPUT=$(ViashRemoveFlags "$1") shift 1 ;; + --deseq2_output_pseudo) + [ -n "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO" ] && ViashError Bad arguments for option \'--deseq2_output_pseudo\': \'$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_DESEQ2_OUTPUT_PSEUDO="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --deseq2_output_pseudo. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --deseq2_output_pseudo=*) + [ -n "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO" ] && ViashError Bad arguments for option \'--deseq2_output_pseudo=*\': \'$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_DESEQ2_OUTPUT_PSEUDO=$(ViashRemoveFlags "$1") + shift 1 + ;; --multiqc_report) [ -n "$VIASH_PAR_MULTIQC_REPORT" ] && ViashError Bad arguments for option \'--multiqc_report\': \'$VIASH_PAR_MULTIQC_REPORT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 VIASH_PAR_MULTIQC_REPORT="$2" @@ -2963,6 +2982,17 @@ while [[ $# -gt 0 ]]; do VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED=$(ViashRemoveFlags "$1") shift 1 ;; + --pseudo_tpm_gene) + [ -n "$VIASH_PAR_PSEUDO_TPM_GENE" ] && ViashError Bad arguments for option \'--pseudo_tpm_gene\': \'$VIASH_PAR_PSEUDO_TPM_GENE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PSEUDO_TPM_GENE="$2" + [ $# -lt 2 ] && ViashError Not enough arguments passed to --pseudo_tpm_gene. Use "--help" to get more information on the parameters. && exit 1 + shift 2 + ;; + --pseudo_tpm_gene=*) + [ -n "$VIASH_PAR_PSEUDO_TPM_GENE" ] && ViashError Bad arguments for option \'--pseudo_tpm_gene=*\': \'$VIASH_PAR_PSEUDO_TPM_GENE\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 + VIASH_PAR_PSEUDO_TPM_GENE=$(ViashRemoveFlags "$1") + shift 1 + ;; --pseudo_tpm_transcript) [ -n "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT" ] && ViashError Bad arguments for option \'--pseudo_tpm_transcript\': \'$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT\' \& \'$2\' - you should provide exactly one argument for this option. && exit 1 VIASH_PAR_PSEUDO_TPM_TRANSCRIPT="$2" @@ -3285,7 +3315,7 @@ if [ -z ${VIASH_PAR_DESEQ2_VST+x} ]; then VIASH_PAR_DESEQ2_VST="true" fi if [ -z ${VIASH_PAR_RSEQC_MODULES+x} ]; then - VIASH_PAR_RSEQC_MODULES="bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + VIASH_PAR_RSEQC_MODULES="bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" fi if [ -z ${VIASH_PAR_MULTIQC_CUSTOM_CONFIG+x} ]; then VIASH_PAR_MULTIQC_CUSTOM_CONFIG="src/assets/multiqc_config.yml" @@ -3318,10 +3348,10 @@ if [ -z ${VIASH_PAR_OUTPUT_KALLISTO_INDEX+x} ]; then VIASH_PAR_OUTPUT_KALLISTO_INDEX="reference/index/Kallisto" fi if [ -z ${VIASH_PAR_OUTPUT_FASTQ_1+x} ]; then - VIASH_PAR_OUTPUT_FASTQ_1="fastq/\$id.read_1.fastq" + VIASH_PAR_OUTPUT_FASTQ_1="fastq/\$id.read_1.fastq.gz" fi if [ -z ${VIASH_PAR_OUTPUT_FASTQ_2+x} ]; then - VIASH_PAR_OUTPUT_FASTQ_2="fastq/\$id.read_2.fastq" + VIASH_PAR_OUTPUT_FASTQ_2="fastq/\$id.read_2.fastq.gz" fi if [ -z ${VIASH_PAR_FASTQC_HTML_1+x} ]; then VIASH_PAR_FASTQC_HTML_1="fastqc_raw/\$id.read_1.fastqc.html" @@ -3584,6 +3614,9 @@ fi if [ -z ${VIASH_PAR_DESEQ2_OUTPUT+x} ]; then VIASH_PAR_DESEQ2_OUTPUT="deseq2_qc" fi +if [ -z ${VIASH_PAR_DESEQ2_OUTPUT_PSEUDO+x} ]; then + VIASH_PAR_DESEQ2_OUTPUT_PSEUDO="deseq2_qc_pseudo" +fi if [ -z ${VIASH_PAR_MULTIQC_REPORT+x} ]; then VIASH_PAR_MULTIQC_REPORT="multiqc/multiqc_report.html" fi @@ -3602,6 +3635,9 @@ fi if [ -z ${VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED+x} ]; then VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED="pseudo_alignment_quantification/gene_counts_scaled.tsv" fi +if [ -z ${VIASH_PAR_PSEUDO_TPM_GENE+x} ]; then + VIASH_PAR_PSEUDO_TPM_GENE="pseudo_alignment_quantification/gene_tpm.tsv" +fi if [ -z ${VIASH_PAR_PSEUDO_TPM_TRANSCRIPT+x} ]; then VIASH_PAR_PSEUDO_TPM_TRANSCRIPT="pseudo_alignment_quantification/transcript_tpm.tsv" fi @@ -4042,11 +4078,11 @@ if [ ! -z "$VIASH_PAR_PSEUDO_ALIGNER" ]; then fi if [ ! -z "$VIASH_PAR_RSEQC_MODULES" ]; then - VIASH_PAR_RSEQC_MODULES_CHOICES=("bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication,tin") - IFS=',' + VIASH_PAR_RSEQC_MODULES_CHOICES=("bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication;tin") + IFS=';' set -f for val in $VIASH_PAR_RSEQC_MODULES; do - if ! [[ ",${VIASH_PAR_RSEQC_MODULES_CHOICES[*]}," =~ ",${val}," ]]; then + if ! [[ ";${VIASH_PAR_RSEQC_MODULES_CHOICES[*]};" =~ ";${val};" ]]; then ViashError '--rseqc_modules' specified value of \'${val}\' is not in the list of allowed values. Use "--help" to get more information on the parameters. exit 1 fi @@ -4347,6 +4383,9 @@ fi if [ ! -z "$VIASH_PAR_DESEQ2_OUTPUT" ] && [ ! -d "$(dirname "$VIASH_PAR_DESEQ2_OUTPUT")" ]; then mkdir -p "$(dirname "$VIASH_PAR_DESEQ2_OUTPUT")" fi +if [ ! -z "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO" ] && [ ! -d "$(dirname "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO")" +fi if [ ! -z "$VIASH_PAR_MULTIQC_REPORT" ] && [ ! -d "$(dirname "$VIASH_PAR_MULTIQC_REPORT")" ]; then mkdir -p "$(dirname "$VIASH_PAR_MULTIQC_REPORT")" fi @@ -4368,6 +4407,9 @@ fi if [ ! -z "$VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED" ] && [ ! -d "$(dirname "$VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED")" ]; then mkdir -p "$(dirname "$VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED")" fi +if [ ! -z "$VIASH_PAR_PSEUDO_TPM_GENE" ] && [ ! -d "$(dirname "$VIASH_PAR_PSEUDO_TPM_GENE")" ]; then + mkdir -p "$(dirname "$VIASH_PAR_PSEUDO_TPM_GENE")" +fi if [ ! -z "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT" ] && [ ! -d "$(dirname "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT")" ]; then mkdir -p "$(dirname "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT")" fi @@ -4422,22 +4464,22 @@ workflow run_wf { main: reference_ch = input_ch - | map { id, state -> - def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type - def filter_gtf = - ( - ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set - || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set - || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided - ) - && - ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided - [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] - } - - | toSortedList - - | map { list -> + | map { id, state -> + def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type + def filter_gtf = + ( + ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set + || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set + || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided + ) + && + ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided + [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] + } + + | toSortedList + + | map { list -> [ "ref", [ fasta: list.collect { id, state -> state.fasta }.unique()[0], gtf: list.collect { id, state -> state.gtf }.unique()[0], @@ -4463,184 +4505,438 @@ workflow run_wf { filter_gtf: list.collect { id, state -> state.filter_gtf }.unique()[0], pseudo_aligner_kmer_size: list.collect { id, state -> state.pseudo_aligner_kmer_size }.unique()[0] ] ] - } + } - // prepare all the necessary files for reference genome - | prepare_genome.run ( - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "gff": "gff", - "additional_fasta": "additional_fasta", - "transcript_fasta": "transcript_fasta", - "gene_bed": "gene_bed", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "star_index": "star_index", - "rsem_index": "rsem_index", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", - // "splicesites": "splicesites", - // "hisat2_index": "hisat2_index", - "bbsplit_index": "bbsplit_index", - "skip_bbsplit": "skip_bbsplit", - "gencode": "gencode", - "biotype": "biotype", - "filter_gtf": "filter_gtf", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "skip_alignment": "skip_alignment", - "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ - "fasta": "uncompressed_fasta", - "gtf": "gtf_uncompressed", - "transcript_fasta": "transcript_fasta_uncompressed", - "fai": "fai", - "chrom_sizes": "chrom_sizes", - "bbsplit_index": "bbsplit_index_uncompressed", - "star_index": "star_index_uncompressed", - "salmon_index": "salmon_index_uncompressed", - "kallisto_index": "kallisto_index_uncompressed", - "gene_bed": "gene_bed_uncompressed" - ] - ) + // prepare all the necessary files for reference genome + | prepare_genome.run ( + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "gff": "gff", + "additional_fasta": "additional_fasta", + "transcript_fasta": "transcript_fasta", + "gene_bed": "gene_bed", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "star_index": "star_index", + "rsem_index": "rsem_index", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", + // "splicesites": "splicesites", + // "hisat2_index": "hisat2_index", + "bbsplit_index": "bbsplit_index", + "skip_bbsplit": "skip_bbsplit", + "gencode": "gencode", + "biotype": "biotype", + "filter_gtf": "filter_gtf", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "skip_alignment": "skip_alignment", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "fasta": "uncompressed_fasta", + "gtf": "gtf_uncompressed", + "transcript_fasta": "transcript_fasta_uncompressed", + "fai": "fai", + "chrom_sizes": "chrom_sizes", + "bbsplit_index": "bbsplit_index_uncompressed", + "star_index": "star_index_uncompressed", + "salmon_index": "salmon_index_uncompressed", + "kallisto_index": "kallisto_index_uncompressed", + "gene_bed": "gene_bed_uncompressed" + ] + ) - // Check if contigs in genome fasta file > 512 Mbp - | map { id, state -> - (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] - } + // Check if contigs in genome fasta file > 512 Mbp + | map { id, state -> + (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] + } - | map { list -> list[1]} + | map { list -> list[1]} analysis_ch = input_ch - | combine(reference_ch) + | combine(reference_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - // Concatenate FastQ files from same sample if required - | cat_fastq.run ( - fromState: [ - "read_1": "fastq_1", - "read_2": "fastq_2" - ], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) + // Concatenate FastQ files from same sample if required + | cat_fastq.run ( + fromState: [ + "read_1": "fastq_1", + "read_2": "fastq_2" + ], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) - // Pre-process fastq files - | pre_processing.run ( - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "umitools_bc_pattern": "umitools_bc_pattern", - "umitools_bc_pattern2": "umitools_bc_pattern2", - "strandedness": "strandedness", - "transcript_fasta": "transcript_fasta", - "gtf": "gtf", - "with_umi": "with_umi", - "bbsplit_index": "bbsplit_index", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "bc_pattern": "bc_pattern", - "ribo_database_manifest": "ribo_database_manifest", - "salmon_index": "salmon_index", - "skip_qc": "skip_qc", - "skip_fastqc": "skip_fastqc", - "skip_skip_umi_extract": "skip_umi_extract", - "umi_discard_read": "umi_discard_read", - "skip_trimming": "skip_trimming", - "trimmer": "trimmer", - "skip_bbsplit": "skip_bbsplit", - "remove_ribo_rna": "remove_ribo_rna" - ], - toState: [ + // Pre-process fastq files + | pre_processing.run ( + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "umitools_bc_pattern": "umitools_bc_pattern", + "umitools_bc_pattern2": "umitools_bc_pattern2", + "strandedness": "strandedness", + "transcript_fasta": "transcript_fasta", + "gtf": "gtf", + "with_umi": "with_umi", + "bbsplit_index": "bbsplit_index", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "bc_pattern": "bc_pattern", + "ribo_database_manifest": "ribo_database_manifest", + "salmon_index": "salmon_index", + "skip_qc": "skip_qc", + "skip_fastqc": "skip_fastqc", + "skip_skip_umi_extract": "skip_umi_extract", + "umi_discard_read": "umi_discard_read", + "skip_trimming": "skip_trimming", + "trimmer": "trimmer", + "skip_bbsplit": "skip_bbsplit", + "remove_ribo_rna": "remove_ribo_rna" + ], + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "fastq_1": "qc_output1", + "fastq_2": "qc_output2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "passed_trimmed_reads": "passed_trimmed_reads", + "num_trimmed_reads": "num_trimmed_reads", + "sortmerna_log": "sortmerna_log", + "salmon_quant_output": "salmon_quant_output", + "fastp_failed_trim": "failed_trim", + "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", + "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", + "fastp_trim_json": "trim_json", + "fastp_trim_html": "trim_html", + "fastp_trim_merged_out": "trim_merged_out" + ] + ) + + // Infer strandedness from Salmon pseudo-alignment results + | map { id, state -> + (state.strandedness == 'auto') ? + [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : + [id, state] + } + + // Filter FastQ files based on minimum trimmed read count after adapter trimming + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def num_reads = (state.skip_trimming) ? + state.min_trimmed_reads + 1 : + ( + (state.trimmer == "fastp") ? + getFastpReadsAfterFiltering(state.fastp_trim_json) : + ( + (!state.skip_trimming && input.size() == 2) ? + getTrimGaloreReadsAfterFiltering(state.trim_log_2) : + getTrimGaloreReadsAfterFiltering(state.trim_log_1) + ) + ) + def passed_trimmed_reads = + (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? + true : + false + [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] + } + + // Genome alignment and quantification + | genome_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "bam_csi_index": "bam_csi_index", + "aligner": "aligner", + "rsem_index": "rsem_index", + "star_index": "star_index", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "salmon_quant_libtype": "salmon_quant_libtype", + "salmon_index": "salmon_index", + "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" + ] + ) + + // Filter channels to get samples that passed STAR minimum mapping percentage + | map { id, state -> + def percent_mapped = (!state.skip_alignment && state.passed_trimmed_reads) ? getStarPercentMapped(state.star_multiqc) : 0.0 + def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false + [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] + } + + // Pseudo-alignment and quantification + | pseudo_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "pseudo_aligner": "pseudo_aligner", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "extra_star_align_args": "extra_star_align_args", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "seq_platform": "seq_platform", + "seq_center": "seq_center", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "lib_type": "salmon_quant_libtype", + "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", + "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "pseudo_quant_out_dir": "quant_out_dir", + "pseudo_salmon_quant_results_file": "salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", + "pseudo_multiqc": "pseudo_multiqc" + ] + ) + + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired ] ] + } + + // Post-processing + | post_processing.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "fasta": "fasta", + "fai": "fai", + "gtf": "gtf", + "genome_bam": "genome_bam_sorted", + "chrom_sizes": "chrom_sizes", + "star_multiqc": "star_multiqc", + "extra_picard_args": "extra_picard_args", + "extra_stringtie_args": "extra_stringtie_args", + "stringtie_ignore_gtf": "stringtie_ignore_gtf", + "extra_bedtools_args": "extra_bedtools_args", + "bam_csi_index": "bam_csi_index", + "min_mapped_reads": "min_mapped_reads", + "with_umi": "with_umi", + "skip_qc": "skip_qc", + "skip_markduplicates": "skip_markduplicates", + "skip_stringtie": "skip_stringtie", + "skip_bigwig":"gencode" + ], + toState: [ + "genome_bam_sorted": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ] + ) + + // Final QC + | quality_control.run ( + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "skip_align": "skip_alignment", + "skip_pseudo_align": "skip_pseudo_alignment", + "skip_dupradar": "skip_dupradar", + "skip_qualimap": "skip_qualimap", + "skip_rseqc": "skip_rseqc", + "skip_multiqc": "skip_multiqc", + "skip_preseq": "skip_preseq", + "gtf": "gtf", + "num_trimmed_reads": "num_trimmed_reads", + "passed_trimmed_reads": "passed_trimmed_reads", + "passed_mapping": "passed_mapping", + "percent_mapped": "percent_mapped", + "genome_bam": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "salmon_multiqc": "salmon_multiqc", + "quant_results_file": "quant_results_file", + "rsem_multiqc": "rsem_multiqc", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "pseudo_multiqc": "pseudo_multiqc", + "pseudo_quant_out_dir": "pseudo_quant_out_dir", + "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "gene_bed": "gene_bed", + "extra_preseq_args": "extra_preseq_args", + "biotype": "biotype", + "skip_biotype_qc": "skip_biotype_qc", + "featurecounts_group_type": "featurecounts_group_type", + "featurecounts_feature_type": "featurecounts_feature_type", + "gencode": "gencode", + "skip_deseq2_qc": "skip_deseq2_qc", + "deseq2_vst": "deseq2_vst", + "multiqc_custom_config": "multiqc_custom_config", + "multiqc_title": "multiqc_title", + "multiqc_methods_description": "multiqc_methods_description", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "sortmerna_multiqc": "sortmerna_log", + "star_multiqc": "star_multiqc", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_metrics", + "rseqc_modules": "rseqc_modules" + ], + toState: [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ + "output_fasta": "fasta", + "output_gtf": "gtf", + "output_transcript_fasta": "transcript_fasta", + "output_gene_bed": "gene_bed", + "output_bbsplit_index": "bbsplit_index", + "output_star_index": "star_index", + "output_salmon_index": "salmon_index", + "output_kallisto_index": "kallisto_index", "fastqc_html_1": "fastqc_html_1", "fastqc_html_2": "fastqc_html_2", "fastqc_zip_1": "fastqc_zip_1", "fastqc_zip_2": "fastqc_zip_2", - "fastq_1": "qc_output1", - "fastq_2": "qc_output2", + "output_fastq_1": "fastq_1", + "output_fastq_2": "fastq_2", "trim_log_1": "trim_log_1", "trim_log_2": "trim_log_2", "trim_zip_1": "trim_zip_1", "trim_zip_2": "trim_zip_2", "trim_html_1": "trim_html_1", "trim_html_2": "trim_html_2", - "passed_trimmed_reads": "passed_trimmed_reads", - "num_trimmed_reads": "num_trimmed_reads", "sortmerna_log": "sortmerna_log", - "salmon_quant_output": "salmon_quant_output", - "fastp_failed_trim": "failed_trim", - "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", - "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", - "fastp_trim_json": "trim_json", - "fastp_trim_html": "trim_html", - "fastp_trim_merged_out": "trim_merged_out" - ] - ) - - // Infer strandedness from Salmon pseudo-alignment results - | map { id, state -> - (state.strandedness == 'auto') ? - [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : - [id, state] - } - - // Filter FastQ files based on minimum trimmed read count after adapter trimming - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def num_reads = (state.skip_trimming) ? - state.min_trimmed_reads + 1 : - ( - (state.trimmer == "fastp") ? - getFastpReadsAfterFiltering(state.fastp_trim_json) : - ( - (!state.skip_trimming && input.size() == 2) ? - getTrimGaloreReadsAfterFiltering(state.trim_log_2) : - getTrimGaloreReadsAfterFiltering(state.trim_log_1) - ) - ) - def passed_trimmed_reads = - (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? - true : - false - [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] - } - - // Genome alignment and quantification - | genome_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "bam_csi_index": "bam_csi_index", - "aligner": "aligner", - "rsem_index": "rsem_index", - "star_index": "star_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "salmon_quant_libtype": "salmon_quant_libtype", - "salmon_index": "salmon_index", - "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", + "star_log": "star_multiqc", "genome_bam_sorted": "genome_bam_sorted", "genome_bam_index": "genome_bam_index", "genome_bam_stats": "genome_bam_stats", @@ -4651,162 +4947,21 @@ workflow run_wf { "transcriptome_bam_stats": "transcriptome_bam_stats", "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" - ] - ) - - // Filter channels to get samples that passed STAR minimum mapping percentage - | map { id, state -> - def percent_mapped = (!state.skip_alignment) ? getStarPercentMapped(state.star_multiqc) : 0.0 - def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false - [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] - } - - // Pseudo-alignment and quantification - | pseudo_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "pseudo_aligner": "pseudo_aligner", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "lib_type": "salmon_quant_libtype", - "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", - "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "pseudo_quant_out_dir": "quant_out_dir", - "pseudo_salmon_quant_results_file": "salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", - "pseudo_multiqc": "pseudo_multiqc" - ] - ) - - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired ] ] - } - - // Post-processing - | post_processing.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "fasta": "fasta", - "fai": "fai", - "gtf": "gtf", - "genome_bam": "genome_bam_sorted", - "chrom_sizes": "chrom_sizes", - "star_multiqc": "star_multiqc", - "extra_picard_args": "extra_picard_args", - "extra_stringtie_args": "extra_stringtie_args", - "stringtie_ignore_gtf": "stringtie_ignore_gtf", - "extra_bedtools_args": "extra_bedtools_args", - "bam_csi_index": "bam_csi_index", - "min_mapped_reads": "min_mapped_reads", - "with_umi": "with_umi", - "skip_qc": "skip_qc", - "skip_markduplicates": "skip_markduplicates", - "skip_stringtie": "skip_stringtie", - "skip_bigwig":"gencode" - ], - toState: [ - "genome_bam_sorted": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", + "salmon_quant_results": "quant_out_dir", + "pseudo_quant_results": "pseudo_quant_out_dir", "markduplicates_metrics": "markduplicates_metrics", "stringtie_transcript_gtf": "stringtie_transcript_gtf", "stringtie_coverage_gtf": "stringtie_coverage_gtf", "stringtie_abundance": "stringtie_abundance", "stringtie_ballgown": "stringtie_ballgown", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", "bedgraph_forward": "bedgraph_forward", "bedgraph_reverse": "bedgraph_reverse", "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ] - ) - - // Final QC - | quality_control.run ( - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "skip_align": "skip_alignment", - "skip_pseudo_align": "skip_pseudo_alignment", - "skip_dupradar": "skip_dupradar", - "skip_qualimap": "skip_qualimap", - "skip_rseqc": "skip_rseqc", - "skip_multiqc": "skip_multiqc", - "skip_preseq": "skip_preseq", - "gtf": "gtf", - "num_trimmed_reads": "num_trimmed_reads", - "passed_trimmed_reads": "passed_trimmed_reads", - "passed_mapping": "passed_mapping", - "percent_mapped": "percent_mapped", - "genome_bam": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "salmon_multiqc": "salmon_multiqc", - "quant_results_file": "quant_results_file", - "rsem_multiqc": "rsem_multiqc", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "pseudo_multiqc": "pseudo_multiqc", - "pseudo_quant_out_dir": "pseudo_quant_out_dir", - "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "gene_bed": "gene_bed", - "extra_preseq_args": "extra_preseq_args", - "biotype": "biotype", - "skip_biotype_qc": "skip_biotype_qc", - "featurecounts_group_type": "featurecounts_group_type", - "featurecounts_feature_type": "featurecounts_feature_type", - "gencode": "gencode", - "skip_deseq2_qc": "skip_deseq2_qc", - "deseq2_vst": "deseq2_vst", - "multiqc_custom_config": "multiqc_custom_config", - "multiqc_title": "multiqc_title", - "multiqc_methods_description": "multiqc_methods_description", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "sortmerna_multiqc": "sortmerna_log", - "star_multiqc": "star_multiqc", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_metrics", - "rseqc_modules": "rseqc_modules" - ], - toState: [ + "bigwig_reverse": "bigwig_reverse", "preseq_output": "preseq_output", "bamstat_output": "bamstat_output", "strandedness_output": "strandedness_output", @@ -4839,140 +4994,33 @@ workflow run_wf { "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "qualimap_output_pdf": "qualimap_output_pdf", "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", "multiqc_report": "multiqc_report", "multiqc_data": "multiqc_data", "multiqc_plots": "multiqc_plots" - ] - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - [ - "output_fasta": "fasta", - "output_gtf": "gtf", - "output_transcript_fasta": "transcript_fasta", - "output_gene_bed": "gene_bed", - "output_bbsplit_index": "bbsplit_index", - "output_star_index": "star_index", - "output_salmon_index": "salmon_index", - "output_kallisto_index": "kallisto_index", - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "output_fastq_1": "fastq_1", - "output_fastq_2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "star_log": "star_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "salmon_quant_results": "quant_out_dir", - "pseudo_quant_results": "pseudo_quant_out_dir", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse", - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) - - output_ch = analysis_ch + ] + ) emit: - output_ch + analysis_ch } import nextflow.Nextflow @@ -5378,6 +5426,10 @@ if [ ! -z "$VIASH_PAR_DESEQ2_OUTPUT" ] && [ ! -e "$VIASH_PAR_DESEQ2_OUTPUT" ]; t ViashError "Output file '$VIASH_PAR_DESEQ2_OUTPUT' does not exist." exit 1 fi +if [ ! -z "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO" ] && [ ! -e "$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO" ]; then + ViashError "Output file '$VIASH_PAR_DESEQ2_OUTPUT_PSEUDO' does not exist." + exit 1 +fi if [ ! -z "$VIASH_PAR_MULTIQC_REPORT" ] && [ ! -e "$VIASH_PAR_MULTIQC_REPORT" ]; then ViashError "Output file '$VIASH_PAR_MULTIQC_REPORT' does not exist." exit 1 @@ -5406,6 +5458,10 @@ if [ ! -z "$VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED" ] && [ ! -e "$VIASH_PAR_PSEUDO_ ViashError "Output file '$VIASH_PAR_PSEUDO_COUNTS_GENE_SCALED' does not exist." exit 1 fi +if [ ! -z "$VIASH_PAR_PSEUDO_TPM_GENE" ] && [ ! -e "$VIASH_PAR_PSEUDO_TPM_GENE" ]; then + ViashError "Output file '$VIASH_PAR_PSEUDO_TPM_GENE' does not exist." + exit 1 +fi if [ ! -z "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT" ] && [ ! -e "$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT" ]; then ViashError "Output file '$VIASH_PAR_PSEUDO_TPM_TRANSCRIPT' does not exist." exit 1 diff --git a/target/nextflow/bbmap_bbsplit/.config.vsh.yaml b/target/nextflow/bbmap_bbsplit/.config.vsh.yaml index 539185a..faf328e 100644 --- a/target/nextflow/bbmap_bbsplit/.config.vsh.yaml +++ b/target/nextflow/bbmap_bbsplit/.config.vsh.yaml @@ -238,8 +238,8 @@ build_info: output: "target/nextflow/bbmap_bbsplit" executable: "target/nextflow/bbmap_bbsplit/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/bbmap_bbsplit/main.nf b/target/nextflow/bbmap_bbsplit/main.nf index 14e70a5..d4ed73d 100644 --- a/target/nextflow/bbmap_bbsplit/main.nf +++ b/target/nextflow/bbmap_bbsplit/main.nf @@ -3104,8 +3104,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/bbmap_bbsplit", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/bbmap_bbsplit/nextflow_schema.json b/target/nextflow/bbmap_bbsplit/nextflow_schema.json index d2c006d..450686b 100644 --- a/target/nextflow/bbmap_bbsplit/nextflow_schema.json +++ b/target/nextflow/bbmap_bbsplit/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `boolean`, default: `false`. Paired fastq files or not?", "help_text": "Type: `boolean`, default: `false`. Paired fastq files or not?" , - "default": "False" + "default":false } @@ -101,7 +101,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_1.fastq`. Output file for read 1", "help_text": "Type: `file`, default: `$id.$key.fastq_1.fastq`. Output file for read 1." , - "default": "$id.$key.fastq_1.fastq" + "default":"$id.$key.fastq_1.fastq" } @@ -112,7 +112,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2", "help_text": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2." , - "default": "$id.$key.fastq_2.fastq" + "default":"$id.$key.fastq_2.fastq" } @@ -123,7 +123,7 @@ "description": "Type: `file`, default: `$id.$key.bbsplit_index.bbsplit_index`. Directory with index files", "help_text": "Type: `file`, default: `$id.$key.bbsplit_index.bbsplit_index`. Directory with index files" , - "default": "$id.$key.bbsplit_index.bbsplit_index" + "default":"$id.$key.bbsplit_index.bbsplit_index" } diff --git a/target/nextflow/bedtools_genomecov/.config.vsh.yaml b/target/nextflow/bedtools_genomecov/.config.vsh.yaml index 0ebd6a2..6e5d619 100644 --- a/target/nextflow/bedtools_genomecov/.config.vsh.yaml +++ b/target/nextflow/bedtools_genomecov/.config.vsh.yaml @@ -178,8 +178,8 @@ build_info: output: "target/nextflow/bedtools_genomecov" executable: "target/nextflow/bedtools_genomecov/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/bedtools_genomecov/main.nf b/target/nextflow/bedtools_genomecov/main.nf index 87273ad..1379d70 100644 --- a/target/nextflow/bedtools_genomecov/main.nf +++ b/target/nextflow/bedtools_genomecov/main.nf @@ -3031,8 +3031,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/bedtools_genomecov", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/bedtools_genomecov/nextflow_schema.json b/target/nextflow/bedtools_genomecov/nextflow_schema.json index 58ca8b7..311b6f8 100644 --- a/target/nextflow/bedtools_genomecov/nextflow_schema.json +++ b/target/nextflow/bedtools_genomecov/nextflow_schema.json @@ -42,7 +42,7 @@ "description": "Type: `string`, default: ``. ", "help_text": "Type: `string`, default: ``. " , - "default": "" + "default":"" } @@ -63,7 +63,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. " , - "default": "$id.$key.bedgraph_forward.bedgraph" + "default":"$id.$key.bedgraph_forward.bedgraph" } @@ -74,7 +74,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. " , - "default": "$id.$key.bedgraph_reverse.bedgraph" + "default":"$id.$key.bedgraph_reverse.bedgraph" } diff --git a/target/nextflow/cat_additional_fasta/.config.vsh.yaml b/target/nextflow/cat_additional_fasta/.config.vsh.yaml index 32cd1dc..441686f 100644 --- a/target/nextflow/cat_additional_fasta/.config.vsh.yaml +++ b/target/nextflow/cat_additional_fasta/.config.vsh.yaml @@ -182,8 +182,8 @@ build_info: output: "target/nextflow/cat_additional_fasta" executable: "target/nextflow/cat_additional_fasta/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/cat_additional_fasta/main.nf b/target/nextflow/cat_additional_fasta/main.nf index 61eafe5..64bce87 100644 --- a/target/nextflow/cat_additional_fasta/main.nf +++ b/target/nextflow/cat_additional_fasta/main.nf @@ -3032,8 +3032,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/cat_additional_fasta", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/cat_additional_fasta/nextflow_schema.json b/target/nextflow/cat_additional_fasta/nextflow_schema.json index 43c1747..61a5eee 100644 --- a/target/nextflow/cat_additional_fasta/nextflow_schema.json +++ b/target/nextflow/cat_additional_fasta/nextflow_schema.json @@ -70,7 +70,7 @@ "description": "Type: `file`, default: `$id.$key.fasta_output.fasta_output`. Concatenated FASTA file", "help_text": "Type: `file`, default: `$id.$key.fasta_output.fasta_output`. Concatenated FASTA file." , - "default": "$id.$key.fasta_output.fasta_output" + "default":"$id.$key.fasta_output.fasta_output" } @@ -81,7 +81,7 @@ "description": "Type: `file`, default: `$id.$key.gtf_output.gtf_output`. Concatenated GTF file", "help_text": "Type: `file`, default: `$id.$key.gtf_output.gtf_output`. Concatenated GTF file." , - "default": "$id.$key.gtf_output.gtf_output" + "default":"$id.$key.gtf_output.gtf_output" } diff --git a/target/nextflow/cat_fastq/.config.vsh.yaml b/target/nextflow/cat_fastq/.config.vsh.yaml index e0e431c..873a150 100644 --- a/target/nextflow/cat_fastq/.config.vsh.yaml +++ b/target/nextflow/cat_fastq/.config.vsh.yaml @@ -169,8 +169,8 @@ build_info: output: "target/nextflow/cat_fastq" executable: "target/nextflow/cat_fastq/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/cat_fastq/main.nf b/target/nextflow/cat_fastq/main.nf index f503839..78c1104 100644 --- a/target/nextflow/cat_fastq/main.nf +++ b/target/nextflow/cat_fastq/main.nf @@ -3023,8 +3023,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/cat_fastq", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/cat_fastq/nextflow_schema.json b/target/nextflow/cat_fastq/nextflow_schema.json index 800cc2b..af6d77a 100644 --- a/target/nextflow/cat_fastq/nextflow_schema.json +++ b/target/nextflow/cat_fastq/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_1.fastq`. Concatenated read 1 fastq", "help_text": "Type: `file`, default: `$id.$key.fastq_1.fastq`. Concatenated read 1 fastq" , - "default": "$id.$key.fastq_1.fastq" + "default":"$id.$key.fastq_1.fastq" } @@ -61,7 +61,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Concatenated read 2 fastq", "help_text": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Concatenated read 2 fastq" , - "default": "$id.$key.fastq_2.fastq" + "default":"$id.$key.fastq_2.fastq" } diff --git a/target/nextflow/deseq2_qc/.config.vsh.yaml b/target/nextflow/deseq2_qc/.config.vsh.yaml index 6d6f64e..a45a81d 100644 --- a/target/nextflow/deseq2_qc/.config.vsh.yaml +++ b/target/nextflow/deseq2_qc/.config.vsh.yaml @@ -237,8 +237,8 @@ build_info: output: "target/nextflow/deseq2_qc" executable: "target/nextflow/deseq2_qc/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/deseq2_qc/main.nf b/target/nextflow/deseq2_qc/main.nf index b9efb3f..ccbcdac 100644 --- a/target/nextflow/deseq2_qc/main.nf +++ b/target/nextflow/deseq2_qc/main.nf @@ -3104,8 +3104,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/deseq2_qc", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/deseq2_qc/nextflow_schema.json b/target/nextflow/deseq2_qc/nextflow_schema.json index 8bd6fa4..828a82f 100644 --- a/target/nextflow/deseq2_qc/nextflow_schema.json +++ b/target/nextflow/deseq2_qc/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `boolean`, default: `false`. Use vst transformation instead of rlog with ", "help_text": "Type: `boolean`, default: `false`. Use vst transformation instead of rlog with .DESeq2" , - "default": "False" + "default":false } @@ -41,7 +41,7 @@ "description": "Type: `integer`, default: `3`. First column containing sample count data", "help_text": "Type: `integer`, default: `3`. First column containing sample count data." , - "default": "3" + "default":3 } @@ -52,7 +52,7 @@ "description": "Type: `integer`, default: `1`. Column containing identifiers to be used", "help_text": "Type: `integer`, default: `1`. Column containing identifiers to be used." , - "default": "1" + "default":1 } @@ -63,7 +63,7 @@ "description": "Type: `string`, default: ``. Suffix to remove after sample name in columns e", "help_text": "Type: `string`, default: ``. Suffix to remove after sample name in columns e.g. \u0027.rmDup.bam\u0027 if \u0027DRUG_R1.rmDup.bam\u0027." , - "default": "" + "default":"" } @@ -74,7 +74,7 @@ "description": "Type: `string`, default: `deseq2`. Output prefix", "help_text": "Type: `string`, default: `deseq2`. Output prefix" , - "default": "deseq2" + "default":"deseq2" } @@ -105,7 +105,7 @@ "description": "Type: `file`, default: `$id.$key.outdir.outdir`. ", "help_text": "Type: `file`, default: `$id.$key.outdir.outdir`. " , - "default": "$id.$key.outdir.outdir" + "default":"$id.$key.outdir.outdir" } @@ -116,7 +116,7 @@ "description": "Type: `file`, default: `$id.$key.pca_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pca_multiqc.tsv`. " , - "default": "$id.$key.pca_multiqc.tsv" + "default":"$id.$key.pca_multiqc.tsv" } @@ -127,7 +127,7 @@ "description": "Type: `file`, default: `$id.$key.sample_dists_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.sample_dists_multiqc.tsv`. " , - "default": "$id.$key.sample_dists_multiqc.tsv" + "default":"$id.$key.sample_dists_multiqc.tsv" } diff --git a/target/nextflow/dupradar/.config.vsh.yaml b/target/nextflow/dupradar/.config.vsh.yaml index 65366fa..540280b 100644 --- a/target/nextflow/dupradar/.config.vsh.yaml +++ b/target/nextflow/dupradar/.config.vsh.yaml @@ -266,8 +266,8 @@ build_info: output: "target/nextflow/dupradar" executable: "target/nextflow/dupradar/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/dupradar/main.nf b/target/nextflow/dupradar/main.nf index 01a2acf..df68edd 100644 --- a/target/nextflow/dupradar/main.nf +++ b/target/nextflow/dupradar/main.nf @@ -3136,8 +3136,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/dupradar", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/dupradar/nextflow_schema.json b/target/nextflow/dupradar/nextflow_schema.json index cd113eb..d5c3ad3 100644 --- a/target/nextflow/dupradar/nextflow_schema.json +++ b/target/nextflow/dupradar/nextflow_schema.json @@ -82,7 +82,7 @@ "description": "Type: `file`, default: `$id.$key.output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts" , - "default": "$id.$key.output_dupmatrix.txt" + "default":"$id.$key.output_dupmatrix.txt" } @@ -93,7 +93,7 @@ "description": "Type: `file`, default: `$id.$key.output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar", "help_text": "Type: `file`, default: `$id.$key.output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar" , - "default": "$id.$key.output_dup_intercept_mqc.txt" + "default":"$id.$key.output_dup_intercept_mqc.txt" } @@ -104,7 +104,7 @@ "description": "Type: `file`, default: `$id.$key.output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot", "help_text": "Type: `file`, default: `$id.$key.output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot" , - "default": "$id.$key.output_duprate_exp_boxplot.pdf" + "default":"$id.$key.output_duprate_exp_boxplot.pdf" } @@ -115,7 +115,7 @@ "description": "Type: `file`, default: `$id.$key.output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts" , - "default": "$id.$key.output_duprate_exp_densplot.pdf" + "default":"$id.$key.output_duprate_exp_densplot.pdf" } @@ -126,7 +126,7 @@ "description": "Type: `file`, default: `$id.$key.output_duprate_exp_denscurve_mqc.txt`. path to output file (pdf) of density curve of gene duplication multiqc", "help_text": "Type: `file`, default: `$id.$key.output_duprate_exp_denscurve_mqc.txt`. path to output file (pdf) of density curve of gene duplication multiqc" , - "default": "$id.$key.output_duprate_exp_denscurve_mqc.txt" + "default":"$id.$key.output_duprate_exp_denscurve_mqc.txt" } @@ -137,7 +137,7 @@ "description": "Type: `file`, default: `$id.$key.output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram", "help_text": "Type: `file`, default: `$id.$key.output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram" , - "default": "$id.$key.output_expression_histogram.pdf" + "default":"$id.$key.output_expression_histogram.pdf" } @@ -148,7 +148,7 @@ "description": "Type: `file`, default: `$id.$key.output_intercept_slope.txt`. output file (txt) with progression of duplication rate value", "help_text": "Type: `file`, default: `$id.$key.output_intercept_slope.txt`. output file (txt) with progression of duplication rate value" , - "default": "$id.$key.output_intercept_slope.txt" + "default":"$id.$key.output_intercept_slope.txt" } diff --git a/target/nextflow/fastqc/.config.vsh.yaml b/target/nextflow/fastqc/.config.vsh.yaml index 3a6a22b..aae4bd1 100644 --- a/target/nextflow/fastqc/.config.vsh.yaml +++ b/target/nextflow/fastqc/.config.vsh.yaml @@ -198,8 +198,8 @@ build_info: output: "target/nextflow/fastqc" executable: "target/nextflow/fastqc/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/fastqc/main.nf b/target/nextflow/fastqc/main.nf index c2b530f..5832da6 100644 --- a/target/nextflow/fastqc/main.nf +++ b/target/nextflow/fastqc/main.nf @@ -3056,8 +3056,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/fastqc", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/fastqc/nextflow_schema.json b/target/nextflow/fastqc/nextflow_schema.json index 593cc46..868796b 100644 --- a/target/nextflow/fastqc/nextflow_schema.json +++ b/target/nextflow/fastqc/nextflow_schema.json @@ -20,7 +20,7 @@ "description": "Type: `boolean`, default: `false`. Paired fastq files or not?", "help_text": "Type: `boolean`, default: `false`. Paired fastq files or not?" , - "default": "False" + "default":false } @@ -51,7 +51,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1." , - "default": "$id.$key.fastqc_html_1.html" + "default":"$id.$key.fastqc_html_1.html" } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2." , - "default": "$id.$key.fastqc_html_2.html" + "default":"$id.$key.fastqc_html_2.html" } @@ -73,7 +73,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1." , - "default": "$id.$key.fastqc_zip_1.zip" + "default":"$id.$key.fastqc_zip_1.zip" } @@ -84,7 +84,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2." , - "default": "$id.$key.fastqc_zip_2.zip" + "default":"$id.$key.fastqc_zip_2.zip" } diff --git a/target/nextflow/fq_subsample/.config.vsh.yaml b/target/nextflow/fq_subsample/.config.vsh.yaml index 80ceb42..6e33193 100644 --- a/target/nextflow/fq_subsample/.config.vsh.yaml +++ b/target/nextflow/fq_subsample/.config.vsh.yaml @@ -177,8 +177,8 @@ build_info: output: "target/nextflow/fq_subsample" executable: "target/nextflow/fq_subsample/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/fq_subsample/main.nf b/target/nextflow/fq_subsample/main.nf index f1342b2..ce49995 100644 --- a/target/nextflow/fq_subsample/main.nf +++ b/target/nextflow/fq_subsample/main.nf @@ -3027,8 +3027,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/fq_subsample", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/fq_subsample/nextflow_schema.json b/target/nextflow/fq_subsample/nextflow_schema.json index 920835a..0a22405 100644 --- a/target/nextflow/fq_subsample/nextflow_schema.json +++ b/target/nextflow/fq_subsample/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to fq subsample", "help_text": "Type: `string`, default: ``. Extra arguments to pass to fq subsample" , - "default": "" + "default":"" } @@ -51,7 +51,7 @@ "description": "Type: `file`, default: `$id.$key.output_1.fastq`. Sampled read 1 fastq files", "help_text": "Type: `file`, default: `$id.$key.output_1.fastq`. Sampled read 1 fastq files" , - "default": "$id.$key.output_1.fastq" + "default":"$id.$key.output_1.fastq" } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.output_2.fastq`. Sampled read 2 fastq files", "help_text": "Type: `file`, default: `$id.$key.output_2.fastq`. Sampled read 2 fastq files" , - "default": "$id.$key.output_2.fastq" + "default":"$id.$key.output_2.fastq" } diff --git a/target/nextflow/getchromsizes/.config.vsh.yaml b/target/nextflow/getchromsizes/.config.vsh.yaml index 70bb81f..5fd4996 100644 --- a/target/nextflow/getchromsizes/.config.vsh.yaml +++ b/target/nextflow/getchromsizes/.config.vsh.yaml @@ -167,8 +167,8 @@ build_info: output: "target/nextflow/getchromsizes" executable: "target/nextflow/getchromsizes/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/getchromsizes/main.nf b/target/nextflow/getchromsizes/main.nf index 3706f95..558cede 100644 --- a/target/nextflow/getchromsizes/main.nf +++ b/target/nextflow/getchromsizes/main.nf @@ -3013,8 +3013,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/getchromsizes", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/getchromsizes/nextflow_schema.json b/target/nextflow/getchromsizes/nextflow_schema.json index da770aa..f6a05b2 100644 --- a/target/nextflow/getchromsizes/nextflow_schema.json +++ b/target/nextflow/getchromsizes/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `file`, default: `$id.$key.sizes.sizes`. File containing chromosome lengths", "help_text": "Type: `file`, default: `$id.$key.sizes.sizes`. File containing chromosome lengths" , - "default": "$id.$key.sizes.sizes" + "default":"$id.$key.sizes.sizes" } @@ -51,7 +51,7 @@ "description": "Type: `file`, default: `$id.$key.fai.fai`. FASTA index file", "help_text": "Type: `file`, default: `$id.$key.fai.fai`. FASTA index file" , - "default": "$id.$key.fai.fai" + "default":"$id.$key.fai.fai" } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.gzi.gzi`. Optional gzip index file for compressed inputs", "help_text": "Type: `file`, default: `$id.$key.gzi.gzi`. Optional gzip index file for compressed inputs" , - "default": "$id.$key.gzi.gzi" + "default":"$id.$key.gzi.gzi" } diff --git a/target/nextflow/gtf2bed/.config.vsh.yaml b/target/nextflow/gtf2bed/.config.vsh.yaml index 14eca13..ec0e69d 100644 --- a/target/nextflow/gtf2bed/.config.vsh.yaml +++ b/target/nextflow/gtf2bed/.config.vsh.yaml @@ -145,8 +145,8 @@ build_info: output: "target/nextflow/gtf2bed" executable: "target/nextflow/gtf2bed/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/gtf2bed/main.nf b/target/nextflow/gtf2bed/main.nf index ee3600c..37a312d 100644 --- a/target/nextflow/gtf2bed/main.nf +++ b/target/nextflow/gtf2bed/main.nf @@ -2995,8 +2995,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/gtf2bed", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/gtf2bed/nextflow_schema.json b/target/nextflow/gtf2bed/nextflow_schema.json index a151d8e..ae24eac 100644 --- a/target/nextflow/gtf2bed/nextflow_schema.json +++ b/target/nextflow/gtf2bed/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `file`, required, default: `$id.$key.bed_output.bed_output`. BED file resulting from the conversion of the GTF input file", "help_text": "Type: `file`, required, default: `$id.$key.bed_output.bed_output`. BED file resulting from the conversion of the GTF input file." , - "default": "$id.$key.bed_output.bed_output" + "default":"$id.$key.bed_output.bed_output" } diff --git a/target/nextflow/gtf_filter/.config.vsh.yaml b/target/nextflow/gtf_filter/.config.vsh.yaml index fcb49a6..deb2a32 100644 --- a/target/nextflow/gtf_filter/.config.vsh.yaml +++ b/target/nextflow/gtf_filter/.config.vsh.yaml @@ -155,8 +155,8 @@ build_info: output: "target/nextflow/gtf_filter" executable: "target/nextflow/gtf_filter/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/gtf_filter/main.nf b/target/nextflow/gtf_filter/main.nf index fa2ffda..d72bb20 100644 --- a/target/nextflow/gtf_filter/main.nf +++ b/target/nextflow/gtf_filter/main.nf @@ -3003,8 +3003,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/gtf_filter", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/gtf_filter/nextflow_schema.json b/target/nextflow/gtf_filter/nextflow_schema.json index aaf4b67..ded4692 100644 --- a/target/nextflow/gtf_filter/nextflow_schema.json +++ b/target/nextflow/gtf_filter/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip checking for transcript IDs in the GTF file", "help_text": "Type: `boolean_true`, default: `false`. Skip checking for transcript IDs in the GTF file." , - "default": "False" + "default":false } @@ -61,7 +61,7 @@ "description": "Type: `file`, default: `$id.$key.filtered_gtf.filtered_gtf`. Filtered GTF file containing only sequences in the FASTA file", "help_text": "Type: `file`, default: `$id.$key.filtered_gtf.filtered_gtf`. Filtered GTF file containing only sequences in the FASTA file" , - "default": "$id.$key.filtered_gtf.filtered_gtf" + "default":"$id.$key.filtered_gtf.filtered_gtf" } diff --git a/target/nextflow/gunzip/.config.vsh.yaml b/target/nextflow/gunzip/.config.vsh.yaml index 00cb87e..2174f74 100644 --- a/target/nextflow/gunzip/.config.vsh.yaml +++ b/target/nextflow/gunzip/.config.vsh.yaml @@ -144,8 +144,8 @@ build_info: output: "target/nextflow/gunzip" executable: "target/nextflow/gunzip/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/gunzip/main.nf b/target/nextflow/gunzip/main.nf index f1aefcf..b8f2e1d 100644 --- a/target/nextflow/gunzip/main.nf +++ b/target/nextflow/gunzip/main.nf @@ -2992,8 +2992,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/gunzip", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/gunzip/nextflow_schema.json b/target/nextflow/gunzip/nextflow_schema.json index d1639ae..19860ae 100644 --- a/target/nextflow/gunzip/nextflow_schema.json +++ b/target/nextflow/gunzip/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `file`, required, default: `$id.$key.output.output`. Decompressed file", "help_text": "Type: `file`, required, default: `$id.$key.output.output`. Decompressed file." , - "default": "$id.$key.output.output" + "default":"$id.$key.output.output" } diff --git a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml index d9b2a6a..cdb6b2e 100644 --- a/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_index/.config.vsh.yaml @@ -155,8 +155,8 @@ build_info: output: "target/nextflow/kallisto/kallisto_index" executable: "target/nextflow/kallisto/kallisto_index/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/kallisto/kallisto_index/main.nf b/target/nextflow/kallisto/kallisto_index/main.nf index 2ed66ab..d1bc960 100644 --- a/target/nextflow/kallisto/kallisto_index/main.nf +++ b/target/nextflow/kallisto/kallisto_index/main.nf @@ -3002,8 +3002,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/kallisto/kallisto_index", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/kallisto/kallisto_index/nextflow_schema.json b/target/nextflow/kallisto/kallisto_index/nextflow_schema.json index c2651b0..837bc7c 100644 --- a/target/nextflow/kallisto/kallisto_index/nextflow_schema.json +++ b/target/nextflow/kallisto/kallisto_index/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.kallisto_index.kallisto_index`. ", "help_text": "Type: `file`, default: `$id.$key.kallisto_index.kallisto_index`. " , - "default": "$id.$key.kallisto_index.kallisto_index" + "default":"$id.$key.kallisto_index.kallisto_index" } diff --git a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml index aebf810..7c68ac7 100644 --- a/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml +++ b/target/nextflow/kallisto/kallisto_quant/.config.vsh.yaml @@ -253,8 +253,8 @@ build_info: output: "target/nextflow/kallisto/kallisto_quant" executable: "target/nextflow/kallisto/kallisto_quant/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/kallisto/kallisto_quant/main.nf b/target/nextflow/kallisto/kallisto_quant/main.nf index f57d0a3..e06fd56 100644 --- a/target/nextflow/kallisto/kallisto_quant/main.nf +++ b/target/nextflow/kallisto/kallisto_quant/main.nf @@ -3114,8 +3114,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/kallisto/kallisto_quant", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/kallisto/kallisto_quant/nextflow_schema.json b/target/nextflow/kallisto/kallisto_quant/nextflow_schema.json index 91ca2a2..14f0600 100644 --- a/target/nextflow/kallisto/kallisto_quant/nextflow_schema.json +++ b/target/nextflow/kallisto/kallisto_quant/nextflow_schema.json @@ -110,7 +110,7 @@ "description": "Type: `file`, default: `$id.$key.output.kallisto_quant_results`. Kallisto quant results", "help_text": "Type: `file`, default: `$id.$key.output.kallisto_quant_results`. Kallisto quant results" , - "default": "$id.$key.output.kallisto_quant_results" + "default":"$id.$key.output.kallisto_quant_results" } @@ -121,7 +121,7 @@ "description": "Type: `file`, default: `$id.$key.log.txt`. File containing log information from running kallisto quant", "help_text": "Type: `file`, default: `$id.$key.log.txt`. File containing log information from running kallisto quant" , - "default": "$id.$key.log.txt" + "default":"$id.$key.log.txt" } @@ -132,7 +132,7 @@ "description": "Type: `file`, default: `$id.$key.run_info.json`. A json file containing information about the run", "help_text": "Type: `file`, default: `$id.$key.run_info.json`. A json file containing information about the run" , - "default": "$id.$key.run_info.json" + "default":"$id.$key.run_info.json" } @@ -143,7 +143,7 @@ "description": "Type: `file`, default: `$id.$key.quant_results_file.tsv`. TSV file containing abundance estimates from Kallisto", "help_text": "Type: `file`, default: `$id.$key.quant_results_file.tsv`. TSV file containing abundance estimates from Kallisto" , - "default": "$id.$key.quant_results_file.tsv" + "default":"$id.$key.quant_results_file.tsv" } diff --git a/target/nextflow/multiqc_custom_biotype/.config.vsh.yaml b/target/nextflow/multiqc_custom_biotype/.config.vsh.yaml index bfadbd3..afa6beb 100644 --- a/target/nextflow/multiqc_custom_biotype/.config.vsh.yaml +++ b/target/nextflow/multiqc_custom_biotype/.config.vsh.yaml @@ -64,6 +64,10 @@ resources: - type: "file" path: "biotypes_header.txt" description: "Calculate features percentage for biotype counts" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: null status: "enabled" requirements: @@ -161,8 +165,8 @@ build_info: output: "target/nextflow/multiqc_custom_biotype" executable: "target/nextflow/multiqc_custom_biotype/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/multiqc_custom_biotype/main.nf b/target/nextflow/multiqc_custom_biotype/main.nf index 827a16a..26d36e3 100644 --- a/target/nextflow/multiqc_custom_biotype/main.nf +++ b/target/nextflow/multiqc_custom_biotype/main.nf @@ -2891,6 +2891,13 @@ meta = [ } ], "description" : "Calculate features percentage for biotype counts", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + } + ], "status" : "enabled", "requirements" : { "commands" : [ @@ -3005,8 +3012,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/multiqc_custom_biotype", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3174,7 +3181,7 @@ if __name__ == "__main__": filtered_lines.append(filtered_line) # Concatenate the header and the processed lines - result = biotypes_header + '\\\\n' + '\\\\n'.join(filtered_lines) + '\\\\n' + result = biotypes_header + '\\\\n'.join(filtered_lines) + '\\\\n' # Write the result to par_featurecounts_multiqc with open(par["featurecounts_multiqc"], 'w') as output_file: diff --git a/target/nextflow/multiqc_custom_biotype/nextflow_schema.json b/target/nextflow/multiqc_custom_biotype/nextflow_schema.json index 9124ba9..73e6582 100644 --- a/target/nextflow/multiqc_custom_biotype/nextflow_schema.json +++ b/target/nextflow/multiqc_custom_biotype/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `string`, default: `$id`. Sample name", "help_text": "Type: `string`, default: `$id`. Sample name" , - "default": "$id" + "default":"$id" } @@ -41,7 +41,7 @@ "description": "Type: `string`, default: `rRNA`. Features to count", "help_text": "Type: `string`, default: `rRNA`. Features to count" , - "default": "rRNA" + "default":"rRNA" } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_multiqc.tsv" + "default":"$id.$key.featurecounts_multiqc.tsv" } @@ -73,7 +73,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_rrna_multiqc.tsv" + "default":"$id.$key.featurecounts_rrna_multiqc.tsv" } diff --git a/target/nextflow/picard_markduplicates/.config.vsh.yaml b/target/nextflow/picard_markduplicates/.config.vsh.yaml index f2482f2..d0dc8b4 100644 --- a/target/nextflow/picard_markduplicates/.config.vsh.yaml +++ b/target/nextflow/picard_markduplicates/.config.vsh.yaml @@ -207,8 +207,8 @@ build_info: output: "target/nextflow/picard_markduplicates" executable: "target/nextflow/picard_markduplicates/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/picard_markduplicates/main.nf b/target/nextflow/picard_markduplicates/main.nf index a025fad..546cbe0 100644 --- a/target/nextflow/picard_markduplicates/main.nf +++ b/target/nextflow/picard_markduplicates/main.nf @@ -3063,8 +3063,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/picard_markduplicates", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/picard_markduplicates/nextflow_schema.json b/target/nextflow/picard_markduplicates/nextflow_schema.json index d5be121..7195d87 100644 --- a/target/nextflow/picard_markduplicates/nextflow_schema.json +++ b/target/nextflow/picard_markduplicates/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `string`, default: `--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp`. Additional argument to be passed to Picard MarkDuplicates", "help_text": "Type: `string`, default: `--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp`. Additional argument to be passed to Picard MarkDuplicates" , - "default": "--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp" + "default":"--ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp" } @@ -71,7 +71,7 @@ "description": "Type: `file`, default: `$id.$key.output_bam.bam`. BAM file with duplicate reads marked/removed", "help_text": "Type: `file`, default: `$id.$key.output_bam.bam`. BAM file with duplicate reads marked/removed" , - "default": "$id.$key.output_bam.bam" + "default":"$id.$key.output_bam.bam" } @@ -82,7 +82,7 @@ "description": "Type: `file`, default: `$id.$key.bai.bai`. An optional BAM index file", "help_text": "Type: `file`, default: `$id.$key.bai.bai`. An optional BAM index file. If desired, --CREATE_INDEX must be passed as a flag" , - "default": "$id.$key.bai.bai" + "default":"$id.$key.bai.bai" } @@ -93,7 +93,7 @@ "description": "Type: `file`, default: `$id.$key.metrics.txt`. Duplicate metrics file generated by picard", "help_text": "Type: `file`, default: `$id.$key.metrics.txt`. Duplicate metrics file generated by picard" , - "default": "$id.$key.metrics.txt" + "default":"$id.$key.metrics.txt" } diff --git a/target/nextflow/prepare_multiqc_input/.config.vsh.yaml b/target/nextflow/prepare_multiqc_input/.config.vsh.yaml index 2bb7293..f564fd1 100644 --- a/target/nextflow/prepare_multiqc_input/.config.vsh.yaml +++ b/target/nextflow/prepare_multiqc_input/.config.vsh.yaml @@ -409,8 +409,8 @@ build_info: output: "target/nextflow/prepare_multiqc_input" executable: "target/nextflow/prepare_multiqc_input/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/prepare_multiqc_input/main.nf b/target/nextflow/prepare_multiqc_input/main.nf index 699c7dd..35bf19c 100644 --- a/target/nextflow/prepare_multiqc_input/main.nf +++ b/target/nextflow/prepare_multiqc_input/main.nf @@ -3277,8 +3277,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/prepare_multiqc_input", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/prepare_multiqc_input/nextflow_schema.json b/target/nextflow/prepare_multiqc_input/nextflow_schema.json index 612c807..cbe5fba 100644 --- a/target/nextflow/prepare_multiqc_input/nextflow_schema.json +++ b/target/nextflow/prepare_multiqc_input/nextflow_schema.json @@ -360,7 +360,7 @@ "description": "Type: `file`, default: `$id.$key.output.output`. ", "help_text": "Type: `file`, default: `$id.$key.output.output`. " , - "default": "$id.$key.output.output" + "default":"$id.$key.output.output" } diff --git a/target/nextflow/preprocess_transcripts_fasta/.config.vsh.yaml b/target/nextflow/preprocess_transcripts_fasta/.config.vsh.yaml index 267030d..0d8f12e 100644 --- a/target/nextflow/preprocess_transcripts_fasta/.config.vsh.yaml +++ b/target/nextflow/preprocess_transcripts_fasta/.config.vsh.yaml @@ -138,8 +138,8 @@ build_info: output: "target/nextflow/preprocess_transcripts_fasta" executable: "target/nextflow/preprocess_transcripts_fasta/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/preprocess_transcripts_fasta/main.nf b/target/nextflow/preprocess_transcripts_fasta/main.nf index 3c40742..849206a 100644 --- a/target/nextflow/preprocess_transcripts_fasta/main.nf +++ b/target/nextflow/preprocess_transcripts_fasta/main.nf @@ -2982,8 +2982,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/preprocess_transcripts_fasta", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/preprocess_transcripts_fasta/nextflow_schema.json b/target/nextflow/preprocess_transcripts_fasta/nextflow_schema.json index 0ae0e4f..5015eae 100644 --- a/target/nextflow/preprocess_transcripts_fasta/nextflow_schema.json +++ b/target/nextflow/preprocess_transcripts_fasta/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `file`, required, default: `$id.$key.output.output`. Path of processed output FASTA file", "help_text": "Type: `file`, required, default: `$id.$key.output.output`. Path of processed output FASTA file." , - "default": "$id.$key.output.output" + "default":"$id.$key.output.output" } diff --git a/target/nextflow/preseq_lcextrap/.config.vsh.yaml b/target/nextflow/preseq_lcextrap/.config.vsh.yaml index ca9959a..8f8ce58 100644 --- a/target/nextflow/preseq_lcextrap/.config.vsh.yaml +++ b/target/nextflow/preseq_lcextrap/.config.vsh.yaml @@ -191,8 +191,8 @@ build_info: output: "target/nextflow/preseq_lcextrap" executable: "target/nextflow/preseq_lcextrap/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/preseq_lcextrap/main.nf b/target/nextflow/preseq_lcextrap/main.nf index 4494541..e7ff41c 100644 --- a/target/nextflow/preseq_lcextrap/main.nf +++ b/target/nextflow/preseq_lcextrap/main.nf @@ -3035,8 +3035,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/preseq_lcextrap", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/preseq_lcextrap/nextflow_schema.json b/target/nextflow/preseq_lcextrap/nextflow_schema.json index 886d4e3..776bf27 100644 --- a/target/nextflow/preseq_lcextrap/nextflow_schema.json +++ b/target/nextflow/preseq_lcextrap/nextflow_schema.json @@ -60,7 +60,7 @@ "description": "Type: `file`, default: `$id.$key.output.txt`. ", "help_text": "Type: `file`, default: `$id.$key.output.txt`. " , - "default": "$id.$key.output.txt" + "default":"$id.$key.output.txt" } diff --git a/target/nextflow/qualimap/.config.vsh.yaml b/target/nextflow/qualimap/.config.vsh.yaml index 8fcdfa4..4fcc2d4 100644 --- a/target/nextflow/qualimap/.config.vsh.yaml +++ b/target/nextflow/qualimap/.config.vsh.yaml @@ -271,8 +271,8 @@ build_info: output: "target/nextflow/qualimap" executable: "target/nextflow/qualimap/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/qualimap/main.nf b/target/nextflow/qualimap/main.nf index ec4d73a..6890d89 100644 --- a/target/nextflow/qualimap/main.nf +++ b/target/nextflow/qualimap/main.nf @@ -3144,8 +3144,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/qualimap", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/qualimap/nextflow_schema.json b/target/nextflow/qualimap/nextflow_schema.json index 73d681d..8defe51 100644 --- a/target/nextflow/qualimap/nextflow_schema.json +++ b/target/nextflow/qualimap/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.output_dir.qualimap_output`. path to output directory for raw data and report", "help_text": "Type: `file`, default: `$id.$key.output_dir.qualimap_output`. path to output directory for raw data and report." , - "default": "$id.$key.output_dir.qualimap_output" + "default":"$id.$key.output_dir.qualimap_output" } @@ -61,7 +61,7 @@ "description": "Type: `file`, default: `$id.$key.output_pdf.pdf`. path to output file for pdf report", "help_text": "Type: `file`, default: `$id.$key.output_pdf.pdf`. path to output file for pdf report." , - "default": "$id.$key.output_pdf.pdf" + "default":"$id.$key.output_pdf.pdf" } @@ -72,7 +72,7 @@ "description": "Type: `string`, default: `html`. Format of the output report (PDF or HTML, default is HTML)", "help_text": "Type: `string`, default: `html`. Format of the output report (PDF or HTML, default is HTML)" , - "default": "html" + "default":"html" } @@ -93,7 +93,7 @@ "description": "Type: `integer`, default: `100`. Number of upstream/downstream nucleotide bases to compute 5\u0027-3\u0027 bias (default = 100)", "help_text": "Type: `integer`, default: `100`. Number of upstream/downstream nucleotide bases to compute 5\u0027-3\u0027 bias (default = 100)." , - "default": "100" + "default":100 } @@ -104,7 +104,7 @@ "description": "Type: `integer`, default: `1000`. Number of top highly expressed transcripts to compute 5\u0027-3\u0027 bias (default = 1000)", "help_text": "Type: `integer`, default: `1000`. Number of top highly expressed transcripts to compute 5\u0027-3\u0027 bias (default = 1000)." , - "default": "1000" + "default":1000 } @@ -115,7 +115,7 @@ "description": "Type: `string`, default: `uniquely-mapped-reads`. Counting algorithm (uniquely-mapped-reads (default) or proportional)", "help_text": "Type: `string`, default: `uniquely-mapped-reads`. Counting algorithm (uniquely-mapped-reads (default) or proportional)." , - "default": "uniquely-mapped-reads" + "default":"uniquely-mapped-reads" } @@ -128,7 +128,7 @@ "enum": ["non-strand-specific", "strand-specific-reverse", "strand-specific-forward"] , - "default": "non-strand-specific" + "default":"non-strand-specific" } @@ -139,7 +139,7 @@ "description": "Type: `boolean_true`, default: `false`. Setting this flag for paired-end experiments will result in counting fragments instead of reads", "help_text": "Type: `boolean_true`, default: `false`. Setting this flag for paired-end experiments will result in counting fragments instead of reads." , - "default": "False" + "default":false } @@ -150,7 +150,7 @@ "description": "Type: `boolean_true`, default: `false`. Setting this flag indicates that the input file is already sorted by name", "help_text": "Type: `boolean_true`, default: `false`. Setting this flag indicates that the input file is already sorted by name. If flag is not set, additional sorting by name will be performed. Only requiredfor paired-end analysis." , - "default": "False" + "default":false } @@ -161,7 +161,7 @@ "description": "Type: `string`, default: `4G`. maximum Java heap memory size, default = 4G", "help_text": "Type: `string`, default: `4G`. maximum Java heap memory size, default = 4G." , - "default": "4G" + "default":"4G" } diff --git a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml index 6ab32f2..0ff07e4 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_calculate_expression/.config.vsh.yaml @@ -299,8 +299,8 @@ 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: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rsem/rsem_calculate_expression/main.nf b/target/nextflow/rsem/rsem_calculate_expression/main.nf index ec48ded..f79cc2e 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/main.nf +++ b/target/nextflow/rsem/rsem_calculate_expression/main.nf @@ -3163,8 +3163,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rsem/rsem_calculate_expression", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rsem/rsem_calculate_expression/nextflow_schema.json b/target/nextflow/rsem/rsem_calculate_expression/nextflow_schema.json index a6b77fb..81d4502 100644 --- a/target/nextflow/rsem/rsem_calculate_expression/nextflow_schema.json +++ b/target/nextflow/rsem/rsem_calculate_expression/nextflow_schema.json @@ -92,7 +92,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene.results`, example: `sample.genes.results`. Expression counts on gene level", "help_text": "Type: `file`, default: `$id.$key.counts_gene.results`, example: `sample.genes.results`. Expression counts on gene level" , - "default": "$id.$key.counts_gene.results" + "default":"$id.$key.counts_gene.results" } @@ -103,7 +103,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcripts.results`, example: `sample.isoforms.results`. Expression counts on transcript level", "help_text": "Type: `file`, default: `$id.$key.counts_transcripts.results`, example: `sample.isoforms.results`. Expression counts on transcript level" , - "default": "$id.$key.counts_transcripts.results" + "default":"$id.$key.counts_transcripts.results" } @@ -114,7 +114,7 @@ "description": "Type: `file`, default: `$id.$key.stat.stat`, example: `sample.stat`. RSEM statistics", "help_text": "Type: `file`, default: `$id.$key.stat.stat`, example: `sample.stat`. RSEM statistics" , - "default": "$id.$key.stat.stat" + "default":"$id.$key.stat.stat" } @@ -125,7 +125,7 @@ "description": "Type: `file`, default: `$id.$key.logs.log`, example: `sample.log`. RSEM logs", "help_text": "Type: `file`, default: `$id.$key.logs.log`, example: `sample.log`. RSEM logs" , - "default": "$id.$key.logs.log" + "default":"$id.$key.logs.log" } @@ -136,7 +136,7 @@ "description": "Type: `file`, default: `$id.$key.bam_star.bam`, example: `sample.STAR.genome.bam`. BAM file generated by STAR (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_star.bam`, example: `sample.STAR.genome.bam`. BAM file generated by STAR (optional)" , - "default": "$id.$key.bam_star.bam" + "default":"$id.$key.bam_star.bam" } @@ -147,7 +147,7 @@ "description": "Type: `file`, default: `$id.$key.bam_genome.bam`, example: `sample.genome.bam`. Genome BAM file (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_genome.bam`, example: `sample.genome.bam`. Genome BAM file (optional)" , - "default": "$id.$key.bam_genome.bam" + "default":"$id.$key.bam_genome.bam" } @@ -158,7 +158,7 @@ "description": "Type: `file`, default: `$id.$key.bam_transcript.bam`, example: `sample.transcript.bam`. Transcript BAM file (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_transcript.bam`, example: `sample.transcript.bam`. Transcript BAM file (optional)" , - "default": "$id.$key.bam_transcript.bam" + "default":"$id.$key.bam_transcript.bam" } diff --git a/target/nextflow/rsem/rsem_merge_counts/.config.vsh.yaml b/target/nextflow/rsem/rsem_merge_counts/.config.vsh.yaml index 4dd585c..d096f9e 100644 --- a/target/nextflow/rsem/rsem_merge_counts/.config.vsh.yaml +++ b/target/nextflow/rsem/rsem_merge_counts/.config.vsh.yaml @@ -182,8 +182,8 @@ build_info: output: "target/nextflow/rsem/rsem_merge_counts" executable: "target/nextflow/rsem/rsem_merge_counts/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rsem/rsem_merge_counts/main.nf b/target/nextflow/rsem/rsem_merge_counts/main.nf index da0450c..ff961e1 100644 --- a/target/nextflow/rsem/rsem_merge_counts/main.nf +++ b/target/nextflow/rsem/rsem_merge_counts/main.nf @@ -3028,8 +3028,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rsem/rsem_merge_counts", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rsem/rsem_merge_counts/nextflow_schema.json b/target/nextflow/rsem/rsem_merge_counts/nextflow_schema.json index 6d8506c..2ec8321 100644 --- a/target/nextflow/rsem/rsem_merge_counts/nextflow_schema.json +++ b/target/nextflow/rsem/rsem_merge_counts/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.merged_gene_counts.tsv`. File containing gene counts across all samples", "help_text": "Type: `file`, default: `$id.$key.merged_gene_counts.tsv`. File containing gene counts across all samples." , - "default": "$id.$key.merged_gene_counts.tsv" + "default":"$id.$key.merged_gene_counts.tsv" } @@ -61,7 +61,7 @@ "description": "Type: `file`, default: `$id.$key.merged_gene_tpm.tsv`. File containing gene TPM across all samples", "help_text": "Type: `file`, default: `$id.$key.merged_gene_tpm.tsv`. File containing gene TPM across all samples." , - "default": "$id.$key.merged_gene_tpm.tsv" + "default":"$id.$key.merged_gene_tpm.tsv" } @@ -72,7 +72,7 @@ "description": "Type: `file`, default: `$id.$key.merged_transcript_counts.tsv`. File containing transcript counts across all samples", "help_text": "Type: `file`, default: `$id.$key.merged_transcript_counts.tsv`. File containing transcript counts across all samples." , - "default": "$id.$key.merged_transcript_counts.tsv" + "default":"$id.$key.merged_transcript_counts.tsv" } @@ -83,7 +83,7 @@ "description": "Type: `file`, default: `$id.$key.merged_transcript_tpm.tsv`. File containing transcript TPM across all samples", "help_text": "Type: `file`, default: `$id.$key.merged_transcript_tpm.tsv`. File containing transcript TPM across all samples." , - "default": "$id.$key.merged_transcript_tpm.tsv" + "default":"$id.$key.merged_transcript_tpm.tsv" } diff --git a/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml index 1aa0c96..e1f297b 100644 --- a/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_bamstat/.config.vsh.yaml @@ -163,8 +163,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_bamstat" executable: "target/nextflow/rseqc/rseqc_bamstat/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_bamstat/main.nf b/target/nextflow/rseqc/rseqc_bamstat/main.nf index 029b344..82d5327 100644 --- a/target/nextflow/rseqc/rseqc_bamstat/main.nf +++ b/target/nextflow/rseqc/rseqc_bamstat/main.nf @@ -3016,8 +3016,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_bamstat", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_bamstat/nextflow_schema.json b/target/nextflow/rseqc/rseqc_bamstat/nextflow_schema.json index ccd0e05..10fcdfd 100644 --- a/target/nextflow/rseqc/rseqc_bamstat/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_bamstat/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -51,7 +51,7 @@ "description": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) with mapping quality statistics", "help_text": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) with mapping quality statistics" , - "default": "$id.$key.output.txt" + "default":"$id.$key.output.txt" } diff --git a/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml index 5985571..438dde4 100644 --- a/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_inferexperiment/.config.vsh.yaml @@ -186,8 +186,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_inferexperiment" executable: "target/nextflow/rseqc/rseqc_inferexperiment/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_inferexperiment/main.nf b/target/nextflow/rseqc/rseqc_inferexperiment/main.nf index 68acf47..c40d0a5 100644 --- a/target/nextflow/rseqc/rseqc_inferexperiment/main.nf +++ b/target/nextflow/rseqc/rseqc_inferexperiment/main.nf @@ -3044,8 +3044,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_inferexperiment", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_inferexperiment/nextflow_schema.json b/target/nextflow/rseqc/rseqc_inferexperiment/nextflow_schema.json index d3c717a..2334e9c 100644 --- a/target/nextflow/rseqc/rseqc_inferexperiment/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_inferexperiment/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file, default = 200000", "help_text": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file, default = 200000." , - "default": "200000" + "default":200000 } @@ -51,7 +51,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -72,7 +72,7 @@ "description": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) of strandness report", "help_text": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) of strandness report" , - "default": "$id.$key.output.txt" + "default":"$id.$key.output.txt" } diff --git a/target/nextflow/rseqc/rseqc_innerdistance/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_innerdistance/.config.vsh.yaml index 0cf7097..8a7a04d 100644 --- a/target/nextflow/rseqc/rseqc_innerdistance/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_innerdistance/.config.vsh.yaml @@ -272,8 +272,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_innerdistance" executable: "target/nextflow/rseqc/rseqc_innerdistance/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_innerdistance/main.nf b/target/nextflow/rseqc/rseqc_innerdistance/main.nf index 0d82450..73a422a 100644 --- a/target/nextflow/rseqc/rseqc_innerdistance/main.nf +++ b/target/nextflow/rseqc/rseqc_innerdistance/main.nf @@ -3137,8 +3137,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_innerdistance", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_innerdistance/nextflow_schema.json b/target/nextflow/rseqc/rseqc_innerdistance/nextflow_schema.json index 933a44f..85f21e3 100644 --- a/target/nextflow/rseqc/rseqc_innerdistance/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_innerdistance/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file, default = 200000", "help_text": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file, default = 200000." , - "default": "200000" + "default":200000 } @@ -51,7 +51,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -62,7 +62,7 @@ "description": "Type: `integer`, default: `-250`. Lower bound of inner distance (bp)", "help_text": "Type: `integer`, default: `-250`. Lower bound of inner distance (bp). This option is used for ploting histograme, default=-250." , - "default": "-250" + "default":-250 } @@ -73,7 +73,7 @@ "description": "Type: `integer`, default: `250`. Upper bound of inner distance (bp)", "help_text": "Type: `integer`, default: `250`. Upper bound of inner distance (bp). This option is used for ploting histograme, default=250." , - "default": "250" + "default":250 } @@ -84,7 +84,7 @@ "description": "Type: `integer`, default: `5`. Step size (bp) of histograme", "help_text": "Type: `integer`, default: `5`. Step size (bp) of histograme. This option is used for plotting histogram, default=5." , - "default": "5" + "default":5 } @@ -105,7 +105,7 @@ "description": "Type: `file`, default: `$id.$key.output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads", "help_text": "Type: `file`, default: `$id.$key.output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads" , - "default": "$id.$key.output_stats.stats" + "default":"$id.$key.output_stats.stats" } @@ -116,7 +116,7 @@ "description": "Type: `file`, default: `$id.$key.output_dist.txt`. output file (txt) with inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.output_dist.txt`. output file (txt) with inner distances of all paired reads" , - "default": "$id.$key.output_dist.txt" + "default":"$id.$key.output_dist.txt" } @@ -127,7 +127,7 @@ "description": "Type: `file`, default: `$id.$key.output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads" , - "default": "$id.$key.output_freq.txt" + "default":"$id.$key.output_freq.txt" } @@ -138,7 +138,7 @@ "description": "Type: `file`, default: `$id.$key.output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.output_plot.pdf" + "default":"$id.$key.output_plot.pdf" } @@ -149,7 +149,7 @@ "description": "Type: `file`, default: `$id.$key.output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.output_plot_r.r" + "default":"$id.$key.output_plot_r.r" } diff --git a/target/nextflow/rseqc/rseqc_junctionannotation/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_junctionannotation/.config.vsh.yaml index cfadf73..f8b3fca 100644 --- a/target/nextflow/rseqc/rseqc_junctionannotation/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_junctionannotation/.config.vsh.yaml @@ -260,8 +260,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_junctionannotation" executable: "target/nextflow/rseqc/rseqc_junctionannotation/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_junctionannotation/main.nf b/target/nextflow/rseqc/rseqc_junctionannotation/main.nf index ebf0308..72964d9 100644 --- a/target/nextflow/rseqc/rseqc_junctionannotation/main.nf +++ b/target/nextflow/rseqc/rseqc_junctionannotation/main.nf @@ -3128,8 +3128,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_junctionannotation", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_junctionannotation/nextflow_schema.json b/target/nextflow/rseqc/rseqc_junctionannotation/nextflow_schema.json index dfbfdb9..d5d5891 100644 --- a/target/nextflow/rseqc/rseqc_junctionannotation/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_junctionannotation/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -51,7 +51,7 @@ "description": "Type: `integer`, default: `50`. Minimum intron length (bp), default = 50", "help_text": "Type: `integer`, default: `50`. Minimum intron length (bp), default = 50." , - "default": "50" + "default":50 } @@ -72,7 +72,7 @@ "description": "Type: `file`, default: `$id.$key.output_log.log`. output log of junction annotation script", "help_text": "Type: `file`, default: `$id.$key.output_log.log`. output log of junction annotation script" , - "default": "$id.$key.output_log.log" + "default":"$id.$key.output_log.log" } @@ -83,7 +83,7 @@ "description": "Type: `file`, default: `$id.$key.output_plot_r.r`. r script to generate splice_junction and splice_events plot", "help_text": "Type: `file`, default: `$id.$key.output_plot_r.r`. r script to generate splice_junction and splice_events plot" , - "default": "$id.$key.output_plot_r.r" + "default":"$id.$key.output_plot_r.r" } @@ -94,7 +94,7 @@ "description": "Type: `file`, default: `$id.$key.output_junction_bed.bed`. junction annotation file (bed format)", "help_text": "Type: `file`, default: `$id.$key.output_junction_bed.bed`. junction annotation file (bed format)" , - "default": "$id.$key.output_junction_bed.bed" + "default":"$id.$key.output_junction_bed.bed" } @@ -105,7 +105,7 @@ "description": "Type: `file`, default: `$id.$key.output_junction_interact.bed`. interact file (bed format) of junctions", "help_text": "Type: `file`, default: `$id.$key.output_junction_interact.bed`. interact file (bed format) of junctions. Can be uploaded to UCSC genome browser or converted to bigInteract (using bedToBigBed program) for visualization." , - "default": "$id.$key.output_junction_interact.bed" + "default":"$id.$key.output_junction_interact.bed" } @@ -116,7 +116,7 @@ "description": "Type: `file`, default: `$id.$key.output_junction_sheet.xls`. junction annotation file (xls format)", "help_text": "Type: `file`, default: `$id.$key.output_junction_sheet.xls`. junction annotation file (xls format)" , - "default": "$id.$key.output_junction_sheet.xls" + "default":"$id.$key.output_junction_sheet.xls" } @@ -127,7 +127,7 @@ "description": "Type: `file`, default: `$id.$key.output_splice_events_plot.pdf`. plot of splice events (pdf)", "help_text": "Type: `file`, default: `$id.$key.output_splice_events_plot.pdf`. plot of splice events (pdf)" , - "default": "$id.$key.output_splice_events_plot.pdf" + "default":"$id.$key.output_splice_events_plot.pdf" } @@ -138,7 +138,7 @@ "description": "Type: `file`, default: `$id.$key.output_splice_junctions_plot.pdf`. plot of junctions (pdf)", "help_text": "Type: `file`, default: `$id.$key.output_splice_junctions_plot.pdf`. plot of junctions (pdf)" , - "default": "$id.$key.output_splice_junctions_plot.pdf" + "default":"$id.$key.output_splice_junctions_plot.pdf" } diff --git a/target/nextflow/rseqc/rseqc_junctionsaturation/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_junctionsaturation/.config.vsh.yaml index a63e290..90b63d8 100644 --- a/target/nextflow/rseqc/rseqc_junctionsaturation/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_junctionsaturation/.config.vsh.yaml @@ -249,8 +249,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_junctionsaturation" executable: "target/nextflow/rseqc/rseqc_junctionsaturation/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_junctionsaturation/main.nf b/target/nextflow/rseqc/rseqc_junctionsaturation/main.nf index d19f5dd..d47feed 100644 --- a/target/nextflow/rseqc/rseqc_junctionsaturation/main.nf +++ b/target/nextflow/rseqc/rseqc_junctionsaturation/main.nf @@ -3113,8 +3113,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_junctionsaturation", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_junctionsaturation/nextflow_schema.json b/target/nextflow/rseqc/rseqc_junctionsaturation/nextflow_schema.json index b593c4c..f1e6368 100644 --- a/target/nextflow/rseqc/rseqc_junctionsaturation/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_junctionsaturation/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `integer`, default: `5`. Sampling starts from this percentile, must be an integer between 0 and 100, default =5", "help_text": "Type: `integer`, default: `5`. Sampling starts from this percentile, must be an integer between 0 and 100, default =5." , - "default": "5" + "default":5 } @@ -51,7 +51,7 @@ "description": "Type: `integer`, default: `100`. Sampling ends at this percentile, must be an integer between 0 and 100, default =5", "help_text": "Type: `integer`, default: `100`. Sampling ends at this percentile, must be an integer between 0 and 100, default =5." , - "default": "100" + "default":100 } @@ -62,7 +62,7 @@ "description": "Type: `integer`, default: `5`. Sampling frequency in %", "help_text": "Type: `integer`, default: `5`. Sampling frequency in %. Smaller value means more sampling times. Must be an integer between 0 and 100, default = 5." , - "default": "5" + "default":5 } @@ -73,7 +73,7 @@ "description": "Type: `integer`, default: `50`. Minimum intron length (bp), default = 50", "help_text": "Type: `integer`, default: `50`. Minimum intron length (bp), default = 50." , - "default": "50" + "default":50 } @@ -84,7 +84,7 @@ "description": "Type: `integer`, default: `1`. Minimum number of supporting reads to call a junction, default = 1", "help_text": "Type: `integer`, default: `1`. Minimum number of supporting reads to call a junction, default = 1." , - "default": "1" + "default":1 } @@ -95,7 +95,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -116,7 +116,7 @@ "description": "Type: `file`, default: `$id.$key.output_plot_r.r`. r script to generate junction_saturation_plot plot", "help_text": "Type: `file`, default: `$id.$key.output_plot_r.r`. r script to generate junction_saturation_plot plot" , - "default": "$id.$key.output_plot_r.r" + "default":"$id.$key.output_plot_r.r" } @@ -127,7 +127,7 @@ "description": "Type: `file`, default: `$id.$key.output_plot.pdf`. plot of junction saturation (pdf)", "help_text": "Type: `file`, default: `$id.$key.output_plot.pdf`. plot of junction saturation (pdf)" , - "default": "$id.$key.output_plot.pdf" + "default":"$id.$key.output_plot.pdf" } diff --git a/target/nextflow/rseqc/rseqc_readdistribution/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_readdistribution/.config.vsh.yaml index 499ab63..b1217be 100644 --- a/target/nextflow/rseqc/rseqc_readdistribution/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_readdistribution/.config.vsh.yaml @@ -162,8 +162,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_readdistribution" executable: "target/nextflow/rseqc/rseqc_readdistribution/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_readdistribution/main.nf b/target/nextflow/rseqc/rseqc_readdistribution/main.nf index 4884263..c58ba42 100644 --- a/target/nextflow/rseqc/rseqc_readdistribution/main.nf +++ b/target/nextflow/rseqc/rseqc_readdistribution/main.nf @@ -3017,8 +3017,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_readdistribution", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_readdistribution/nextflow_schema.json b/target/nextflow/rseqc/rseqc_readdistribution/nextflow_schema.json index 0fda1f4..f53d310 100644 --- a/target/nextflow/rseqc/rseqc_readdistribution/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_readdistribution/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) of read distribution analysis", "help_text": "Type: `file`, default: `$id.$key.output.txt`. output file (txt) of read distribution analysis." , - "default": "$id.$key.output.txt" + "default":"$id.$key.output.txt" } diff --git a/target/nextflow/rseqc/rseqc_readduplication/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_readduplication/.config.vsh.yaml index 7d6a971..da7c41b 100644 --- a/target/nextflow/rseqc/rseqc_readduplication/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_readduplication/.config.vsh.yaml @@ -211,8 +211,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_readduplication" executable: "target/nextflow/rseqc/rseqc_readduplication/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_readduplication/main.nf b/target/nextflow/rseqc/rseqc_readduplication/main.nf index 16ba49e..96c107e 100644 --- a/target/nextflow/rseqc/rseqc_readduplication/main.nf +++ b/target/nextflow/rseqc/rseqc_readduplication/main.nf @@ -3071,8 +3071,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_readduplication", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_readduplication/nextflow_schema.json b/target/nextflow/rseqc/rseqc_readduplication/nextflow_schema.json index 509fc4f..9dbcbb6 100644 --- a/target/nextflow/rseqc/rseqc_readduplication/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_readduplication/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `integer`, default: `500`. Upper limit of reads\u0027 occurence", "help_text": "Type: `integer`, default: `500`. Upper limit of reads\u0027 occurence. Only used for plotting, default = 500 (times)." , - "default": "500" + "default":500 } @@ -41,7 +41,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default=30." , - "default": "30" + "default":30 } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.output_duplication_rate_plot_r.r`. R script for generating duplication rate plot", "help_text": "Type: `file`, default: `$id.$key.output_duplication_rate_plot_r.r`. R script for generating duplication rate plot" , - "default": "$id.$key.output_duplication_rate_plot_r.r" + "default":"$id.$key.output_duplication_rate_plot_r.r" } @@ -73,7 +73,7 @@ "description": "Type: `file`, default: `$id.$key.output_duplication_rate_plot.pdf`. duplication rate plot (pdf)", "help_text": "Type: `file`, default: `$id.$key.output_duplication_rate_plot.pdf`. duplication rate plot (pdf)" , - "default": "$id.$key.output_duplication_rate_plot.pdf" + "default":"$id.$key.output_duplication_rate_plot.pdf" } @@ -84,7 +84,7 @@ "description": "Type: `file`, default: `$id.$key.output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication", "help_text": "Type: `file`, default: `$id.$key.output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication" , - "default": "$id.$key.output_duplication_rate_mapping.xls" + "default":"$id.$key.output_duplication_rate_mapping.xls" } @@ -95,7 +95,7 @@ "description": "Type: `file`, default: `$id.$key.output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication", "help_text": "Type: `file`, default: `$id.$key.output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication" , - "default": "$id.$key.output_duplication_rate_sequence.xls" + "default":"$id.$key.output_duplication_rate_sequence.xls" } diff --git a/target/nextflow/rseqc/rseqc_tin/.config.vsh.yaml b/target/nextflow/rseqc/rseqc_tin/.config.vsh.yaml index bd976fb..860abab 100644 --- a/target/nextflow/rseqc/rseqc_tin/.config.vsh.yaml +++ b/target/nextflow/rseqc/rseqc_tin/.config.vsh.yaml @@ -214,8 +214,8 @@ build_info: output: "target/nextflow/rseqc/rseqc_tin" executable: "target/nextflow/rseqc/rseqc_tin/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/rseqc/rseqc_tin/main.nf b/target/nextflow/rseqc/rseqc_tin/main.nf index 8c8b1d3..5a81ee7 100644 --- a/target/nextflow/rseqc/rseqc_tin/main.nf +++ b/target/nextflow/rseqc/rseqc_tin/main.nf @@ -3076,8 +3076,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/rseqc/rseqc_tin", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/rseqc/rseqc_tin/nextflow_schema.json b/target/nextflow/rseqc/rseqc_tin/nextflow_schema.json index 6f63e35..0039ad0 100644 --- a/target/nextflow/rseqc/rseqc_tin/nextflow_schema.json +++ b/target/nextflow/rseqc/rseqc_tin/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `integer`, default: `10`. Minimum number of reads mapped to a transcript, default = 10", "help_text": "Type: `integer`, default: `10`. Minimum number of reads mapped to a transcript, default = 10." , - "default": "10" + "default":10 } @@ -61,7 +61,7 @@ "description": "Type: `integer`, default: `100`. Number of equal-spaced nucleotide positions picked from mRNA", "help_text": "Type: `integer`, default: `100`. Number of equal-spaced nucleotide positions picked from mRNA. Note, if this number is larger than the length of mRNA (L), it will be halved until it\u0027s smaller than L (default = 100)" , - "default": "100" + "default":100 } @@ -72,7 +72,7 @@ "description": "Type: `boolean_true`, default: `false`. Set flag to subtract background noise (estimated from intronic reads)", "help_text": "Type: `boolean_true`, default: `false`. Set flag to subtract background noise (estimated from intronic reads). Only use this option if there are substantial intronic reads." , - "default": "False" + "default":false } @@ -93,7 +93,7 @@ "description": "Type: `file`, default: `$id.$key.output_tin_summary.txt`. summary statistics (txt) of calculated TIN metrics", "help_text": "Type: `file`, default: `$id.$key.output_tin_summary.txt`. summary statistics (txt) of calculated TIN metrics" , - "default": "$id.$key.output_tin_summary.txt" + "default":"$id.$key.output_tin_summary.txt" } @@ -104,7 +104,7 @@ "description": "Type: `file`, default: `$id.$key.output_tin.xls`. file with TIN metrics (xls)", "help_text": "Type: `file`, default: `$id.$key.output_tin.xls`. file with TIN metrics (xls)" , - "default": "$id.$key.output_tin.xls" + "default":"$id.$key.output_tin.xls" } diff --git a/target/nextflow/sortmerna/.config.vsh.yaml b/target/nextflow/sortmerna/.config.vsh.yaml index 9a90f1f..0707e6b 100644 --- a/target/nextflow/sortmerna/.config.vsh.yaml +++ b/target/nextflow/sortmerna/.config.vsh.yaml @@ -192,8 +192,8 @@ build_info: output: "target/nextflow/sortmerna" executable: "target/nextflow/sortmerna/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/sortmerna/main.nf b/target/nextflow/sortmerna/main.nf index 4074532..78712bf 100644 --- a/target/nextflow/sortmerna/main.nf +++ b/target/nextflow/sortmerna/main.nf @@ -3042,8 +3042,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/sortmerna", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/sortmerna/nextflow_schema.json b/target/nextflow/sortmerna/nextflow_schema.json index 7b8a6bb..c7fb0fe 100644 --- a/target/nextflow/sortmerna/nextflow_schema.json +++ b/target/nextflow/sortmerna/nextflow_schema.json @@ -60,7 +60,7 @@ "description": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file", "help_text": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file." , - "default": "$id.$key.sortmerna_log.log" + "default":"$id.$key.sortmerna_log.log" } @@ -71,7 +71,7 @@ "description": "Type: `file`, required, default: `$id.$key.fastq_1.gz`. Output file for read 1", "help_text": "Type: `file`, required, default: `$id.$key.fastq_1.gz`. Output file for read 1." , - "default": "$id.$key.fastq_1.gz" + "default":"$id.$key.fastq_1.gz" } @@ -82,7 +82,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_2.gz`. Output file for read 2", "help_text": "Type: `file`, default: `$id.$key.fastq_2.gz`. Output file for read 2." , - "default": "$id.$key.fastq_2.gz" + "default":"$id.$key.fastq_2.gz" } diff --git a/target/nextflow/stringtie/.config.vsh.yaml b/target/nextflow/stringtie/.config.vsh.yaml index 09ea490..68bc0e4 100644 --- a/target/nextflow/stringtie/.config.vsh.yaml +++ b/target/nextflow/stringtie/.config.vsh.yaml @@ -216,8 +216,8 @@ build_info: output: "target/nextflow/stringtie" executable: "target/nextflow/stringtie/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/stringtie/main.nf b/target/nextflow/stringtie/main.nf index 92558c9..23122ea 100644 --- a/target/nextflow/stringtie/main.nf +++ b/target/nextflow/stringtie/main.nf @@ -3073,8 +3073,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/stringtie", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/stringtie/nextflow_schema.json b/target/nextflow/stringtie/nextflow_schema.json index 460e522..aeb01f6 100644 --- a/target/nextflow/stringtie/nextflow_schema.json +++ b/target/nextflow/stringtie/nextflow_schema.json @@ -80,7 +80,7 @@ "description": "Type: `file`, default: `$id.$key.transcript_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.transcript_gtf.gtf`. " , - "default": "$id.$key.transcript_gtf.gtf" + "default":"$id.$key.transcript_gtf.gtf" } @@ -91,7 +91,7 @@ "description": "Type: `file`, default: `$id.$key.coverage_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.coverage_gtf.gtf`. " , - "default": "$id.$key.coverage_gtf.gtf" + "default":"$id.$key.coverage_gtf.gtf" } @@ -102,7 +102,7 @@ "description": "Type: `file`, default: `$id.$key.abundance.txt`. ", "help_text": "Type: `file`, default: `$id.$key.abundance.txt`. " , - "default": "$id.$key.abundance.txt" + "default":"$id.$key.abundance.txt" } @@ -113,7 +113,7 @@ "description": "Type: `file`, default: `$id.$key.ballgown.ballgown`. for running ballgown", "help_text": "Type: `file`, default: `$id.$key.ballgown.ballgown`. for running ballgown" , - "default": "$id.$key.ballgown.ballgown" + "default":"$id.$key.ballgown.ballgown" } diff --git a/target/nextflow/summarizedexperiment/.config.vsh.yaml b/target/nextflow/summarizedexperiment/.config.vsh.yaml index b4d972f..d28c04b 100644 --- a/target/nextflow/summarizedexperiment/.config.vsh.yaml +++ b/target/nextflow/summarizedexperiment/.config.vsh.yaml @@ -199,8 +199,8 @@ build_info: output: "target/nextflow/summarizedexperiment" executable: "target/nextflow/summarizedexperiment/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/summarizedexperiment/main.nf b/target/nextflow/summarizedexperiment/main.nf index 63b6d24..d92bfb7 100644 --- a/target/nextflow/summarizedexperiment/main.nf +++ b/target/nextflow/summarizedexperiment/main.nf @@ -3054,8 +3054,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/summarizedexperiment", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/summarizedexperiment/nextflow_schema.json b/target/nextflow/summarizedexperiment/nextflow_schema.json index 9d76a55..fb1515b 100644 --- a/target/nextflow/summarizedexperiment/nextflow_schema.json +++ b/target/nextflow/summarizedexperiment/nextflow_schema.json @@ -100,7 +100,7 @@ "description": "Type: `file`, default: `$id.$key.output.output`. ", "help_text": "Type: `file`, default: `$id.$key.output.output`. " , - "default": "$id.$key.output.output" + "default":"$id.$key.output.output" } diff --git a/target/nextflow/trimgalore/.config.vsh.yaml b/target/nextflow/trimgalore/.config.vsh.yaml index 6c248e0..b194bd3 100644 --- a/target/nextflow/trimgalore/.config.vsh.yaml +++ b/target/nextflow/trimgalore/.config.vsh.yaml @@ -788,8 +788,8 @@ build_info: output: "target/nextflow/trimgalore" executable: "target/nextflow/trimgalore/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/trimgalore/main.nf b/target/nextflow/trimgalore/main.nf index a77216c..d28c34a 100644 --- a/target/nextflow/trimgalore/main.nf +++ b/target/nextflow/trimgalore/main.nf @@ -3576,8 +3576,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/trimgalore", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/trimgalore/nextflow_schema.json b/target/nextflow/trimgalore/nextflow_schema.json index feb3442..76bc6ff 100644 --- a/target/nextflow/trimgalore/nextflow_schema.json +++ b/target/nextflow/trimgalore/nextflow_schema.json @@ -490,7 +490,7 @@ "description": "Type: `file`, 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`, 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" + "default":"$id.$key.output_dir.output_dir" } @@ -501,7 +501,7 @@ "description": "Type: `file`, default: `$id.$key.trimmed_r1.gz`, example: `read_1.fastq.gz`. Output file for read 1", "help_text": "Type: `file`, default: `$id.$key.trimmed_r1.gz`, example: `read_1.fastq.gz`. 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.gz" + "default":"$id.$key.trimmed_r1.gz" } @@ -512,7 +512,7 @@ "description": "Type: `file`, default: `$id.$key.trimmed_r2.gz`, example: `read_2.fastq.gz`. Output file for read 2", "help_text": "Type: `file`, default: `$id.$key.trimmed_r2.gz`, example: `read_2.fastq.gz`. 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.gz" + "default":"$id.$key.trimmed_r2.gz" } @@ -523,7 +523,7 @@ "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" + "default":"$id.$key.trimming_report_r1.txt" } @@ -534,7 +534,7 @@ "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" + "default":"$id.$key.trimming_report_r2.txt" } @@ -545,7 +545,7 @@ "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" + "default":"$id.$key.trimmed_fastqc_html_1.html" } @@ -556,7 +556,7 @@ "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" + "default":"$id.$key.trimmed_fastqc_html_2.html" } @@ -567,7 +567,7 @@ "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" + "default":"$id.$key.trimmed_fastqc_zip_1.zip" } @@ -578,7 +578,7 @@ "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" + "default":"$id.$key.trimmed_fastqc_zip_2.zip" } @@ -589,7 +589,7 @@ "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" + "default":"$id.$key.unpaired_r1.fastq" } @@ -600,7 +600,7 @@ "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" + "default":"$id.$key.unpaired_r2.fastq" } diff --git a/target/nextflow/tx2gene/.config.vsh.yaml b/target/nextflow/tx2gene/.config.vsh.yaml index 88174af..fd94e72 100644 --- a/target/nextflow/tx2gene/.config.vsh.yaml +++ b/target/nextflow/tx2gene/.config.vsh.yaml @@ -11,7 +11,7 @@ argument_groups: required: false direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "file" name: "--gtf" info: null @@ -63,17 +63,6 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" - - type: "file" - name: "--updated_versions" - info: null - default: - - "versions.yml" - must_exist: true - create_parent: true - required: false - direction: "output" - multiple: false - multiple_sep: ";" resources: - type: "bash_script" path: "script.sh" @@ -81,6 +70,10 @@ resources: - type: "file" path: "tx2gene.py" description: "Get transcript id (tx) to gene names for tximport" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: migration_info: git_repo: "https://github.com/nf-core/rnaseq.git" @@ -192,8 +185,8 @@ build_info: output: "target/nextflow/tx2gene" executable: "target/nextflow/tx2gene/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/tx2gene/main.nf b/target/nextflow/tx2gene/main.nf index 1b0759d..7092bcc 100644 --- a/target/nextflow/tx2gene/main.nf +++ b/target/nextflow/tx2gene/main.nf @@ -2818,7 +2818,7 @@ meta = [ "required" : false, "direction" : "input", "multiple" : true, - "multiple_sep" : "," + "multiple_sep" : ";" }, { "type" : "file", @@ -2882,19 +2882,6 @@ meta = [ "direction" : "output", "multiple" : false, "multiple_sep" : ";" - }, - { - "type" : "file", - "name" : "--updated_versions", - "default" : [ - "versions.yml" - ], - "must_exist" : true, - "create_parent" : true, - "required" : false, - "direction" : "output", - "multiple" : false, - "multiple_sep" : ";" } ] } @@ -2911,6 +2898,13 @@ meta = [ } ], "description" : "Get transcript id (tx) to gene names for tximport", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + } + ], "info" : { "migration_info" : { "git_repo" : "https://github.com/nf-core/rnaseq.git", @@ -3049,8 +3043,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/tx2gene", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3108,7 +3102,6 @@ $( if [ ! -z ${VIASH_PAR_GTF_EXTRA_ATTRIBUTES+x} ]; then echo "${VIASH_PAR_GTF_E $( if [ ! -z ${VIASH_PAR_GTF_GROUP_FEATURES+x} ]; then echo "${VIASH_PAR_GTF_GROUP_FEATURES}" | sed "s#'#'\\"'\\"'#g;s#.*#par_gtf_group_features='&'#" ; else echo "# par_gtf_group_features="; fi ) $( if [ ! -z ${VIASH_PAR_QUANT_TYPE+x} ]; then echo "${VIASH_PAR_QUANT_TYPE}" | sed "s#'#'\\"'\\"'#g;s#.*#par_quant_type='&'#" ; else echo "# par_quant_type="; fi ) $( if [ ! -z ${VIASH_PAR_TSV+x} ]; then echo "${VIASH_PAR_TSV}" | sed "s#'#'\\"'\\"'#g;s#.*#par_tsv='&'#" ; else echo "# par_tsv="; fi ) -$( if [ ! -z ${VIASH_PAR_UPDATED_VERSIONS+x} ]; then echo "${VIASH_PAR_UPDATED_VERSIONS}" | sed "s#'#'\\"'\\"'#g;s#.*#par_updated_versions='&'#" ; else echo "# par_updated_versions="; 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 ) @@ -3134,13 +3127,13 @@ $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" set -eo pipefail function clean_up { - rm -rf "\\$salmon_tmpdir" + rm -rf "\\$tmpdir" } trap clean_up EXIT -tmpdir=\\$(mktemp -d "\\$meta_temp_dir/\\$meta_functionality_name-XXXXXXXX") +tmpdir=\\$(mktemp -d "\\$meta_temp_dir/\\$meta_name-XXXXXXXX") -IFS="," read -ra results <<< \\$par_quant_results +IFS=";" read -ra results <<< \\$par_quant_results for result in \\${results[*]} do cp -r \\$result \\$tmpdir diff --git a/target/nextflow/tx2gene/nextflow_schema.json b/target/nextflow/tx2gene/nextflow_schema.json index 4c65bfd..6de165a 100644 --- a/target/nextflow/tx2gene/nextflow_schema.json +++ b/target/nextflow/tx2gene/nextflow_schema.json @@ -17,8 +17,8 @@ "quant_results": { "type": "string", - "description": "Type: List of `file`, multiple_sep: `\",\"`. ", - "help_text": "Type: List of `file`, multiple_sep: `\",\"`. " + "description": "Type: List of `file`, multiple_sep: `\";\"`. ", + "help_text": "Type: List of `file`, multiple_sep: `\";\"`. " } @@ -40,7 +40,7 @@ "description": "Type: `string`, default: `gene_name`. ", "help_text": "Type: `string`, default: `gene_name`. " , - "default": "gene_name" + "default":"gene_name" } @@ -51,7 +51,7 @@ "description": "Type: `string`, default: `gene_id`. ", "help_text": "Type: `string`, default: `gene_id`. " , - "default": "gene_id" + "default":"gene_id" } @@ -84,18 +84,7 @@ "description": "Type: `file`, default: `$id.$key.tsv.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tsv.tsv`. " , - "default": "$id.$key.tsv.tsv" - } - - - , - "updated_versions": { - "type": - "string", - "description": "Type: `file`, default: `$id.$key.updated_versions.yml`. ", - "help_text": "Type: `file`, default: `$id.$key.updated_versions.yml`. " - , - "default": "$id.$key.updated_versions.yml" + "default":"$id.$key.tsv.tsv" } diff --git a/target/nextflow/tximport/.config.vsh.yaml b/target/nextflow/tximport/.config.vsh.yaml index 66d6b69..aeea5b1 100644 --- a/target/nextflow/tximport/.config.vsh.yaml +++ b/target/nextflow/tximport/.config.vsh.yaml @@ -11,7 +11,7 @@ argument_groups: required: false direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "file" name: "--tx2gene_tsv" info: null @@ -82,7 +82,7 @@ argument_groups: name: "--lengths_gene" info: null default: - - "merged.gene_length.tsv" + - "merged.gene_lengths.tsv" must_exist: true create_parent: true required: false @@ -115,7 +115,7 @@ argument_groups: name: "--lengths_transcript" info: null default: - - "merged.transcript_length.tsv" + - "merged.transcript_lengths.tsv" must_exist: true create_parent: true required: false @@ -129,6 +129,10 @@ resources: - type: "file" path: "tximport.r" description: "Get dataframe linking transcript ID, gene ID, and gene name" +test_resources: +- type: "bash_script" + path: "test.sh" + is_executable: true info: migration_info: git_repo: "https://github.com/nf-core/rnaseq.git" @@ -247,8 +251,8 @@ build_info: output: "target/nextflow/tximport" executable: "target/nextflow/tximport/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/tximport/main.nf b/target/nextflow/tximport/main.nf index 6bf9440..e69d0a3 100644 --- a/target/nextflow/tximport/main.nf +++ b/target/nextflow/tximport/main.nf @@ -2818,7 +2818,7 @@ meta = [ "required" : false, "direction" : "input", "multiple" : true, - "multiple_sep" : "," + "multiple_sep" : ";" }, { "type" : "file", @@ -2904,7 +2904,7 @@ meta = [ "type" : "file", "name" : "--lengths_gene", "default" : [ - "merged.gene_length.tsv" + "merged.gene_lengths.tsv" ], "must_exist" : true, "create_parent" : true, @@ -2943,7 +2943,7 @@ meta = [ "type" : "file", "name" : "--lengths_transcript", "default" : [ - "merged.transcript_length.tsv" + "merged.transcript_lengths.tsv" ], "must_exist" : true, "create_parent" : true, @@ -2967,6 +2967,13 @@ meta = [ } ], "description" : "Get dataframe linking transcript ID, gene ID, and gene name", + "test_resources" : [ + { + "type" : "bash_script", + "path" : "test.sh", + "is_executable" : true + } + ], "info" : { "migration_info" : { "git_repo" : "https://github.com/nf-core/rnaseq.git", @@ -3114,8 +3121,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/tximport", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3203,13 +3210,13 @@ $( if [ ! -z ${VIASH_META_MEMORY_PIB+x} ]; then echo "${VIASH_META_MEMORY_PIB}" set -eo pipefail function clean_up { - rm -rf "\\$salmon_tmpdir" + rm -rf "\\$tmpdir" } trap clean_up EXIT -tmpdir=\\$(mktemp -d "\\$meta_temp_dir/\\$meta_functionality_name-XXXXXXXX") +tmpdir=\\$(mktemp -d "\\$meta_temp_dir/\\$meta_name-XXXXXXXX") -IFS="," read -ra results <<< \\$par_quant_results +IFS=";" read -ra results <<< \\$par_quant_results for result in \\${results[*]} do cp -r \\$result \\$tmpdir diff --git a/target/nextflow/tximport/nextflow_schema.json b/target/nextflow/tximport/nextflow_schema.json index 6bd4ddf..4298e85 100644 --- a/target/nextflow/tximport/nextflow_schema.json +++ b/target/nextflow/tximport/nextflow_schema.json @@ -17,8 +17,8 @@ "quant_results": { "type": "string", - "description": "Type: List of `file`, multiple_sep: `\",\"`. ", - "help_text": "Type: List of `file`, multiple_sep: `\",\"`. " + "description": "Type: List of `file`, multiple_sep: `\";\"`. ", + "help_text": "Type: List of `file`, multiple_sep: `\";\"`. " } @@ -62,7 +62,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. " , - "default": "$id.$key.tpm_gene.tsv" + "default":"$id.$key.tpm_gene.tsv" } @@ -73,7 +73,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene.tsv`. " , - "default": "$id.$key.counts_gene.tsv" + "default":"$id.$key.counts_gene.tsv" } @@ -84,7 +84,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. " , - "default": "$id.$key.counts_gene_length_scaled.tsv" + "default":"$id.$key.counts_gene_length_scaled.tsv" } @@ -95,7 +95,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. " , - "default": "$id.$key.counts_gene_scaled.tsv" + "default":"$id.$key.counts_gene_scaled.tsv" } @@ -106,7 +106,7 @@ "description": "Type: `file`, default: `$id.$key.lengths_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.lengths_gene.tsv`. " , - "default": "$id.$key.lengths_gene.tsv" + "default":"$id.$key.lengths_gene.tsv" } @@ -117,7 +117,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. " , - "default": "$id.$key.tpm_transcript.tsv" + "default":"$id.$key.tpm_transcript.tsv" } @@ -128,7 +128,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. " , - "default": "$id.$key.counts_transcript.tsv" + "default":"$id.$key.counts_transcript.tsv" } @@ -139,7 +139,7 @@ "description": "Type: `file`, default: `$id.$key.lengths_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.lengths_transcript.tsv`. " , - "default": "$id.$key.lengths_transcript.tsv" + "default":"$id.$key.lengths_transcript.tsv" } diff --git a/target/nextflow/ucsc/bedclip/.config.vsh.yaml b/target/nextflow/ucsc/bedclip/.config.vsh.yaml index 3e12978..e7ee1c8 100644 --- a/target/nextflow/ucsc/bedclip/.config.vsh.yaml +++ b/target/nextflow/ucsc/bedclip/.config.vsh.yaml @@ -164,8 +164,8 @@ build_info: output: "target/nextflow/ucsc/bedclip" executable: "target/nextflow/ucsc/bedclip/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/ucsc/bedclip/main.nf b/target/nextflow/ucsc/bedclip/main.nf index 4f83d13..ae37fe3 100644 --- a/target/nextflow/ucsc/bedclip/main.nf +++ b/target/nextflow/ucsc/bedclip/main.nf @@ -3018,8 +3018,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/ucsc/bedclip", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/ucsc/bedclip/nextflow_schema.json b/target/nextflow/ucsc/bedclip/nextflow_schema.json index 3455b54..456033f 100644 --- a/target/nextflow/ucsc/bedclip/nextflow_schema.json +++ b/target/nextflow/ucsc/bedclip/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.output_bedgraph.bedgraph`. bedGraph file after clipping", "help_text": "Type: `file`, default: `$id.$key.output_bedgraph.bedgraph`. bedGraph file after clipping" , - "default": "$id.$key.output_bedgraph.bedgraph" + "default":"$id.$key.output_bedgraph.bedgraph" } diff --git a/target/nextflow/ucsc/bedgraphtobigwig/.config.vsh.yaml b/target/nextflow/ucsc/bedgraphtobigwig/.config.vsh.yaml index b01b213..da8fffe 100644 --- a/target/nextflow/ucsc/bedgraphtobigwig/.config.vsh.yaml +++ b/target/nextflow/ucsc/bedgraphtobigwig/.config.vsh.yaml @@ -164,8 +164,8 @@ build_info: output: "target/nextflow/ucsc/bedgraphtobigwig" executable: "target/nextflow/ucsc/bedgraphtobigwig/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/ucsc/bedgraphtobigwig/main.nf b/target/nextflow/ucsc/bedgraphtobigwig/main.nf index 104322a..9e15629 100644 --- a/target/nextflow/ucsc/bedgraphtobigwig/main.nf +++ b/target/nextflow/ucsc/bedgraphtobigwig/main.nf @@ -3018,8 +3018,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/ucsc/bedgraphtobigwig", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/ucsc/bedgraphtobigwig/nextflow_schema.json b/target/nextflow/ucsc/bedgraphtobigwig/nextflow_schema.json index 468353f..1798946 100644 --- a/target/nextflow/ucsc/bedgraphtobigwig/nextflow_schema.json +++ b/target/nextflow/ucsc/bedgraphtobigwig/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `file`, default: `$id.$key.bigwig.bigwig`. bigWig coverage file relative to genes on the input file", "help_text": "Type: `file`, default: `$id.$key.bigwig.bigwig`. bigWig coverage file relative to genes on the input file" , - "default": "$id.$key.bigwig.bigwig" + "default":"$id.$key.bigwig.bigwig" } diff --git a/target/nextflow/umitools/umitools_dedup/.config.vsh.yaml b/target/nextflow/umitools/umitools_dedup/.config.vsh.yaml index d5af9ab..2686ec9 100644 --- a/target/nextflow/umitools/umitools_dedup/.config.vsh.yaml +++ b/target/nextflow/umitools/umitools_dedup/.config.vsh.yaml @@ -195,8 +195,8 @@ build_info: output: "target/nextflow/umitools/umitools_dedup" executable: "target/nextflow/umitools/umitools_dedup/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/umitools/umitools_dedup/main.nf b/target/nextflow/umitools/umitools_dedup/main.nf index 958b982..a2b0f9c 100644 --- a/target/nextflow/umitools/umitools_dedup/main.nf +++ b/target/nextflow/umitools/umitools_dedup/main.nf @@ -3054,8 +3054,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/umitools/umitools_dedup", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/umitools/umitools_dedup/nextflow_schema.json b/target/nextflow/umitools/umitools_dedup/nextflow_schema.json index 9ddb086..199a96d 100644 --- a/target/nextflow/umitools/umitools_dedup/nextflow_schema.json +++ b/target/nextflow/umitools/umitools_dedup/nextflow_schema.json @@ -20,7 +20,7 @@ "description": "Type: `boolean`, default: `false`. Paired fastq files or not?", "help_text": "Type: `boolean`, default: `false`. Paired fastq files or not?" , - "default": "False" + "default":false } @@ -71,7 +71,7 @@ "description": "Type: `file`, default: `$id.$key.output_bam.bam`. Deduplicated BAM file", "help_text": "Type: `file`, default: `$id.$key.output_bam.bam`. Deduplicated BAM file" , - "default": "$id.$key.output_bam.bam" + "default":"$id.$key.output_bam.bam" } @@ -82,7 +82,7 @@ "description": "Type: `file`, default: `$id.$key.output_stats.stats`. Directory containing UMI based dedupllication statistics files", "help_text": "Type: `file`, default: `$id.$key.output_stats.stats`. Directory containing UMI based dedupllication statistics files" , - "default": "$id.$key.output_stats.stats" + "default":"$id.$key.output_stats.stats" } diff --git a/target/nextflow/umitools/umitools_extract/.config.vsh.yaml b/target/nextflow/umitools/umitools_extract/.config.vsh.yaml index 3a4f0c7..6bec363 100644 --- a/target/nextflow/umitools/umitools_extract/.config.vsh.yaml +++ b/target/nextflow/umitools/umitools_extract/.config.vsh.yaml @@ -253,8 +253,8 @@ build_info: output: "target/nextflow/umitools/umitools_extract" executable: "target/nextflow/umitools/umitools_extract/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/umitools/umitools_extract/main.nf b/target/nextflow/umitools/umitools_extract/main.nf index fdb7a8c..4acd900 100644 --- a/target/nextflow/umitools/umitools_extract/main.nf +++ b/target/nextflow/umitools/umitools_extract/main.nf @@ -3119,8 +3119,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/umitools/umitools_extract", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/umitools/umitools_extract/nextflow_schema.json b/target/nextflow/umitools/umitools_extract/nextflow_schema.json index abcf58d..5bc15e7 100644 --- a/target/nextflow/umitools/umitools_extract/nextflow_schema.json +++ b/target/nextflow/umitools/umitools_extract/nextflow_schema.json @@ -20,7 +20,7 @@ "description": "Type: `boolean`, default: `false`. Paired fastq files or not?", "help_text": "Type: `boolean`, default: `false`. Paired fastq files or not?" , - "default": "False" + "default":false } @@ -61,7 +61,7 @@ "description": "Type: `file`, required, default: `$id.$key.fastq_1.fastq`. Output file for read 1", "help_text": "Type: `file`, required, default: `$id.$key.fastq_1.fastq`. Output file for read 1." , - "default": "$id.$key.fastq_1.fastq" + "default":"$id.$key.fastq_1.fastq" } @@ -72,7 +72,7 @@ "description": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2", "help_text": "Type: `file`, default: `$id.$key.fastq_2.fastq`. Output file for read 2." , - "default": "$id.$key.fastq_2.fastq" + "default":"$id.$key.fastq_2.fastq" } @@ -95,7 +95,7 @@ "enum": ["string", "regex"] , - "default": "string" + "default":"string" } @@ -106,7 +106,7 @@ "description": "Type: `string`, default: `_`. The character that separates the UMI in the read name", "help_text": "Type: `string`, default: `_`. The character that separates the UMI in the read name. Most likely a colon if you skipped the extraction with UMI-tools and used other software." , - "default": "_" + "default":"_" } @@ -119,7 +119,7 @@ "enum": ["unique", "percentile", "cluster", "adjacency", "directional"] , - "default": "directional" + "default":"directional" } @@ -132,7 +132,7 @@ "enum": [0, 1, 2] , - "default": "0" + "default":0 } diff --git a/target/nextflow/umitools_prepareforquant/.config.vsh.yaml b/target/nextflow/umitools_prepareforquant/.config.vsh.yaml index 8720981..fdaff97 100644 --- a/target/nextflow/umitools_prepareforquant/.config.vsh.yaml +++ b/target/nextflow/umitools_prepareforquant/.config.vsh.yaml @@ -156,8 +156,8 @@ build_info: output: "target/nextflow/umitools_prepareforquant" executable: "target/nextflow/umitools_prepareforquant/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" package_config: name: "rnaseq" version: "main" diff --git a/target/nextflow/umitools_prepareforquant/main.nf b/target/nextflow/umitools_prepareforquant/main.nf index 030212b..14c1787 100644 --- a/target/nextflow/umitools_prepareforquant/main.nf +++ b/target/nextflow/umitools_prepareforquant/main.nf @@ -3007,8 +3007,8 @@ meta = [ "engine" : "docker|native", "output" : "/workdir/root/repo/target/nextflow/umitools_prepareforquant", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", diff --git a/target/nextflow/umitools_prepareforquant/nextflow_schema.json b/target/nextflow/umitools_prepareforquant/nextflow_schema.json index e204915..5993e05 100644 --- a/target/nextflow/umitools_prepareforquant/nextflow_schema.json +++ b/target/nextflow/umitools_prepareforquant/nextflow_schema.json @@ -40,7 +40,7 @@ "description": "Type: `file`, default: `$id.$key.output.bam`. ", "help_text": "Type: `file`, default: `$id.$key.output.bam`. " , - "default": "$id.$key.output.bam" + "default":"$id.$key.output.bam" } @@ -51,7 +51,7 @@ "description": "Type: `file`, default: `$id.$key.log.log`. ", "help_text": "Type: `file`, default: `$id.$key.log.log`. " , - "default": "$id.$key.log.log" + "default":"$id.$key.log.log" } diff --git a/target/nextflow/workflows/genome_alignment_and_quant/.config.vsh.yaml b/target/nextflow/workflows/genome_alignment_and_quant/.config.vsh.yaml index d1f2c4f..72ffeac 100644 --- a/target/nextflow/workflows/genome_alignment_and_quant/.config.vsh.yaml +++ b/target/nextflow/workflows/genome_alignment_and_quant/.config.vsh.yaml @@ -93,32 +93,13 @@ argument_groups: multiple: false multiple_sep: ";" - type: "string" - name: "--seq_platform" - description: "Sequencing platform." + name: "--star_sjdb_gtf_feature_exon" + description: "Feature type in GTF file to be used as exons for building transcripts" info: null required: false direction: "input" multiple: false multiple_sep: ";" - - type: "string" - name: "--seq_center" - description: "Sequencing center." - info: null - required: false - direction: "input" - multiple: false - multiple_sep: ";" - - type: "string" - name: "--extra_star_align_args" - description: "Extra arguments to pass to STAR alignment command in addition to\ - \ defaults defined by the pipeline." - info: null - default: - - "" - required: false - direction: "input" - multiple: false - multiple_sep: ";" - type: "boolean" name: "--bam_csi_index" description: "Create a CSI index for BAM files instead of the traditional BAI\ @@ -603,8 +584,8 @@ build_info: output: "target/nextflow/workflows/genome_alignment_and_quant" executable: "target/nextflow/workflows/genome_alignment_and_quant/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/dependencies/vsh/vsh/biobox/main/nextflow/star/star_align_reads" - "target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort" diff --git a/target/nextflow/workflows/genome_alignment_and_quant/main.nf b/target/nextflow/workflows/genome_alignment_and_quant/main.nf index 331bd50..f37112e 100644 --- a/target/nextflow/workflows/genome_alignment_and_quant/main.nf +++ b/target/nextflow/workflows/genome_alignment_and_quant/main.nf @@ -2912,29 +2912,8 @@ meta = [ }, { "type" : "string", - "name" : "--seq_platform", - "description" : "Sequencing platform.", - "required" : false, - "direction" : "input", - "multiple" : false, - "multiple_sep" : ";" - }, - { - "type" : "string", - "name" : "--seq_center", - "description" : "Sequencing center.", - "required" : false, - "direction" : "input", - "multiple" : false, - "multiple_sep" : ";" - }, - { - "type" : "string", - "name" : "--extra_star_align_args", - "description" : "Extra arguments to pass to STAR alignment command in addition to defaults defined by the pipeline.", - "default" : [ - "" - ], + "name" : "--star_sjdb_gtf_feature_exon", + "description" : "Feature type in GTF file to be used as exons for building transcripts", "required" : false, "direction" : "input", "multiple" : false, @@ -3531,8 +3510,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/genome_alignment_and_quant", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3594,381 +3573,382 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | star_align_reads.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "fastq_1", - "input_r2": "fastq_2", - "genome_dir": "star_index", - "sjdb_gtf_file": "gtf", - "out_sam_attr_rg_line": "star_sam_attr_rg_line" - ], - toState: [ - "genome_bam": "aligned_reads", - "transcriptome_bam": "reads_aligned_to_transcriptome", - "star_multiqc": "log" - ], - args: [ - quant_mode: "TranscriptomeSAM", - twopass_mode: "Basic", - out_sam_type: "BAM;Unsorted", - run_rng_seed: 0, - out_filter_multimap_nmax: 20, - align_sjdb_overhang_min: 1, - out_sam_attributes: "NH;HI;AS;NM;MD", - quant_transcriptome_sam_output: "BanSingleEnd" - ] - ) + | star_align_reads.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "fastq_1", + "input_r2": "fastq_2", + "genome_dir": "star_index", + "sjdb_gtf_file": "gtf", + "out_sam_attr_rg_line": "star_sam_attr_rg_line", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "genome_bam": "aligned_reads", + "transcriptome_bam": "reads_aligned_to_transcriptome", + "star_multiqc": "log" + ], + args: [ + quant_mode: "TranscriptomeSAM", + twopass_mode: "Basic", + out_sam_type: "BAM;Unsorted", + run_rng_seed: 0, + out_filter_multimap_nmax: 20, + align_sjdb_overhang_min: 1, + out_sam_attributes: "NH;HI;AS;NM;MD", + quant_transcriptome_sam_output: "BanSingleEnd" + ] + ) - // GENOME BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: ["input": "genome_bam"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + // GENOME BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: ["input": "genome_bam"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - // - // Remove duplicate reads from BAM file based on UMIs - // - - // Deduplicate genome BAM file - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "get_output_stats": "umi_dedup_stats" - ], - toState: [ "genome_bam_sorted": "output_bam" ], - key: "genome_deduped" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_deduped" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta", - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_deduped_idxstats" - ) + // + // Remove duplicate reads from BAM file based on UMIs + // + + // Deduplicate genome BAM file + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "get_output_stats": "umi_dedup_stats" + ], + toState: [ "genome_bam_sorted": "output_bam" ], + key: "genome_deduped" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_deduped" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta", + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_deduped_idxstats" + ) - // Deduplicate transcriptome BAM file + // Deduplicate transcriptome BAM file - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ], - key: "transcriptome_sorted" - ) - | samtools_index.run ( + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "csi": "bam_csi_index" + ], + toState: [ "transcriptome_bam_index": "output" ], + key: "transcriptome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index", + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_idxstats" + ) + + | umitools_dedup.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "paired": "paired", + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index", + "get_output_stats": "umi_dedup_stats", + ], + toState: [ "transcriptome_bam_deduped": "output_bam" ], + key: "transcriptome_deduped" + ) + | samtools_sort.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ "input": "transcriptome_bam_deduped" ], + toState: [ "transcriptome_bam": "output" ], + key: "transcriptome_deduped_sorted" + ) + | samtools_index.run ( runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, fromState: [ "input": "transcriptome_bam", "csi": "bam_csi_index" ], toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index", - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_idxstats" - ) - - | umitools_dedup.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "paired": "paired", - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index", - "get_output_stats": "umi_dedup_stats", - ], - toState: [ "transcriptome_bam_deduped": "output_bam" ], - key: "transcriptome_deduped" - ) - | samtools_sort.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ "input": "transcriptome_bam_deduped" ], - toState: [ "transcriptome_bam": "output" ], key: "transcriptome_deduped_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "csi": "bam_csi_index" - ], - toState: [ "transcriptome_bam_index": "output" ], - key: "transcriptome_deduped_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "input": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_stats": "output" ], - key: "transcriptome_deduped_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_flagstat": "output" ], - key: "transcriptome_deduped_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, - fromState: [ - "bam": "transcriptome_bam", - "bai": "transcriptome_bam_index" - ], - toState: [ "transcriptome_bam_idxstats": "output" ], - key: "transcriptome_deduped_idxstats" - ) + ) + | samtools_stats.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "input": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_stats": "output" ], + key: "transcriptome_deduped_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_flagstat": "output" ], + key: "transcriptome_deduped_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.with_umi && state.aligner == 'star_salmon' }, + fromState: [ + "bam": "transcriptome_bam", + "bai": "transcriptome_bam_index" + ], + toState: [ "transcriptome_bam_idxstats": "output" ], + key: "transcriptome_deduped_idxstats" + ) - // Fix paired-end reads in name sorted BAM file - | umitools_prepareforquant.run ( - runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, - fromState: [ "bam": "transcriptome_bam" ], - toState: [ "transcriptome_bam": "output" ] - ) + // Fix paired-end reads in name sorted BAM file + | umitools_prepareforquant.run ( + runIf: { id, state -> state.with_umi && state.paired && state.aligner == 'star_salmon' }, + fromState: [ "bam": "transcriptome_bam" ], + toState: [ "transcriptome_bam": "output" ] + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.aligner == 'star_salmon' }, - fromState: [ - "lib_type": "lib_type", - "alignments": "transcriptome_bam", - "targets": "transcript_fasta", - "gene_map": "gtf" - ], - toState: [ - "quant_out_dir": "output", - "quant_results_file": "quant_results" - ] - ) + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.aligner == 'star_salmon' }, + fromState: [ + "lib_type": "lib_type", + "alignments": "transcriptome_bam", + "targets": "transcript_fasta", + "gene_map": "gtf" + ], + toState: [ + "quant_out_dir": "output", + "quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - - | rsem_calculate_expression.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "id": "id", - "strandedness": "strandedness", - "paired": "paired", - "input": "input", - "index": "rsem_index", - "extra_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "rsem_counts_gene": "counts_gene", - "rsem_counts_transcripts": "counts_transcripts", - "rsem_multiqc": "stat", - "star_multiqc": "logs", - "bam_star_rsem": "bam_star", - "bam_genome_rsem": "bam_genome", - "bam_transcript_rsem": "bam_transcript" - ] - ) - - // RSEM_Star BAM - | samtools_sort.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: ["input": "bam_star_rsem"], - toState: ["genome_bam_sorted": "output"], - key: "genome_sorted" - ) - | samtools_index.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted" - ) - | samtools_stats.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "input": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_stats": "output" ], - key: "genome_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "genome_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "bam": "genome_bam_sorted", - "bai": "genome_bam_index", - "fasta": "fasta" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "genome_idxstats" - ) + | map { id, state -> + def mod_state = (state.aligner == 'star_salmon') ? state + [salmon_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } + + | rsem_calculate_expression.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "id": "id", + "strandedness": "strandedness", + "paired": "paired", + "input": "input", + "index": "rsem_index", + "extra_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "rsem_counts_gene": "counts_gene", + "rsem_counts_transcripts": "counts_transcripts", + "rsem_multiqc": "stat", + "star_multiqc": "logs", + "bam_star_rsem": "bam_star", + "bam_genome_rsem": "bam_genome", + "bam_transcript_rsem": "bam_transcript" + ] + ) + + // RSEM_Star BAM + | samtools_sort.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: ["input": "bam_star_rsem"], + toState: ["genome_bam_sorted": "output"], + key: "genome_sorted" + ) + | samtools_index.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted" + ) + | samtools_stats.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "input": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_stats": "output" ], + key: "genome_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "genome_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "bam": "genome_bam_sorted", + "bai": "genome_bam_index", + "fasta": "fasta" + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "genome_idxstats" + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" ] - ) + | setState ( + [ "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" ] + ) emit: output_ch diff --git a/target/nextflow/workflows/genome_alignment_and_quant/nextflow_schema.json b/target/nextflow/workflows/genome_alignment_and_quant/nextflow_schema.json index dfe1afe..e52eb86 100644 --- a/target/nextflow/workflows/genome_alignment_and_quant/nextflow_schema.json +++ b/target/nextflow/workflows/genome_alignment_and_quant/nextflow_schema.json @@ -92,41 +92,20 @@ "description": "Type: `boolean`, default: `false`. When using pre-built STAR indices do not re-extract and use splice junctions from the GTF file", "help_text": "Type: `boolean`, default: `false`. When using pre-built STAR indices do not re-extract and use splice junctions from the GTF file" , - "default": "False" + "default":false } , - "seq_platform": { + "star_sjdb_gtf_feature_exon": { "type": "string", - "description": "Type: `string`. Sequencing platform", - "help_text": "Type: `string`. Sequencing platform." + "description": "Type: `string`. Feature type in GTF file to be used as exons for building transcripts", + "help_text": "Type: `string`. Feature type in GTF file to be used as exons for building transcripts" } - , - "seq_center": { - "type": - "string", - "description": "Type: `string`. Sequencing center", - "help_text": "Type: `string`. Sequencing center." - - } - - - , - "extra_star_align_args": { - "type": - "string", - "description": "Type: `string`, default: ``. Extra arguments to pass to STAR alignment command in addition to defaults defined by the pipeline", - "help_text": "Type: `string`, default: ``. Extra arguments to pass to STAR alignment command in addition to defaults defined by the pipeline." - , - "default": "" - } - - , "bam_csi_index": { "type": @@ -134,7 +113,7 @@ "description": "Type: `boolean`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index", "help_text": "Type: `boolean`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index. This will be required for genomes with larger chromosome sizes." , - "default": "False" + "default":false } @@ -145,7 +124,7 @@ "description": "Type: `boolean`, default: `false`. Generate output stats when running \"umi_tools dedup\"", "help_text": "Type: `boolean`, default: `false`. Generate output stats when running \"umi_tools dedup\"." , - "default": "False" + "default":false } @@ -156,7 +135,7 @@ "description": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication", "help_text": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication." , - "default": "False" + "default":false } @@ -177,7 +156,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ``. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline." , - "default": "" + "default":"" } @@ -188,7 +167,7 @@ "description": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon." , - "default": "gene_id" + "default":"gene_id" } @@ -199,7 +178,7 @@ "description": "Type: `string`, default: `gene_name`. By default, the pipeline uses the gene_name field to obtain additional gene identifiers from the input GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_name`. By default, the pipeline uses the gene_name field to obtain additional gene identifiers from the input GTF file when running Salmon." , - "default": "gene_name" + "default":"gene_name" } @@ -222,7 +201,7 @@ "enum": ["star_salmon", "star_rsem", "hisat2"] , - "default": "star_salmon" + "default":"star_salmon" } @@ -263,7 +242,7 @@ "description": "Type: `file`, default: `$id.$key.star_multiqc.log`. ", "help_text": "Type: `file`, default: `$id.$key.star_multiqc.log`. " , - "default": "$id.$key.star_multiqc.log" + "default":"$id.$key.star_multiqc.log" } @@ -274,7 +253,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_sorted.bam`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_sorted.bam`. " , - "default": "$id.$key.genome_bam_sorted.bam" + "default":"$id.$key.genome_bam_sorted.bam" } @@ -285,7 +264,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. " , - "default": "$id.$key.genome_bam_index.bai" + "default":"$id.$key.genome_bam_index.bai" } @@ -296,7 +275,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. " , - "default": "$id.$key.genome_bam_stats.stats" + "default":"$id.$key.genome_bam_stats.stats" } @@ -307,7 +286,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. " , - "default": "$id.$key.genome_bam_flagstat.flagstat" + "default":"$id.$key.genome_bam_flagstat.flagstat" } @@ -318,7 +297,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. " , - "default": "$id.$key.genome_bam_idxstats.idxstats" + "default":"$id.$key.genome_bam_idxstats.idxstats" } @@ -329,7 +308,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam.bam`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam.bam`. " , - "default": "$id.$key.transcriptome_bam.bam" + "default":"$id.$key.transcriptome_bam.bam" } @@ -340,7 +319,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_index.bai`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_index.bai`. " , - "default": "$id.$key.transcriptome_bam_index.bai" + "default":"$id.$key.transcriptome_bam_index.bai" } @@ -351,7 +330,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_stats.stats`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_stats.stats`. " , - "default": "$id.$key.transcriptome_bam_stats.stats" + "default":"$id.$key.transcriptome_bam_stats.stats" } @@ -362,7 +341,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_flagstat.flagstat`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_flagstat.flagstat`. " , - "default": "$id.$key.transcriptome_bam_flagstat.flagstat" + "default":"$id.$key.transcriptome_bam_flagstat.flagstat" } @@ -373,7 +352,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_idxstats.idxstats`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_idxstats.idxstats`. " , - "default": "$id.$key.transcriptome_bam_idxstats.idxstats" + "default":"$id.$key.transcriptome_bam_idxstats.idxstats" } @@ -384,7 +363,7 @@ "description": "Type: `file`, default: `$id.$key.quant_out_dir.salmon_quant`. ", "help_text": "Type: `file`, default: `$id.$key.quant_out_dir.salmon_quant`. " , - "default": "$id.$key.quant_out_dir.salmon_quant" + "default":"$id.$key.quant_out_dir.salmon_quant" } @@ -395,7 +374,7 @@ "description": "Type: `file`, default: `$id.$key.quant_results_file.sf`. ", "help_text": "Type: `file`, default: `$id.$key.quant_results_file.sf`. " , - "default": "$id.$key.quant_results_file.sf" + "default":"$id.$key.quant_results_file.sf" } @@ -406,7 +385,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_multiqc.salmon_multiqc`. ", "help_text": "Type: `file`, default: `$id.$key.salmon_multiqc.salmon_multiqc`. " , - "default": "$id.$key.salmon_multiqc.salmon_multiqc" + "default":"$id.$key.salmon_multiqc.salmon_multiqc" } @@ -417,7 +396,7 @@ "description": "Type: `file`, default: `$id.$key.rsem_counts_gene.results`. Expression counts on gene level", "help_text": "Type: `file`, default: `$id.$key.rsem_counts_gene.results`. Expression counts on gene level" , - "default": "$id.$key.rsem_counts_gene.results" + "default":"$id.$key.rsem_counts_gene.results" } @@ -428,7 +407,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcripts.results`. Expression counts on transcript level", "help_text": "Type: `file`, default: `$id.$key.counts_transcripts.results`. Expression counts on transcript level" , - "default": "$id.$key.counts_transcripts.results" + "default":"$id.$key.counts_transcripts.results" } @@ -439,7 +418,7 @@ "description": "Type: `file`, default: `$id.$key.rsem_multiqc.stat`. RSEM statistics", "help_text": "Type: `file`, default: `$id.$key.rsem_multiqc.stat`. RSEM statistics" , - "default": "$id.$key.rsem_multiqc.stat" + "default":"$id.$key.rsem_multiqc.stat" } @@ -450,7 +429,7 @@ "description": "Type: `file`, default: `$id.$key.bam_star_rsem.bam`. BAM file generated by STAR (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_star_rsem.bam`. BAM file generated by STAR (optional)" , - "default": "$id.$key.bam_star_rsem.bam" + "default":"$id.$key.bam_star_rsem.bam" } @@ -461,7 +440,7 @@ "description": "Type: `file`, default: `$id.$key.bam_genome_rsem.bam`. Genome BAM file (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_genome_rsem.bam`. Genome BAM file (optional)" , - "default": "$id.$key.bam_genome_rsem.bam" + "default":"$id.$key.bam_genome_rsem.bam" } @@ -472,7 +451,7 @@ "description": "Type: `file`, default: `$id.$key.bam_transcript_rsem.bam`. Transcript BAM file (optional)", "help_text": "Type: `file`, default: `$id.$key.bam_transcript_rsem.bam`. Transcript BAM file (optional)" , - "default": "$id.$key.bam_transcript_rsem.bam" + "default":"$id.$key.bam_transcript_rsem.bam" } diff --git a/target/nextflow/workflows/merge_quant_results/.config.vsh.yaml b/target/nextflow/workflows/merge_quant_results/.config.vsh.yaml index 6775f17..3428398 100644 --- a/target/nextflow/workflows/merge_quant_results/.config.vsh.yaml +++ b/target/nextflow/workflows/merge_quant_results/.config.vsh.yaml @@ -278,8 +278,8 @@ build_info: output: "target/nextflow/workflows/merge_quant_results" executable: "target/nextflow/workflows/merge_quant_results/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/tx2gene" - "target/nextflow/tximport" diff --git a/target/nextflow/workflows/merge_quant_results/main.nf b/target/nextflow/workflows/merge_quant_results/main.nf index caceee8..f058526 100644 --- a/target/nextflow/workflows/merge_quant_results/main.nf +++ b/target/nextflow/workflows/merge_quant_results/main.nf @@ -3149,8 +3149,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/merge_quant_results", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3206,62 +3206,62 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results - [id, state + [quant_results: quant_results]] - } - - | tx2gene.run ( - fromState: [ - "quant_results": "quant_results", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf": "gtf", - "gtf_group_features": "gtf_group_features", - "quant_type": "quant_type" - ], - toState: [ "tx2gene_tsv": "tsv" ] - ) + | map { id, state -> + def quant_results = state.quant_type == 'kallisto' ? state.kallisto_quant_results : state.salmon_quant_results + [id, state + [quant_results: quant_results]] + } + + | tx2gene.run ( + fromState: [ + "quant_results": "quant_results", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf": "gtf", + "gtf_group_features": "gtf_group_features", + "quant_type": "quant_type" + ], + toState: [ "tx2gene_tsv": "tsv" ] + ) - | tximport.run ( - fromState: [ - "quant_results": "quant_results", - "tx2gene_tsv": "tx2gene_tsv", - "quant_type": "quant_type" - ], - toState: [ - "tpm_gene": "tpm_gene", + | tximport.run ( + fromState: [ + "quant_results": "quant_results", + "tx2gene_tsv": "tx2gene_tsv", + "quant_type": "quant_type" + ], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "length_gene": "length_gene", + "length_transcript": "length_transcript" + ] + ) + + | summarizedexperiment.run ( + fromState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "tx2gene_tsv": "tx2gene_tsv" + ], + toState: [ "quant_merged_summarizedexperiment": "output" ] + ) + + | setState ( + [ "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "length_gene": "length_gene", - "length_transcript": "length_transcript" - ] - ) - - | summarizedexperiment.run ( - fromState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "tx2gene_tsv": "tx2gene_tsv" - ], - toState: [ "quant_merged_summarizedexperiment": "output" ] - ) - - | setState ( - [ "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] - ) + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" ] + ) emit: output_ch diff --git a/target/nextflow/workflows/merge_quant_results/nextflow_schema.json b/target/nextflow/workflows/merge_quant_results/nextflow_schema.json index e8b9d19..46a1adb 100644 --- a/target/nextflow/workflows/merge_quant_results/nextflow_schema.json +++ b/target/nextflow/workflows/merge_quant_results/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `string`, default: `gene_name`. ", "help_text": "Type: `string`, default: `gene_name`. " , - "default": "gene_name" + "default":"gene_name" } @@ -61,7 +61,7 @@ "description": "Type: `string`, default: `gene_id`. ", "help_text": "Type: `string`, default: `gene_id`. " , - "default": "gene_id" + "default":"gene_id" } @@ -74,7 +74,7 @@ "enum": ["salmon", "kallisto"] , - "default": "salmon" + "default":"salmon" } @@ -105,7 +105,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_gene.tsv`, example: `gene_tpm.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_gene.tsv`, example: `gene_tpm.tsv`. " , - "default": "$id.$key.tpm_gene.tsv" + "default":"$id.$key.tpm_gene.tsv" } @@ -116,7 +116,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene.tsv`, example: `gene_counts.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene.tsv`, example: `gene_counts.tsv`. " , - "default": "$id.$key.counts_gene.tsv" + "default":"$id.$key.counts_gene.tsv" } @@ -127,7 +127,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`, example: `gene_counts_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`, example: `gene_counts_length_scaled.tsv`. " , - "default": "$id.$key.counts_gene_length_scaled.tsv" + "default":"$id.$key.counts_gene_length_scaled.tsv" } @@ -138,7 +138,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`, example: `gene_counts_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`, example: `gene_counts_scaled.tsv`. " , - "default": "$id.$key.counts_gene_scaled.tsv" + "default":"$id.$key.counts_gene_scaled.tsv" } @@ -149,7 +149,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`, example: `transcript_tpm.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`, example: `transcript_tpm.tsv`. " , - "default": "$id.$key.tpm_transcript.tsv" + "default":"$id.$key.tpm_transcript.tsv" } @@ -160,7 +160,7 @@ "description": "Type: `file`, default: `$id.$key.lengths_gene.tsv`, example: `gene_length.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.lengths_gene.tsv`, example: `gene_length.tsv`. " , - "default": "$id.$key.lengths_gene.tsv" + "default":"$id.$key.lengths_gene.tsv" } @@ -171,7 +171,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcript.tsv`, example: `transcript_counts.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_transcript.tsv`, example: `transcript_counts.tsv`. " , - "default": "$id.$key.counts_transcript.tsv" + "default":"$id.$key.counts_transcript.tsv" } @@ -182,7 +182,7 @@ "description": "Type: `file`, default: `$id.$key.lengths_transcript.tsv`, example: `transcript_length.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.lengths_transcript.tsv`, example: `transcript_length.tsv`. " , - "default": "$id.$key.lengths_transcript.tsv" + "default":"$id.$key.lengths_transcript.tsv" } @@ -193,7 +193,7 @@ "description": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`, example: `quant_merged_summarizedexperiment`. ", "help_text": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`, example: `quant_merged_summarizedexperiment`. " , - "default": "$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" + "default":"$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" } diff --git a/target/nextflow/workflows/post_processing/.config.vsh.yaml b/target/nextflow/workflows/post_processing/.config.vsh.yaml index d9ff108..3af316b 100644 --- a/target/nextflow/workflows/post_processing/.config.vsh.yaml +++ b/target/nextflow/workflows/post_processing/.config.vsh.yaml @@ -486,8 +486,8 @@ build_info: output: "target/nextflow/workflows/post_processing" executable: "target/nextflow/workflows/post_processing/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/picard_markduplicates" - "target/dependencies/vsh/vsh/biobox/main/nextflow/samtools/samtools_sort" diff --git a/target/nextflow/workflows/post_processing/main.nf b/target/nextflow/workflows/post_processing/main.nf index a709ed8..a22daab 100644 --- a/target/nextflow/workflows/post_processing/main.nf +++ b/target/nextflow/workflows/post_processing/main.nf @@ -3397,8 +3397,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/post_processing", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3463,154 +3463,154 @@ workflow run_wf { main: output_ch = input_ch - | picard_markduplicates.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "genome_bam", - "fasta": "fasta", - "fai": "fai", - "extra_picard_args": "extra_picard_args" - ], - toState: [ - "processed_genome_bam": "output_bam", - "markduplicates_metrics": "metrics" - ] - ) - | samtools_sort.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ "input": "processed_genome_bam" ], - toState: [ "processed_genome_bam": "output" ], - key: "genome_sorted_MarkDuplicates" - ) - | samtools_index.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "csi": "bam_csi_index" - ], - toState: [ "genome_bam_index": "output" ], - key: "genome_sorted_MarkDuplicates", - ) - | samtools_stats.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "input": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_stats": "output" ], - key: "MarkDuplicates_stats" - ) - | samtools_flagstat.run ( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ + | picard_markduplicates.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "genome_bam", + "fasta": "fasta", + "fai": "fai", + "extra_picard_args": "extra_picard_args" + ], + toState: [ + "processed_genome_bam": "output_bam", + "markduplicates_metrics": "metrics" + ] + ) + | samtools_sort.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "input": "processed_genome_bam" ], + toState: [ "processed_genome_bam": "output" ], + key: "genome_sorted_MarkDuplicates" + ) + | samtools_index.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "csi": "bam_csi_index" + ], + toState: [ "genome_bam_index": "output" ], + key: "genome_sorted_MarkDuplicates", + ) + | samtools_stats.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "input": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_stats": "output" ], + key: "MarkDuplicates_stats" + ) + | samtools_flagstat.run ( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ + "bam": "processed_genome_bam", + "bai": "genome_bam_index" + ], + toState: [ "genome_bam_flagstat": "output" ], + key: "MarkDuplicates_flagstat" + ) + | samtools_idxstats.run( + runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, + fromState: [ "bam": "processed_genome_bam", "bai": "genome_bam_index" - ], - toState: [ "genome_bam_flagstat": "output" ], - key: "MarkDuplicates_flagstat" - ) - | samtools_idxstats.run( - runIf: { id, state -> !state.skip_markduplicates && !state.with_umi }, - fromState: [ - "bam": "processed_genome_bam", - "bai": "genome_bam_index" - ], - toState: [ "genome_bam_idxstats": "output" ], - key: "MarkDuplicates_idxstats" - ) + ], + toState: [ "genome_bam_idxstats": "output" ], + key: "MarkDuplicates_idxstats" + ) - | stringtie.run ( - runIf: { id, state -> !state.skip_stringtie }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "annotation_gtf": "gtf", - "extra_stringtie_args": "extra_stringtie_args" - ], - toState: [ - "stringtie_transcript_gtf": "transcript_gtf", - "stringtie_coverage_gtf": "coverage_gtf", - "stringtie_abundance": "abundance", - "stringtie_ballgown": "ballgown" - ] - ) + | stringtie.run ( + runIf: { id, state -> !state.skip_stringtie }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "annotation_gtf": "gtf", + "extra_stringtie_args": "extra_stringtie_args" + ], + toState: [ + "stringtie_transcript_gtf": "transcript_gtf", + "stringtie_coverage_gtf": "coverage_gtf", + "stringtie_abundance": "abundance", + "stringtie_ballgown": "ballgown" + ] + ) - // Genome-wide coverage with BEDTools + // Genome-wide coverage with BEDTools - | bedtools_genomecov.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "strandedness": "strandedness", - "bam": "processed_genome_bam", - "extra_bedtools_args": "extra_bedtools_args" - ], - toState: [ + | bedtools_genomecov.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "strandedness": "strandedness", + "bam": "processed_genome_bam", + "extra_bedtools_args": "extra_bedtools_args" + ], + toState: [ + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse" + ] + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bedgraph_forward": "output_bedgraph" ], + key: "bedclip_forward" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_forward", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_forward": "bigwig" ], + key: "bedgraphtobigwig_forward" + ) + + | bedclip.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "input_bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes", + ], + toState: [ "bedgraph_reverse": "output_bedgraph" ], + key: "bedclip_reverse" + ) + + | bedgraphtobigwig.run ( + runIf: { id, state -> !state.skip_bigwig }, + fromState: [ + "bedgraph": "bedgraph_reverse", + "sizes": "chrom_sizes" + ], + toState: [ "bigwig_reverse": "bigwig" ], + key: "bedgraphtobigwig_reverse" + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "processed_genome_bam": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse" - ] - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bedgraph_forward": "output_bedgraph" ], - key: "bedclip_forward" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_forward", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_forward": "bigwig" ], - key: "bedgraphtobigwig_forward" - ) - - | bedclip.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "input_bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes", - ], - toState: [ "bedgraph_reverse": "output_bedgraph" ], - key: "bedclip_reverse" - ) - - | bedgraphtobigwig.run ( - runIf: { id, state -> !state.skip_bigwig }, - fromState: [ - "bedgraph": "bedgraph_reverse", - "sizes": "chrom_sizes" - ], - toState: [ "bigwig_reverse": "bigwig" ], - key: "bedgraphtobigwig_reverse" - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - "processed_genome_bam": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ) + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ) emit: output_ch diff --git a/target/nextflow/workflows/post_processing/nextflow_schema.json b/target/nextflow/workflows/post_processing/nextflow_schema.json index ca7d7bf..1b74211 100644 --- a/target/nextflow/workflows/post_processing/nextflow_schema.json +++ b/target/nextflow/workflows/post_processing/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `string`, default: `auto`. Sample strand-specificity", "help_text": "Type: `string`, default: `auto`. Sample strand-specificity. Must be one of unstranded, forward, reverse or auto" , - "default": "auto" + "default":"auto" } @@ -111,7 +111,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to picard MarkDuplicates command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ``. Extra arguments to pass to picard MarkDuplicates command in addition to defaults defined by the pipeline." , - "default": "" + "default":"" } @@ -122,7 +122,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to stringtie command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ``. Extra arguments to pass to stringtie command in addition to defaults defined by the pipeline." , - "default": "" + "default":"" } @@ -143,7 +143,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to bedtools genomecov command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ``. Extra arguments to pass to bedtools genomecov command in addition to defaults defined by the pipeline." , - "default": "" + "default":"" } @@ -154,7 +154,7 @@ "description": "Type: `boolean`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index", "help_text": "Type: `boolean`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index. This will be required for genomes with larger chromosome sizes." , - "default": "False" + "default":false } @@ -175,7 +175,7 @@ "description": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication", "help_text": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication." , - "default": "False" + "default":false } @@ -236,7 +236,7 @@ "description": "Type: `file`, default: `$id.$key.processed_genome_bam.bam`. ", "help_text": "Type: `file`, default: `$id.$key.processed_genome_bam.bam`. " , - "default": "$id.$key.processed_genome_bam.bam" + "default":"$id.$key.processed_genome_bam.bam" } @@ -247,7 +247,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. " , - "default": "$id.$key.genome_bam_index.bai" + "default":"$id.$key.genome_bam_index.bai" } @@ -258,7 +258,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. " , - "default": "$id.$key.genome_bam_stats.stats" + "default":"$id.$key.genome_bam_stats.stats" } @@ -269,7 +269,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. " , - "default": "$id.$key.genome_bam_flagstat.flagstat" + "default":"$id.$key.genome_bam_flagstat.flagstat" } @@ -280,7 +280,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. " , - "default": "$id.$key.genome_bam_idxstats.idxstats" + "default":"$id.$key.genome_bam_idxstats.idxstats" } @@ -291,7 +291,7 @@ "description": "Type: `file`, default: `$id.$key.markduplicates_metrics.txt`. ", "help_text": "Type: `file`, default: `$id.$key.markduplicates_metrics.txt`. " , - "default": "$id.$key.markduplicates_metrics.txt" + "default":"$id.$key.markduplicates_metrics.txt" } @@ -302,7 +302,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_transcript_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_transcript_gtf.gtf`. " , - "default": "$id.$key.stringtie_transcript_gtf.gtf" + "default":"$id.$key.stringtie_transcript_gtf.gtf" } @@ -313,7 +313,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_coverage_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_coverage_gtf.gtf`. " , - "default": "$id.$key.stringtie_coverage_gtf.gtf" + "default":"$id.$key.stringtie_coverage_gtf.gtf" } @@ -324,7 +324,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_abundance.txt`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_abundance.txt`. " , - "default": "$id.$key.stringtie_abundance.txt" + "default":"$id.$key.stringtie_abundance.txt" } @@ -335,7 +335,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_ballgown.ballgown`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_ballgown.ballgown`. " , - "default": "$id.$key.stringtie_ballgown.ballgown" + "default":"$id.$key.stringtie_ballgown.ballgown" } @@ -346,7 +346,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. " , - "default": "$id.$key.bedgraph_forward.bedgraph" + "default":"$id.$key.bedgraph_forward.bedgraph" } @@ -357,7 +357,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. " , - "default": "$id.$key.bedgraph_reverse.bedgraph" + "default":"$id.$key.bedgraph_reverse.bedgraph" } @@ -368,7 +368,7 @@ "description": "Type: `file`, default: `$id.$key.bigwig_forward.bigwig`. ", "help_text": "Type: `file`, default: `$id.$key.bigwig_forward.bigwig`. " , - "default": "$id.$key.bigwig_forward.bigwig" + "default":"$id.$key.bigwig_forward.bigwig" } @@ -379,7 +379,7 @@ "description": "Type: `file`, default: `$id.$key.bigwig_reverse.bigwig`. ", "help_text": "Type: `file`, default: `$id.$key.bigwig_reverse.bigwig`. " , - "default": "$id.$key.bigwig_reverse.bigwig" + "default":"$id.$key.bigwig_reverse.bigwig" } diff --git a/target/nextflow/workflows/pre_processing/.config.vsh.yaml b/target/nextflow/workflows/pre_processing/.config.vsh.yaml index b347530..d182b2f 100644 --- a/target/nextflow/workflows/pre_processing/.config.vsh.yaml +++ b/target/nextflow/workflows/pre_processing/.config.vsh.yaml @@ -673,8 +673,8 @@ build_info: output: "target/nextflow/workflows/pre_processing" executable: "target/nextflow/workflows/pre_processing/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/fastqc" - "target/nextflow/umitools/umitools_extract" diff --git a/target/nextflow/workflows/pre_processing/main.nf b/target/nextflow/workflows/pre_processing/main.nf index 0d6923b..26148bb 100644 --- a/target/nextflow/workflows/pre_processing/main.nf +++ b/target/nextflow/workflows/pre_processing/main.nf @@ -3626,8 +3626,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/pre_processing", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3690,238 +3690,238 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [paired: paired, input: input] ] - } - - // Perform QC on input fastq files - | fastqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2" - ] - ) - - // Extract UMIs from fastq files and discard read 1 or read 2 if required - | umitools_extract.run ( - runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] - [ paired: state.paired, - input: input, - bc_pattern: bc_pattern, - umi_discard_read: state.umi_discard_read ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Discard read if required - | map { id, state -> - def paired = state.paired - def fastq_2 = state.fastq_2 - if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { - fastq_2 = state.remove(state.fastq_2) - paired = false + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [paired: paired, input: input] ] } - [ id, state + [paired: paired, fastq_2: fastq_2] ] - } - // Trim reads using Trim galore! - | trimgalore.run ( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - min_trimmed_reads: state.min_trimmed_reads ] - }, - toState: [ - "fastq_1": "trimmed_r1", - "fastq_2": "trimmed_r2", - "trim_log_1": "trimming_report_r1", - "trim_log_2": "trimming_report_r2", - "trim_zip_1": "trimmed_fastqc_zip_1", - "trim_zip_2": "trimmed_fastqc_zip_2", - "trim_html_1": "trimmed_fastqc_html_1", - "trim_html_2": "trimmed_fastqc_html_2" - ], - args: [gzip: true, fastqc: true] - ) - - // Trim reads using fastp - | fastp.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: [ - "in1": "fastq_1", - "in2": "fastq_2", - "merge": "fastp_save_merged", - "interleaved_in": "interleaved_reads", - "detect_adapter_for_pe": "fastp_pe_detect_adapter", - "adapter_fasta": "fastp_adapter_fasta" - ], - toState: [ - "fastq_1": "out1", - "fastq_2": "out2", - "failed_trim": "failed_out", - "failed_trim_unpaired1": "unpaired1", - "failed_trim_unpaired2": "unpaired2", - "trim_json": "json", - "trim_html": "html", - "trim_merged_out": "merged_out" - ] - ) - - // Perform FASTQC on reads trimmed using fastp - | fastqc.run( - runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input ] - }, - toState: [ - "trim_html_1": "fastqc_html_1", - "trim_html_2": "fastqc_html_2", - "trim_zip_1": "fastqc_zip_1", - "trim_zip_2": "fastqc_zip_2" - ], - key: "fastqc_trimming" - ) - - // Filter out contaminant RNA - | bbmap_bbsplit.run ( - runIf: { id, state -> !state.skip_bbsplit }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ paired: state.paired, - input: input, - built_bbsplit_index: state.bbsplit_index ] - }, - args: ["only_build_index": false], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) - - // Sort reads by rRNA and non-rRNA - | sortmerna.run ( - runIf: { id, state -> state.remove_ribo_rna }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def filePaths = state.ribo_database_manifest.readLines() - def refs = filePaths.collect { it } - [ paired: state.paired, - input: input, - ribo_database_manifest: refs ] - }, - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "sortmerna_log": "sortmerna_log" - ] - ) - - // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness - | fq_subsample.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - [ - input: input, - extra_args: state.extra_fq_subsample_args + // Perform QC on input fastq files + | fastqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_fastqc }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2" ] - }, - toState: [ - "subsampled_fastq_1": "output_1", - "subsampled_fastq_2": "output_2" - ] - ) + ) - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - | salmon_quant.run ( - runIf: { id, state -> state.strandedness == 'auto' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null - def mates1 = state.paired ? state.subsampled_fastq_1 : null - def mates2 = state.paired ? state.subsampled_fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - args: [ "skip_quant": true ], - toState: [ "salmon_quant_output": "output" ] - ) + // Extract UMIs from fastq files and discard read 1 or read 2 if required + | umitools_extract.run ( + runIf: { id, state -> state.with_umi && !state.skip_umi_extract }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def bc_pattern = state.paired ? [ state.umitools_bc_pattern, state.umitools_bc_pattern2 ] : [ state.umitools_bc_pattern ] + [ paired: state.paired, + input: input, + bc_pattern: bc_pattern, + umi_discard_read: state.umi_discard_read ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Discard read if required + | map { id, state -> + def paired = state.paired + def fastq_2 = state.fastq_2 + if (paired && state.with_umi && !state.skip_umi_extract && state.umi_discard_read != 0) { + fastq_2 = state.remove(state.fastq_2) + paired = false + } + [ id, state + [paired: paired, fastq_2: fastq_2] ] + } - | map { id, state -> - def mod_state = (!state.paired) ? - [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : - [] - [ id, state + mod_state ] - } + // Trim reads using Trim galore! + | trimgalore.run ( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "trimgalore" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + min_trimmed_reads: state.min_trimmed_reads ] + }, + toState: [ + "fastq_1": "trimmed_r1", + "fastq_2": "trimmed_r2", + "trim_log_1": "trimming_report_r1", + "trim_log_2": "trimming_report_r2", + "trim_zip_1": "trimmed_fastqc_zip_1", + "trim_zip_2": "trimmed_fastqc_zip_2", + "trim_html_1": "trimmed_fastqc_html_1", + "trim_html_2": "trimmed_fastqc_html_2" + ], + args: [gzip: true, fastqc: true] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + // Trim reads using fastp + | fastp.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: [ + "in1": "fastq_1", + "in2": "fastq_2", + "merge": "fastp_save_merged", + "interleaved_in": "interleaved_reads", + "detect_adapter_for_pe": "fastp_pe_detect_adapter", + "adapter_fasta": "fastp_adapter_fasta" + ], + toState: [ + "fastq_1": "out1", + "fastq_2": "out2", + "failed_trim": "failed_out", + "failed_trim_unpaired1": "unpaired1", + "failed_trim_unpaired2": "unpaired2", + "trim_json": "json", + "trim_html": "html", + "trim_merged_out": "merged_out" + ] + ) - | setState ( - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "qc_output1": "fastq_1", - "qc_output2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "failed_trim": "failed_trim", - "failed_trim_unpaired1": "failed_trim_unpaired1", - "failed_trim_unpaired2": "failed_trim_unpaired2", - "trim_json": "trim_json", - "trim_html": "trim_html", - "trim_merged_out": "trim_merged_out", - "salmon_quant_output": "salmon_quant_output" - ) + // Perform FASTQC on reads trimmed using fastp + | fastqc.run( + runIf: { id, state -> !state.skip_trimming && state.trimmer == "fastp" }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input ] + }, + toState: [ + "trim_html_1": "fastqc_html_1", + "trim_html_2": "fastqc_html_2", + "trim_zip_1": "fastqc_zip_1", + "trim_zip_2": "fastqc_zip_2" + ], + key: "fastqc_trimming" + ) + + // Filter out contaminant RNA + | bbmap_bbsplit.run ( + runIf: { id, state -> !state.skip_bbsplit }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ paired: state.paired, + input: input, + built_bbsplit_index: state.bbsplit_index ] + }, + args: ["only_build_index": false], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) + + // Sort reads by rRNA and non-rRNA + | sortmerna.run ( + runIf: { id, state -> state.remove_ribo_rna }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def filePaths = state.ribo_database_manifest.readLines() + def refs = filePaths.collect { it } + [ paired: state.paired, + input: input, + ribo_database_manifest: refs ] + }, + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "sortmerna_log": "sortmerna_log" + ] + ) + + // Sub-sample FastQ files and pseudo-align with Salmon to auto-infer strandedness + | fq_subsample.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def input = state.paired ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + [ + input: input, + extra_args: state.extra_fq_subsample_args + ] + }, + toState: [ + "subsampled_fastq_1": "output_1", + "subsampled_fastq_2": "output_2" + ] + ) + + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + | salmon_quant.run ( + runIf: { id, state -> state.strandedness == 'auto' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.subsampled_fastq_1 : null + def mates1 = state.paired ? state.subsampled_fastq_1 : null + def mates2 = state.paired ? state.subsampled_fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + args: [ "skip_quant": true ], + toState: [ "salmon_quant_output": "output" ] + ) + + | map { id, state -> + def mod_state = (!state.paired) ? + [trim_log_2: state.remove(state.trim_log_2), trim_zip_2: state.remove(state.trim_zip_2), trim_html_2: state.remove(state.trim_html_2), failed_trim_unpaired2: state.remove(state.failed_trim_unpaired2)] : + [] + [ id, state + mod_state ] + } + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "qc_output1": "fastq_1", + "qc_output2": "fastq_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "sortmerna_log": "sortmerna_log", + "failed_trim": "failed_trim", + "failed_trim_unpaired1": "failed_trim_unpaired1", + "failed_trim_unpaired2": "failed_trim_unpaired2", + "trim_json": "trim_json", + "trim_html": "trim_html", + "trim_merged_out": "trim_merged_out", + "salmon_quant_output": "salmon_quant_output" + ) emit: output_ch diff --git a/target/nextflow/workflows/pre_processing/nextflow_schema.json b/target/nextflow/workflows/pre_processing/nextflow_schema.json index 1b49356..fa9429a 100644 --- a/target/nextflow/workflows/pre_processing/nextflow_schema.json +++ b/target/nextflow/workflows/pre_processing/nextflow_schema.json @@ -50,7 +50,7 @@ "description": "Type: `string`, default: `auto`. Sample strand-specificity", "help_text": "Type: `string`, default: `auto`. Sample strand-specificity. Must be one of unstranded, forward, reverse or auto" , - "default": "auto" + "default":"auto" } @@ -161,7 +161,7 @@ "description": "Type: `boolean`, default: `false`. Skip FatQC step", "help_text": "Type: `boolean`, default: `false`. Skip FatQC step." , - "default": "False" + "default":false } @@ -182,7 +182,7 @@ "description": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication", "help_text": "Type: `boolean`, default: `false`. Enable UMI-based read deduplication." , - "default": "False" + "default":false } @@ -193,7 +193,7 @@ "description": "Type: `boolean`, default: `false`. Skip umi_tools extract step", "help_text": "Type: `boolean`, default: `false`. Skip umi_tools extract step." , - "default": "False" + "default":false } @@ -206,7 +206,7 @@ "enum": ["string", "regex"] , - "default": "string" + "default":"string" } @@ -217,7 +217,7 @@ "description": "Type: `string`, default: ``. The UMI barcode pattern to use e", "help_text": "Type: `string`, default: ``. The UMI barcode pattern to use e.g. \u0027NNNNNN\u0027 indicates that the first 6 nucleotides of the read are from the UMI." , - "default": "" + "default":"" } @@ -228,7 +228,7 @@ "description": "Type: `string`, default: ``. The UMI barcode pattern to use if the UMI is located in read 2", "help_text": "Type: `string`, default: ``. The UMI barcode pattern to use if the UMI is located in read 2." , - "default": "" + "default":"" } @@ -241,7 +241,7 @@ "enum": [0, 1, 2] , - "default": "0" + "default":0 } @@ -252,7 +252,7 @@ "description": "Type: `string`, default: `_`. The character that separates the UMI in the read name", "help_text": "Type: `string`, default: `_`. The character that separates the UMI in the read name. Most likely a colon if you skipped the extraction with UMI-tools and used other software." , - "default": "_" + "default":"_" } @@ -265,7 +265,7 @@ "enum": ["unique", "percentile", "cluster", "adjacency", "directional"] , - "default": "directional" + "default":"directional" } @@ -276,7 +276,7 @@ "description": "Type: `boolean`, default: `false`. If this option is specified, intermediate FastQ and BAM files produced by UMI-tools are also saved in the results directory", "help_text": "Type: `boolean`, default: `false`. If this option is specified, intermediate FastQ and BAM files produced by UMI-tools are also saved in the results directory." , - "default": "False" + "default":false } @@ -299,7 +299,7 @@ "enum": ["trimgalore", "fastp"] , - "default": "trimgalore" + "default":"trimgalore" } @@ -320,7 +320,7 @@ "description": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing", "help_text": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing. Some downstream steps in the pipeline will fail if this threshold is too low." , - "default": "10000" + "default":10000 } @@ -331,7 +331,7 @@ "description": "Type: `boolean`, default: `false`. Skip the adapter trimming step", "help_text": "Type: `boolean`, default: `false`. Skip the adapter trimming step." , - "default": "False" + "default":false } @@ -342,7 +342,7 @@ "description": "Type: `boolean`, default: `false`. Save the trimmed FastQ files in the results directory", "help_text": "Type: `boolean`, default: `false`. Save the trimmed FastQ files in the results directory." , - "default": "False" + "default":false } @@ -363,7 +363,7 @@ "description": "Type: `string`, default: ``. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ``. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline." , - "default": "" + "default":"" } @@ -384,7 +384,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads", "help_text": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads." , - "default": "False" + "default":false } @@ -395,7 +395,7 @@ "description": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA", "help_text": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA." , - "default": "False" + "default":false } @@ -416,7 +416,7 @@ "description": "Type: `string`, default: `--record-count 1000000 --seed 1`. Extra arguments to pass to fq subsample command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: `--record-count 1000000 --seed 1`. Extra arguments to pass to fq subsample command in addition to defaults defined by the pipeline." , - "default": "--record-count 1000000 --seed 1" + "default":"--record-count 1000000 --seed 1" } @@ -437,7 +437,7 @@ "description": "Type: `file`, default: `$id.$key.qc_output1.fastq`. Path to output directory", "help_text": "Type: `file`, default: `$id.$key.qc_output1.fastq`. Path to output directory" , - "default": "$id.$key.qc_output1.fastq" + "default":"$id.$key.qc_output1.fastq" } @@ -448,7 +448,7 @@ "description": "Type: `file`, default: `$id.$key.qc_output2.fastq`. Path to output directory", "help_text": "Type: `file`, default: `$id.$key.qc_output2.fastq`. Path to output directory" , - "default": "$id.$key.qc_output2.fastq" + "default":"$id.$key.qc_output2.fastq" } @@ -459,7 +459,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1." , - "default": "$id.$key.fastqc_html_1.html" + "default":"$id.$key.fastqc_html_1.html" } @@ -470,7 +470,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2." , - "default": "$id.$key.fastqc_html_2.html" + "default":"$id.$key.fastqc_html_2.html" } @@ -481,7 +481,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1." , - "default": "$id.$key.fastqc_zip_1.zip" + "default":"$id.$key.fastqc_zip_1.zip" } @@ -492,7 +492,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2." , - "default": "$id.$key.fastqc_zip_2.zip" + "default":"$id.$key.fastqc_zip_2.zip" } @@ -503,7 +503,7 @@ "description": "Type: `file`, default: `$id.$key.trim_log_1.txt`. ", "help_text": "Type: `file`, default: `$id.$key.trim_log_1.txt`. " , - "default": "$id.$key.trim_log_1.txt" + "default":"$id.$key.trim_log_1.txt" } @@ -514,7 +514,7 @@ "description": "Type: `file`, default: `$id.$key.trim_log_2.txt`. ", "help_text": "Type: `file`, default: `$id.$key.trim_log_2.txt`. " , - "default": "$id.$key.trim_log_2.txt" + "default":"$id.$key.trim_log_2.txt" } @@ -525,7 +525,7 @@ "description": "Type: `file`, default: `$id.$key.trim_html_1.html`. ", "help_text": "Type: `file`, default: `$id.$key.trim_html_1.html`. " , - "default": "$id.$key.trim_html_1.html" + "default":"$id.$key.trim_html_1.html" } @@ -536,7 +536,7 @@ "description": "Type: `file`, default: `$id.$key.trim_html_2.html`. ", "help_text": "Type: `file`, default: `$id.$key.trim_html_2.html`. " , - "default": "$id.$key.trim_html_2.html" + "default":"$id.$key.trim_html_2.html" } @@ -547,7 +547,7 @@ "description": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. ", "help_text": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. " , - "default": "$id.$key.trim_zip_1.zip" + "default":"$id.$key.trim_zip_1.zip" } @@ -558,7 +558,7 @@ "description": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. ", "help_text": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. " , - "default": "$id.$key.trim_zip_2.zip" + "default":"$id.$key.trim_zip_2.zip" } @@ -569,7 +569,7 @@ "description": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file", "help_text": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file." , - "default": "$id.$key.sortmerna_log.log" + "default":"$id.$key.sortmerna_log.log" } @@ -580,7 +580,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_quant_output.salmon_quant_output`. Results from Salmon quant", "help_text": "Type: `file`, default: `$id.$key.salmon_quant_output.salmon_quant_output`. Results from Salmon quant" , - "default": "$id.$key.salmon_quant_output.salmon_quant_output" + "default":"$id.$key.salmon_quant_output.salmon_quant_output" } @@ -591,7 +591,7 @@ "description": "Type: `file`, default: `$id.$key.trim_json.json`. The fastp json format report file name", "help_text": "Type: `file`, default: `$id.$key.trim_json.json`. The fastp json format report file name" , - "default": "$id.$key.trim_json.json" + "default":"$id.$key.trim_json.json" } @@ -602,7 +602,7 @@ "description": "Type: `file`, default: `$id.$key.trim_html.html`. The fastp html format report file name", "help_text": "Type: `file`, default: `$id.$key.trim_html.html`. The fastp html format report file name" , - "default": "$id.$key.trim_html.html" + "default":"$id.$key.trim_html.html" } @@ -613,7 +613,7 @@ "description": "Type: `file`, default: `$id.$key.merged_out.merged_out`. File name to store merged fastp output", "help_text": "Type: `file`, default: `$id.$key.merged_out.merged_out`. File name to store merged fastp output." , - "default": "$id.$key.merged_out.merged_out" + "default":"$id.$key.merged_out.merged_out" } diff --git a/target/nextflow/workflows/prepare_genome/.config.vsh.yaml b/target/nextflow/workflows/prepare_genome/.config.vsh.yaml index fc53e37..0a74fa1 100644 --- a/target/nextflow/workflows/prepare_genome/.config.vsh.yaml +++ b/target/nextflow/workflows/prepare_genome/.config.vsh.yaml @@ -509,8 +509,8 @@ build_info: output: "target/nextflow/workflows/prepare_genome" executable: "target/nextflow/workflows/prepare_genome/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/gunzip" - "target/dependencies/vsh/vsh/biobox/main/nextflow/gffread" diff --git a/target/nextflow/workflows/prepare_genome/main.nf b/target/nextflow/workflows/prepare_genome/main.nf index 6b67d09..658183c 100644 --- a/target/nextflow/workflows/prepare_genome/main.nf +++ b/target/nextflow/workflows/prepare_genome/main.nf @@ -3422,8 +3422,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/prepare_genome", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3490,278 +3490,280 @@ workflow run_wf { main: output_ch = input_ch - // Uncompress fasta - | gunzip.run ( - fromState: [ "input": "fasta" ], - toState: [ "fasta": "output" ], - key: "gunzip_fasta", - args: [ output: "reference_genome.fasta" ] - ) + // Uncompress fasta + | gunzip.run ( + fromState: [ "input": "fasta" ], + toState: [ "fasta": "output" ], + key: "gunzip_fasta", + args: [ output: "reference_genome.fasta" ] + ) - // uncompress gtf - | gunzip.run ( - runIf: {id, state -> state.gtf}, - fromState: [ "input": "gtf" ], - toState: [ "gtf": "output" ], - key: "gunzip_gtf", - args: [output: "gene_annotation.gtf"] - ) + // uncompress gtf + | gunzip.run ( + runIf: {id, state -> state.gtf}, + fromState: [ "input": "gtf" ], + toState: [ "gtf": "output" ], + key: "gunzip_gtf", + args: [output: "gene_annotation.gtf"] + ) - // uncompress gff - | gunzip.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ "input": "gff" ], - toState: [ "gff": "output" ], - key: "gunzip_gff", - args: [output: "gene_annotation.gff"] - ) + // uncompress gff + | gunzip.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ "input": "gff" ], + toState: [ "gff": "output" ], + key: "gunzip_gff", + args: [output: "gene_annotation.gff"] + ) - // gff to gtf - | gffread.run ( - runIf: {id, state -> !state.gtf && state.gff}, - fromState: [ - "input": "gff", - "genome": "fasta" - ], - toState: [ "gtf": "outfile" ], - args: [ - outfile: "gene_annotation.gtf", - gtf_output: true - ] - ) + // gff to gtf + | gffread.run ( + runIf: {id, state -> !state.gtf && state.gff}, + fromState: [ + "input": "gff", + "genome": "fasta" + ], + toState: [ "gtf": "outfile" ], + args: [ + outfile: "gene_annotation.gtf", + gtf_output: true, + keep_attrs: true, + keep_exon_attrs: true + ] + ) - | gtf_filter.run( - runIf: {id, state -> state.gtf && state.filter_gtf}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf" - ], - toState: [ "gtf": "filtered_gtf" ], - args: [filtered_gtf: "gene_annotation.gtf"] - ) + | gtf_filter.run( + runIf: {id, state -> state.gtf && state.filter_gtf}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf" + ], + toState: [ "gtf": "filtered_gtf" ], + args: [filtered_gtf: "gene_annotation.gtf"] + ) - // uncompress additional fasta - | gunzip.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ "input": "additional_fasta" ], - toState: [ "additional_fasta": "output" ], - key: "gunzip_additional_fasta", - args: [output: "additional.fasta"] - ) + // uncompress additional fasta + | gunzip.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ "input": "additional_fasta" ], + toState: [ "additional_fasta": "output" ], + key: "gunzip_additional_fasta", + args: [output: "additional.fasta"] + ) - // concatenate additional fasta - | cat_additional_fasta.run ( - runIf: {id, state -> state.additional_fasta}, - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "additional_fasta": "additional_fasta", - "biotype": "biotype" - ], - toState: [ - "fasta": "fasta_output", - "gtf": "gtf_output" - ], - args: [ - fasta_output: "genome_additional.fasta", - gtf_output: "genome_additional.gtf" - ] - ) + // concatenate additional fasta + | cat_additional_fasta.run ( + runIf: {id, state -> state.additional_fasta}, + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "additional_fasta": "additional_fasta", + "biotype": "biotype" + ], + toState: [ + "fasta": "fasta_output", + "gtf": "gtf_output" + ], + args: [ + fasta_output: "genome_additional.fasta", + gtf_output: "genome_additional.gtf" + ] + ) - // uncompress bed file - | gunzip.run ( - runIf: {id, state -> state.gene_bed}, - fromState: [ "input": "gene_bed" ], - toState: [ "gene_bed": "output" ], - key: "gunzip_gene_bed", - args: [output: "genome_additional.bed"] - ) + // uncompress bed file + | gunzip.run ( + runIf: {id, state -> state.gene_bed}, + fromState: [ "input": "gene_bed" ], + toState: [ "gene_bed": "output" ], + key: "gunzip_gene_bed", + args: [output: "genome_additional.bed"] + ) - // gtf to bed - | gtf2bed.run ( - runIf: { id, state -> !state.gene_bed}, - fromState: [ "gtf": "gtf" ], - toState: [ "gene_bed": "bed_output" ], - args: [bed_output: "genome_additional.bed"] - ) + // gtf to bed + | gtf2bed.run ( + runIf: { id, state -> !state.gene_bed}, + fromState: [ "gtf": "gtf" ], + toState: [ "gene_bed": "bed_output" ], + args: [bed_output: "genome_additional.bed"] + ) - // uncompress transcript fasta - | gunzip.run ( - runIf: {id, state -> state.transcript_fasta}, - fromState: [ "input": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - key: "transcript_fasta", - args: [output: "transcriptome.fasta"] - ) + // uncompress transcript fasta + | gunzip.run ( + runIf: {id, state -> state.transcript_fasta}, + fromState: [ "input": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + key: "transcript_fasta", + args: [output: "transcriptome.fasta"] + ) - // preprocess transcripts fasta if gtf is in gencode format - | preprocess_transcripts_fasta.run ( - runIf: {id, state -> state.transcript_fasta && state.gencode}, - fromState: [ "transcript_fasta": "transcript_fasta" ], - toState: [ "transcript_fasta": "output" ], - args: [output: "transcriptome.fasta"] - ) + // preprocess transcripts fasta if gtf is in gencode format + | preprocess_transcripts_fasta.run ( + runIf: {id, state -> state.transcript_fasta && state.gencode}, + fromState: [ "transcript_fasta": "transcript_fasta" ], + toState: [ "transcript_fasta": "output" ], + args: [output: "transcriptome.fasta"] + ) - // make transcript FASTA if not provided - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.transcript_fasta}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "make_transcript_fasta_output": "output" ], - key: "make_transcript_fasta",\ - args: [reference_name: "genome"] - ) - | map { id, state -> - def transcript_fasta = (!state.transcript_fasta) ? - state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : - state.transcript_fasta - [ id, state + [transcript_fasta: transcript_fasta] ] - } + // make transcript FASTA if not provided + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.transcript_fasta}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "make_transcript_fasta_output": "output" ], + key: "make_transcript_fasta", + args: [reference_name: "genome"] + ) + | map { id, state -> + def transcript_fasta = (!state.transcript_fasta) ? + state.make_transcript_fasta_output.listFiles().find{it.name == "genome.transcripts.fa"} : + state.transcript_fasta + [ id, state + [transcript_fasta: transcript_fasta] ] + } - // chromosome size and fai index - | getchromsizes.run ( - fromState: [ "fasta": "fasta" ], - toState: [ - "fai": "fai", - "sizes": "sizes" - ], - key: "chromsizes", - args: [ - fai: "genome_additional.fasta.fai", - sizes: "genome_additional.fasta.sizes" - ] - ) - - // untar bbsplit index, if available - | untar.run ( - runIf: {id, state -> state.bbsplit_index}, - fromState: [ "input": "bbsplit_index" ], - toState: [ "bbsplit_index": "output" ], - key: "untar_bbsplit_index", - args: [output: "BBSplit_index"] - ) - - // create bbsplit index, if not already availble - | bbmap_bbsplit.run ( - runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, - fromState: [ - "primary_ref": "fasta", - "bbsplit_fasta_list": "bbsplit_fasta_list" - ], - toState: [ "bbsplit_index": "bbsplit_index" ], - args: [ - only_build_index: true, - bbsplit_index: "BBSplit_index" - ], - key: "generate_bbsplit_index" - ) + // chromosome size and fai index + | getchromsizes.run ( + fromState: [ "fasta": "fasta" ], + toState: [ + "fai": "fai", + "sizes": "sizes" + ], + key: "chromsizes", + args: [ + fai: "genome_additional.fasta.fai", + sizes: "genome_additional.fasta.sizes" + ] + ) + + // untar bbsplit index, if available + | untar.run ( + runIf: {id, state -> state.bbsplit_index}, + fromState: [ "input": "bbsplit_index" ], + toState: [ "bbsplit_index": "output" ], + key: "untar_bbsplit_index", + args: [output: "BBSplit_index"] + ) + + // create bbsplit index, if not already availble + | bbmap_bbsplit.run ( + runIf: {id, state -> !state.skip_bbsplit && !state.bbsplit_index}, + fromState: [ + "primary_ref": "fasta", + "bbsplit_fasta_list": "bbsplit_fasta_list" + ], + toState: [ "bbsplit_index": "bbsplit_index" ], + args: [ + only_build_index: true, + bbsplit_index: "BBSplit_index" + ], + key: "generate_bbsplit_index" + ) - // Uncompress STAR index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.star_index}, - fromState: [ "input": "star_index" ], - toState: [ "star_index": "output" ], - key: "untar_star_index", - args: [output: "STAR_index"] - ) - - // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode - | star_genome_generate.run ( - runIf: {id, state -> !state.star_index && !state.skip_alignment}, - fromState: [ - "genome_fasta_files": "fasta", - "sjdb_gtf_file": "gtf", - "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ "star_index": "index" ], - key: "generate_star_index", - args: [index: "STAR_index"] - ) + // Uncompress STAR index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.star_index}, + fromState: [ "input": "star_index" ], + toState: [ "star_index": "output" ], + key: "untar_star_index", + args: [output: "STAR_index"] + ) + + // TODO: Add to viah-hub or adapt star_align_reads to enable the generateGenome runMode + | star_genome_generate.run ( + runIf: {id, state -> !state.star_index && !state.skip_alignment}, + fromState: [ + "genome_fasta_files": "fasta", + "sjdb_gtf_file": "gtf", + "sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ "star_index": "index" ], + key: "generate_star_index", + args: [index: "STAR_index"] + ) - // Uncompress RSEM index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.rsem_index}, - fromState: [ "input": "rsem_index" ], - toState: [ "rsem_index": "output" ], - key: "untar_rsem_index", - args: [output: "RSEM_index"] - ) + // Uncompress RSEM index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.rsem_index}, + fromState: [ "input": "rsem_index" ], + toState: [ "rsem_index": "output" ], + key: "untar_rsem_index", + args: [output: "RSEM_index"] + ) - | rsem_prepare_reference.run ( - runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, - fromState: [ - "reference_fasta_files": "fasta", - "gtf": "gtf" - ], - toState: [ "rsem_index": "output" ], - key: "generate_rsem_index", - args: [reference_name: "genome"] - ) - - // TODO: Uncompress HISAT2 index or generate from scratch if required + | rsem_prepare_reference.run ( + runIf: {id, state -> !state.rsem_index && state.aligner == 'star_rsem'}, + fromState: [ + "reference_fasta_files": "fasta", + "gtf": "gtf" + ], + toState: [ "rsem_index": "output" ], + key: "generate_rsem_index", + args: [reference_name: "genome"] + ) + + // TODO: Uncompress HISAT2 index or generate from scratch if required - // Uncompress Salmon index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.salmon_index}, - fromState: [ "input": "salmon_index" ], - toState: [ "salmon_index": "output" ], - key: "untar_salmon_index", - args: [output: "Salmon_index"] - ) + // Uncompress Salmon index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.salmon_index}, + fromState: [ "input": "salmon_index" ], + toState: [ "salmon_index": "output" ], + key: "untar_salmon_index", + args: [output: "Salmon_index"] + ) - | salmon_index.run ( - runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, - fromState: [ - "genome": "fasta", - "transcripts": "transcript_fasta", - "kmer_len": "pseudo_aligner_kmer_size", - "gencode": "gencode" - ], - toState: [ "salmon_index": "index" ], - key: "generate_salmon_index", - args: [index: "Salmon_index"] - ) + | salmon_index.run ( + runIf: {id, state -> (state.aligner == 'star_salmon' || state.pseudo_aligner == "salmon") && !state.salmon_index}, + fromState: [ + "genome": "fasta", + "transcripts": "transcript_fasta", + "kmer_len": "pseudo_aligner_kmer_size", + "gencode": "gencode" + ], + toState: [ "salmon_index": "index" ], + key: "generate_salmon_index", + args: [index: "Salmon_index"] + ) - // Uncompress Kallisto index or generate from scratch if required - | untar.run ( - runIf: {id, state -> state.kallisto_index}, - fromState: [ "input": "kallisto_index" ], - toState: [ "kallisto_index": "output" ], - key: "untar_kallisto_index", - args: [output: "Kallisto_index"] - ) + // Uncompress Kallisto index or generate from scratch if required + | untar.run ( + runIf: {id, state -> state.kallisto_index}, + fromState: [ "input": "kallisto_index" ], + toState: [ "kallisto_index": "output" ], + key: "untar_kallisto_index", + args: [output: "Kallisto_index"] + ) - | kallisto_index.run( - runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, - fromState: [ - "transcriptome_fasta": "transcript_fasta", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" - ], - toState: [ "kallisto_index": "kallisto_index" ], - key: "generate_kallisto_index", - args: [kallisto_index: "Kallisto_index"] - ) + | kallisto_index.run( + runIf: {id, state -> state.pseudo_aligner == "kallisto" && !state.kallisto_index}, + fromState: [ + "transcriptome_fasta": "transcript_fasta", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size" + ], + toState: [ "kallisto_index": "kallisto_index" ], + key: "generate_kallisto_index", + args: [kallisto_index: "Kallisto_index"] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - "fasta_uncompressed": "fasta", - "gtf_uncompressed": "gtf", - "transcript_fasta_uncompressed": "transcript_fasta", - "gene_bed_uncompressed": "gene_bed", - "star_index_uncompressed": "star_index", - "salmon_index_uncompressed": "salmon_index", - "kallisto_index_uncompressed": "kallisto_index", - "bbsplit_index_uncompressed": "bbsplit_index", - "rsem_index_uncompressed": "rsem_index", - "chrom_sizes": "sizes", - "fai": "fai" - ) + | setState ( + "fasta_uncompressed": "fasta", + "gtf_uncompressed": "gtf", + "transcript_fasta_uncompressed": "transcript_fasta", + "gene_bed_uncompressed": "gene_bed", + "star_index_uncompressed": "star_index", + "salmon_index_uncompressed": "salmon_index", + "kallisto_index_uncompressed": "kallisto_index", + "bbsplit_index_uncompressed": "bbsplit_index", + "rsem_index_uncompressed": "rsem_index", + "chrom_sizes": "sizes", + "fai": "fai" + ) emit: output_ch diff --git a/target/nextflow/workflows/prepare_genome/nextflow_schema.json b/target/nextflow/workflows/prepare_genome/nextflow_schema.json index d547ff2..d617aeb 100644 --- a/target/nextflow/workflows/prepare_genome/nextflow_schema.json +++ b/target/nextflow/workflows/prepare_genome/nextflow_schema.json @@ -180,7 +180,7 @@ "description": "Type: `integer`, default: `31`. Kmer length passed to indexing step of pseudoaligners", "help_text": "Type: `integer`, default: `31`. Kmer length passed to indexing step of pseudoaligners." , - "default": "31" + "default":31 } @@ -223,7 +223,7 @@ "enum": ["star_salmon", "star_rsem", "hisat2"] , - "default": "star_salmon" + "default":"star_salmon" } @@ -236,7 +236,7 @@ "enum": ["salmon", "kallisto"] , - "default": "salmon" + "default":"salmon" } @@ -247,7 +247,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip all of the alignment-based processes within the pipeline", "help_text": "Type: `boolean_true`, default: `false`. Skip all of the alignment-based processes within the pipeline." , - "default": "False" + "default":false } @@ -268,7 +268,7 @@ "description": "Type: `file`, default: `$id.$key.fasta_uncompressed.fasta`. ", "help_text": "Type: `file`, default: `$id.$key.fasta_uncompressed.fasta`. " , - "default": "$id.$key.fasta_uncompressed.fasta" + "default":"$id.$key.fasta_uncompressed.fasta" } @@ -279,7 +279,7 @@ "description": "Type: `file`, default: `$id.$key.gtf_uncompressed.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.gtf_uncompressed.gtf`. " , - "default": "$id.$key.gtf_uncompressed.gtf" + "default":"$id.$key.gtf_uncompressed.gtf" } @@ -290,7 +290,7 @@ "description": "Type: `file`, default: `$id.$key.transcript_fasta_uncompressed.fasta`. ", "help_text": "Type: `file`, default: `$id.$key.transcript_fasta_uncompressed.fasta`. " , - "default": "$id.$key.transcript_fasta_uncompressed.fasta" + "default":"$id.$key.transcript_fasta_uncompressed.fasta" } @@ -301,7 +301,7 @@ "description": "Type: `file`, default: `$id.$key.gene_bed_uncompressed.bed`. ", "help_text": "Type: `file`, default: `$id.$key.gene_bed_uncompressed.bed`. " , - "default": "$id.$key.gene_bed_uncompressed.bed" + "default":"$id.$key.gene_bed_uncompressed.bed" } @@ -312,7 +312,7 @@ "description": "Type: `file`, default: `$id.$key.star_index_uncompressed.star_index_uncompressed`. Path to STAR index", "help_text": "Type: `file`, default: `$id.$key.star_index_uncompressed.star_index_uncompressed`. Path to STAR index." , - "default": "$id.$key.star_index_uncompressed.star_index_uncompressed" + "default":"$id.$key.star_index_uncompressed.star_index_uncompressed" } @@ -323,7 +323,7 @@ "description": "Type: `file`, default: `$id.$key.rsem_index_uncompressed.rsem_index_uncompressed`. Path to directory or tar", "help_text": "Type: `file`, default: `$id.$key.rsem_index_uncompressed.rsem_index_uncompressed`. Path to directory or tar.gz archive for pre-built RSEM index." , - "default": "$id.$key.rsem_index_uncompressed.rsem_index_uncompressed" + "default":"$id.$key.rsem_index_uncompressed.rsem_index_uncompressed" } @@ -334,7 +334,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_index_uncompressed.salmon_index_uncompressed`. Path to Salmon index", "help_text": "Type: `file`, default: `$id.$key.salmon_index_uncompressed.salmon_index_uncompressed`. Path to Salmon index." , - "default": "$id.$key.salmon_index_uncompressed.salmon_index_uncompressed" + "default":"$id.$key.salmon_index_uncompressed.salmon_index_uncompressed" } @@ -345,7 +345,7 @@ "description": "Type: `file`, default: `$id.$key.kallisto_index_uncompressed.kallisto_index_uncompressed`. Path to Kallisto index", "help_text": "Type: `file`, default: `$id.$key.kallisto_index_uncompressed.kallisto_index_uncompressed`. Path to Kallisto index." , - "default": "$id.$key.kallisto_index_uncompressed.kallisto_index_uncompressed" + "default":"$id.$key.kallisto_index_uncompressed.kallisto_index_uncompressed" } @@ -356,7 +356,7 @@ "description": "Type: `file`, default: `$id.$key.bbsplit_index_uncompressed.bbsplit_index_uncompressed`. Path to BBSplit index", "help_text": "Type: `file`, default: `$id.$key.bbsplit_index_uncompressed.bbsplit_index_uncompressed`. Path to BBSplit index." , - "default": "$id.$key.bbsplit_index_uncompressed.bbsplit_index_uncompressed" + "default":"$id.$key.bbsplit_index_uncompressed.bbsplit_index_uncompressed" } @@ -367,7 +367,7 @@ "description": "Type: `file`, default: `$id.$key.chrom_sizes.sizes`. File containing chromosome lengths", "help_text": "Type: `file`, default: `$id.$key.chrom_sizes.sizes`. File containing chromosome lengths" , - "default": "$id.$key.chrom_sizes.sizes" + "default":"$id.$key.chrom_sizes.sizes" } @@ -378,7 +378,7 @@ "description": "Type: `file`, default: `$id.$key.fai.fai`. FASTA index file", "help_text": "Type: `file`, default: `$id.$key.fai.fai`. FASTA index file" , - "default": "$id.$key.fai.fai" + "default":"$id.$key.fai.fai" } diff --git a/target/nextflow/workflows/pseudo_alignment_and_quant/.config.vsh.yaml b/target/nextflow/workflows/pseudo_alignment_and_quant/.config.vsh.yaml index 38fa64e..bdebce6 100644 --- a/target/nextflow/workflows/pseudo_alignment_and_quant/.config.vsh.yaml +++ b/target/nextflow/workflows/pseudo_alignment_and_quant/.config.vsh.yaml @@ -283,8 +283,8 @@ build_info: output: "target/nextflow/workflows/pseudo_alignment_and_quant" executable: "target/nextflow/workflows/pseudo_alignment_and_quant/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/dependencies/vsh/vsh/biobox/main/nextflow/salmon/salmon_quant" - "target/nextflow/kallisto/kallisto_quant" diff --git a/target/nextflow/workflows/pseudo_alignment_and_quant/main.nf b/target/nextflow/workflows/pseudo_alignment_and_quant/main.nf index e7e0e4a..6ce9b0c 100644 --- a/target/nextflow/workflows/pseudo_alignment_and_quant/main.nf +++ b/target/nextflow/workflows/pseudo_alignment_and_quant/main.nf @@ -3143,8 +3143,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/pseudo_alignment_and_quant", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -3198,86 +3198,87 @@ workflow run_wf { main: output_ch = input_ch - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired, input: input ] ] - } - - - // Infer lib-type for salmon quant - | map { id, state -> - def lib_type = (state.paired) ? - ( - (state.strandedness == "forward") ? - "ISF" : - ( - (state.strandedness == "reverse") ? "ISR" : "IU" - ) - ) - : ( - (state.strandedness == "forward") ? - "SF" : - ( - (state.strandedness == "reverse") ? "SR" : "U" - ) - ) - [ id, state + [lib_type: lib_type] ] - } - // Count reads from BAM alignments using Salmon - | salmon_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'salmon' }, - fromState: { id, state -> - def unmated_reads = !state.paired ? state.fastq_1 : null - def mates1 = state.paired ? state.fastq_1 : null - def mates2 = state.paired ? state.fastq_2 : null - [ unmated_reads: unmated_reads, - mates1: mates1, - mates2: mates2, - gene_map: state.gtf, - index: state.salmon_index, - lib_type: state.lib_type ] - }, - toState: [ - "quant_out_dir": "output", - "salmon_quant_results_file": "quant_results" - ] - ) + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired, input: input ] ] + } - | map { id, state -> - def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state - [ id, mod_state ] - } - | kallisto_quant.run ( - runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, - fromState: [ - "input": "input", - "paired": "paired", - "gtf": "gtf", - "index": "kallisto_index", - "fragment_length": "kallisto_quant_fragment_length", - "fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "quant_out_dir": "output", - "kallisto_quant_results_file": "quant_results_file", - "pseudo_multiqc": "log" - ] - ) + // Infer lib-type for salmon quant + | map { id, state -> + def lib_type = (state.paired) ? + ( + (state.strandedness == "forward") ? + "ISF" : + ( + (state.strandedness == "reverse") ? "ISR" : "IU" + ) + ) + : ( + (state.strandedness == "forward") ? + "SF" : + ( + (state.strandedness == "reverse") ? "SR" : "U" + ) + ) + [ id, state + [lib_type: lib_type] ] + } + + // Count reads from BAM alignments using Salmon + | salmon_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'salmon' }, + fromState: { id, state -> + def unmated_reads = !state.paired ? state.fastq_1 : null + def mates1 = state.paired ? state.fastq_1 : null + def mates2 = state.paired ? state.fastq_2 : null + [ unmated_reads: unmated_reads, + mates1: mates1, + mates2: mates2, + gene_map: state.gtf, + index: state.salmon_index, + lib_type: state.lib_type ] + }, + toState: [ + "quant_out_dir": "output", + "salmon_quant_results_file": "quant_results" + ] + ) - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = (state.pseudo_aligner == 'salmon') ? state + [pseudo_multiqc: state.quant_out_dir] : state + [ id, mod_state ] + } - | setState ( - [ "pseudo_multiqc": "quant_results", - "quant_out_dir": "quant_out_dir", - "salmon_quant_results_file": "salmon_quant_results_file", - "kallisto_quant_results_file": "kallisto_quant_results_file" ] - ) + | kallisto_quant.run ( + runIf: { id, state -> state.pseudo_aligner == 'kallisto'}, + fromState: [ + "input": "input", + "paired": "paired", + "gtf": "gtf", + "index": "kallisto_index", + "fragment_length": "kallisto_quant_fragment_length", + "fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "quant_out_dir": "output", + "kallisto_quant_results_file": "quant_results_file", + "pseudo_multiqc": "log" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ "pseudo_multiqc": "quant_results", + "quant_out_dir": "quant_out_dir", + "salmon_quant_results_file": "salmon_quant_results_file", + "kallisto_quant_results_file": "kallisto_quant_results_file" ] + ) emit: output_ch diff --git a/target/nextflow/workflows/pseudo_alignment_and_quant/nextflow_schema.json b/target/nextflow/workflows/pseudo_alignment_and_quant/nextflow_schema.json index bbfd08f..d476fd9 100644 --- a/target/nextflow/workflows/pseudo_alignment_and_quant/nextflow_schema.json +++ b/target/nextflow/workflows/pseudo_alignment_and_quant/nextflow_schema.json @@ -84,7 +84,7 @@ "enum": ["salmon", "kallisto"] , - "default": "false" + "default":"false" } @@ -115,7 +115,7 @@ "description": "Type: `string`, default: ``. Override library type inferred based on strandedness defined in meta object", "help_text": "Type: `string`, default: ``. Override library type inferred based on strandedness defined in meta object" , - "default": "" + "default":"" } @@ -156,7 +156,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_multiqc.pseudo_multiqc`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_multiqc.pseudo_multiqc`. " , - "default": "$id.$key.pseudo_multiqc.pseudo_multiqc" + "default":"$id.$key.pseudo_multiqc.pseudo_multiqc" } @@ -167,7 +167,7 @@ "description": "Type: `file`, default: `$id.$key.quant_out_dir.quant`. ", "help_text": "Type: `file`, default: `$id.$key.quant_out_dir.quant`. " , - "default": "$id.$key.quant_out_dir.quant" + "default":"$id.$key.quant_out_dir.quant" } @@ -178,7 +178,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_quant_results_file.sf`. ", "help_text": "Type: `file`, default: `$id.$key.salmon_quant_results_file.sf`. " , - "default": "$id.$key.salmon_quant_results_file.sf" + "default":"$id.$key.salmon_quant_results_file.sf" } @@ -189,7 +189,7 @@ "description": "Type: `file`, default: `$id.$key.kallisto_quant_results_file.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.kallisto_quant_results_file.tsv`. " , - "default": "$id.$key.kallisto_quant_results_file.tsv" + "default":"$id.$key.kallisto_quant_results_file.tsv" } diff --git a/target/nextflow/workflows/quality_control/.config.vsh.yaml b/target/nextflow/workflows/quality_control/.config.vsh.yaml index 984870e..cf1f269 100644 --- a/target/nextflow/workflows/quality_control/.config.vsh.yaml +++ b/target/nextflow/workflows/quality_control/.config.vsh.yaml @@ -295,7 +295,7 @@ argument_groups: description: "Specify the RSeQC modules to run_wf" info: null default: - - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + - "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" required: false choices: - "bam_stat" @@ -308,7 +308,7 @@ argument_groups: - "tin" direction: "input" multiple: true - multiple_sep: "," + multiple_sep: ";" - type: "integer" name: "--sample_size" description: "Numer of reads sampled from SAM/BAM file to infer experiment and\ @@ -1556,8 +1556,8 @@ build_info: output: "target/nextflow/workflows/quality_control" executable: "target/nextflow/workflows/quality_control/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/rseqc/rseqc_bamstat" - "target/nextflow/rseqc/rseqc_inferexperiment" diff --git a/target/nextflow/workflows/quality_control/main.nf b/target/nextflow/workflows/quality_control/main.nf index 9488583..31739b4 100644 --- a/target/nextflow/workflows/quality_control/main.nf +++ b/target/nextflow/workflows/quality_control/main.nf @@ -3138,7 +3138,7 @@ meta = [ "name" : "--rseqc_modules", "description" : "Specify the RSeQC modules to run_wf", "default" : [ - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" ], "required" : false, "choices" : [ @@ -3153,7 +3153,7 @@ meta = [ ], "direction" : "input", "multiple" : true, - "multiple_sep" : "," + "multiple_sep" : ";" }, { "type" : "integer", @@ -4630,8 +4630,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/quality_control", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -4704,733 +4704,735 @@ workflow run_wf { qc_ch = input_ch - // Feature biotype QC using featureCounts - | map { id, state -> - def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) - def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type - def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) - [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] - } + // temporary fix to force assignment when alignment in skipped + | map {it} - | featurecounts.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, - fromState: [ - "paired": "paired", - "strand": "strand", - "annotation": "gtf", - "input": "genome_bam", - "attribute_type": "attribute_type", - "feature_type": "featurecounts_feature_type", - "count_read_pairs": "paired" - ], - toState: [ - "featurecounts": "counts", - "featurecounts_summary": "summary" - ], - args: [ - both_aligned: true, - same_strand: true - ] - ) + // Feature biotype QC using featureCounts + | map { id, state -> + def biotype_in_gtf = biotypeInGtf(state.gtf, state.biotype) + def attribute_type = state.gencode ? "gene_type" : state.featurecounts_group_type + def strand = (state.strandedness == "forward") ? 1 : ((state.strandedness == "reverse") ? 2 : 0) + [ id, state + [biotype_in_gtf: biotype_in_gtf, attribute_type: attribute_type, strand: strand] ] + } - | multiqc_custom_biotype.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, - fromState: [ - "id": "id", - "biocounts": "featurecounts", - "biotypes_header": "biotypes_header" - ], - toState: [ - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" - ] - ) - - | preseq_lcextrap.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, - fromState: [ - "paired": "paired", - "input": "genome_bam", - "extra_preseq_args": "extra_preseq_args" - ], - toState: [ "preseq_output": "output" ] - ) - - | rseqc_bamstat.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "map_qual": "map_qual" - ], - toState: [ "bamstat_output": "output" ] - ) - | rseqc_inferexperiment.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual" - ], - toState: [ "strandedness_output": "output" ] - ) - // Get predicted strandedness from the RSeQC infer_experiment.py output - | map { id, state -> - def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) - def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true - [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] - } - | rseqc_innerdistance.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, - key: "inner_distance", - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sample_size": "sample_size", - "map_qual": "map_qual", - "lower_bound_size": "lower_bound_size", - "upper_bound_size": "upper_bound_size", - "step_size": "step_size" - ], - toState: [ - "inner_dist_output_stats": "output_stats", - "inner_dist_output_dist": "output_dist", - "inner_dist_output_freq": "output_freq", - "inner_dist_output_plot": "output_plot", - "inner_dist_output_plot_r": "output_plot_r" - ] - ) - | rseqc_junctionannotation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "map_qual": "map_qual", - "min_intron": "min_intron" - ], - toState: [ - "junction_annotation_output_log": "output_log", - "junction_annotation_output_plot_r": "output_plot_r", - "junction_annotation_output_junction_bed": "output_junction_bed", - "junction_annotation_output_junction_interact": "output_junction_interact", - "junction_annotation_output_junction_sheet": "output_junction_sheet", - "junction_annotation_output_splice_events_plot": "output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" - ] - ) - | rseqc_junctionsaturation.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", - "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", - "sampling_percentile_step": "sampling_percentile_step", - "min_intron": "min_intron", - "min_splice_read": "min_splice_read", - "map_qual": "map_qual" - ], - toState: [ - "junction_saturation_output_plot_r": "output_plot_r", - "junction_saturation_output_plot": "output_plot" - ] - ) - | rseqc_readdistribution.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "refgene": "gene_bed", - ], - toState: [ "read_distribution_output": "output" ] - ) - | rseqc_readduplication.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "read_count_upper_limit": "read_count_upper_limit", - "map_qual": "map_qual" - ], - toState: [ - "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" - ] - ) - | rseqc_tin.run( - runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, - fromState: [ - "bam_input": "genome_bam", - "bai_input": "genome_bam_index", - "refgene": "gene_bed", - "minimum_coverage": "minimum_coverage", - "sample_size": "tin_sample_size", - "subtract_background": "subtract_background" - ], - toState: [ - "tin_output_summary": "output_tin_summary", - "tin_output_metrics": "output_tin" - ] - ) + | featurecounts.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.biotype_in_gtf && !state.skip_align }, + fromState: [ + "paired": "paired", + "strand": "strand", + "annotation": "gtf", + "input": "genome_bam", + "attribute_type": "attribute_type", + "feature_type": "featurecounts_feature_type", + "count_read_pairs": "paired" + ], + toState: [ + "featurecounts": "counts", + "featurecounts_summary": "summary" + ], + args: [ + both_aligned: true, + same_strand: true + ] + ) - | dupradar.run( - runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, - fromState: [ - "id": "id", - "input": "genome_bam", - "gtf_annotation": "gtf", - "paired": "paired", - "strandedness": "strandedness" - ], - toState: [ - "dupradar_output_dupmatrix": "output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "output_expression_histogram", - "dupradar_output_intercept_slope": "output_intercept_slope" - ] - ) + | multiqc_custom_biotype.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_biotype_qc && state.biotype && state.featurecounts && !state.skip_align }, + fromState: [ + "id": "id", + "biocounts": "featurecounts", + "biotypes_header": "biotypes_header" + ], + toState: [ + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc" + ] + ) + + | preseq_lcextrap.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_preseq && !state.skip_align }, + fromState: [ + "paired": "paired", + "input": "genome_bam", + "extra_preseq_args": "extra_preseq_args" + ], + toState: [ "preseq_output": "output" ] + ) + + | rseqc_bamstat.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "bam_stat" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "map_qual": "map_qual" + ], + toState: [ "bamstat_output": "output" ] + ) + | rseqc_inferexperiment.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "infer_experiment" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual" + ], + toState: [ "strandedness_output": "output" ] + ) + // Get predicted strandedness from the RSeQC infer_experiment.py output + | map { id, state -> + def inferred_strand = getInferexperimentStrandedness(state.strandedness_output, 30) + def passed_strand_check = (state.strandedness != inferred_strand[0]) ? false : true + [ id, state + [ inferred_strand: inferred_strand, passed_strand_check: passed_strand_check ] ] + } + | rseqc_innerdistance.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && state.paired && "inner_distance" in state.rseqc_modules && !state.skip_align }, + key: "inner_distance", + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sample_size": "sample_size", + "map_qual": "map_qual", + "lower_bound_size": "lower_bound_size", + "upper_bound_size": "upper_bound_size", + "step_size": "step_size" + ], + toState: [ + "inner_dist_output_stats": "output_stats", + "inner_dist_output_dist": "output_dist", + "inner_dist_output_freq": "output_freq", + "inner_dist_output_plot": "output_plot", + "inner_dist_output_plot_r": "output_plot_r" + ] + ) + | rseqc_junctionannotation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_annotation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "map_qual": "map_qual", + "min_intron": "min_intron" + ], + toState: [ + "junction_annotation_output_log": "output_log", + "junction_annotation_output_plot_r": "output_plot_r", + "junction_annotation_output_junction_bed": "output_junction_bed", + "junction_annotation_output_junction_interact": "output_junction_interact", + "junction_annotation_output_junction_sheet": "output_junction_sheet", + "junction_annotation_output_splice_events_plot": "output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "output_splice_junctions_plot" + ] + ) + | rseqc_junctionsaturation.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "junction_saturation" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + "sampling_percentile_lower_bound": "sampling_percentile_lower_bound", + "sampling_percentile_upper_bound": "sampling_percentile_upper_bound", + "sampling_percentile_step": "sampling_percentile_step", + "min_intron": "min_intron", + "min_splice_read": "min_splice_read", + "map_qual": "map_qual" + ], + toState: [ + "junction_saturation_output_plot_r": "output_plot_r", + "junction_saturation_output_plot": "output_plot" + ] + ) + | rseqc_readdistribution.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_distribution" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "refgene": "gene_bed", + ], + toState: [ "read_distribution_output": "output" ] + ) + | rseqc_readduplication.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "read_duplication" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "read_count_upper_limit": "read_count_upper_limit", + "map_qual": "map_qual" + ], + toState: [ + "read_duplication_output_duplication_rate_plot_r": "output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "output_duplication_rate_sequence" + ] + ) + | rseqc_tin.run( + runIf: { id, state -> !state.skip_qc && !state.skip_rseqc && "tin" in state.rseqc_modules && !state.skip_align }, + fromState: [ + "bam_input": "genome_bam", + "bai_input": "genome_bam_index", + "refgene": "gene_bed", + "minimum_coverage": "minimum_coverage", + "sample_size": "tin_sample_size", + "subtract_background": "subtract_background" + ], + toState: [ + "tin_output_summary": "output_tin_summary", + "tin_output_metrics": "output_tin" + ] + ) - | qualimap.run( - runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, - fromState: [ - "input": "genome_bam", - "gtf": "gtf", - "pr_bases": "pr_bases", - "tr_bias": "tr_bias", - "algorithm": "algorithm", - "sequencing_protocol": "sequencing_protocol", - "sorted": "sorted", - "java_memory_size": "java_memory_size", - ], - toState: [ - "qualimap_output_pdf": "output_pdf", - "qualimap_output_dir": "output_dir" - ] - ) + | dupradar.run( + runIf: { id, state -> !state.skip_qc && !state.skip_dupradar && !state.skip_align }, + fromState: [ + "id": "id", + "input": "genome_bam", + "gtf_annotation": "gtf", + "paired": "paired", + "strandedness": "strandedness" + ], + toState: [ + "dupradar_output_dupmatrix": "output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "output_expression_histogram", + "dupradar_output_intercept_slope": "output_intercept_slope" + ] + ) + + | qualimap.run( + runIf: { id, state -> !state.skip_qc && !state.skip_qualimap && !state.skip_align }, + fromState: [ + "input": "genome_bam", + "gtf": "gtf", + "pr_bases": "pr_bases", + "tr_bias": "tr_bias", + "algorithm": "algorithm", + "sequencing_protocol": "sequencing_protocol", + "sorted": "sorted", + "java_memory_size": "java_memory_size", + ], + toState: [ + "qualimap_output_pdf": "output_pdf", + "qualimap_output_dir": "output_dir" + ] + ) merged_ch = qc_ch - - | toSortedList - | map { list -> - def ids = list.collect { id, state -> id } - def strandedness = list.collect { id, state -> state.strandedness } - def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } - def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } - def passed_mapping = list.collect { id, state -> state.passed_mapping } - def percent_mapped = list.collect { id, state -> state.percent_mapped } - def inferred_strand = list.collect { id, state -> state.inferred_strand } - def passed_strand_check = list.collect { id, state -> state.passed_strand_check } - def gtf = list.collect { id, state -> state.gtf }.unique()[0] - def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] - def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] - def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] - def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] - def aligner = list.collect { id, state -> state.aligner }.unique()[0] - def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] - def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] - def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] - def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] - def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] - def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] - def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] - def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] - def quant_results = list.collect { id, state -> - (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? - state.quant_results_file : - null } - def rsem_counts_gene = list.collect { id, state -> - (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? - state.rsem_counts_gene : - null } - def rsem_counts_transcripts = list.collect { id, state -> - (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? - state.rsem_counts_transcripts : - null } - def pseudo_quant_out_dir = list.collect { id, state -> - (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? - state.pseudo_quant_out_dir : - null } - def pseudo_salmon_quant_results = list.collect { id, state -> - (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? - state.pseudo_salmon_quant_results_file : - null } - def pseudo_kallisto_quant_results = list.collect { id, state -> - (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? - state.pseudo_kallisto_quant_results_file : - null } - def fastqc_zip_1 = list.collect { id, state -> - (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? - state.fastqc_zip_1 : - null } - def fastqc_zip_2 = list.collect { id, state -> - (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? - state.fastqc_zip_2 : - null } - def trim_zip_1 = list.collect { id, state -> - (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? - state.trim_zip_1 : - null } - def trim_zip_2 = list.collect { id, state -> - (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? - state.trim_zip_2 : - null } - def trim_log_1 = list.collect { id, state -> - (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? - state.trim_log_1 : - null } - def trim_log_2 = list.collect { id, state -> - (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? - state.trim_log_2 : - null } - def sortmerna_multiqc = list.collect { id, state -> - (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? - state.sortmerna_multiqc : - null } - def star_multiqc = list.collect { id, state -> - (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? - state.star_multiqc : - null } - def genome_bam_stats = list.collect { id, state -> - (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? - state.genome_bam_stats : - null } - def genome_bam_flagstat = list.collect { id, state -> - (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? - state.genome_bam_flagstat : - null } - def genome_bam_idxstats = list.collect { id, state -> - (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? - state.genome_bam_idxstats : - null } - def markduplicates_multiqc = list.collect { id, state -> - (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? - state.markduplicates_multiqc : - null } - def salmon_multiqc = list.collect { id, state -> - (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? - state.salmon_multiqc : - null } - def rsem_multiqc = list.collect { id, state -> - (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? - state.rsem_multiqc : - null } - def pseudo_multiqc = list.collect { id, state -> - (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? - state.pseudo_multiqc : - null } - def featurecounts_multiqc = list.collect { id, state -> - (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? - state.featurecounts_multiqc : - null } - def featurecounts_rrna_multiqc = list.collect { id, state -> - (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? - state.featurecounts_rrna_multiqc : - null } - def preseq_output = list.collect { id, state -> - (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? - state.preseq_output : - null } - def qualimap_output_dir = list.collect { id, state -> - (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? - state.qualimap_output_dir : - null } - def dupradar_output_dup_intercept_mqc = list.collect { id, state -> - (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? - state.dupradar_output_dup_intercept_mqc : + | toSortedList + | map { list -> + def ids = list.collect { id, state -> id } + def strandedness = list.collect { id, state -> state.strandedness } + def num_trimmed_reads = list.collect { id, state -> state.num_trimmed_reads } + def passed_trimmed_reads = list.collect { id, state -> state.passed_trimmed_reads } + def passed_mapping = list.collect { id, state -> state.passed_mapping } + def percent_mapped = list.collect { id, state -> state.percent_mapped } + def inferred_strand = list.collect { id, state -> state.inferred_strand } + def passed_strand_check = list.collect { id, state -> state.passed_strand_check } + def gtf = list.collect { id, state -> state.gtf }.unique()[0] + def gtf_extra_attributes = list.collect { id, state -> state.gtf_extra_attributes }.unique()[0] + def gtf_group_features = list.collect { id, state -> state.gtf_group_features }.unique()[0] + def pca_header_multiqc = list.collect { id, state -> state.pca_header_multiqc }.unique()[0] + def clustering_header_multiqc = list.collect { id, state -> state.clustering_header_multiqc }.unique()[0] + def aligner = list.collect { id, state -> state.aligner }.unique()[0] + def pseudo_aligner = list.collect { id, state -> state.pseudo_aligner }.unique()[0] + def deseq2_vst = list.collect { id, state -> state.deseq2_vst }.unique()[0] + def extra_deseq2_args = list.collect { id, state -> state.extra_deseq2_args }.unique()[0] + def extra_deseq2_args2 = list.collect { id, state -> state.extra_deseq2_args2 }.unique()[0] + def skip_deseq2_qc = list.collect { id, state -> state.skip_deseq2_qc }.unique()[0] + def skip_qc = list.collect { id, state -> state.skip_qc }.unique()[0] + def skip_align = list.collect { id, state -> state.skip_align }.unique()[0] + def skip_pseudo_align = list.collect { id, state -> state.skip_pseudo_align }.unique()[0] + def quant_results = list.collect { id, state -> + (state.quant_results_file instanceof java.nio.file.Path && state.quant_results_file.exists()) ? + state.quant_results_file : null } - def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> - (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? - state.dupradar_output_duprate_exp_denscurve_mqc : + def rsem_counts_gene = list.collect { id, state -> + (state.rsem_counts_gene instanceof java.nio.file.Path && state.rsem_counts_gene.exists()) ? + state.rsem_counts_gene : null } - def bamstat_output = list.collect { id, state -> - (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? - state.bamstat_output : + def rsem_counts_transcripts = list.collect { id, state -> + (state.rsem_counts_transcripts instanceof java.nio.file.Path && state.rsem_counts_transcripts.exists()) ? + state.rsem_counts_transcripts : + null } + def pseudo_quant_out_dir = list.collect { id, state -> + (state.pseudo_quant_out_dir instanceof java.nio.file.Path && state.pseudo_quant_out_dir.exists()) ? + state.pseudo_quant_out_dir : + null } + def pseudo_salmon_quant_results = list.collect { id, state -> + (state.pseudo_salmon_quant_results_file instanceof java.nio.file.Path && state.pseudo_salmon_quant_results_file.exists()) ? + state.pseudo_salmon_quant_results_file : + null } + def pseudo_kallisto_quant_results = list.collect { id, state -> + (state.pseudo_kallisto_quant_results_file instanceof java.nio.file.Path && state.pseudo_kallisto_quant_results_file.exists()) ? + state.pseudo_kallisto_quant_results_file : + null } + def fastqc_zip_1 = list.collect { id, state -> + (state.fastqc_zip_1 instanceof java.nio.file.Path && state.fastqc_zip_1.exists()) ? + state.fastqc_zip_1 : + null } + def fastqc_zip_2 = list.collect { id, state -> + (state.fastqc_zip_2 instanceof java.nio.file.Path && state.fastqc_zip_2.exists()) ? + state.fastqc_zip_2 : + null } + def trim_zip_1 = list.collect { id, state -> + (state.trim_zip_1 instanceof java.nio.file.Path && state.trim_zip_1.exists()) ? + state.trim_zip_1 : + null } + def trim_zip_2 = list.collect { id, state -> + (state.trim_zip_2 instanceof java.nio.file.Path && state.trim_zip_2.exists()) ? + state.trim_zip_2 : null } - def inferexperiment_multiqc = list.collect { id, state -> - (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? - state.strandedness_output : + def trim_log_1 = list.collect { id, state -> + (state.trim_log_1 instanceof java.nio.file.Path && state.trim_log_1.exists()) ? + state.trim_log_1 : null } - def inner_dist_output_freq = list.collect { id, state -> - (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? - state.inner_dist_output_freq : + def trim_log_2 = list.collect { id, state -> + (state.trim_log_2 instanceof java.nio.file.Path && state.trim_log_2.exists()) ? + state.trim_log_2 : + null } + def sortmerna_multiqc = list.collect { id, state -> + (state.sortmerna_multiqc instanceof java.nio.file.Path && state.sortmerna_multiqc.exists()) ? + state.sortmerna_multiqc : + null } + def star_multiqc = list.collect { id, state -> + (state.star_multiqc instanceof java.nio.file.Path && state.star_multiqc.exists()) ? + state.star_multiqc : + null } + def genome_bam_stats = list.collect { id, state -> + (state.genome_bam_stats instanceof java.nio.file.Path && state.genome_bam_stats.exists()) ? + state.genome_bam_stats : + null } + def genome_bam_flagstat = list.collect { id, state -> + (state.genome_bam_flagstat instanceof java.nio.file.Path && state.genome_bam_flagstat.exists()) ? + state.genome_bam_flagstat : null } - def junction_annotation_output_log = list.collect { id, state -> - (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? - state.junction_annotation_output_log : - null } - def junction_saturation_output_plot_r = list.collect { id, state -> - (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? - state.junction_saturation_output_plot_r : - null } - def read_distribution_output = list.collect { id, state -> - (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? - state.read_distribution_output : - null } - def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> - (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? - state.read_duplication_output_duplication_rate_mapping : - null } - def tin_output_summary = list.collect { id, state -> - (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? - state.tin_output_summary : - null } - def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] - ["merged", [ - ids: ids, - strandedness: strandedness, - num_trimmed_reads: num_trimmed_reads, - passed_trimmed_reads: passed_trimmed_reads, - passed_mapping: passed_mapping, - percent_mapped: percent_mapped, - inferred_strand: inferred_strand, - passed_strand_check: passed_strand_check, - skip_align: skip_align, - skip_pseudo_align: skip_pseudo_align, - quant_results: quant_results.findAll { it != null }, - rsem_counts_gene: rsem_counts_gene.findAll { it != null }, - rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, - pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, - pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, - pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, - gtf: gtf, - gtf_extra_attributes: gtf_extra_attributes, - gtf_group_features: gtf_group_features, - pca_header_multiqc: pca_header_multiqc, - clustering_header_multiqc: clustering_header_multiqc, - aligner: aligner, - pseudo_aligner: pseudo_aligner, - deseq2_vst: deseq2_vst, - extra_deseq2_args: extra_deseq2_args, - extra_deseq2_args2: extra_deseq2_args2, - skip_deseq2_qc: skip_deseq2_qc, - fastqc_zip: fastqc_zip_1 + fastqc_zip_2, - trim_zip: trim_zip_1 + trim_zip_2, - trim_log: trim_log_1 + trim_log_2, - sortmerna_multiqc: sortmerna_multiqc, - star_multiqc: star_multiqc, - genome_bam_stats: genome_bam_stats, - genome_bam_flagstat: genome_bam_flagstat, - genome_bam_idxstats: genome_bam_idxstats, - markduplicates_multiqc: markduplicates_multiqc, - salmon_multiqc: salmon_multiqc, - rsem_multiqc: rsem_multiqc, - pseudo_multiqc: pseudo_multiqc, - featurecounts_multiqc: featurecounts_multiqc, - featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, - preseq_output: preseq_output, - qualimap_output_dir: qualimap_output_dir, - dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, - dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, - bamstat_output: bamstat_output, - inner_dist_output_freq: inner_dist_output_freq, - inferexperiment_multiqc: inferexperiment_multiqc, - junction_annotation_output_log: junction_annotation_output_log, - junction_saturation_output_plot_r: junction_saturation_output_plot_r, - read_distribution_output: read_distribution_output, - read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, - tin_output_summary: tin_output_summary, - multiqc_custom_config: multiqc_custom_config - ] ] - } + def genome_bam_idxstats = list.collect { id, state -> + (state.genome_bam_idxstats instanceof java.nio.file.Path && state.genome_bam_idxstats.exists()) ? + state.genome_bam_idxstats : + null } + def markduplicates_multiqc = list.collect { id, state -> + (state.markduplicates_multiqc instanceof java.nio.file.Path && state.markduplicates_multiqc.exists()) ? + state.markduplicates_multiqc : + null } + def salmon_multiqc = list.collect { id, state -> + (state.salmon_multiqc instanceof java.nio.file.Path && state.salmon_multiqc.exists()) ? + state.salmon_multiqc : + null } + def rsem_multiqc = list.collect { id, state -> + (state.rsem_multiqc instanceof java.nio.file.Path && state.rsem_multiqc.exists()) ? + state.rsem_multiqc : + null } + def pseudo_multiqc = list.collect { id, state -> + (state.pseudo_multiqc instanceof java.nio.file.Path && state.pseudo_multiqc.exists()) ? + state.pseudo_multiqc : + null } + def featurecounts_multiqc = list.collect { id, state -> + (state.featurecounts_multiqc instanceof java.nio.file.Path && state.featurecounts_multiqc.exists()) ? + state.featurecounts_multiqc : + null } + def featurecounts_rrna_multiqc = list.collect { id, state -> + (state.featurecounts_rrna_multiqc instanceof java.nio.file.Path && state.featurecounts_rrna_multiqc.exists()) ? + state.featurecounts_rrna_multiqc : + null } + def preseq_output = list.collect { id, state -> + (state.preseq_output instanceof java.nio.file.Path && state.preseq_output.exists()) ? + state.preseq_output : + null } + def qualimap_output_dir = list.collect { id, state -> + (state.qualimap_output_dir instanceof java.nio.file.Path && state.qualimap_output_dir.exists()) ? + state.qualimap_output_dir : + null } + def dupradar_output_dup_intercept_mqc = list.collect { id, state -> + (state.dupradar_output_dup_intercept_mqc instanceof java.nio.file.Path && state.dupradar_output_dup_intercept_mqc.exists()) ? + state.dupradar_output_dup_intercept_mqc : + null } + def dupradar_output_duprate_exp_denscurve_mqc = list.collect { id, state -> + (state.dupradar_output_duprate_exp_denscurve_mqc instanceof java.nio.file.Path && state.dupradar_output_duprate_exp_denscurve_mqc.exists()) ? + state.dupradar_output_duprate_exp_denscurve_mqc : + null } + def bamstat_output = list.collect { id, state -> + (state.bamstat_output instanceof java.nio.file.Path && state.bamstat_output.exists()) ? + state.bamstat_output : + null } + def inferexperiment_multiqc = list.collect { id, state -> + (state.strandedness_output instanceof java.nio.file.Path && state.strandedness_output.exists()) ? + state.strandedness_output : + null } + def inner_dist_output_freq = list.collect { id, state -> + (state.inner_dist_output_freq instanceof java.nio.file.Path && state.inner_dist_output_freq.exists()) ? + state.inner_dist_output_freq : + null } + def junction_annotation_output_log = list.collect { id, state -> + (state.junction_annotation_output_log instanceof java.nio.file.Path && state.junction_annotation_output_log.exists()) ? + state.junction_annotation_output_log : + null } + def junction_saturation_output_plot_r = list.collect { id, state -> + (state.junction_saturation_output_plot_r instanceof java.nio.file.Path && state.junction_saturation_output_plot_r.exists()) ? + state.junction_saturation_output_plot_r : + null } + def read_distribution_output = list.collect { id, state -> + (state.read_distribution_output instanceof java.nio.file.Path && state.read_distribution_output.exists()) ? + state.read_distribution_output : + null } + def read_duplication_output_duplication_rate_mapping = list.collect { id, state -> + (state.read_duplication_output_duplication_rate_mapping instanceof java.nio.file.Path && state.read_duplication_output_duplication_rate_mapping.exists()) ? + state.read_duplication_output_duplication_rate_mapping : + null } + def tin_output_summary = list.collect { id, state -> + (state.tin_output_summary instanceof java.nio.file.Path && state.tin_output_summary.exists()) ? + state.tin_output_summary : + null } + def multiqc_custom_config = list.collect { id, state -> state.multiqc_custom_config }.unique()[0] + ["merged", [ + ids: ids, + strandedness: strandedness, + num_trimmed_reads: num_trimmed_reads, + passed_trimmed_reads: passed_trimmed_reads, + passed_mapping: passed_mapping, + percent_mapped: percent_mapped, + inferred_strand: inferred_strand, + passed_strand_check: passed_strand_check, + skip_align: skip_align, + skip_pseudo_align: skip_pseudo_align, + quant_results: quant_results.findAll { it != null }, + rsem_counts_gene: rsem_counts_gene.findAll { it != null }, + rsem_counts_transcripts: rsem_counts_transcripts.findAll { it != null }, + pseudo_quant_out_dir: pseudo_quant_out_dir.findAll { it != null }, + pseudo_salmon_quant_results: pseudo_salmon_quant_results.findAll { it != null }, + pseudo_kallisto_quant_results: pseudo_kallisto_quant_results.findAll { it != null }, + gtf: gtf, + gtf_extra_attributes: gtf_extra_attributes, + gtf_group_features: gtf_group_features, + pca_header_multiqc: pca_header_multiqc, + clustering_header_multiqc: clustering_header_multiqc, + aligner: aligner, + pseudo_aligner: pseudo_aligner, + deseq2_vst: deseq2_vst, + extra_deseq2_args: extra_deseq2_args, + extra_deseq2_args2: extra_deseq2_args2, + skip_deseq2_qc: skip_deseq2_qc, + fastqc_zip: fastqc_zip_1 + fastqc_zip_2, + trim_zip: trim_zip_1 + trim_zip_2, + trim_log: trim_log_1 + trim_log_2, + sortmerna_multiqc: sortmerna_multiqc, + star_multiqc: star_multiqc, + genome_bam_stats: genome_bam_stats, + genome_bam_flagstat: genome_bam_flagstat, + genome_bam_idxstats: genome_bam_idxstats, + markduplicates_multiqc: markduplicates_multiqc, + salmon_multiqc: salmon_multiqc, + rsem_multiqc: rsem_multiqc, + pseudo_multiqc: pseudo_multiqc, + featurecounts_multiqc: featurecounts_multiqc, + featurecounts_rrna_multiqc: featurecounts_rrna_multiqc, + preseq_output: preseq_output, + qualimap_output_dir: qualimap_output_dir, + dupradar_output_dup_intercept_mqc: dupradar_output_dup_intercept_mqc, + dupradar_output_duprate_exp_denscurve_mqc: dupradar_output_duprate_exp_denscurve_mqc, + bamstat_output: bamstat_output, + inner_dist_output_freq: inner_dist_output_freq, + inferexperiment_multiqc: inferexperiment_multiqc, + junction_annotation_output_log: junction_annotation_output_log, + junction_saturation_output_plot_r: junction_saturation_output_plot_r, + read_distribution_output: read_distribution_output, + read_duplication_output_duplication_rate_mapping: read_duplication_output_duplication_rate_mapping, + tin_output_summary: tin_output_summary, + multiqc_custom_config: multiqc_custom_config + ] ] + } - // Merge quantification results of alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, - fromState: [ - "salmon_quant_results": "quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features" - ], - args: [ quant_type: "salmon"], - toState: [ - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_quant_results" - ) + // Merge quantification results of alignment + | merge_quant_results.run ( + runIf: { id, state -> !state.skip_align && state.aligner == 'star_salmon' }, + fromState: [ + "salmon_quant_results": "quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features" + ], + args: [ quant_type: "salmon"], + toState: [ + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_quant_results" + ) - | rsem_merge_counts.run ( - runIf: { id, state -> state.aligner == 'star_rsem' }, - fromState: [ - "counts_gene": "rsem_counts_gene", - "counts_transcripts": "rsem_counts_transcripts" - ], - toState: [ - "tpm_gene": "merged_gene_tpm", - "counts_gene": "merged_gene_counts", - "tpm_transcript": "merged_transcript_tpm", - "counts_transcript": "merged_transcript_counts" - ] - ) - - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, - fromState: { id, state -> - def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled - [ - counts: counts, - vst: state.deseq2_vst, - label: state.aligner + | rsem_merge_counts.run ( + runIf: { id, state -> state.aligner == 'star_rsem' }, + fromState: [ + "counts_gene": "rsem_counts_gene", + "counts_transcripts": "rsem_counts_transcripts" + ], + toState: [ + "tpm_gene": "merged_gene_tpm", + "counts_gene": "merged_gene_counts", + "tpm_transcript": "merged_transcript_tpm", + "counts_transcript": "merged_transcript_counts" ] - }, - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_align_quant" - ) + ) - // Merge quantification results of pseudo alignment - | merge_quant_results.run ( - runIf: { id, state -> !state.skip_pseudo_align }, - fromState: [ - "salmon_quant_results": "pseudo_salmon_quant_results", - "kallisto_quant_results": "pseudo_kallisto_quant_results", - "gtf": "gtf", - "gtf_extra_attributes": "gtf_extra_attributes", - "gtf_group_features": "gtf_group_features", - "quant_type": "pseudo_aligner" - ], - toState: [ - "pseudo_tpm_gene": "tpm_gene", - "pseudo_counts_gene": "counts_gene", - "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "counts_gene_scaled", - "pseudo_tpm_transcript": "tpm_transcript", - "pseudo_counts_transcript": "counts_transcript", - "pseudo_lengths_gene": "lengths_gene", - "pseudo_lengths_transcript": "lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" - ], - key: "merge_pseudo_quant_results" - ) + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_align }, + fromState: { id, state -> + def counts = (state.aligner == "star_rsem") ? state.counts_gene : state.counts_gene_length_scaled + [ + counts: counts, + vst: state.deseq2_vst, + label: state.aligner + ] + }, + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output": "outdir", + "deseq2_pca_multiqc": "pca_multiqc", + "deseq2_dists_multiqc": "dists_multiqc" + ], + key: "deseq2_qc_align_quant" + ) - | deseq2_qc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, - fromState: [ - "counts": "pseudo_counts_gene_length_scaled", - "vst": "deseq2_vst", - "label": "pseudo_aligner" - ], - args: [count_col: 3, id_col: 1, outprefix: "deseq2"], - toState: [ - "deseq2_output": "deseq2_output", - "deseq2_pca_multiqc": "pca_multiqc", - "deseq2_dists_multiqc": "dists_multiqc" - ], - key: "deseq2_qc_pseuso_align_quant" - ) - - // Get list of samples that failed trimming, mapping, and strand check for MultiQC report - | map { id, state -> - def fail_trimming_header = ["Sample", "Reads after trimming"] - def fail_trimming_multiqc = "" - def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] - def fail_mapping_multiqc = "" - def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] - def fail_strand_multiqc = "" - if (state.ids.size() > 0) { - fail_trimming_multiqc += "${fail_trimming_header.join('\t')}\n" - fail_mapping_multiqc += "${star_mapping_header.join('\t')}\n" - fail_strand_multiqc += "${strand_check_header.join('\t')}\n" - for (i=0; i !state.skip_pseudo_align }, + fromState: [ + "salmon_quant_results": "pseudo_salmon_quant_results", + "kallisto_quant_results": "pseudo_kallisto_quant_results", + "gtf": "gtf", + "gtf_extra_attributes": "gtf_extra_attributes", + "gtf_group_features": "gtf_group_features", + "quant_type": "pseudo_aligner" + ], + toState: [ + "pseudo_tpm_gene": "tpm_gene", + "pseudo_counts_gene": "counts_gene", + "pseudo_counts_gene_length_scaled": "counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "counts_gene_scaled", + "pseudo_tpm_transcript": "tpm_transcript", + "pseudo_counts_transcript": "counts_transcript", + "pseudo_lengths_gene": "lengths_gene", + "pseudo_lengths_transcript": "lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment" + ], + key: "merge_pseudo_quant_results" + ) + + | deseq2_qc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_deseq2_qc && !state.skip_pseudo_align }, + fromState: [ + "counts": "pseudo_counts_gene_length_scaled", + "vst": "deseq2_vst", + "label": "pseudo_aligner" + ], + args: [count_col: 3, id_col: 1, outprefix: "deseq2"], + toState: [ + "deseq2_output_pseudo": "outdir", + "deseq2_pca_multiqc_pseudo": "pca_multiqc", + "deseq2_dists_multiqc_pseudo": "dists_multiqc" + ], + key: "deseq2_qc_pseuso_align_quant" + ) - [ id, state + [fail_trimming_multiqc: fail_trimming_multiqc, fail_mapping_multiqc: fail_mapping_multiqc, fail_strand_multiqc: fail_strand_multiqc] ] - } - - | map { id, state -> - state.each { key, value -> - if (value instanceof ArrayList) { - value.removeAll { it == null } + // Get list of samples that failed trimming, mapping, and strand check for MultiQC report + | map { id, state -> + def fail_trimming_header = ["Sample", "Reads after trimming"] + def fail_trimming_multiqc = "" + def star_mapping_header = ["Sample", "STAR uniquely mapped reads (%)"] + def fail_mapping_multiqc = "" + def strand_check_header = ["Sample", "Provided strandedness", "Inferred strandedness", "Sense (%)", "Antisense (%)", "Undetermined (%)"] + def fail_strand_multiqc = "" + if (state.ids.size() > 0) { + fail_trimming_multiqc += "${fail_trimming_header.join('\t')}\n" + fail_mapping_multiqc += "${star_mapping_header.join('\t')}\n" + fail_strand_multiqc += "${strand_check_header.join('\t')}\n" + for (i=0; i value != null } - [ id, mod_state ] - } - | prepare_multiqc_input.run( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "fail_trimming_multiqc": "fail_trimming_multiqc", - "fail_mapping_multiqc": "fail_mapping_multiqc", - "fail_strand_multiqc": "fail_strand_multiqc", - "fastqc_raw_multiqc": "fastqc_zip", - "fastqc_trim_multiqc": "trim_zip", - "trim_log_multiqc": "trim_log", - "sortmerna_multiqc": "sortmerna_multiqc", - "star_multiqc": "star_multiqc", - "salmon_multiqc": "salmon_multiqc", - "rsem_multiqc": "rsem_multiqc", - "pseudo_multiqc": "pseudo_multiqc", - "samtools_stats": "genome_bam_stats", - "samtools_flagstat": "genome_bam_flagstat", - "samtools_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_multiqc", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "aligner_pca_multiqc": "deseq2_pca_multiqc", - "aligner_clustering_multiqc": "deseq2_dists_multiqc", - "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", - "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", - "preseq_multiqc": "preseq_output", - "qualimap_multiqc": "qualimap_output_dir", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "bamstat_multiqc": "bamstat_output", - "inferexperiment_multiqc": "inferexperiment_multiqc", - "innerdistance_multiqc": "inner_dist_output_freq", - "junctionannotation_multiqc": "junction_annotation_output_log", - "junctionsaturation_multiqc": "junction_saturation_output_plot_r", - "readdistribution_multiqc": "read_distribution_output", - "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", - "tin_multiqc": "tin_output_summary", - "multiqc_config": "multiqc_custom_config" - ], - toState: [ "multiqc_input": "output" ] - ) + | map { id, state -> + state.each { key, value -> + if (value instanceof ArrayList) { + value.removeAll { it == null } + } + } + mod_state = state.findAll { key, value -> value != null } + [ id, mod_state ] + } - | multiqc.run ( - runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, - fromState: [ - "title": "multiqc_title", - "input": "multiqc_input", - ], - args: [exclude_modules: "general_stats"], - toState: [ - "multiqc_report": "output_report", - "multiqc_data": "output_data", - "multiqc_plots": "output_plots" - ] - ) + | prepare_multiqc_input.run( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "fail_trimming_multiqc": "fail_trimming_multiqc", + "fail_mapping_multiqc": "fail_mapping_multiqc", + "fail_strand_multiqc": "fail_strand_multiqc", + "fastqc_raw_multiqc": "fastqc_zip", + "fastqc_trim_multiqc": "trim_zip", + "trim_log_multiqc": "trim_log", + "sortmerna_multiqc": "sortmerna_multiqc", + "star_multiqc": "star_multiqc", + "salmon_multiqc": "salmon_multiqc", + "rsem_multiqc": "rsem_multiqc", + "pseudo_multiqc": "pseudo_multiqc", + "samtools_stats": "genome_bam_stats", + "samtools_flagstat": "genome_bam_flagstat", + "samtools_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_multiqc", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "aligner_pca_multiqc": "deseq2_pca_multiqc", + "aligner_clustering_multiqc": "deseq2_dists_multiqc", + "pseudo_aligner_pca_multiqc": "deseq2_pca_multiqc_pseudo", + "pseudo_aligner_clustering_multiqc": "deseq2_dists_multiqc_pseudo", + "preseq_multiqc": "preseq_output", + "qualimap_multiqc": "qualimap_output_dir", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "bamstat_multiqc": "bamstat_output", + "inferexperiment_multiqc": "inferexperiment_multiqc", + "innerdistance_multiqc": "inner_dist_output_freq", + "junctionannotation_multiqc": "junction_annotation_output_log", + "junctionsaturation_multiqc": "junction_saturation_output_plot_r", + "readdistribution_multiqc": "read_distribution_output", + "readduplication_multiqc": "read_duplication_output_duplication_rate_mapping", + "tin_multiqc": "tin_output_summary", + "multiqc_config": "multiqc_custom_config" + ], + toState: [ "multiqc_input": "output" ] + ) - | map { id, state -> - [ id, [ - tpm_gene: state.tpm_gene, - counts_gene: state.counts_gene, - counts_gene_length_scaled: state.counts_gene_length_scaled, - counts_gene_scaled: state.counts_gene_scaled, - tpm_transcript: state.tpm_transcript, - counts_transcript: state.counts_transcript, - quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, - deseq2_output: state.deseq2_output, - pseudo_tpm_gene: state.pseudo_tpm_gene, - pseudo_counts_gene: state.pseudo_counts_gene, - pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, - pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, - pseudo_tpm_transcript: state.pseudo_tpm_transcript, - pseudo_counts_transcript: state.pseudo_counts_transcript, - pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, - deseq2_output_pseudo: state.deseq2_output_pseudo, - multiqc_report: state.multiqc_report, - multiqc_data: state.multiqc_data, - multiqc_plots: state.multiqc_plots - ] ] - } + | multiqc.run ( + runIf: { id, state -> !state.skip_qc && !state.skip_multiqc }, + fromState: [ + "title": "multiqc_title", + "input": "multiqc_input", + ], + args: [exclude_modules: "general_stats"], + toState: [ + "multiqc_report": "output_report", + "multiqc_data": "output_data", + "multiqc_plots": "output_plots" + ] + ) - | map { list -> list[1]} + | map { id, state -> + [ id, [ + tpm_gene: state.tpm_gene, + counts_gene: state.counts_gene, + counts_gene_length_scaled: state.counts_gene_length_scaled, + counts_gene_scaled: state.counts_gene_scaled, + tpm_transcript: state.tpm_transcript, + counts_transcript: state.counts_transcript, + quant_merged_summarizedexperiment: state.quant_merged_summarizedexperiment, + deseq2_output: state.deseq2_output, + pseudo_tpm_gene: state.pseudo_tpm_gene, + pseudo_counts_gene: state.pseudo_counts_gene, + pseudo_counts_gene_length_scaled: state.pseudo_counts_gene_length_scaled, + pseudo_counts_gene_scaled: state.pseudo_counts_gene_scaled, + pseudo_tpm_transcript: state.pseudo_tpm_transcript, + pseudo_counts_transcript: state.pseudo_counts_transcript, + pseudo_quant_merged_summarizedexperiment: state.pseudo_quant_merged_summarizedexperiment, + deseq2_output_pseudo: state.deseq2_output_pseudo, + multiqc_report: state.multiqc_report, + multiqc_data: state.multiqc_data, + multiqc_plots: state.multiqc_plots + ] ] + } + + | map { list -> list[1]} output_ch = qc_ch - | combine(merged_ch) + | combine(merged_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } - | setState ( - [ - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "lengths_gene": "lengths_gene", - "lengths_transcript": "lengths_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) + | setState ( + [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "lengths_gene": "lengths_gene", + "lengths_transcript": "lengths_transcript", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) emit: output_ch diff --git a/target/nextflow/workflows/quality_control/nextflow_schema.json b/target/nextflow/workflows/quality_control/nextflow_schema.json index 334e620..63cbe3c 100644 --- a/target/nextflow/workflows/quality_control/nextflow_schema.json +++ b/target/nextflow/workflows/quality_control/nextflow_schema.json @@ -30,7 +30,7 @@ "description": "Type: `string`, default: `unstranded`. Sample strand-specificity", "help_text": "Type: `string`, default: `unstranded`. Sample strand-specificity. Must be one of unstranded, forward, reverse" , - "default": "unstranded" + "default":"unstranded" } @@ -91,7 +91,7 @@ "description": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon." , - "default": "gene_id" + "default":"gene_id" } @@ -102,7 +102,7 @@ "description": "Type: `string`, default: `gene_name`. By default, the pipeline uses the gene_name field to obtain additional gene identifiers from the input GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_name`. By default, the pipeline uses the gene_name field to obtain additional gene identifiers from the input GTF file when running Salmon." , - "default": "gene_name" + "default":"gene_name" } @@ -203,7 +203,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -214,7 +214,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -225,7 +225,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -236,7 +236,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -247,7 +247,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -258,7 +258,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -269,7 +269,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -280,7 +280,7 @@ "description": "Type: `boolean_true`, default: `false`. ", "help_text": "Type: `boolean_true`, default: `false`. " , - "default": "False" + "default":false } @@ -291,7 +291,7 @@ "description": "Type: `boolean`, default: `false`. ", "help_text": "Type: `boolean`, default: `false`. " , - "default": "False" + "default":false } @@ -302,7 +302,7 @@ "description": "Type: `string`, default: `-verbose -bam -seed 1`. ", "help_text": "Type: `string`, default: `-verbose -bam -seed 1`. " , - "default": "-verbose -bam -seed 1" + "default":"-verbose -bam -seed 1" } @@ -313,7 +313,7 @@ "description": "Type: `string`, default: `gene_biotype`. The attribute type used to group feature types in the GTF file when generating the biotype plot with featureCounts", "help_text": "Type: `string`, default: `gene_biotype`. The attribute type used to group feature types in the GTF file when generating the biotype plot with featureCounts." , - "default": "gene_biotype" + "default":"gene_biotype" } @@ -324,7 +324,7 @@ "description": "Type: `string`, default: `exon`. By default, the pipeline assigns reads based on the \u0027exon\u0027 attribute within the GTF file", "help_text": "Type: `string`, default: `exon`. By default, the pipeline assigns reads based on the \u0027exon\u0027 attribute within the GTF file." , - "default": "exon" + "default":"exon" } @@ -345,7 +345,7 @@ "description": "Type: `file`, default: `src/assets/multiqc/biotypes_header.txt`. ", "help_text": "Type: `file`, default: `src/assets/multiqc/biotypes_header.txt`. " , - "default": "src/assets/multiqc/biotypes_header.txt" + "default":"src/assets/multiqc/biotypes_header.txt" } @@ -373,12 +373,10 @@ "rseqc_modules": { "type": "string", - "description": "Type: List of `string`, default: `bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication`, multiple_sep: `\",\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf", - "help_text": "Type: List of `string`, default: `bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication`, multiple_sep: `\",\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf", - "enum": ["bam_stat", "inner_distance", "infer_experiment", "junction_annotation", "junction_saturation", "read_distribution", "read_duplication", "tin"] - + "description": "Type: List of `string`, default: `bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication`, multiple_sep: `\";\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf", + "help_text": "Type: List of `string`, default: `bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication`, multiple_sep: `\";\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf" , - "default": "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + "default":"bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" } @@ -389,7 +387,7 @@ "description": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file to infer experiment and calculate inner distance, default = 200000", "help_text": "Type: `integer`, default: `200000`. Numer of reads sampled from SAM/BAM file to infer experiment and calculate inner distance, default = 200000." , - "default": "200000" + "default":200000 } @@ -400,7 +398,7 @@ "description": "Type: `integer`, default: `-250`. Lower bound of inner distance (bp)", "help_text": "Type: `integer`, default: `-250`. Lower bound of inner distance (bp). This option is used for ploting histograme, default = -250." , - "default": "-250" + "default":-250 } @@ -411,7 +409,7 @@ "description": "Type: `integer`, default: `250`. Upper bound of inner distance (bp)", "help_text": "Type: `integer`, default: `250`. Upper bound of inner distance (bp). This option is used for ploting histograme, default = 250." , - "default": "250" + "default":250 } @@ -422,7 +420,7 @@ "description": "Type: `integer`, default: `5`. Step size (bp) of histograme of inner distance", "help_text": "Type: `integer`, default: `5`. Step size (bp) of histograme of inner distance. This option is used for plotting histogram, default = 5." , - "default": "5" + "default":5 } @@ -433,7 +431,7 @@ "description": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default = 30", "help_text": "Type: `integer`, default: `30`. Minimum mapping quality (phred scaled) to determine uniquely mapped reads, default = 30." , - "default": "30" + "default":30 } @@ -444,7 +442,7 @@ "description": "Type: `integer`, default: `50`. Minimum intron length (bp) to call a junction, default = 50", "help_text": "Type: `integer`, default: `50`. Minimum intron length (bp) to call a junction, default = 50." , - "default": "50" + "default":50 } @@ -455,7 +453,7 @@ "description": "Type: `integer`, default: `1`. Minimum number of supporting reads to call a junction, default = 1", "help_text": "Type: `integer`, default: `1`. Minimum number of supporting reads to call a junction, default = 1." , - "default": "1" + "default":1 } @@ -466,7 +464,7 @@ "description": "Type: `integer`, default: `5`. Read sampling for junction saturation starts from this percentile, must be an integer between 0 and 100, default = 5", "help_text": "Type: `integer`, default: `5`. Read sampling for junction saturation starts from this percentile, must be an integer between 0 and 100, default = 5." , - "default": "5" + "default":5 } @@ -477,7 +475,7 @@ "description": "Type: `integer`, default: `100`. Read sampling for junction saturation ends at this percentile, must be an integer between 0 and 100, default = 5", "help_text": "Type: `integer`, default: `100`. Read sampling for junction saturation ends at this percentile, must be an integer between 0 and 100, default = 5." , - "default": "100" + "default":100 } @@ -488,7 +486,7 @@ "description": "Type: `integer`, default: `5`. Read sampling for junction saturation frequency in %", "help_text": "Type: `integer`, default: `5`. Read sampling for junction saturation frequency in %. Smaller value means more sampling times. Must be an integer between 0 and 100, default = 5." , - "default": "5" + "default":5 } @@ -499,7 +497,7 @@ "description": "Type: `integer`, default: `500`. Upper limit of reads\u0027 occurence to determine read duplication", "help_text": "Type: `integer`, default: `500`. Upper limit of reads\u0027 occurence to determine read duplication. Only used for plotting, default = 500 (times)." , - "default": "500" + "default":500 } @@ -510,7 +508,7 @@ "description": "Type: `integer`, default: `10`. Minimum number of reads mapped to a transcript to determin tin, default = 10", "help_text": "Type: `integer`, default: `10`. Minimum number of reads mapped to a transcript to determin tin, default = 10." , - "default": "10" + "default":10 } @@ -521,7 +519,7 @@ "description": "Type: `integer`, default: `100`. Number of equal-spaced nucleotide positions picked from mRNA", "help_text": "Type: `integer`, default: `100`. Number of equal-spaced nucleotide positions picked from mRNA. Note, if this number is larger than the length of mRNA (L), it will be halved until it\u0027s smaller than L (default = 100)" , - "default": "100" + "default":100 } @@ -532,7 +530,7 @@ "description": "Type: `boolean_true`, default: `false`. Set flag to subtract background noise (estimated from intronic reads) to determine tin", "help_text": "Type: `boolean_true`, default: `false`. Set flag to subtract background noise (estimated from intronic reads) to determine tin. Only use this option if there are substantial intronic reads." , - "default": "False" + "default":false } @@ -545,7 +543,7 @@ "enum": ["html", "pdf"] , - "default": "html" + "default":"html" } @@ -556,7 +554,7 @@ "description": "Type: `integer`, default: `100`. Number of upstream/downstream nucleotide bases to compute 5\u0027-3\u0027 bias for qualimap (default = 100)", "help_text": "Type: `integer`, default: `100`. Number of upstream/downstream nucleotide bases to compute 5\u0027-3\u0027 bias for qualimap (default = 100)." , - "default": "100" + "default":100 } @@ -567,7 +565,7 @@ "description": "Type: `integer`, default: `1000`. Number of top highly expressed transcripts to compute 5\u0027-3\u0027 bias for qualimap (default = 1000)", "help_text": "Type: `integer`, default: `1000`. Number of top highly expressed transcripts to compute 5\u0027-3\u0027 bias for qualimap (default = 1000)." , - "default": "1000" + "default":1000 } @@ -578,7 +576,7 @@ "description": "Type: `string`, default: `uniquely-mapped-reads`. Counting algorithm for qualimap (uniquely-mapped-reads (default) or proportional)", "help_text": "Type: `string`, default: `uniquely-mapped-reads`. Counting algorithm for qualimap (uniquely-mapped-reads (default) or proportional)." , - "default": "uniquely-mapped-reads" + "default":"uniquely-mapped-reads" } @@ -591,7 +589,7 @@ "enum": ["non-strand-specific", "strand-specific-reverse", "strand-specific-forward"] , - "default": "non-strand-specific" + "default":"non-strand-specific" } @@ -602,7 +600,7 @@ "description": "Type: `boolean_true`, default: `false`. Setting this flag indicates that the input file is already sorted by name", "help_text": "Type: `boolean_true`, default: `false`. Setting this flag indicates that the input file is already sorted by name. If flag is not set, additional sorting by name will be performed for qualimap. Only requiredfor paired-end analysis." , - "default": "False" + "default":false } @@ -613,7 +611,7 @@ "description": "Type: `string`, default: `4G`. maximum Java heap memory size for qualimap, default = 4G", "help_text": "Type: `string`, default: `4G`. maximum Java heap memory size for qualimap, default = 4G." , - "default": "4G" + "default":"4G" } @@ -864,7 +862,7 @@ "description": "Type: `file`, default: `$id.$key.preseq_output.txt`. ", "help_text": "Type: `file`, default: `$id.$key.preseq_output.txt`. " , - "default": "$id.$key.preseq_output.txt" + "default":"$id.$key.preseq_output.txt" } @@ -875,7 +873,7 @@ "description": "Type: `file`, default: `$id.$key.bamstat_output.txt`. Path to output file (txt) of mapping quality statistics", "help_text": "Type: `file`, default: `$id.$key.bamstat_output.txt`. Path to output file (txt) of mapping quality statistics" , - "default": "$id.$key.bamstat_output.txt" + "default":"$id.$key.bamstat_output.txt" } @@ -886,7 +884,7 @@ "description": "Type: `file`, default: `$id.$key.strandedness_output.txt`. Path to output report (txt) of inferred strandedness", "help_text": "Type: `file`, default: `$id.$key.strandedness_output.txt`. Path to output report (txt) of inferred strandedness" , - "default": "$id.$key.strandedness_output.txt" + "default":"$id.$key.strandedness_output.txt" } @@ -897,7 +895,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads" , - "default": "$id.$key.inner_dist_output_stats.stats" + "default":"$id.$key.inner_dist_output_stats.stats" } @@ -908,7 +906,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_dist.txt`. output file (txt) with inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_dist.txt`. output file (txt) with inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_dist.txt" + "default":"$id.$key.inner_dist_output_dist.txt" } @@ -919,7 +917,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_freq.txt" + "default":"$id.$key.inner_dist_output_freq.txt" } @@ -930,7 +928,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_plot.pdf" + "default":"$id.$key.inner_dist_output_plot.pdf" } @@ -941,7 +939,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_plot_r.r" + "default":"$id.$key.inner_dist_output_plot_r.r" } @@ -952,7 +950,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_log.log`. output log of junction annotation script", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_log.log`. output log of junction annotation script" , - "default": "$id.$key.junction_annotation_output_log.log" + "default":"$id.$key.junction_annotation_output_log.log" } @@ -963,7 +961,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_plot_r.r`. R script to generate splice_junction and splice_events plot", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_plot_r.r`. R script to generate splice_junction and splice_events plot" , - "default": "$id.$key.junction_annotation_output_plot_r.r" + "default":"$id.$key.junction_annotation_output_plot_r.r" } @@ -974,7 +972,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_bed.bed`. junction annotation file (bed format)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_bed.bed`. junction annotation file (bed format)" , - "default": "$id.$key.junction_annotation_output_junction_bed.bed" + "default":"$id.$key.junction_annotation_output_junction_bed.bed" } @@ -985,7 +983,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_interact.bed`. interact file (bed format) of junctions", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_interact.bed`. interact file (bed format) of junctions. Can be uploaded to UCSC genome browser or converted to bigInteract (using bedToBigBed program) for visualization." , - "default": "$id.$key.junction_annotation_output_junction_interact.bed" + "default":"$id.$key.junction_annotation_output_junction_interact.bed" } @@ -996,7 +994,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_sheet.xls`. junction annotation file (xls format)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_sheet.xls`. junction annotation file (xls format)" , - "default": "$id.$key.junction_annotation_output_junction_sheet.xls" + "default":"$id.$key.junction_annotation_output_junction_sheet.xls" } @@ -1007,7 +1005,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_events_plot.pdf`. plot of splice events (pdf)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_events_plot.pdf`. plot of splice events (pdf)" , - "default": "$id.$key.junction_annotation_output_splice_events_plot.pdf" + "default":"$id.$key.junction_annotation_output_splice_events_plot.pdf" } @@ -1018,7 +1016,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_junctions_plot.pdf`. plot of junctions (pdf)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_junctions_plot.pdf`. plot of junctions (pdf)" , - "default": "$id.$key.junction_annotation_output_splice_junctions_plot.pdf" + "default":"$id.$key.junction_annotation_output_splice_junctions_plot.pdf" } @@ -1029,7 +1027,7 @@ "description": "Type: `file`, default: `$id.$key.junction_saturation_output_plot_r.r`. r script to generate junction_saturation_plot plot", "help_text": "Type: `file`, default: `$id.$key.junction_saturation_output_plot_r.r`. r script to generate junction_saturation_plot plot" , - "default": "$id.$key.junction_saturation_output_plot_r.r" + "default":"$id.$key.junction_saturation_output_plot_r.r" } @@ -1040,7 +1038,7 @@ "description": "Type: `file`, default: `$id.$key.junction_saturation_output_plot.pdf`. plot of junction saturation (pdf", "help_text": "Type: `file`, default: `$id.$key.junction_saturation_output_plot.pdf`. plot of junction saturation (pdf" , - "default": "$id.$key.junction_saturation_output_plot.pdf" + "default":"$id.$key.junction_saturation_output_plot.pdf" } @@ -1051,7 +1049,7 @@ "description": "Type: `file`, default: `$id.$key.read_distribution_output.txt`. output file (txt) of read distribution analysis", "help_text": "Type: `file`, default: `$id.$key.read_distribution_output.txt`. output file (txt) of read distribution analysis." , - "default": "$id.$key.read_distribution_output.txt" + "default":"$id.$key.read_distribution_output.txt" } @@ -1062,7 +1060,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot_r.r`. R script for generating duplication rate plot", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot_r.r`. R script for generating duplication rate plot" , - "default": "$id.$key.read_duplication_output_duplication_rate_plot_r.r" + "default":"$id.$key.read_duplication_output_duplication_rate_plot_r.r" } @@ -1073,7 +1071,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot.pdf`. duplication rate plot (pdf)", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot.pdf`. duplication rate plot (pdf)" , - "default": "$id.$key.read_duplication_output_duplication_rate_plot.pdf" + "default":"$id.$key.read_duplication_output_duplication_rate_plot.pdf" } @@ -1084,7 +1082,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication" , - "default": "$id.$key.read_duplication_output_duplication_rate_mapping.xls" + "default":"$id.$key.read_duplication_output_duplication_rate_mapping.xls" } @@ -1095,7 +1093,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication" , - "default": "$id.$key.read_duplication_output_duplication_rate_sequence.xls" + "default":"$id.$key.read_duplication_output_duplication_rate_sequence.xls" } @@ -1106,7 +1104,7 @@ "description": "Type: `file`, default: `$id.$key.tin_output_summary.txt`. summary statistics (txt) of calculated TIN metrics", "help_text": "Type: `file`, default: `$id.$key.tin_output_summary.txt`. summary statistics (txt) of calculated TIN metrics" , - "default": "$id.$key.tin_output_summary.txt" + "default":"$id.$key.tin_output_summary.txt" } @@ -1117,7 +1115,7 @@ "description": "Type: `file`, default: `$id.$key.tin_output_metrics.xls`. file with TIN metrics (xls)", "help_text": "Type: `file`, default: `$id.$key.tin_output_metrics.xls`. file with TIN metrics (xls)" , - "default": "$id.$key.tin_output_metrics.xls" + "default":"$id.$key.tin_output_metrics.xls" } @@ -1128,7 +1126,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts" , - "default": "$id.$key.dupradar_output_dupmatrix.txt" + "default":"$id.$key.dupradar_output_dupmatrix.txt" } @@ -1139,7 +1137,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar" , - "default": "$id.$key.dupradar_output_dup_intercept_mqc.txt" + "default":"$id.$key.dupradar_output_dup_intercept_mqc.txt" } @@ -1150,7 +1148,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot" , - "default": "$id.$key.dupradar_output_duprate_exp_boxplot.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_boxplot.pdf" } @@ -1161,7 +1159,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts" , - "default": "$id.$key.dupradar_output_duprate_exp_densplot.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_densplot.pdf" } @@ -1172,7 +1170,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf`. path to output file (pdf) of density curve of gene duplication multiqc", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf`. path to output file (pdf) of density curve of gene duplication multiqc" , - "default": "$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf" } @@ -1183,7 +1181,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram" , - "default": "$id.$key.dupradar_output_expression_histogram.pdf" + "default":"$id.$key.dupradar_output_expression_histogram.pdf" } @@ -1194,7 +1192,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_intercept_slope.txt`. ", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_intercept_slope.txt`. " , - "default": "$id.$key.dupradar_output_intercept_slope.txt" + "default":"$id.$key.dupradar_output_intercept_slope.txt" } @@ -1205,7 +1203,7 @@ "description": "Type: `file`, default: `$id.$key.qualimap_output_pdf.pdf`. ", "help_text": "Type: `file`, default: `$id.$key.qualimap_output_pdf.pdf`. " , - "default": "$id.$key.qualimap_output_pdf.pdf" + "default":"$id.$key.qualimap_output_pdf.pdf" } @@ -1216,7 +1214,7 @@ "description": "Type: `file`, default: `$id.$key.qualimap_output_dir.qualimap_output`. ", "help_text": "Type: `file`, default: `$id.$key.qualimap_output_dir.qualimap_output`. " , - "default": "$id.$key.qualimap_output_dir.qualimap_output" + "default":"$id.$key.qualimap_output_dir.qualimap_output" } @@ -1227,7 +1225,7 @@ "description": "Type: `file`, default: `$id.$key.deseq2_output.deseq2_output`. ", "help_text": "Type: `file`, default: `$id.$key.deseq2_output.deseq2_output`. " , - "default": "$id.$key.deseq2_output.deseq2_output" + "default":"$id.$key.deseq2_output.deseq2_output" } @@ -1238,7 +1236,7 @@ "description": "Type: `file`, default: `$id.$key.deseq2_output_pseudo.deseq2_output_pseudo`. ", "help_text": "Type: `file`, default: `$id.$key.deseq2_output_pseudo.deseq2_output_pseudo`. " , - "default": "$id.$key.deseq2_output_pseudo.deseq2_output_pseudo" + "default":"$id.$key.deseq2_output_pseudo.deseq2_output_pseudo" } @@ -1249,7 +1247,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_report.html`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_report.html`. " , - "default": "$id.$key.multiqc_report.html" + "default":"$id.$key.multiqc_report.html" } @@ -1260,7 +1258,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_data.multiqc_data`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_data.multiqc_data`. " , - "default": "$id.$key.multiqc_data.multiqc_data" + "default":"$id.$key.multiqc_data.multiqc_data" } @@ -1271,7 +1269,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_plots.multiqc_plots`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_plots.multiqc_plots`. " , - "default": "$id.$key.multiqc_plots.multiqc_plots" + "default":"$id.$key.multiqc_plots.multiqc_plots" } @@ -1282,7 +1280,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts.txt`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts.txt`. " , - "default": "$id.$key.featurecounts.txt" + "default":"$id.$key.featurecounts.txt" } @@ -1293,7 +1291,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_summary.summary`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_summary.summary`. " , - "default": "$id.$key.featurecounts_summary.summary" + "default":"$id.$key.featurecounts_summary.summary" } @@ -1304,7 +1302,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_multiqc.tsv" + "default":"$id.$key.featurecounts_multiqc.tsv" } @@ -1315,7 +1313,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_rrna_multiqc.tsv" + "default":"$id.$key.featurecounts_rrna_multiqc.tsv" } @@ -1326,7 +1324,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. " , - "default": "$id.$key.tpm_gene.tsv" + "default":"$id.$key.tpm_gene.tsv" } @@ -1337,7 +1335,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene.tsv`. " , - "default": "$id.$key.counts_gene.tsv" + "default":"$id.$key.counts_gene.tsv" } @@ -1348,7 +1346,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. " , - "default": "$id.$key.counts_gene_length_scaled.tsv" + "default":"$id.$key.counts_gene_length_scaled.tsv" } @@ -1359,7 +1357,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. " , - "default": "$id.$key.counts_gene_scaled.tsv" + "default":"$id.$key.counts_gene_scaled.tsv" } @@ -1370,7 +1368,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. " , - "default": "$id.$key.tpm_transcript.tsv" + "default":"$id.$key.tpm_transcript.tsv" } @@ -1381,7 +1379,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. " , - "default": "$id.$key.counts_transcript.tsv" + "default":"$id.$key.counts_transcript.tsv" } @@ -1392,7 +1390,7 @@ "description": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`. ", "help_text": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`. " , - "default": "$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" + "default":"$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" } @@ -1403,7 +1401,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_tpm_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_tpm_gene.tsv`. " , - "default": "$id.$key.pseudo_tpm_gene.tsv" + "default":"$id.$key.pseudo_tpm_gene.tsv" } @@ -1414,7 +1412,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene.tsv`. " , - "default": "$id.$key.pseudo_counts_gene.tsv" + "default":"$id.$key.pseudo_counts_gene.tsv" } @@ -1425,7 +1423,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene_length_scaled.tsv`. " , - "default": "$id.$key.pseudo_counts_gene_length_scaled.tsv" + "default":"$id.$key.pseudo_counts_gene_length_scaled.tsv" } @@ -1436,7 +1434,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene_scaled.tsv`. " , - "default": "$id.$key.pseudo_counts_gene_scaled.tsv" + "default":"$id.$key.pseudo_counts_gene_scaled.tsv" } @@ -1447,7 +1445,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_tpm_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_tpm_transcript.tsv`. " , - "default": "$id.$key.pseudo_tpm_transcript.tsv" + "default":"$id.$key.pseudo_tpm_transcript.tsv" } @@ -1458,7 +1456,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_transcript.tsv`. " , - "default": "$id.$key.pseudo_counts_transcript.tsv" + "default":"$id.$key.pseudo_counts_transcript.tsv" } @@ -1469,7 +1467,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment`. " , - "default": "$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment" + "default":"$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment" } diff --git a/target/nextflow/workflows/rnaseq/.config.vsh.yaml b/target/nextflow/workflows/rnaseq/.config.vsh.yaml index 0276fd5..90217c0 100644 --- a/target/nextflow/workflows/rnaseq/.config.vsh.yaml +++ b/target/nextflow/workflows/rnaseq/.config.vsh.yaml @@ -693,10 +693,10 @@ argument_groups: multiple_sep: ";" - type: "string" name: "--rseqc_modules" - description: "Specify the RSeQC modules to run_wf" + description: "Specify the RSeQC modules to run_wf (comma-separated list)" info: null default: - - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + - "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" required: false choices: - "bam_stat" @@ -709,8 +709,8 @@ argument_groups: - "tin" direction: "input" multiple: true - multiple_sep: "," -- name: "Multiqc paramenters" + multiple_sep: ";" +- name: "MultiQC paramenters" arguments: - type: "file" name: "--multiqc_custom_config" @@ -840,7 +840,7 @@ argument_groups: description: "Path to output directory" info: null default: - - "fastq/$id.read_1.fastq" + - "fastq/$id.read_1.fastq.gz" must_exist: false create_parent: true required: false @@ -852,7 +852,7 @@ argument_groups: description: "Path to output directory" info: null default: - - "fastq/$id.read_2.fastq" + - "fastq/$id.read_2.fastq.gz" must_exist: false create_parent: true required: false @@ -1865,6 +1865,17 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" + - type: "file" + name: "--deseq2_output_pseudo" + info: null + default: + - "deseq2_qc_pseudo" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" - type: "file" name: "--multiqc_report" info: null @@ -1940,6 +1951,17 @@ argument_groups: direction: "output" multiple: false multiple_sep: ";" + - type: "file" + name: "--pseudo_tpm_gene" + info: null + default: + - "pseudo_alignment_quantification/gene_tpm.tsv" + must_exist: true + create_parent: true + required: false + direction: "output" + multiple: false + multiple_sep: ";" - type: "file" name: "--pseudo_tpm_transcript" info: null @@ -2090,8 +2112,8 @@ build_info: output: "target/nextflow/workflows/rnaseq" executable: "target/nextflow/workflows/rnaseq/main.nf" viash_version: "0.9.0" - git_commit: "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74" - git_remote: "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + git_commit: "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3" + git_remote: "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" dependencies: - "target/nextflow/workflows/prepare_genome" - "target/nextflow/cat_fastq" diff --git a/target/nextflow/workflows/rnaseq/main.nf b/target/nextflow/workflows/rnaseq/main.nf index 3c438e2..46e808f 100644 --- a/target/nextflow/workflows/rnaseq/main.nf +++ b/target/nextflow/workflows/rnaseq/main.nf @@ -3591,9 +3591,9 @@ meta = [ { "type" : "string", "name" : "--rseqc_modules", - "description" : "Specify the RSeQC modules to run_wf", + "description" : "Specify the RSeQC modules to run_wf (comma-separated list)", "default" : [ - "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + "bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" ], "required" : false, "choices" : [ @@ -3608,12 +3608,12 @@ meta = [ ], "direction" : "input", "multiple" : true, - "multiple_sep" : "," + "multiple_sep" : ";" } ] }, { - "name" : "Multiqc paramenters", + "name" : "MultiQC paramenters", "arguments" : [ { "type" : "file", @@ -3767,7 +3767,7 @@ meta = [ "name" : "--output_fastq_1", "description" : "Path to output directory", "default" : [ - "fastq/$id.read_1.fastq" + "fastq/$id.read_1.fastq.gz" ], "must_exist" : false, "create_parent" : true, @@ -3781,7 +3781,7 @@ meta = [ "name" : "--output_fastq_2", "description" : "Path to output directory", "default" : [ - "fastq/$id.read_2.fastq" + "fastq/$id.read_2.fastq.gz" ], "must_exist" : false, "create_parent" : true, @@ -4885,7 +4885,7 @@ meta = [ { "type" : "file", "name" : "--dupradar_output_duprate_exp_denscurve_mqc", - "description" : "path to output file (pdf''' + ''') of density curve of gene duplication multiqc", + "description''' + '''" : "path to output file (pdf) of density curve of gene duplication multiqc", "default" : [ "dupradar/density_curve/$id.duprate_exp_density_curve_mqc.pdf" ], @@ -4962,6 +4962,19 @@ meta = [ "multiple" : false, "multiple_sep" : ";" }, + { + "type" : "file", + "name" : "--deseq2_output_pseudo", + "default" : [ + "deseq2_qc_pseudo" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, { "type" : "file", "name" : "--multiqc_report", @@ -5050,6 +5063,19 @@ meta = [ "multiple" : false, "multiple_sep" : ";" }, + { + "type" : "file", + "name" : "--pseudo_tpm_gene", + "default" : [ + "pseudo_alignment_quantification/gene_tpm.tsv" + ], + "must_exist" : true, + "create_parent" : true, + "required" : false, + "direction" : "output", + "multiple" : false, + "multiple_sep" : ";" + }, { "type" : "file", "name" : "--pseudo_tpm_transcript", @@ -5251,8 +5277,8 @@ meta = [ "engine" : "native", "output" : "/workdir/root/repo/target/nextflow/workflows/rnaseq", "viash_version" : "0.9.0", - "git_commit" : "a4f2c7d5a1d0c27cc538c9b06ec4dec5c62f8d74", - "git_remote" : "https://x-access-token:ghs_hUComHHyuHIIVQYt2HdqulL85sCkXr3K9lOo@github.com/viash-hub/rnaseq" + "git_commit" : "ce40a4a6d9e94ca2d63978c9b4c2ea4004b9fcb3", + "git_remote" : "https://x-access-token:ghs_ot0XYuiYvcS5ZVYMUffn1TKOgZgnL00x8gE9@github.com/viash-hub/rnaseq" }, "package_config" : { "name" : "rnaseq", @@ -5312,22 +5338,22 @@ workflow run_wf { main: reference_ch = input_ch - | map { id, state -> - def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type - def filter_gtf = - ( - ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set - || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set - || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided - ) - && - ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided - [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] - } - - | toSortedList - - | map { list -> + | map { id, state -> + def biotype = state.gencode ? "gene_type" : state.featurecounts_group_type + def filter_gtf = + ( + ( !state.skip_alignment && state.aligner) // Condition 1: Alignment is required and aligner is set + || ( !state.skip_pseudo_alignment && state.pseudo_aligner ) // Condition 2: Pseudoalignment is required and pseudoaligner is set + || ( !state.transcript_fasta ) // Condition 3: Transcript FASTA file is not provided + ) + && + ( !state.skip_gtf_filter ) // Condition 4: --skip_gtf_filter is not provided + [ id, state + [ biotype: biotype, filter_gtf: filter_gtf ] ] + } + + | toSortedList + + | map { list -> [ "ref", [ fasta: list.collect { id, state -> state.fasta }.unique()[0], gtf: list.collect { id, state -> state.gtf }.unique()[0], @@ -5353,184 +5379,438 @@ workflow run_wf { filter_gtf: list.collect { id, state -> state.filter_gtf }.unique()[0], pseudo_aligner_kmer_size: list.collect { id, state -> state.pseudo_aligner_kmer_size }.unique()[0] ] ] - } + } - // prepare all the necessary files for reference genome - | prepare_genome.run ( - fromState: [ - "fasta": "fasta", - "gtf": "gtf", - "gff": "gff", - "additional_fasta": "additional_fasta", - "transcript_fasta": "transcript_fasta", - "gene_bed": "gene_bed", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "star_index": "star_index", - "rsem_index": "rsem_index", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", - // "splicesites": "splicesites", - // "hisat2_index": "hisat2_index", - "bbsplit_index": "bbsplit_index", - "skip_bbsplit": "skip_bbsplit", - "gencode": "gencode", - "biotype": "biotype", - "filter_gtf": "filter_gtf", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "skip_alignment": "skip_alignment", - "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" - ], - toState: [ - "fasta": "uncompressed_fasta", - "gtf": "gtf_uncompressed", - "transcript_fasta": "transcript_fasta_uncompressed", - "fai": "fai", - "chrom_sizes": "chrom_sizes", - "bbsplit_index": "bbsplit_index_uncompressed", - "star_index": "star_index_uncompressed", - "salmon_index": "salmon_index_uncompressed", - "kallisto_index": "kallisto_index_uncompressed", - "gene_bed": "gene_bed_uncompressed" - ] - ) + // prepare all the necessary files for reference genome + | prepare_genome.run ( + fromState: [ + "fasta": "fasta", + "gtf": "gtf", + "gff": "gff", + "additional_fasta": "additional_fasta", + "transcript_fasta": "transcript_fasta", + "gene_bed": "gene_bed", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "star_index": "star_index", + "rsem_index": "rsem_index", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "pseudo_aligner_kmer_size": "pseudo_aligner_kmer_size", + // "splicesites": "splicesites", + // "hisat2_index": "hisat2_index", + "bbsplit_index": "bbsplit_index", + "skip_bbsplit": "skip_bbsplit", + "gencode": "gencode", + "biotype": "biotype", + "filter_gtf": "filter_gtf", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "skip_alignment": "skip_alignment", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon" + ], + toState: [ + "fasta": "uncompressed_fasta", + "gtf": "gtf_uncompressed", + "transcript_fasta": "transcript_fasta_uncompressed", + "fai": "fai", + "chrom_sizes": "chrom_sizes", + "bbsplit_index": "bbsplit_index_uncompressed", + "star_index": "star_index_uncompressed", + "salmon_index": "salmon_index_uncompressed", + "kallisto_index": "kallisto_index_uncompressed", + "gene_bed": "gene_bed_uncompressed" + ] + ) - // Check if contigs in genome fasta file > 512 Mbp - | map { id, state -> - (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] - } + // Check if contigs in genome fasta file > 512 Mbp + | map { id, state -> + (isBelowMaxContigSize(state.fai)) ? [id, state] : [id, state + [bam_csi_index: true]] + } - | map { list -> list[1]} + | map { list -> list[1]} analysis_ch = input_ch - | combine(reference_ch) + | combine(reference_ch) - | map { list -> [list[0], list[1] + list[2]] } + | map { list -> [list[0], list[1] + list[2]] } - // Concatenate FastQ files from same sample if required - | cat_fastq.run ( - fromState: [ - "read_1": "fastq_1", - "read_2": "fastq_2" - ], - toState: [ - "fastq_1": "fastq_1", - "fastq_2": "fastq_2" - ] - ) + // Concatenate FastQ files from same sample if required + | cat_fastq.run ( + fromState: [ + "read_1": "fastq_1", + "read_2": "fastq_2" + ], + toState: [ + "fastq_1": "fastq_1", + "fastq_2": "fastq_2" + ] + ) - // Pre-process fastq files - | pre_processing.run ( - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "umitools_bc_pattern": "umitools_bc_pattern", - "umitools_bc_pattern2": "umitools_bc_pattern2", - "strandedness": "strandedness", - "transcript_fasta": "transcript_fasta", - "gtf": "gtf", - "with_umi": "with_umi", - "bbsplit_index": "bbsplit_index", - "bbsplit_fasta_list": "bbsplit_fasta_list", - "bc_pattern": "bc_pattern", - "ribo_database_manifest": "ribo_database_manifest", - "salmon_index": "salmon_index", - "skip_qc": "skip_qc", - "skip_fastqc": "skip_fastqc", - "skip_skip_umi_extract": "skip_umi_extract", - "umi_discard_read": "umi_discard_read", - "skip_trimming": "skip_trimming", - "trimmer": "trimmer", - "skip_bbsplit": "skip_bbsplit", - "remove_ribo_rna": "remove_ribo_rna" - ], - toState: [ + // Pre-process fastq files + | pre_processing.run ( + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "umitools_bc_pattern": "umitools_bc_pattern", + "umitools_bc_pattern2": "umitools_bc_pattern2", + "strandedness": "strandedness", + "transcript_fasta": "transcript_fasta", + "gtf": "gtf", + "with_umi": "with_umi", + "bbsplit_index": "bbsplit_index", + "bbsplit_fasta_list": "bbsplit_fasta_list", + "bc_pattern": "bc_pattern", + "ribo_database_manifest": "ribo_database_manifest", + "salmon_index": "salmon_index", + "skip_qc": "skip_qc", + "skip_fastqc": "skip_fastqc", + "skip_skip_umi_extract": "skip_umi_extract", + "umi_discard_read": "umi_discard_read", + "skip_trimming": "skip_trimming", + "trimmer": "trimmer", + "skip_bbsplit": "skip_bbsplit", + "remove_ribo_rna": "remove_ribo_rna" + ], + toState: [ + "fastqc_html_1": "fastqc_html_1", + "fastqc_html_2": "fastqc_html_2", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "fastq_1": "qc_output1", + "fastq_2": "qc_output2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "trim_html_1": "trim_html_1", + "trim_html_2": "trim_html_2", + "passed_trimmed_reads": "passed_trimmed_reads", + "num_trimmed_reads": "num_trimmed_reads", + "sortmerna_log": "sortmerna_log", + "salmon_quant_output": "salmon_quant_output", + "fastp_failed_trim": "failed_trim", + "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", + "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", + "fastp_trim_json": "trim_json", + "fastp_trim_html": "trim_html", + "fastp_trim_merged_out": "trim_merged_out" + ] + ) + + // Infer strandedness from Salmon pseudo-alignment results + | map { id, state -> + (state.strandedness == 'auto') ? + [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : + [id, state] + } + + // Filter FastQ files based on minimum trimmed read count after adapter trimming + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def num_reads = (state.skip_trimming) ? + state.min_trimmed_reads + 1 : + ( + (state.trimmer == "fastp") ? + getFastpReadsAfterFiltering(state.fastp_trim_json) : + ( + (!state.skip_trimming && input.size() == 2) ? + getTrimGaloreReadsAfterFiltering(state.trim_log_2) : + getTrimGaloreReadsAfterFiltering(state.trim_log_1) + ) + ) + def passed_trimmed_reads = + (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? + true : + false + [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] + } + + // Genome alignment and quantification + | genome_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "bam_csi_index": "bam_csi_index", + "aligner": "aligner", + "rsem_index": "rsem_index", + "star_index": "star_index", + "star_sjdb_gtf_feature_exon": "star_sjdb_gtf_feature_exon", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "salmon_quant_libtype": "salmon_quant_libtype", + "salmon_index": "salmon_index", + "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" + ], + toState: [ + "star_multiqc": "star_multiqc", + "rsem_multiqc": "rsem_multiqc", + "salmon_multiqc": "salmon_multiqc", + "genome_bam_sorted": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "transcriptome_bam": "transcriptome_bam", + "transcriptome_bam_index": "transcriptome_bam_index", + "transcriptome_bam_stats": "transcriptome_bam_stats", + "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", + "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", + "quant_out_dir": "quant_out_dir", + "quant_results_file": "quant_results_file", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "bam_genome_rsem": "bam_genome_rsem", + "bam_transcript_rsem": "bam_transcript_rsem" + ] + ) + + // Filter channels to get samples that passed STAR minimum mapping percentage + | map { id, state -> + def percent_mapped = (!state.skip_alignment && state.passed_trimmed_reads) ? getStarPercentMapped(state.star_multiqc) : 0.0 + def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false + [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] + } + + // Pseudo-alignment and quantification + | pseudo_alignment_and_quant.run ( + runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, + fromState: [ + "id": "id", + "fastq_1": "fastq_1", + "fastq_2": "fastq_2", + "strandedness": "strandedness", + "gtf": "gtf", + "transcript_fasta": "transcript_fasta", + "pseudo_aligner": "pseudo_aligner", + "salmon_index": "salmon_index", + "kallisto_index": "kallisto_index", + "extra_star_align_args": "extra_star_align_args", + "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", + "seq_platform": "seq_platform", + "seq_center": "seq_center", + "with_umi": "with_umi", + "umi_dedup_stats": "umi_dedup_stats", + "gtf_group_features": "gtf_group_features", + "gtf_extra_attributes": "gtf_extra_attributes", + "lib_type": "salmon_quant_libtype", + "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", + "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" + ], + toState: [ + "pseudo_quant_out_dir": "quant_out_dir", + "pseudo_salmon_quant_results_file": "salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", + "pseudo_multiqc": "pseudo_multiqc" + ] + ) + + | map { id, state -> + def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] + def paired = input.size() == 2 + [ id, state + [ paired: paired ] ] + } + + // Post-processing + | post_processing.run ( + runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "fasta": "fasta", + "fai": "fai", + "gtf": "gtf", + "genome_bam": "genome_bam_sorted", + "chrom_sizes": "chrom_sizes", + "star_multiqc": "star_multiqc", + "extra_picard_args": "extra_picard_args", + "extra_stringtie_args": "extra_stringtie_args", + "stringtie_ignore_gtf": "stringtie_ignore_gtf", + "extra_bedtools_args": "extra_bedtools_args", + "bam_csi_index": "bam_csi_index", + "min_mapped_reads": "min_mapped_reads", + "with_umi": "with_umi", + "skip_qc": "skip_qc", + "skip_markduplicates": "skip_markduplicates", + "skip_stringtie": "skip_stringtie", + "skip_bigwig":"gencode" + ], + toState: [ + "genome_bam_sorted": "processed_genome_bam", + "genome_bam_index": "genome_bam_index", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_metrics": "markduplicates_metrics", + "stringtie_transcript_gtf": "stringtie_transcript_gtf", + "stringtie_coverage_gtf": "stringtie_coverage_gtf", + "stringtie_abundance": "stringtie_abundance", + "stringtie_ballgown": "stringtie_ballgown", + "bedgraph_forward": "bedgraph_forward", + "bedgraph_reverse": "bedgraph_reverse", + "bigwig_forward": "bigwig_forward", + "bigwig_reverse": "bigwig_reverse" + ] + ) + + // Final QC + | quality_control.run ( + fromState: [ + "id": "id", + "paired": "paired", + "strandedness": "strandedness", + "skip_align": "skip_alignment", + "skip_pseudo_align": "skip_pseudo_alignment", + "skip_dupradar": "skip_dupradar", + "skip_qualimap": "skip_qualimap", + "skip_rseqc": "skip_rseqc", + "skip_multiqc": "skip_multiqc", + "skip_preseq": "skip_preseq", + "gtf": "gtf", + "num_trimmed_reads": "num_trimmed_reads", + "passed_trimmed_reads": "passed_trimmed_reads", + "passed_mapping": "passed_mapping", + "percent_mapped": "percent_mapped", + "genome_bam": "genome_bam_sorted", + "genome_bam_index": "genome_bam_index", + "salmon_multiqc": "salmon_multiqc", + "quant_results_file": "quant_results_file", + "rsem_multiqc": "rsem_multiqc", + "rsem_counts_gene": "rsem_counts_gene", + "rsem_counts_transcripts": "rsem_counts_transcripts", + "pseudo_multiqc": "pseudo_multiqc", + "pseudo_quant_out_dir": "pseudo_quant_out_dir", + "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", + "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", + "aligner": "aligner", + "pseudo_aligner": "pseudo_aligner", + "gene_bed": "gene_bed", + "extra_preseq_args": "extra_preseq_args", + "biotype": "biotype", + "skip_biotype_qc": "skip_biotype_qc", + "featurecounts_group_type": "featurecounts_group_type", + "featurecounts_feature_type": "featurecounts_feature_type", + "gencode": "gencode", + "skip_deseq2_qc": "skip_deseq2_qc", + "deseq2_vst": "deseq2_vst", + "multiqc_custom_config": "multiqc_custom_config", + "multiqc_title": "multiqc_title", + "multiqc_methods_description": "multiqc_methods_description", + "fastqc_zip_1": "fastqc_zip_1", + "fastqc_zip_2": "fastqc_zip_2", + "trim_log_1": "trim_log_1", + "trim_log_2": "trim_log_2", + "trim_zip_1": "trim_zip_1", + "trim_zip_2": "trim_zip_2", + "sortmerna_multiqc": "sortmerna_log", + "star_multiqc": "star_multiqc", + "genome_bam_stats": "genome_bam_stats", + "genome_bam_flagstat": "genome_bam_flagstat", + "genome_bam_idxstats": "genome_bam_idxstats", + "markduplicates_multiqc": "markduplicates_metrics", + "rseqc_modules": "rseqc_modules" + ], + toState: [ + "preseq_output": "preseq_output", + "bamstat_output": "bamstat_output", + "strandedness_output": "strandedness_output", + "inner_dist_output_stats": "inner_dist_output_stats", + "inner_dist_output_dist": "inner_dist_output_dist", + "inner_dist_output_freq": "inner_dist_output_freq", + "inner_dist_output_plot": "inner_dist_output_plot", + "inner_dist_output_plot_r": "inner_dist_output_plot_r", + "junction_annotation_output_log": "junction_annotation_output_log", + "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", + "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", + "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", + "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", + "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", + "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", + "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", + "junction_saturation_output_plot": "junction_saturation_output_plot", + "read_distribution_output": "read_distribution_output", + "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", + "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", + "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", + "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", + "tin_output_summary": "tin_output_summary", + "tin_output_metrics": "tin_output_metrics", + "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", + "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", + "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", + "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", + "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", + "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", + "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", + "qualimap_output_dir": "qualimap_output_dir", + "qualimap_output_pdf": "qualimap_output_pdf", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "tpm_gene": "tpm_gene", + "counts_gene": "counts_gene", + "counts_gene_length_scaled": "counts_gene_length_scaled", + "counts_gene_scaled": "counts_gene_scaled", + "tpm_transcript": "tpm_transcript", + "counts_transcript": "counts_transcript", + "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", + "multiqc_report": "multiqc_report", + "multiqc_data": "multiqc_data", + "multiqc_plots": "multiqc_plots" + ] + ) + + | map { id, state -> + def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } + [ id, mod_state ] + } + + | setState ( + [ + "output_fasta": "fasta", + "output_gtf": "gtf", + "output_transcript_fasta": "transcript_fasta", + "output_gene_bed": "gene_bed", + "output_bbsplit_index": "bbsplit_index", + "output_star_index": "star_index", + "output_salmon_index": "salmon_index", + "output_kallisto_index": "kallisto_index", "fastqc_html_1": "fastqc_html_1", "fastqc_html_2": "fastqc_html_2", "fastqc_zip_1": "fastqc_zip_1", "fastqc_zip_2": "fastqc_zip_2", - "fastq_1": "qc_output1", - "fastq_2": "qc_output2", + "output_fastq_1": "fastq_1", + "output_fastq_2": "fastq_2", "trim_log_1": "trim_log_1", "trim_log_2": "trim_log_2", "trim_zip_1": "trim_zip_1", "trim_zip_2": "trim_zip_2", "trim_html_1": "trim_html_1", "trim_html_2": "trim_html_2", - "passed_trimmed_reads": "passed_trimmed_reads", - "num_trimmed_reads": "num_trimmed_reads", "sortmerna_log": "sortmerna_log", - "salmon_quant_output": "salmon_quant_output", - "fastp_failed_trim": "failed_trim", - "fastp_failed_trim_unpaired1": "failed_trim_unpaired1", - "fastp_failed_trim_unpaired2": "failed_trim_unpaired2", - "fastp_trim_json": "trim_json", - "fastp_trim_html": "trim_html", - "fastp_trim_merged_out": "trim_merged_out" - ] - ) - - // Infer strandedness from Salmon pseudo-alignment results - | map { id, state -> - (state.strandedness == 'auto') ? - [ id, state + [strandedness: getSalmonInferredStrandedness(state.salmon_quant_output)] ] : - [id, state] - } - - // Filter FastQ files based on minimum trimmed read count after adapter trimming - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def num_reads = (state.skip_trimming) ? - state.min_trimmed_reads + 1 : - ( - (state.trimmer == "fastp") ? - getFastpReadsAfterFiltering(state.fastp_trim_json) : - ( - (!state.skip_trimming && input.size() == 2) ? - getTrimGaloreReadsAfterFiltering(state.trim_log_2) : - getTrimGaloreReadsAfterFiltering(state.trim_log_1) - ) - ) - def passed_trimmed_reads = - (state.skip_trimming || (num_reads >= state.min_trimmed_reads)) ? - true : - false - [ id, state + [num_trimmed_reads: num_reads, passed_trimmed_reads: passed_trimmed_reads] ] - } - - // Genome alignment and quantification - | genome_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "bam_csi_index": "bam_csi_index", - "aligner": "aligner", - "rsem_index": "rsem_index", - "star_index": "star_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "salmon_quant_libtype": "salmon_quant_libtype", - "salmon_index": "salmon_index", - "extra_rsem_calculate_expression_args": "extra_rsem_calculate_expression_args" - ], - toState: [ - "star_multiqc": "star_multiqc", - "rsem_multiqc": "rsem_multiqc", - "salmon_multiqc": "salmon_multiqc", + "star_log": "star_multiqc", "genome_bam_sorted": "genome_bam_sorted", "genome_bam_index": "genome_bam_index", "genome_bam_stats": "genome_bam_stats", @@ -5541,162 +5821,21 @@ workflow run_wf { "transcriptome_bam_stats": "transcriptome_bam_stats", "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "quant_out_dir": "quant_out_dir", - "quant_results_file": "quant_results_file", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "bam_genome_rsem": "bam_genome_rsem", - "bam_transcript_rsem": "bam_transcript_rsem" - ] - ) - - // Filter channels to get samples that passed STAR minimum mapping percentage - | map { id, state -> - def percent_mapped = (!state.skip_alignment) ? getStarPercentMapped(state.star_multiqc) : 0.0 - def passed_mapping = (percent_mapped >= state.min_mapped_reads) ? true : false - [ id, state + [percent_mapped: percent_mapped, passed_mapping: passed_mapping] ] - } - - // Pseudo-alignment and quantification - | pseudo_alignment_and_quant.run ( - runIf: { id, state -> !state.skip_pseudo_alignment && state.passed_trimmed_reads }, - fromState: [ - "id": "id", - "fastq_1": "fastq_1", - "fastq_2": "fastq_2", - "strandedness": "strandedness", - "gtf": "gtf", - "transcript_fasta": "transcript_fasta", - "pseudo_aligner": "pseudo_aligner", - "salmon_index": "salmon_index", - "kallisto_index": "kallisto_index", - "extra_star_align_args": "extra_star_align_args", - "star_ignore_sjdbgtf": "star_ignore_sjdbgtf", - "seq_platform": "seq_platform", - "seq_center": "seq_center", - "with_umi": "with_umi", - "umi_dedup_stats": "umi_dedup_stats", - "gtf_group_features": "gtf_group_features", - "gtf_extra_attributes": "gtf_extra_attributes", - "lib_type": "salmon_quant_libtype", - "kallisto_quant_fragment_length": "kallisto_quant_fragment_length", - "kallisto_quant_fragment_length_sd": "kallisto_quant_fragment_length_sd" - ], - toState: [ - "pseudo_quant_out_dir": "quant_out_dir", - "pseudo_salmon_quant_results_file": "salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "kallisto_quant_results_file", - "pseudo_multiqc": "pseudo_multiqc" - ] - ) - - | map { id, state -> - def input = state.fastq_2 ? [ state.fastq_1, state.fastq_2 ] : [ state.fastq_1 ] - def paired = input.size() == 2 - [ id, state + [ paired: paired ] ] - } - - // Post-processing - | post_processing.run ( - runIf: { id, state -> !state.skip_alignment && state.passed_trimmed_reads && state.passed_mapping }, - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "fasta": "fasta", - "fai": "fai", - "gtf": "gtf", - "genome_bam": "genome_bam_sorted", - "chrom_sizes": "chrom_sizes", - "star_multiqc": "star_multiqc", - "extra_picard_args": "extra_picard_args", - "extra_stringtie_args": "extra_stringtie_args", - "stringtie_ignore_gtf": "stringtie_ignore_gtf", - "extra_bedtools_args": "extra_bedtools_args", - "bam_csi_index": "bam_csi_index", - "min_mapped_reads": "min_mapped_reads", - "with_umi": "with_umi", - "skip_qc": "skip_qc", - "skip_markduplicates": "skip_markduplicates", - "skip_stringtie": "skip_stringtie", - "skip_bigwig":"gencode" - ], - toState: [ - "genome_bam_sorted": "processed_genome_bam", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", + "salmon_quant_results": "quant_out_dir", + "pseudo_quant_results": "pseudo_quant_out_dir", "markduplicates_metrics": "markduplicates_metrics", "stringtie_transcript_gtf": "stringtie_transcript_gtf", "stringtie_coverage_gtf": "stringtie_coverage_gtf", "stringtie_abundance": "stringtie_abundance", "stringtie_ballgown": "stringtie_ballgown", + "featurecounts": "featurecounts", + "featurecounts_summary": "featurecounts_summary", + "featurecounts_multiqc": "featurecounts_multiqc", + "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", "bedgraph_forward": "bedgraph_forward", "bedgraph_reverse": "bedgraph_reverse", "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse" - ] - ) - - // Final QC - | quality_control.run ( - fromState: [ - "id": "id", - "paired": "paired", - "strandedness": "strandedness", - "skip_align": "skip_alignment", - "skip_pseudo_align": "skip_pseudo_alignment", - "skip_dupradar": "skip_dupradar", - "skip_qualimap": "skip_qualimap", - "skip_rseqc": "skip_rseqc", - "skip_multiqc": "skip_multiqc", - "skip_preseq": "skip_preseq", - "gtf": "gtf", - "num_trimmed_reads": "num_trimmed_reads", - "passed_trimmed_reads": "passed_trimmed_reads", - "passed_mapping": "passed_mapping", - "percent_mapped": "percent_mapped", - "genome_bam": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "salmon_multiqc": "salmon_multiqc", - "quant_results_file": "quant_results_file", - "rsem_multiqc": "rsem_multiqc", - "rsem_counts_gene": "rsem_counts_gene", - "rsem_counts_transcripts": "rsem_counts_transcripts", - "pseudo_multiqc": "pseudo_multiqc", - "pseudo_quant_out_dir": "pseudo_quant_out_dir", - "pseudo_salmon_quant_results_file": "pseudo_salmon_quant_results_file", - "pseudo_kallisto_quant_results_file": "pseudo_kallisto_quant_results_file", - "aligner": "aligner", - "pseudo_aligner": "pseudo_aligner", - "gene_bed": "gene_bed", - "extra_preseq_args": "extra_preseq_args", - "biotype": "biotype", - "skip_biotype_qc": "skip_biotype_qc", - "featurecounts_group_type": "featurecounts_group_type", - "featurecounts_feature_type": "featurecounts_feature_type", - "gencode": "gencode", - "skip_deseq2_qc": "skip_deseq2_qc", - "deseq2_vst": "deseq2_vst", - "multiqc_custom_config": "multiqc_custom_config", - "multiqc_title": "multiqc_title", - "multiqc_methods_description": "multiqc_methods_description", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "sortmerna_multiqc": "sortmerna_log", - "star_multiqc": "star_multiqc", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "markduplicates_multiqc": "markduplicates_metrics", - "rseqc_modules": "rseqc_modules" - ], - toState: [ + "bigwig_reverse": "bigwig_reverse", "preseq_output": "preseq_output", "bamstat_output": "bamstat_output", "strandedness_output": "strandedness_output", @@ -5729,140 +5868,33 @@ workflow run_wf { "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", + "qualimap_output_pdf": "qualimap_output_pdf", "tpm_gene": "tpm_gene", "counts_gene": "counts_gene", "counts_gene_length_scaled": "counts_gene_length_scaled", "counts_gene_scaled": "counts_gene_scaled", "tpm_transcript": "tpm_transcript", "counts_transcript": "counts_transcript", - "qunat_merged_summarizedexperiment": "quant_merged_summarizedexperiment", + "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", "deseq2_output": "deseq2_output", + "pseudo_tpm_gene": "pseudo_tpm_gene", + "pseudo_counts_gene": "pseudo_counts_gene", + "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", + "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", + "pseudo_tpm_transcript": "pseudo_tpm_transcript", + "pseudo_counts_transcript": "pseudo_counts_transcript", + "pseudo_lengths_gene": "pseudo_lengths_gene", + "pseudo_lengths_transcript": "pseudo_lengths_transcript", + "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", + "deseq2_output_pseudo": "deseq2_output_pseudo", "multiqc_report": "multiqc_report", "multiqc_data": "multiqc_data", "multiqc_plots": "multiqc_plots" - ] - ) - - | map { id, state -> - def mod_state = state.findAll { key, value -> value instanceof java.nio.file.Path && value.exists() } - [ id, mod_state ] - } - - | setState ( - [ - "output_fasta": "fasta", - "output_gtf": "gtf", - "output_transcript_fasta": "transcript_fasta", - "output_gene_bed": "gene_bed", - "output_bbsplit_index": "bbsplit_index", - "output_star_index": "star_index", - "output_salmon_index": "salmon_index", - "output_kallisto_index": "kallisto_index", - "fastqc_html_1": "fastqc_html_1", - "fastqc_html_2": "fastqc_html_2", - "fastqc_zip_1": "fastqc_zip_1", - "fastqc_zip_2": "fastqc_zip_2", - "output_fastq_1": "fastq_1", - "output_fastq_2": "fastq_2", - "trim_log_1": "trim_log_1", - "trim_log_2": "trim_log_2", - "trim_zip_1": "trim_zip_1", - "trim_zip_2": "trim_zip_2", - "trim_html_1": "trim_html_1", - "trim_html_2": "trim_html_2", - "sortmerna_log": "sortmerna_log", - "star_log": "star_multiqc", - "genome_bam_sorted": "genome_bam_sorted", - "genome_bam_index": "genome_bam_index", - "genome_bam_stats": "genome_bam_stats", - "genome_bam_flagstat": "genome_bam_flagstat", - "genome_bam_idxstats": "genome_bam_idxstats", - "transcriptome_bam": "transcriptome_bam", - "transcriptome_bam_index": "transcriptome_bam_index", - "transcriptome_bam_stats": "transcriptome_bam_stats", - "transcriptome_bam_flagstat": "transcriptome_bam_flagstat", - "transcriptome_bam_idxstats": "transcriptome_bam_idxstats", - "salmon_quant_results": "quant_out_dir", - "pseudo_quant_results": "pseudo_quant_out_dir", - "markduplicates_metrics": "markduplicates_metrics", - "stringtie_transcript_gtf": "stringtie_transcript_gtf", - "stringtie_coverage_gtf": "stringtie_coverage_gtf", - "stringtie_abundance": "stringtie_abundance", - "stringtie_ballgown": "stringtie_ballgown", - "featurecounts": "featurecounts", - "featurecounts_summary": "featurecounts_summary", - "featurecounts_multiqc": "featurecounts_multiqc", - "featurecounts_rrna_multiqc": "featurecounts_rrna_multiqc", - "bedgraph_forward": "bedgraph_forward", - "bedgraph_reverse": "bedgraph_reverse", - "bigwig_forward": "bigwig_forward", - "bigwig_reverse": "bigwig_reverse", - "preseq_output": "preseq_output", - "bamstat_output": "bamstat_output", - "strandedness_output": "strandedness_output", - "inner_dist_output_stats": "inner_dist_output_stats", - "inner_dist_output_dist": "inner_dist_output_dist", - "inner_dist_output_freq": "inner_dist_output_freq", - "inner_dist_output_plot": "inner_dist_output_plot", - "inner_dist_output_plot_r": "inner_dist_output_plot_r", - "junction_annotation_output_log": "junction_annotation_output_log", - "junction_annotation_output_plot_r": "junction_annotation_output_plot_r", - "junction_annotation_output_junction_bed": "junction_annotation_output_junction_bed", - "junction_annotation_output_junction_interact": "junction_annotation_output_junction_interact", - "junction_annotation_output_junction_sheet": "junction_annotation_output_junction_sheet", - "junction_annotation_output_splice_events_plot": "junction_annotation_output_splice_events_plot", - "junction_annotation_output_splice_junctions_plot": "junction_annotation_output_splice_junctions_plot", - "junction_saturation_output_plot_r": "junction_saturation_output_plot_r", - "junction_saturation_output_plot": "junction_saturation_output_plot", - "read_distribution_output": "read_distribution_output", - "read_duplication_output_duplication_rate_plot_r": "read_duplication_output_duplication_rate_plot_r", - "read_duplication_output_duplication_rate_plot": "read_duplication_output_duplication_rate_plot", - "read_duplication_output_duplication_rate_mapping": "read_duplication_output_duplication_rate_mapping", - "read_duplication_output_duplication_rate_sequence": "read_duplication_output_duplication_rate_sequence", - "tin_output_summary": "tin_output_summary", - "tin_output_metrics": "tin_output_metrics", - "dupradar_output_dupmatrix": "dupradar_output_dupmatrix", - "dupradar_output_dup_intercept_mqc": "dupradar_output_dup_intercept_mqc", - "dupradar_output_duprate_exp_boxplot": "dupradar_output_duprate_exp_boxplot", - "dupradar_output_duprate_exp_densplot": "dupradar_output_duprate_exp_densplot", - "dupradar_output_duprate_exp_denscurve_mqc": "dupradar_output_duprate_exp_denscurve_mqc", - "dupradar_output_expression_histogram": "dupradar_output_expression_histogram", - "dupradar_output_intercept_slope": "dupradar_output_intercept_slope", - "qualimap_output_dir": "qualimap_output_dir", - "qualimap_output_pdf": "qualimap_output_pdf", - "tpm_gene": "tpm_gene", - "counts_gene": "counts_gene", - "counts_gene_length_scaled": "counts_gene_length_scaled", - "counts_gene_scaled": "counts_gene_scaled", - "tpm_transcript": "tpm_transcript", - "counts_transcript": "counts_transcript", - "quant_merged_summarizedexperiment": "quant_merged_summarizedexperiment", - "deseq2_output": "deseq2_output", - "pseudo_tpm_gene": "pseudo_tpm_gene", - "pseudo_counts_gene": "pseudo_counts_gene", - "pseudo_counts_gene_length_scaled": "pseudo_counts_gene_length_scaled", - "pseudo_counts_gene_scaled": "pseudo_counts_gene_scaled", - "pseudo_tpm_transcript": "pseudo_tpm_transcript", - "pseudo_counts_transcript": "pseudo_counts_transcript", - "pseudo_lengths_gene": "pseudo_lengths_gene", - "pseudo_lengths_transcript": "pseudo_lengths_transcript", - "pseudo_quant_merged_summarizedexperiment": "pseudo_quant_merged_summarizedexperiment", - "deseq2_output_pseudo": "deseq2_output_pseudo", - "multiqc_report": "multiqc_report", - "multiqc_data": "multiqc_data", - "multiqc_plots": "multiqc_plots" - ] - ) - - output_ch = analysis_ch + ] + ) emit: - output_ch + analysis_ch } import nextflow.Nextflow diff --git a/target/nextflow/workflows/rnaseq/nextflow_schema.json b/target/nextflow/workflows/rnaseq/nextflow_schema.json index dc99a08..3ecaac1 100644 --- a/target/nextflow/workflows/rnaseq/nextflow_schema.json +++ b/target/nextflow/workflows/rnaseq/nextflow_schema.json @@ -52,7 +52,7 @@ "enum": ["unstranded", "forward", "reverse", "auto"] , - "default": "auto" + "default":"auto" } @@ -183,7 +183,7 @@ "description": "Type: `boolean_true`, default: `false`. Specify if the GTF annotation is in GENCODE format", "help_text": "Type: `boolean_true`, default: `false`. Specify if the GTF annotation is in GENCODE format." , - "default": "False" + "default":false } @@ -194,7 +194,7 @@ "description": "Type: `string`, default: `gene_name`. Additional gene identifiers from the input GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_name`. Additional gene identifiers from the input GTF file when running Salmon. More than one value can be specified separated by comma." , - "default": "gene_name" + "default":"gene_name" } @@ -205,7 +205,7 @@ "description": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon", "help_text": "Type: `string`, default: `gene_id`. Define the attribute type used to group features in the GTF file when running Salmon." , - "default": "gene_id" + "default":"gene_id" } @@ -216,7 +216,7 @@ "description": "Type: `string`, default: `gene_biotype`. The attribute type used to group feature types in the GTF file when generating the biotype plot with featureCounts", "help_text": "Type: `string`, default: `gene_biotype`. The attribute type used to group feature types in the GTF file when generating the biotype plot with featureCounts." , - "default": "gene_biotype" + "default":"gene_biotype" } @@ -227,7 +227,7 @@ "description": "Type: `string`, default: `exon`. By default, the pipeline assigns reads based on the \u0027exon\u0027 attribute within the GTF file", "help_text": "Type: `string`, default: `exon`. By default, the pipeline assigns reads based on the \u0027exon\u0027 attribute within the GTF file." , - "default": "exon" + "default":"exon" } @@ -260,7 +260,7 @@ "enum": ["trimgalore", "fastp"] , - "default": "trimgalore" + "default":"trimgalore" } @@ -291,7 +291,7 @@ "description": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing", "help_text": "Type: `integer`, default: `10000`. Minimum number of trimmed reads below which samples are removed from further processing. Some downstream steps in the pipeline will fail if this threshold is too low." , - "default": "10000" + "default":10000 } @@ -332,7 +332,7 @@ "description": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA", "help_text": "Type: `boolean_true`, default: `false`. Enable the removal of reads derived from ribosomal RNA using SortMeRNA." , - "default": "False" + "default":false } @@ -343,7 +343,7 @@ "description": "Type: `file`, default: `src/assets/rrna-db-defaults.txt`. Text file containing paths to fasta files (one per line) that will be used to create the database for SortMeRNA", "help_text": "Type: `file`, default: `src/assets/rrna-db-defaults.txt`. Text file containing paths to fasta files (one per line) that will be used to create the database for SortMeRNA." , - "default": "src/assets/rrna-db-defaults.txt" + "default":"src/assets/rrna-db-defaults.txt" } @@ -364,7 +364,7 @@ "description": "Type: `boolean_true`, default: `false`. Enable UMI-based read deduplication", "help_text": "Type: `boolean_true`, default: `false`. Enable UMI-based read deduplication." , - "default": "False" + "default":false } @@ -377,7 +377,7 @@ "enum": ["string", "regex"] , - "default": "string" + "default":"string" } @@ -410,7 +410,7 @@ "enum": [0, 1, 2] , - "default": "0" + "default":0 } @@ -421,7 +421,7 @@ "description": "Type: `string`, default: `_`. The character that separates the UMI in the read name", "help_text": "Type: `string`, default: `_`. The character that separates the UMI in the read name. Most likely a colon if you skipped the extraction with UMI-tools and used other software." , - "default": "_" + "default":"_" } @@ -434,7 +434,7 @@ "enum": ["unique", "percentile", "cluster", "adjacency", "directional"] , - "default": "directional" + "default":"directional" } @@ -445,7 +445,7 @@ "description": "Type: `boolean_true`, default: `false`. Generate output stats when running \"umi_tools dedup\"", "help_text": "Type: `boolean_true`, default: `false`. Generate output stats when running \"umi_tools dedup\"." , - "default": "False" + "default":false } @@ -468,7 +468,7 @@ "enum": ["star_salmon", "star_rsem", "hisat2"] , - "default": "star_salmon" + "default":"star_salmon" } @@ -481,7 +481,7 @@ "enum": ["salmon", "kallisto"] , - "default": "salmon" + "default":"salmon" } @@ -492,7 +492,7 @@ "description": "Type: `integer`, default: `31`. Kmer length passed to indexing step of pseudoaligners", "help_text": "Type: `integer`, default: `31`. Kmer length passed to indexing step of pseudoaligners." , - "default": "31" + "default":31 } @@ -523,7 +523,7 @@ "description": "Type: `boolean_true`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index", "help_text": "Type: `boolean_true`, default: `false`. Create a CSI index for BAM files instead of the traditional BAI index. This will be required for genomes with larger chromosome sizes." , - "default": "False" + "default":false } @@ -544,7 +544,7 @@ "description": "Type: `string`, default: `-v`. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: `-v`. Extra arguments to pass to salmon quant command in addition to defaults defined by the pipeline." , - "default": "-v" + "default":"-v" } @@ -555,7 +555,7 @@ "description": "Type: `integer`, default: `5`. Minimum percentage of uniquely mapped reads below which samples are removed from further processing", "help_text": "Type: `integer`, default: `5`. Minimum percentage of uniquely mapped reads below which samples are removed from further processing." , - "default": "5" + "default":5 } @@ -566,7 +566,7 @@ "description": "Type: `boolean_true`, default: `false`. Perform reference-guided de novo assembly of transcripts using StringTie, i", "help_text": "Type: `boolean_true`, default: `false`. Perform reference-guided de novo assembly of transcripts using StringTie, i.e. don\u0027t restrict to those in GTF file." , - "default": "False" + "default":false } @@ -577,7 +577,7 @@ "description": "Type: `string`, default: `-v`. Extra arguments to pass to stringtie command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: `-v`. Extra arguments to pass to stringtie command in addition to defaults defined by the pipeline." , - "default": "-v" + "default":"-v" } @@ -588,7 +588,7 @@ "description": "Type: `boolean_true`, default: `false`. Where possible, save unaligned reads from either STAR, HISAT2 or Salmon to the results directory", "help_text": "Type: `boolean_true`, default: `false`. Where possible, save unaligned reads from either STAR, HISAT2 or Salmon to the results directory." , - "default": "False" + "default":false } @@ -599,7 +599,7 @@ "description": "Type: `boolean_true`, default: `false`. Save the intermediate BAM files from the alignment step", "help_text": "Type: `boolean_true`, default: `false`. Save the intermediate BAM files from the alignment step." , - "default": "False" + "default":false } @@ -610,7 +610,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip all of the alignment-based processes within the pipeline", "help_text": "Type: `boolean_true`, default: `false`. Skip all of the alignment-based processes within the pipeline." , - "default": "False" + "default":false } @@ -621,7 +621,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip all of the pseudo-alignment-based processes within the pipeline", "help_text": "Type: `boolean_true`, default: `false`. Skip all of the pseudo-alignment-based processes within the pipeline." , - "default": "False" + "default":false } @@ -632,7 +632,7 @@ "description": "Type: `string`, default: `--star --star-output-genome-bam --star-gzipped-read-file --estimate-rspd --seed 1`. Extra arguments to pass to rsem-calculate-expression command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: `--star --star-output-genome-bam --star-gzipped-read-file --estimate-rspd --seed 1`. Extra arguments to pass to rsem-calculate-expression command in addition to defaults defined by the pipeline." , - "default": "--star --star-output-genome-bam --star-gzipped-read-file --estimate-rspd --seed 1" + "default":"--star --star-output-genome-bam --star-gzipped-read-file --estimate-rspd --seed 1" } @@ -653,7 +653,7 @@ "description": "Type: `boolean`, default: `false`. Skip FatQC step", "help_text": "Type: `boolean`, default: `false`. Skip FatQC step." , - "default": "False" + "default":false } @@ -664,7 +664,7 @@ "description": "Type: `boolean`, default: `false`. Skip the adapter trimming step", "help_text": "Type: `boolean`, default: `false`. Skip the adapter trimming step." , - "default": "False" + "default":false } @@ -675,7 +675,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads", "help_text": "Type: `boolean_true`, default: `false`. Skip BBSplit for removal of non-reference genome reads." , - "default": "False" + "default":false } @@ -686,7 +686,7 @@ "description": "Type: `boolean`, default: `false`. Skip umi_tools extract step", "help_text": "Type: `boolean`, default: `false`. Skip umi_tools extract step." , - "default": "False" + "default":false } @@ -697,7 +697,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip all QC steps except for MultiQC", "help_text": "Type: `boolean_true`, default: `false`. Skip all QC steps except for MultiQC." , - "default": "False" + "default":false } @@ -708,7 +708,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip picard MarkDuplicates step", "help_text": "Type: `boolean_true`, default: `false`. Skip picard MarkDuplicates step." , - "default": "False" + "default":false } @@ -719,7 +719,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip StringTie", "help_text": "Type: `boolean_true`, default: `false`. Skip StringTie." , - "default": "False" + "default":false } @@ -730,7 +730,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip additional featureCounts process for biotype QC", "help_text": "Type: `boolean_true`, default: `false`. Skip additional featureCounts process for biotype QC." , - "default": "False" + "default":false } @@ -741,7 +741,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip bigWig file creation", "help_text": "Type: `boolean_true`, default: `false`. Skip bigWig file creation." , - "default": "False" + "default":false } @@ -752,7 +752,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip Preseq", "help_text": "Type: `boolean_true`, default: `false`. Skip Preseq." , - "default": "False" + "default":false } @@ -763,7 +763,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip DESeq2 PCA and heatmap plotting", "help_text": "Type: `boolean_true`, default: `false`. Skip DESeq2 PCA and heatmap plotting." , - "default": "False" + "default":false } @@ -774,7 +774,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip dupRadar", "help_text": "Type: `boolean_true`, default: `false`. Skip dupRadar." , - "default": "False" + "default":false } @@ -785,7 +785,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip Qualimap", "help_text": "Type: `boolean_true`, default: `false`. Skip Qualimap." , - "default": "False" + "default":false } @@ -796,7 +796,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip RSeQC", "help_text": "Type: `boolean_true`, default: `false`. Skip RSeQC." , - "default": "False" + "default":false } @@ -807,7 +807,7 @@ "description": "Type: `boolean_true`, default: `false`. Skip MultiQC", "help_text": "Type: `boolean_true`, default: `false`. Skip MultiQC." , - "default": "False" + "default":false } @@ -828,7 +828,7 @@ "description": "Type: `string`, default: ` --record-count 1000000 --seed 1`. Extra arguments to pass to fq subsample command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ` --record-count 1000000 --seed 1`. Extra arguments to pass to fq subsample command in addition to defaults defined by the pipeline." , - "default": " --record-count 1000000 --seed 1" + "default":" --record-count 1000000 --seed 1" } @@ -839,7 +839,7 @@ "description": "Type: `string`, default: ` --ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp`. Extra arguments to pass to picard MarkDuplicates command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ` --ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp`. Extra arguments to pass to picard MarkDuplicates command in addition to defaults defined by the pipeline." , - "default": " --ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp" + "default":" --ASSUME_SORTED true --REMOVE_DUPLICATES false --VALIDATION_STRINGENCY LENIENT --TMP_DIR tmp" } @@ -850,7 +850,7 @@ "description": "Type: `string`, default: ` -split -du`. Extra arguments to pass to bedtools genomecov command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: ` -split -du`. Extra arguments to pass to bedtools genomecov command in addition to defaults defined by the pipeline." , - "default": " -split -du" + "default":" -split -du" } @@ -861,7 +861,7 @@ "description": "Type: `string`, default: `-verbose -seed 1 -seg_len 100000000`. Extra arguments to pass to preseq lc_extrap command in addition to defaults defined by the pipeline", "help_text": "Type: `string`, default: `-verbose -seed 1 -seg_len 100000000`. Extra arguments to pass to preseq lc_extrap command in addition to defaults defined by the pipeline" , - "default": "-verbose -seed 1 -seg_len 100000000" + "default":"-verbose -seed 1 -seg_len 100000000" } @@ -872,7 +872,7 @@ "description": "Type: `boolean`, default: `true`. Use vst transformation instead of rlog with DESeq2", "help_text": "Type: `boolean`, default: `true`. Use vst transformation instead of rlog with DESeq2" , - "default": "True" + "default":true } @@ -880,12 +880,10 @@ "rseqc_modules": { "type": "string", - "description": "Type: List of `string`, default: `bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication`, multiple_sep: `\",\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf", - "help_text": "Type: List of `string`, default: `bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication`, multiple_sep: `\",\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf", - "enum": ["bam_stat", "inner_distance", "infer_experiment", "junction_annotation", "junction_saturation", "read_distribution", "read_duplication", "tin"] - + "description": "Type: List of `string`, default: `bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication`, multiple_sep: `\";\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf (comma-separated list)", + "help_text": "Type: List of `string`, default: `bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication`, multiple_sep: `\";\"`, choices: ``bam_stat`, `inner_distance`, `infer_experiment`, `junction_annotation`, `junction_saturation`, `read_distribution`, `read_duplication`, `tin``. Specify the RSeQC modules to run_wf (comma-separated list)" , - "default": "bam_stat,inner_distance,infer_experiment,junction_annotation,junction_saturation,read_distribution,read_duplication" + "default":"bam_stat;inner_distance;infer_experiment;junction_annotation;junction_saturation;read_distribution;read_duplication" } @@ -894,7 +892,7 @@ "multiqc paramenters" : { - "title": "Multiqc paramenters", + "title": "MultiQC paramenters", "type": "object", "description": "No description", "properties": { @@ -906,7 +904,7 @@ "description": "Type: `file`, default: `src/assets/multiqc_config.yml`. ", "help_text": "Type: `file`, default: `src/assets/multiqc_config.yml`. " , - "default": "src/assets/multiqc_config.yml" + "default":"src/assets/multiqc_config.yml" } @@ -927,7 +925,7 @@ "description": "Type: `file`, default: `src/assets/methods_description_template.yml`. ", "help_text": "Type: `file`, default: `src/assets/methods_description_template.yml`. " , - "default": "src/assets/methods_description_template.yml" + "default":"src/assets/methods_description_template.yml" } @@ -948,7 +946,7 @@ "description": "Type: `file`, default: `$id.$key.output_fasta.fasta`. ", "help_text": "Type: `file`, default: `$id.$key.output_fasta.fasta`. " , - "default": "$id.$key.output_fasta.fasta" + "default":"$id.$key.output_fasta.fasta" } @@ -959,7 +957,7 @@ "description": "Type: `file`, default: `$id.$key.output_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.output_gtf.gtf`. " , - "default": "$id.$key.output_gtf.gtf" + "default":"$id.$key.output_gtf.gtf" } @@ -970,7 +968,7 @@ "description": "Type: `file`, default: `$id.$key.output_transcript_fasta.fasta`. ", "help_text": "Type: `file`, default: `$id.$key.output_transcript_fasta.fasta`. " , - "default": "$id.$key.output_transcript_fasta.fasta" + "default":"$id.$key.output_transcript_fasta.fasta" } @@ -981,7 +979,7 @@ "description": "Type: `file`, default: `$id.$key.output_gene_bed.bed`. ", "help_text": "Type: `file`, default: `$id.$key.output_gene_bed.bed`. " , - "default": "$id.$key.output_gene_bed.bed" + "default":"$id.$key.output_gene_bed.bed" } @@ -992,7 +990,7 @@ "description": "Type: `file`, default: `$id.$key.output_star_index.output_star_index`. Path to STAR index", "help_text": "Type: `file`, default: `$id.$key.output_star_index.output_star_index`. Path to STAR index." , - "default": "$id.$key.output_star_index.output_star_index" + "default":"$id.$key.output_star_index.output_star_index" } @@ -1003,7 +1001,7 @@ "description": "Type: `file`, default: `$id.$key.output_salmon_index.output_salmon_index`. Path to Salmon index", "help_text": "Type: `file`, default: `$id.$key.output_salmon_index.output_salmon_index`. Path to Salmon index." , - "default": "$id.$key.output_salmon_index.output_salmon_index" + "default":"$id.$key.output_salmon_index.output_salmon_index" } @@ -1014,7 +1012,7 @@ "description": "Type: `file`, default: `$id.$key.output_bbsplit_index.output_bbsplit_index`. Path to BBSplit index", "help_text": "Type: `file`, default: `$id.$key.output_bbsplit_index.output_bbsplit_index`. Path to BBSplit index." , - "default": "$id.$key.output_bbsplit_index.output_bbsplit_index" + "default":"$id.$key.output_bbsplit_index.output_bbsplit_index" } @@ -1025,7 +1023,7 @@ "description": "Type: `file`, default: `$id.$key.output_kallisto_index.output_kallisto_index`. Path to Kallisto index", "help_text": "Type: `file`, default: `$id.$key.output_kallisto_index.output_kallisto_index`. Path to Kallisto index." , - "default": "$id.$key.output_kallisto_index.output_kallisto_index" + "default":"$id.$key.output_kallisto_index.output_kallisto_index" } @@ -1033,10 +1031,10 @@ "output_fastq_1": { "type": "string", - "description": "Type: `file`, default: `$id.$key.output_fastq_1.fastq`. Path to output directory", - "help_text": "Type: `file`, default: `$id.$key.output_fastq_1.fastq`. Path to output directory" + "description": "Type: `file`, default: `$id.$key.output_fastq_1.gz`. Path to output directory", + "help_text": "Type: `file`, default: `$id.$key.output_fastq_1.gz`. Path to output directory" , - "default": "$id.$key.output_fastq_1.fastq" + "default":"$id.$key.output_fastq_1.gz" } @@ -1044,10 +1042,10 @@ "output_fastq_2": { "type": "string", - "description": "Type: `file`, default: `$id.$key.output_fastq_2.fastq`. Path to output directory", - "help_text": "Type: `file`, default: `$id.$key.output_fastq_2.fastq`. Path to output directory" + "description": "Type: `file`, default: `$id.$key.output_fastq_2.gz`. Path to output directory", + "help_text": "Type: `file`, default: `$id.$key.output_fastq_2.gz`. Path to output directory" , - "default": "$id.$key.output_fastq_2.fastq" + "default":"$id.$key.output_fastq_2.gz" } @@ -1058,7 +1056,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_1.html`. FastQC HTML report for read 1." , - "default": "$id.$key.fastqc_html_1.html" + "default":"$id.$key.fastqc_html_1.html" } @@ -1069,7 +1067,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_html_2.html`. FastQC HTML report for read 2." , - "default": "$id.$key.fastqc_html_2.html" + "default":"$id.$key.fastqc_html_2.html" } @@ -1080,7 +1078,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_1.zip`. FastQC report archive for read 1." , - "default": "$id.$key.fastqc_zip_1.zip" + "default":"$id.$key.fastqc_zip_1.zip" } @@ -1091,7 +1089,7 @@ "description": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2", "help_text": "Type: `file`, default: `$id.$key.fastqc_zip_2.zip`. FastQC report archive for read 2." , - "default": "$id.$key.fastqc_zip_2.zip" + "default":"$id.$key.fastqc_zip_2.zip" } @@ -1102,7 +1100,7 @@ "description": "Type: `file`, default: `$id.$key.trim_html_1.html`. ", "help_text": "Type: `file`, default: `$id.$key.trim_html_1.html`. " , - "default": "$id.$key.trim_html_1.html" + "default":"$id.$key.trim_html_1.html" } @@ -1113,7 +1111,7 @@ "description": "Type: `file`, default: `$id.$key.trim_html_2.html`. ", "help_text": "Type: `file`, default: `$id.$key.trim_html_2.html`. " , - "default": "$id.$key.trim_html_2.html" + "default":"$id.$key.trim_html_2.html" } @@ -1124,7 +1122,7 @@ "description": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. ", "help_text": "Type: `file`, default: `$id.$key.trim_zip_1.zip`. " , - "default": "$id.$key.trim_zip_1.zip" + "default":"$id.$key.trim_zip_1.zip" } @@ -1135,7 +1133,7 @@ "description": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. ", "help_text": "Type: `file`, default: `$id.$key.trim_zip_2.zip`. " , - "default": "$id.$key.trim_zip_2.zip" + "default":"$id.$key.trim_zip_2.zip" } @@ -1146,7 +1144,7 @@ "description": "Type: `file`, default: `$id.$key.trim_log_1.txt`. ", "help_text": "Type: `file`, default: `$id.$key.trim_log_1.txt`. " , - "default": "$id.$key.trim_log_1.txt" + "default":"$id.$key.trim_log_1.txt" } @@ -1157,7 +1155,7 @@ "description": "Type: `file`, default: `$id.$key.trim_log_2.txt`. ", "help_text": "Type: `file`, default: `$id.$key.trim_log_2.txt`. " , - "default": "$id.$key.trim_log_2.txt" + "default":"$id.$key.trim_log_2.txt" } @@ -1168,7 +1166,7 @@ "description": "Type: `file`, default: `$id.$key.fastp_trim_json.json`. The fastp json format report file name", "help_text": "Type: `file`, default: `$id.$key.fastp_trim_json.json`. The fastp json format report file name" , - "default": "$id.$key.fastp_trim_json.json" + "default":"$id.$key.fastp_trim_json.json" } @@ -1179,7 +1177,7 @@ "description": "Type: `file`, default: `$id.$key.fastp_trim_html.html`. The fastp html format report file name", "help_text": "Type: `file`, default: `$id.$key.fastp_trim_html.html`. The fastp html format report file name" , - "default": "$id.$key.fastp_trim_html.html" + "default":"$id.$key.fastp_trim_html.html" } @@ -1190,7 +1188,7 @@ "description": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file", "help_text": "Type: `file`, default: `$id.$key.sortmerna_log.log`. Sortmerna log file." , - "default": "$id.$key.sortmerna_log.log" + "default":"$id.$key.sortmerna_log.log" } @@ -1201,7 +1199,7 @@ "description": "Type: `file`, default: `$id.$key.star_alignment.star_alignment`. ", "help_text": "Type: `file`, default: `$id.$key.star_alignment.star_alignment`. " , - "default": "$id.$key.star_alignment.star_alignment" + "default":"$id.$key.star_alignment.star_alignment" } @@ -1212,7 +1210,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_sorted.bam`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_sorted.bam`. " , - "default": "$id.$key.genome_bam_sorted.bam" + "default":"$id.$key.genome_bam_sorted.bam" } @@ -1223,7 +1221,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_index.bai`. " , - "default": "$id.$key.genome_bam_index.bai" + "default":"$id.$key.genome_bam_index.bai" } @@ -1234,7 +1232,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam.bam`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam.bam`. " , - "default": "$id.$key.transcriptome_bam.bam" + "default":"$id.$key.transcriptome_bam.bam" } @@ -1245,7 +1243,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_index.bai`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_index.bai`. " , - "default": "$id.$key.transcriptome_bam_index.bai" + "default":"$id.$key.transcriptome_bam_index.bai" } @@ -1256,7 +1254,7 @@ "description": "Type: `file`, default: `$id.$key.star_log.log`. ", "help_text": "Type: `file`, default: `$id.$key.star_log.log`. " , - "default": "$id.$key.star_log.log" + "default":"$id.$key.star_log.log" } @@ -1267,7 +1265,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_stats.stats`. " , - "default": "$id.$key.genome_bam_stats.stats" + "default":"$id.$key.genome_bam_stats.stats" } @@ -1278,7 +1276,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_flagstat.flagstat`. " , - "default": "$id.$key.genome_bam_flagstat.flagstat" + "default":"$id.$key.genome_bam_flagstat.flagstat" } @@ -1289,7 +1287,7 @@ "description": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. ", "help_text": "Type: `file`, default: `$id.$key.genome_bam_idxstats.idxstats`. " , - "default": "$id.$key.genome_bam_idxstats.idxstats" + "default":"$id.$key.genome_bam_idxstats.idxstats" } @@ -1300,7 +1298,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_stats.stats`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_stats.stats`. " , - "default": "$id.$key.transcriptome_bam_stats.stats" + "default":"$id.$key.transcriptome_bam_stats.stats" } @@ -1311,7 +1309,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_flagstat.flagstat`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_flagstat.flagstat`. " , - "default": "$id.$key.transcriptome_bam_flagstat.flagstat" + "default":"$id.$key.transcriptome_bam_flagstat.flagstat" } @@ -1322,7 +1320,7 @@ "description": "Type: `file`, default: `$id.$key.transcriptome_bam_idxstats.idxstats`. ", "help_text": "Type: `file`, default: `$id.$key.transcriptome_bam_idxstats.idxstats`. " , - "default": "$id.$key.transcriptome_bam_idxstats.idxstats" + "default":"$id.$key.transcriptome_bam_idxstats.idxstats" } @@ -1333,7 +1331,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_quant_results.salmon_quant_results`. ", "help_text": "Type: `file`, default: `$id.$key.salmon_quant_results.salmon_quant_results`. " , - "default": "$id.$key.salmon_quant_results.salmon_quant_results" + "default":"$id.$key.salmon_quant_results.salmon_quant_results" } @@ -1344,7 +1342,7 @@ "description": "Type: `file`, default: `$id.$key.salmon_quant_results_file.sf`. ", "help_text": "Type: `file`, default: `$id.$key.salmon_quant_results_file.sf`. " , - "default": "$id.$key.salmon_quant_results_file.sf" + "default":"$id.$key.salmon_quant_results_file.sf" } @@ -1355,7 +1353,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_quant_results.pseudo_quant_results`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_quant_results.pseudo_quant_results`. " , - "default": "$id.$key.pseudo_quant_results.pseudo_quant_results" + "default":"$id.$key.pseudo_quant_results.pseudo_quant_results" } @@ -1366,7 +1364,7 @@ "description": "Type: `file`, default: `$id.$key.rsem_counts_gene.results`. Expression counts on gene level", "help_text": "Type: `file`, default: `$id.$key.rsem_counts_gene.results`. Expression counts on gene level" , - "default": "$id.$key.rsem_counts_gene.results" + "default":"$id.$key.rsem_counts_gene.results" } @@ -1377,7 +1375,7 @@ "description": "Type: `file`, default: `$id.$key.rsem_counts_transcripts.results`. Expression counts on transcript level", "help_text": "Type: `file`, default: `$id.$key.rsem_counts_transcripts.results`. Expression counts on transcript level" , - "default": "$id.$key.rsem_counts_transcripts.results" + "default":"$id.$key.rsem_counts_transcripts.results" } @@ -1388,7 +1386,7 @@ "description": "Type: `file`, default: `$id.$key.bam_star_rsem.bam`. BAM file generated by STAR (from RSEM)", "help_text": "Type: `file`, default: `$id.$key.bam_star_rsem.bam`. BAM file generated by STAR (from RSEM)" , - "default": "$id.$key.bam_star_rsem.bam" + "default":"$id.$key.bam_star_rsem.bam" } @@ -1399,7 +1397,7 @@ "description": "Type: `file`, default: `$id.$key.bam_genome_rsem.bam`. Genome BAM file (from RSEM)", "help_text": "Type: `file`, default: `$id.$key.bam_genome_rsem.bam`. Genome BAM file (from RSEM)" , - "default": "$id.$key.bam_genome_rsem.bam" + "default":"$id.$key.bam_genome_rsem.bam" } @@ -1410,7 +1408,7 @@ "description": "Type: `file`, default: `$id.$key.bam_transcript_rsem.bam`. Transcript BAM file (from RSEM)", "help_text": "Type: `file`, default: `$id.$key.bam_transcript_rsem.bam`. Transcript BAM file (from RSEM)" , - "default": "$id.$key.bam_transcript_rsem.bam" + "default":"$id.$key.bam_transcript_rsem.bam" } @@ -1421,7 +1419,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_gene.tsv`. " , - "default": "$id.$key.tpm_gene.tsv" + "default":"$id.$key.tpm_gene.tsv" } @@ -1432,7 +1430,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene.tsv`. " , - "default": "$id.$key.counts_gene.tsv" + "default":"$id.$key.counts_gene.tsv" } @@ -1443,7 +1441,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_length_scaled.tsv`. " , - "default": "$id.$key.counts_gene_length_scaled.tsv" + "default":"$id.$key.counts_gene_length_scaled.tsv" } @@ -1454,7 +1452,7 @@ "description": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_gene_scaled.tsv`. " , - "default": "$id.$key.counts_gene_scaled.tsv" + "default":"$id.$key.counts_gene_scaled.tsv" } @@ -1465,7 +1463,7 @@ "description": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.tpm_transcript.tsv`. " , - "default": "$id.$key.tpm_transcript.tsv" + "default":"$id.$key.tpm_transcript.tsv" } @@ -1476,7 +1474,7 @@ "description": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.counts_transcript.tsv`. " , - "default": "$id.$key.counts_transcript.tsv" + "default":"$id.$key.counts_transcript.tsv" } @@ -1487,7 +1485,7 @@ "description": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`. ", "help_text": "Type: `file`, default: `$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment`. " , - "default": "$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" + "default":"$id.$key.quant_merged_summarizedexperiment.quant_merged_summarizedexperiment" } @@ -1498,7 +1496,7 @@ "description": "Type: `file`, default: `$id.$key.markduplicates_metrics.txt`. ", "help_text": "Type: `file`, default: `$id.$key.markduplicates_metrics.txt`. " , - "default": "$id.$key.markduplicates_metrics.txt" + "default":"$id.$key.markduplicates_metrics.txt" } @@ -1509,7 +1507,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_transcript_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_transcript_gtf.gtf`. " , - "default": "$id.$key.stringtie_transcript_gtf.gtf" + "default":"$id.$key.stringtie_transcript_gtf.gtf" } @@ -1520,7 +1518,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_coverage_gtf.gtf`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_coverage_gtf.gtf`. " , - "default": "$id.$key.stringtie_coverage_gtf.gtf" + "default":"$id.$key.stringtie_coverage_gtf.gtf" } @@ -1531,7 +1529,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_abundance.txt`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_abundance.txt`. " , - "default": "$id.$key.stringtie_abundance.txt" + "default":"$id.$key.stringtie_abundance.txt" } @@ -1542,7 +1540,7 @@ "description": "Type: `file`, default: `$id.$key.stringtie_ballgown.ballgown`. ", "help_text": "Type: `file`, default: `$id.$key.stringtie_ballgown.ballgown`. " , - "default": "$id.$key.stringtie_ballgown.ballgown" + "default":"$id.$key.stringtie_ballgown.ballgown" } @@ -1553,7 +1551,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts.txt`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts.txt`. " , - "default": "$id.$key.featurecounts.txt" + "default":"$id.$key.featurecounts.txt" } @@ -1564,7 +1562,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_summary.summary`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_summary.summary`. " , - "default": "$id.$key.featurecounts_summary.summary" + "default":"$id.$key.featurecounts_summary.summary" } @@ -1575,7 +1573,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_multiqc.tsv" + "default":"$id.$key.featurecounts_multiqc.tsv" } @@ -1586,7 +1584,7 @@ "description": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.featurecounts_rrna_multiqc.tsv`. " , - "default": "$id.$key.featurecounts_rrna_multiqc.tsv" + "default":"$id.$key.featurecounts_rrna_multiqc.tsv" } @@ -1597,7 +1595,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_forward.bedgraph`. " , - "default": "$id.$key.bedgraph_forward.bedgraph" + "default":"$id.$key.bedgraph_forward.bedgraph" } @@ -1608,7 +1606,7 @@ "description": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. ", "help_text": "Type: `file`, default: `$id.$key.bedgraph_reverse.bedgraph`. " , - "default": "$id.$key.bedgraph_reverse.bedgraph" + "default":"$id.$key.bedgraph_reverse.bedgraph" } @@ -1619,7 +1617,7 @@ "description": "Type: `file`, default: `$id.$key.bigwig_forward.bigwig`. ", "help_text": "Type: `file`, default: `$id.$key.bigwig_forward.bigwig`. " , - "default": "$id.$key.bigwig_forward.bigwig" + "default":"$id.$key.bigwig_forward.bigwig" } @@ -1630,7 +1628,7 @@ "description": "Type: `file`, default: `$id.$key.bigwig_reverse.bigwig`. ", "help_text": "Type: `file`, default: `$id.$key.bigwig_reverse.bigwig`. " , - "default": "$id.$key.bigwig_reverse.bigwig" + "default":"$id.$key.bigwig_reverse.bigwig" } @@ -1641,7 +1639,7 @@ "description": "Type: `file`, default: `$id.$key.preseq_output.txt`. ", "help_text": "Type: `file`, default: `$id.$key.preseq_output.txt`. " , - "default": "$id.$key.preseq_output.txt" + "default":"$id.$key.preseq_output.txt" } @@ -1652,7 +1650,7 @@ "description": "Type: `file`, default: `$id.$key.bamstat_output.txt`. Path to output file (txt) of mapping quality statistics", "help_text": "Type: `file`, default: `$id.$key.bamstat_output.txt`. Path to output file (txt) of mapping quality statistics" , - "default": "$id.$key.bamstat_output.txt" + "default":"$id.$key.bamstat_output.txt" } @@ -1663,7 +1661,7 @@ "description": "Type: `file`, default: `$id.$key.strandedness_output.txt`. Path to output report (txt) of inferred strandedness", "help_text": "Type: `file`, default: `$id.$key.strandedness_output.txt`. Path to output report (txt) of inferred strandedness" , - "default": "$id.$key.strandedness_output.txt" + "default":"$id.$key.strandedness_output.txt" } @@ -1674,7 +1672,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_stats.stats`. output file (txt) with summary statistics of inner distances of paired reads" , - "default": "$id.$key.inner_dist_output_stats.stats" + "default":"$id.$key.inner_dist_output_stats.stats" } @@ -1685,7 +1683,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_dist.txt`. output file (txt) with inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_dist.txt`. output file (txt) with inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_dist.txt" + "default":"$id.$key.inner_dist_output_dist.txt" } @@ -1696,7 +1694,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_freq.txt`. output file (txt) with frequencies of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_freq.txt" + "default":"$id.$key.inner_dist_output_freq.txt" } @@ -1707,7 +1705,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_plot.pdf`. output file (pdf) with histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_plot.pdf" + "default":"$id.$key.inner_dist_output_plot.pdf" } @@ -1718,7 +1716,7 @@ "description": "Type: `file`, default: `$id.$key.inner_dist_output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads", "help_text": "Type: `file`, default: `$id.$key.inner_dist_output_plot_r.r`. output file (R) with script of histogram plot of of inner distances of all paired reads" , - "default": "$id.$key.inner_dist_output_plot_r.r" + "default":"$id.$key.inner_dist_output_plot_r.r" } @@ -1729,7 +1727,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_log.log`. output log of junction annotation script", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_log.log`. output log of junction annotation script" , - "default": "$id.$key.junction_annotation_output_log.log" + "default":"$id.$key.junction_annotation_output_log.log" } @@ -1740,7 +1738,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_plot_r.r`. R script to generate splice_junction and splice_events plot", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_plot_r.r`. R script to generate splice_junction and splice_events plot" , - "default": "$id.$key.junction_annotation_output_plot_r.r" + "default":"$id.$key.junction_annotation_output_plot_r.r" } @@ -1751,7 +1749,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_bed.bed`. junction annotation file (bed format)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_bed.bed`. junction annotation file (bed format)" , - "default": "$id.$key.junction_annotation_output_junction_bed.bed" + "default":"$id.$key.junction_annotation_output_junction_bed.bed" } @@ -1762,7 +1760,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_interact.bed`. interact file (bed format) of junctions", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_interact.bed`. interact file (bed format) of junctions. Can be uploaded to UCSC genome browser or converted to bigInteract (using bedToBigBed program) for visualization." , - "default": "$id.$key.junction_annotation_output_junction_interact.bed" + "default":"$id.$key.junction_annotation_output_junction_interact.bed" } @@ -1773,7 +1771,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_sheet.xls`. junction annotation file (xls format)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_junction_sheet.xls`. junction annotation file (xls format)" , - "default": "$id.$key.junction_annotation_output_junction_sheet.xls" + "default":"$id.$key.junction_annotation_output_junction_sheet.xls" } @@ -1784,7 +1782,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_events_plot.pdf`. plot of splice events (pdf)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_events_plot.pdf`. plot of splice events (pdf)" , - "default": "$id.$key.junction_annotation_output_splice_events_plot.pdf" + "default":"$id.$key.junction_annotation_output_splice_events_plot.pdf" } @@ -1795,7 +1793,7 @@ "description": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_junctions_plot.pdf`. plot of junctions (pdf)", "help_text": "Type: `file`, default: `$id.$key.junction_annotation_output_splice_junctions_plot.pdf`. plot of junctions (pdf)" , - "default": "$id.$key.junction_annotation_output_splice_junctions_plot.pdf" + "default":"$id.$key.junction_annotation_output_splice_junctions_plot.pdf" } @@ -1806,7 +1804,7 @@ "description": "Type: `file`, default: `$id.$key.junction_saturation_output_plot_r.r`. r script to generate junction_saturation_plot plot", "help_text": "Type: `file`, default: `$id.$key.junction_saturation_output_plot_r.r`. r script to generate junction_saturation_plot plot" , - "default": "$id.$key.junction_saturation_output_plot_r.r" + "default":"$id.$key.junction_saturation_output_plot_r.r" } @@ -1817,7 +1815,7 @@ "description": "Type: `file`, default: `$id.$key.junction_saturation_output_plot.pdf`. plot of junction saturation (pdf", "help_text": "Type: `file`, default: `$id.$key.junction_saturation_output_plot.pdf`. plot of junction saturation (pdf" , - "default": "$id.$key.junction_saturation_output_plot.pdf" + "default":"$id.$key.junction_saturation_output_plot.pdf" } @@ -1828,7 +1826,7 @@ "description": "Type: `file`, default: `$id.$key.read_distribution_output.txt`. output file (txt) of read distribution analysis", "help_text": "Type: `file`, default: `$id.$key.read_distribution_output.txt`. output file (txt) of read distribution analysis." , - "default": "$id.$key.read_distribution_output.txt" + "default":"$id.$key.read_distribution_output.txt" } @@ -1839,7 +1837,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot_r.r`. R script for generating duplication rate plot", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot_r.r`. R script for generating duplication rate plot" , - "default": "$id.$key.read_duplication_output_duplication_rate_plot_r.r" + "default":"$id.$key.read_duplication_output_duplication_rate_plot_r.r" } @@ -1850,7 +1848,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot.pdf`. duplication rate plot (pdf)", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_plot.pdf`. duplication rate plot (pdf)" , - "default": "$id.$key.read_duplication_output_duplication_rate_plot.pdf" + "default":"$id.$key.read_duplication_output_duplication_rate_plot.pdf" } @@ -1861,7 +1859,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_mapping.xls`. Summary of mapping-based read duplication" , - "default": "$id.$key.read_duplication_output_duplication_rate_mapping.xls" + "default":"$id.$key.read_duplication_output_duplication_rate_mapping.xls" } @@ -1872,7 +1870,7 @@ "description": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication", "help_text": "Type: `file`, default: `$id.$key.read_duplication_output_duplication_rate_sequence.xls`. Summary of sequencing-based read duplication" , - "default": "$id.$key.read_duplication_output_duplication_rate_sequence.xls" + "default":"$id.$key.read_duplication_output_duplication_rate_sequence.xls" } @@ -1883,7 +1881,7 @@ "description": "Type: `file`, default: `$id.$key.tin_output_summary.txt`. summary statistics (txt) of calculated TIN metrics", "help_text": "Type: `file`, default: `$id.$key.tin_output_summary.txt`. summary statistics (txt) of calculated TIN metrics" , - "default": "$id.$key.tin_output_summary.txt" + "default":"$id.$key.tin_output_summary.txt" } @@ -1894,7 +1892,7 @@ "description": "Type: `file`, default: `$id.$key.tin_output_metrics.xls`. file with TIN metrics (xls)", "help_text": "Type: `file`, default: `$id.$key.tin_output_metrics.xls`. file with TIN metrics (xls)" , - "default": "$id.$key.tin_output_metrics.xls" + "default":"$id.$key.tin_output_metrics.xls" } @@ -1905,7 +1903,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_dupmatrix.txt`. path to output file (txt) of duplicate tag counts" , - "default": "$id.$key.dupradar_output_dupmatrix.txt" + "default":"$id.$key.dupradar_output_dupmatrix.txt" } @@ -1916,7 +1914,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_dup_intercept_mqc.txt`. path to output file (txt) of multiqc intercept value DupRadar" , - "default": "$id.$key.dupradar_output_dup_intercept_mqc.txt" + "default":"$id.$key.dupradar_output_dup_intercept_mqc.txt" } @@ -1927,7 +1925,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_boxplot.pdf`. path to output file (pdf) of distribution of expression box plot" , - "default": "$id.$key.dupradar_output_duprate_exp_boxplot.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_boxplot.pdf" } @@ -1938,7 +1936,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_densplot.pdf`. path to output file (pdf) of 2D density scatter plot of duplicate tag counts" , - "default": "$id.$key.dupradar_output_duprate_exp_densplot.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_densplot.pdf" } @@ -1949,7 +1947,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf`. path to output file (pdf) of density curve of gene duplication multiqc", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf`. path to output file (pdf) of density curve of gene duplication multiqc" , - "default": "$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf" + "default":"$id.$key.dupradar_output_duprate_exp_denscurve_mqc.pdf" } @@ -1960,7 +1958,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_expression_histogram.pdf`. path to output file (pdf) of distribution of RPK values per gene histogram" , - "default": "$id.$key.dupradar_output_expression_histogram.pdf" + "default":"$id.$key.dupradar_output_expression_histogram.pdf" } @@ -1971,7 +1969,7 @@ "description": "Type: `file`, default: `$id.$key.dupradar_output_intercept_slope.txt`. ", "help_text": "Type: `file`, default: `$id.$key.dupradar_output_intercept_slope.txt`. " , - "default": "$id.$key.dupradar_output_intercept_slope.txt" + "default":"$id.$key.dupradar_output_intercept_slope.txt" } @@ -1982,7 +1980,7 @@ "description": "Type: `file`, default: `$id.$key.qualimap_output_pdf.pdf`. ", "help_text": "Type: `file`, default: `$id.$key.qualimap_output_pdf.pdf`. " , - "default": "$id.$key.qualimap_output_pdf.pdf" + "default":"$id.$key.qualimap_output_pdf.pdf" } @@ -1993,7 +1991,7 @@ "description": "Type: `file`, default: `$id.$key.qualimap_output_dir.qualimap_output_dir`. ", "help_text": "Type: `file`, default: `$id.$key.qualimap_output_dir.qualimap_output_dir`. " , - "default": "$id.$key.qualimap_output_dir.qualimap_output_dir" + "default":"$id.$key.qualimap_output_dir.qualimap_output_dir" } @@ -2004,7 +2002,18 @@ "description": "Type: `file`, default: `$id.$key.deseq2_output.deseq2_output`. ", "help_text": "Type: `file`, default: `$id.$key.deseq2_output.deseq2_output`. " , - "default": "$id.$key.deseq2_output.deseq2_output" + "default":"$id.$key.deseq2_output.deseq2_output" + } + + + , + "deseq2_output_pseudo": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.deseq2_output_pseudo.deseq2_output_pseudo`. ", + "help_text": "Type: `file`, default: `$id.$key.deseq2_output_pseudo.deseq2_output_pseudo`. " + , + "default":"$id.$key.deseq2_output_pseudo.deseq2_output_pseudo" } @@ -2015,7 +2024,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_report.html`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_report.html`. " , - "default": "$id.$key.multiqc_report.html" + "default":"$id.$key.multiqc_report.html" } @@ -2026,7 +2035,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_data.multiqc_data`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_data.multiqc_data`. " , - "default": "$id.$key.multiqc_data.multiqc_data" + "default":"$id.$key.multiqc_data.multiqc_data" } @@ -2037,7 +2046,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_plots.multiqc_plots`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_plots.multiqc_plots`. " , - "default": "$id.$key.multiqc_plots.multiqc_plots" + "default":"$id.$key.multiqc_plots.multiqc_plots" } @@ -2048,7 +2057,7 @@ "description": "Type: `file`, default: `$id.$key.multiqc_versions.multiqc_versions`. ", "help_text": "Type: `file`, default: `$id.$key.multiqc_versions.multiqc_versions`. " , - "default": "$id.$key.multiqc_versions.multiqc_versions" + "default":"$id.$key.multiqc_versions.multiqc_versions" } @@ -2059,7 +2068,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene.tsv`. " , - "default": "$id.$key.pseudo_counts_gene.tsv" + "default":"$id.$key.pseudo_counts_gene.tsv" } @@ -2070,7 +2079,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene_length_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene_length_scaled.tsv`. " , - "default": "$id.$key.pseudo_counts_gene_length_scaled.tsv" + "default":"$id.$key.pseudo_counts_gene_length_scaled.tsv" } @@ -2081,7 +2090,18 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_gene_scaled.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_gene_scaled.tsv`. " , - "default": "$id.$key.pseudo_counts_gene_scaled.tsv" + "default":"$id.$key.pseudo_counts_gene_scaled.tsv" + } + + + , + "pseudo_tpm_gene": { + "type": + "string", + "description": "Type: `file`, default: `$id.$key.pseudo_tpm_gene.tsv`. ", + "help_text": "Type: `file`, default: `$id.$key.pseudo_tpm_gene.tsv`. " + , + "default":"$id.$key.pseudo_tpm_gene.tsv" } @@ -2092,7 +2112,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_tpm_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_tpm_transcript.tsv`. " , - "default": "$id.$key.pseudo_tpm_transcript.tsv" + "default":"$id.$key.pseudo_tpm_transcript.tsv" } @@ -2103,7 +2123,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_counts_transcript.tsv`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_counts_transcript.tsv`. " , - "default": "$id.$key.pseudo_counts_transcript.tsv" + "default":"$id.$key.pseudo_counts_transcript.tsv" } @@ -2114,7 +2134,7 @@ "description": "Type: `file`, default: `$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment`. ", "help_text": "Type: `file`, default: `$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment`. " , - "default": "$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment" + "default":"$id.$key.pseudo_quant_merged_summarizedexperiment.pseudo_quant_merged_summarizedexperiment" }