SVTrek is a bioinformatics tool for auditing structural variation (SV) discoveries and can also perform SV discovery independently using long-read analysis.
- A C compiler (
gccorclang) andmake autoconf,automake, andlibtool(only needed when htslib is built locally, forautoreconf)zlibdevelopment headerspkg-config(used to detect a system htslib)
# clone the repository
git clone --recursive https://github.com/akmami/SVTrek.git
cd SVTrek
# build dependencies
make install
# compile the program
make
If you already cloned without --recursive, initialise the submodule first:
git submodule update --init --recursive
make install (and make) accept a HTSLIB variable:
make install HTSLIB=auto— use system htslib ifpkg-configfinds it, otherwise build locally (this is the default).make install HTSLIB=system— require the system htslib reported bypkg-config.make install HTSLIB=local— always clone + build htslib underdeps/htslib, ignoring any system copy.
Use the same HTSLIB=... value for the subsequent make so the compile and link flags match.
make clean— remove thesvtrekbinary and object files.make distclean— also remove the locally builtdeps/htslib(a system htslib and the abPOA submodule are left untouched).
./svtrek [MODE] [OPTIONS]
SV discovery mode on a graph-alignment result. It takes a GFA reference graph, a GAF alignment, and the FASTQ reads.
./svtrek disc [-r|--gfa GFA] [-a|--gaf GAF] [-q|--fq FASTQ] [OPTIONS]
-r, --gfa <GFA>- Reference graph in GFA format.
-a, --gaf <GAF>- Graph alignment in GAF format.
-q, --fq <FASTQ>- Long reads in FASTQ format.
-o, --output <filename>- Output filename.
- Default:
svtrek.out
-t <num>- Number of threads to use for processing.
- Default:
4
--verbose- Enables verbose output.
- Default:
false
--consensus-interval-range <num>- Interval that limits the refinement range.
- Default:
500
--consensus-interval <num>- Interval within which locations are treated as the same position.
- Default:
5
--consensus-min-count <num>- Minimum number of elements required for consensus determination.
- Default:
3
Variation auditing mode: parses a BAM file and validates the variations reported in a VCF file.
./svtrek audt [-b|--bam BAM] [-v|--vcf VCF] [OPTIONS]
-b, --bam <BAM>- BAM file to be processed.
-v, --vcf <VCF>- VCF file to be audited.
-o, --output <filename>- Output filename.
- Default:
svtrek.out
-t <num>- Number of threads to use for processing.
- Default:
4
--verbose- Enables verbose output.
- Default:
false
--wider-interval <num>- Offset interval for the start of the reads (DEL-START).
- Default:
20000
--median-interval <num>- Offset interval for point positions (INS).
- Default:
10000
--narrow-interval <num>- Offset interval for the end of the reads (DEL-END).
- Default:
2000
--consensus-interval-range <num>- Interval that limits the refinement range.
- Default:
500
--consensus-interval <num>- Interval within which reads are treated as being at the same position.
- Default:
5
--consensus-min-count <num>- Minimum number of elements required for consensus determination.
- Default:
3
Helper scripts for generating a simulated benchmark live under misc/:
misc/simulate.sh— simulates SVs/SNPs on a reference (SURVIVOR), generates long reads (Badread), and maps them (minimap2), producing a mutated genome, a gold-standard VCF, and a sorted BAM. Species profiles are inmisc/params/.misc/fix_survivor_vcf.awk— normalises SURVIVOR's VCF output into a valid, tab-delimited VCF thatbcftools/truvariaccept.