Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add nf-core mirdeep2 and a test case #448

Merged
merged 12 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [[#439]](https://github.com/nf-core/smrnaseq/pull/439) - Fix [Fix paired end samples processing](https://github.com/nf-core/smrnaseq/issues/415) - Fix paired end sample handling and add test profile.
- [[#441]](https://github.com/nf-core/smrnaseq/pull/441) - Migrate [local contaminant bowtie to nf-core](https://github.com/nf-core/smrnaseq/issues/436) - Replace local processes with `BOWTIE2_ALIGN`.
- [[#443]](https://github.com/nf-core/smrnaseq/pull/443) - Migrate [mirna and genome_quant bowtie to nf-core](https://github.com/nf-core/smrnaseq/issues/436) - Replace local processes with `BOWTIE_ALIGN`.
- [[#448]](https://github.com/nf-core/smrnaseq/pull/448) - Migrate local mirdeep to [nf-core mirdeep2 modules and subworkflow](https://github.com/nf-core/smrnaseq/issues/443) and generate [test profile for mirdeep2](https://github.com/nf-core/smrnaseq/issues/399).

## v2.3.1 - 2024-04-18 - Gray Zinc Dalmation Patch

Expand Down
25 changes: 10 additions & 15 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -539,24 +539,19 @@ process {
// MIRDEEP
//

withName: 'PIGZ_UNCOMPRESS' {
tag = {"${meta.id}"}
stageInMode = 'copy'
withName: 'MIRDEEP2_MAPPER' {
ext.args = "-c -j -m -v"
publishDir = [ enabled: false ]
}

withName: 'NFCORE_SMRNASEQ:MIRDEEP2:MIRDEEP2_MAPPER' {
publishDir = [
path: { "${params.outdir}/mirdeep2/mapper" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
withName: 'SEQKIT_REPLACE' {
ext.args = "-p '\s.+'"
ext.suffix = "fasta"
publishDir = [ enabled: false ]
}
withName: 'NFCORE_SMRNASEQ:MIRDEEP2:MIRDEEP2_RUN' {
publishDir = [
path: { "${params.outdir}/mirdeep2/run" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]

withName: 'MIRDEEP2_MIRDEEP2' {
errorStrategy = { task.exitStatus in (255) ? 'ignore' : '' }
}

//
Expand Down
6 changes: 3 additions & 3 deletions conf/test_mirgenedb.config
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
*/

params {
config_profile_name = 'Test profile with mirgeneDB inputs'
config_profile_description = 'Minimal test dataset to check pipeline function with mirgeneDB inputs'
config_profile_name = 'Test profile with mirgeneDB inputs and run mirdeep2'
config_profile_description = 'Minimal test dataset to check pipeline function with mirgeneDB inputs and run mirdeep2'

// Limit resources so that this can run on GitHub Actions
max_cpus = 2
Expand All @@ -30,7 +30,7 @@ params {
mirgenedb_gff = "https://github.com/nf-core/test-datasets/raw/smrnaseq/MirGeneDB/mirgenedb_hsa.gff"
mirgenedb_species = "Hsa"

skip_mirdeep = true
skip_mirdeep = false
save_intermediates = true

}
Expand Down
6 changes: 3 additions & 3 deletions docs/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ If `--save_intermediates` is specified, these files will be placed in this direc

**Output directory: `results/mirdeep2`**

- `mirdeep/timestamp_sample.bed` File with the known and novel miRNAs in bed format.
- `mirdeep/timestamp_sample.csv` File with an overview of all detected miRNAs (known and novel) in csv format.
- `mirdeep/timestamp_sample.html` A HTML report with an overview of all detected miRNAs (known and novel) in html format.
- `mirdeep2/result_{sample.id}.bed` File with the known and novel miRNAs in bed format.
- `mirdeep2/result_{sample.id}.csv` File with an overview of all detected miRNAs (known and novel) in csv format.
- `mirdeep2/result_{sample.id}.html` A HTML report with an overview of all detected miRNAs (known and novel) in html format.

## miRTrace

Expand Down
6 changes: 6 additions & 0 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ Contamination filtering of the sequencing reads is optional and can be invoked u
- `pirna`: Used to supply a FASTA file containing piRNA contamination sequence. e.g. The FASTA file is first compared to the available miRNA sequences and overlaps are removed.
- `other_contamination`: Used to supply an additional filtering set. The FASTA file is first compared to the available miRNA sequences and overlaps are removed.

## mirDeep2

If the software encounters an error with exit status 255, it will be ignored, and the pipeline will continue to complete. In such cases, the pipeline will log a note that includes the path to the work directory where the issue occurred. You can inspect this work directory to examine your input data and troubleshoot the issue.

Error 255 is typically related to the core algorithm of miRDeep generating empty output files. This often happens when the reads being processed do not correspond to putative mature miRNA sequences, or if the provided precursors do not meet the criteria for valid miRNA precursors, both of which may stem from the input reads used. A common cause of this error is running the pipeline with a small subset of the input reads.

### UMI handling

The pipeline handles UMIs with two tools. Umicollapse to deduplicate on entire read sequence after 3'adapter removal. Followed by Umitools-extract to extract the miRNA adapter and UMI. This can be achieved by using the parameters for UMI handling as follows (in this case for QIAseq miRNA Library Kit):
Expand Down
25 changes: 25 additions & 0 deletions modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,16 @@
"git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48",
"installed_by": ["modules"]
},
"mirdeep2/mapper": {
"branch": "master",
"git_sha": "757f60e5656283122cd6ec37d4679483bebb7312",
"installed_by": ["fastq_find_mirna_mirdeep2"]
},
"mirdeep2/mirdeep2": {
"branch": "master",
"git_sha": "757f60e5656283122cd6ec37d4679483bebb7312",
"installed_by": ["fastq_find_mirna_mirdeep2"]
},
"mirtop/counts": {
"branch": "master",
"git_sha": "196062335bb9ec979075bf2212f64a369b927b0d",
Expand Down Expand Up @@ -131,12 +141,22 @@
"git_sha": "407ff4b579f5ae5a3b842b675cd75005d112b8ba",
"installed_by": ["modules"]
},
"seqkit/fq2fa": {
"branch": "master",
"git_sha": "666652151335353eef2fcd58880bcef5bc2928e1",
"installed_by": ["fastq_find_mirna_mirdeep2"]
},
"seqkit/grep": {
"branch": "master",
"git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48",
"installed_by": ["modules"],
"patch": "modules/nf-core/seqkit/grep/seqkit-grep.diff"
},
"seqkit/replace": {
"branch": "master",
"git_sha": "666652151335353eef2fcd58880bcef5bc2928e1",
"installed_by": ["fastq_find_mirna_mirdeep2"]
},
"umicollapse": {
"branch": "master",
"git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48",
Expand Down Expand Up @@ -176,6 +196,11 @@
"git_sha": "46eca555142d6e597729fcb682adcc791796f514",
"installed_by": ["subworkflows"]
},
"fastq_find_mirna_mirdeep2": {
"branch": "master",
"git_sha": "757f60e5656283122cd6ec37d4679483bebb7312",
"installed_by": ["subworkflows"]
},
"utils_nextflow_pipeline": {
"branch": "master",
"git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa",
Expand Down
43 changes: 0 additions & 43 deletions modules/local/mirdeep2_mapper.nf

This file was deleted.

42 changes: 0 additions & 42 deletions modules/local/mirdeep2_run.nf

This file was deleted.

7 changes: 7 additions & 0 deletions modules/nf-core/mirdeep2/mapper/environment.yml
atrigila marked this conversation as resolved.
Show resolved Hide resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

53 changes: 53 additions & 0 deletions modules/nf-core/mirdeep2/mapper/main.nf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions modules/nf-core/mirdeep2/mapper/meta.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading