Skip to content

Introduction

ENEO is a Snakemake workflow developed for the identification of cancer neoantigens using solely the tumor RNAseq, without requiring matched controls or additional sequencing experiments. You could read more from the publication here.

Pipeline overview

Raw reads are first trimmed with fastp to remove adapters and low-quality bases, then passed through SortMeRNA to deplete ribosomal RNA reads before alignment. After STAR alignment and base quality score recalibration (BQSR), variant calling is performed in parallel by Strelka2 and DeepVariant using an RNA-specific model. Only variants concordantly called by both callers are retained and carried forward for annotation and neoantigen prediction.

Quick Start

To execute the pipeline, it's required to have both snakemake and singularity or apptainer installed. The easiest way to install both of them is using a dedicated conda environment. To create a new environment, use the following commands:

conda create -c conda-forge -c bioconda -c nodefaults -n snakemake snakemake apptainer

To start, clone the repo using

git clone https://github.com/ctglab/ENEO.git

The next step is to setup resources, as reported in the dedicated section.

Then update the configuration file in config/config_main.yaml following the instructions in the dedicated section.

The next step is to define the patients and their sequencing files. Edit units.csv to specify the absolute paths to the paired-end FASTQ files for each patient:

patient,fq1,fq2
Pat_01,/path/to/Pat_01_1.fastq.gz,/path/to/Pat_01_2.fastq.gz
Pat_02,/path/to/Pat_02_1.fastq.gz,/path/to/Pat_02_2.fastq.gz

Edit also patients.csv to list the patients to be processed. All entries must match the patient identifiers in units.csv.

patient
Pat_01
Pat_02

Executing the pipeline

If you're running the pipeline using an HPC cluster, we provided detailed execution profiles for SLURM schedulers under the workflow/profile directory and the relative instruction in the dedicated section.

Alternatively, you can run the pipeline locally, using the following command:

snakemake \
--use-singularity \
--cores 8 \
--singularity-args "-B /path/to/ENEO -B /path/to/ENEO_output -B /path/to/ENEO_temp -B /path/to/eneo_resources --env TMPDIR=/path/to/ENEO_temp"

Reporting issue

If you encounter any error in the pipeline setup/execution, or you have any question regarding its usage, fill an issue on github