diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f4646244..7a620df22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,6 +68,11 @@ jobs: - name: Check out pipeline code uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 + - uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4 + with: + distribution: "temurin" + java-version: "17" + - name: Set up Nextflow uses: nf-core/setup-nextflow@v2 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 39e77a767..e753f935d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +# 3.18.0dev - xxxx-xx-xx + +### Credits + +Special thanks to the following for their contributions to the release: + +- [Caitlin Winkler](https://github.com/oligomyeggo) +- [Siddhartha Bagaria](https://github.com/siddharthab) + +### Enhancements & fixes + +- [PR #1369](https://github.com/nf-core/rnaseq/pull/1369) - Add umicollapse as an alternative to umi-tools +- [PR #1461](https://github.com/nf-core/rnaseq/pull/1461) - Add FASTQ linting during preprocessing +- [PR #1463](https://github.com/nf-core/rnaseq/pull/1463) - Move channel operations outside of the onComplete() block +- [PR #1467](https://github.com/nf-core/rnaseq/pull/1467) - Add test suite for UMI handling functionality +- [PR #1466](https://github.com/nf-core/rnaseq/pull/1466) - Factor out UMI handling + +### Software dependencies + +| Dependency | Old version | New version | +| ------------- | ----------- | ----------- | +| `UMICollapse` | | 1.1.0 | + +> **NB:** Dependency has been **updated** if both old and new version information is present. +> +> **NB:** Dependency has been **added** if just the new version information is present. +> +> **NB:** Dependency has been **removed** if new version information isn't present. + ## [[3.17.0](https://github.com/nf-core/rnaseq/releases/tag/3.17.0)] - 2024-10-23 ### Credits @@ -1007,14 +1036,14 @@ Note, since the pipeline is now using Nextflow DSL2, each process will be run wi ### Parameters -| Old parameter | New parameter | -| --------------------------- | -------------------------------------- | -| `--fc_extra_attributes` | `--gtf_extra_attributes` | -|  `--fc_group_features` |  `--gtf_group_features` | -|  `--fc_count_type` |  `--gtf_count_type` | -|  `--fc_group_features_type` |  `--gtf_group_features_type` | -|   |  `--singularity_pull_docker_container` | -|  `--skip_featurecounts` |   | +| Old parameter | New parameter | +| -------------------------- | ------------------------------------- | +| `--fc_extra_attributes` | `--gtf_extra_attributes` | +| `--fc_group_features` | `--gtf_group_features` | +| `--fc_count_type` | `--gtf_count_type` | +| `--fc_group_features_type` | `--gtf_group_features_type` | +| | `--singularity_pull_docker_container` | +| `--skip_featurecounts` | | > **NB:** Parameter has been **updated** if both old and new parameter information is present. > **NB:** Parameter has been **added** if just the new parameter information is present. @@ -1092,28 +1121,28 @@ Note, since the pipeline is now using Nextflow DSL2, each process will be run wi #### Updated -| Old parameter | New parameter | -| ----------------------------- | --------------------------- | -| `--reads` | `--input` | -|  `--igenomesIgnore` |  `--igenomes_ignore` | -|  `--removeRiboRNA` |  `--remove_ribo_rna` | -|  `--rRNA_database_manifest` |  `--ribo_database_manifest` | -|  `--save_nonrRNA_reads` |  `--save_non_ribo_reads` | -|  `--saveAlignedIntermediates` |  `--save_align_intermeds` | -|  `--saveReference` |  `--save_reference` | -|  `--saveTrimmed` |  `--save_trimmed` | -|  `--saveUnaligned` |  `--save_unaligned` | -|  `--skipAlignment` |  `--skip_alignment` | -|  `--skipBiotypeQC` |  `--skip_biotype_qc` | -|  `--skipDupRadar` |  `--skip_dupradar` | -|  `--skipFastQC` |  `--skip_fastqc` | -|  `--skipMultiQC` |  `--skip_multiqc` | -|  `--skipPreseq` |  `--skip_preseq` | -|  `--skipQC` |  `--skip_qc` | -|  `--skipQualimap` |  `--skip_qualimap` | -|  `--skipRseQC` |  `--skip_rseqc` | -|  `--skipTrimming` |  `--skip_trimming` | -|  `--stringTieIgnoreGTF` |  `--stringtie_ignore_gtf` | +| Old parameter | New parameter | +| ---------------------------- | -------------------------- | +| `--reads` | `--input` | +| `--igenomesIgnore` | `--igenomes_ignore` | +| `--removeRiboRNA` | `--remove_ribo_rna` | +| `--rRNA_database_manifest` | `--ribo_database_manifest` | +| `--save_nonrRNA_reads` | `--save_non_ribo_reads` | +| `--saveAlignedIntermediates` | `--save_align_intermeds` | +| `--saveReference` | `--save_reference` | +| `--saveTrimmed` | `--save_trimmed` | +| `--saveUnaligned` | `--save_unaligned` | +| `--skipAlignment` | `--skip_alignment` | +| `--skipBiotypeQC` | `--skip_biotype_qc` | +| `--skipDupRadar` | `--skip_dupradar` | +| `--skipFastQC` | `--skip_fastqc` | +| `--skipMultiQC` | `--skip_multiqc` | +| `--skipPreseq` | `--skip_preseq` | +| `--skipQC` | `--skip_qc` | +| `--skipQualimap` | `--skip_qualimap` | +| `--skipRseQC` | `--skip_rseqc` | +| `--skipTrimming` | `--skip_trimming` | +| `--stringTieIgnoreGTF` | `--stringtie_ignore_gtf` | #### Added diff --git a/docs/output.md b/docs/output.md index ca828e9fc..3203f2e64 100644 --- a/docs/output.md +++ b/docs/output.md @@ -19,6 +19,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Pipeline overview](#pipeline-overview) - [Preprocessing](#preprocessing) - [cat](#cat) + [fq lint](#fq-lint) - [FastQC](#fastqc) - [UMI-tools extract](#umi-tools-extract) - [TrimGalore](#trimgalore) @@ -73,6 +74,20 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d If multiple libraries/runs have been provided for the same sample in the input samplesheet (e.g. to increase sequencing depth) then these will be merged at the very beginning of the pipeline in order to have consistent sample naming throughout the pipeline. Please refer to the [usage documentation](https://nf-co.re/rnaseq/usage#samplesheet-input) to see how to specify these samples in the input samplesheet. +# fq lint + +
+Output files + +- `fq_lint/*` + - `*.fq_lint.txt`: Linting report per library from `fq lint`. + +> **NB:** You will see subdirectories here based on the stage of preprocessing for the files that have been linted, for example `raw`, `trimmed`. + +
+ +[fq lint](https://github.com/stjude-rust-labs/fq) runs several checks on input FASTQ files. It will fail with a non-zero error code when issues are found, which will terminate the workflow execution. In the absence of this, the successful linting produces the logs you will find here. + ### FastQC
diff --git a/docs/usage.md b/docs/usage.md index 851e20c7d..48cafce85 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -27,6 +27,12 @@ CONTROL_REP1,AEG588A1_S1_L003_R1_001.fastq.gz,AEG588A1_S1_L003_R2_001.fastq.gz,a CONTROL_REP1,AEG588A1_S1_L004_R1_001.fastq.gz,AEG588A1_S1_L004_R2_001.fastq.gz,auto ``` +### Linting + +By default, the pipeline will run [fq lint](https://github.com/stjude-rust-labs/fq) on all input FASTQ files, both at the start of preprocessing and after each preprocessing step that manipulates FASTQ files. If errors are found, and error will be reported and the workflow will stop. + +The `extra_fqlint_args` parameter can be manipulated to disable [any validator](https://github.com/stjude-rust-labs/fq?tab=readme-ov-file#validators) from `fq` you wish. For example, we have found that checks on the names of paired reads are prone to failure, so that check is disabled by default (setting `extra_fqlint_args` to `--disable-validator P001`). + ### Strandedness Prediction If you set the strandedness value to `auto`, the pipeline will sub-sample the input FastQ files to 1 million reads, use Salmon Quant to automatically infer the strandedness, and then propagate this information through the rest of the pipeline. This behavior is controlled by the `--stranded_threshold` and `--unstranded_threshold` parameters, which are set to 0.8 and 0.1 by default, respectively. This means: diff --git a/modules.json b/modules.json index 9667d1b6b..8957c2ef4 100644 --- a/modules.json +++ b/modules.json @@ -57,6 +57,11 @@ "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["fastq_fastqc_umitools_fastp", "fastq_fastqc_umitools_trimgalore"] }, + "fq/lint": { + "branch": "master", + "git_sha": "2c0260ed80daeca9c6dfa477a4daf04ff336dc37", + "installed_by": ["fastq_qc_trim_filter_setstrandedness", "modules"] + }, "fq/subsample": { "branch": "master", "git_sha": "a1abf90966a2a4016d3c3e41e228bfcbd4811ccc", @@ -198,6 +203,7 @@ "branch": "master", "git_sha": "b13f07be4c508d6ff6312d354d09f2493243e208", "installed_by": [ + "bam_dedup_stats_samtools_umicollapse", "bam_dedup_stats_samtools_umitools", "bam_markduplicates_picard", "bam_sort_stats_samtools" @@ -206,7 +212,7 @@ "samtools/sort": { "branch": "master", "git_sha": "b7800db9b069ed505db3f9d91b8c72faea9be17b", - "installed_by": ["bam_sort_stats_samtools"] + "installed_by": ["bam_dedup_umi", "bam_sort_stats_samtools"] }, "samtools/stats": { "branch": "master", @@ -266,9 +272,14 @@ "git_sha": "49f4e50534fe4b64101e62ea41d5dc43b1324358", "installed_by": ["bedgraph_bedclip_bedgraphtobigwig"] }, + "umicollapse": { + "branch": "master", + "git_sha": "0b27602842d3d79fd0e8db79f4afa764967fc3d1", + "installed_by": ["bam_dedup_stats_samtools_umicollapse"] + }, "umitools/dedup": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "0b27602842d3d79fd0e8db79f4afa764967fc3d1", "installed_by": ["bam_dedup_stats_samtools_umitools"] }, "umitools/extract": { @@ -279,7 +290,7 @@ "umitools/prepareforrsem": { "branch": "master", "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", - "installed_by": ["modules"] + "installed_by": ["bam_dedup_umi", "modules"] }, "untar": { "branch": "master", @@ -290,9 +301,19 @@ }, "subworkflows": { "nf-core": { + "bam_dedup_stats_samtools_umicollapse": { + "branch": "master", + "git_sha": "0b27602842d3d79fd0e8db79f4afa764967fc3d1", + "installed_by": ["bam_dedup_umi", "subworkflows"] + }, "bam_dedup_stats_samtools_umitools": { "branch": "master", - "git_sha": "763d4b5c05ffda3ac1ac969dc67f7458cfb2eb1d", + "git_sha": "0b27602842d3d79fd0e8db79f4afa764967fc3d1", + "installed_by": ["bam_dedup_umi", "subworkflows"] + }, + "bam_dedup_umi": { + "branch": "master", + "git_sha": "b5828f47c17c41ce3a4c70b863c99207e3f6d37c", "installed_by": ["subworkflows"] }, "bam_markduplicates_picard": { @@ -308,12 +329,13 @@ "bam_sort_stats_samtools": { "branch": "master", "git_sha": "763d4b5c05ffda3ac1ac969dc67f7458cfb2eb1d", - "installed_by": ["fastq_align_hisat2"] + "installed_by": ["bam_dedup_umi", "fastq_align_hisat2"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "763d4b5c05ffda3ac1ac969dc67f7458cfb2eb1d", "installed_by": [ + "bam_dedup_stats_samtools_umicollapse", "bam_dedup_stats_samtools_umitools", "bam_markduplicates_picard", "bam_sort_stats_samtools" @@ -341,7 +363,7 @@ }, "fastq_qc_trim_filter_setstrandedness": { "branch": "master", - "git_sha": "9082d6440bdffbb4f5d9bd9d753361933b3febcb", + "git_sha": "2c0260ed80daeca9c6dfa477a4daf04ff336dc37", "installed_by": ["subworkflows"] }, "fastq_subsample_fq_salmon": { diff --git a/modules/nf-core/fq/lint/environment.yml b/modules/nf-core/fq/lint/environment.yml new file mode 100644 index 000000000..74b146083 --- /dev/null +++ b/modules/nf-core/fq/lint/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::fq=0.12.0 diff --git a/modules/nf-core/fq/lint/main.nf b/modules/nf-core/fq/lint/main.nf new file mode 100644 index 000000000..27107b465 --- /dev/null +++ b/modules/nf-core/fq/lint/main.nf @@ -0,0 +1,44 @@ +process FQ_LINT { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/fq:0.12.0--h9ee0642_0': + 'biocontainers/fq:0.12.0--h9ee0642_0' }" + + input: + tuple val(meta), path(fastq) + + output: + tuple val(meta), path("*.fq_lint.txt"), emit: lint + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + fq lint \\ + $args \\ + $fastq > ${prefix}.fq_lint.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fq: \$(echo \$(fq lint --version | sed 's/fq-lint //g')) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.fq_lint.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fq: \$(echo \$(fq lint --version | sed 's/fq-lint //g')) + END_VERSIONS + """ +} diff --git a/modules/nf-core/fq/lint/meta.yml b/modules/nf-core/fq/lint/meta.yml new file mode 100644 index 000000000..7240fb579 --- /dev/null +++ b/modules/nf-core/fq/lint/meta.yml @@ -0,0 +1,43 @@ +name: "fq_lint" +description: fq lint is a FASTQ file pair validator. +keywords: + - lint + - fastq + - validate +tools: + - "fq": + description: "fq is a library to generate and validate FASTQ file pairs." + homepage: "https://github.com/stjude-rust-labs/fq" + documentation: "https://github.com/stjude-rust-labs/fq" + tool_dev_url: "https://github.com/stjude-rust-labs/fq" + licence: ["MIT"] + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: FASTQ file list + pattern: "*.fastq{,.gz}" +output: + - lint: + - meta: + type: file + description: Lint output + pattern: "*.fq_lint.txt" + - "*.fq_lint.txt": + type: file + description: Lint output + pattern: "*.fq_lint.txt" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@adamrtalbot" +maintainers: + - "@adamrtalbot" diff --git a/modules/nf-core/fq/lint/tests/main.nf.test b/modules/nf-core/fq/lint/tests/main.nf.test new file mode 100644 index 000000000..f96a7c21a --- /dev/null +++ b/modules/nf-core/fq/lint/tests/main.nf.test @@ -0,0 +1,58 @@ +nextflow_process { + + name "Test Process FQ_LINT" + script "../main.nf" + process "FQ_LINT" + + test("test_fq_lint_success") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert process.out.lint.get(0).get(1) ==~ ".*/test.fq_lint.txt" }, + { assert path(process.out.lint.get(0).get(1)).getText().contains("fq-lint start") }, + { assert path(process.out.lint.get(0).get(1)).getText().contains("read 100 records") }, + { assert path(process.out.lint.get(0).get(1)).getText().contains("fq-lint end") }, + ) + } + + } + + test("test_fq_lint_fail") { + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_2.fastq.gz', checkIfExists: true) ] + ] + """ + } + } + + then { + assertAll ( + { assert !process.success }, + { assert snapshot(process.out).match() }, + ) + } + + } + +} diff --git a/modules/nf-core/fq/lint/tests/main.nf.test.snap b/modules/nf-core/fq/lint/tests/main.nf.test.snap new file mode 100644 index 000000000..fec8e5243 --- /dev/null +++ b/modules/nf-core/fq/lint/tests/main.nf.test.snap @@ -0,0 +1,25 @@ +{ + "test_fq_lint_fail": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "lint": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.04.4" + }, + "timestamp": "2024-10-19T16:37:02.133847389" + } +} \ No newline at end of file diff --git a/modules/nf-core/umicollapse/environment.yml b/modules/nf-core/umicollapse/environment.yml new file mode 100644 index 000000000..066f55eef --- /dev/null +++ b/modules/nf-core/umicollapse/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::umicollapse=1.1.0 diff --git a/modules/nf-core/umicollapse/main.nf b/modules/nf-core/umicollapse/main.nf new file mode 100644 index 000000000..aec10e851 --- /dev/null +++ b/modules/nf-core/umicollapse/main.nf @@ -0,0 +1,73 @@ +process UMICOLLAPSE { + tag "$meta.id" + label "process_high" + label "process_high_memory" + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/umicollapse:1.1.0--hdfd78af_0' : + 'biocontainers/umicollapse:1.1.0--hdfd78af_0' }" + + input: + tuple val(meta), path(input), path(bai) + val(mode) + + output: + tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*dedup*fastq.gz"), emit: fastq, optional: true + tuple val(meta), path("*_UMICollapse.log"), emit: log + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.1.0-0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + // Memory allocation: We need to make sure that both heap and stack size is sufficiently large for + // umicollapse. We set the stack size to 5% of the available memory, the heap size to 90% + // which leaves 5% for stuff happening outside of java without the scheduler killing the process. + def max_heap_size_mega = (task.memory.toMega() * 0.9).intValue() + def max_stack_size_mega = 999 //most java jdks will not allow Xss > 1GB, so fixing this to the allowed max + if ( mode !in [ 'fastq', 'bam' ] ) { + error "Mode must be one of 'fastq' or 'bam'." + } + extension = mode.contains("fastq") ? "fastq.gz" : "bam" + """ + # Getting the umicollapse jar file like this because `umicollapse` is a Python wrapper script generated + # by conda that allows to set the heap size (Xmx), but not the stack size (Xss). + # `which` allows us to get the directory that contains `umicollapse`, independent of whether we + # are in a container or conda environment. + UMICOLLAPSE_JAR=\$(dirname \$(which umicollapse))/../share/umicollapse-${VERSION}/umicollapse.jar + java \\ + -Xmx${max_heap_size_mega}M \\ + -Xss${max_stack_size_mega}M \\ + -jar \$UMICOLLAPSE_JAR \\ + $mode \\ + -i ${input} \\ + -o ${prefix}.${extension} \\ + $args | tee ${prefix}_UMICollapse.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + umicollapse: $VERSION + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.0.0-1' + if ( mode !in [ 'fastq', 'bam' ] ) { + error "Mode must be one of 'fastq' or 'bam'." + } + extension = mode.contains("fastq") ? "fastq.gz" : "bam" + """ + touch ${prefix}.dedup.${extension} + touch ${prefix}_UMICollapse.log + cat <<-END_VERSIONS > versions.yml + "${task.process}": + umicollapse: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/umicollapse/meta.yml b/modules/nf-core/umicollapse/meta.yml new file mode 100644 index 000000000..7c4ebc5ec --- /dev/null +++ b/modules/nf-core/umicollapse/meta.yml @@ -0,0 +1,82 @@ +name: "umicollapse" +description: Deduplicate reads based on the mapping co-ordinate and the UMI attached + to the read. +keywords: + - umicollapse + - deduplication + - genomics +tools: + - "umicollapse": + description: "UMICollapse contains tools for dealing with Unique Molecular Identifiers + (UMIs)/Random Molecular Tags (RMTs)." + homepage: "https://github.com/Daniel-Liu-c0deb0t/UMICollapse" + documentation: "https://github.com/Daniel-Liu-c0deb0t/UMICollapse" + tool_dev_url: "https://github.com/siddharthab/UMICollapse" + doi: "10.7717/peerj.8275" + licence: ["MIT"] + identifier: "" +input: + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: Input bam file + pattern: "*.bam" + - bai: + type: file + description: | + BAM index files corresponding to the input BAM file. Optionally can be skipped using [] when using FastQ input. + pattern: "*.{bai}" + - - mode: + type: string + description: | + Selects the mode of Umicollapse - either fastq or bam need to be provided. + pattern: "{fastq,bam}" +output: + - bam: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.bam": + type: file + description: BAM file with deduplicated UMIs. + pattern: "*.{bam}" + - fastq: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*dedup*fastq.gz": + type: file + description: FASTQ file with deduplicated UMIs. + pattern: "*dedup*fastq.gz" + - log: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_UMICollapse.log": + type: file + description: A log file with the deduplication statistics. + pattern: "*_{UMICollapse.log}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@CharlotteAnne" + - "@chris-cheshire" +maintainers: + - "@CharlotteAnne" + - "@chris-cheshire" + - "@apeltzer" + - "@siddharthab" + - "@MatthiasZepper" diff --git a/modules/nf-core/umicollapse/tests/main.nf.test b/modules/nf-core/umicollapse/tests/main.nf.test new file mode 100644 index 000000000..db578775e --- /dev/null +++ b/modules/nf-core/umicollapse/tests/main.nf.test @@ -0,0 +1,177 @@ +nextflow_process { + + name "Test Process UMICOLLAPSE" + script "../main.nf" + process "UMICOLLAPSE" + + tag "modules" + tag "modules_nfcore" + tag "umicollapse" + + test("umicollapse single end test") { + + when { + config "./nextflow.config" + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = 'bam' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getSamLinesMD5(), + process.out.versions).match() } + ) + } + + } + + test("umicollapse paired tests") { + + when { + config "./nextflow.config" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = 'bam' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getSamLinesMD5(), + process.out.versions).match() } + ) + } + + } + + test("umicollapse fastq test (single-end)") { + + when { + config "./nextflow.config" + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.umi_extract_single.fastq.gz', checkIfExists: true), + [] + ] + input[1] = 'fastq' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.fastq, + process.out.versions).match() } + ) + } + } + + test("umicollapse fastq test (paired-end)") { + + when { + config "./nextflow.config" + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.umi_extract_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test.umi_extract_2.fastq.gz', checkIfExists: true) + ] + input[1] = 'fastq' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.fastq, + process.out.versions).match() } + ) + } + } + + // Stub tests + + test("umicollapse single end test - stub") { + + options "-stub" + + when { + config "./nextflow.config" + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = 'bam' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.bam, + process.out.versions).match() } + ) + } + + } + + test("umicollapse paired tests - stub") { + + options "-stub" + + when { + config "./nextflow.config" + process { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) + ]) + input[1] = 'bam' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.bam, + process.out.versions).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/umicollapse/tests/main.nf.test.snap b/modules/nf-core/umicollapse/tests/main.nf.test.snap new file mode 100644 index 000000000..e903c0ce0 --- /dev/null +++ b/modules/nf-core/umicollapse/tests/main.nf.test.snap @@ -0,0 +1,110 @@ +{ + "umicollapse single end test": { + "content": [ + "9158ea6e7a0e54819e25cbac5fbc5cc0", + [ + "versions.yml:md5,03fdbcb1ba9bd40325ca42859d39deb1" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-25T17:31:45.024306" + }, + "umicollapse paired tests": { + "content": [ + "b7be15ac7aae194b04bdbb56f3534495", + [ + "versions.yml:md5,03fdbcb1ba9bd40325ca42859d39deb1" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-25T17:31:52.072799" + }, + "umicollapse fastq test (paired-end)": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.dedup.fastq.gz:md5,721a84a2accac988d636e837c60e47bc" + ] + ], + [ + "versions.yml:md5,03fdbcb1ba9bd40325ca42859d39deb1" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T13:57:36.968147" + }, + "umicollapse fastq test (single-end)": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.dedup.fastq.gz:md5,2e602ed23eb87f434e4f0a9e491c0310" + ] + ], + [ + "versions.yml:md5,03fdbcb1ba9bd40325ca42859d39deb1" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T13:57:28.328682" + }, + "umicollapse single end test - stub": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.dedup.dedup.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + "versions.yml:md5,c1e0275d81b1c97a9344d216f9154996" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T14:09:40.277318" + }, + "umicollapse paired tests - stub": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.dedup.dedup.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + [ + "versions.yml:md5,c1e0275d81b1c97a9344d216f9154996" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T14:09:44.224965" + } +} \ No newline at end of file diff --git a/modules/nf-core/umicollapse/tests/nextflow.config b/modules/nf-core/umicollapse/tests/nextflow.config new file mode 100644 index 000000000..105d8e132 --- /dev/null +++ b/modules/nf-core/umicollapse/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: UMICOLLAPSE { + ext.prefix = { "${meta.id}.dedup" } + } +} diff --git a/modules/nf-core/umicollapse/tests/tags.yml b/modules/nf-core/umicollapse/tests/tags.yml new file mode 100644 index 000000000..912879c4d --- /dev/null +++ b/modules/nf-core/umicollapse/tests/tags.yml @@ -0,0 +1,2 @@ +umicollapse: + - "modules/nf-core/umicollapse/**" diff --git a/modules/nf-core/umitools/dedup/tests/main.nf.test b/modules/nf-core/umitools/dedup/tests/main.nf.test index 883e2d9d7..f00a8cbed 100644 --- a/modules/nf-core/umitools/dedup/tests/main.nf.test +++ b/modules/nf-core/umitools/dedup/tests/main.nf.test @@ -4,6 +4,11 @@ nextflow_process { script "../main.nf" process "UMITOOLS_DEDUP" + tag "modules" + tag "modules_nfcore" + tag "umitools" + tag "umitools/dedup" + test("se - no stats") { config "./nextflow.config" @@ -14,8 +19,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:true ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ @@ -43,8 +48,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ @@ -56,7 +61,7 @@ nextflow_process { { assert process.success }, { assert path("${process.out.log[0][1]}").exists() }, { assert snapshot( - process.out.bam, + bam(process.out.bam[0][1]).getSamLinesMD5(), process.out.versions).match() } ) } @@ -72,8 +77,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ @@ -85,7 +90,7 @@ nextflow_process { { assert process.success }, { assert path("${process.out.log[0][1]}").exists() }, { assert snapshot( - process.out.bam, + bam(process.out.bam[0][1]).getSamLinesMD5(), process.out.tsv_edit_distance, process.out.tsv_per_umi, process.out.tsv_umi_per_position, @@ -107,8 +112,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:true ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.single_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ @@ -136,8 +141,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ @@ -165,8 +170,8 @@ nextflow_process { input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam", checkIfExists: true), - file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai", checkIfExists: true) + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam", checkIfExists: true), + file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai", checkIfExists: true) ] input[1] = get_output_stats """ diff --git a/modules/nf-core/umitools/dedup/tests/main.nf.test.snap b/modules/nf-core/umitools/dedup/tests/main.nf.test.snap index f7f4e94f1..04b81692a 100644 --- a/modules/nf-core/umitools/dedup/tests/main.nf.test.snap +++ b/modules/nf-core/umitools/dedup/tests/main.nf.test.snap @@ -37,13 +37,14 @@ }, "pe - with stats": { "content": [ + "b7be15ac7aae194b04bdbb56f3534495", [ [ { "id": "test", "single_end": false }, - "test.dedup.bam:md5,350e942a0d45e8356fa24bc8c47dc1ed" + "test.dedup_edit_distance.tsv:md5,c247a49b58768e6e2e86a6c08483e612" ] ], [ @@ -52,7 +53,7 @@ "id": "test", "single_end": false }, - "test.dedup_edit_distance.tsv:md5,65186b0964e2f8d970cc04d736d8b119" + "test.dedup_per_umi.tsv:md5,ced75f7bdbf38bf78f3137d5325a8773" ] ], [ @@ -61,16 +62,7 @@ "id": "test", "single_end": false }, - "test.dedup_per_umi.tsv:md5,8e6783a4a79437b095f095f2aefe7c01" - ] - ], - [ - [ - { - "id": "test", - "single_end": false - }, - "test.dedup_per_umi_per_position.tsv:md5,9386db4a104b8e4e32f3ca4a84efa4ac" + "test.dedup_per_umi_per_position.tsv:md5,2e1a12e6f720510880068deddeefe063" ] ], [ @@ -79,9 +71,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nextflow": "24.10.1" }, - "timestamp": "2024-07-03T11:27:24.231325" + "timestamp": "2024-11-25T17:25:28.939957" }, "se - no stats - stub": { "content": [ @@ -103,36 +95,28 @@ }, "se - no stats": { "content": [ - "a114abd9fccce6fe2869852b5cd18964", + "9158ea6e7a0e54819e25cbac5fbc5cc0", [ "versions.yml:md5,e2f5146464c09bf7ae98c85ea5410e50" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nextflow": "24.10.1" }, - "timestamp": "2024-07-03T13:45:48.553561" + "timestamp": "2024-11-23T09:06:54.373171" }, "pe - no stats": { "content": [ - [ - [ - { - "id": "test", - "single_end": false - }, - "test.dedup.bam:md5,350e942a0d45e8356fa24bc8c47dc1ed" - ] - ], + "b7be15ac7aae194b04bdbb56f3534495", [ "versions.yml:md5,e2f5146464c09bf7ae98c85ea5410e50" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nextflow": "24.10.1" }, - "timestamp": "2024-07-03T11:27:06.957467" + "timestamp": "2024-11-25T17:24:51.423637" } } \ No newline at end of file diff --git a/modules/nf-core/umitools/dedup/tests/tags.yml b/modules/nf-core/umitools/dedup/tests/tags.yml new file mode 100644 index 000000000..5934c5cb7 --- /dev/null +++ b/modules/nf-core/umitools/dedup/tests/tags.yml @@ -0,0 +1,2 @@ +umitools/dedup: + - "modules/nf-core/umitools/dedup/**" diff --git a/nextflow.config b/nextflow.config index 468792d0f..bc528efed 100644 --- a/nextflow.config +++ b/nextflow.config @@ -30,6 +30,7 @@ params { with_umi = false skip_umi_extract = false umitools_extract_method = 'string' + umi_dedup_tool = 'umitools' umitools_grouping_method = 'directional' umitools_dedup_stats = false umitools_bc_pattern = null @@ -38,6 +39,10 @@ params { umi_discard_read = null save_umi_intermeds = false + // Linting + skip_linting = false + extra_fqlint_args = '--disable-validator P001' + // Trimming trimmer = 'trimgalore' min_trimmed_reads = 10000 @@ -328,7 +333,7 @@ manifest { description = """RNA sequencing analysis pipeline for gene/isoform quantification and extensive quality control.""" mainScript = 'main.nf' nextflowVersion = '!>=24.04.2' - version = '3.17.0' + version = '3.18.0dev' doi = 'https://doi.org/10.5281/zenodo.1400710' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 802209b42..5bd25ca0d 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -305,6 +305,13 @@ "fa_icon": "fas fa-barcode", "description": "Enable UMI-based read deduplication." }, + "umi_dedup_tool": { + "type": "string", + "default": "umitools", + "description": "Specifies the tool to use for UMI deduplication - available options are 'umitools' and 'umicollapse'.", + "fa_icon": "fas fa-barcode", + "enum": ["umitools", "umicollapse"] + }, "umitools_extract_method": { "type": "string", "default": "string", @@ -411,7 +418,7 @@ }, "min_mapped_reads": { "type": "number", - "default": 5.0, + "default": 5, "fa_icon": "fas fa-percentage", "description": "Minimum percentage of uniquely mapped reads below which samples are removed from further processing.", "help_text": "Some downstream steps in the pipeline will fail if this threshold is too low." @@ -456,14 +463,14 @@ "stranded_threshold": { "type": "number", "minimum": 0.5, - "maximum": 1.0, + "maximum": 1, "default": 0.8, "description": "The fraction of stranded reads that must be assigned to a strandedness for confident assignment. Must be at least 0.5." }, "unstranded_threshold": { "type": "number", - "minimum": 0.0, - "maximum": 1.0, + "minimum": 0, + "maximum": 1, "default": 0.1, "description": "The difference in fraction of stranded reads assigned to 'forward' and 'reverse' below which a sample is classified as 'unstranded'. By default the forward and reverse fractions must differ by less than 0.1 for the sample to be called as unstranded." } @@ -539,6 +546,12 @@ "description": "Additional quality control options.", "default": "", "properties": { + "extra_fqlint_args": { + "type": "string", + "default": "--disable-validator P001", + "description": "Extra arguments to pass to the fq lint command.", + "fa_icon": "far fa-check-square" + }, "deseq2_vst": { "type": "boolean", "description": "Use vst transformation instead of rlog with DESeq2.", @@ -602,6 +615,11 @@ "fa_icon": "fas fa-compress-alt", "description": "Skip the UMI extraction from the read in case the UMIs have been moved to the headers in advance of the pipeline run." }, + "skip_linting": { + "type": "boolean", + "fa_icon": "fas fa-fast-forward", + "description": "Skip linting checks during FASTQ preprocessing and filtering." + }, "skip_trimming": { "type": "boolean", "description": "Skip the adapter trimming step.", diff --git a/subworkflows/local/utils_nfcore_rnaseq_pipeline/main.nf b/subworkflows/local/utils_nfcore_rnaseq_pipeline/main.nf index aa0dd4ed7..5e8820ddc 100644 --- a/subworkflows/local/utils_nfcore_rnaseq_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_rnaseq_pipeline/main.nf @@ -116,6 +116,8 @@ workflow PIPELINE_COMPLETION { id, status -> pass_strand_check[id] = status } + def multiqc_report_list = multiqc_report.toList() + // // Completion email and summary // @@ -128,7 +130,7 @@ workflow PIPELINE_COMPLETION { plaintext_email, outdir, monochrome_logs, - multiqc_report.toList() + multiqc_report_list.getVal() ) } @@ -216,6 +218,10 @@ def validateInputParameters() { } } + if (params.with_umi && params.umi_dedup_tool == "umicollapse" && params.umitools_grouping_method !in ['directional', 'adjacency', 'cluster']) { + error("UMI grouping method '${params.umitools_grouping_method}' unsupported for umicollapse, supported methods are 'cluster', 'adjacency' and 'directional'") + } + if (params.skip_alignment) { skipAlignmentWarn() } diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/main.nf b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/main.nf new file mode 100644 index 000000000..54c42b986 --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/main.nf @@ -0,0 +1,55 @@ +// +// umicollapse, index BAM file and run samtools stats, flagstat and idxstats +// + +include { UMICOLLAPSE } from '../../../modules/nf-core/umicollapse/main' +include { SAMTOOLS_INDEX } from '../../../modules/nf-core/samtools/index/main' +include { BAM_STATS_SAMTOOLS } from '../bam_stats_samtools/main' + +workflow BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE { + take: + ch_bam_bai // channel: [ val(meta), path(bam), path(bai/csi) ] + + main: + + ch_versions = Channel.empty() + + // + // umicollapse in bam mode (thus hardcode mode input channel to 'bam') + // + UMICOLLAPSE ( ch_bam_bai, channel.value( 'bam' )) + ch_versions = ch_versions.mix(UMICOLLAPSE.out.versions.first()) + + // + // Index BAM file and run samtools stats, flagstat and idxstats + // + SAMTOOLS_INDEX ( UMICOLLAPSE.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions.first()) + + ch_bam_bai_dedup = UMICOLLAPSE.out.bam + .join(SAMTOOLS_INDEX.out.bai, by: [0], remainder: true) + .join(SAMTOOLS_INDEX.out.csi, by: [0], remainder: true) + .map { + meta, bam, bai, csi -> + if (bai) { + [ meta, bam, bai ] + } else { + [ meta, bam, csi ] + } + } + + BAM_STATS_SAMTOOLS ( ch_bam_bai_dedup, [ [:], [] ] ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) + + emit: + bam = UMICOLLAPSE.out.bam // channel: [ val(meta), path(bam) ] + + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), path(bai) ] + csi = SAMTOOLS_INDEX.out.csi // channel: [ val(meta), path(csi) ] + dedup_stats = UMICOLLAPSE.out.log // channel: [ val(meta), path(stats) ] + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), path(stats) ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), path(flagstat) ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), path(idxstats) ] + + versions = ch_versions // channel: [ path(versions.yml) ] +} diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/meta.yml b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/meta.yml new file mode 100644 index 000000000..a24e0448d --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/meta.yml @@ -0,0 +1,59 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "bam_dedup_stats_samtools_umicollapse" +description: umicollapse, index BAM file and run samtools stats, flagstat and idxstats +keywords: + - umi + - dedup + - index + - bam + - sam + - cram +components: + - umicollapse + - samtools/index + - samtools/stats + - samtools/idxstats + - samtools/flagstat + - bam_stats_samtools +input: + - ch_bam_bai: + description: | + input BAM file + Structure: [ val(meta), path(bam), path(bai) ] +output: + - bam: + description: | + Umi deduplicated BAM/SAM file + Structure: [ val(meta), path(bam) ] + - bai: + description: | + Umi deduplicated BAM/SAM samtools index + Structure: [ val(meta), path(bai) ] + - csi: + description: | + CSI samtools index + Structure: [ val(meta), path(csi) ] + - dedupstats: + description: | + File containing umicollapse deduplication stats + Structure: [ val(meta), path(stats) ] + - stats: + description: | + File containing samtools stats output + Structure: [ val(meta), path(stats) ] + - flagstat: + description: | + File containing samtools flagstat output + Structure: [ val(meta), path(flagstat) ] + - idxstats: + description: | + File containing samtools idxstats output + Structure: [ val(meta), path(idxstats) ] + - versions: + description: | + Files containing software versions + Structure: [ path(versions.yml) ] +authors: + - "@MatthiasZepper" +maintainers: + - "@MatthiasZepper" diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test new file mode 100644 index 000000000..f4f14c71b --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test @@ -0,0 +1,57 @@ +// nf-core subworkflows test bam_dedup_stats_samtools_umicollapse +nextflow_workflow { + + name "Test Subworkflow BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE" + script "../main.nf" + workflow "BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE" + + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/bam_dedup_stats_samtools_umicollapse" + tag "subworkflows/bam_stats_samtools" + tag "bam_stats_samtools" + tag "bwa/index" + tag "bwa/mem" + tag "samtools" + tag "samtools/index" + tag "samtools/stats" + tag "samtools/idxstats" + tag "samtools/flagstat" + tag "umicollapse" + tag "umitools/extract" + + test("sarscov2_bam_bai") { + + when { + config "./paired-end-umis.config" + params { + outdir = "$outputDir" + } + workflow { + """ + input[0] = Channel.of([ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert workflow.success}, + { assert snapshot(bam(workflow.out.bam[0][1]).getSamLinesMD5()).match("test_bam_dedup_stats_samtools_umicollapse_bam")}, // separate, because of linting error otherwise + { assert snapshot(workflow.out.versions).match("test_bam_dedup_stats_samtools_umicollapse_versions") }, + { assert workflow.out.bam.get(0).get(1) ==~ ".*.bam"}, + { assert workflow.out.bai.get(0).get(1) ==~ ".*.bai"}, + { assert workflow.out.dedup_stats.get(0).get(1) ==~ ".*_UMICollapse.log"}, + { assert snapshot(workflow.out.stats).match("test_bam_dedup_stats_samtools_umicollapse_stats") }, + { assert snapshot(workflow.out.flagstat).match("test_bam_dedup_stats_samtools_umicollapse_flagstats") }, + { assert snapshot(workflow.out.idxstats).match("test_bam_dedup_stats_samtools_umicollapse_idxstats") } + ) + } + +} +} + diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test.snap b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test.snap new file mode 100644 index 000000000..9694c6d5f --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/main.nf.test.snap @@ -0,0 +1,79 @@ +{ + "test_bam_dedup_stats_samtools_umicollapse_stats": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.stats:md5,498621f92e86d55e4f7ae93170e6e733" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T13:57:02.323104" + }, + "test_bam_dedup_stats_samtools_umicollapse_versions": { + "content": [ + [ + "versions.yml:md5,20605eb79c410c0ed179ba660d82f75b", + "versions.yml:md5,23617661d2c899996bee2b05db027e25", + "versions.yml:md5,657bce03545b4c57f9c5fc4314bf85f7", + "versions.yml:md5,e02a62a393a833778e16542eeed0d148", + "versions.yml:md5,ef00762e264b99ac45713dc0dedf4060" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-25T18:39:15.637444" + }, + "test_bam_dedup_stats_samtools_umicollapse_flagstats": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.flagstat:md5,18d602435a02a4d721b78d1812622159" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T13:57:02.366866" + }, + "test_bam_dedup_stats_samtools_umicollapse_idxstats": { + "content": [ + [ + [ + { + "id": "test" + }, + "test.idxstats:md5,85d20a901eef23ca50c323638a2eb602" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-24T13:57:02.410712" + }, + "test_bam_dedup_stats_samtools_umicollapse_bam": { + "content": [ + "b7be15ac7aae194b04bdbb56f3534495" + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.10.1" + }, + "timestamp": "2024-11-25T18:39:15.613319" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/paired-end-umis.config b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/paired-end-umis.config new file mode 100644 index 000000000..8d58a861f --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/paired-end-umis.config @@ -0,0 +1,6 @@ +process { + + withName: UMICOLLAPSE { + ext.prefix = { "${meta.id}.dedup" } + } +} diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/tags.yml b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/tags.yml new file mode 100644 index 000000000..a3ba5b726 --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/bam_dedup_stats_samtools_umicollapse: + - subworkflows/nf-core/bam_dedup_stats_samtools_umicollapse/** diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test index ab541cb88..93e624857 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test @@ -3,6 +3,19 @@ nextflow_workflow { name "Test Workflow BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS" script "../main.nf" workflow "BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/bam_dedup_stats_samtools_umitools" + tag "subworkflows/bam_stats_samtools" + tag "bam_dedup_stats_samtools_umitools" + tag "bam_stats_samtools" + tag "samtools" + tag "samtools/index" + tag "samtools/stats" + tag "samtools/idxstats" + tag "samtools/flagstat" + tag "umitools" + tag "umitools/dedup" test("sarscov2_bam_bai") { @@ -13,8 +26,8 @@ nextflow_workflow { input[0] = Channel.of([ [ id:'test'], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) ]) input[1] = val_get_dedup_stats """ @@ -28,6 +41,7 @@ nextflow_workflow { { assert workflow.out.bam.get(0).get(1) ==~ ".*.bam"}, { assert workflow.out.bai.get(0).get(1) ==~ ".*.bai"}, { assert snapshot( + bam(workflow.out.bam[0][1]).getSamLinesMD5(), workflow.out.stats, workflow.out.flagstat, workflow.out.idxstats, @@ -48,8 +62,8 @@ nextflow_workflow { input[0] = Channel.of([ [ id:'test'], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam', checkIfExists: true), - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.sorted.bam.bai', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) ]) input[1] = val_get_dedup_stats """ diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap index d39f9129b..3b3613572 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap @@ -1,12 +1,13 @@ { "sarscov2_bam_bai": { "content": [ + "b7be15ac7aae194b04bdbb56f3534495", [ [ { "id": "test" }, - "test.stats:md5,84891a894010aeb882c4092db9248d2c" + "test.stats:md5,41ba57a9b90b54587e7d154e5405ea5e" ] ], [ @@ -14,7 +15,7 @@ { "id": "test" }, - "test.flagstat:md5,0bb716e40fae381b97484b58e0b16efe" + "test.flagstat:md5,18d602435a02a4d721b78d1812622159" ] ], [ @@ -22,7 +23,7 @@ { "id": "test" }, - "test.idxstats:md5,1adb27b52d4d64b826f48b59d61dcd4d" + "test.idxstats:md5,85d20a901eef23ca50c323638a2eb602" ] ], [ @@ -34,10 +35,10 @@ ] ], "meta": { - "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nf-test": "0.8.4", + "nextflow": "24.10.1" }, - "timestamp": "2024-09-16T08:04:23.444693448" + "timestamp": "2024-11-25T17:23:13.841219" }, "sarscov2_bam_bai - stub": { "content": [ diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/tags.yml b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/tags.yml new file mode 100644 index 000000000..bfd5e023e --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/bam_dedup_stats_samtools_umitools: + - subworkflows/nf-core/bam_dedup_stats_samtools_umitools/** diff --git a/subworkflows/nf-core/bam_dedup_umi/main.nf b/subworkflows/nf-core/bam_dedup_umi/main.nf new file mode 100644 index 000000000..d091a5824 --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_umi/main.nf @@ -0,0 +1,132 @@ +// +// BAM deduplication with UMI processing +// + +include { BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE as BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_TRANSCRIPTOME } from '../bam_dedup_stats_samtools_umicollapse' +include { BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS as BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME } from '../bam_dedup_stats_samtools_umitools' +include { BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE as BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_GENOME } from '../bam_dedup_stats_samtools_umicollapse' +include { BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS as BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME } from '../bam_dedup_stats_samtools_umitools' +include { BAM_SORT_STATS_SAMTOOLS } from '../bam_sort_stats_samtools' + +include { UMITOOLS_PREPAREFORRSEM } from '../../../modules/nf-core/umitools/prepareforrsem' +include { SAMTOOLS_SORT } from '../../../modules/nf-core/samtools/sort/main' + +workflow BAM_DEDUP_UMI { + take: + ch_genome_bam // channel: [ val(meta), path(bam), path(bai) ] + ch_fasta // channel: [ val(meta), path(fasta) ] + umi_dedup_tool // string: 'umicollapse' or 'umitools' + umitools_dedup_stats // boolean: whether to generate UMI-tools dedup stats + bam_csi_index // boolean: whether to generate CSI index + ch_transcriptome_bam // channel: [ val(meta), path(bam) ] + ch_transcript_fasta // channel: [ val(meta), path(fasta) ] + + main: + ch_versions = Channel.empty() + + if (umi_dedup_tool != "umicollapse" && umi_dedup_tool != "umitools"){ + error("Unknown umi_dedup_tool '${umi_dedup_tool}'") + } + + // Genome BAM deduplication + if (umi_dedup_tool == "umicollapse") { + BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_GENOME ( + ch_genome_bam + ) + UMI_DEDUP_GENOME = BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_GENOME + ch_dedup_log = UMI_DEDUP_GENOME.out.dedup_stats + + } else if (umi_dedup_tool == "umitools") { + BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME ( + ch_genome_bam, + umitools_dedup_stats + ) + UMI_DEDUP_GENOME = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME + ch_dedup_log = UMI_DEDUP_GENOME.out.deduplog + } + + // Co-ordinate sort, index and run stats on transcriptome BAM. This takes + // some preparation- we have to coordinate sort the BAM, run the + // deduplication, then restore name sorting and run a script from umitools + // to prepare for rsem or salmon + + // 1. Coordinate sort + + BAM_SORT_STATS_SAMTOOLS ( + ch_transcriptome_bam, + ch_transcript_fasta + ) + ch_sorted_transcriptome_bam = BAM_SORT_STATS_SAMTOOLS.out.bam + .join(BAM_SORT_STATS_SAMTOOLS.out.bai) + + // 2. Transcriptome BAM deduplication + if (umi_dedup_tool == "umicollapse") { + BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_TRANSCRIPTOME ( + ch_sorted_transcriptome_bam + ) + UMI_DEDUP_TRANSCRIPTOME = BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_TRANSCRIPTOME + ch_dedup_log = ch_dedup_log.mix(UMI_DEDUP_GENOME.out.dedup_stats) + + } else if (umi_dedup_tool == "umitools") { + BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME ( + ch_sorted_transcriptome_bam, + umitools_dedup_stats + ) + UMI_DEDUP_TRANSCRIPTOME = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME + ch_dedup_log = ch_dedup_log.mix(UMI_DEDUP_GENOME.out.deduplog) + } + + // 3. Restore name sorting + SAMTOOLS_SORT ( + UMI_DEDUP_TRANSCRIPTOME.out.bam, + ch_fasta + ) + + // 4. Run prepare_for_rsem.py on paired-end BAM files + // This fixes paired-end reads in name sorted BAM files + // See: https://github.com/nf-core/rnaseq/issues/828 + ended_transcriptome_dedup_bam = SAMTOOLS_SORT.out.bam + .branch { + meta, bam -> + single_end: meta.single_end + return [ meta, bam ] + paired_end: !meta.single_end + return [ meta, bam ] + } + + UMITOOLS_PREPAREFORRSEM ( + ended_transcriptome_dedup_bam.paired_end + .map { meta, bam -> [ meta, bam, [] ] } + ) + + ch_dedup_transcriptome_bam = ended_transcriptome_dedup_bam.single_end + .mix(UMITOOLS_PREPAREFORRSEM.out.bam) + + // Collect files useful for MultiQC into one helpful emission. Don't + // automatically add transcriptome stats- difficult to separate in multiqc + // without a bit more work + + ch_multiqc_files = ch_dedup_log + .mix(UMI_DEDUP_GENOME.out.stats) + .mix(UMI_DEDUP_GENOME.out.flagstat) + .mix(UMI_DEDUP_GENOME.out.idxstats) + .transpose() + .map{it[1]} + + // Record versions + + ch_versions = UMI_DEDUP_GENOME.out.versions + .mix(BAM_SORT_STATS_SAMTOOLS.out.versions) + .mix(UMITOOLS_PREPAREFORRSEM.out.versions) + + emit: + bam = UMI_DEDUP_GENOME.out.bam // channel: [ val(meta), path(bam) ] + bai = bam_csi_index ? UMI_DEDUP_GENOME.out.csi : UMI_DEDUP_GENOME.out.bai // channel: [ val(meta), path(bai) ] + dedup_log = ch_dedup_log // channel: [ val(meta), path(log) ] + stats = UMI_DEDUP_GENOME.out.stats.mix(UMI_DEDUP_TRANSCRIPTOME.out.stats) // channel: [ val(meta), path(stats)] + flagstat = UMI_DEDUP_GENOME.out.flagstat.mix(UMI_DEDUP_TRANSCRIPTOME.out.flagstat) // channel: [ val(meta), path(flagstat)] + idxstats = UMI_DEDUP_GENOME.out.idxstats.mix(UMI_DEDUP_TRANSCRIPTOME.out.idxstats) // channel: [ val(meta), path(idxstats)] + multiqc_files = ch_multiqc_files // channel: file + transcriptome_bam = ch_dedup_transcriptome_bam // channel: [ val(meta), path(bam) ] + versions = ch_versions // channel: [ path(versions.yml) ] +} diff --git a/subworkflows/nf-core/bam_dedup_umi/meta.yml b/subworkflows/nf-core/bam_dedup_umi/meta.yml new file mode 100644 index 000000000..f88fa2f1c --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_umi/meta.yml @@ -0,0 +1,181 @@ +name: "bam_dedup_umi" +description: BAM deduplication with UMI processing for both genome and transcriptome alignments +keywords: + - deduplication + - UMI + - BAM + - genome + - transcriptome + - umicollapse + - umitools + +components: + - umitools/prepareforrsem + - samtools/sort + - bam_dedup_stats_samtools_umicollapse + - bam_dedup_stats_samtools_umitools + - bam_sort_stats_samtools + +input: + - ch_genome_bam: + description: Channel with genome BAM files + structure: + - meta: + type: map + description: Metadata map + - bam: + type: file + description: BAM file + pattern: "*.bam" + - bai: + type: file + description: BAM index file + pattern: "*.bai" + - ch_fasta: + description: Channel with genome FASTA file + structure: + - meta: + type: map + description: Metadata map + - fasta: + type: file + description: Genome FASTA file + pattern: "*.{fa,fasta}" + - umi_dedup_tool: + description: UMI deduplication tool to use + structure: + - value: + type: string + description: Either 'umicollapse' or 'umitools' + - umitools_dedup_stats: + description: Whether to generate UMI-tools deduplication stats + structure: + - value: + type: boolean + description: True or False + - bam_csi_index: + description: Whether to generate CSI index + structure: + - value: + type: boolean + description: True or False + - ch_transcriptome_bam: + description: Channel with transcriptome BAM files + structure: + - meta: + type: map + description: Metadata map + - bam: + type: file + description: BAM file + pattern: "*.bam" + - ch_transcript_fasta: + description: Channel with transcript FASTA file + structure: + - meta: + type: map + description: Metadata map + - fasta: + type: file + description: Transcript FASTA file + pattern: "*.{fa,fasta}" + +output: + - bam: + description: Channel containing deduplicated genome BAM files + structure: + - meta: + type: map + description: Metadata map + - bam: + type: file + description: Deduplicated BAM file + pattern: "*.bam" + - bai: + description: Channel containing indexed BAM (BAI) files + structure: + - meta: + type: map + description: Metadata map + - bai: + type: file + description: BAM index file + pattern: "*.bai" + - csi: + description: Channel containing CSI files (if bam_csi_index is true) + structure: + - meta: + type: map + description: Metadata map + - csi: + type: file + description: CSI index file + pattern: "*.csi" + - dedup_log: + description: Channel containing deduplication log files + structure: + - meta: + type: map + description: Metadata map + - log: + type: file + description: Deduplication log file + pattern: "*.log" + - stats: + description: Channel containing BAM statistics files + structure: + - meta: + type: map + description: Metadata map + - stats: + type: file + description: BAM statistics file + pattern: "*.stats" + - flagstat: + description: Channel containing flagstat files + structure: + - meta: + type: map + description: Metadata map + - flagstat: + type: file + description: Flagstat file + pattern: "*.flagstat" + - idxstats: + description: Channel containing idxstats files + structure: + - meta: + type: map + description: Metadata map + - idxstats: + type: file + description: Idxstats file + pattern: "*.idxstats" + - multiqc_files: + description: Channel containing files for MultiQC + structure: + - file: + type: file + description: File for MultiQC + - transcriptome_bam: + description: Channel containing deduplicated transcriptome BAM files + structure: + - meta: + type: map + description: Metadata map + - bam: + type: file + description: Deduplicated transcriptome BAM file + pattern: "*.bam" + - versions: + description: Channel containing software versions file + structure: + - versions: + type: file + description: File containing versions of the software used + pattern: "versions.yml" + +authors: + - "@pinin4fjords" +maintainers: + - "@pinin4fjords" diff --git a/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test b/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test new file mode 100644 index 000000000..b8e9da9ab --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test @@ -0,0 +1,99 @@ +nextflow_workflow { + + name "Test Workflow BAM_DEDUP_UMI" + script "../main.nf" + workflow "BAM_DEDUP_UMI" + config "./nextflow.config" + + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/bam_dedup_umi" + tag "bam_dedup_stats_samtools_umicollapse" + tag "bam_dedup_stats_samtools_umitools" + tag "bam_sort_stats_samtools" + tag "umitools/prepareforrsem" + tag "samtools/sort" + + test("sarscov2_bam_bai - umitools - with transcriptome bams") { + + when { + workflow { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id:'genome'], + file(params.modules_testdata_base_path + '/genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = 'umitools' + input[3] = false + input[4] = false + input[5] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true) ] + input[6] = [ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/transcriptome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + bam(workflow.out.bam[0][1]).getReadsMD5(), + bam(workflow.out.transcriptome_bam[0][1]).getReadsMD5(), + workflow.out.stats, + workflow.out.flagstat, + workflow.out.idxstats, + workflow.out.versions + ).match() }, + { assert path(workflow.out.bai.get(0).get(1)).exists() } + ) + } + + } + + test("sarscov2_bam_bai - umicollapse - no transcriptome bams") { + + when { + workflow { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.umi.sorted.bam.bai', checkIfExists: true) + ] + input[1] = [ + [id:'genome'], + file(params.modules_testdata_base_path + '/genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = 'umicollapse' + input[3] = false + input[4] = false + input[5] = Channel.empty() + input[6] = Channel.empty() + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot( + bam(workflow.out.bam[0][1]).getReadsMD5(), + workflow.out.stats, + workflow.out.flagstat, + workflow.out.idxstats, + workflow.out.versions + ).match() }, + { assert path(workflow.out.bai.get(0).get(1)).exists() } + ) + } + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test.snap b/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test.snap new file mode 100644 index 000000000..94151f04b --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_umi/tests/main.nf.test.snap @@ -0,0 +1,109 @@ +{ + "sarscov2_bam_bai - umicollapse - no transcriptome bams": { + "content": [ + "c1917631c47d16320d002b867e226a2e", + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.stats:md5,a03e635b85a846a2650c7b747926c7ed" + ] + ], + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.flagstat:md5,18d602435a02a4d721b78d1812622159" + ] + ], + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.idxstats:md5,85d20a901eef23ca50c323638a2eb602" + ] + ], + [ + "versions.yml:md5,3fe6727d1a90130a932400464233ab5d", + "versions.yml:md5,5d91176bd409dc54816e7e3a7773b5ef", + "versions.yml:md5,7eaf0c81f627dde8e2710a57e19b4d87", + "versions.yml:md5,d6bba04463b79564f053e7e5033025dd", + "versions.yml:md5,f90574f645fd8876ba52b89b2272afc1" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-12T13:04:25.48875" + }, + "sarscov2_bam_bai - umitools - with transcriptome bams": { + "content": [ + "c1917631c47d16320d002b867e226a2e", + "fe38ce657d4208a850702bdbfaa062ca", + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.stats:md5,a03e635b85a846a2650c7b747926c7ed" + ], + [ + { + "id": "test" + }, + "test.umi_dedup.transcriptome.sorted.bam.stats:md5,720f03daf649606a50c2cccbf135edc5" + ] + ], + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.flagstat:md5,18d602435a02a4d721b78d1812622159" + ], + [ + { + "id": "test" + }, + "test.umi_dedup.transcriptome.sorted.bam.flagstat:md5,18d602435a02a4d721b78d1812622159" + ] + ], + [ + [ + { + "id": "test" + }, + "test.umi_dedup.genome.sorted.bam.idxstats:md5,85d20a901eef23ca50c323638a2eb602" + ], + [ + { + "id": "test" + }, + "test.umi_dedup.transcriptome.sorted.bam.idxstats:md5,85d20a901eef23ca50c323638a2eb602" + ] + ], + [ + "versions.yml:md5,017dce06e6fadba312ce46808e2b19ff", + "versions.yml:md5,0ca2bd583dd1951c792b526f768db343", + "versions.yml:md5,1e761d924c3e0f35284799aa566e7c1a", + "versions.yml:md5,43e34c4518b8d546b632b372bc282ac4", + "versions.yml:md5,9d7724974d6dc288b485b5509c89297b", + "versions.yml:md5,a4562f4cc5d04041a79ba57761e231d9", + "versions.yml:md5,acfef82b716e50563fb22f47f33de00a", + "versions.yml:md5,afd68b9511aecba9cc5d6f7dd4c34bbd", + "versions.yml:md5,c2fda58ea2b120a510502b9db24d8a16", + "versions.yml:md5,d531cd7e744b2f95659bdb544f2cd8a5", + "versions.yml:md5,e22174a7d3003395e8e8c34ebfba1719" + ] + ], + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-12T13:04:12.182087" + } +} \ No newline at end of file diff --git a/subworkflows/nf-core/bam_dedup_umi/tests/nextflow.config b/subworkflows/nf-core/bam_dedup_umi/tests/nextflow.config new file mode 100644 index 000000000..cd10b5c78 --- /dev/null +++ b/subworkflows/nf-core/bam_dedup_umi/tests/nextflow.config @@ -0,0 +1,38 @@ +process { + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:UMI(COLLAPSE|TOOLS_DEDUP)' { + ext.prefix = { "${meta.id}_umi_dedup.genome" } + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_TRANSCRIPTOME:UMI(COLLAPSE|TOOLS_DEDUP)' { + ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted" } + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:UMI(COLLAPSE|TOOLS_DEDUP)' { + ext.prefix = { "${meta.id}.umi_dedup.genome.sorted" } + } + + withName: 'UMITOOLS_PREPAREFORRSEM' { + ext.prefix = { "${meta.id}_preparedforrsem" } + } + + withName: 'BAM_DEDUP_UMI:SAMTOOLS_SORT' { + ext.args = '-n' + ext.prefix = { "${meta.id}.umi_dedup.transcriptome" } + } + + withName: 'BAM_DEDUP_UMI:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { + ext.prefix = { "${meta.id}.transcriptome.sorted" } + } + + withName: 'BAM_DEDUP_UMI:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.transcriptome.sorted.bam" } + } + + withName: 'BAM_DEDUP_UMI:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_TRANSCRIPTOME:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted.bam" } + } + + withName: 'BAM_DEDUP_UMI:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.umi_dedup.genome.sorted.bam" } + } +} diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf index c655af415..7a4041c25 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/main.nf @@ -1,13 +1,17 @@ import groovy.json.JsonSlurper -include { BBMAP_BBSPLIT } from '../../../modules/nf-core/bbmap/bbsplit' -include { CAT_FASTQ } from '../../../modules/nf-core/cat/fastq/main' -include { SORTMERNA } from '../../../modules/nf-core/sortmerna/main' -include { SORTMERNA as SORTMERNA_INDEX } from '../../../modules/nf-core/sortmerna/main' - -include { FASTQ_SUBSAMPLE_FQ_SALMON } from '../fastq_subsample_fq_salmon' -include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../fastq_fastqc_umitools_trimgalore' -include { FASTQ_FASTQC_UMITOOLS_FASTP } from '../fastq_fastqc_umitools_fastp' +include { BBMAP_BBSPLIT } from '../../../modules/nf-core/bbmap/bbsplit' +include { CAT_FASTQ } from '../../../modules/nf-core/cat/fastq/main' +include { SORTMERNA } from '../../../modules/nf-core/sortmerna/main' +include { SORTMERNA as SORTMERNA_INDEX } from '../../../modules/nf-core/sortmerna/main' +include { FQ_LINT } from '../../../modules/nf-core/fq/lint/main' +include { FQ_LINT as FQ_LINT_AFTER_TRIMMING } from '../../../modules/nf-core/fq/lint/main' +include { FQ_LINT as FQ_LINT_AFTER_BBSPLIT } from '../../../modules/nf-core/fq/lint/main' +include { FQ_LINT as FQ_LINT_AFTER_SORTMERNA } from '../../../modules/nf-core/fq/lint/main' + +include { FASTQ_SUBSAMPLE_FQ_SALMON } from '../fastq_subsample_fq_salmon' +include { FASTQ_FASTQC_UMITOOLS_TRIMGALORE } from '../fastq_fastqc_umitools_trimgalore' +include { FASTQ_FASTQC_UMITOOLS_FASTP } from '../fastq_fastqc_umitools_fastp' def pass_trimmed_reads = [:] @@ -106,6 +110,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { umi_discard_read // integer: 0, 1 or 2 stranded_threshold // float: The fraction of stranded reads that must be assigned to a strandedness for confident assignment. Must be at least 0.5 unstranded_threshold // float: The difference in fraction of stranded reads assigned to 'forward' and 'reverse' below which a sample is classified as 'unstranded' + skip_linting // boolean: true/false main: @@ -113,6 +118,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { ch_filtered_reads = Channel.empty() ch_trim_read_count = Channel.empty() ch_multiqc_files = Channel.empty() + ch_lint_log = Channel.empty() ch_reads .branch { @@ -136,6 +142,19 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { ch_versions = ch_versions.mix(CAT_FASTQ.out.versions.first()) + // + // MODULE: Lint FastQ files + // + + if(!skip_linting) { + FQ_LINT ( + ch_filtered_reads + ) + ch_versions = ch_versions.mix(FQ_LINT.out.versions.first()) + ch_lint_log = ch_lint_log.mix(FQ_LINT.out.lint) + ch_reads = ch_reads.join(FQ_LINT.out.lint.map{it[0]}) + } + // // SUBWORKFLOW: Read QC, extract UMI and trim adapters with TrimGalore! // @@ -212,6 +231,14 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { .map { [[:], it] } ) + if((!skip_linting) && (!skip_trimming)) { + FQ_LINT_AFTER_TRIMMING ( + ch_filtered_reads + ) + ch_lint_log = ch_lint_log.mix(FQ_LINT_AFTER_TRIMMING.out.lint) + ch_filtered_reads = ch_filtered_reads.join(FQ_LINT_AFTER_TRIMMING.out.lint.map{it[0]}) + } + // // MODULE: Remove genome contaminant reads // @@ -228,6 +255,14 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { .set { ch_filtered_reads } ch_versions = ch_versions.mix(BBMAP_BBSPLIT.out.versions.first()) + + if(!skip_linting) { + FQ_LINT_AFTER_BBSPLIT ( + ch_filtered_reads + ) + ch_lint_log = ch_lint_log.mix(FQ_LINT_AFTER_BBSPLIT.out.lint) + ch_filtered_reads = ch_filtered_reads.join(FQ_LINT_AFTER_BBSPLIT.out.lint.map{it[0]}) + } } // @@ -260,6 +295,14 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { .mix(SORTMERNA.out.log) ch_versions = ch_versions.mix(SORTMERNA.out.versions.first()) + + if(!skip_linting) { + FQ_LINT_AFTER_SORTMERNA ( + ch_filtered_reads + ) + ch_lint_log = ch_lint_log.mix(FQ_LINT_AFTER_SORTMERNA.out.lint) + ch_filtered_reads = ch_filtered_reads.join(FQ_LINT_AFTER_SORTMERNA.out.lint.map{it[0]}) + } } // Branch FastQ channels if 'auto' specified to infer strandedness @@ -312,6 +355,7 @@ workflow FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS { emit: + lint_log = ch_lint_log reads = ch_strand_inferred_fastq trim_read_count = ch_trim_read_count diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml index 6f92f56a0..433837d70 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/meta.yml @@ -1,6 +1,5 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json name: "fastq_qc_trim_filter_setstrandedness" -description: Basic FASTQ preprocessing for RNA-seq +description: Performs linting, quality control, trimming, filtering, and strandedness determination on RNA-seq FASTQ files, preparing them for downstream analysis. keywords: - fastq - rnaseq @@ -19,39 +18,84 @@ components: - fastq_fastqc_umitools_trimgalore - fastq_fastqc_umitools_fastp input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test' ] - ch_reads: - type: file - description: | - Channel with input FastQ files of size 1 and 2 for single-end and - paired-end data, respectively. + description: Channel with input FastQ files + structure: + - meta: + type: map + description: Groovy Map containing sample information e.g. [ id:'test' ] + - reads: + type: file + description: FastQ files + pattern: "*.{fq,fastq},{,.gz}" - ch_fasta: - type: file description: Channel with genome sequence in fasta format + structure: + - meta: + type: map + description: Metadata for the fasta file + - fasta: + type: file + description: Genome fasta file + pattern: "*.{fa,fasta}" - ch_transcript_fasta: - type: file description: Channel with transcriptome sequence in fasta format + structure: + - meta: + type: map + description: Metadata for the transcript fasta file + - fasta: + type: file + description: Transcript fasta file + pattern: "*.{fa,fasta}" - ch_gtf: - type: file description: Channel with features in GTF format + structure: + - meta: + type: map + description: Metadata for the GTF file + - gtf: + type: file + description: GTF file + pattern: "*.gtf" - ch_salmon_index: - type: file description: Directory containing Salmon index + structure: + - meta: + type: map + description: Metadata for the Salmon index + - index: + type: directory + description: Salmon index directory - ch_sortmerna_index: - type: file description: Directory containing sortmerna index + structure: + - meta: + type: map + description: Metadata for the SortMeRNA index + - index: + type: directory + description: SortMeRNA index directory - ch_bbsplit_index: - type: file description: Path to directory or tar.gz archive for pre-built BBSplit index + structure: + - meta: + type: map + description: Metadata for the BBSplit index + - index: + type: file + description: BBSplit index directory or tar.gz archive + pattern: "{*,*.tar.gz}" - ch_rrna_fastas: - type: file - description: | - Channel containing one or more FASTA files containing rRNA sequences - for use with SortMeRNA + description: Channel containing one or more FASTA files containing rRNA sequences for use with SortMeRNA + structure: + - meta: + type: map + description: Metadata for the rRNA fasta files + - fasta: + type: file + description: rRNA fasta files + pattern: "*.{fa,fasta}" - skip_bbsplit: type: boolean description: Whether to skip BBSplit for removal of non-reference genome reads @@ -63,9 +107,7 @@ input: description: Whether to skip trimming - skip_umi_extract: type: boolean - description: | - Skip the UMI extraction from the read in case the UMIs have been moved - to the headers in advance of the pipeline run + description: Skip the UMI extraction from the read in case the UMIs have been moved to the headers in advance of the pipeline run - make_salmon_index: type: boolean description: Whether to create salmon index before running salmon quant @@ -74,14 +116,10 @@ input: description: Whether to create sortmerna index before running sortmerna - trimmer: type: string - description: | - Specifies the trimming tool to use - available options are 'trimgalore' - and 'fastp' + description: Specifies the trimming tool to use - available options are 'trimgalore' and 'fastp' - min_trimmed_reads: type: integer - description: | - Minimum number of trimmed reads below which samples are removed from - further processing + description: Minimum number of trimmed reads below which samples are removed from further processing - save_trimmed: type: boolean description: Save the trimmed FastQ files in the results directory? @@ -93,39 +131,66 @@ input: description: Enable UMI-based read deduplication - umi_discard_read: type: integer - description: | - After UMI barcode extraction discard either R1 or R2 by setting this - parameter to 1 or 2, respectively + description: After UMI barcode extraction discard either R1 or R2 by setting this parameter to 1 or 2, respectively - stranded_threshold: type: float min: 0.5 - description: | - The fraction of stranded reads that must be assigned to a strandedness - for confident assignment. Must be at least 0.5. + description: The fraction of stranded reads that must be assigned to a strandedness for confident assignment. Must be at least 0.5. - unstranded_threshold: type: float - description: | - The difference in fraction of stranded reads assigned to 'forward' and - 'reverse' below which a sample is classified as 'unstranded'. + description: The difference in fraction of stranded reads assigned to 'forward' and 'reverse' below which a sample is classified as 'unstranded'. + - skip_linting: + type: boolean + description: Whether to skip linting of FastQ files output: - reads: - type: file description: Preprocessed fastq reads - pattern: "*.{fq,fastq}{,.gz}" + structure: + - meta: + type: map + description: Metadata for the preprocessed reads + - reads: + type: file + description: Preprocessed FastQ files + pattern: "*.{fq,fastq},{,.gz}" - multiqc_files: - type: file - description: MultiQC-compatible output files from tools used in prepreocessing - pattern: "*" + description: MultiQC-compatible output files from tools used in preprocessing + structure: + - meta: + type: map + description: Metadata for the MultiQC files + - mqc: + type: file + description: MultiQC-compatible files + pattern: "*" - trim_read_count: - type: integer description: Number of reads remaining after trimming for all input samples + structure: + - meta: + type: map + description: Metadata for the trim read count + - count: + type: integer + description: Number of reads after trimming - versions: - type: file - description: | - File containing software versions - Structure: [ path(versions.yml) ] - pattern: "versions.yml" + description: File containing software versions + structure: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - lint_log: + description: Log files from FastQ linting + structure: + - meta: + type: map + description: Metadata for the lint log + - log: + type: file + description: FastQ lint log file + pattern: "*.log" + authors: - "@pinin4fjords" maintainers: diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/nextflow.config b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/nextflow.config new file mode 100644 index 000000000..05d9e8f94 --- /dev/null +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/nextflow.config @@ -0,0 +1,36 @@ +process { + + withName: 'FQ_LINT' { + ext.args = { params.extra_fqlint_args ?: '' } + publishDir = [ + path: { "${params.outdir}/fq_lint/raw" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'FQ_LINT_AFTER_TRIMMING' { + publishDir = [ + path: { "${params.outdir}/fq_lint/trimmed" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'FQ_LINT_AFTER_BBSPLIT' { + publishDir = [ + path: { "${params.outdir}/fq_lint/sortmerna" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: 'FQ_LINT_AFTER_SORTMERNA' { + publishDir = [ + path: { "${params.outdir}/fq_lint/trimmed" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + +} diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test index c752e176c..99c4d931a 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test @@ -5,6 +5,21 @@ nextflow_workflow { workflow "FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS" config "./nextflow.config" + tag "subworkflows" + tag "subworkflows_nfcore" + tag "subworkflows/fastq_qc_trim_filter_setstrandedness" + + tag "bbmap/bbsplit" + tag "cat" + tag "cat/fastq" + tag "fastqc" + tag "sortmerna" + tag "subworkflows/fastq_fastqc_umitools_trimgalore" + tag "subworkflows/fastq_fastqc_umitools_fastp" + tag "subworkflows/fastq_subsample_fq_salmon" + + + test("homo_sapiens paired-end [fastq] fastp") { when { @@ -25,7 +40,7 @@ nextflow_workflow { input[4] = [] // ch_salmon_index input[5] = [] // ch_sortmerna_index input[6] = [] // ch_bbsplit_index - input[7] = Channel.of(file('https://raw.githubusercontent.com/biocore/sortmerna/v4.3.4/data/rRNA_databases/rfam-5.8s-database-id98.fasta', checkIfExists: true)) // ch_rrna_fastas + input[7] = Channel.of(file('https://raw.githubusercontent.com/biocore/sortmerna/v4.3.4/data/rRNA_databases/rfam-5.8s-database-id98.fasta', checkIfExists: true)) // ch_rrna_fastas input[8] = true // skip_bbsplit input[9] = false // skip_fastqc input[10] = false // skip_trimming @@ -40,6 +55,7 @@ nextflow_workflow { input[19] = 0 // umi_discard_read input[20] = 0.8 // stranded_threshold input[21] = 0.1 // unstranded_threshold + input[22] = false // skip_linting """ } } @@ -47,13 +63,22 @@ nextflow_workflow { then { def pelines1 = path(workflow.out.reads[0][1][0]).linesGzip def pelines2 = path(workflow.out.reads[0][1][1]).linesGzip + + // First part of each fq lint report line is a timestamp, remove it before snapshotting + def processed_sortmerna_lint_report = path(workflow.out.lint_log.find { entry -> entry[1].contains('sortmerna')}?.getAt(1)) + .getText() + .readLines() + .collect { line -> line.split(' ', 2)[1] } // Split by the first space and take everything after it + .join('\n') // Join the processed lines back into a single text block + assertAll( { assert workflow.success}, { assert snapshot(pelines1).md5().match("fastp_test_pe_reads_1_lines") }, { assert snapshot(pelines1.size()).match("fastp_test_pe_reads_1_size") }, { assert snapshot(pelines2).md5().match("fastp_test_pe_reads_2_lines") }, { assert snapshot(pelines2.size()).match("fastp_test_pe_reads_2_size") }, - { assert snapshot(workflow.out.trim_read_count).match("fastp_read_count") } + { assert snapshot(workflow.out.trim_read_count).match("fastp_read_count") }, + { assert snapshot(processed_sortmerna_lint_report).md5().match("fastp_lint") } // This doesn't work- 'cat' changes between Conda and Docker - // leaving it here until we find a way to address that // { assert snapshot(workflow.out.versions).match("fastp_versions") } @@ -80,7 +105,7 @@ nextflow_workflow { input[4] = [] // ch_salmon_index input[5] = [] // ch_sortmerna_index input[6] = [] // ch_bbsplit_index - input[7] = Channel.of(file('https://raw.githubusercontent.com/biocore/sortmerna/v4.3.4/data/rRNA_databases/rfam-5.8s-database-id98.fasta', checkIfExists: true)) // ch_rrna_fastas + input[7] = Channel.of(file('https://raw.githubusercontent.com/biocore/sortmerna/v4.3.4/data/rRNA_databases/rfam-5.8s-database-id98.fasta', checkIfExists: true)) // ch_rrna_fastas input[8] = true // skip_bbsplit input[9] = false // skip_fastqc input[10] = false // skip_trimming @@ -95,6 +120,7 @@ nextflow_workflow { input[19] = 0 // umi_discard_read input[20] = 0.8 // stranded_threshold input[21] = 0.1 // unstranded_threshold + input[22] = false // skip_linting """ } } @@ -102,19 +128,28 @@ nextflow_workflow { then { def pelines1 = path(workflow.out.reads[0][1][0]).linesGzip def pelines2 = path(workflow.out.reads[0][1][1]).linesGzip + + // First part of each fq lint report line is a timestamp, remove it before snapshotting + def processed_sortmerna_lint_report = path(workflow.out.lint_log.find { entry -> entry[1].contains('sortmerna')}?.getAt(1)) + .getText() + .readLines() + .collect { line -> line.split(' ', 2)[1] } // Split by the first space and take everything after it + .join('\n') // Join the processed lines back into a single text block + assertAll( { assert workflow.success}, { assert snapshot(pelines1).md5().match("trimgalore_test_pe_reads_1_lines") }, { assert snapshot(pelines1.size()).match("trimgalore_test_pe_reads_1_size") }, { assert snapshot(pelines2).md5().match("trimgalore_test_pe_reads_2_lines") }, { assert snapshot(pelines2.size()).match("trimgalore_test_pe_reads_2_size") }, - { assert snapshot(workflow.out.trim_read_count).match("trimgalore_read_count") } + { assert snapshot(workflow.out.trim_read_count).match("trimgalore_read_count") }, + { assert snapshot(processed_sortmerna_lint_report).md5().match("trimgalore_lint") } // This doesn't work- 'cat' changes between Conda and Docker - // leaving it here until we find a way to address that //{ assert snapshot(workflow.out.versions).match("trimgalore_versions") } ) } } - + } diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test.snap index 985349317..b02450659 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/main.nf.test.snap @@ -13,82 +13,98 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:00.044553245" + "timestamp": "2024-12-02T12:56:09.941793" }, "trimgalore_test_pe_reads_2_lines": { "content": "eccf3e9e74589ff01c77fce7f4548e41", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:26.838793051" + "timestamp": "2024-12-02T12:56:34.948679" }, "fastp_test_pe_reads_1_size": { "content": [ 4508 ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:23:59.889337984" + "timestamp": "2024-12-02T12:56:09.889501" }, "trimgalore_test_pe_reads_1_size": { "content": [ 4508 ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:26.778599725" + "timestamp": "2024-12-02T12:56:34.91497" + }, + "trimgalore_lint": { + "content": "daec499818124330ef90e5af47383f00", + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-02T12:56:34.952929" }, "trimgalore_test_pe_reads_1_lines": { "content": "3868fc1caf09367141d2bbf47e158823", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-02T12:56:34.913312" + }, + "fastp_lint": { + "content": "daec499818124330ef90e5af47383f00", + "meta": { + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:26.774975135" + "timestamp": "2024-12-02T12:56:09.943788" }, "fastp_test_pe_reads_2_lines": { "content": "eccf3e9e74589ff01c77fce7f4548e41", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:23:59.997625278" + "timestamp": "2024-12-02T12:56:09.93962" }, "fastp_test_pe_reads_2_size": { "content": [ 4508 ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:00.042449965" + "timestamp": "2024-12-02T12:56:09.940673" }, "trimgalore_test_pe_reads_2_size": { "content": [ 4508 ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:26.841434261" + "timestamp": "2024-12-02T12:56:34.949981" }, "fastp_test_pe_reads_1_lines": { "content": "3868fc1caf09367141d2bbf47e158823", "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:23:59.882844295" + "timestamp": "2024-12-02T12:56:09.887546" }, "trimgalore_read_count": { "content": [ @@ -104,9 +120,9 @@ ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.3" + "nf-test": "0.9.2", + "nextflow": "24.10.2" }, - "timestamp": "2024-07-17T10:24:26.84402498" + "timestamp": "2024-12-02T12:56:34.951137" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/nextflow.config b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/nextflow.config index 9e33e4b33..71f2d0d25 100644 --- a/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/nextflow.config +++ b/subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/tests/nextflow.config @@ -3,6 +3,19 @@ // process { + + withName: 'FQ_LINT_AFTER_TRIMMING' { + ext.prefix = { "${meta.id}.trimmed" } + } + + withName: 'FQ_LINT_AFTER_BBMAP' { + ext.prefix = { "${meta.id}.bbmap" } + } + + withName: 'FQ_LINT_AFTER_SORTMERNA' { + ext.prefix = { "${meta.id}.sortmerna" } + } + withName: 'FQ_SUBSAMPLE' { ext.args = '--record-count 1000000 --seed 1' ext.prefix = { "${meta.id}.subsampled" } diff --git a/tests/.nftignore b/tests/.nftignore index 6d2f0b8a8..7f3fad699 100644 --- a/tests/.nftignore +++ b/tests/.nftignore @@ -1,3 +1,4 @@ +fq_lint/*/*.fq_lint.txt bbsplit/*.stats.txt fastqc/*/*.{html,zip} hisat2/log/*.hisat2.summary.log @@ -12,6 +13,7 @@ star_rsem/*.{genes,isoforms}.results star_rsem/log/*.log star_salmon/log/*.Log.{final.out,out,progress.out} trimgalore/*fastq.gz_trimming_report.txt +umitools/*.umi_extract.log {hisat2,star_rsem,star_salmon}/*.{bam,bam.bai} {hisat2,star_rsem,star_salmon}/bigwig/*.{forward,reverse}.bigWig {hisat2,star_rsem,star_salmon}/dupradar/box_plot/*_duprateExpBoxplot.pdf @@ -30,6 +32,7 @@ trimgalore/*fastq.gz_trimming_report.txt {hisat2,star_rsem,star_salmon}/stringtie/*.ballgown/t_data.ctab {hisat2,star_rsem,star_salmon}/stringtie/*.gene.abundance.txt {hisat2,star_rsem,star_salmon}/stringtie/*.{coverage,transcripts}.gtf +{hisat2,star_rsem,star_salmon}/umitools/genomic_dedup_log/*_UMICollapse.log {multiqc,multiqc/**}/multiqc_report.html {multiqc,multiqc/**}/multiqc_report_data/fastqc_{raw,trimmed}_top_overrepresented_sequences_table.txt {multiqc,multiqc/**}/multiqc_report_data/hisat2_pe_plot.txt @@ -80,6 +83,8 @@ trimgalore/*fastq.gz_trimming_report.txt {salmon,star_rsem,star_salmon}/deseq2_qc/deseq2.sample.dists.txt {salmon,star_rsem,star_salmon}/deseq2_qc/size_factors/*.txt {salmon,star_rsem,star_salmon}/deseq2_qc/size_factors/deseq2.size_factors.RData +{salmon,star_rsem,star_salmon}/umitools/{genomic,transcriptomic}_dedup_log/* +{salmon,star_rsem,star_salmon}/umitools/prepare_for_salmon_log/* {salmon,star_salmon}/*/aux_info/fld.gz {salmon,star_salmon}/*/aux_info/meta_info.json {salmon,star_salmon}/*/libParams/flenDist.txt diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 4165436ac..0fde0cc42 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -1,7 +1,7 @@ { "Params: default - stub": { "content": [ - 22, + 27, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -18,6 +18,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -43,7 +46,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -64,6 +67,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_data", @@ -88,13 +98,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T10:43:40.33664602" + "timestamp": "2024-12-03T12:26:32.825018567" }, "Params: default": { "content": [ - 198, + 213, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -128,6 +138,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -227,7 +240,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -276,6 +289,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -1457,8 +1489,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T10:42:45.202573855" + "timestamp": "2024-12-03T12:39:04.406597796" } } \ No newline at end of file diff --git a/tests/featurecounts_group_type.nf.test.snap b/tests/featurecounts_group_type.nf.test.snap index dfd3f3d2c..c1d285eb5 100644 --- a/tests/featurecounts_group_type.nf.test.snap +++ b/tests/featurecounts_group_type.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --featurecounts_group_type false - stub": { "content": [ - 22, + 27, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -18,6 +18,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -43,7 +46,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -64,6 +67,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_data", @@ -88,13 +98,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T10:54:29.62339584" + "timestamp": "2024-12-03T17:26:42.742119846" }, "Params: --featurecounts_group_type false": { "content": [ - 188, + 203, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -128,6 +138,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -221,7 +234,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -270,6 +283,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -1407,8 +1439,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T10:53:28.969150716" + "timestamp": "2024-12-03T17:25:47.179044158" } } \ No newline at end of file diff --git a/tests/hisat2.nf.test.snap b/tests/hisat2.nf.test.snap index 4b39b7703..3c943fb61 100644 --- a/tests/hisat2.nf.test.snap +++ b/tests/hisat2.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --aligner hisat2 - stub": { "content": [ - 23, + 28, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -18,6 +18,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -44,7 +47,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -65,6 +68,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/hisat2", "multiqc/hisat2/multiqc_data", @@ -89,13 +99,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:01:31.33505759" + "timestamp": "2024-12-03T17:39:53.585492305" }, "Params: --aligner hisat2": { "content": [ - 187, + 202, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -125,6 +135,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -224,7 +237,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -273,6 +286,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "hisat2", "hisat2/RAP1_IAA_30M_REP1.markdup.sorted.bam", "hisat2/RAP1_IAA_30M_REP1.markdup.sorted.bam.bai", @@ -1307,8 +1339,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:00:43.422573373" + "timestamp": "2024-12-03T17:38:50.917761241" } } \ No newline at end of file diff --git a/tests/kallisto.nf.test.snap b/tests/kallisto.nf.test.snap index 8bd57f925..d3a458f5d 100644 --- a/tests/kallisto.nf.test.snap +++ b/tests/kallisto.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --pseudo_aligner kallisto --skip_qc --skip_alignment": { "content": [ - 35, + 50, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -18,6 +18,9 @@ "CUSTOM_TX2GENE": { "python": "3.10.4" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -56,7 +59,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -88,6 +91,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "kallisto", "kallisto/RAP1_IAA_30M_REP1", "kallisto/RAP1_IAA_30M_REP1/abundance.h5", @@ -251,13 +273,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:04:57.579312846" + "timestamp": "2024-12-03T17:48:16.536464395" }, "Params: --pseudo_aligner kallisto --skip_qc --skip_alignment - stub": { "content": [ - 17, + 22, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -271,6 +293,9 @@ "CUSTOM_GETCHROMSIZES": { "getchromsizes": 1.21 }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -294,7 +319,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -304,6 +329,13 @@ "custom/out/genome_transcriptome.gtf", "fastqc", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_plots", @@ -327,8 +359,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:05:54.052864085" + "timestamp": "2024-12-03T17:49:02.306667165" } } \ No newline at end of file diff --git a/tests/min_mapped_reads.nf.test.snap b/tests/min_mapped_reads.nf.test.snap index bc6454c98..e9a85eb85 100644 --- a/tests/min_mapped_reads.nf.test.snap +++ b/tests/min_mapped_reads.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --min_mapped_reads 90": { "content": [ - 152, + 167, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -35,6 +35,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -134,7 +137,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -183,6 +186,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -1173,13 +1195,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:18:04.553985917" + "timestamp": "2024-12-03T17:57:05.836924025" }, "Params: --min_mapped_reads 90 - stub": { "content": [ - 22, + 27, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -1196,6 +1218,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -1221,7 +1246,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -1242,6 +1267,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_data", @@ -1266,8 +1298,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:19:22.443482528" + "timestamp": "2024-12-03T17:57:59.273391037" } } \ No newline at end of file diff --git a/tests/nextflow.config b/tests/nextflow.config index 86b7ac5b4..942f65737 100644 --- a/tests/nextflow.config +++ b/tests/nextflow.config @@ -25,6 +25,10 @@ process { memory = 3.GB time = 2.h } + + withName: 'FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS:FQ_LINT_AFTER_SORTMERNA' { + ext.args = null + } } // Impose same minimum Nextflow version as the pipeline for testing diff --git a/tests/remove_ribo_rna.nf.test.snap b/tests/remove_ribo_rna.nf.test.snap index 0a379aea9..86a609166 100644 --- a/tests/remove_ribo_rna.nf.test.snap +++ b/tests/remove_ribo_rna.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --remove_ribo_rna": { "content": [ - 205, + 225, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -35,6 +35,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -140,7 +143,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -189,6 +192,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -1384,13 +1406,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:36:09.902195192" + "timestamp": "2024-12-03T18:13:03.469655405" }, "Params: --remove_ribo_rna - stub": { "content": [ - 24, + 29, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -1407,6 +1429,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -1435,7 +1460,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -1456,6 +1481,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_data", @@ -1480,8 +1512,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:37:11.90905171" + "timestamp": "2024-12-03T18:13:56.979730403" } } \ No newline at end of file diff --git a/tests/salmon.nf.test.snap b/tests/salmon.nf.test.snap index 1e6827546..fd9043460 100644 --- a/tests/salmon.nf.test.snap +++ b/tests/salmon.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --pseudo_aligner salmon --skip_qc --skip_alignment": { "content": [ - 34, + 49, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -18,6 +18,9 @@ "CUSTOM_TX2GENE": { "python": "3.10.4" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -50,7 +53,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -82,6 +85,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/multiqc_report.html", "multiqc/multiqc_report_data", @@ -327,13 +349,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:41:47.859384178" + "timestamp": "2024-12-03T19:45:33.529844191" }, "Params: --pseudo_aligner salmon --skip_qc --skip_alignment - stub": { "content": [ - 16, + 21, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -347,6 +369,9 @@ "CUSTOM_GETCHROMSIZES": { "getchromsizes": 1.21 }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -367,7 +392,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -377,6 +402,13 @@ "custom/out/genome_transcriptome.gtf", "fastqc", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/multiqc_data", "multiqc/multiqc_plots", @@ -400,8 +432,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:42:36.34114827" + "timestamp": "2024-12-03T19:46:22.63337267" } } \ No newline at end of file diff --git a/tests/skip_qc.nf.test.snap b/tests/skip_qc.nf.test.snap index a07a6dd43..ca881d057 100644 --- a/tests/skip_qc.nf.test.snap +++ b/tests/skip_qc.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --skip_qc - stub": { "content": [ - 17, + 22, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -15,6 +15,9 @@ "CUSTOM_GETCHROMSIZES": { "getchromsizes": 1.21 }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -40,7 +43,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -50,6 +53,13 @@ "custom/out/genome_transcriptome.gtf", "fastqc", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_data", @@ -74,13 +84,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:50:42.323505833" + "timestamp": "2024-12-03T18:20:52.010478721" }, "Params: --skip_qc": { "content": [ - 136, + 151, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -100,6 +110,9 @@ "CUSTOM_TX2GENE": { "python": "3.10.4" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -169,7 +182,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -201,6 +214,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -785,8 +817,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T11:49:49.131172185" + "timestamp": "2024-12-03T18:20:07.800214285" } } \ No newline at end of file diff --git a/tests/skip_trimming.nf.test.snap b/tests/skip_trimming.nf.test.snap index a0bfa97e4..35c14b87d 100644 --- a/tests/skip_trimming.nf.test.snap +++ b/tests/skip_trimming.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --skip_trimming": { "content": [ - 193, + 203, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -35,6 +35,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -130,7 +133,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -162,6 +165,19 @@ "fastqc/raw/WT_REP2_raw_1_fastqc.zip", "fastqc/raw/WT_REP2_raw_2_fastqc.html", "fastqc/raw/WT_REP2_raw_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_salmon", "multiqc/star_salmon/multiqc_report.html", @@ -1255,8 +1271,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-21T20:23:07.88998048" + "timestamp": "2024-12-03T18:28:59.906095781" } } \ No newline at end of file diff --git a/tests/star_rsem.nf.test.snap b/tests/star_rsem.nf.test.snap index 31e9150d8..2b1b7eca7 100644 --- a/tests/star_rsem.nf.test.snap +++ b/tests/star_rsem.nf.test.snap @@ -1,7 +1,7 @@ { "Params: --aligner star_rsem": { "content": [ - 188, + 203, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -35,6 +35,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "FQ_SUBSAMPLE": { "fq": "0.12.0 (2024-07-08)" }, @@ -134,7 +137,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -183,6 +186,25 @@ "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/sortmerna", + "fq_lint/sortmerna/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/sortmerna/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/sortmerna/WT_REP1.fq_lint.txt", + "fq_lint/sortmerna/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_rsem", "multiqc/star_rsem/multiqc_report.html", @@ -1268,13 +1290,13 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T12:16:02.205058346" + "timestamp": "2024-12-03T18:37:23.242230621" }, "Params: --aligner star_rsem - stub": { "content": [ - 22, + 27, { "BBMAP_BBSPLIT": { "bbmap": 39.1 @@ -1291,6 +1313,9 @@ "FASTQC": { "fastqc": "0.12.1" }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, "GTF2BED": { "perl": "5.26.2" }, @@ -1314,7 +1339,7 @@ "untar": 1.34 }, "Workflow": { - "nf-core/rnaseq": "v3.17.0" + "nf-core/rnaseq": "v3.18.0dev" } }, [ @@ -1335,6 +1360,13 @@ "fastqc/raw/WT_REP2_raw.html", "fastqc/raw/WT_REP2_raw.zip", "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", "multiqc", "multiqc/star_rsem", "multiqc/star_rsem/multiqc_data", @@ -1359,8 +1391,8 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.4" + "nextflow": "24.10.2" }, - "timestamp": "2024-10-23T12:17:33.292700445" + "timestamp": "2024-12-03T18:38:21.04782292" } } \ No newline at end of file diff --git a/tests/umi.nf.test b/tests/umi.nf.test new file mode 100644 index 000000000..dba4c07fe --- /dev/null +++ b/tests/umi.nf.test @@ -0,0 +1,110 @@ +nextflow_pipeline { + + name "Test pipeline with dummy UMI settings" + script "../main.nf" + + test("Params: --aligner hisat2 --umi_dedup_tool 'umicollapse'") { + + when { + params { + with_umi = true + umitools_extract_method = "regex" + umitools_bc_pattern = "^(?PCGA.{8}){s<=2}.*" + umitools_dedup_stats = true + skip_bbsplit = true + umi_dedup_tool = 'umicollapse' + aligner = 'hisat2' + outdir = "$outputDir" + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions + removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } + + test("--umi_dedup_tool 'umitools'") { + + when { + params { + with_umi = true + umitools_extract_method = "regex" + umitools_bc_pattern = "^(?PCGA.{8}){s<=2}.*" + umitools_dedup_stats = true + skip_bbsplit = true + outdir = "$outputDir" + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions + removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } + + test("--umi_dedup_tool 'umitools - stub") { + + options "-stub" + + when { + params { + with_umi = true + umitools_extract_method = "regex" + umitools_bc_pattern = "^(?PCGA.{8}){s<=2}.*" + umitools_dedup_stats = true + outdir = "$outputDir" + } + } + + then { + // stable_name: All files + folders in ${params.outdir}/ with a stable name + def stable_name = getAllFilesFromDir(params.outdir, relative: true, includeDir: true, ignore: ['pipeline_info/*.{html,json,txt}']) + // stable_path: All files in ${params.outdir}/ with stable content + def stable_path = getAllFilesFromDir(params.outdir, ignoreFile: 'tests/.nftignore') + assertAll( + { assert workflow.success}, + { assert snapshot( + // Number of successful tasks + workflow.trace.succeeded().size(), + // pipeline versions.yml file for multiqc from which Nextflow version is removed because we tests pipelines on multiple Nextflow versions + removeNextflowVersion("$outputDir/pipeline_info/nf_core_rnaseq_software_mqc_versions.yml"), + // All stable path name, with a relative path + stable_name, + // All files with stable contents + stable_path + ).match() } + ) + } + } +} diff --git a/tests/umi.nf.test.snap b/tests/umi.nf.test.snap new file mode 100644 index 000000000..fd8700918 --- /dev/null +++ b/tests/umi.nf.test.snap @@ -0,0 +1,2812 @@ +{ + "--umi_dedup_tool 'umitools'": { + "content": [ + 265, + { + "BEDTOOLS_GENOMECOV_FW": { + "bedtools": "2.31.1" + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": "3.12.2" + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "CUSTOM_TX2GENE": { + "python": "3.10.4" + }, + "DESEQ2_QC_PSEUDO": { + "r-base": "4.0.3", + "bioconductor-deseq2": "1.28.0" + }, + "DESEQ2_QC_STAR_SALMON": { + "r-base": "4.0.3", + "bioconductor-deseq2": "1.28.0" + }, + "DUPRADAR": { + "bioconductor-dupradar": "1.32.0" + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "FQ_SUBSAMPLE": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.1 + }, + "GUNZIP_GTF": { + "gunzip": 1.1 + }, + "MULTIQC_CUSTOM_BIOTYPE": { + "python": "3.9.5" + }, + "QUALIMAP_RNASEQ": { + "qualimap": 2.3 + }, + "RSEQC_BAMSTAT": { + "rseqc": "5.0.2" + }, + "RSEQC_INFEREXPERIMENT": { + "rseqc": "5.0.2" + }, + "RSEQC_INNERDISTANCE": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONANNOTATION": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONSATURATION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDISTRIBUTION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDUPLICATION": { + "rseqc": "5.0.2" + }, + "SALMON_QUANT": { + "salmon": "1.10.3" + }, + "SAMTOOLS_FLAGSTAT": { + "samtools": 1.21 + }, + "SAMTOOLS_IDXSTATS": { + "samtools": 1.21 + }, + "SAMTOOLS_INDEX": { + "samtools": 1.21 + }, + "SAMTOOLS_SORT": { + "samtools": 1.21 + }, + "SAMTOOLS_STATS": { + "samtools": 1.21 + }, + "SE_GENE": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "STAR_ALIGN": { + "star": "2.7.11b", + "samtools": 1.2, + "gawk": "5.1.0" + }, + "STAR_GENOMEGENERATE": { + "star": "2.7.11b", + "samtools": 1.2, + "gawk": "5.1.0" + }, + "STRINGTIE_STRINGTIE": { + "stringtie": "2.2.3" + }, + "SUBREAD_FEATURECOUNTS": { + "subread": "2.0.6" + }, + "TRIMGALORE": { + "trimgalore": "0.6.10", + "cutadapt": 4.9 + }, + "TXIMETA_TXIMPORT": { + "bioconductor-tximeta": "1.20.1" + }, + "UCSC_BEDCLIP": { + "ucsc": 377 + }, + "UCSC_BEDGRAPHTOBIGWIG": { + "ucsc": 469 + }, + "UMITOOLS_DEDUP": { + "umitools": "1.1.5" + }, + "UMITOOLS_EXTRACT": { + "umitools": "1.1.5" + }, + "UMITOOLS_PREPAREFORRSEM": { + "umitools": "1.1.5" + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + }, + "Workflow": { + "nf-core/rnaseq": "v3.18.0dev" + } + }, + [ + "custom", + "custom/out", + "custom/out/genome_gfp.fasta", + "custom/out/genome_gfp.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.zip", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.zip", + "fastqc/raw/WT_REP1_raw_1_fastqc.html", + "fastqc/raw/WT_REP1_raw_1_fastqc.zip", + "fastqc/raw/WT_REP1_raw_2_fastqc.html", + "fastqc/raw/WT_REP1_raw_2_fastqc.zip", + "fastqc/raw/WT_REP2_raw_1_fastqc.html", + "fastqc/raw/WT_REP2_raw_1_fastqc.zip", + "fastqc/raw/WT_REP2_raw_2_fastqc.html", + "fastqc/raw/WT_REP2_raw_2_fastqc.zip", + "fastqc/trim", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_salmon", + "multiqc/star_salmon/multiqc_report.html", + "multiqc/star_salmon/multiqc_report_data", + "multiqc/star_salmon/multiqc_report_data/cutadapt_filtered_reads_plot.txt", + "multiqc/star_salmon/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw-status-check-heatmap.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_adapter_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_overrepresented_sequences_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_base_n_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_base_sequence_quality_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_per_sequence_quality_scores_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_sequence_counts_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_sequence_duplication_levels_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_raw_top_overrepresented_sequences_table.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed-status-check-heatmap.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_overrepresented_sequences_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_base_n_content_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_base_sequence_quality_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_per_sequence_quality_scores_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", + "multiqc/star_salmon/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/star_salmon/multiqc_report_data/junction_saturation_known.txt", + "multiqc/star_salmon/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc.log", + "multiqc/star_salmon/multiqc_report_data/multiqc_citations.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_cutadapt.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_data.json", + "multiqc/star_salmon/multiqc_report_data/multiqc_dupradar.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fail_strand_check_table.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fastqc_fastqc_raw.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_fastqc_fastqc_trimmed.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_featurecounts_biotype_plot.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_general_stats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_bam_stat.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_infer_experiment.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_rseqc_read_distribution.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_salmon.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_1.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_2.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sample-relationships_3.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_flagstat.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_idxstats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_samtools_stats.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_software_versions.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_sources.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_star.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_umitools_dedup.txt", + "multiqc/star_salmon/multiqc_report_data/multiqc_umitools_extract.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_gene_coverage_profile_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_gene_coverage_profile_Normalised.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_genomic_origin.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_rnaseq_cov_hist.txt", + "multiqc/star_salmon/multiqc_report_data/qualimap_rnaseq_genome_results.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_bam_stat.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_infer_experiment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance_plot_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_inner_distance_plot_Percentages.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Events.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_all.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_All_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_Known_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_junction_saturation_plot_Novel_Junctions.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_distribution_plot.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_dups.txt", + "multiqc/star_salmon/multiqc_report_data/rseqc_read_dups_plot.txt", + "multiqc/star_salmon/multiqc_report_data/salmon_plot.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-flagstat-dp_Percentage_of_total.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-flagstat-dp_Read_counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Raw_Counts.txt", + "multiqc/star_salmon/multiqc_report_data/samtools-stats-dp.txt", + "multiqc/star_salmon/multiqc_report_data/samtools_alignment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/star_alignment_plot.txt", + "multiqc/star_salmon/multiqc_report_data/star_summary_table.txt", + "multiqc/star_salmon/multiqc_report_data/umitools_deduplication_barplot.txt", + "multiqc/star_salmon/multiqc_report_data/umitools_stats_violin.txt", + "multiqc/star_salmon/multiqc_report_plots", + "multiqc/star_salmon/multiqc_report_plots/pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Obs_Exp.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/dupradar.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fail_strand_check_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw-status-check-heatmap.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_adapter_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_overrepresented_sequences_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_base_n_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_base_sequence_quality_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_per_sequence_quality_scores_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_sequence_duplication_levels_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_raw_top_overrepresented_sequences_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed-status-check-heatmap.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_overrepresented_sequences_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_base_n_content_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_base_sequence_quality_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_quality_scores_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_sequence_duplication_levels_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/fastqc_trimmed_top_overrepresented_sequences_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/featurecounts_biotype_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/featurecounts_biotype_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/general_stats_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Normalised.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_genomic_origin-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/qualimap_genomic_origin-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_bam_stat.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_infer_experiment_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Percentages.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_All_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Known_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Novel_Junctions.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/salmon_plot.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/sample-relationships.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-dp_Percentage_of_total.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-flagstat-dp_Read_counts.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools-stats-dp.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_alignment_plot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/star_summary_table.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/umitools_deduplication_barplot-cnt.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/umitools_deduplication_barplot-pct.pdf", + "multiqc/star_salmon/multiqc_report_plots/pdf/umitools_stats_violin.pdf", + "multiqc/star_salmon/multiqc_report_plots/png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Obs_Exp.png", + "multiqc/star_salmon/multiqc_report_plots/png/dupradar.png", + "multiqc/star_salmon/multiqc_report_plots/png/fail_strand_check_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw-status-check-heatmap.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_adapter_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_overrepresented_sequences_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_base_n_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_base_sequence_quality_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_per_sequence_quality_scores_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_sequence_duplication_levels_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_raw_top_overrepresented_sequences_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed-status-check-heatmap.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_overrepresented_sequences_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_base_n_content_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_base_sequence_quality_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_per_sequence_quality_scores_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_sequence_duplication_levels_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/fastqc_trimmed_top_overrepresented_sequences_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/featurecounts_biotype_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/featurecounts_biotype_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/general_stats_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_gene_coverage_profile_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_gene_coverage_profile_Normalised.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_genomic_origin-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/qualimap_genomic_origin-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_bam_stat.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_infer_experiment_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_inner_distance_plot_Counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_inner_distance_plot_Percentages.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_All_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_Known_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_junction_saturation_plot_Novel_Junctions.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/salmon_plot.png", + "multiqc/star_salmon/multiqc_report_plots/png/sample-relationships.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-dp_Percentage_of_total.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-flagstat-dp_Read_counts.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools-stats-dp.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/samtools_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_alignment_plot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/star_summary_table.png", + "multiqc/star_salmon/multiqc_report_plots/png/umitools_deduplication_barplot-cnt.png", + "multiqc/star_salmon/multiqc_report_plots/png/umitools_deduplication_barplot-pct.png", + "multiqc/star_salmon/multiqc_report_plots/png/umitools_stats_violin.png", + "multiqc/star_salmon/multiqc_report_plots/svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Obs_Exp.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/dupradar.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fail_strand_check_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw-status-check-heatmap.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_adapter_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_overrepresented_sequences_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_base_n_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_base_sequence_quality_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_per_sequence_quality_scores_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_sequence_duplication_levels_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_raw_top_overrepresented_sequences_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed-status-check-heatmap.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_overrepresented_sequences_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_base_n_content_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_base_sequence_quality_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_quality_scores_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_sequence_duplication_levels_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/fastqc_trimmed_top_overrepresented_sequences_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/featurecounts_biotype_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/featurecounts_biotype_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/general_stats_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Normalised.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_genomic_origin-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/qualimap_genomic_origin-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_bam_stat.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_infer_experiment_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_inner_distance_plot_Counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_inner_distance_plot_Percentages.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_All_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Known_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Novel_Junctions.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/salmon_plot.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/sample-relationships.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-dp_Percentage_of_total.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-flagstat-dp_Read_counts.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools-stats-dp.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_alignment_plot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/star_summary_table.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/umitools_deduplication_barplot-cnt.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/umitools_deduplication_barplot-pct.svg", + "multiqc/star_salmon/multiqc_report_plots/svg/umitools_stats_violin.svg", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "salmon", + "salmon/RAP1_IAA_30M_REP1", + "salmon/RAP1_IAA_30M_REP1/aux_info", + "salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "salmon/RAP1_IAA_30M_REP1/libParams", + "salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "salmon/RAP1_IAA_30M_REP1/lib_format_counts.json", + "salmon/RAP1_IAA_30M_REP1/logs", + "salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "salmon/RAP1_IAA_30M_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP1", + "salmon/RAP1_UNINDUCED_REP1/aux_info", + "salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP1/libParams", + "salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP1/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP1/logs", + "salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP2", + "salmon/RAP1_UNINDUCED_REP2/aux_info", + "salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP2/libParams", + "salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP2/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP2/logs", + "salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP2/quant.sf", + "salmon/WT_REP1", + "salmon/WT_REP1/aux_info", + "salmon/WT_REP1/aux_info/ambig_info.tsv", + "salmon/WT_REP1/aux_info/expected_bias.gz", + "salmon/WT_REP1/aux_info/fld.gz", + "salmon/WT_REP1/aux_info/meta_info.json", + "salmon/WT_REP1/aux_info/observed_bias.gz", + "salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "salmon/WT_REP1/cmd_info.json", + "salmon/WT_REP1/libParams", + "salmon/WT_REP1/libParams/flenDist.txt", + "salmon/WT_REP1/lib_format_counts.json", + "salmon/WT_REP1/logs", + "salmon/WT_REP1/logs/salmon_quant.log", + "salmon/WT_REP1/quant.genes.sf", + "salmon/WT_REP1/quant.sf", + "salmon/WT_REP2", + "salmon/WT_REP2/aux_info", + "salmon/WT_REP2/aux_info/ambig_info.tsv", + "salmon/WT_REP2/aux_info/expected_bias.gz", + "salmon/WT_REP2/aux_info/fld.gz", + "salmon/WT_REP2/aux_info/meta_info.json", + "salmon/WT_REP2/aux_info/observed_bias.gz", + "salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "salmon/WT_REP2/cmd_info.json", + "salmon/WT_REP2/libParams", + "salmon/WT_REP2/libParams/flenDist.txt", + "salmon/WT_REP2/lib_format_counts.json", + "salmon/WT_REP2/logs", + "salmon/WT_REP2/logs/salmon_quant.log", + "salmon/WT_REP2/quant.genes.sf", + "salmon/WT_REP2/quant.sf", + "salmon/deseq2_qc", + "salmon/deseq2_qc/R_sessionInfo.log", + "salmon/deseq2_qc/deseq2.dds.RData", + "salmon/deseq2_qc/deseq2.pca.vals.txt", + "salmon/deseq2_qc/deseq2.plots.pdf", + "salmon/deseq2_qc/deseq2.sample.dists.txt", + "salmon/deseq2_qc/size_factors", + "salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "salmon/deseq2_qc/size_factors/WT_REP1.txt", + "salmon/deseq2_qc/size_factors/WT_REP2.txt", + "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene_counts.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts.tsv", + "salmon/salmon.merged.gene_counts_length_scaled.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts_length_scaled.tsv", + "salmon/salmon.merged.gene_counts_scaled.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts_scaled.tsv", + "salmon/salmon.merged.gene_lengths.tsv", + "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript_counts.SummarizedExperiment.rds", + "salmon/salmon.merged.transcript_counts.tsv", + "salmon/salmon.merged.transcript_lengths.tsv", + "salmon/salmon.merged.transcript_tpm.tsv", + "salmon/tx2gene.tsv", + "star_salmon", + "star_salmon/RAP1_IAA_30M_REP1", + "star_salmon/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam", + "star_salmon/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.bai", + "star_salmon/RAP1_IAA_30M_REP1/aux_info", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "star_salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "star_salmon/RAP1_IAA_30M_REP1/libParams", + "star_salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "star_salmon/RAP1_IAA_30M_REP1/logs", + "star_salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "star_salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "star_salmon/RAP1_IAA_30M_REP1/quant.sf", + "star_salmon/RAP1_UNINDUCED_REP1", + "star_salmon/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam", + "star_salmon/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.bai", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "star_salmon/RAP1_UNINDUCED_REP1/libParams", + "star_salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "star_salmon/RAP1_UNINDUCED_REP1/logs", + "star_salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "star_salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "star_salmon/RAP1_UNINDUCED_REP1/quant.sf", + "star_salmon/RAP1_UNINDUCED_REP2", + "star_salmon/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam", + "star_salmon/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.bai", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "star_salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "star_salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "star_salmon/RAP1_UNINDUCED_REP2/libParams", + "star_salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "star_salmon/RAP1_UNINDUCED_REP2/logs", + "star_salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "star_salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "star_salmon/RAP1_UNINDUCED_REP2/quant.sf", + "star_salmon/WT_REP1", + "star_salmon/WT_REP1.umi_dedup.sorted.bam", + "star_salmon/WT_REP1.umi_dedup.sorted.bam.bai", + "star_salmon/WT_REP1/aux_info", + "star_salmon/WT_REP1/aux_info/ambig_info.tsv", + "star_salmon/WT_REP1/aux_info/expected_bias.gz", + "star_salmon/WT_REP1/aux_info/fld.gz", + "star_salmon/WT_REP1/aux_info/meta_info.json", + "star_salmon/WT_REP1/aux_info/observed_bias.gz", + "star_salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "star_salmon/WT_REP1/cmd_info.json", + "star_salmon/WT_REP1/libParams", + "star_salmon/WT_REP1/libParams/flenDist.txt", + "star_salmon/WT_REP1/logs", + "star_salmon/WT_REP1/logs/salmon_quant.log", + "star_salmon/WT_REP1/quant.genes.sf", + "star_salmon/WT_REP1/quant.sf", + "star_salmon/WT_REP2", + "star_salmon/WT_REP2.umi_dedup.sorted.bam", + "star_salmon/WT_REP2.umi_dedup.sorted.bam.bai", + "star_salmon/WT_REP2/aux_info", + "star_salmon/WT_REP2/aux_info/ambig_info.tsv", + "star_salmon/WT_REP2/aux_info/expected_bias.gz", + "star_salmon/WT_REP2/aux_info/fld.gz", + "star_salmon/WT_REP2/aux_info/meta_info.json", + "star_salmon/WT_REP2/aux_info/observed_bias.gz", + "star_salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "star_salmon/WT_REP2/cmd_info.json", + "star_salmon/WT_REP2/libParams", + "star_salmon/WT_REP2/libParams/flenDist.txt", + "star_salmon/WT_REP2/logs", + "star_salmon/WT_REP2/logs/salmon_quant.log", + "star_salmon/WT_REP2/quant.genes.sf", + "star_salmon/WT_REP2/quant.sf", + "star_salmon/bigwig", + "star_salmon/bigwig/RAP1_IAA_30M_REP1.forward.bigWig", + "star_salmon/bigwig/RAP1_IAA_30M_REP1.reverse.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP1.forward.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP1.reverse.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP2.forward.bigWig", + "star_salmon/bigwig/RAP1_UNINDUCED_REP2.reverse.bigWig", + "star_salmon/bigwig/WT_REP1.forward.bigWig", + "star_salmon/bigwig/WT_REP1.reverse.bigWig", + "star_salmon/bigwig/WT_REP2.forward.bigWig", + "star_salmon/bigwig/WT_REP2.reverse.bigWig", + "star_salmon/deseq2_qc", + "star_salmon/deseq2_qc/R_sessionInfo.log", + "star_salmon/deseq2_qc/deseq2.dds.RData", + "star_salmon/deseq2_qc/deseq2.pca.vals.txt", + "star_salmon/deseq2_qc/deseq2.plots.pdf", + "star_salmon/deseq2_qc/deseq2.sample.dists.txt", + "star_salmon/deseq2_qc/size_factors", + "star_salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "star_salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "star_salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "star_salmon/deseq2_qc/size_factors/WT_REP1.txt", + "star_salmon/deseq2_qc/size_factors/WT_REP2.txt", + "star_salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "star_salmon/dupradar", + "star_salmon/dupradar/box_plot", + "star_salmon/dupradar/box_plot/RAP1_IAA_30M_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/RAP1_UNINDUCED_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/RAP1_UNINDUCED_REP2_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/WT_REP1_duprateExpBoxplot.pdf", + "star_salmon/dupradar/box_plot/WT_REP2_duprateExpBoxplot.pdf", + "star_salmon/dupradar/gene_data", + "star_salmon/dupradar/gene_data/RAP1_IAA_30M_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/RAP1_UNINDUCED_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/RAP1_UNINDUCED_REP2_dupMatrix.txt", + "star_salmon/dupradar/gene_data/WT_REP1_dupMatrix.txt", + "star_salmon/dupradar/gene_data/WT_REP2_dupMatrix.txt", + "star_salmon/dupradar/histogram", + "star_salmon/dupradar/histogram/RAP1_IAA_30M_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/RAP1_UNINDUCED_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/RAP1_UNINDUCED_REP2_expressionHist.pdf", + "star_salmon/dupradar/histogram/WT_REP1_expressionHist.pdf", + "star_salmon/dupradar/histogram/WT_REP2_expressionHist.pdf", + "star_salmon/dupradar/intercepts_slope", + "star_salmon/dupradar/intercepts_slope/RAP1_IAA_30M_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/RAP1_UNINDUCED_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/RAP1_UNINDUCED_REP2_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/WT_REP1_intercept_slope.txt", + "star_salmon/dupradar/intercepts_slope/WT_REP2_intercept_slope.txt", + "star_salmon/dupradar/scatter_plot", + "star_salmon/dupradar/scatter_plot/RAP1_IAA_30M_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/RAP1_UNINDUCED_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/RAP1_UNINDUCED_REP2_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/WT_REP1_duprateExpDens.pdf", + "star_salmon/dupradar/scatter_plot/WT_REP2_duprateExpDens.pdf", + "star_salmon/featurecounts", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.featureCounts.txt", + "star_salmon/featurecounts/RAP1_IAA_30M_REP1.featureCounts.txt.summary", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.txt", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.txt.summary", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.txt", + "star_salmon/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.txt.summary", + "star_salmon/featurecounts/WT_REP1.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/WT_REP1.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/WT_REP1.featureCounts.txt", + "star_salmon/featurecounts/WT_REP1.featureCounts.txt.summary", + "star_salmon/featurecounts/WT_REP2.biotype_counts_mqc.tsv", + "star_salmon/featurecounts/WT_REP2.biotype_counts_rrna_mqc.tsv", + "star_salmon/featurecounts/WT_REP2.featureCounts.txt", + "star_salmon/featurecounts/WT_REP2.featureCounts.txt.summary", + "star_salmon/log", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.final.out", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.out", + "star_salmon/log/RAP1_IAA_30M_REP1.Log.progress.out", + "star_salmon/log/RAP1_IAA_30M_REP1.SJ.out.tab", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.final.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.Log.progress.out", + "star_salmon/log/RAP1_UNINDUCED_REP1.SJ.out.tab", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.final.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.Log.progress.out", + "star_salmon/log/RAP1_UNINDUCED_REP2.SJ.out.tab", + "star_salmon/log/WT_REP1.Log.final.out", + "star_salmon/log/WT_REP1.Log.out", + "star_salmon/log/WT_REP1.Log.progress.out", + "star_salmon/log/WT_REP1.SJ.out.tab", + "star_salmon/log/WT_REP2.Log.final.out", + "star_salmon/log/WT_REP2.Log.out", + "star_salmon/log/WT_REP2.Log.progress.out", + "star_salmon/log/WT_REP2.SJ.out.tab", + "star_salmon/qualimap", + "star_salmon/qualimap/RAP1_IAA_30M_REP1", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/agogo.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/basic.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/bgfooter.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/bgtop.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment-bright.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment-close.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/comment.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/doctools.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/down-pressed.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/down.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/file.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/jquery.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/minus.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/plus.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/pygments.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/report.css", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/searchtools.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/underscore.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/up-pressed.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/up.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/css/websupport.js", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/qualimapReport.html", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_IAA_30M_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/agogo.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/basic.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/bgfooter.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/bgtop.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment-bright.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment-close.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/comment.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/doctools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/down-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/down.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/file.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/jquery.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/minus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/plus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/pygments.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/report.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/searchtools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/underscore.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/up-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/up.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/css/websupport.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/qualimapReport.html", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/agogo.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/ajax-loader.gif", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/basic.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/bgfooter.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/bgtop.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment-bright.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment-close.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/comment.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/doctools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/down-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/down.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/file.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/jquery.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/minus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/plus.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/pygments.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/qualimap_logo_small.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/report.css", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/searchtools.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/underscore.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/up-pressed.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/up.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/css/websupport.js", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/qualimapReport.html", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/RAP1_UNINDUCED_REP2/rnaseq_qc_results.txt", + "star_salmon/qualimap/WT_REP1", + "star_salmon/qualimap/WT_REP1/css", + "star_salmon/qualimap/WT_REP1/css/agogo.css", + "star_salmon/qualimap/WT_REP1/css/ajax-loader.gif", + "star_salmon/qualimap/WT_REP1/css/basic.css", + "star_salmon/qualimap/WT_REP1/css/bgfooter.png", + "star_salmon/qualimap/WT_REP1/css/bgtop.png", + "star_salmon/qualimap/WT_REP1/css/comment-bright.png", + "star_salmon/qualimap/WT_REP1/css/comment-close.png", + "star_salmon/qualimap/WT_REP1/css/comment.png", + "star_salmon/qualimap/WT_REP1/css/doctools.js", + "star_salmon/qualimap/WT_REP1/css/down-pressed.png", + "star_salmon/qualimap/WT_REP1/css/down.png", + "star_salmon/qualimap/WT_REP1/css/file.png", + "star_salmon/qualimap/WT_REP1/css/jquery.js", + "star_salmon/qualimap/WT_REP1/css/minus.png", + "star_salmon/qualimap/WT_REP1/css/plus.png", + "star_salmon/qualimap/WT_REP1/css/pygments.css", + "star_salmon/qualimap/WT_REP1/css/qualimap_logo_small.png", + "star_salmon/qualimap/WT_REP1/css/report.css", + "star_salmon/qualimap/WT_REP1/css/searchtools.js", + "star_salmon/qualimap/WT_REP1/css/underscore.js", + "star_salmon/qualimap/WT_REP1/css/up-pressed.png", + "star_salmon/qualimap/WT_REP1/css/up.png", + "star_salmon/qualimap/WT_REP1/css/websupport.js", + "star_salmon/qualimap/WT_REP1/images_qualimapReport", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/WT_REP1/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/WT_REP1/qualimapReport.html", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/WT_REP1/rnaseq_qc_results.txt", + "star_salmon/qualimap/WT_REP2", + "star_salmon/qualimap/WT_REP2/css", + "star_salmon/qualimap/WT_REP2/css/agogo.css", + "star_salmon/qualimap/WT_REP2/css/ajax-loader.gif", + "star_salmon/qualimap/WT_REP2/css/basic.css", + "star_salmon/qualimap/WT_REP2/css/bgfooter.png", + "star_salmon/qualimap/WT_REP2/css/bgtop.png", + "star_salmon/qualimap/WT_REP2/css/comment-bright.png", + "star_salmon/qualimap/WT_REP2/css/comment-close.png", + "star_salmon/qualimap/WT_REP2/css/comment.png", + "star_salmon/qualimap/WT_REP2/css/doctools.js", + "star_salmon/qualimap/WT_REP2/css/down-pressed.png", + "star_salmon/qualimap/WT_REP2/css/down.png", + "star_salmon/qualimap/WT_REP2/css/file.png", + "star_salmon/qualimap/WT_REP2/css/jquery.js", + "star_salmon/qualimap/WT_REP2/css/minus.png", + "star_salmon/qualimap/WT_REP2/css/plus.png", + "star_salmon/qualimap/WT_REP2/css/pygments.css", + "star_salmon/qualimap/WT_REP2/css/qualimap_logo_small.png", + "star_salmon/qualimap/WT_REP2/css/report.css", + "star_salmon/qualimap/WT_REP2/css/searchtools.js", + "star_salmon/qualimap/WT_REP2/css/underscore.js", + "star_salmon/qualimap/WT_REP2/css/up-pressed.png", + "star_salmon/qualimap/WT_REP2/css/up.png", + "star_salmon/qualimap/WT_REP2/css/websupport.js", + "star_salmon/qualimap/WT_REP2/images_qualimapReport", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Junction Analysis.png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Reads Genomic Origin.png", + "star_salmon/qualimap/WT_REP2/images_qualimapReport/Transcript coverage histogram.png", + "star_salmon/qualimap/WT_REP2/qualimapReport.html", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "star_salmon/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "star_salmon/qualimap/WT_REP2/rnaseq_qc_results.txt", + "star_salmon/rseqc", + "star_salmon/rseqc/bam_stat", + "star_salmon/rseqc/bam_stat/RAP1_IAA_30M_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/RAP1_UNINDUCED_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/RAP1_UNINDUCED_REP2.bam_stat.txt", + "star_salmon/rseqc/bam_stat/WT_REP1.bam_stat.txt", + "star_salmon/rseqc/bam_stat/WT_REP2.bam_stat.txt", + "star_salmon/rseqc/infer_experiment", + "star_salmon/rseqc/infer_experiment/RAP1_IAA_30M_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/RAP1_UNINDUCED_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/RAP1_UNINDUCED_REP2.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/WT_REP1.infer_experiment.txt", + "star_salmon/rseqc/infer_experiment/WT_REP2.infer_experiment.txt", + "star_salmon/rseqc/inner_distance", + "star_salmon/rseqc/inner_distance/pdf", + "star_salmon/rseqc/inner_distance/pdf/RAP1_IAA_30M_REP1.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/pdf/WT_REP1.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/pdf/WT_REP2.inner_distance_plot.pdf", + "star_salmon/rseqc/inner_distance/rscript", + "star_salmon/rseqc/inner_distance/rscript/RAP1_IAA_30M_REP1.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/rscript/WT_REP1.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/rscript/WT_REP2.inner_distance_plot.r", + "star_salmon/rseqc/inner_distance/txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_mean.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP1.inner_distance_mean.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance_freq.txt", + "star_salmon/rseqc/inner_distance/txt/WT_REP2.inner_distance_mean.txt", + "star_salmon/rseqc/junction_annotation", + "star_salmon/rseqc/junction_annotation/bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP1.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP1.junction.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP2.junction.Interact.bed", + "star_salmon/rseqc/junction_annotation/bed/WT_REP2.junction.bed", + "star_salmon/rseqc/junction_annotation/log", + "star_salmon/rseqc/junction_annotation/log/RAP1_IAA_30M_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP2.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/WT_REP1.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/log/WT_REP2.junction_annotation.log", + "star_salmon/rseqc/junction_annotation/pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP1.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP1.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP2.splice_events.pdf", + "star_salmon/rseqc/junction_annotation/pdf/WT_REP2.splice_junction.pdf", + "star_salmon/rseqc/junction_annotation/rscript", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_IAA_30M_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP2.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/WT_REP1.junction_plot.r", + "star_salmon/rseqc/junction_annotation/rscript/WT_REP2.junction_plot.r", + "star_salmon/rseqc/junction_annotation/xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_IAA_30M_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP2.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/WT_REP1.junction.xls", + "star_salmon/rseqc/junction_annotation/xls/WT_REP2.junction.xls", + "star_salmon/rseqc/junction_saturation", + "star_salmon/rseqc/junction_saturation/pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_IAA_30M_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP2.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/WT_REP1.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/pdf/WT_REP2.junctionSaturation_plot.pdf", + "star_salmon/rseqc/junction_saturation/rscript", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_IAA_30M_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP2.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/WT_REP1.junctionSaturation_plot.r", + "star_salmon/rseqc/junction_saturation/rscript/WT_REP2.junctionSaturation_plot.r", + "star_salmon/rseqc/read_distribution", + "star_salmon/rseqc/read_distribution/RAP1_IAA_30M_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/RAP1_UNINDUCED_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/RAP1_UNINDUCED_REP2.read_distribution.txt", + "star_salmon/rseqc/read_distribution/WT_REP1.read_distribution.txt", + "star_salmon/rseqc/read_distribution/WT_REP2.read_distribution.txt", + "star_salmon/rseqc/read_duplication", + "star_salmon/rseqc/read_duplication/pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_IAA_30M_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP2.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/WT_REP1.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/pdf/WT_REP2.DupRate_plot.pdf", + "star_salmon/rseqc/read_duplication/rscript", + "star_salmon/rseqc/read_duplication/rscript/RAP1_IAA_30M_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP2.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/WT_REP1.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/rscript/WT_REP2.DupRate_plot.r", + "star_salmon/rseqc/read_duplication/xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP1.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", + "star_salmon/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", + "star_salmon/salmon.merged.gene_counts.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene_counts.tsv", + "star_salmon/salmon.merged.gene_counts_length_scaled.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene_counts_length_scaled.tsv", + "star_salmon/salmon.merged.gene_counts_scaled.SummarizedExperiment.rds", + "star_salmon/salmon.merged.gene_counts_scaled.tsv", + "star_salmon/salmon.merged.gene_lengths.tsv", + "star_salmon/salmon.merged.gene_tpm.tsv", + "star_salmon/salmon.merged.transcript_counts.SummarizedExperiment.rds", + "star_salmon/salmon.merged.transcript_counts.tsv", + "star_salmon/salmon.merged.transcript_lengths.tsv", + "star_salmon/salmon.merged.transcript_tpm.tsv", + "star_salmon/samtools_stats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.stats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted.bam.flagstat", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted.bam.idxstats", + "star_salmon/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP1.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.transcriptome.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.transcriptome.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP1.umi_dedup.transcriptome.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP2.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.sorted.bam.stats", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.transcriptome.sorted.bam.flagstat", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.transcriptome.sorted.bam.idxstats", + "star_salmon/samtools_stats/WT_REP2.umi_dedup.transcriptome.sorted.bam.stats", + "star_salmon/stringtie", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.coverage.gtf", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.gene.abundance.txt", + "star_salmon/stringtie/RAP1_IAA_30M_REP1.transcripts.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.coverage.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.gene.abundance.txt", + "star_salmon/stringtie/RAP1_UNINDUCED_REP1.transcripts.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/e2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/e_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/i2t.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/i_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.ballgown/t_data.ctab", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.coverage.gtf", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.gene.abundance.txt", + "star_salmon/stringtie/RAP1_UNINDUCED_REP2.transcripts.gtf", + "star_salmon/stringtie/WT_REP1.ballgown", + "star_salmon/stringtie/WT_REP1.ballgown/e2t.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/e_data.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/i2t.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/i_data.ctab", + "star_salmon/stringtie/WT_REP1.ballgown/t_data.ctab", + "star_salmon/stringtie/WT_REP1.coverage.gtf", + "star_salmon/stringtie/WT_REP1.gene.abundance.txt", + "star_salmon/stringtie/WT_REP1.transcripts.gtf", + "star_salmon/stringtie/WT_REP2.ballgown", + "star_salmon/stringtie/WT_REP2.ballgown/e2t.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/e_data.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/i2t.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/i_data.ctab", + "star_salmon/stringtie/WT_REP2.ballgown/t_data.ctab", + "star_salmon/stringtie/WT_REP2.coverage.gtf", + "star_salmon/stringtie/WT_REP2.gene.abundance.txt", + "star_salmon/stringtie/WT_REP2.transcripts.gtf", + "star_salmon/tx2gene.tsv", + "star_salmon/umitools", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_edit_distance.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_per_umi.tsv", + "star_salmon/umitools/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.sorted_edit_distance.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.sorted_per_umi.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv", + "star_salmon/umitools/WT_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.sorted_edit_distance.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.sorted_per_umi.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.transcriptome.sorted_edit_distance.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.transcriptome.sorted_per_umi.tsv", + "star_salmon/umitools/WT_REP2.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv", + "star_salmon/umitools/genomic_dedup_log", + "star_salmon/umitools/genomic_dedup_log/RAP1_IAA_30M_REP1.umi_dedup.sorted.log", + "star_salmon/umitools/genomic_dedup_log/RAP1_UNINDUCED_REP1.umi_dedup.sorted.log", + "star_salmon/umitools/genomic_dedup_log/RAP1_UNINDUCED_REP2.umi_dedup.sorted.log", + "star_salmon/umitools/genomic_dedup_log/WT_REP1.umi_dedup.sorted.log", + "star_salmon/umitools/genomic_dedup_log/WT_REP2.umi_dedup.sorted.log", + "star_salmon/umitools/prepare_for_salmon_log", + "star_salmon/umitools/prepare_for_salmon_log/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.filtered.prepare_for_rsem.log", + "star_salmon/umitools/prepare_for_salmon_log/WT_REP1.umi_dedup.transcriptome.filtered.prepare_for_rsem.log", + "star_salmon/umitools/prepare_for_salmon_log/WT_REP2.umi_dedup.transcriptome.filtered.prepare_for_rsem.log", + "star_salmon/umitools/transcriptomic_dedup_log", + "star_salmon/umitools/transcriptomic_dedup_log/RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted.log", + "star_salmon/umitools/transcriptomic_dedup_log/RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted.log", + "star_salmon/umitools/transcriptomic_dedup_log/RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted.log", + "star_salmon/umitools/transcriptomic_dedup_log/WT_REP1.umi_dedup.transcriptome.sorted.log", + "star_salmon/umitools/transcriptomic_dedup_log/WT_REP2.umi_dedup.transcriptome.sorted.log", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt", + "umitools", + "umitools/RAP1_IAA_30M_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP2.umi_extract.log", + "umitools/WT_REP1.umi_extract.log", + "umitools/WT_REP2.umi_extract.log" + ], + [ + "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055", + "genome_gfp.gtf:md5,c98b12c302f15731bfc36bcf297cfe28", + "cutadapt_filtered_reads_plot.txt:md5,3f122969fa288888e5abef061b7963f2", + "cutadapt_trimmed_sequences_plot_3_Counts.txt:md5,5e8a821c9a4deb46c11bc65969b8864f", + "cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt:md5,bf8abefa7c5f2f1e1140749983279d9d", + "fastqc_raw-status-check-heatmap.txt:md5,5a89b0d8d162f6b1dbdaf39457bbc03b", + "fastqc_raw_adapter_content_plot.txt:md5,da0389be84cfdd189b1d045212eb2974", + "fastqc_raw_overrepresented_sequences_plot.txt:md5,25d88ea8a72f55e8a374ae802bc7f0b1", + "fastqc_raw_per_base_n_content_plot.txt:md5,d368d7e36ca2f73dcde61f2b486d8213", + "fastqc_raw_per_base_sequence_quality_plot.txt:md5,5c3065b549129702b185ea1b817da420", + "fastqc_raw_per_sequence_gc_content_plot_Counts.txt:md5,9ddaa50167117d3c9188ccf015427704", + "fastqc_raw_per_sequence_gc_content_plot_Percentages.txt:md5,f10ee2881b61308af35f304aa3d810a3", + "fastqc_raw_per_sequence_quality_scores_plot.txt:md5,b5f9a02933e3065952237afd2ec9ce82", + "fastqc_raw_sequence_counts_plot.txt:md5,cbae4979d5db66d3b894abcf8d1c453c", + "fastqc_raw_sequence_duplication_levels_plot.txt:md5,8812cee16f6ca65e2c33635754de1772", + "fastqc_sequence_length_distribution_plot.txt:md5,7a2263743d5c452dc940eabffcb0ea82", + "fastqc_trimmed-status-check-heatmap.txt:md5,1913b4c077a341437475c758fb119559", + "fastqc_trimmed_overrepresented_sequences_plot.txt:md5,6a7c50868a36ca6052e9f4adba6b8567", + "fastqc_trimmed_per_base_n_content_plot.txt:md5,0cdd698fb9a2a4987572b9b4e8c8990e", + "fastqc_trimmed_per_base_sequence_quality_plot.txt:md5,82a9073151a413efbb0f11be8d0db1f2", + "fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt:md5,08b43a02f34a3afa7eaddef602cdcafd", + "fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt:md5,0768af6bf06bbad52a3ac6ec0a444138", + "fastqc_trimmed_per_sequence_quality_scores_plot.txt:md5,ac167d250e9f88899da0ea81ef2b002e", + "fastqc_trimmed_sequence_counts_plot.txt:md5,370ddc5e58838dc5b55e53b6f8b8902a", + "fastqc_trimmed_sequence_duplication_levels_plot.txt:md5,b106d8ee7b83efe237afb862ebbe2f47", + "multiqc_citations.txt:md5,34e8b8c69015de25f9fce8c31d2ff864", + "multiqc_cutadapt.txt:md5,0937983d3ddfeccd4ccc5b0d74477558", + "multiqc_fastqc_fastqc_raw.txt:md5,81c3c1a2575a1891a7f2a9637a0f2cc0", + "multiqc_fastqc_fastqc_trimmed.txt:md5,a8a003b61b03295c416f3eb66c1cca65", + "multiqc_featurecounts_biotype_plot.txt:md5,5d1c33f3ff898b9bb95ed161e4235011", + "multiqc_samtools_idxstats.txt:md5,bdf185faa6d15d22efedb39d38c84943", + "multiqc_umitools_dedup.txt:md5,bad73f567baddb2272488b0e78e208cb", + "multiqc_umitools_extract.txt:md5,d41d8cd98f00b204e9800998ecf8427e", + "qualimap_gene_coverage_profile_Counts.txt:md5,48d6c0b4df0f6f535a4526fc74b0fd47", + "qualimap_gene_coverage_profile_Normalised.txt:md5,8974b37cbdbbc2a23ca103a3a4c10dd4", + "qualimap_rnaseq_cov_hist.txt:md5,55d1a7026062c28624be5901ac6781a4", + "rseqc_infer_experiment_plot.txt:md5,595bfcda9eddeed4f9ae4e162fe7120d", + "samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt:md5,75acd04232d1804b5f960ee4c5db4722", + "samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt:md5,53addd7b78d8ae224920ec9b97489d72", + "samtools-idxstats-mapped-reads-plot_Raw_Counts.txt:md5,2cae5122b2e6371f068722ed666678a1", + "umitools_deduplication_barplot.txt:md5,a2d6295db66f53d1044b261a05352782", + "umitools_stats_violin.txt:md5,136374122cf99fb0771667fcb9b48aee", + "ambig_info.tsv:md5,0b462f9b2d8eff1b4d76b7433434899c", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,910a60cb6ef954008c9e6d037342d773", + "lib_format_counts.json:md5,5846a0bb874171d30ef60059f6c10868", + "ambig_info.tsv:md5,2c45f73a5f73ae4d0053198ea98c87f3", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,e364ca1b150c3c0ae57f0397ff8ae471", + "lib_format_counts.json:md5,d662a174758011a56e6669f4810e0aaf", + "ambig_info.tsv:md5,644c4352884872a05fe36cbb2b119879", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,b472447f8ac9530be1ca2d9733af2686", + "lib_format_counts.json:md5,f01d7b98afc4b6bab773536a88e08e7e", + "ambig_info.tsv:md5,d6ca0827f17be19b6e08730a45063f9d", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,bdc36620d04525d343faea5297f0f0d7", + "lib_format_counts.json:md5,cf8bf8db790bede5136fca52968e7c43", + "ambig_info.tsv:md5,4aa8036707dc557004a80852394beebe", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,809380ddce725a8fab75dd7741b64bf6", + "lib_format_counts.json:md5,d231ba7624b67eb654989f69530e2925", + "R_sessionInfo.log:md5,fb0da0d7ad6994ed66a8e68348b19676", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe", + "ambig_info.tsv:md5,0f0e3687e731243392685c550fb1d93f", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,58bb0c52d3b55f5ea7bdee0f61cc96c4", + "ambig_info.tsv:md5,4fd93ccf823486ea525e3d9353600adf", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,231adc3feccd0469b2371b0c6fc09237", + "ambig_info.tsv:md5,31891c8515b24aa6b40448deafbbc9ca", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,1b4720397a3819ee8307736442195cf0", + "ambig_info.tsv:md5,651337ad8cc12771ab78164630848a34", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,f54a81a543ea538b16f6b1a7209bf269", + "ambig_info.tsv:md5,1a1c979fca935062e6f2339bfbf09ea6", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,a3b1b764e21b500d9ffed5beb6da85ac", + "R_sessionInfo.log:md5,fb0da0d7ad6994ed66a8e68348b19676", + "RAP1_IAA_30M_REP1_dupMatrix.txt:md5,0b8c54ea7f2a78f7dd478a7bde53143e", + "RAP1_UNINDUCED_REP1_dupMatrix.txt:md5,ed386269dd82129149da4d33a9e0e0b6", + "RAP1_UNINDUCED_REP2_dupMatrix.txt:md5,ee34da4ee0f7b56c710f5df041f88f31", + "WT_REP1_dupMatrix.txt:md5,6416d48ec754942e0a5a0c1a81680fe5", + "WT_REP2_dupMatrix.txt:md5,60e583c84a0d8b31cb667703c56d6c33", + "RAP1_IAA_30M_REP1_intercept_slope.txt:md5,6c1e7c494f765ff6466ab023d52a1d70", + "RAP1_UNINDUCED_REP1_intercept_slope.txt:md5,93a525d3bc1ebfeddc8f04f3c2238237", + "RAP1_UNINDUCED_REP2_intercept_slope.txt:md5,74f6210123d50c2001f20dad6283e856", + "WT_REP1_intercept_slope.txt:md5,4d428c55745bf9e2832d7fdb76b72088", + "WT_REP2_intercept_slope.txt:md5,d6a47171cb52331c5e6e21671152fb98", + "RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv:md5,d0e2b4a2e14fa97ad49c4baacfb1d5e3", + "RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv:md5,dde2de0cb90e10d0195c726f768e9941", + "RAP1_IAA_30M_REP1.featureCounts.txt:md5,c90762d8ee1df9219dc643b68e464ca0", + "RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv:md5,619bb912961ef626647f713335935a5f", + "RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv:md5,845ff9059c72bc6722a8de69776e22bb", + "RAP1_UNINDUCED_REP1.featureCounts.txt:md5,4e0769c943c89adcaa3bab14b6d1cd88", + "RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv:md5,1b2f0f0a41e2c85592ccbfdb2a77f99e", + "RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv:md5,6d3fa4c88c7fe61f638e4624ad5e22f0", + "RAP1_UNINDUCED_REP2.featureCounts.txt:md5,42f5e8ab19f3791494e78a827d8d2c9f", + "WT_REP1.biotype_counts_mqc.tsv:md5,76e6acbdf45a12e2053c5bc80c16736a", + "WT_REP1.biotype_counts_rrna_mqc.tsv:md5,8ef76d717492ca23764938aee8ea33a9", + "WT_REP1.featureCounts.txt:md5,10b18e11692373de8ca48fe944ba45fb", + "WT_REP2.biotype_counts_mqc.tsv:md5,e859f48881b11b5e4e60f729391de069", + "WT_REP2.biotype_counts_rrna_mqc.tsv:md5,12294618fe44df1e7f39348372dcb481", + "WT_REP2.featureCounts.txt:md5,19befeb287117a2f2ccd9104736be554", + "RAP1_IAA_30M_REP1.SJ.out.tab:md5,d604a0a313ab69f8a4283270af18ae32", + "RAP1_UNINDUCED_REP1.SJ.out.tab:md5,b19277790e74ab9437f849953493f04b", + "RAP1_UNINDUCED_REP2.SJ.out.tab:md5,9329f50423971eaf6ae2a6a896a46660", + "WT_REP1.SJ.out.tab:md5,7727eaec321fb8b87524d755e6f7e9db", + "WT_REP2.SJ.out.tab:md5,1f04519116b722d992668ac4945769a1", + "coverage_profile_along_genes_(high).txt:md5,84f052e9fa2ce44f4a9eb0e341eeb3ad", + "coverage_profile_along_genes_(low).txt:md5,c6c6f7799776d3b46b7f9b1616ccb068", + "coverage_profile_along_genes_(total).txt:md5,c6c6f7799776d3b46b7f9b1616ccb068", + "coverage_profile_along_genes_(high).txt:md5,d9c43191445075edeb5b318d6be67ddd", + "coverage_profile_along_genes_(low).txt:md5,af1991d0ab4160ab03eb3ae4892c3bf6", + "coverage_profile_along_genes_(total).txt:md5,af1991d0ab4160ab03eb3ae4892c3bf6", + "coverage_profile_along_genes_(high).txt:md5,7d4a5678dc311a848f63a3e8c3e0f8c3", + "coverage_profile_along_genes_(low).txt:md5,b2a0e1a3c5dd2560345d10f6cba85120", + "coverage_profile_along_genes_(total).txt:md5,b2a0e1a3c5dd2560345d10f6cba85120", + "coverage_profile_along_genes_(high).txt:md5,f7d7520d1ac24746a0284a1dc320f4c7", + "coverage_profile_along_genes_(low).txt:md5,808ab48af81ff6a147f28cc0da849b81", + "coverage_profile_along_genes_(total).txt:md5,808ab48af81ff6a147f28cc0da849b81", + "coverage_profile_along_genes_(high).txt:md5,378217a9d9d22fd3ebb6b07f0e51c162", + "coverage_profile_along_genes_(low).txt:md5,99f9a15f2da90bdfde1b92ee596ea38c", + "coverage_profile_along_genes_(total).txt:md5,99f9a15f2da90bdfde1b92ee596ea38c", + "RAP1_IAA_30M_REP1.infer_experiment.txt:md5,ddaa65251a996b6def0fceb36f46b849", + "RAP1_UNINDUCED_REP1.infer_experiment.txt:md5,7a23eead24c9c4af5a1f4ce9222fa13a", + "RAP1_UNINDUCED_REP2.infer_experiment.txt:md5,5b7bc57d1349566303263ca3a518e6fd", + "WT_REP1.infer_experiment.txt:md5,63c888e13ef0fa915abd6e7c26ffde48", + "WT_REP2.infer_experiment.txt:md5,3e6940ec81e6a809f929362ba4ba4a56", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,25598a444e1e9f1f15b4906b03a5874c", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,70fc90fa0a39d071c0e7edb1a705b6bc", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,3c9b439b5a37a3cfdf4382d1bf6f7487", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,a4235dcab3d0b32432a3b26272b3e16d", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,6356faf089792dfb24bda62bd0502d8e", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,1f7a09a1e1f86158196c4c4c805086c1", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,8576a03875dc511f3e2374d9d0232ac9", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,3395edddbf247fa5229e0bae721d6c99", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,01bfb332685d888c002fbda59ce28516", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,3d489da8244fc4d1fba0d0442220bf2d", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe", + "RAP1_IAA_30M_REP1.umi_dedup.sorted_edit_distance.tsv:md5,620d5a5928e7739492de3bf66d149db2", + "RAP1_IAA_30M_REP1.umi_dedup.sorted_per_umi.tsv:md5,9c68e481bc942cfbf5cf51039238c269", + "RAP1_IAA_30M_REP1.umi_dedup.sorted_per_umi_per_position.tsv:md5,f37b7f5a783425506b434c9e5ff90f25", + "RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv:md5,3ec96cdbe4e9eb45b18df4391b89df34", + "RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv:md5,a06aa2fd396dfa28eb3408a0f4e3bf48", + "RAP1_IAA_30M_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv:md5,ce0c05c7994d600c75a34d5c9908f970", + "RAP1_UNINDUCED_REP1.umi_dedup.sorted_edit_distance.tsv:md5,58ea92107f0785532f31ba557e5d8aa9", + "RAP1_UNINDUCED_REP1.umi_dedup.sorted_per_umi.tsv:md5,41e6a7a416659b6208c731b1aa7e149f", + "RAP1_UNINDUCED_REP1.umi_dedup.sorted_per_umi_per_position.tsv:md5,1a4f7954086d4a76d93694443e074312", + "RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv:md5,176fbeac8e4f1cfa1def599cc5ad4847", + "RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv:md5,fcded67bc5e50902c296d40d53e9079c", + "RAP1_UNINDUCED_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv:md5,5a3d1e0ec5f3af2c279d8321bae2de34", + "RAP1_UNINDUCED_REP2.umi_dedup.sorted_edit_distance.tsv:md5,15120d542adb7ad45acf924d905e7fcf", + "RAP1_UNINDUCED_REP2.umi_dedup.sorted_per_umi.tsv:md5,d68aae0c4698c73c10c83df7f7cba06a", + "RAP1_UNINDUCED_REP2.umi_dedup.sorted_per_umi_per_position.tsv:md5,18f5c21477fc51e56c65ee0660649ffc", + "RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_edit_distance.tsv:md5,13f3f84f11f6bb8e98f001b97902d559", + "RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_per_umi.tsv:md5,eb7aedb12f64c703f76ade9b60d3ded0", + "RAP1_UNINDUCED_REP2.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv:md5,dc636e57732d1548bd4e5454aef63788", + "WT_REP1.umi_dedup.sorted_edit_distance.tsv:md5,5d18333d2131dfb7083ece42f5538eb4", + "WT_REP1.umi_dedup.sorted_per_umi.tsv:md5,d81c983368a0b2218eb8954579c376e7", + "WT_REP1.umi_dedup.sorted_per_umi_per_position.tsv:md5,e2412d716ca85a90f8dbb100a9614991", + "WT_REP1.umi_dedup.transcriptome.sorted_edit_distance.tsv:md5,d698cb0a0d23dbb2d78deff0928b2a1f", + "WT_REP1.umi_dedup.transcriptome.sorted_per_umi.tsv:md5,ee2df66b8427ea94fff18430cc1937a4", + "WT_REP1.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv:md5,485a03ff0fec979ee84d918158502bf1", + "WT_REP2.umi_dedup.sorted_edit_distance.tsv:md5,a935a046c0a8f269cdeaa7c1c935f0ec", + "WT_REP2.umi_dedup.sorted_per_umi.tsv:md5,0cb0f12e99861120a0437051a7aaa152", + "WT_REP2.umi_dedup.sorted_per_umi_per_position.tsv:md5,6f5656947a7f0076df446e6f40430027", + "WT_REP2.umi_dedup.transcriptome.sorted_edit_distance.tsv:md5,3e3c6a7e8996e566350742e9911366d3", + "WT_REP2.umi_dedup.transcriptome.sorted_per_umi.tsv:md5,0c986c4cb7a77f650a19e2c454b9b179", + "WT_REP2.umi_dedup.transcriptome.sorted_per_umi_per_position.tsv:md5,af9028dbdab81de3854a32cd1d19ac8b" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-11T18:07:55.751564456" + }, + "Params: --aligner hisat2 --umi_dedup_tool 'umicollapse'": { + "content": [ + 196, + { + "BEDTOOLS_GENOMECOV_FW": { + "bedtools": "2.31.1" + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": "3.12.2" + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "CUSTOM_TX2GENE": { + "python": "3.10.4" + }, + "DESEQ2_QC_PSEUDO": { + "r-base": "4.0.3", + "bioconductor-deseq2": "1.28.0" + }, + "DUPRADAR": { + "bioconductor-dupradar": "1.32.0" + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "FQ_SUBSAMPLE": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.1 + }, + "GUNZIP_GTF": { + "gunzip": 1.1 + }, + "HISAT2_ALIGN": { + "hisat2": "2.2.1", + "samtools": "1.16.1" + }, + "HISAT2_EXTRACTSPLICESITES": { + "hisat2": "2.2.1" + }, + "MULTIQC_CUSTOM_BIOTYPE": { + "python": "3.9.5" + }, + "QUALIMAP_RNASEQ": { + "qualimap": 2.3 + }, + "RSEQC_BAMSTAT": { + "rseqc": "5.0.2" + }, + "RSEQC_INFEREXPERIMENT": { + "rseqc": "5.0.2" + }, + "RSEQC_INNERDISTANCE": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONANNOTATION": { + "rseqc": "5.0.2" + }, + "RSEQC_JUNCTIONSATURATION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDISTRIBUTION": { + "rseqc": "5.0.2" + }, + "RSEQC_READDUPLICATION": { + "rseqc": "5.0.2" + }, + "SALMON_QUANT": { + "salmon": "1.10.3" + }, + "SAMTOOLS_FLAGSTAT": { + "samtools": 1.21 + }, + "SAMTOOLS_IDXSTATS": { + "samtools": 1.21 + }, + "SAMTOOLS_INDEX": { + "samtools": 1.21 + }, + "SAMTOOLS_SORT": { + "samtools": 1.21 + }, + "SAMTOOLS_STATS": { + "samtools": 1.21 + }, + "SE_GENE": { + "bioconductor-summarizedexperiment": "1.32.0" + }, + "STRINGTIE_STRINGTIE": { + "stringtie": "2.2.3" + }, + "SUBREAD_FEATURECOUNTS": { + "subread": "2.0.6" + }, + "TRIMGALORE": { + "trimgalore": "0.6.10", + "cutadapt": 4.9 + }, + "TXIMETA_TXIMPORT": { + "bioconductor-tximeta": "1.20.1" + }, + "UCSC_BEDCLIP": { + "ucsc": 377 + }, + "UCSC_BEDGRAPHTOBIGWIG": { + "ucsc": 469 + }, + "UMICOLLAPSE": { + "umicollapse": "1.1.0-0" + }, + "UMITOOLS_EXTRACT": { + "umitools": "1.1.5" + }, + "UNTAR_HISAT2_INDEX": { + "untar": 1.34 + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + }, + "Workflow": { + "nf-core/rnaseq": "v3.18.0dev" + } + }, + [ + "custom", + "custom/out", + "custom/out/genome_gfp.fasta", + "custom/out/genome_gfp.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_1_fastqc.zip", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw_2_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw_fastqc.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw_fastqc.zip", + "fastqc/raw/WT_REP1_raw_1_fastqc.html", + "fastqc/raw/WT_REP1_raw_1_fastqc.zip", + "fastqc/raw/WT_REP1_raw_2_fastqc.html", + "fastqc/raw/WT_REP1_raw_2_fastqc.zip", + "fastqc/raw/WT_REP2_raw_1_fastqc.html", + "fastqc/raw/WT_REP2_raw_1_fastqc.zip", + "fastqc/raw/WT_REP2_raw_2_fastqc.html", + "fastqc/raw/WT_REP2_raw_2_fastqc.zip", + "fastqc/trim", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/RAP1_IAA_30M_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP1_trimmed_trimmed_fastqc.zip", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.html", + "fastqc/trim/RAP1_UNINDUCED_REP2_trimmed_trimmed_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP1_trimmed_2_val_2_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_1_val_1_fastqc.zip", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.html", + "fastqc/trim/WT_REP2_trimmed_2_val_2_fastqc.zip", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "fq_lint/trimmed", + "fq_lint/trimmed/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/trimmed/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/trimmed/WT_REP1.fq_lint.txt", + "fq_lint/trimmed/WT_REP2.fq_lint.txt", + "hisat2", + "hisat2/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam", + "hisat2/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.bai", + "hisat2/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam", + "hisat2/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.bai", + "hisat2/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam", + "hisat2/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.bai", + "hisat2/WT_REP1.umi_dedup.sorted.bam", + "hisat2/WT_REP1.umi_dedup.sorted.bam.bai", + "hisat2/WT_REP2.umi_dedup.sorted.bam", + "hisat2/WT_REP2.umi_dedup.sorted.bam.bai", + "hisat2/bigwig", + "hisat2/bigwig/RAP1_IAA_30M_REP1.forward.bigWig", + "hisat2/bigwig/RAP1_IAA_30M_REP1.reverse.bigWig", + "hisat2/bigwig/RAP1_UNINDUCED_REP1.forward.bigWig", + "hisat2/bigwig/RAP1_UNINDUCED_REP1.reverse.bigWig", + "hisat2/bigwig/RAP1_UNINDUCED_REP2.forward.bigWig", + "hisat2/bigwig/RAP1_UNINDUCED_REP2.reverse.bigWig", + "hisat2/bigwig/WT_REP1.forward.bigWig", + "hisat2/bigwig/WT_REP1.reverse.bigWig", + "hisat2/bigwig/WT_REP2.forward.bigWig", + "hisat2/bigwig/WT_REP2.reverse.bigWig", + "hisat2/dupradar", + "hisat2/dupradar/box_plot", + "hisat2/dupradar/box_plot/RAP1_IAA_30M_REP1_duprateExpBoxplot.pdf", + "hisat2/dupradar/box_plot/RAP1_UNINDUCED_REP1_duprateExpBoxplot.pdf", + "hisat2/dupradar/box_plot/RAP1_UNINDUCED_REP2_duprateExpBoxplot.pdf", + "hisat2/dupradar/box_plot/WT_REP1_duprateExpBoxplot.pdf", + "hisat2/dupradar/box_plot/WT_REP2_duprateExpBoxplot.pdf", + "hisat2/dupradar/gene_data", + "hisat2/dupradar/gene_data/RAP1_IAA_30M_REP1_dupMatrix.txt", + "hisat2/dupradar/gene_data/RAP1_UNINDUCED_REP1_dupMatrix.txt", + "hisat2/dupradar/gene_data/RAP1_UNINDUCED_REP2_dupMatrix.txt", + "hisat2/dupradar/gene_data/WT_REP1_dupMatrix.txt", + "hisat2/dupradar/gene_data/WT_REP2_dupMatrix.txt", + "hisat2/dupradar/histogram", + "hisat2/dupradar/histogram/RAP1_IAA_30M_REP1_expressionHist.pdf", + "hisat2/dupradar/histogram/RAP1_UNINDUCED_REP1_expressionHist.pdf", + "hisat2/dupradar/histogram/RAP1_UNINDUCED_REP2_expressionHist.pdf", + "hisat2/dupradar/histogram/WT_REP1_expressionHist.pdf", + "hisat2/dupradar/histogram/WT_REP2_expressionHist.pdf", + "hisat2/dupradar/intercepts_slope", + "hisat2/dupradar/intercepts_slope/RAP1_IAA_30M_REP1_intercept_slope.txt", + "hisat2/dupradar/intercepts_slope/RAP1_UNINDUCED_REP1_intercept_slope.txt", + "hisat2/dupradar/intercepts_slope/RAP1_UNINDUCED_REP2_intercept_slope.txt", + "hisat2/dupradar/intercepts_slope/WT_REP1_intercept_slope.txt", + "hisat2/dupradar/intercepts_slope/WT_REP2_intercept_slope.txt", + "hisat2/dupradar/scatter_plot", + "hisat2/dupradar/scatter_plot/RAP1_IAA_30M_REP1_duprateExpDens.pdf", + "hisat2/dupradar/scatter_plot/RAP1_UNINDUCED_REP1_duprateExpDens.pdf", + "hisat2/dupradar/scatter_plot/RAP1_UNINDUCED_REP2_duprateExpDens.pdf", + "hisat2/dupradar/scatter_plot/WT_REP1_duprateExpDens.pdf", + "hisat2/dupradar/scatter_plot/WT_REP2_duprateExpDens.pdf", + "hisat2/featurecounts", + "hisat2/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv", + "hisat2/featurecounts/RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv", + "hisat2/featurecounts/RAP1_IAA_30M_REP1.featureCounts.txt", + "hisat2/featurecounts/RAP1_IAA_30M_REP1.featureCounts.txt.summary", + "hisat2/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv", + "hisat2/featurecounts/RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv", + "hisat2/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.txt", + "hisat2/featurecounts/RAP1_UNINDUCED_REP1.featureCounts.txt.summary", + "hisat2/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv", + "hisat2/featurecounts/RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv", + "hisat2/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.txt", + "hisat2/featurecounts/RAP1_UNINDUCED_REP2.featureCounts.txt.summary", + "hisat2/featurecounts/WT_REP1.biotype_counts_mqc.tsv", + "hisat2/featurecounts/WT_REP1.biotype_counts_rrna_mqc.tsv", + "hisat2/featurecounts/WT_REP1.featureCounts.txt", + "hisat2/featurecounts/WT_REP1.featureCounts.txt.summary", + "hisat2/featurecounts/WT_REP2.biotype_counts_mqc.tsv", + "hisat2/featurecounts/WT_REP2.biotype_counts_rrna_mqc.tsv", + "hisat2/featurecounts/WT_REP2.featureCounts.txt", + "hisat2/featurecounts/WT_REP2.featureCounts.txt.summary", + "hisat2/log", + "hisat2/log/RAP1_IAA_30M_REP1.hisat2.summary.log", + "hisat2/log/RAP1_UNINDUCED_REP1.hisat2.summary.log", + "hisat2/log/RAP1_UNINDUCED_REP2.hisat2.summary.log", + "hisat2/log/WT_REP1.hisat2.summary.log", + "hisat2/log/WT_REP2.hisat2.summary.log", + "hisat2/qualimap", + "hisat2/qualimap/RAP1_IAA_30M_REP1", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/agogo.css", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/ajax-loader.gif", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/basic.css", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/bgfooter.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/bgtop.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/comment-bright.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/comment-close.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/comment.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/doctools.js", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/down-pressed.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/down.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/file.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/jquery.js", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/minus.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/plus.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/pygments.css", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/qualimap_logo_small.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/report.css", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/searchtools.js", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/underscore.js", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/up-pressed.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/up.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/css/websupport.js", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Junction Analysis.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Reads Genomic Origin.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/images_qualimapReport/Transcript coverage histogram.png", + "hisat2/qualimap/RAP1_IAA_30M_REP1/qualimapReport.html", + "hisat2/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport", + "hisat2/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "hisat2/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "hisat2/qualimap/RAP1_IAA_30M_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "hisat2/qualimap/RAP1_IAA_30M_REP1/rnaseq_qc_results.txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP1", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/agogo.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/ajax-loader.gif", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/basic.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/bgfooter.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/bgtop.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/comment-bright.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/comment-close.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/comment.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/doctools.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/down-pressed.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/down.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/file.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/jquery.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/minus.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/plus.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/pygments.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/qualimap_logo_small.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/report.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/searchtools.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/underscore.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/up-pressed.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/up.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/css/websupport.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Junction Analysis.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Reads Genomic Origin.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/images_qualimapReport/Transcript coverage histogram.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/qualimapReport.html", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP1/rnaseq_qc_results.txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP2", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/agogo.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/ajax-loader.gif", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/basic.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/bgfooter.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/bgtop.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/comment-bright.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/comment-close.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/comment.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/doctools.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/down-pressed.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/down.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/file.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/jquery.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/minus.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/plus.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/pygments.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/qualimap_logo_small.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/report.css", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/searchtools.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/underscore.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/up-pressed.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/up.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/css/websupport.js", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Junction Analysis.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Reads Genomic Origin.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/images_qualimapReport/Transcript coverage histogram.png", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/qualimapReport.html", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "hisat2/qualimap/RAP1_UNINDUCED_REP2/rnaseq_qc_results.txt", + "hisat2/qualimap/WT_REP1", + "hisat2/qualimap/WT_REP1/css", + "hisat2/qualimap/WT_REP1/css/agogo.css", + "hisat2/qualimap/WT_REP1/css/ajax-loader.gif", + "hisat2/qualimap/WT_REP1/css/basic.css", + "hisat2/qualimap/WT_REP1/css/bgfooter.png", + "hisat2/qualimap/WT_REP1/css/bgtop.png", + "hisat2/qualimap/WT_REP1/css/comment-bright.png", + "hisat2/qualimap/WT_REP1/css/comment-close.png", + "hisat2/qualimap/WT_REP1/css/comment.png", + "hisat2/qualimap/WT_REP1/css/doctools.js", + "hisat2/qualimap/WT_REP1/css/down-pressed.png", + "hisat2/qualimap/WT_REP1/css/down.png", + "hisat2/qualimap/WT_REP1/css/file.png", + "hisat2/qualimap/WT_REP1/css/jquery.js", + "hisat2/qualimap/WT_REP1/css/minus.png", + "hisat2/qualimap/WT_REP1/css/plus.png", + "hisat2/qualimap/WT_REP1/css/pygments.css", + "hisat2/qualimap/WT_REP1/css/qualimap_logo_small.png", + "hisat2/qualimap/WT_REP1/css/report.css", + "hisat2/qualimap/WT_REP1/css/searchtools.js", + "hisat2/qualimap/WT_REP1/css/underscore.js", + "hisat2/qualimap/WT_REP1/css/up-pressed.png", + "hisat2/qualimap/WT_REP1/css/up.png", + "hisat2/qualimap/WT_REP1/css/websupport.js", + "hisat2/qualimap/WT_REP1/images_qualimapReport", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (High).png", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Junction Analysis.png", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Reads Genomic Origin.png", + "hisat2/qualimap/WT_REP1/images_qualimapReport/Transcript coverage histogram.png", + "hisat2/qualimap/WT_REP1/qualimapReport.html", + "hisat2/qualimap/WT_REP1/raw_data_qualimapReport", + "hisat2/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "hisat2/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "hisat2/qualimap/WT_REP1/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "hisat2/qualimap/WT_REP1/rnaseq_qc_results.txt", + "hisat2/qualimap/WT_REP2", + "hisat2/qualimap/WT_REP2/css", + "hisat2/qualimap/WT_REP2/css/agogo.css", + "hisat2/qualimap/WT_REP2/css/ajax-loader.gif", + "hisat2/qualimap/WT_REP2/css/basic.css", + "hisat2/qualimap/WT_REP2/css/bgfooter.png", + "hisat2/qualimap/WT_REP2/css/bgtop.png", + "hisat2/qualimap/WT_REP2/css/comment-bright.png", + "hisat2/qualimap/WT_REP2/css/comment-close.png", + "hisat2/qualimap/WT_REP2/css/comment.png", + "hisat2/qualimap/WT_REP2/css/doctools.js", + "hisat2/qualimap/WT_REP2/css/down-pressed.png", + "hisat2/qualimap/WT_REP2/css/down.png", + "hisat2/qualimap/WT_REP2/css/file.png", + "hisat2/qualimap/WT_REP2/css/jquery.js", + "hisat2/qualimap/WT_REP2/css/minus.png", + "hisat2/qualimap/WT_REP2/css/plus.png", + "hisat2/qualimap/WT_REP2/css/pygments.css", + "hisat2/qualimap/WT_REP2/css/qualimap_logo_small.png", + "hisat2/qualimap/WT_REP2/css/report.css", + "hisat2/qualimap/WT_REP2/css/searchtools.js", + "hisat2/qualimap/WT_REP2/css/underscore.js", + "hisat2/qualimap/WT_REP2/css/up-pressed.png", + "hisat2/qualimap/WT_REP2/css/up.png", + "hisat2/qualimap/WT_REP2/css/websupport.js", + "hisat2/qualimap/WT_REP2/images_qualimapReport", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (High).png", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Low).png", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Coverage Profile Along Genes (Total).png", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Junction Analysis.png", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Reads Genomic Origin.png", + "hisat2/qualimap/WT_REP2/images_qualimapReport/Transcript coverage histogram.png", + "hisat2/qualimap/WT_REP2/qualimapReport.html", + "hisat2/qualimap/WT_REP2/raw_data_qualimapReport", + "hisat2/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(high).txt", + "hisat2/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(low).txt", + "hisat2/qualimap/WT_REP2/raw_data_qualimapReport/coverage_profile_along_genes_(total).txt", + "hisat2/qualimap/WT_REP2/rnaseq_qc_results.txt", + "hisat2/rseqc", + "hisat2/rseqc/bam_stat", + "hisat2/rseqc/bam_stat/RAP1_IAA_30M_REP1.bam_stat.txt", + "hisat2/rseqc/bam_stat/RAP1_UNINDUCED_REP1.bam_stat.txt", + "hisat2/rseqc/bam_stat/RAP1_UNINDUCED_REP2.bam_stat.txt", + "hisat2/rseqc/bam_stat/WT_REP1.bam_stat.txt", + "hisat2/rseqc/bam_stat/WT_REP2.bam_stat.txt", + "hisat2/rseqc/infer_experiment", + "hisat2/rseqc/infer_experiment/RAP1_IAA_30M_REP1.infer_experiment.txt", + "hisat2/rseqc/infer_experiment/RAP1_UNINDUCED_REP1.infer_experiment.txt", + "hisat2/rseqc/infer_experiment/RAP1_UNINDUCED_REP2.infer_experiment.txt", + "hisat2/rseqc/infer_experiment/WT_REP1.infer_experiment.txt", + "hisat2/rseqc/infer_experiment/WT_REP2.infer_experiment.txt", + "hisat2/rseqc/inner_distance", + "hisat2/rseqc/inner_distance/pdf", + "hisat2/rseqc/inner_distance/pdf/RAP1_IAA_30M_REP1.inner_distance_plot.pdf", + "hisat2/rseqc/inner_distance/pdf/WT_REP1.inner_distance_plot.pdf", + "hisat2/rseqc/inner_distance/pdf/WT_REP2.inner_distance_plot.pdf", + "hisat2/rseqc/inner_distance/rscript", + "hisat2/rseqc/inner_distance/rscript/RAP1_IAA_30M_REP1.inner_distance_plot.r", + "hisat2/rseqc/inner_distance/rscript/WT_REP1.inner_distance_plot.r", + "hisat2/rseqc/inner_distance/rscript/WT_REP2.inner_distance_plot.r", + "hisat2/rseqc/inner_distance/txt", + "hisat2/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance.txt", + "hisat2/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_freq.txt", + "hisat2/rseqc/inner_distance/txt/RAP1_IAA_30M_REP1.inner_distance_mean.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP1.inner_distance.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP1.inner_distance_freq.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP1.inner_distance_mean.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP2.inner_distance.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP2.inner_distance_freq.txt", + "hisat2/rseqc/inner_distance/txt/WT_REP2.inner_distance_mean.txt", + "hisat2/rseqc/junction_annotation", + "hisat2/rseqc/junction_annotation/bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.Interact.bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_IAA_30M_REP1.junction.bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.Interact.bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP1.junction.bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.Interact.bed", + "hisat2/rseqc/junction_annotation/bed/RAP1_UNINDUCED_REP2.junction.bed", + "hisat2/rseqc/junction_annotation/bed/WT_REP1.junction.Interact.bed", + "hisat2/rseqc/junction_annotation/bed/WT_REP1.junction.bed", + "hisat2/rseqc/junction_annotation/bed/WT_REP2.junction.Interact.bed", + "hisat2/rseqc/junction_annotation/bed/WT_REP2.junction.bed", + "hisat2/rseqc/junction_annotation/log", + "hisat2/rseqc/junction_annotation/log/RAP1_IAA_30M_REP1.junction_annotation.log", + "hisat2/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP1.junction_annotation.log", + "hisat2/rseqc/junction_annotation/log/RAP1_UNINDUCED_REP2.junction_annotation.log", + "hisat2/rseqc/junction_annotation/log/WT_REP1.junction_annotation.log", + "hisat2/rseqc/junction_annotation/log/WT_REP2.junction_annotation.log", + "hisat2/rseqc/junction_annotation/pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_events.pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_IAA_30M_REP1.splice_junction.pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_events.pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP1.splice_junction.pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_events.pdf", + "hisat2/rseqc/junction_annotation/pdf/RAP1_UNINDUCED_REP2.splice_junction.pdf", + "hisat2/rseqc/junction_annotation/pdf/WT_REP1.splice_events.pdf", + "hisat2/rseqc/junction_annotation/pdf/WT_REP1.splice_junction.pdf", + "hisat2/rseqc/junction_annotation/pdf/WT_REP2.splice_events.pdf", + "hisat2/rseqc/junction_annotation/pdf/WT_REP2.splice_junction.pdf", + "hisat2/rseqc/junction_annotation/rscript", + "hisat2/rseqc/junction_annotation/rscript/RAP1_IAA_30M_REP1.junction_plot.r", + "hisat2/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP1.junction_plot.r", + "hisat2/rseqc/junction_annotation/rscript/RAP1_UNINDUCED_REP2.junction_plot.r", + "hisat2/rseqc/junction_annotation/rscript/WT_REP1.junction_plot.r", + "hisat2/rseqc/junction_annotation/rscript/WT_REP2.junction_plot.r", + "hisat2/rseqc/junction_annotation/xls", + "hisat2/rseqc/junction_annotation/xls/RAP1_IAA_30M_REP1.junction.xls", + "hisat2/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP1.junction.xls", + "hisat2/rseqc/junction_annotation/xls/RAP1_UNINDUCED_REP2.junction.xls", + "hisat2/rseqc/junction_annotation/xls/WT_REP1.junction.xls", + "hisat2/rseqc/junction_annotation/xls/WT_REP2.junction.xls", + "hisat2/rseqc/junction_saturation", + "hisat2/rseqc/junction_saturation/pdf", + "hisat2/rseqc/junction_saturation/pdf/RAP1_IAA_30M_REP1.junctionSaturation_plot.pdf", + "hisat2/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP1.junctionSaturation_plot.pdf", + "hisat2/rseqc/junction_saturation/pdf/RAP1_UNINDUCED_REP2.junctionSaturation_plot.pdf", + "hisat2/rseqc/junction_saturation/pdf/WT_REP1.junctionSaturation_plot.pdf", + "hisat2/rseqc/junction_saturation/pdf/WT_REP2.junctionSaturation_plot.pdf", + "hisat2/rseqc/junction_saturation/rscript", + "hisat2/rseqc/junction_saturation/rscript/RAP1_IAA_30M_REP1.junctionSaturation_plot.r", + "hisat2/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP1.junctionSaturation_plot.r", + "hisat2/rseqc/junction_saturation/rscript/RAP1_UNINDUCED_REP2.junctionSaturation_plot.r", + "hisat2/rseqc/junction_saturation/rscript/WT_REP1.junctionSaturation_plot.r", + "hisat2/rseqc/junction_saturation/rscript/WT_REP2.junctionSaturation_plot.r", + "hisat2/rseqc/read_distribution", + "hisat2/rseqc/read_distribution/RAP1_IAA_30M_REP1.read_distribution.txt", + "hisat2/rseqc/read_distribution/RAP1_UNINDUCED_REP1.read_distribution.txt", + "hisat2/rseqc/read_distribution/RAP1_UNINDUCED_REP2.read_distribution.txt", + "hisat2/rseqc/read_distribution/WT_REP1.read_distribution.txt", + "hisat2/rseqc/read_distribution/WT_REP2.read_distribution.txt", + "hisat2/rseqc/read_duplication", + "hisat2/rseqc/read_duplication/pdf", + "hisat2/rseqc/read_duplication/pdf/RAP1_IAA_30M_REP1.DupRate_plot.pdf", + "hisat2/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP1.DupRate_plot.pdf", + "hisat2/rseqc/read_duplication/pdf/RAP1_UNINDUCED_REP2.DupRate_plot.pdf", + "hisat2/rseqc/read_duplication/pdf/WT_REP1.DupRate_plot.pdf", + "hisat2/rseqc/read_duplication/pdf/WT_REP2.DupRate_plot.pdf", + "hisat2/rseqc/read_duplication/rscript", + "hisat2/rseqc/read_duplication/rscript/RAP1_IAA_30M_REP1.DupRate_plot.r", + "hisat2/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP1.DupRate_plot.r", + "hisat2/rseqc/read_duplication/rscript/RAP1_UNINDUCED_REP2.DupRate_plot.r", + "hisat2/rseqc/read_duplication/rscript/WT_REP1.DupRate_plot.r", + "hisat2/rseqc/read_duplication/rscript/WT_REP2.DupRate_plot.r", + "hisat2/rseqc/read_duplication/xls", + "hisat2/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.pos.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/RAP1_IAA_30M_REP1.seq.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.pos.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP1.seq.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.pos.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/RAP1_UNINDUCED_REP2.seq.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/WT_REP1.pos.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/WT_REP1.seq.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/WT_REP2.pos.DupRate.xls", + "hisat2/rseqc/read_duplication/xls/WT_REP2.seq.DupRate.xls", + "hisat2/samtools_stats", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.sorted.bam.stats", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_IAA_30M_REP1.umi_dedup.sorted.bam.stats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.sorted.bam.stats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP1.umi_dedup.sorted.bam.stats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.sorted.bam.stats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.flagstat", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.idxstats", + "hisat2/samtools_stats/RAP1_UNINDUCED_REP2.umi_dedup.sorted.bam.stats", + "hisat2/samtools_stats/WT_REP1.sorted.bam.flagstat", + "hisat2/samtools_stats/WT_REP1.sorted.bam.idxstats", + "hisat2/samtools_stats/WT_REP1.sorted.bam.stats", + "hisat2/samtools_stats/WT_REP1.umi_dedup.sorted.bam.flagstat", + "hisat2/samtools_stats/WT_REP1.umi_dedup.sorted.bam.idxstats", + "hisat2/samtools_stats/WT_REP1.umi_dedup.sorted.bam.stats", + "hisat2/samtools_stats/WT_REP2.sorted.bam.flagstat", + "hisat2/samtools_stats/WT_REP2.sorted.bam.idxstats", + "hisat2/samtools_stats/WT_REP2.sorted.bam.stats", + "hisat2/samtools_stats/WT_REP2.umi_dedup.sorted.bam.flagstat", + "hisat2/samtools_stats/WT_REP2.umi_dedup.sorted.bam.idxstats", + "hisat2/samtools_stats/WT_REP2.umi_dedup.sorted.bam.stats", + "hisat2/stringtie", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown/e2t.ctab", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown/e_data.ctab", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown/i2t.ctab", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown/i_data.ctab", + "hisat2/stringtie/RAP1_IAA_30M_REP1.ballgown/t_data.ctab", + "hisat2/stringtie/RAP1_IAA_30M_REP1.coverage.gtf", + "hisat2/stringtie/RAP1_IAA_30M_REP1.gene.abundance.txt", + "hisat2/stringtie/RAP1_IAA_30M_REP1.transcripts.gtf", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown/e2t.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown/e_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown/i2t.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown/i_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.ballgown/t_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.coverage.gtf", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.gene.abundance.txt", + "hisat2/stringtie/RAP1_UNINDUCED_REP1.transcripts.gtf", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown/e2t.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown/e_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown/i2t.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown/i_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.ballgown/t_data.ctab", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.coverage.gtf", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.gene.abundance.txt", + "hisat2/stringtie/RAP1_UNINDUCED_REP2.transcripts.gtf", + "hisat2/stringtie/WT_REP1.ballgown", + "hisat2/stringtie/WT_REP1.ballgown/e2t.ctab", + "hisat2/stringtie/WT_REP1.ballgown/e_data.ctab", + "hisat2/stringtie/WT_REP1.ballgown/i2t.ctab", + "hisat2/stringtie/WT_REP1.ballgown/i_data.ctab", + "hisat2/stringtie/WT_REP1.ballgown/t_data.ctab", + "hisat2/stringtie/WT_REP1.coverage.gtf", + "hisat2/stringtie/WT_REP1.gene.abundance.txt", + "hisat2/stringtie/WT_REP1.transcripts.gtf", + "hisat2/stringtie/WT_REP2.ballgown", + "hisat2/stringtie/WT_REP2.ballgown/e2t.ctab", + "hisat2/stringtie/WT_REP2.ballgown/e_data.ctab", + "hisat2/stringtie/WT_REP2.ballgown/i2t.ctab", + "hisat2/stringtie/WT_REP2.ballgown/i_data.ctab", + "hisat2/stringtie/WT_REP2.ballgown/t_data.ctab", + "hisat2/stringtie/WT_REP2.coverage.gtf", + "hisat2/stringtie/WT_REP2.gene.abundance.txt", + "hisat2/stringtie/WT_REP2.transcripts.gtf", + "hisat2/umitools", + "hisat2/umitools/genomic_dedup_log", + "hisat2/umitools/genomic_dedup_log/RAP1_IAA_30M_REP1.umi_dedup.sorted_UMICollapse.log", + "hisat2/umitools/genomic_dedup_log/RAP1_UNINDUCED_REP1.umi_dedup.sorted_UMICollapse.log", + "hisat2/umitools/genomic_dedup_log/RAP1_UNINDUCED_REP2.umi_dedup.sorted_UMICollapse.log", + "hisat2/umitools/genomic_dedup_log/WT_REP1.umi_dedup.sorted_UMICollapse.log", + "hisat2/umitools/genomic_dedup_log/WT_REP2.umi_dedup.sorted_UMICollapse.log", + "multiqc", + "multiqc/hisat2", + "multiqc/hisat2/multiqc_report.html", + "multiqc/hisat2/multiqc_report_data", + "multiqc/hisat2/multiqc_report_data/cutadapt_filtered_reads_plot.txt", + "multiqc/hisat2/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Counts.txt", + "multiqc/hisat2/multiqc_report_data/cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw-status-check-heatmap.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_adapter_content_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_overrepresented_sequences_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_per_base_n_content_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_per_base_sequence_quality_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Counts.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_per_sequence_quality_scores_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_sequence_counts_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_sequence_duplication_levels_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_raw_top_overrepresented_sequences_table.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_sequence_length_distribution_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed-status-check-heatmap.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_overrepresented_sequences_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_per_base_n_content_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_per_base_sequence_quality_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_per_sequence_quality_scores_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_sequence_counts_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_sequence_duplication_levels_plot.txt", + "multiqc/hisat2/multiqc_report_data/fastqc_trimmed_top_overrepresented_sequences_table.txt", + "multiqc/hisat2/multiqc_report_data/hisat2_pe_plot.txt", + "multiqc/hisat2/multiqc_report_data/hisat2_se_plot.txt", + "multiqc/hisat2/multiqc_report_data/junction_saturation_known.txt", + "multiqc/hisat2/multiqc_report_data/junction_saturation_novel.txt", + "multiqc/hisat2/multiqc_report_data/multiqc.log", + "multiqc/hisat2/multiqc_report_data/multiqc_citations.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_cutadapt.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_data.json", + "multiqc/hisat2/multiqc_report_data/multiqc_dupradar.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_fail_strand_check_table.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_fastqc_fastqc_raw.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_fastqc_fastqc_trimmed.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_featurecounts_biotype_plot.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_general_stats.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_hisat2.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_bam_stat.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_infer_experiment.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_junction_annotation.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_rseqc_read_distribution.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_salmon.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_sample-relationships_1.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_samtools_flagstat.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_samtools_idxstats.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_samtools_stats.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_software_versions.txt", + "multiqc/hisat2/multiqc_report_data/multiqc_sources.txt", + "multiqc/hisat2/multiqc_report_data/qualimap_gene_coverage_profile_Counts.txt", + "multiqc/hisat2/multiqc_report_data/qualimap_gene_coverage_profile_Normalised.txt", + "multiqc/hisat2/multiqc_report_data/qualimap_genomic_origin.txt", + "multiqc/hisat2/multiqc_report_data/qualimap_rnaseq_cov_hist.txt", + "multiqc/hisat2/multiqc_report_data/qualimap_rnaseq_genome_results.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_bam_stat.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_infer_experiment_plot.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_inner_distance.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_inner_distance_plot_Counts.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_inner_distance_plot_Percentages.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Events.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_annotation_junctions_plot_Junctions.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_saturation_all.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_saturation_plot_All_Junctions.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_saturation_plot_Known_Junctions.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_junction_saturation_plot_Novel_Junctions.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_read_distribution_plot.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_read_dups.txt", + "multiqc/hisat2/multiqc_report_data/rseqc_read_dups_plot.txt", + "multiqc/hisat2/multiqc_report_data/salmon_plot.txt", + "multiqc/hisat2/multiqc_report_data/samtools-flagstat-dp_Percentage_of_total.txt", + "multiqc/hisat2/multiqc_report_data/samtools-flagstat-dp_Read_counts.txt", + "multiqc/hisat2/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt", + "multiqc/hisat2/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt", + "multiqc/hisat2/multiqc_report_data/samtools-idxstats-mapped-reads-plot_Raw_Counts.txt", + "multiqc/hisat2/multiqc_report_data/samtools-stats-dp.txt", + "multiqc/hisat2/multiqc_report_data/samtools_alignment_plot.txt", + "multiqc/hisat2/multiqc_report_plots", + "multiqc/hisat2/multiqc_report_plots/pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/cutadapt_filtered_reads_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/cutadapt_trimmed_sequences_plot_3_Obs_Exp.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/dupradar.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fail_strand_check_table.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw-status-check-heatmap.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_adapter_content_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_overrepresented_sequences_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_per_base_n_content_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_per_base_sequence_quality_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_per_sequence_quality_scores_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_sequence_counts_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_sequence_duplication_levels_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_raw_top_overrepresented_sequences_table.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_sequence_length_distribution_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed-status-check-heatmap.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_overrepresented_sequences_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_per_base_n_content_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_per_base_sequence_quality_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_per_sequence_quality_scores_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_sequence_counts_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_sequence_duplication_levels_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/fastqc_trimmed_top_overrepresented_sequences_table.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/featurecounts_biotype_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/featurecounts_biotype_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/general_stats_table.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/hisat2_pe_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/hisat2_pe_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/hisat2_se_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/hisat2_se_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/qualimap_gene_coverage_profile_Normalised.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/qualimap_genomic_origin-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/qualimap_genomic_origin-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_bam_stat.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_infer_experiment_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_inner_distance_plot_Percentages.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Events-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_annotation_junctions_plot_Junctions-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_All_Junctions.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Known_Junctions.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_junction_saturation_plot_Novel_Junctions.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_distribution_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/rseqc_read_dups_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/salmon_plot.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/sample-relationships.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-dp_Percentage_of_total.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-flagstat-dp_Read_counts.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools-stats-dp.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools_alignment_plot-cnt.pdf", + "multiqc/hisat2/multiqc_report_plots/pdf/samtools_alignment_plot-pct.pdf", + "multiqc/hisat2/multiqc_report_plots/png", + "multiqc/hisat2/multiqc_report_plots/png/cutadapt_filtered_reads_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/cutadapt_filtered_reads_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Counts.png", + "multiqc/hisat2/multiqc_report_plots/png/cutadapt_trimmed_sequences_plot_3_Obs_Exp.png", + "multiqc/hisat2/multiqc_report_plots/png/dupradar.png", + "multiqc/hisat2/multiqc_report_plots/png/fail_strand_check_table.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw-status-check-heatmap.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_adapter_content_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_overrepresented_sequences_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_per_base_n_content_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_per_base_sequence_quality_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Counts.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_per_sequence_gc_content_plot_Percentages.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_per_sequence_quality_scores_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_sequence_counts_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_sequence_duplication_levels_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_raw_top_overrepresented_sequences_table.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_sequence_length_distribution_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed-status-check-heatmap.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_overrepresented_sequences_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_per_base_n_content_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_per_base_sequence_quality_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Counts.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_per_sequence_quality_scores_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_sequence_counts_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_sequence_duplication_levels_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/fastqc_trimmed_top_overrepresented_sequences_table.png", + "multiqc/hisat2/multiqc_report_plots/png/featurecounts_biotype_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/featurecounts_biotype_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/general_stats_table.png", + "multiqc/hisat2/multiqc_report_plots/png/hisat2_pe_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/hisat2_pe_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/hisat2_se_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/hisat2_se_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/qualimap_gene_coverage_profile_Counts.png", + "multiqc/hisat2/multiqc_report_plots/png/qualimap_gene_coverage_profile_Normalised.png", + "multiqc/hisat2/multiqc_report_plots/png/qualimap_genomic_origin-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/qualimap_genomic_origin-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_bam_stat.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_infer_experiment_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_inner_distance_plot_Counts.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_inner_distance_plot_Percentages.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Events-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_annotation_junctions_plot_Junctions-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_saturation_plot_All_Junctions.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_saturation_plot_Known_Junctions.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_junction_saturation_plot_Novel_Junctions.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_distribution_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/png/rseqc_read_dups_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/salmon_plot.png", + "multiqc/hisat2/multiqc_report_plots/png/sample-relationships.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-dp_Percentage_of_total.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-flagstat-dp_Read_counts.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools-stats-dp.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools_alignment_plot-cnt.png", + "multiqc/hisat2/multiqc_report_plots/png/samtools_alignment_plot-pct.png", + "multiqc/hisat2/multiqc_report_plots/svg", + "multiqc/hisat2/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/cutadapt_filtered_reads_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/cutadapt_trimmed_sequences_plot_3_Obs_Exp.svg", + "multiqc/hisat2/multiqc_report_plots/svg/dupradar.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fail_strand_check_table.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw-status-check-heatmap.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_adapter_content_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_overrepresented_sequences_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_per_base_n_content_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_per_base_sequence_quality_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_per_sequence_quality_scores_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_sequence_counts_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_sequence_duplication_levels_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_raw_top_overrepresented_sequences_table.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_sequence_length_distribution_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed-status-check-heatmap.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_overrepresented_sequences_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_per_base_n_content_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_per_base_sequence_quality_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_gc_content_plot_Percentages.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_per_sequence_quality_scores_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_sequence_counts_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_sequence_duplication_levels_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/fastqc_trimmed_top_overrepresented_sequences_table.svg", + "multiqc/hisat2/multiqc_report_plots/svg/featurecounts_biotype_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/featurecounts_biotype_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/general_stats_table.svg", + "multiqc/hisat2/multiqc_report_plots/svg/hisat2_pe_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/hisat2_pe_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/hisat2_se_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/hisat2_se_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/qualimap_gene_coverage_profile_Normalised.svg", + "multiqc/hisat2/multiqc_report_plots/svg/qualimap_genomic_origin-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/qualimap_genomic_origin-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_bam_stat.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_infer_experiment_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_inner_distance_plot_Counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_inner_distance_plot_Percentages.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Events-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_annotation_junctions_plot_Junctions-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_saturation_plot_All_Junctions.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Known_Junctions.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_junction_saturation_plot_Novel_Junctions.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_distribution_plot-pct.svg", + "multiqc/hisat2/multiqc_report_plots/svg/rseqc_read_dups_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/salmon_plot.svg", + "multiqc/hisat2/multiqc_report_plots/svg/sample-relationships.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-dp_Percentage_of_total.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-flagstat-dp_Read_counts.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Normalised_Counts-log.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts-log.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-idxstats-mapped-reads-plot_Raw_Counts-log.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools-stats-dp.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools_alignment_plot-cnt.svg", + "multiqc/hisat2/multiqc_report_plots/svg/samtools_alignment_plot-pct.svg", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "salmon", + "salmon/RAP1_IAA_30M_REP1", + "salmon/RAP1_IAA_30M_REP1/aux_info", + "salmon/RAP1_IAA_30M_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_IAA_30M_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/fld.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/meta_info.json", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_IAA_30M_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_IAA_30M_REP1/cmd_info.json", + "salmon/RAP1_IAA_30M_REP1/libParams", + "salmon/RAP1_IAA_30M_REP1/libParams/flenDist.txt", + "salmon/RAP1_IAA_30M_REP1/lib_format_counts.json", + "salmon/RAP1_IAA_30M_REP1/logs", + "salmon/RAP1_IAA_30M_REP1/logs/salmon_quant.log", + "salmon/RAP1_IAA_30M_REP1/quant.genes.sf", + "salmon/RAP1_IAA_30M_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP1", + "salmon/RAP1_UNINDUCED_REP1/aux_info", + "salmon/RAP1_UNINDUCED_REP1/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP1/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP1/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP1/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP1/libParams", + "salmon/RAP1_UNINDUCED_REP1/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP1/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP1/logs", + "salmon/RAP1_UNINDUCED_REP1/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP1/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP1/quant.sf", + "salmon/RAP1_UNINDUCED_REP2", + "salmon/RAP1_UNINDUCED_REP2/aux_info", + "salmon/RAP1_UNINDUCED_REP2/aux_info/ambig_info.tsv", + "salmon/RAP1_UNINDUCED_REP2/aux_info/expected_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/fld.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/meta_info.json", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias.gz", + "salmon/RAP1_UNINDUCED_REP2/aux_info/observed_bias_3p.gz", + "salmon/RAP1_UNINDUCED_REP2/cmd_info.json", + "salmon/RAP1_UNINDUCED_REP2/libParams", + "salmon/RAP1_UNINDUCED_REP2/libParams/flenDist.txt", + "salmon/RAP1_UNINDUCED_REP2/lib_format_counts.json", + "salmon/RAP1_UNINDUCED_REP2/logs", + "salmon/RAP1_UNINDUCED_REP2/logs/salmon_quant.log", + "salmon/RAP1_UNINDUCED_REP2/quant.genes.sf", + "salmon/RAP1_UNINDUCED_REP2/quant.sf", + "salmon/WT_REP1", + "salmon/WT_REP1/aux_info", + "salmon/WT_REP1/aux_info/ambig_info.tsv", + "salmon/WT_REP1/aux_info/expected_bias.gz", + "salmon/WT_REP1/aux_info/fld.gz", + "salmon/WT_REP1/aux_info/meta_info.json", + "salmon/WT_REP1/aux_info/observed_bias.gz", + "salmon/WT_REP1/aux_info/observed_bias_3p.gz", + "salmon/WT_REP1/cmd_info.json", + "salmon/WT_REP1/libParams", + "salmon/WT_REP1/libParams/flenDist.txt", + "salmon/WT_REP1/lib_format_counts.json", + "salmon/WT_REP1/logs", + "salmon/WT_REP1/logs/salmon_quant.log", + "salmon/WT_REP1/quant.genes.sf", + "salmon/WT_REP1/quant.sf", + "salmon/WT_REP2", + "salmon/WT_REP2/aux_info", + "salmon/WT_REP2/aux_info/ambig_info.tsv", + "salmon/WT_REP2/aux_info/expected_bias.gz", + "salmon/WT_REP2/aux_info/fld.gz", + "salmon/WT_REP2/aux_info/meta_info.json", + "salmon/WT_REP2/aux_info/observed_bias.gz", + "salmon/WT_REP2/aux_info/observed_bias_3p.gz", + "salmon/WT_REP2/cmd_info.json", + "salmon/WT_REP2/libParams", + "salmon/WT_REP2/libParams/flenDist.txt", + "salmon/WT_REP2/lib_format_counts.json", + "salmon/WT_REP2/logs", + "salmon/WT_REP2/logs/salmon_quant.log", + "salmon/WT_REP2/quant.genes.sf", + "salmon/WT_REP2/quant.sf", + "salmon/deseq2_qc", + "salmon/deseq2_qc/R_sessionInfo.log", + "salmon/deseq2_qc/deseq2.dds.RData", + "salmon/deseq2_qc/deseq2.pca.vals.txt", + "salmon/deseq2_qc/deseq2.plots.pdf", + "salmon/deseq2_qc/deseq2.sample.dists.txt", + "salmon/deseq2_qc/size_factors", + "salmon/deseq2_qc/size_factors/RAP1_IAA_30M_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP1.txt", + "salmon/deseq2_qc/size_factors/RAP1_UNINDUCED_REP2.txt", + "salmon/deseq2_qc/size_factors/WT_REP1.txt", + "salmon/deseq2_qc/size_factors/WT_REP2.txt", + "salmon/deseq2_qc/size_factors/deseq2.size_factors.RData", + "salmon/salmon.merged.gene_counts.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts.tsv", + "salmon/salmon.merged.gene_counts_length_scaled.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts_length_scaled.tsv", + "salmon/salmon.merged.gene_counts_scaled.SummarizedExperiment.rds", + "salmon/salmon.merged.gene_counts_scaled.tsv", + "salmon/salmon.merged.gene_lengths.tsv", + "salmon/salmon.merged.gene_tpm.tsv", + "salmon/salmon.merged.transcript_counts.SummarizedExperiment.rds", + "salmon/salmon.merged.transcript_counts.tsv", + "salmon/salmon.merged.transcript_lengths.tsv", + "salmon/salmon.merged.transcript_tpm.tsv", + "salmon/tx2gene.tsv", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt", + "umitools", + "umitools/RAP1_IAA_30M_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP2.umi_extract.log", + "umitools/WT_REP1.umi_extract.log", + "umitools/WT_REP2.umi_extract.log" + ], + [ + "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055", + "genome_gfp.gtf:md5,c98b12c302f15731bfc36bcf297cfe28", + "RAP1_IAA_30M_REP1_dupMatrix.txt:md5,a32f996ee7119c10cdfc3c706fed8560", + "RAP1_UNINDUCED_REP1_dupMatrix.txt:md5,0f0858724747050c17a9009fe7f7827d", + "RAP1_UNINDUCED_REP2_dupMatrix.txt:md5,6726b1c5e63db1f6efd2882de701adc1", + "WT_REP1_dupMatrix.txt:md5,1d57d6942d0720bddd25ff260dce08fa", + "WT_REP2_dupMatrix.txt:md5,b944b0f71ef8a98b5a4d53f4542c8e6f", + "RAP1_IAA_30M_REP1_intercept_slope.txt:md5,a07fbfcbd487003cdd2123cb89209d14", + "RAP1_UNINDUCED_REP1_intercept_slope.txt:md5,38cea811141edcfd28d1e7770628f6c9", + "RAP1_UNINDUCED_REP2_intercept_slope.txt:md5,b897caec80a37ace72c156ed091acbcd", + "WT_REP1_intercept_slope.txt:md5,9895ef03e6f9282b11c4a32fe16a25b0", + "WT_REP2_intercept_slope.txt:md5,6c22669508aecfdfe5583c38496db314", + "RAP1_IAA_30M_REP1.biotype_counts_mqc.tsv:md5,8433a395e65315feb0f8bfca4a1d1aba", + "RAP1_IAA_30M_REP1.biotype_counts_rrna_mqc.tsv:md5,dde2de0cb90e10d0195c726f768e9941", + "RAP1_IAA_30M_REP1.featureCounts.txt:md5,1ecf699b693201b29cadd187bb0f2971", + "RAP1_UNINDUCED_REP1.biotype_counts_mqc.tsv:md5,036ab790c1e5fb2625c543ddccbf492d", + "RAP1_UNINDUCED_REP1.biotype_counts_rrna_mqc.tsv:md5,845ff9059c72bc6722a8de69776e22bb", + "RAP1_UNINDUCED_REP1.featureCounts.txt:md5,5776b0c29cfbf0551a1e9020c1d799c0", + "RAP1_UNINDUCED_REP2.biotype_counts_mqc.tsv:md5,5784c14524d6d06a927a745f1398d90e", + "RAP1_UNINDUCED_REP2.biotype_counts_rrna_mqc.tsv:md5,6d3fa4c88c7fe61f638e4624ad5e22f0", + "RAP1_UNINDUCED_REP2.featureCounts.txt:md5,9a53ceb0d1357e8015dedbd77cf620cc", + "WT_REP1.biotype_counts_mqc.tsv:md5,e9b102b8576a141a6cc0ce4876b1b5ea", + "WT_REP1.biotype_counts_rrna_mqc.tsv:md5,8ef76d717492ca23764938aee8ea33a9", + "WT_REP1.featureCounts.txt:md5,fcda1cfb8b3664e95962c65cbbd45b9e", + "WT_REP2.biotype_counts_mqc.tsv:md5,6760be59877c02cb7ca5128e5be05f8e", + "WT_REP2.biotype_counts_rrna_mqc.tsv:md5,12294618fe44df1e7f39348372dcb481", + "WT_REP2.featureCounts.txt:md5,a2b116e5a1ddbf47659eba4c02ca9c84", + "coverage_profile_along_genes_(high).txt:md5,b10337c576a87e918a30c0e1f497752d", + "coverage_profile_along_genes_(low).txt:md5,0d7a6b63a10241843b5380f1ab16a160", + "coverage_profile_along_genes_(total).txt:md5,0d7a6b63a10241843b5380f1ab16a160", + "coverage_profile_along_genes_(high).txt:md5,1ca7ae6a9528442bcf32baabd72d369f", + "coverage_profile_along_genes_(low).txt:md5,cfabb16286c8ca57dedd66097d21e0b1", + "coverage_profile_along_genes_(total).txt:md5,cfabb16286c8ca57dedd66097d21e0b1", + "coverage_profile_along_genes_(high).txt:md5,609bfc84014c5b175a1b577a7491ba2b", + "coverage_profile_along_genes_(low).txt:md5,a0230508803a0f61ff3bd807a5596934", + "coverage_profile_along_genes_(total).txt:md5,a0230508803a0f61ff3bd807a5596934", + "coverage_profile_along_genes_(high).txt:md5,28950a8298e08c0609cae6873f631dab", + "coverage_profile_along_genes_(low).txt:md5,ea1a6cccb02d528d52025acbc4006d8a", + "coverage_profile_along_genes_(total).txt:md5,ea1a6cccb02d528d52025acbc4006d8a", + "coverage_profile_along_genes_(high).txt:md5,90b40674d78d1ea532d131f8080672c2", + "coverage_profile_along_genes_(low).txt:md5,74625695f7e325b51d076fcaa96e0368", + "coverage_profile_along_genes_(total).txt:md5,74625695f7e325b51d076fcaa96e0368", + "RAP1_IAA_30M_REP1.infer_experiment.txt:md5,b0cf79d3b9d1d3742ca4698cada70ea6", + "RAP1_UNINDUCED_REP1.infer_experiment.txt:md5,69f95beb80658b40ef4964b0cec41cb6", + "RAP1_UNINDUCED_REP2.infer_experiment.txt:md5,d48a674bd9e64adadd66b89b5c096056", + "WT_REP1.infer_experiment.txt:md5,8559d69b9f350897869ca61097643449", + "WT_REP2.infer_experiment.txt:md5,2ac93ef54e0aaa62482ceb45c91c64bb", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,b3f8769326278237c14c0820a3c627c3", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,a8047633f3ba499a0c68af993429b1af", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,dd7844bd42536ccba73b5b41b11a4c89", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,a715eca5dcbed38cbb21e6aeae27d4c6", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,97d59d95d8298cde4082ff4bfcf06fd6", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,349abadc17965a12f1fd2a24b111203e", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,cd81e0cbece094019ca814d34f4f3033", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,7f21bf2c570993f5a444c2e67c7d2983", + "e2t.ctab:md5,54dd6de2daa90e973f47524a738a3d69", + "e_data.ctab:md5,593daf0b84f008c0c64319990ef2fd42", + "i2t.ctab:md5,dda3d3ccd7d4184d947c654ae73efb7b", + "i_data.ctab:md5,01c675638f918a70ea689f618a2610bc", + "cutadapt_filtered_reads_plot.txt:md5,3f122969fa288888e5abef061b7963f2", + "cutadapt_trimmed_sequences_plot_3_Counts.txt:md5,5e8a821c9a4deb46c11bc65969b8864f", + "cutadapt_trimmed_sequences_plot_3_Obs_Exp.txt:md5,bf8abefa7c5f2f1e1140749983279d9d", + "fastqc_raw-status-check-heatmap.txt:md5,5a89b0d8d162f6b1dbdaf39457bbc03b", + "fastqc_raw_adapter_content_plot.txt:md5,da0389be84cfdd189b1d045212eb2974", + "fastqc_raw_overrepresented_sequences_plot.txt:md5,25d88ea8a72f55e8a374ae802bc7f0b1", + "fastqc_raw_per_base_n_content_plot.txt:md5,d368d7e36ca2f73dcde61f2b486d8213", + "fastqc_raw_per_base_sequence_quality_plot.txt:md5,5c3065b549129702b185ea1b817da420", + "fastqc_raw_per_sequence_gc_content_plot_Counts.txt:md5,9ddaa50167117d3c9188ccf015427704", + "fastqc_raw_per_sequence_gc_content_plot_Percentages.txt:md5,f10ee2881b61308af35f304aa3d810a3", + "fastqc_raw_per_sequence_quality_scores_plot.txt:md5,b5f9a02933e3065952237afd2ec9ce82", + "fastqc_raw_sequence_counts_plot.txt:md5,cbae4979d5db66d3b894abcf8d1c453c", + "fastqc_raw_sequence_duplication_levels_plot.txt:md5,8812cee16f6ca65e2c33635754de1772", + "fastqc_sequence_length_distribution_plot.txt:md5,7a2263743d5c452dc940eabffcb0ea82", + "fastqc_trimmed-status-check-heatmap.txt:md5,1913b4c077a341437475c758fb119559", + "fastqc_trimmed_overrepresented_sequences_plot.txt:md5,6a7c50868a36ca6052e9f4adba6b8567", + "fastqc_trimmed_per_base_n_content_plot.txt:md5,0cdd698fb9a2a4987572b9b4e8c8990e", + "fastqc_trimmed_per_base_sequence_quality_plot.txt:md5,82a9073151a413efbb0f11be8d0db1f2", + "fastqc_trimmed_per_sequence_gc_content_plot_Counts.txt:md5,08b43a02f34a3afa7eaddef602cdcafd", + "fastqc_trimmed_per_sequence_gc_content_plot_Percentages.txt:md5,0768af6bf06bbad52a3ac6ec0a444138", + "fastqc_trimmed_per_sequence_quality_scores_plot.txt:md5,ac167d250e9f88899da0ea81ef2b002e", + "fastqc_trimmed_sequence_counts_plot.txt:md5,370ddc5e58838dc5b55e53b6f8b8902a", + "fastqc_trimmed_sequence_duplication_levels_plot.txt:md5,b106d8ee7b83efe237afb862ebbe2f47", + "multiqc_citations.txt:md5,da5043f8ab9b5bd51d91ccf3111c655e", + "multiqc_cutadapt.txt:md5,0937983d3ddfeccd4ccc5b0d74477558", + "multiqc_fastqc_fastqc_raw.txt:md5,81c3c1a2575a1891a7f2a9637a0f2cc0", + "multiqc_fastqc_fastqc_trimmed.txt:md5,a8a003b61b03295c416f3eb66c1cca65", + "multiqc_featurecounts_biotype_plot.txt:md5,078841c35fb163ad1e7c99393015ecac", + "multiqc_samtools_idxstats.txt:md5,35fe3b73df5ab19b53c117d3269e7e72", + "qualimap_gene_coverage_profile_Counts.txt:md5,54613117acef91c2271327e31203242c", + "qualimap_gene_coverage_profile_Normalised.txt:md5,f2884314cb4296877eb6ffd03a12a5b8", + "qualimap_rnaseq_cov_hist.txt:md5,c5abd5f3ddd835052c7bcac0f92ff0a4", + "rseqc_infer_experiment_plot.txt:md5,8e71c47cf89a0283de00ba1e4325a25f", + "samtools-idxstats-mapped-reads-plot_Normalised_Counts.txt:md5,75acd04232d1804b5f960ee4c5db4722", + "samtools-idxstats-mapped-reads-plot_Observed_over_Expected_Counts.txt:md5,f9f9e9472fcd03f74e0186d29ee922dd", + "samtools-idxstats-mapped-reads-plot_Raw_Counts.txt:md5,e71efae3d46b66490b096b12b4ae27c5", + "ambig_info.tsv:md5,0b462f9b2d8eff1b4d76b7433434899c", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,910a60cb6ef954008c9e6d037342d773", + "lib_format_counts.json:md5,5846a0bb874171d30ef60059f6c10868", + "ambig_info.tsv:md5,2c45f73a5f73ae4d0053198ea98c87f3", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,e364ca1b150c3c0ae57f0397ff8ae471", + "lib_format_counts.json:md5,d662a174758011a56e6669f4810e0aaf", + "ambig_info.tsv:md5,644c4352884872a05fe36cbb2b119879", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,b472447f8ac9530be1ca2d9733af2686", + "lib_format_counts.json:md5,f01d7b98afc4b6bab773536a88e08e7e", + "ambig_info.tsv:md5,d6ca0827f17be19b6e08730a45063f9d", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,bdc36620d04525d343faea5297f0f0d7", + "lib_format_counts.json:md5,cf8bf8db790bede5136fca52968e7c43", + "ambig_info.tsv:md5,4aa8036707dc557004a80852394beebe", + "expected_bias.gz:md5,3407f87245d0003e0ffbfdf6d8c04f20", + "observed_bias.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "observed_bias_3p.gz:md5,92bcd0592d22a6a58d0360fc76103e56", + "cmd_info.json:md5,809380ddce725a8fab75dd7741b64bf6", + "lib_format_counts.json:md5,d231ba7624b67eb654989f69530e2925", + "R_sessionInfo.log:md5,fb0da0d7ad6994ed66a8e68348b19676", + "tx2gene.tsv:md5,0e2418a69d2eba45097ebffc2f700bfe" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-11T18:01:45.228731692" + }, + "--umi_dedup_tool 'umitools - stub": { + "content": [ + 32, + { + "BBMAP_BBSPLIT": { + "bbmap": 39.1 + }, + "CAT_FASTQ": { + "cat": 9.5 + }, + "CUSTOM_CATADDITIONALFASTA": { + "python": null + }, + "CUSTOM_GETCHROMSIZES": { + "getchromsizes": 1.21 + }, + "FASTQC": { + "fastqc": "0.12.1" + }, + "FQ_LINT": { + "fq": "0.12.0 (2024-07-08)" + }, + "GTF2BED": { + "perl": "5.26.2" + }, + "GTF_FILTER": { + "python": "3.9.5" + }, + "GUNZIP_ADDITIONAL_FASTA": { + "gunzip": 1.1 + }, + "GUNZIP_GTF": { + "gunzip": 1.1 + }, + "STAR_GENOMEGENERATE": { + "star": "2.7.11b", + "samtools": 1.2, + "gawk": "5.1.0" + }, + "TRIMGALORE": { + "trimgalore": "0.6.10", + "cutadapt": 4.9 + }, + "UMITOOLS_EXTRACT": { + "umitools": "1.1.5" + }, + "UNTAR_SALMON_INDEX": { + "untar": 1.34 + }, + "Workflow": { + "nf-core/rnaseq": "v3.18.0dev" + } + }, + [ + "custom", + "custom/out", + "custom/out/genome_transcriptome.fasta", + "custom/out/genome_transcriptome.gtf", + "fastqc", + "fastqc/raw", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.html", + "fastqc/raw/RAP1_IAA_30M_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP1_raw.zip", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.html", + "fastqc/raw/RAP1_UNINDUCED_REP2_raw.zip", + "fastqc/raw/WT_REP1_raw.html", + "fastqc/raw/WT_REP1_raw.zip", + "fastqc/raw/WT_REP2_raw.html", + "fastqc/raw/WT_REP2_raw.zip", + "fastqc/trim", + "fq_lint", + "fq_lint/raw", + "fq_lint/raw/RAP1_IAA_30M_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP1.fq_lint.txt", + "fq_lint/raw/RAP1_UNINDUCED_REP2.fq_lint.txt", + "fq_lint/raw/WT_REP1.fq_lint.txt", + "fq_lint/raw/WT_REP2.fq_lint.txt", + "multiqc", + "multiqc/star_salmon", + "multiqc/star_salmon/multiqc_data", + "multiqc/star_salmon/multiqc_plots", + "multiqc/star_salmon/multiqc_report.html", + "pipeline_info", + "pipeline_info/nf_core_rnaseq_software_mqc_versions.yml", + "trimgalore", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_IAA_30M_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP1_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/RAP1_UNINDUCED_REP2_trimmed.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP1_trimmed_2.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_1.fastq.gz_trimming_report.txt", + "trimgalore/WT_REP2_trimmed_2.fastq.gz_trimming_report.txt", + "umitools", + "umitools/RAP1_IAA_30M_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP1.umi_extract.log", + "umitools/RAP1_UNINDUCED_REP2.umi_extract.log", + "umitools/WT_REP1.umi_extract.log", + "umitools/WT_REP2.umi_extract.log" + ], + [ + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e", + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "meta": { + "nf-test": "0.9.0", + "nextflow": "24.10.2" + }, + "timestamp": "2024-12-11T18:08:48.404716766" + } +} diff --git a/workflows/rnaseq/assets/multiqc/multiqc_config.yml b/workflows/rnaseq/assets/multiqc/multiqc_config.yml index 08360f58c..9b8ee731a 100644 --- a/workflows/rnaseq/assets/multiqc/multiqc_config.yml +++ b/workflows/rnaseq/assets/multiqc/multiqc_config.yml @@ -1,5 +1,5 @@ report_comment: > - This report has been generated by the nf-core/rnaseq analysis pipeline. For information about how to interpret these results, please see the documentation. + This report has been generated by the nf-core/rnaseq analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: # Important checks and failures sample-status: diff --git a/workflows/rnaseq/main.nf b/workflows/rnaseq/main.nf index 84bedaeb6..508aeb5fb 100755 --- a/workflows/rnaseq/main.nf +++ b/workflows/rnaseq/main.nf @@ -15,8 +15,11 @@ include { MULTIQC_CUSTOM_BIOTYPE } from '../../modules/local/multiqc // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { ALIGN_STAR } from '../../subworkflows/local/align_star' -include { QUANTIFY_RSEM } from '../../subworkflows/local/quantify_rsem' +include { ALIGN_STAR } from '../../subworkflows/local/align_star' +include { QUANTIFY_RSEM } from '../../subworkflows/local/quantify_rsem' +include { BAM_DEDUP_UMI as BAM_DEDUP_UMI_STAR } from '../../subworkflows/nf-core/bam_dedup_umi' +include { BAM_DEDUP_UMI as BAM_DEDUP_UMI_HISAT2 } from '../../subworkflows/nf-core/bam_dedup_umi' + include { checkSamplesAfterGrouping } from '../../subworkflows/local/utils_nfcore_rnaseq_pipeline' include { multiqcTsvFromList } from '../../subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness' include { getStarPercentMapped } from '../../subworkflows/local/utils_nfcore_rnaseq_pipeline' @@ -34,7 +37,6 @@ include { methodsDescriptionText } from '../../subworkflows/local/utils_ // MODULE: Installed directly from nf-core/modules // include { DUPRADAR } from '../../modules/nf-core/dupradar' -include { SAMTOOLS_SORT } from '../../modules/nf-core/samtools/sort' include { PRESEQ_LCEXTRAP } from '../../modules/nf-core/preseq/lcextrap' include { QUALIMAP_RNASEQ } from '../../modules/nf-core/qualimap/rnaseq' include { STRINGTIE_STRINGTIE } from '../../modules/nf-core/stringtie/stringtie' @@ -42,7 +44,6 @@ include { SUBREAD_FEATURECOUNTS } from '../../modules/nf-core/subread/featu include { KRAKEN2_KRAKEN2 as KRAKEN2 } from '../../modules/nf-core/kraken2/kraken2/main' include { BRACKEN_BRACKEN as BRACKEN } from '../../modules/nf-core/bracken/bracken/main' include { MULTIQC } from '../../modules/nf-core/multiqc' -include { UMITOOLS_PREPAREFORRSEM as UMITOOLS_PREPAREFORSALMON } from '../../modules/nf-core/umitools/prepareforrsem' include { BEDTOOLS_GENOMECOV as BEDTOOLS_GENOMECOV_FW } from '../../modules/nf-core/bedtools/genomecov' include { BEDTOOLS_GENOMECOV as BEDTOOLS_GENOMECOV_REV } from '../../modules/nf-core/bedtools/genomecov' @@ -54,11 +55,8 @@ include { samplesheetToList } from 'plugin/nf-schema' include { paramsSummaryMultiqc } from '../../subworkflows/nf-core/utils_nfcore_pipeline' include { softwareVersionsToYAML } from '../../subworkflows/nf-core/utils_nfcore_pipeline' include { FASTQ_ALIGN_HISAT2 } from '../../subworkflows/nf-core/fastq_align_hisat2' -include { BAM_SORT_STATS_SAMTOOLS } from '../../subworkflows/nf-core/bam_sort_stats_samtools' include { BAM_MARKDUPLICATES_PICARD } from '../../subworkflows/nf-core/bam_markduplicates_picard' include { BAM_RSEQC } from '../../subworkflows/nf-core/bam_rseqc' -include { BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS as BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME } from '../../subworkflows/nf-core/bam_dedup_stats_samtools_umitools' -include { BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS as BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME } from '../../subworkflows/nf-core/bam_dedup_stats_samtools_umitools' include { BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG as BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_FORWARD } from '../../subworkflows/nf-core/bedgraph_bedclip_bedgraphtobigwig' include { BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG as BEDGRAPH_BEDCLIP_BEDGRAPHTOBIGWIG_REVERSE } from '../../subworkflows/nf-core/bedgraph_bedclip_bedgraphtobigwig' include { QUANTIFY_PSEUDO_ALIGNMENT as QUANTIFY_STAR_SALMON } from '../../subworkflows/nf-core/quantify_pseudo_alignment' @@ -156,7 +154,8 @@ workflow RNASEQ { params.with_umi, params.umi_discard_read, params.stranded_threshold, - params.unstranded_threshold + params.unstranded_threshold, + params.skip_linting ) ch_multiqc_files = ch_multiqc_files.mix(FASTQ_QC_TRIM_FILTER_SETSTRANDEDNESS.out.multiqc_files) @@ -177,6 +176,8 @@ workflow RNASEQ { ch_genome_bam_index = Channel.empty() ch_star_log = Channel.empty() ch_unaligned_sequences = Channel.empty() + ch_transcriptome_bam = Channel.empty() + if (!params.skip_alignment && params.aligner == 'star_salmon') { // Check if an AWS iGenome has been provided to use the appropriate version of STAR def is_aws_igenome = false @@ -201,9 +202,6 @@ workflow RNASEQ { ch_transcriptome_bam = ALIGN_STAR.out.bam_transcript ch_star_log = ALIGN_STAR.out.log_final ch_unaligned_sequences = ALIGN_STAR.out.fastq - ch_multiqc_files = ch_multiqc_files.mix(ALIGN_STAR.out.stats.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(ALIGN_STAR.out.flagstat.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(ALIGN_STAR.out.idxstats.collect{it[1]}) ch_multiqc_files = ch_multiqc_files.mix(ch_star_log.collect{it[1]}) if (params.bam_csi_index) { @@ -215,67 +213,33 @@ workflow RNASEQ { // SUBWORKFLOW: Remove duplicate reads from BAM file based on UMIs // if (params.with_umi) { - // Deduplicate genome BAM file before downstream analysis - BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME ( - ch_genome_bam.join(ch_genome_bam_index, by: [0]), - params.umitools_dedup_stats - ) - ch_genome_bam = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.bam - ch_genome_bam_index = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.bai - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.deduplog.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.stats.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.flagstat.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.idxstats.collect{it[1]}) - - if (params.bam_csi_index) { - ch_genome_bam_index = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.csi - } - ch_versions = ch_versions.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.versions) - // Co-ordinate sort, index and run stats on transcriptome BAM - BAM_SORT_STATS_SAMTOOLS ( + BAM_DEDUP_UMI_STAR( + ch_genome_bam.join(ch_genome_bam_index, by: [0]), + ch_fasta.map { [ [:], it ] }, + params.umi_dedup_tool, + params.umitools_dedup_stats, + params.bam_csi_index, ch_transcriptome_bam, ch_transcript_fasta.map { [ [:], it ] } ) - ch_transcriptome_sorted_bam = BAM_SORT_STATS_SAMTOOLS.out.bam - ch_transcriptome_sorted_bai = BAM_SORT_STATS_SAMTOOLS.out.bai - // Deduplicate transcriptome BAM file before read counting with Salmon - BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME ( - ch_transcriptome_sorted_bam.join(ch_transcriptome_sorted_bai, by: [0]), - params.umitools_dedup_stats - ) + ch_genome_bam = BAM_DEDUP_UMI_STAR.out.bam + ch_transcriptome_bam = BAM_DEDUP_UMI_STAR.out.transcriptome_bam + ch_genome_bam_index = BAM_DEDUP_UMI_STAR.out.bai + ch_versions = ch_versions.mix(BAM_DEDUP_UMI_STAR.out.versions) - // Name sort BAM before passing to Salmon - SAMTOOLS_SORT ( - BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME.out.bam, - ch_fasta.map { [ [:], it ] } - ) + ch_multiqc_files = ch_multiqc_files + .mix(BAM_DEDUP_UMI_STAR.out.multiqc_files) - // Only run prepare_for_rsem.py on paired-end BAM files - SAMTOOLS_SORT - .out - .bam - .branch { - meta, bam -> - single_end: meta.single_end - return [ meta, bam ] - paired_end: !meta.single_end - return [ meta, bam ] - } - .set { ch_umitools_dedup_bam } - - // Fix paired-end reads in name sorted BAM file - // See: https://github.com/nf-core/rnaseq/issues/828 - UMITOOLS_PREPAREFORSALMON ( - ch_umitools_dedup_bam.paired_end.map { meta, bam -> [ meta, bam, [] ] } - ) - ch_versions = ch_versions.mix(UMITOOLS_PREPAREFORSALMON.out.versions.first()) + } else { + // The deduplicated stats should take priority for MultiQC, but use + // them straight out of the aligner otherwise - ch_umitools_dedup_bam - .single_end - .mix(UMITOOLS_PREPAREFORSALMON.out.bam) - .set { ch_transcriptome_bam } + ch_multiqc_files = ch_multiqc_files + .mix(ALIGN_STAR.out.stats.collect{it[1]}) + .mix(ALIGN_STAR.out.flagstat.collect{it[1]}) + .mix(ALIGN_STAR.out.idxstats.collect{it[1]}) } // @@ -357,9 +321,6 @@ workflow RNASEQ { ch_genome_bam = FASTQ_ALIGN_HISAT2.out.bam ch_genome_bam_index = FASTQ_ALIGN_HISAT2.out.bai ch_unaligned_sequences = FASTQ_ALIGN_HISAT2.out.fastq - ch_multiqc_files = ch_multiqc_files.mix(FASTQ_ALIGN_HISAT2.out.stats.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(FASTQ_ALIGN_HISAT2.out.flagstat.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(FASTQ_ALIGN_HISAT2.out.idxstats.collect{it[1]}) ch_multiqc_files = ch_multiqc_files.mix(FASTQ_ALIGN_HISAT2.out.summary.collect{it[1]}) if (params.bam_csi_index) { @@ -370,21 +331,33 @@ workflow RNASEQ { // // SUBWORKFLOW: Remove duplicate reads from BAM file based on UMIs // + if (params.with_umi) { - BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME ( + + BAM_DEDUP_UMI_HISAT2( ch_genome_bam.join(ch_genome_bam_index, by: [0]), - params.umitools_dedup_stats + ch_fasta.map { [ [:], it ] }, + params.umi_dedup_tool, + params.umitools_dedup_stats, + params.bam_csi_index, + ch_transcriptome_bam, + ch_transcript_fasta.map { [ [:], it ] } ) - ch_genome_bam = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.bam - ch_genome_bam_index = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.bai - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.deduplog.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.stats.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.flagstat.collect{it[1]}) - ch_multiqc_files = ch_multiqc_files.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.idxstats.collect{it[1]}) - if (params.bam_csi_index) { - ch_genome_bam_index = BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.csi - } - ch_versions = ch_versions.mix(BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME.out.versions) + + ch_genome_bam = BAM_DEDUP_UMI_HISAT2.out.bam + ch_genome_bam_index = BAM_DEDUP_UMI_HISAT2.out.bai + ch_versions = ch_versions.mix(BAM_DEDUP_UMI_HISAT2.out.versions) + + ch_multiqc_files = ch_multiqc_files + .mix(BAM_DEDUP_UMI_HISAT2.out.multiqc_files) + } else { + + // The deduplicated stats should take priority for MultiQC, but use + // them straight out of the aligner otherwise + ch_multiqc_files = ch_multiqc_files + .mix(FASTQ_ALIGN_HISAT2.out.stats.collect{it[1]}) + .mix(FASTQ_ALIGN_HISAT2.out.flagstat.collect{it[1]}) + .mix(FASTQ_ALIGN_HISAT2.out.idxstats.collect{it[1]}) } } diff --git a/workflows/rnaseq/nextflow.config b/workflows/rnaseq/nextflow.config index 9cbf0cd30..e7a6290fa 100644 --- a/workflows/rnaseq/nextflow.config +++ b/workflows/rnaseq/nextflow.config @@ -19,6 +19,7 @@ includeConfig "../../subworkflows/nf-core/fastq_align_hisat2/nextflow.config" includeConfig "../../subworkflows/nf-core/fastq_fastqc_umitools_fastp/nextflow.config" includeConfig "../../subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/nextflow.config" includeConfig "../../subworkflows/nf-core/fastq_subsample_fq_salmon/nextflow.config" +includeConfig "../../subworkflows/nf-core/fastq_qc_trim_filter_setstrandedness/nextflow.config" // // STAR Salmon alignment options @@ -76,7 +77,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { if (params.with_umi) { process { - withName: 'NFCORE_RNASEQ:RNASEQ:SAMTOOLS_SORT' { + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_UMI_(STAR|HISAT2):SAMTOOLS_SORT' { ext.args = '-n' ext.prefix = { "${meta.id}.umi_dedup.transcriptome" } publishDir = [ @@ -87,7 +88,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: 'NFCORE_RNASEQ:RNASEQ:UMITOOLS_PREPAREFORSALMON' { + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_UMI_(STAR|HISAT2):UMITOOLS_PREPAREFORRSEM' { ext.prefix = { "${meta.id}.umi_dedup.transcriptome.filtered" } publishDir = [ [ @@ -104,7 +105,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_UMI_STAR:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_SORT' { ext.prefix = { "${meta.id}.transcriptome.sorted" } publishDir = [ path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, @@ -114,7 +115,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_UMI_STAR:BAM_SORT_STATS_SAMTOOLS:SAMTOOLS_INDEX' { publishDir = [ path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, mode: params.publish_dir_mode, @@ -123,7 +124,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: 'NFCORE_RNASEQ:RNASEQ:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { + withName: 'NFCORE_RNASEQ:RNASEQ:BAM_DEDUP_UMI_STAR:BAM_SORT_STATS_SAMTOOLS:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.transcriptome.sorted.bam" } publishDir = [ path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}/samtools_stats" : params.outdir }, @@ -133,12 +134,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:UMITOOLS_DEDUP' { - ext.args = { [ - meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', - params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', - params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' - ].join(' ').trim() } + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_TRANSCRIPTOME:UMI(COLLAPSE|TOOLS_DEDUP)' { ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted" } publishDir = [ [ @@ -160,7 +156,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:SAMTOOLS_INDEX' { + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_TRANSCRIPTOME:SAMTOOLS_INDEX' { publishDir = [ path: { params.save_align_intermeds || params.save_umi_intermeds ? "${params.outdir}/${params.aligner}" : params.outdir }, mode: params.publish_dir_mode, @@ -169,7 +165,7 @@ if (!params.skip_alignment && params.aligner == 'star_salmon') { ] } - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_TRANSCRIPTOME:BAM_STATS_SAMTOOLS:.*' { + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_TRANSCRIPTOME:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.umi_dedup.transcriptome.sorted.bam" } publishDir = [ path: { "${params.outdir}/${params.aligner}/samtools_stats" }, @@ -227,12 +223,25 @@ if (!params.skip_alignment) { if (params.with_umi && ['star_salmon','hisat2'].contains(params.aligner)) { process { - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:UMITOOLS_DEDUP' { - ext.args = { [ + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_(GEN|TRANSCRIPT)OME:UMITOOLS_DEDUP' { + ext.args = { [ meta.single_end ? '' : '--unpaired-reads=discard --chimeric-pairs=discard', params.umitools_grouping_method ? "--method='${params.umitools_grouping_method}'" : '', params.umitools_umi_separator ? "--umi-separator='${params.umitools_umi_separator}'" : '' ].join(' ').trim() } + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMICOLLAPSE_(GEN|TRANSCRIPT)OME:UMICOLLAPSE' { + ext.args = { [ + '--two-pass', + meta.single_end ? '' : '--paired --remove-unpaired --remove-chimeric', + params.umitools_grouping_method ? "--algo '" + ['directional':'dir','adjacency':'adj','cluster':'cc'].get(params.umitools_grouping_method, '') + "'" : '', + params.umitools_umi_separator ? "--umi-sep '${params.umitools_umi_separator}'" : '', + ].join(' ').trim()} + } + + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:UMI(COLLAPSE|TOOLS_DEDUP)' { ext.prefix = { "${meta.id}.umi_dedup.sorted" } publishDir = [ [ @@ -254,7 +263,7 @@ if (!params.skip_alignment) { ] } - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:SAMTOOLS_INDEX' { + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:SAMTOOLS_INDEX' { ext.args = { params.bam_csi_index ? '-c' : '' } ext.prefix = { "${meta.id}.umi_dedup.sorted" } publishDir = [ @@ -265,7 +274,7 @@ if (!params.skip_alignment) { ] } - withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS_GENOME:BAM_STATS_SAMTOOLS:.*' { + withName: '.*:BAM_DEDUP_STATS_SAMTOOLS_UMI(COLLAPSE|TOOLS)_GENOME:BAM_STATS_SAMTOOLS:.*' { ext.prefix = { "${meta.id}.umi_dedup.sorted.bam" } publishDir = [ path: { "${params.outdir}/${params.aligner}/samtools_stats" },