Skip to content

Commit eabd3f2

Browse files
authored
Merge pull request #789 from nf-core/dev
Release PR 4.1.0
2 parents 4e5de7d + b5e8c5e commit eabd3f2

23 files changed

+1133
-91
lines changed

.github/workflows/awsfulltest.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
parameters: |
3434
{
3535
"hook_url": "${{ secrets.MEGATESTS_ALERTS_SLACK_HOOK_URL }}",
36-
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/rnafusion/results-${{ steps.revision.outputs.revision }}"
36+
"outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/rnafusion/results-${{ steps.revision.outputs.revision }}",
3737
"genomes_base": "s3://${{ secrets.AWS_S3_BUCKET }}/rnafusion/references",
3838
"tools": "all",
3939
"no_cosmic": true

.github/workflows/nf-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
runs-on: # use self-hosted runners
6565
- runs-on=${{ github.run_id }}-nf-test
6666
- runner=4cpu-linux-x64
67-
- disk=large
67+
- volume=80gb
6868
strategy:
6969
fail-fast: false
7070
matrix:

.nf-core.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ template:
1616
name: rnafusion
1717
org: nf-core
1818
outdir: .
19-
version: 4.0.0
19+
version: 4.1.0

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
44
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
55

6+
## v4.1.0 - [2026-02-09]
7+
8+
### Added
9+
10+
- Added a BAM/CRAM conversion to FASTQ step to run tools that depend on FASTQ files. It still is advised to supply a FASTQ file if possible to reduce runtime of the pipeline. [#783](https://github.com/nf-core/rnafusion/pull/783)
11+
12+
### Fixed
13+
14+
- Fix issue with vcf_collect when no fusions are found by fusioninspector [#786](https://github.com/nf-core/rnafusion/pull/786)
15+
616
## v4.0.0 - [2025-09-10]
717

818
### Added

assets/multiqc_config.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
report_comment: >
2-
This report has been generated by the <a href="https://github.com/nf-core/rnafusion/releases/tag/4.0.0"
3-
target="_blank">nf-core/rnafusion</a> analysis pipeline. For information about how
4-
to interpret these results, please see the <a href="https://nf-co.re/rnafusion/4.0.0/docs/output"
5-
target="_blank">documentation</a>.
2+
This report has been generated by the <a href="https://github.com/nf-core/rnafusion/releases/tag/4.1.0" target="_blank">nf-core/rnafusion</a> analysis pipeline. For information about how to interpret these results, please see the <a href="https://nf-co.re/rnafusion/4.1.0/docs/output" target="_blank">documentation</a>.
63
74
report_section_order:
85
nf-core-rnafusion-methods-description:

assets/schema_input.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"format": "file-path",
3333
"exists": true,
3434
"pattern": "^\\S+\\.bam$",
35+
"description": "BAM file created with STAR. This file should be created from paired-end reads and junctions should be written out separately.",
3536
"errorMessage": "BAM file cannot contain spaces, has to exist and must have extension '.bam'"
3637
},
3738
"bai": {
@@ -46,6 +47,7 @@
4647
"format": "file-path",
4748
"exists": true,
4849
"pattern": "^\\S+\\.cram$",
50+
"description": "CRAM file created with STAR. This file should be created from paired-end reads and junctions should be written out separately.",
4951
"errorMessage": "CRAM file cannot contain spaces, has to exist and must have extension '.cram'"
5052
},
5153
"crai": {
@@ -60,13 +62,15 @@
6062
"format": "file-path",
6163
"exists": true,
6264
"pattern": "^\\S+\\.junction$",
65+
"description": "Junctions file created with STAR. This file should be created from paired-end reads.",
6366
"errorMessage": "Junctions file cannot contain spaces, has to exist and must have extension '.junction'"
6467
},
6568
"splice_junctions": {
6669
"type": "string",
6770
"format": "file-path",
6871
"exists": true,
6972
"pattern": "^\\S+\\.SJ.out.tab$",
73+
"description": "Splice junctions file created with STAR. This file should be created from paired-end reads.",
7074
"errorMessage": "Split junctions file cannot contain spaces, has to exist and must have extension '.SJ.out.tab'"
7175
},
7276
"strandedness": {

bin/vcf_collect.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,14 @@ def vcf_collect(
8484
all_df = df.merge(
8585
gtf_df, how="left", left_on="CDS_LEFT_ID", right_on="Transcript_id"
8686
)
87-
all_df[["PosA", "orig_start", "orig_end"]] = (
88-
all_df[["PosA", "orig_start", "orig_end"]].fillna(0).astype(int)
89-
)
9087

9188
all_df = all_df[
9289
(
9390
(all_df["PosA"] >= all_df["orig_start"])
9491
& (all_df["PosA"] <= all_df["orig_end"])
9592
)
96-
| ((all_df["orig_start"] == 0) & (all_df["orig_end"] == 0))
93+
| ((all_df["orig_start"].isna()) & (all_df["orig_end"].isna()))
94+
| (all_df["PosA"].isna())
9795
]
9896

9997
all_df["Left_transcript_version"] = all_df["CDS_LEFT_ID"].astype(str).str.split(".").str[-1]
@@ -145,21 +143,16 @@ def vcf_collect(
145143
all_df = all_df.merge(
146144
gtf_df, how="left", left_on="CDS_RIGHT_ID", right_on="Transcript_id"
147145
)
148-
all_df[["PosB", "orig_start", "orig_end"]] = all_df[
149-
["PosB", "orig_start", "orig_end"]
150-
].fillna(0)
151-
all_df[["PosB", "orig_start", "orig_end"]] = all_df[
152-
["PosB", "orig_start", "orig_end"]
153-
].astype(int)
146+
154147
all_df = all_df[
155148
(
156149
(all_df["PosB"] >= all_df["orig_start"])
157150
& (all_df["PosB"] <= all_df["orig_end"])
158151
)
159-
| ((all_df["orig_start"] == 0) & (all_df["orig_end"] == 0))
152+
| ((all_df["orig_start"].isna()) & (all_df["orig_end"].isna()))
153+
| (all_df["PosB"].isna())
160154
]
161155

162-
all_df[["PosA", "PosB"]] = all_df[["PosA", "PosB"]].replace(0, np.nan)
163156
all_df = all_df.replace("", np.nan)
164157

165158
all_df["Right_transcript_version"] = all_df["CDS_RIGHT_ID"].astype(str).str.split(".").str[-1]
@@ -213,6 +206,9 @@ def vcf_collect(
213206

214207
all_df = all_df.combine_first(read_fusionreport_csv(fusionreport_csv))
215208

209+
# Filter out invalid entries with missing positional values
210+
all_df = all_df[all_df["PosA"].notna() & all_df["PosB"].notna() & all_df["ChromosomeA"].notna() & all_df["ChromosomeB"].notna()]
211+
216212
return write_vcf(column_manipulation(all_df), header_def(sample), out_file)
217213

218214

docs/usage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ TREATMENT_REP3,AEG588A6_S6_L003_R1_001.fastq.gz,,forward
140140
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
141141
| `sample` | Custom sample name. This value needs to be unique across all entries in the samplesheet and cannot contain spaces ||
142142
| `strandedness` | Strandedness: forward or reverse. ||
143-
| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File must exist, has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". It's recommended to always provide the FASTQ files because the pipeline will be able to create any missing files from these. The FASTQ files are required to run `salmon`, `fusioninspector` and `fusioncatcher`. ||
144-
| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File must exist, has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". It's recommended to always provide the FASTQ files because the pipeline will be able to create any missing files from these. The FASTQ files are required to run `salmon`, `fusioninspector` and `fusioncatcher`". ||
143+
| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File must exist, has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". It's recommended to always provide the FASTQ files because the pipeline will be able to create any missing files from these. This should be supplied to let the pipeline run faster, but they can be automatically created from the availabe BAM or CRAM files. ||
144+
| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File must exist, has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". It's recommended to always provide the FASTQ files because the pipeline will be able to create any missing files from these. This should be supplied to let the pipeline run faster, but they can be automatically created from the availabe BAM or CRAM files. ||
145145
| `bam` | Full path to the BAM file created with STAR. File has to exist and must have the extension ".bam". It's the responsibility of the pipeline user to make sure this file has been correctly created, see the [prepare chapter](#preparing-bamcramjunctionssplice_junctions) for more information. The BAM file is required to run `ctatsplicing`, `stringtie`, `fusioninspector` and `arriba` when the `fastq_1` and `cram` fields are empty. ||
146146
| `bai` | Full path to the index of the BAM file. File has to exist and must have the extension ".bai". ||
147147
| `cram` | Full path to the CRAM file created with STAR. File has to exist and must have the extension ".cram". It's the responsibility of the pipeline user to make sure this file has been correctly created, see the [prepare chapter](#preparing-bamcramjunctionssplice_junctions) for more information. The CRAM file is required to run `ctatsplicing`, `stringtie`, `fusioninspector` and `arriba` when the `fastq_1` and `bam` fields are empty. ||

modules.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@
133133
"git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46",
134134
"installed_by": ["modules"]
135135
},
136+
"samtools/collatefastq": {
137+
"branch": "master",
138+
"git_sha": "c8be52dba1166c678e74cda9c3a3c221635c8bb1",
139+
"installed_by": ["modules"]
140+
},
136141
"samtools/convert": {
137142
"branch": "master",
138143
"git_sha": "41dfa3f7c0ffabb96a6a813fe321c6d1cc5b6e46",

modules/local/vcf_collect/tests/main.nf.test.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
],
6262
"meta": {
6363
"nf-test": "0.9.2",
64-
"nextflow": "25.04.6"
64+
"nextflow": "25.10.2"
6565
},
66-
"timestamp": "2025-08-12T20:45:25.283350308"
66+
"timestamp": "2026-01-08T17:24:54.112204263"
6767
}
68-
}
68+
}

0 commit comments

Comments
 (0)