kmers icon indicating copy to clipboard operation
kmers copied to clipboard

Discussion / possible features

Open imartayan opened this issue 4 months ago • 2 comments

Hi there! I'd like to discuss the state of this project to see if it would be suitable for larger Rust libraries.

First I'd like to say that I really like the design of this library, especially the separation of encoding and Kmer, and the fact that it scales with large K using bitfields.

Still, I think that it would be nice to support more elementary operations to make the library more convenient, and that further optimizations could be explored. In no particular order, I'm thinking of the following features

  • navigational methods computing the predecessor/successor of a k-mer by prepending/appending a given base
  • an iterator producing k-mers from an iterator of u8
  • a method to compute the canonical version of a k-mer / to test if a k-mer is canonical
  • optimizing some operations with SIMD if we use multiples integers to store a k-mer

Do you think these features are appropriate for this library, or would you prefer to keep it simple? I've already implemented some of these features in a less generic way (see this module), so I could try to adapt the code to this library.

imartayan avatar Mar 01 '24 10:03 imartayan