Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Large k-mer sizes (near 64) produces excessive dummies and takes too much time and memory. #6

Open
mmuggli opened this issue Feb 14, 2017 · 1 comment

Comments

@mmuggli
Copy link
Contributor

mmuggli commented Feb 14, 2017

This has been seen with a bug in KMC2. The problem is a "funnel shift" operation which shifts by the number of bits in a word. Conceptually, the code shifts the value out of the word entirely. However, the actual behavior is undefined for the language. An implementation may shift by the log2(wordsize) least significant bits of the shift-by value, which means no shift at all, and thus a value which should be shifted out under certain cases in the KMC2 code actually remains unshifted. This unshifted value is added to the return value in their API and corrupts the k-mer value. There is a workaround in io.hpp which can be uncommented..

marekkokot added a commit to refresh-bio/KMC that referenced this issue Nov 12, 2017
@marekkokot
Copy link

Hi,

I am a co-author of KMC software and I just noticed the problem you reported here.
to_long is not an official part of our API, yet I have fixed (I hope) the problem you reported in the last commit.
Thanks for using KMC.
If you find some other bugs/problems with KMC please create issue in KMC repository.

mbargull pushed a commit to mbargull/KMC that referenced this issue Dec 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants