YAAPi-nf is a modular, bioinformatics pipeline built with Nextflow. It is specifically designed for the de novo assembly and annotation of yeast genomes using Illumina paired-end reads.
The pipeline is highly portable, supporting Docker, Singularity, and Conda, and is optimised for High-Performance Computing (HPC) environments using the SLURM scheduler.
The pipeline is organised into three main subworkflows:
- Quality Control & Preprocessing (
QUALITY_CONTROL)- Raw read QC (FastQC)
- Adapter trimming and quality filtering (Trimmomatic)
- Post-trimming QC (FastQC)
- K-mer analysis for genome size and ploidy estimation (Jellyfish & GenomeScope2)
- Assembly & Evaluation (
ASSEMBLY_EVALUATION)- De novo assembly (MEGAHIT)
- Assembly statistics (GFAStats)
- Genome completeness assessment (BUSCO in Genome mode)
- Reference-free assembly evaluation (Merqury)
- Taxonomic contamination check (Kraken2)
- Mitochondrial/Organelle identification (Mito Check - BLAST-based)
- Genome Annotation (
ANNOTATION)- Gene prediction and annotation (Funannotate)
- Annotation quality control (BUSCO in Proteome mode)
- Reporting
- Aggregation of all QC metrics and logs into a single interactive report (MultiQC)
- Automatic collection of software versions for reproducibility.
- Prepare your samplesheet (see Inputs below).
- Run the pipeline:
nextflow run main.nf --input samplesheet.csv --outdir ./results -profile singularity
For HPC users (SLURM), use the provided wrapper script:
sbatch yaapi.sh samplesheet.csv ./results
The pipeline requires a mandatory CSV samplesheet provided via the --input flag.
Format (samplesheet.csv):
sample,fastq_1,fastq_2 SampleA,reads/sampleA_R1.fastq.gz,reads/sampleA_R2.fastq.gz SampleB,reads/sampleB_R1.fastq.gz,reads/sampleB_R2.fastq.gz
| Parameter | Description |
|---|---|
--input |
Path to the CSV samplesheet. |
| Parameter | Description |
|---|---|
--busco_db |
Path to BUSCO database lineages. |
--kraken2_db |
Path to Kraken2 standard/custom database. |
--mito_db |
Path to BLAST database for organelle checking. |
--funannotate_db |
Path to the Funannotate database root. |
| Parameter | Description | Default |
|---|---|---|
--outdir |
Output directory for results. | ./results |
--single_out |
If true, omits sample subfolders in output. | false |
--busco_lineage |
Lineage to use for BUSCO. | fungi_odb10 |
--kmer_length |
K-mer size for Jellyfish/Merqury. | 21 |
--ploidy |
Expected ploidy for GenomeScope2. | 2 |
--skip_annotation |
Skips the Funannotate and Proteome QC steps. | false |
Results are organised by sample and then by process/tool:
results/
βββ SampleA/
β βββ fastqc/ # Read QC reports
β βββ trimmomatic/ # Trimmed FASTQ files
β βββ megahit/ # Assembly (fasta)
β βββ busco/ # Genome-level BUSCO results
β βββ kraken2/ # Taxonomic reports
β βββ funannotate/ # GFF3, Proteins, and Transcripts
β βββ busco_proteome/ # Protein-level BUSCO results
βββ pipeline_info/ # Execution reports, timelines, and software_versions.yml
βββ multiqc_report.html # Final aggregated report
-profile singularity: Uses Singularity/Apptainer containers (recommended for HPC).-profile docker: Uses Docker containers.-profile conda: Uses Conda environments (less reproducible).-profile slurm: Enables the SLURM executor for cluster job submission.
The pipeline uses a dynamic resource allocation strategy defined in conf/base.config. If a task fails due to memory limits (Exit 137), it will automatically retry once with doubled resources.