Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support general node / edge metadata #243

Open
16 tasks
fedarko opened this issue Apr 13, 2023 · 0 comments · May be fixed by #244
Open
16 tasks

Support general node / edge metadata #243

fedarko opened this issue Apr 13, 2023 · 0 comments · May be fixed by #244

Comments

@fedarko
Copy link
Member

fedarko commented Apr 13, 2023

Arbitrary categorical / quantitative information associated with each node / edge. Something simple like TSV files would be sufficient. Maybe we have two optional parameters to the CLI (--node-metadata and --edge-metadata?), where each can refer to a TSV file where the rows are nodes / edges and the columns are metadata fields (e.g. TaxonomicClassification, Repetitive, ...)

The main purposes behind supporting this are:

  1. Enabling the user to encode the visualization with this information -- i.e. node / edge colors, or edge thicknesses, or maybe node border colors (?), etc.

  2. When we view information about a node / edge, show this information (along with existing node / edge properties, e.g. length, GC content, ...)

This information should probably just be stored in the same location as arbitrary GFA tag information (#238). We will need to do the standard sanity checking of "is the same metadata field name given in both files?", of course.

Support for this issue would supersede #8, #54, and #95. It isn't quite a replacement for #111, but I guess we could extend it to support #111 (I'll leave both this and #111 open for now).

Checklist

Python

  • Load node metadata; add it to graph, and then to visualization
  • Load edge metadata; add it to graph, and then to visualization
  • Check that metadata columns are not duplicated with other reserved names / etc.

JS

  • Implement arbitrary node coloring
    • Categorical
    • Quantitative
  • Implement arbitrary node border coloring
    • Categorical
    • Quantitative
    • Think really hard about if we want to support scaling node border thicknesses (mildly hot take: probably not)
  • Implement arbitrary edge coloring
    • Categorical
    • Quantitative
  • Implement arbitrary edge thickness scaling
    • Quantitative (there isn't a categorical analogue for this, right?)
    • Once this is ready, remove the Python scale_edges() stuff in favor of just letting the user scale edges by coverages in the JS (maaaaybe default to that, so that the default "workflow" for a user doesn't change)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant