@gmod/nclist
Version:
Read features from JBrowse 1 format nested containment list JSON
95 lines (68 loc) • 4.21 kB
Markdown
# nclist-js
Read legacy JBrowse 1 nested containment list JSON.
## Status
[](https://github.com/GMOD/nclist-js/actions)
[](https://codecov.io/gh/GMOD/nclist-js/branch/master)
[](https://npmjs.org/package/@gmod/nclist)
## Usage
```javascript
import { RemoteFile } from 'generic-filehandle2'
import NCList from '@gmod/nclist'
;(async () => {
const store = new NCList({
baseUrl: `http://my.server/path/to/data/dir/`,
urlTemplate: 'volvox_genes/{refseq}/trackData.json',
readFile: url => new RemoteFile(url).readFile(),
})
for await (const feature of store.getFeatures({
refName: 'ctgA',
start: 0,
end: 50000,
})) {
console.log(
`got feature at ${feature.get('seq_id')}:${feature.get(
'start',
)}-${feature.get('end')}`,
)
}
})()
```
## API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
#### Table of Contents
* [NCListStore](#ncliststore)
* [Parameters](#parameters)
* [getRegionFeatureDensities](#getregionfeaturedensities)
* [Parameters](#parameters-1)
* [getFeatures](#getfeatures)
* [Parameters](#parameters-2)
### NCListStore
Sequence feature store using nested containment
lists held in JSON files that are lazily read.
#### Parameters
* `args` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** constructor args
* `args.baseUrl` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** base URL for resolving relative URLs
* `args.urlTemplate` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Template string for
the root file of each reference sequence. The reference sequence
name will be interpolated into this string where `{refseq}` appears.
* `args.readFile` **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** function to use for reading remote from URLs.
* `args.cacheSize` (optional, default `10`)
#### getRegionFeatureDensities
fetch binned counts of feature coverage in the given region.
##### Parameters
* `query` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `query.refName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** reference sequence name
* `query.start` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** region start
* `query.end` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** region end
* `query.numBins` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** number of bins desired in the feature counts
* `query.basesPerBin` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** number of bp desired in each feature counting bin
Returns **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** as:
`{ bins: hist, stats: statEntry }`
#### getFeatures
Fetch features in a given region. This method is an asynchronous generator
yielding feature objects.
##### Parameters
* `args` **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `args.refName` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** reference sequence name
* `args.start` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** start of region. 0-based half-open.
* `args.end` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** end of region. 0-based half-open.