Skip to content

jermp/sshash-lite

Repository files navigation

CodeQL

DOI

SSHash-Lite

A membership-only version of SSHash. It works with files with duplicate k-mers too.

For instructions on how to compile the code, build the dictionaries, and data format, please refer to the instructions here.

Example usage

Build an index over the E. Coli matchtigs with

./sshash-lite build ../data/ecoli_matchtigs_k31.fa.gz 31 15 -d tmp --check -o ecoli-matchtigs.sshash

and query with

./sshash-lite query ecoli-matchtigs.sshash ../data/queries/SRR9873306_1.10K.fastq.gz -t 0.8

where a query read is considered as positive if at least 80% of the k-mers are positive.

NOTE: Input files are expected to have one DNA sequence per line. If a sequence spans multiple lines (e.g., multi-fasta), the lines should be concatenated before indexing.

To do so, the script script/concat_lines.py can be used:

python3 script/concat_lines.py <multi_fasta>.fa.gz > output

Enable verbose output

By default we print a summary report for the whole query file. To print the result for each query, define the flag SSHASH_QUERY_VERBOSE_OUTPUT as follows:

cmake .. -D SSHASH_QUERY_VERBOSE_OUTPUT=On
make -j

and re-run the query.

The query output is written on std::cerr by default, so it is possible to capture the output with

./sshash-lite query ecoli-matchtigs.sshash ../data/queries/SRR9873306_1.10K.fastq.gz -t 0.8 2> query_output.txt

which writes the output to the file query_output.txt.

About

K-mer membership queries in compressed space.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages