Kathrin Trappe, Anne-Katrin Emde, Hans-Christian Ehrlich and Knut Reinert


Large-scale population and disease association studies have shown the importance as well as the difficulty of detecting structural variants (SVs) in genomic and also transcriptomic sequencing data. Although being very fast and precise, current read mapping tools usually fail to map sequencing reads that cross SV breakpoints or exon-exon boundaries. These events cause one or even multiple splits in the read-to-reference alignment, with parts of the read mapping to various locations on the reference sequence.
We present GUSTAF, a sound generic multi-split detection method. GUSTAF uses SeqAn’s exact local aligner STELLAR to find partial read alignments. Compatible partial alignments are identified, and a split-read graph storing all compatibility information is constructed for each read. Vertices in the graph represent partial alignments, edges represent possible split positions. Using an exact dynamic programming approach, we refine the alignments around possible split positions to determine precise breakpoint locations at single-nucleotide level. We use a DAG shortest path algorithm to determine the best combination of refined alignments, and report those breakpoints supported by multiple reads.


STELLAR is not a read mapper, and hence, GUSTAF is not designed to replace any read mapper pipeline with SV detection on top. We recommend doing read mapping with your favourite read mapper and then run STELLAR and GUSTAF, seperately, on the remaining unmappable reads.
Please take a look at the README file for usage instructions.

GUSTAF Sources

GUSTAF sources are shipped within the SeqAn library and can be browsed on GitHub.

Download the latest SeqAn sources:

git clone -b develop

GUSTAF Binaries

Supported platforms are: Windows, Linux 64, and Mac OS X. Please take a look at the README file for usage instructions.

Please refer to SeqAns Git repository for latest developer version.

Version History

2015-02-11: v1.0.1

  • fixed: faster I/O processing in Gustaf and gustaf_mate_joining
  • added: parallization option for I/O

2014-08-01: v1.0

  • added: paired-end support
  • added: SV classification duplications and translocations

2013-12-14: v0.1

  • first release of GUSTAF Version 0.1




For questions, comments, or suggestions please contact Kathrin Trappe.

Last Update 27. February 2015