cuttlefish icon indicating copy to clipboard operation
cuttlefish copied to clipboard

Cuttlefish as C++ API / header library?

Open Krannich479 opened this issue 4 years ago • 2 comments

I am very interested in using cuttlefish from within C++ code and was wondering if it would be possible for you to provide some kind of C++ API / header library? I'd be particularly interested in functionality like

Minimal:

  • building a colored and compacted de Bruijn Graph
  • query kmers
  • iterate over unitigs
  • inspect colors per kmer (ideally associated with identifiers of the input samples)

For convenience:

  • determine neighbors of a unitig u (likely be a query of 2*4 kmers that eventually border u)
  • graph simplification (delete tips and singletons of length smaller than a threshold)
  • annotate nodes with custom data (there might be no need for it in case the graph provides a deterministic way of iterating over the unitigs)

PS: Great talk and contribution to DSB2021! Glad I could learn more about cuttlefish there.

Krannich479 avatar Feb 15 '21 10:02 Krannich479

inspect colors per kmer

This would also help with mine and the question of @jamshed-k #3 : "to know if some segment with id x is shared among multiple references or not ". While this information is in the GFA output it gets computational expensive to figure out for each of the nodes in what references is was present when the graph gets large

rickbeeloo avatar Feb 15 '21 11:02 rickbeeloo

Hello @Krannich479, glad to know your interest in using cuttlefish (and thanks for attending the DSB'21 talk)!

The functionalities that you proposed to include looks great. We certainly have these issues (and more) in the roadmap for the cuttlefish-expansion process; but these are presently prioritized after some current development milestones that we've been working on. Right now I'm short on work-cycles to put into the expansion. But you (and @rickbeeloo!) can rest assured that relevant functionalities will be supported soon—it may take a few months.

Also, let us know if we can help with any of the currently supported features!

Regards.

jamshed avatar Feb 16 '21 22:02 jamshed