René Rahn, David Weese, and Knut Reinert


Motivation: Next generation sequencing (NGS) has revolutionized biomedical research in the last decade and led to a continues stream of developments in bioinformatics addressing the need for fast and space efficient solutions for analyzing NGS data. Often researchers need to analyze a set of genomic sequences which stem from closely related species or are indeed individuals of the same species. Hence the analyzed sequences are very similar. For analyses where local changes in the examined sequence induce only local changes in the results it is obviously desirable to examine identical or similar regions not repeatedly.
Results: In this work we provide a datatype which exploits data parallelism inherent in a set of similar sequences by analyzing shared regions only once. In real-world experiments we show that algorithms which otherwise would scan each reference sequentially can be speeded up by a factor of 115.
Availability: The data structure and associated tools are publicly available at http://www.seqan.de/projects/jst and are part of SeqAn, the C++ template library for sequence analysis.

Main Features

  • Journaled String Tree data structure and traverser.
  • Generic Journaled String Tree finder.
  • Online-search functors: Naive, Horspool, Shift-And, Shift-Or, Myers' Bitvector.
  • GDF converter to convert vcf files into our Genome Delta Format.

Version History

2014-08-18: v0.2

  • bug fixes

2014-04-11: v0.1

  • initial release

Source Code

You can find the source code for the Journaled String Tree
here and for the finder interface here.

The current stable version is based on SeqAn 1.4.2 and is going to be ported to SeqAn 2.0.0 in the near future.

Demo Application

We provide a demo application used for performance measurements for download. Please have a look at the README file for usage instructions.

  • JST Data (v0.1) - An example gdf file of 1092 human chr1 sequences from the 1000 Genomes Project, the reference sequence and some pattern examples.
  • JST Bench (v0.2) - Linux x86 64 bit binaries of the JST benchmark tool built on Debian Wheezy.


For questions, comments, or suggestions feel free to contact René Rahn.


  1. Rahn, R., Weese D., & Reinert, K. (2014). Journaled String Tree - A scalable data structure for analyzing thousands of similar genomes on your laptop. Bioinformatics.
Last Update 17. April 2015