Nextflow DSL2 pipeline for whole-genome sequencing analysis on BioHPC Cornell servers.
Modules: fastp → bowtie2 → samtools → picard (MarkDuplicates) → qualimap → deeptools (GC bias) → MultiQC → Quarto GC bias report
- Nextflow ≥ 23.x (
module load nextflowor available in your PATH) - Apptainer/Singularity — available by default on BioHPC nodes (Docker is not required)
- No local software installation required — all tools run inside Singularity containers pulled automatically from GHCR
nextflow run bixBeta/wgs -r container \
--id PROJECT_ID \
--sheet sample-sheet.csv \
--genome hg38 \
--bowtie2 \
--fastpTab or comma-separated file with three columns:
label,fastq1,fastq2
SAMPLE1,/path/to/SAMPLE1_R1.fastq.gz,/path/to/SAMPLE1_R2.fastq.gz
SAMPLE2,/path/to/SAMPLE2_R1.fastq.gz,/path/to/SAMPLE2_R2.fastq.gz
If your FASTQs are in a
fastqs/subdirectory in the run folder, pass--fastqsand use just the filenames (no path) in the sheet.
| Parameter | Default | Description |
|---|---|---|
--id |
TREx_ID |
Project ID — used for output file naming |
--sheet |
sample-sheet.csv |
Path to sample sheet |
--genome |
null |
Reference genome (see below) |
--mode |
PE |
Sequencing mode: PE (paired-end) |
--bowtie2 |
false |
Enable bowtie2 alignment |
--fastp |
false |
Enable fastp trimming (recommended) |
--gcbias |
false |
Enable GC bias analysis (requires --bowtie2) |
--fastqs |
false |
Look for FASTQs in ./fastqs/ subdirectory |
--listGenomes |
false |
Print available genome index paths and exit |
Bowtie2 indices live at /workdir/genomes/ on the BioHPC server.
| Key | Species | Assembly |
|---|---|---|
hg38 |
Human | GRCh38 |
mm10 |
Mouse | GRCm38 |
dm6 |
Drosophila | BDGP6 |
canFam4 |
Dog | canFam4 |
fc9 |
Cat | Felis_catus_9.0 |
vitis |
Grapevine | GCA_000003745.2 |
Run --listGenomes to see full index paths.
Standard run (trim + align + QC):
nextflow run bixBeta/wgs -r container \
--id 7054D \
--sheet sample-sheet.csv \
--genome hg38 \
--fastp \
--bowtie2With GC bias analysis:
nextflow run bixBeta/wgs -r container \
--id 7054D \
--sheet sample-sheet.csv \
--genome mm10 \
--fastp \
--bowtie2 \
--gcbiasFASTQs in a subdirectory:
nextflow run bixBeta/wgs -r container \
--id 7054D \
--sheet sample-sheet.csv \
--genome hg38 \
--fastp \
--bowtie2 \
--fastqsList available genomes:
nextflow run bixBeta/wgs -r container --listGenomesAll images are hosted on GHCR and pulled automatically by Nextflow.
| Image | Tools |
|---|---|
ghcr.io/bixbeta/wgs-align:latest |
fastp, bowtie2, samtools, picard |
ghcr.io/bixbeta/wgs-qualimap:latest |
qualimap |
ghcr.io/bixbeta/wgs-deeptools:latest |
deeptools |
ghcr.io/bixbeta/wgs-quarto:latest |
R 4.4.2, Quarto 1.5.57 |
multiqc/multiqc:v1.32 |
MultiQC |
./
├── trimmed_fastqs/ # fastp trimmed reads
├── trimmed_logs/ # fastp HTML + JSON reports
├── primary_BAMS/ # bowtie2 aligned BAMs
├── DEDUP_BAMS/ # deduplicated BAMs
├── STATS/
│ ├── SAMTOOLS/ # flagstat + idxstats
│ ├── PICARD/ # MarkDuplicates metrics
│ └── QUALIMAP_RES/ # bamqc output
├── GCBias_DeepTools/ # GC bias PNGs + TXT (if --gcbias)
└── Reports/
├── <genome>/ # MultiQC HTML report
└── <genome>/gc_bias_report.html # Quarto GC bias report (if --gcbias)
- Run inside a
screenortmuxsession so the job persists if your SSH connection drops - Submit via a SLURM wrapper to run Nextflow itself on a compute node:
srun --pty --mem=8G --cpus-per-task=2 bash nextflow run bixBeta/wgs -r container ...
- Use
-resumeto restart from the last successful step after a failure:nextflow run bixBeta/wgs -r container ... -resume
- Nextflow work files are written to
./work/— clean up withnextflow clean -fafter a successful run