An adapter that fetches data from a remote Tabix-indexed datafile, instead of a RESTful API. Requires a generic user-specified parser function.
Features provided
Loading and usage
The page must incorporate and load all libraries before this file can be used, including:
- Vendor assets
- LocusZoom
To use in an environment without special JS build tooling, simply load the extension file as JS from a CDN (after any dependencies):
<script src="https://cdn.jsdelivr.net/npm/locuszoom@INSERT_VERSION_HERE/dist/ext/lz-tabix-source.min.js" type="application/javascript"></script>
To use with ES6 modules, the plugin must be loaded and registered explicitly before use:
import LocusZoom from 'locuszoom';
import LzTabixSource from 'locuszoom/esm/ext/lz-tabix-source';
LocusZoom.use(LzTabixSource);
Then use the Adapter made available by this extension. For example:
data_sources.add("assoc", ["TabixUrlSource", {
url_data: 'https://s3-bucket.example/tabix-indexed-bgzip-file.gz',
parser_func: (line_of_text) => object_of_parsed_data_for_this_line,
// Tabix performs region queries. If you are fetching interval data (one end outside the edge of the plot), then
// "overfetching" can help to ensure that data partially outside the view region is retrieved
// If you are fetching single-point data like association summary stats, then overfetching is unnecessary
overfetch: 0.25
}]);
- Source: