Package: nanovar
NanoVar - Structural variant caller using low-depth long-read sequencingNanoVar is a genomic structural variant (SV) caller that utilizes low-depth long-read sequencing such as
Oxford Nanopore Technologies (ONT). It characterizes SVs with using only 4x depth
sequencing for homozygous SVs and 8x depth for heterozygous SVs.Basic capabilitiesPerforms long-read mapping (Minimap2) and SV discovery in a single pipeline.Accurately characterizes SVs using long sequencing reads (High SV recall and precision in simulation datasets, overall F1
score >0.9)Characterizes six classes of SVs including novel-sequence insertion, deletion, inversion, tandem duplication, sequence
transposition (TPO) and translocation (TRA).Requires 4x and 8x sequencing depth for detecting homozygous and heterozygous SVs respectively.Rapid computational speed (Takes <3 hours to map and analyze 12 gigabases datasets (4x) using 24 CPU threads)Approximates SV genotypeIdentifies full-length LINE and SINE insertions (Marked by "TE=" in the INFO column of VCF file)Repeat element INS annotation using NanoINSightGetting StartedQuick runnanovar [Options] -t 24 -f hg38 sample.fq/sample.bam ref.fa working_dirParameterArgumentComment-tnum_threadsIndicate number of CPU threads to use-f(Optional)gap_file (Optional)Choose built-in gap BED file or specify own file to exclude gap regions in the reference genome. Built-in gap files include: hg19, hg38 and mm10-sample.fq/sample.bamInput long-read FASTA/FASTQ file or mapped BAM file-ref.faInput reference genome in FASTA format-working_dirSpecify working directorySeewikifor entire list of options.OutputOutput fileComment${sample}.nanovar.pass.vcfFinal VCF filtered output file (1-based)${sample}.nanovar.pass.report.htmlHTML report showing run summary and statisticsFor more information, seewiki.Full usageusage: nanovar [options] [FASTQ/FASTA/BAM] [REFERENCE_GENOME] [WORK_DIRECTORY]

NanoVar is a neural network enhanced structural variant (SV) caller that handles low-depth long-read sequencing data.

positional arguments:
  [FASTQ/FASTA/BAM]     path to long reads or mapped BAM file.
                        Formats: fasta/fa/fa.gzip/fa.gz/fastq/fq/fq.gzip/fq.gz or .bam
  [reference_genome]    path to reference genome in FASTA. Genome indexes created
                        will overwrite indexes created by other aligners such as bwa.
  [work_directory]      path to work directory. Directory will be created
                        if it does not exist.

options:
  -h, --help            show this help message and exit
  --cnv hg38            also detects large genomic copy-number variations
                        using CytoCAD (e.g. loss/gain of whole chromosomes).
                        Only works with hg38 genome assembly. Please state 'hg38' [None]
  -x str, --data_type str
                        type of long-read data [ont]
                        ont - Oxford Nanopore Technologies
                        pacbio-clr - Pacific Biosciences CLR
                        pacbio-ccs - Pacific Biosciences CCS
  -f file, --filter_bed file
                        BED file with genomic regions to be excluded [None]
                        (e.g. telomeres and centromeres) Either specify name of in-built
                        reference genome filter (i.e. hg38, hg19, mm10) or provide full
                        path to own BED file.
  --annotate_ins str    enable annotation of INS with NanoINSight,
                        please specify species of sample [None]
                        Currently supported species are:
                        'human', 'mouse', and 'rattus'.
  -c int, --mincov int  minimum number of reads required to call a breakend [2]
  -l int, --minlen int  minimum length of SV to be detected [25]
  -p float, --splitpct float
                        minimum percentage of unmapped bases within a long read
                        to be considered as a split-read. 0.05<=p<=0.50 [0.05]
  -a int, --minalign int
                        minimum alignment length for single alignment reads [200]
  -b int, --buffer int  nucleotide length buffer for SV breakend clustering [50]
  -s float, --score float
                        score threshold for defining PASS/FAIL SVs in VCF [1.0]
                        Default score 1.0 was estimated from simulated analysis.
  --homo float          lower limit of a breakend read ratio to classify a homozygous state [0.75]
                        (i.e. Any breakend with homo<=ratio<=1.00 is classified as homozygous)
  --hetero float        lower limit of a breakend read ratio to classify a heterozygous state [0.35]
                        (i.e. Any breakend with hetero<=ratio<homo is classified as heterozygous)
  --debug               run in debug mode
  -v, --version         show version and exit
  -q, --quiet           hide verbose
  -t int, --threads int
                        number of available threads for use [1]
  --model path          specify path to custom-built model
  --mm path             specify path to 'minimap2' executable
  --st path             specify path to 'samtools' executable
  --ma path             specify path to 'mafft' executable for NanoINSight
  --rm path             specify path to 'RepeatMasker' executable for NanoINSightOperating systemLinux (x86_64 architecture, tested in Ubuntu 14.04, 16.04, 18.04)InstallationThere are three ways to install NanoVar:Option 1: Conda environment (Recommended)# Installing from bioconda automatically installs all dependencies 
conda install -c bioconda nanovar

# Or if encountered compatibility issues, install individual dependencies and then install NanoVar using pip
conda create -n myenv -c bioconda python=3.11 samtools bedtools minimap2 -y
conda activate myenv
pip install nanovarOption 2: PyPI (See dependencies below)# Installing from PyPI requires own installation of dependencies, see below
pip install nanovarOption 3: GitHub (See dependencies below)# Installing from GitHub requires own installation of dependencies, see below
git clone https://github.com/cytham/nanovar.git 
cd nanovar 
pip install .Installation of dependenciesbedtools >=2.26.0samtools >=1.3.0minimap2 >=2.17Please make sure each executable binary is in PATH.1.bedtoolsPlease visitherefor instructions to install.2.samtoolsPlease visitherefor instructions to install.3.minimap2Please visitherefor instructions to install.Annotating INS variants with NanoINSightNanoVar allows the concurrent repeat element annotation of INS variants usingNanoINSight.To run NanoINSight, simply add "--annotate_ins [species]" when running NanoVar.nanovar -t 24 -f hg38 --annotate_ins human sample.bam ref.fa working_dirTo understand NanoINSight output files, please visit its repositoryhere.Installation of NanoINSight dependenciesNanoINSight requires the installation of MAFFT and RepeatMasker. Please refer toherefor instructions on how to install them, or install them through Conda as shown below:conda install -c bioconda mafft repeatmasker -yDocumentationSeewikifor more information.VersioningSeeCHANGELOGCitationIf you use NanoVar, please cite:Tham, CY., Tirado-Magallanes, R., Goh, Y. et al. NanoVar: accurate characterization of patients’ genomic structural variants using low-depth nanopore sequencing. Genome Biol. 21, 56 (2020).https://doi.org/10.1186/s13059-020-01968-7AuthorsTham Cheng Yong-cythamRoberto Tirado Magallanes-rtmagAsmaa Samy-AsmaaSamyMohamedMahmoudTouati Benoukraf-benoukraflabLicenseThis project is licensed under GNU General Public License - seeLICENSE.txtfor details.Simulation datasets and scripts used in the manuscriptSV simulation datasets used in the manuscript can be downloadedhere. Scripts used for simulation dataset generation and tool performance comparison are availablehere.Although NanoVar is provided with a universal model and threshold score, instructions required for building a custom neural-network model is availablehere.LimitationsThe inaccurate basecalling of large homopolymer or low complexity DNA regions may result in the false determination of deletion SVs. We advise the use of up-to-date ONT basecallers such asDoradoto minimize this possibility.For BND SVs, NanoVar is unable to calculate the actual number of SV-opposing reads (normal reads) at the novel adjacency as
there are two breakends from distant locations. It is not clear whether the novel adjacency is derived from both or either
breakends in cases of balanced and unbalanced variants, and therefore it is not possible to know which breakend location(s) to
consider for counting normal reads. Currently, NanoVar approximates the normal read count by the minimum count from either
breakend location. Although this helps in capturing unbalanced BNDs, it might lead to some false positives.