miRNA analysis pipeline
This Snakemake-based workflow was designed with the aim of enable reproducible analysis of miRNA NGS data.
As the QIAseq miRNA Library Kit (QIAGEN) was used in our lab, the pipeline is configured for managing UMIs present in the read as suggested by the manufacturer. Anyway, few changes would allow data anlysis from different kits.
The pipeline can be considered as a hybrid solution between common state-of-the-art literature, as reported in Potla et al. and Qiagen analysis guidelines.
To run miRNA pipeline, Conda must be present in your computer.
To install Conda, see https://conda.io/miniconda.html
You can directly clone the repository in your working directory
git clone https://github.com/solida-core/miRNA.git
Then you need to create the base environment.
cd miRNA
conda create -q -n MYENV_NAME python=3.7
conda env update -q -n MYENV_NAME --file environment.yaml
Once the virtual environment is ready, activate it and check the correct installation of Snakmake
conda activate MYENV_NAME
snakemake --version
To run the pipeline you need to edit manually the config.yaml
file, providing paths for your references.
snakemake --configfile config.yaml --snakefile Snakefile --use-conda -d ANALYSIS_DIR
When the analysis is completed, you can generate a Snakemake report with analysis overview, QC report and mmiRNA counts.
snakemake --configfile config.yaml --snakefile Snakefile --use-conda --report [--report-stylesheet path_to/custom.css] -d ANALYSIS_DIR
This produces the report.html
file inside the ANALYSIS_DIR
.
The workflow consists of 6 main steps:
- Get UMI: Qiagen UMIs are integrated in the read sequence, near the 3' adapter. To identify the 12 bases sequence of the UMI we use UMI_tools which allow to search the adapter sequence, discard it and keep the UMI sequence, includeing it in the header of the read.
- Trimming: TrimGalore is used for quality trimming and read length selection (default min read length is set to 16, max to 30). These values can be edited in the config.yaml file.
- QC: a QC report is generated with MultiQC, including information from FastQC, TrimGalore and Mirtrace.
- Mapping: reads are aligned against multiple databases. Only reads that do not map to a db undergo alignment against the succesive database.
- Deduplication and Count: UMIs are used for the deduplication of mapped reads and then a table with counts for each miRNA is generated.
- Discovery: WORK IN PROGRESS