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

implement data hub UI #31

Closed
2 of 4 tasks
rbuels opened this issue Dec 7, 2018 · 11 comments
Closed
2 of 4 tasks

implement data hub UI #31

rbuels opened this issue Dec 7, 2018 · 11 comments
Assignees

Comments

@rbuels
Copy link
Contributor

rbuels commented Dec 7, 2018

make a drawer widget that:

  • lists data hubs that we currently know about, with a check box showing whether they are "connected"
  • has a UI to add a data hub
  • persists the list of hubs in local storage
  • when a data hub is connected, adds its assemblies and tracks to the configuration (root.configuration.tracks, etc) so that the tracks are available in the track selector
@garrettjstevens garrettjstevens self-assigned this Dec 11, 2018
@garrettjstevens
Copy link
Collaborator

May as well start with supporting UCSC Track/Assembly hubs since they're so well-defined. Once the UI is in place we can expand to other types from there.

@garrettjstevens
Copy link
Collaborator

Working on a "stepper" that steps through the process of importing a data hub:
image

@garrettjstevens
Copy link
Collaborator

I've got a UI for choosing either a hub from the Track Hub Registry or from a user-provided URL (includes parsing the hub.txt and genomes.txt of the user-provided URL to select a genome/assebly). Now need a parser for the trackDb.txt files. Will continue here once that is done (#45).
image

@rbuels
Copy link
Contributor Author

rbuels commented Dec 18, 2018 via email

@garrettjstevens
Copy link
Collaborator

Framework now in place to pull in track info from a trackDb. So far using it to pull in all track names to confirmation dialog.

image

@garrettjstevens
Copy link
Collaborator

Been testing on a large track hub (http://ftp.ebi.ac.uk/pub/databases/ensembl/encode/integration_data_jan2011/hg19/trackDb.txt) and it's a bit slow (~23s) to pull in all 1763 tracks. Might be memory-related? Might be unavoidable with that many tracks, though. Could put some of the processing in a webworker, and have the webworker return a snapshot to be attached to the root MST model.

@rbuels
Copy link
Contributor Author

rbuels commented Jan 1, 2019 via email

@garrettjstevens
Copy link
Collaborator

@rbuels, @cmdcolin, I've been thinking about what it means to be "connected" to a data hub, and I'm curious to hear if you have any thoughts.

"Connecting" to a hub seems to imply that at some interval JBrowse will check the hub for updates. What kind of interval should that be? Minutes, days?

Also, what if someone connected to a hub and then edited the config for one of the hub tracks (for example the description)? You'd want that config to persist, but you'd have to keep track of those changes to keep them from getting overridden when the hub updated. And what if the user and the hub both change the same thing? Now there's a "merge conflict."

We could get around this, though, if we "imported" from data hubs instead of "connected" to them, meaning that it was a one-time action and any local changes would get overridden (with a warning) by any future imports.

@cmdcolin
Copy link
Collaborator

cmdcolin commented Jan 7, 2019

same sort of issue was basically coming up here GMOD/jbrowse#1272 and can happen in basically any tracklist scenario if you want user customizations to persist

I'd say override with warning is basically fine though. I also think that an indication that this track is not using the default config is helpful

@garrettjstevens
Copy link
Collaborator

garrettjstevens commented Jan 9, 2019

Related to importing and overwriting tracks, currently JB2 allows multiple identical tracks to be created. This is because each track gets an internal unique ID when created. That makes overwriting tracks tricky, since it means the track name (or any part of the config) isn't guaranteed to be unique. Do we want to enforce unique track names?

@garrettjstevens
Copy link
Collaborator

We now have a UI to add remote tracks from a Track Hub (#64). After #69 is done, we'll want to change this UI to add to the remote tracks instead of the normal tracks, but that can be a separate issue later.

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

No branches or pull requests

3 participants