Skip to content

Commit

Permalink
Merge pull request #38 from VeryAmazed/VeryAmazed-patch-1
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
VeryAmazed authored Jun 2, 2024
2 parents 7bd202b + 45a93d4 commit 401b88f
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ C++ library which supports various minimizer schemes for digestion of DNA sequen
# Implementation
Supports Mod Minimizers, Window Minimizers, and Syncmers

Uses the cyclic or hash provided by [ntHash](https://github.com/bcgsc/ntHash). For now I just downloaded the essential files off their github and compiled it myself but I may change how I link in ntHash in the future.
Uses the cyclic or hash provided by [ntHash](https://github.com/bcgsc/ntHash).
Tests were written using the [Catch2](https://github.com/catchorg/Catch2) unit testing framework.
Benchmarking is done using Google's [benchmark](https://github.com/google/benchmark) library.

Tests were written using the [Catch2](https://github.com/catchorg/Catch2) unit testing framework.

As ntHash only hashes ACTG characters, this library can also only hash ACTG characters. Any kmer that contains a non-ACTG character will be skipped over, for example is the kmer size is 4, and the sequence is ACCGNATTGC, only ACCG, ATTG, and TTGC will be hashed and considered for being a minimizer.
Non-ACTG character's cannot be hashed and must be handled using one of the two bad character handling policies. More details in the documentation.

Mod Minimzer classifies a kmer as a minimizer if the hash of the kmer is congruent to the user specified value in the user specified mod-space.

Window Minimizer classifies a kmer as a minimizer if it is the smallest in the user specifed large window, using rightmost kmer to break ties.

Syncmer classifies a large window as a minimizer if its smallest value is equal to the value of the hashes of the leftmost or rightmost kmer in the window (doesn't care if the smallest hash value is not unique). Because of how the large window is defined and how this library handles skipping over non-ACTG characters, if your sequence has non-ACTG characters, it is possible for this large window to have varying lengths in terms of number of characters.
Syncmer classifies a large window as a minimizer if its smallest value is equal to the value of the hashes of the leftmost or rightmost kmer in the window (doesn't care if the smallest hash value is not unique). Note that because of how the large window is defined if you are using the SKIPOVER policy and your sequence has non-ACTG characters, it is possible for this large window to have varying lengths in terms of number of characters.

# Install
We use [Meson](https://mesonbuild.com). (Very) old version will not work.
Expand Down

0 comments on commit 401b88f

Please sign in to comment.