HowDeSBT

 from medvedevgroup/HowDeSBT

Last update: Apr 19, 2024

Sequence Bloom Tree, supporting determined/how split filters

Dependencies

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 ${HOME}, you need to modify the Makefile. Specifically, in both the CXXFLAGS and LDFLAGS definitions $${HOME} 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 gmarcais/Jellyfish#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 howdesbt ? 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 howdesbt ?<subcommand> will give a more detailed description of a subcommand. For example, howdesbt ?makebf 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