HowDeSBT
Sequence Bloom Tree, supporting determined/how split filters
Install / Use
/learn @medvedevgroup/HowDeSBTREADME
HowDeSBT
Sequence Bloom Tree, supporting determined/how split filters
Dependencies
- Jellyfish (Version 2.2.0 or later)
- SDSL-lite (Has to be cloned from github.com/simongog/sdsl-lite after April 2017; earlier versions had a problem with RRR in certain configurations)
- CRoaring (https://github.com/RoaringBitmap/CRoaring)
- The tutorial makes use of ntCard (https://github.com/bcgsc/ntCard)
Installation
To install HowDeSBT from the source:
1a. Download the latest version of subutan using Github
git clone https://github.com/medvedevgroup/HowDeSBT
1b. Modify the Makefile
If you have installed the dependencies somewhere other than <code>${HOME}</code>, you need to modify the Makefile. Specifically, in both the <code>CXXFLAGS</code> and <code>LDFLAGS</code> definitions <code>$${HOME}</code> should be changed to your install path.
1c. Jellyfish install workaround
(There are other ways to accomplish this, see the note at the end of this step.)
Jellyfish installation requires an extra step for its include directory. After you have installed Jellyfish, do
cd ${HOME}/include
ls | grep jellyfish
You should see something like
jellyfish-2.2.6
where 2.2.6 is the version of Jellyfish you've installed. Then make a symbolic link named 'jellyfish' that points to the includes directory for the version you've installed:
cd ${HOME}/include
ln -s jellyfish-2.2.6/jellyfish jellyfish
Note: the symbolic link is a workaround for the way that Jellyfish installs its files. That install expects the user to have the program pkg-config installed and an environment variable PKG_CONFIG_PATH defined. The Makefile here woud then use pkg-config to get the path to the include files. While that paradigm is apparently widespread it isn't universal. The symbolic link workaround seems less of a burden than requiring that users install another package and set up an environment variable. See https://github.com/gmarcais/Jellyfish/issues/139 for more details.
2. Compile:
cd HowDeSBT
make
3. Install:
cd HowDeSBT
cp howdesbt ${HOME}/bin
Another alternative is to make sure the path to the HowDeSBT directory is in your PATH environment variable.
4. Validation:
The quick start tutorial shows expected results which can be compared against your tutorial results.
Quick Start
A usage tutorial can be found at https://github.com/medvedevgroup/HowDeSBT/tree/master/tutorial
The command <code>howdesbt ?</code> will show a list of subcommands with brief descriptions. As of this writing, that will look like this:
$ howdesbt ?
makebf-- convert a sequence file to a bloom filter
cluster-- determine a tree topology by clustering bloom filters
build-- build a sequence bloom tree from a topology file and leaves
query-- query a sequence bloom tree
version-- report this program's version
The command <code>howdesbt ?<subcommand></code> will give a more detailed description of a subcommand. For example, <code>howdesbt ?makebf</code> gives details for how to convert a sequence file to a bloom filter.
Citation
If you use HowDeSBT, please cite
- Robert S Harris and Paul Medvedev, Improved representation of sequence bloom trees, Bioinformatics, btz662
