End-to-end WGS analysis pipeline using Nextflow DSL2 and GATK best practices. Performs QC, alignment, variant calling, filtering, annotation, and downstream analysis. Designed for reproducible, scalable genomics workflows on HPC and cloud environments with publication-ready outputs.
- FASTQC - Raw read quality control.
- ALIGN - Read alignment to reference genome using BWA.
- BAM_PROCESS - Sorting, marking duplicates, and indexing using Samtools and GATK.
- VARIANT_CALLING - Per-sample variant calling using GATK HaplotypeCaller (GVCF mode).
- JOINT_GENOTYPING - Cohort-level joint genotyping using GATK CombineGVCFs and GenotypeGVCFs.
- ANNOTATION - Variant annotation using Ensembl VEP.
To run this pipeline, you will need:
- Nextflow (>= 22.04)
- Conda (Miniconda or Anaconda) - Nextflow will automatically build the required environment using the provided
environment.yml.
This pipeline includes a built-in test profile with tiny dummy files to verify the pipeline works on your machine.
git clone https://github.com/Mkddb/VariantFlow.git
cd VariantFlowThis tests the Nextflow logic and file-flow without running heavy bioinformatics tools or requiring large VEP caches.
nextflow run main.nf -profile test -stub-runThis runs the actual bioinformatics tools (GATK, Samtools, VEP, etc.) on the tiny test data. Nextflow will automatically create a Conda environment for you, which may take a few minutes the first time.
nextflow run main.nf -profile test -resumeTo run the pipeline on your own data, you can override the default parameters via the command line.
nextflow run main.nf \
-profile standard \
--reads "/path/to/your/data/*_{1,2}.fastq.gz" \
--genome "/path/to/your/reference.fa" \
--outdir "my_results" \
--vep_cache "/path/to/your/vep_cache"| Parameter | Description | Default |
|---|---|---|
--reads |
Path to paired-end FASTQ files (glob pattern) | data/test/*_{1,2}.fastq.gz |
--genome |
Path to the reference genome FASTA file | assets/reference.fa |
--outdir |
Directory where results will be saved | results |
--vep_cache |
Path to the Ensembl VEP cache directory | ${projectDir}/vep_cache |
--interval |
Interval (BED) file for targeted regions (opt) | null |
VariantFlow/
├── main.nf # Main workflow script
├── nextflow.config # Pipeline configuration (profiles, resources)
├── environment.yml # Conda environment recipe
├── assets/ # Reference genomes and indices
├── bin/ # Custom helper scripts (e.g., summary.py)
├── data/ # Test data
├── modules/ # Nextflow DSL2 process modules
└── expected/ # Expected output for testing
This project is licensed under the MIT License - see the LICENSE file for details.