bcgsc / btllib

Bioinformatics Technology Lab common code library
Other
21 stars 5 forks source link

Indexlr mx filter #79

Open aafshinfard opened 1 year ago

aafshinfard commented 1 year ago

For filtering some unwanted minimizer kmers, we used to mask them (disqualifying them from generating minimizes by setting their hash value to max) which allowed some other adjacent kmers to develop false minimizers. This code enables an alternative approach: allow the unwanted kmers to generate minimizers, but then don't output minimizers originated from unwanted kmers.

This code does not change the default functionality of indexlr and supposedly does not run slower as it involves only a couple of additional if statements. I am planning some extensive testing and if they showed the alternative approach results in better results we will discuss changing the default behavior of indexlr.

aafshinfard commented 1 year ago

Looks good Amirhossein!

Question about your thoughts with the timing of this merge - do you think it makes sense to try out and analyze the alternate filtering modes before merging this to master? Then, basically only integrate the mode(s) that we see have promise to the code base?

I was planning to merge and then test-run on Physlr as the tests wouldn't be some small isolated tests but rather running the whole pipeline... but sure I can still do the same before merging, but whatever comes out of it is not necessarily the best approach for all cases (including various tools and various datasets)

aafshinfard commented 1 year ago

Thanks for reviewing @lcoombe and @parham-k