EasyFuse detects gene fusion transcripts from paired-end RNA-seq data with high accuracy. The NextFLow pipeline uses three fusion gene detection tools (STAR-Fusion, Fusioncatcher, and Arriba) along with a powerful read filtering strategy, stringent re-quantification of supporting reads, joint annotation, and machine-learning-based prioritization to improve fusion detection accuracy.
- NextFlow, 24.10.1
- One runtime environment: Conda, Singularity, or Docker
Before running EasyFuse, some reference annotation data (~104 GB) needs to be downloaded.
# Download reference archive
wget ftp://easyfuse.tron-mainz.de/easyfuse_ref_v4.tar.gz
# Extract reference archive
tar xvfz easyfuse_ref_v4.tar.gzYou can directly run EasyFuse from GitHub without installation as follows:
nextflow run tron-bioinformatics/easyfuse -r x.y.z --helpwhereby x.y.z corresponds to an EasyFuse release version.
Alternativelly, you can download the code manually:
git clone https://github.com/TRON-Bioinformatics/EasyFuse.git
cd EasyFuse
nextflow run main.nf --helpProvide your downloaded reference data with the parameter --reference
Generate a tab-delimited input table with your matching FASTQs. The format of the table is: sample, fastq_1, fastq_2 (with headers).
E.g.:
sample fastq_1 fastq_2
sample_01 /path/to/sample_01_R1.fastq.gz /path/to/sample_01_R2.fastq.gz
sample_02 /path/to/sample_02_R1.fastq.gz /path/to/sample_02_R2.fastq.gzStart the pipeline
nextflow run tron-bioinformatics/easyfuse -r x.y.z \
-profile singularity \
--input_files /path/to/input_table_file \
--output /path/to/output_folder \
--reference /path/to/reference/folderIf you want to run the pipeline on a SLURM cluster, you can add the slurm profile to the command line, e.g. -profile singularity,slurm.
EasyFuse supports the following profiles:
conda- Nextflow creates Conda environments for pipeline processes.apptainer- Nextflow runs pipeline processes in Apptainer containers.singularity- Nextflow runs pipeline processes in Singularity containers. If containers are available locally, set theNXF_SINGULARITY_CACHEDIR=/path/to/local/imagesenvironment variable for nextflow to find the images locally.docker- Nextflow runs pipeline processes in Docker containers.slurm- Nextflow uses the Slurm executor for pipeline processes. This profile can be combined with a runtime profile, for example-profile apptainer,slurm.
Note: If you want to use a custom profile (e.g. for running jobs on a cluster), please refer to https://www.nextflow.io/docs/latest/config.html for further information.
Tip
Please provide pipeline parameters via the CLI or Nextflow -params-file option. Custom config files including those provided by the -c Nextflow option can be used to provide any configuration except for parameters; see nf-core docs.
Currently, EasyFuse supports gene fusion detection with human and mouse data. For human use the instructions above, for mouse proceed as follows.
# Download reference archive
wget ftp://easyfuse.tron-mainz.de/easyfuse2_mouse_ref_v1.tar.gz
# Extract reference archive
tar xvfz easyfuse2_mouse_ref_v1.tar.gzThe samplesheet specification for running Easyfuse in this case remains the same. The following command shows the correct parameter combination of reference, tools, and models required for mouse:
nextflow run tron-bioinformatics/easyfuse -r x.y.z \
-profile singularity,slurm \
--input_files /path/to/input_table_file \
--output /path/to/output_folder \
--reference /path/to/reference/folder \
--fusion_tools arriba,starfusion \
--model_pred EF_requant_typeNote
For Mouse (Mus Musculus) data, only arriba and starfusion are supported but not fusioncatcher. This restricts also the use of available models.
EasyFuse creates an output folder for each input sample containing the following files:
fusions.csvfusions.pass.csv
Within the files, each line describes a candidate fusion transcript. The file fusions.csv contains all candidate fusions with annotated features, the prediction probability assigned by the EasyFuse model, and the corresponding prediction class (positive or negative). The file fusions.pass.csv contains only positive predicted gene fusions.
-
BPID: The BPID (breakpoint ID) is an identifier composed of
chr1:position1:strand1_chr2:position2:strand2and is used as the main identifier of fusion breakpoints throughout the EasyFuse publication. In the BPID,chrandpositionare 1-based genomic coordinates (GRCh38 reference) of the two breakpoint positions. -
context_sequence_id: The context sequence id is a unique identifier (hash value) calculated from
context_sequence, the fusion transcript sequence context (400 upstream and 400 bp downstream from the breakpoint position). -
FTID: The FTID is a unique identifier composed of
GeneName1_chr1:position1:strand1_transcript1_GeneName2_chr2:position2:strand2_transcript2. All transcript combinations are considered. -
Fusion_Gene: Fusion Gene is a combination of the gene symbols of the involved genes in the form:
GeneName1_GeneName2. -
Breakpoint1: Breakpoint1 is a combination of the first breakpoint position in the form:
chr1:position1:strand1. -
Breakpoint2: Breakpoint2 is a combination of the second breakpoint position in the form:
chr2:position2:strand2. -
context_sequence_100_id: The context sequence 100 id is a unique identifier (hash value) calculated from 200 bp context sequence (100 upstream and 100 bp downstream from the breakpoint).
type: EasyFuse identifies six different types of fusion genes. The type describes the configuration of the involved genes to each other with respect to location on chromosomes and transcriptional strands:cis_near: Genes on the same chromosome, same strand, order of genes matches reading direction, genomic distance < 1Mb (read-through likely)cis_far: Genes on the same chromosome, same strand, order of genes matches reading direction, genomic distance >= 1Mbcis_trans: Genes on the same chromosome, same strand, but the order of genes does not match the reading directioncis_inv: Genes on the same chromosome but on different strandstrans: Genes on different chromosomes, same strandtrans_inv: Genes on different chromosomes, different strands
-
exon_nr: Number of exons involved in the fusion transcript
-
ft1_exon_nr: Exon number of fusion partner 1 that is invoved in building the transcript breakpoint
-
ft2_exon_nr: Exon number of fusion partner 2 that is invoved in building the transcript breakpoint
-
exon_starts: Genomic starting positions of involved exons
-
exon_ends: Genomic end positions of involved exons
-
exon_boundary1: Exon boundary of the breakpoint in Gene1
left_boundaryis 5' in strand orientationright_boundaryis 3' in strand orientationwithinmeans breakpoint is inside exon)
-
exon_boundary2: Exon boundary of the breakpoint in Gene2 (
left_boundaryis 5' in strand orientation,right_boundaryis 3' in strand orientation,withinmeans breakpoint is inside exon) -
exon_boundary: describes which of the partner genes (gene 1 + gene 2) has their breakpoint on an exon boundary:
both:left_boundary+right_boundary5prime:left_boundary+within3prime:within+right_boundaryno_match:within+within
-
bp1_frame: Reading frame of translated peptide at breakpoint for fusion transcript1 (-1 is non-coding region/no frame; 0,1,2 is coding region with indicated offset for reading frame)
-
bp2_frame: Reading frame of translated peptide at breakpoint for fusion transcript2 (-1 is none-coding region/no frame; 0,1,2 is coding region with indicated offset for reading frame)
-
frame: Type of frame for translation of fusion gene:
in_frame: translation of wild type peptide sequences without frameshift after breakpoint (both coding frames are equal,bp1_frame==bp2_frame!=-1)neo_frame: translation of none-coding region after breakpoint leads to novel peptide sequence (bp1_frameis 0, 1, or 2 andbp2_frameis -1)no_frame: no translation (bp1_frameis -1)out_frame: out of frame translation after breakpoints leads to novel peptide sequence (bp1_frame!=bp2_frame!= -1)
-
context_sequence: The fusion transcript sequence downstream and upstream from the breakpoint (default 800 bp, shorter if transcript start or end occurs within the region)
-
context_sequence_bp: Position of breakpoint in context sequence
-
neo_peptide_sequence: Translated peptide sequence of context sequence starting at 13 aa before breakpoint until 13 aa after breakpoint (for in-frame transcripts) or until next stop codon (for out frame and neo frame). This is to consider only the region around the breakpoint that may contain neo-epitopes.
-
neo_peptide_sequence_bp: Breakpoint on translated peptide sequence.
-
fusion_protein_sequence: Full-length protein sequence
-
fusion_protein_sequence_bp: Position of breakpoint in full-length protein seqeunce
-
toolname_detected: 1 if breakpoint was detected by respective tool, 0 if not
-
toolname_junc: Junction read count (reads covering breakpoint) reported by toolname
-
toolname_span: Spanning read count (read pairs with each partner on one side of breakpoint) reported by toolname
-
tool_frac: Fraction of tools detecting the fusion gene breakpoint
-
category_bp: Location of breakpoint on context sequence (400 for an 800 bp context sequence). Whereby category describes (here and in the following columns) the reference sequence to which the reads were mapped and quantified:
ft: context_sequence of fusion transcriptwt1: corresponding sequence of fusion partner 1 (wild type 1)wt2: corresponding sequence of fusion partner 2 (wild type 2)
-
category_junc: Fraction of read counts from 1 million reads that map to sequence and overlap breakpoint by at least 10 bp
-
category_span: Fraction of read pairs from 1 million sequenced read pairs, that map to both sides of breakpoint position
-
category_anch: Maximal read anchor size across all junction reads, where the anchor size for a given read is defined as the minimum distance between read start and breakpoint or read end and the breakpoint.
-
category_junc_cnt: Number of reads that map to sequence and overlap breakpoint by at least 10 bp
-
category_span_cnt: Number of read pairs, that map to both sides of breakpoint position
-
category_anch_cnt: Maximal read anchor size across all junction reads, where the anchor size for a given read is defined as the minimum distance between read start and breakpoint or read end and the breakpoint.
-
prediction_prob: The predicted probability according to the machine learning model that the fusion candidate is a true positive.
-
prediction_class: The predicted class (
negativeorpositive) according to the machine learning model. This classification relies on a user-defined threshold (default 0.5) applied to theprecition_probcolumn.
If you use EasyFuse, please cite: Weber D, Ibn-Salem J, Sorn P, et al. Nat Biotechnol. 2022
