Nirvana provides clinical-grade annotation of genomic variants (SNVs, MNVs, insertions, deletions, indels, and SVs (including CNVs). It can be run as a stand-alone package or integrated into larger software tools that require variant annotation.
Allocate an interactive session and run the program. Sample session:
[user@biowulf]$ sinteractive --mem=8g
salloc.exe: Nodes cn3144 are ready for job
[user@cn3144 ~]$ module load nirvana
[+] Loading nirvana 2.16.1 on cn3144
[user@cn3144 ~]$ nirvana -h
---------------------------------------------------------------------------
Nirvana (c) 2021 Illumina, Inc.
Stromberg, Roy, Lajugie, Jiang, Li, and Kang 3.16.1
---------------------------------------------------------------------------
USAGE: dotnet Nirvana.dll -i <vcf path> -c <cache prefix> --sd <sa dir> -r <ref path> -o <base output filenam>e
Annotates a set of variants
OPTIONS:
--cache, -c <prefix> input cache prefix
--in, -i <t;path> input VCF path
--out, -o <file path> output file path
--ref, -r <path> input compressed reference sequence path
--sd <directory> input supplementary annotation directory
--force-mt forces to annotate mitochondrial variants
--disable-recomposition
don't recompose function relevant variants
--legacy-vids enables support for legacy VIDs
--enable-dq report DQ from VCF samples field
--str <VALUE> user provided STR annotation TSV file
--help, -h displays the help menu
--version, -v displays the version
Download a sample VCF file:
[user@cn3144 ~]$ curl -O https://illumina.github.io/NirvanaDocumentation/files/HiSeq.10000.vcf.gzRun Nirvana on the sample file:
[user@cn3144 ~]$ nirvana \
-c $NIRVANA_DATA/Cache/GRCh37/Both \
--sd $NIRVANA_DATA/SupplementaryAnnotation/GRCh37 \
-r $NIRVANA_DATA/References/Homo_sapiens.GRCh37.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000
---------------------------------------------------------------------------
Nirvana (c) 2021 Illumina, Inc.
Stromberg, Roy, Lajugie, Jiang, Li, and Kang 3.16.1
---------------------------------------------------------------------------
Initialization Time Positions/s
---------------------------------------------------------------------------
Cache 00:00:02.2
SA Position Scan 00:00:00.1 61,441
Reference Preload Annotation Variants/s
---------------------------------------------------------------------------
chr1 00:00:00.7 00:00:03.4 2,904
Summary Time Percent
---------------------------------------------------------------------------
Initialization 00:00:02.4 21.4 %
Preload 00:00:00.7 6.6 %
Annotation 00:00:03.4 30.2 %
Peak memory usage: 1.322 GB
Time: 00:00:10.8
[user@cn3144 ~]$ nirvana \
-c $NIRVANA_DATA/Cache/GRCh38/Both \
--sd $NIRVANA_DATA/SupplementaryAnnotation/GRCh38 \
-r $NIRVANA_DATA/References/Homo_sapiens.GRCh38.Nirvana.dat \
-i HiSeq.10000.vcf.gz \
-o HiSeq.10000
---------------------------------------------------------------------------
Nirvana (c) 2021 Illumina, Inc.
Stromberg, Roy, Lajugie, Jiang, Li, and Kang 3.16.1
---------------------------------------------------------------------------
Initialization Time Positions/s
---------------------------------------------------------------------------
Cache 00:00:02.1
SA Position Scan 00:00:00.1 66,470
Reference Preload Annotation Variants/s
---------------------------------------------------------------------------
chr1 00:00:01.3 00:00:02.9 3,325
Summary Time Percent
---------------------------------------------------------------------------
Initialization 00:00:02.3 19.0 %
Preload 00:00:01.3 11.3 %
Annotation 00:00:02.9 24.6 %
Peak memory usage: 1.346 GB
Time: 00:00:11.4
[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$
Create a batch input file (e.g. nirvana.sh). For example:
#!/bin/bash set -e module load nirvana nirvana -c $NIRVANA_DATA/Cache/GRCh37/Both \ --sd $NIRVANA_DATA/SupplementaryAnnotation/GRCh37 \ -r $NIRVANA_DATA/References/Homo_sapiens.GRCh37.Nirvana.dat \ -i HiSeq.10000.vcf \ -o Hiseq_result_anno
Submit this job using the Slurm sbatch command.
sbatch nirvana.sh
Create a swarmfile (e.g. nirvana.swarm). For example:
nirvana -i vfc1.vcf -o vcf1 [... rest of the options] nirvana -i vfc2.vcf -o vcf2 [... rest of the options] nirvana -i vfc3.vcf -o vcf3 [... rest of the options] nirvana -i vfc4.vcf -o vcf4 [... rest of the options]
Submit this job using the swarm command.
swarm -f nirvana.swarm --module nirvanawhere
| --module nirvana | Loads the nirvana module for each subjob in the swarm |