Skip to content

Conversation

@karasikov
Copy link
Member

@karasikov karasikov commented Jan 19, 2021

The idea of this change is to keep the alignment separate from search (query).

The query mode will perform operations that return annotation labels with counts for the sequences queried (e.g. via k-mer matching).

The align mode will align to a graph and return alignments with their scores. The reference graph can be a single graph, a subgraph of an annotated graph, or an entire annotated graph. For an annotated graph, this would perform alignment to separate columns and return the alignments (as BLAST).

Any combinations of query and align, such as the current strategy of search with alignment performed against the joint graph followed by querying annotations for the aligned paths, can be done externally in two steps: first run align and pick top alignments and then run query to retrieve the labels for the top alignments.
They don't require the complicated merged interface and can be implemented on the highest level, like Python API.

TODO: implement search(..., align=True) in Python API, as there is no such routine in the core engine anymore.

This can be done externally: 1) align -> 2) query.

Merging both together makes the interfaces more complex.
@karasikov karasikov mentioned this pull request Jan 21, 2021
@karasikov karasikov changed the base branch from dev to master June 10, 2021 09:10
@hmusta hmusta marked this pull request as draft October 25, 2023 11:24
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

Successfully merging this pull request may close these issues.

2 participants