gosling-lang / gosling.js

Grammar of Scalable Linked Interactive Nucleotide Graphics
https://gosling.js.org
MIT License
166 stars 27 forks source link

Support for Tabixed BED #783

Open sehilyi opened 2 years ago

sehilyi commented 2 years ago

Given that BED files are very common, we need to support Tabixed BED as well.

Reference

Closely related issues

manzt commented 2 years ago

One thing to note is that TABIX supports separate types of indicies: traditional FAI and CSI. Since we make the index path explicit, for these file types, I think that we can determine which index is used from the index URL (i.e., .tbi vs .csi), but we will probably want to support both.

manzt commented 2 years ago

Another thing we could learn from jbrowse folks is coming up with a shared abstraction for retrieving "rows" (or features) or these abstract data formats:

That way rather than implementing N data-fetchers which wrap tabix, we can perhaps have a shared underlying object which performs fetching & parsing given a TabixIndexFile and some parser. So the adapters just need to initialize the TabixIndexedFile and parser.