Skip to content

Commit 310a7a5

Browse files
Migrate STARFUSION_DETECT local module (#8813)
* Migrate local STARFUSION_DETECT * Fix linting errors * Correct test for unstable file * Fix and update test * Add test with single-end data * Update snapshot * Update input paths for `STARFUSION_BUILD` tests * Fix test * Minor format changes * Fix alignment * Update tests to use nf-core test-datasets --------- Co-authored-by: Anabella Trigila <[email protected]>
1 parent 0fcfdcd commit 310a7a5

File tree

8 files changed

+531
-33
lines changed

8 files changed

+531
-33
lines changed

modules/nf-core/fusioninspector/tests/main.nf.test

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ nextflow_process {
2828

2929
input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/CTAT_HumanFusionLib.mini.dat.gz')
3030
input[3] = "homo_sapiens"
31-
input[4] = "http://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam37.4/Pfam-A.hmm.gz"
31+
input[4] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/Pfam-A.hmm.gz')
3232
input[5] = [
33-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm",
34-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3f",
35-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3i",
36-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3m",
37-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3p"
33+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm'),
34+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3f'),
35+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3i'),
36+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3m'),
37+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3p')
3838
]
3939
input[6] = "https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/AnnotFilterRule.pm"
4040
"""
@@ -48,8 +48,8 @@ nextflow_process {
4848
input[0] = [
4949
[ id:'test', single_end:false ], // meta map
5050
[
51-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/v0.0.1/rnaseq_1.fastq.gz"),
52-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/v0.0.1/rnaseq_2.fastq.gz")
51+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_rnaseq_1.fastq.gz'),
52+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_rnaseq_2.fastq.gz')
5353
], // reads
5454
[
5555
file("https://github.com/FusionInspector/FusionInspector/raw/master/test/fusion_targets.A.txt")
@@ -85,8 +85,8 @@ nextflow_process {
8585
input[0] = [
8686
[ id:'test', single_end:false ], // meta map
8787
[
88-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/v0.0.1/rnaseq_1.fastq.gz"),
89-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/v0.0.1/rnaseq_2.fastq.gz")
88+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_rnaseq_1.fastq.gz'),
89+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_rnaseq_2.fastq.gz')
9090
], // reads
9191
[
9292
file("https://github.com/FusionInspector/FusionInspector/raw/master/test/fusion_targets.A.txt")

modules/nf-core/starfusion/build/tests/main.nf.test

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ nextflow_process {
2323

2424
input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/CTAT_HumanFusionLib.mini.dat.gz')
2525
input[3] = "homo_sapiens"
26-
input[4] = "http://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam37.4/Pfam-A.hmm.gz"
26+
input[4] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/Pfam-A.hmm.gz')
2727
input[5] = [
28-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm",
29-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3f",
30-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3i",
31-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3m",
32-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3p"
28+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm'),
29+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3f'),
30+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3i'),
31+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3m'),
32+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3p')
3333
]
3434
input[6] = "https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/AnnotFilterRule.pm"
3535
"""
@@ -125,22 +125,22 @@ nextflow_process {
125125
"""
126126
input[0] = [
127127
[ id:'minigenome_fasta' ],
128-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/minigenome.fa")
128+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/minigenome.fa')
129129
]
130130
input[1] = [
131131
[ id:'minigenome_gtf' ],
132-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/minigenome.gtf")
132+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/minigenome.gtf')
133133
]
134134

135-
input[2] = file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/CTAT_HumanFusionLib.mini.dat.gz")
135+
input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/CTAT_HumanFusionLib.mini.dat.gz')
136136
input[3] = "homo_sapiens"
137-
input[4] = "http://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam37.4/Pfam-A.hmm.gz"
137+
input[4] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/Pfam-A.hmm.gz')
138138
input[5] = [
139-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm",
140-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3f",
141-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3i",
142-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3m",
143-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3p"
139+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm'),
140+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3f'),
141+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3i'),
142+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3m'),
143+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3p')
144144
]
145145
input[6] = "https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/AnnotFilterRule.pm"
146146
"""
@@ -160,21 +160,21 @@ nextflow_process {
160160
"""
161161
input[0] = [
162162
[ id:'minigenome_fasta' ],
163-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/minigenome.fa")
163+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/minigenome.fa')
164164
]
165165
input[1] = [
166166
[ id:'minigenome_gtf' ],
167-
file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/minigenome.gtf")
167+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/minigenome.gtf')
168168
]
169169

170-
input[2] = file("https://github.com/STAR-Fusion/STAR-Fusion-Tutorial/raw/master/CTAT_HumanFusionLib.mini.dat.gz")
170+
input[2] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/CTAT_HumanFusionLib.mini.dat.gz')
171171
input[3] = "homo_sapiens"
172-
input[4] = "http://ftp.ebi.ac.uk/pub/databases/Pfam/releases/Pfam37.4/Pfam-A.hmm.gz"
172+
input[4] = file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/Pfam-A.hmm.gz')
173173
input[5] = [
174-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm",
175-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3f",
176-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3i",
177-
"https://www.dfam.org/releases/Dfam_3.8/infrastructure/dfamscan/homo_sapiens_dfam.hmm.h3m"
174+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm'),
175+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3f'),
176+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3i'),
177+
file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/test_starfusion_dfam.hmm.h3m')
178178
]
179179
input[6] = "https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/AnnotFilterRule.pm"
180180
"""
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
channels:
2+
- conda-forge
3+
- bioconda
4+
dependencies:
5+
- bioconda::dfam=3.7
6+
- bioconda::hmmer=3.4
7+
- bioconda::minimap2=2.30
8+
- bioconda::star-fusion=1.15.1
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
process STARFUSION_DETECT {
2+
tag "$meta.id"
3+
label 'process_high'
4+
5+
conda "${moduleDir}/environment.yml"
6+
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
7+
'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/75/75d085bf2a8e40c6693b357800eef0f9568f661226d0888339bc77f7852234bb/data' :
8+
'community.wave.seqera.io/library/dfam_hmmer_minimap2_star-fusion:e285bb3eb373b9a7'}"
9+
10+
input:
11+
tuple val(meta), path(reads), path(junction)
12+
path reference
13+
14+
output:
15+
tuple val(meta), path("*.fusion_predictions.tsv"), emit: fusions
16+
tuple val(meta), path("*.abridged.tsv") , emit: abridged
17+
tuple val(meta), path("*.coding_effect.tsv") , emit: coding_effect, optional: true
18+
path "versions.yml" , emit: versions
19+
20+
when:
21+
task.ext.when == null || task.ext.when
22+
23+
script:
24+
def prefix = task.ext.prefix ?: "${meta.id}.starfusion"
25+
def fastq_arg = reads ? (meta.single_end ? "--left_fq ${reads[0]}" : "--left_fq ${reads[0]} --right_fq ${reads[1]}") : ""
26+
def junction_arg = junction ? "-J ${junction}" : ""
27+
def args = task.ext.args ?: ''
28+
def VERSION = '1.15.1' // WARN: This is the actual version of the STAR-FUSION, but version information of tool is not updated and prints '1.15.0'
29+
"""
30+
STAR-Fusion \\
31+
--genome_lib_dir $reference \\
32+
$fastq_arg \\
33+
$junction_arg \\
34+
--CPU $task.cpus \\
35+
--output_dir . \\
36+
$args
37+
38+
mv star-fusion.fusion_predictions.tsv ${prefix}.fusion_predictions.tsv
39+
mv star-fusion.fusion_predictions.abridged.tsv ${prefix}.abridged.tsv
40+
mv star-fusion.fusion_predictions.abridged.coding_effect.tsv ${prefix}.abridged.coding_effect.tsv
41+
42+
cat <<-END_VERSIONS > versions.yml
43+
"${task.process}":
44+
STAR-Fusion: $VERSION
45+
END_VERSIONS
46+
"""
47+
48+
stub:
49+
def prefix = task.ext.prefix ?: "${meta.id}.starfusion"
50+
def VERSION = '1.15.1'
51+
"""
52+
touch ${prefix}.fusion_predictions.tsv
53+
touch ${prefix}.abridged.tsv
54+
touch ${prefix}.abridged.coding_effect.tsv
55+
cat <<-END_VERSIONS > versions.yml
56+
"${task.process}":
57+
STAR-Fusion: $VERSION
58+
END_VERSIONS
59+
"""
60+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: starfusion_detect
2+
description: Fast and Accurate Fusion Transcript Detection from RNA-Seq
3+
keywords:
4+
- Fusion
5+
- starfusion
6+
- RNA-Seq
7+
- detect
8+
tools:
9+
- star-fusion:
10+
description: Fast and Accurate Fusion Transcript Detection from RNA-Seq
11+
homepage: https://github.com/STAR-Fusion/STAR-Fusion
12+
documentation: https://github.com/STAR-Fusion/STAR-Fusion/wiki
13+
tool_dev_url: https://github.com/STAR-Fusion/STAR-Fusion/releases
14+
doi: "10.1101/120295v1"
15+
licence: ["GPL v3"]
16+
identifier: ""
17+
18+
input:
19+
- - meta:
20+
type: map
21+
description: |
22+
Groovy Map containing sample information
23+
e.g. [ id:'test', single_end:false ]
24+
- reads:
25+
type: file
26+
description: Input fastq files
27+
pattern: "*.{fq,fastq,fq.gz,fastq.gz}"
28+
ontologies:
29+
- edam: "http://edamontology.org/format_1930" # FASTQ
30+
- junction:
31+
type: file
32+
description: Chimeric junction output from STAR aligner
33+
pattern: "*.{out.junction}"
34+
ontologies: []
35+
- reference:
36+
type: directory
37+
description: STAR-fusion reference genome lib folder
38+
pattern: "*genome_lib_build_dir"
39+
40+
output:
41+
fusions:
42+
- - meta:
43+
type: map
44+
description: |
45+
Groovy Map containing sample information
46+
e.g. [ id:'test', single_end:false ]
47+
- "*.fusion_predictions.tsv":
48+
type: file
49+
description: Fusion events from STAR-fusion
50+
pattern: "*.{fusion_predictions.tsv}"
51+
abridged:
52+
- - meta:
53+
type: map
54+
description: |
55+
Groovy Map containing sample information
56+
e.g. [ id:'test', single_end:false ]
57+
- "*.abridged.tsv":
58+
type: file
59+
description: Abridged version of fusion events from STAR-fusion
60+
pattern: "*.{fusion.abridged.tsv}"
61+
coding_effect:
62+
- - meta:
63+
type: map
64+
description: |
65+
Groovy Map containing sample information
66+
e.g. [ id:'test', single_end:false ]
67+
- "*.coding_effect.tsv":
68+
type: file
69+
description: Fusion events with their coding effect from STAR-fusion
70+
pattern: "*.{coding_effect.tsv}"
71+
versions:
72+
- versions.yml:
73+
type: file
74+
description: File containing software versions
75+
pattern: "versions.yml"
76+
ontologies:
77+
- edam: "http://edamontology.org/format_3750" # YAML
78+
79+
authors:
80+
- "@praveenraj2018"

0 commit comments

Comments
 (0)