Skip to content

experimental LIN taxonomy integration#73

Draft
bluegenes wants to merge 1 commit into
Arcadia-Science:mainfrom
bluegenes:lins
Draft

experimental LIN taxonomy integration#73
bluegenes wants to merge 1 commit into
Arcadia-Science:mainfrom
bluegenes:lins

Conversation

@bluegenes

@bluegenes bluegenes commented Mar 15, 2023

Copy link
Copy Markdown

[note: this is an experimental/draft PR and should not be merged as-is]

ref #72

In sourmash taxonomy, we're adding utils to use the LIN taxonomic framework, which allows for greater flexibility and specificity compared with standard taxonomic ranks. For example, if only certain strains of a microbe are pathogenic, the LIN framework may be useful for identifying/grouping pathogenic vs non-pathogenic strains. Is this something you're interested in allowing for viz?

We had a question about whether sourmashconsumr would work with LIN lineages for e.g. sankey plots, so I decided to experiment a little to see how easy/hard it would be to allow LIN functionality.

This PR has lins semi working for:

  • tax_glom_taxonomy_annotate
  • plot_taxonomy_annotate_sankey

plot using sourmash test data from the lins PR (tests/test-data/tax/test1.gather.csv annotated with tests/test-data/tax/test.LIN-taxonomy.csv):
image

Challenges and thoughts

  • LIN positions are not always a set length, though I believe 20 positions is currently the LINbase standard. Selecting a default to summarize if the user doesn't provide one is currently hacky and would need some thought.
  • LIN position "names" (numbers) aren't terribly helpful for visualizations.
    • "LINgroups" are defined LIN prefixes that have some useful meaning (e.g. we may have named groups for the 0;0;1 prefix vs the0;1;1 prefix). These groups are given names, which would be a bit nicer for plotting. However, using LINgroup names would currently require reading in a separate lingroup file or using the lingroup report from tax metagenome
    • Thinking about it more, the sankey doesn't actually make sense as it is. Once a lineage diverges, it should never come back together! Might need to work with the full prefix (0;1;1 at a rank/position rather than the individual value).

I am happy to work on this further or drop it, if this isn't something you want to allow!

@keithchev
keithchev marked this pull request as draft June 23, 2025 15:36
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.

1 participant