@gmod/cram 1.7.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/README.md +343 -24
  3. package/dist/craiIndex.js.map +1 -1
  4. package/dist/cram-bundle.js +1 -1
  5. package/dist/cram-bundle.js.LICENSE.txt +6 -0
  6. package/dist/cramFile/codecs/beta.js.map +1 -1
  7. package/dist/cramFile/codecs/byteArrayLength.js.map +1 -1
  8. package/dist/cramFile/codecs/byteArrayStop.js.map +1 -1
  9. package/dist/cramFile/codecs/external.js.map +1 -1
  10. package/dist/cramFile/codecs/gamma.js.map +1 -1
  11. package/dist/cramFile/codecs/getBits.js.map +1 -1
  12. package/dist/cramFile/codecs/huffman.js.map +1 -1
  13. package/dist/cramFile/codecs/index.js.map +1 -1
  14. package/dist/cramFile/codecs/subexp.js.map +1 -1
  15. package/dist/cramFile/container/compressionScheme.js.map +1 -1
  16. package/dist/cramFile/container/index.js.map +1 -1
  17. package/dist/cramFile/file.d.ts +10 -3
  18. package/dist/cramFile/file.js +56 -50
  19. package/dist/cramFile/file.js.map +1 -1
  20. package/dist/cramFile/record.js.map +1 -1
  21. package/dist/cramFile/sectionParsers.d.ts +1 -0
  22. package/dist/cramFile/sectionParsers.js +7 -7
  23. package/dist/cramFile/sectionParsers.js.map +1 -1
  24. package/dist/cramFile/slice/decodeRecord.js +1 -1
  25. package/dist/cramFile/slice/decodeRecord.js.map +1 -1
  26. package/dist/cramFile/slice/index.js.map +1 -1
  27. package/dist/cramFile/util.d.ts +1 -0
  28. package/dist/cramFile/util.js.map +1 -1
  29. package/dist/indexedCramFile.js.map +1 -1
  30. package/dist/io/index.js.map +1 -1
  31. package/dist/rans/constants.d.ts +4 -3
  32. package/dist/rans/constants.js.map +1 -1
  33. package/dist/rans/d04.js +1 -0
  34. package/dist/rans/d04.js.map +1 -1
  35. package/dist/rans/d14.js +1 -0
  36. package/dist/rans/d14.js.map +1 -1
  37. package/dist/rans/decoding.d.ts +16 -19
  38. package/dist/rans/decoding.js +1 -0
  39. package/dist/rans/decoding.js.map +1 -1
  40. package/dist/rans/frequencies.d.ts +2 -2
  41. package/dist/rans/frequencies.js +1 -0
  42. package/dist/rans/frequencies.js.map +1 -1
  43. package/dist/rans/index.js +1 -0
  44. package/dist/rans/index.js.map +1 -1
  45. package/dist/sam.d.ts +5 -6
  46. package/dist/sam.js +23 -7
  47. package/dist/sam.js.map +1 -1
  48. package/dist/typescript.js.map +1 -1
  49. package/dist/unzip.d.ts +1 -0
  50. package/esm/craiIndex.js.map +1 -1
  51. package/esm/cramFile/codecs/beta.js.map +1 -1
  52. package/esm/cramFile/codecs/byteArrayLength.js.map +1 -1
  53. package/esm/cramFile/codecs/byteArrayStop.js.map +1 -1
  54. package/esm/cramFile/codecs/external.js.map +1 -1
  55. package/esm/cramFile/codecs/gamma.js.map +1 -1
  56. package/esm/cramFile/codecs/getBits.js.map +1 -1
  57. package/esm/cramFile/codecs/huffman.js.map +1 -1
  58. package/esm/cramFile/codecs/index.js.map +1 -1
  59. package/esm/cramFile/codecs/subexp.js.map +1 -1
  60. package/esm/cramFile/container/compressionScheme.js.map +1 -1
  61. package/esm/cramFile/container/index.js.map +1 -1
  62. package/esm/cramFile/file.d.ts +10 -3
  63. package/esm/cramFile/file.js +17 -13
  64. package/esm/cramFile/file.js.map +1 -1
  65. package/esm/cramFile/record.js.map +1 -1
  66. package/esm/cramFile/sectionParsers.d.ts +1 -0
  67. package/esm/cramFile/sectionParsers.js +7 -7
  68. package/esm/cramFile/sectionParsers.js.map +1 -1
  69. package/esm/cramFile/slice/decodeRecord.js +1 -1
  70. package/esm/cramFile/slice/decodeRecord.js.map +1 -1
  71. package/esm/cramFile/slice/index.js.map +1 -1
  72. package/esm/cramFile/util.d.ts +1 -0
  73. package/esm/cramFile/util.js.map +1 -1
  74. package/esm/indexedCramFile.js.map +1 -1
  75. package/esm/io/index.js.map +1 -1
  76. package/esm/rans/constants.d.ts +4 -3
  77. package/esm/rans/constants.js.map +1 -1
  78. package/esm/rans/d04.js +1 -0
  79. package/esm/rans/d04.js.map +1 -1
  80. package/esm/rans/d14.js +1 -0
  81. package/esm/rans/d14.js.map +1 -1
  82. package/esm/rans/decoding.d.ts +16 -19
  83. package/esm/rans/decoding.js +1 -0
  84. package/esm/rans/decoding.js.map +1 -1
  85. package/esm/rans/frequencies.d.ts +2 -2
  86. package/esm/rans/frequencies.js +1 -0
  87. package/esm/rans/frequencies.js.map +1 -1
  88. package/esm/rans/index.js +1 -0
  89. package/esm/rans/index.js.map +1 -1
  90. package/esm/sam.d.ts +5 -6
  91. package/esm/sam.js +23 -7
  92. package/esm/sam.js.map +1 -1
  93. package/esm/typescript.js.map +1 -1
  94. package/esm/unzip.d.ts +1 -0
  95. package/package.json +11 -10
  96. package/src/cramFile/container/index.ts +4 -1
  97. package/src/cramFile/file.ts +23 -19
  98. package/src/rans/{d04.js → d04.ts} +1 -0
  99. package/src/rans/{d14.js → d14.ts} +1 -0
  100. package/src/rans/{decoding.js → decoding.ts} +1 -0
  101. package/src/rans/{frequencies.js → frequencies.ts} +1 -0
  102. package/src/rans/{index.js → index.ts} +1 -0
  103. package/src/sam.ts +30 -14
  104. /package/src/rans/{constants.js → constants.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # v2.0.0
2
+
3
+ - Add lzma support via xz-decompress. This uses webassembly, so it is a major
4
+ version bump
5
+
1
6
  # v1.7.4
2
7
 
3
8
  - Fix import of bzip2 module
@@ -26,7 +31,8 @@
26
31
 
27
32
  # v1.6.3
28
33
 
29
- - Optimize CRAM parsing slightly (15% improvement on many short reads). This removes support for big endian machines
34
+ - Optimize CRAM parsing slightly (15% improvement on many short reads). This
35
+ removes support for big endian machines
30
36
  - Publish src directory for sourceMap
31
37
 
32
38
  # v1.6.2
@@ -93,7 +99,8 @@
93
99
 
94
100
  # v1.4.3
95
101
 
96
- - Make sure mate exists for unmated pair, can exist when coordinate slices of cram file are made via samtools view
102
+ - Make sure mate exists for unmated pair, can exist when coordinate slices of
103
+ cram file are made via samtools view
97
104
 
98
105
  # v1.4.2
99
106
 
package/README.md CHANGED
@@ -4,12 +4,17 @@
4
4
  [![Coverage Status](https://img.shields.io/codecov/c/github/GMOD/cram-js/master.svg?style=flat-square)](https://codecov.io/gh/GMOD/cram-js/branch/master)
5
5
  [![Build Status](https://img.shields.io/github/actions/workflow/status/GMOD/cram-js/push.yml?branch=master)](https://github.com/GMOD/cram-js/actions?query=branch%3Amaster+workflow%3APush+)
6
6
 
7
- Read CRAM files (indexed or unindexed) with pure JS, works in node or in the browser.
8
-
9
- * Reads CRAM 3.x and 2.x (3.1 added in v1.6.0)
10
- * Does not read CRAM 1.x
11
- * Can use .crai indexes out of the box, for efficient sequence fetching, but also has an [index API](#craiindex) that would allow use with other index types
12
- * Does implement bzip2 but not lzma codecs (yet); if this is important to your use case, please file an issue
7
+ Read CRAM files (indexed or unindexed) with pure JS, works in node or in the
8
+ browser.
9
+
10
+ - Reads CRAM 3.x and 2.x (3.1 added in v1.6.0)
11
+ - Does not read CRAM 1.x
12
+ - Can use .crai indexes out of the box, for efficient sequence fetching, but
13
+ also has an [index API](#craiindex) that would allow use with other index
14
+ types
15
+ - Has preliminary support for bzip2 and lzma codecs. lzma requires the latest
16
+ @gmod/cram version, and uses webassembly. If you find you are unable to
17
+ compile it, you can try downgrading
13
18
 
14
19
  ## Install
15
20
 
@@ -118,57 +123,368 @@ run()
118
123
  // alternatively `cramFilehandle` (for the IndexedCramFile class) and `filehandle` (for the CraiIndex) can be used, see for examples https://github.com/gmod/generic-filehandle
119
124
  ```
120
125
 
121
- You can use cram-js without NPM also with the cram-bundle.js. See the example directory for usage with script tag
126
+ You can use cram-js without NPM also with the cram-bundle.js. See the example
127
+ directory for usage with script tag
122
128
 
123
129
  ## API (auto-generated)
124
130
 
125
- * [CramRecord](#cramrecord) - format of CRAM records returned by this API
126
- * [ReadFeatures](#readfeatures) - format of read features on records
127
- * [IndexedCramFile](#indexedcramfile) - indexed access into a CRAM file
128
- * [CramFile](#cramfile) - .cram API
129
- * [CraiIndex](#craiindex) - .crai index API
130
- * [Error Classes](#error-classes) - special error classes thrown by this API
131
+ - [CramRecord](#cramrecord) - format of CRAM records returned by this API
132
+ - [ReadFeatures](#readfeatures) - format of read features on records
133
+ - [IndexedCramFile](#indexedcramfile) - indexed access into a CRAM file
134
+ - [CramFile](#cramfile) - .cram API
135
+ - [CraiIndex](#craiindex) - .crai index API
136
+ - [Error Classes](#error-classes) - special error classes thrown by this API
131
137
 
132
138
  ### CramRecord
133
139
 
134
140
  <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
135
141
 
136
- #### Table of Contents
142
+ ##### Table of Contents
143
+
144
+ - [CramRecord](#cramrecord)
145
+ - [isPaired](#ispaired)
146
+ - [isProperlyPaired](#isproperlypaired)
147
+ - [isSegmentUnmapped](#issegmentunmapped)
148
+ - [isMateUnmapped](#ismateunmapped)
149
+ - [isReverseComplemented](#isreversecomplemented)
150
+ - [isMateReverseComplemented](#ismatereversecomplemented)
151
+ - [isRead1](#isread1)
152
+ - [isRead2](#isread2)
153
+ - [isSecondary](#issecondary)
154
+ - [isFailedQc](#isfailedqc)
155
+ - [isDuplicate](#isduplicate)
156
+ - [isSupplementary](#issupplementary)
157
+ - [isDetached](#isdetached)
158
+ - [hasMateDownStream](#hasmatedownstream)
159
+ - [isPreservingQualityScores](#ispreservingqualityscores)
160
+ - [isUnknownBases](#isunknownbases)
161
+ - [getReadBases](#getreadbases)
162
+ - [getPairOrientation](#getpairorientation)
163
+ - [addReferenceSequence](#addreferencesequence)
164
+ - [Parameters](#parameters)
165
+
166
+ #### CramRecord
167
+
168
+ Class of each CRAM record returned by this API.
169
+
170
+ ##### isPaired
171
+
172
+ Returns
173
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
174
+ true if the read is paired, regardless of whether both segments are mapped
175
+
176
+ ##### isProperlyPaired
177
+
178
+ Returns
179
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
180
+ true if the read is paired, and both segments are mapped
181
+
182
+ ##### isSegmentUnmapped
183
+
184
+ Returns
185
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
186
+ true if the read itself is unmapped; conflictive with isProperlyPaired
187
+
188
+ ##### isMateUnmapped
189
+
190
+ Returns
191
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
192
+ true if the read itself is unmapped; conflictive with isProperlyPaired
193
+
194
+ ##### isReverseComplemented
195
+
196
+ Returns
197
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
198
+ true if the read is mapped to the reverse strand
199
+
200
+ ##### isMateReverseComplemented
201
+
202
+ Returns
203
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
204
+ true if the mate is mapped to the reverse strand
205
+
206
+ ##### isRead1
207
+
208
+ Returns
209
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
210
+ true if this is read number 1 in a pair
211
+
212
+ ##### isRead2
213
+
214
+ Returns
215
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
216
+ true if this is read number 2 in a pair
217
+
218
+ ##### isSecondary
219
+
220
+ Returns
221
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
222
+ true if this is a secondary alignment
223
+
224
+ ##### isFailedQc
225
+
226
+ Returns
227
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
228
+ true if this read has failed QC checks
229
+
230
+ ##### isDuplicate
231
+
232
+ Returns
233
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
234
+ true if the read is an optical or PCR duplicate
235
+
236
+ ##### isSupplementary
237
+
238
+ Returns
239
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
240
+ true if this is a supplementary alignment
241
+
242
+ ##### isDetached
243
+
244
+ Returns
245
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
246
+ true if the read is detached
247
+
248
+ ##### hasMateDownStream
249
+
250
+ Returns
251
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
252
+ true if the read has a mate in this same CRAM segment
253
+
254
+ ##### isPreservingQualityScores
255
+
256
+ Returns
257
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
258
+ true if the read contains qual scores
259
+
260
+ ##### isUnknownBases
261
+
262
+ Returns
263
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
264
+ true if the read has no sequence bases
265
+
266
+ ##### getReadBases
267
+
268
+ Get the original sequence of this read.
269
+
270
+ Returns
271
+ **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
272
+ sequence basepairs
273
+
274
+ ##### getPairOrientation
275
+
276
+ Get the pair orientation of a paired read. Adapted from igv.js
277
+
278
+ Returns
279
+ **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
280
+ of paired orientatin
281
+
282
+ ##### addReferenceSequence
283
+
284
+ Annotates this feature with the given reference sequence basepair information.
285
+ This will add a `sub` and a `ref` item to base subsitution read features given
286
+ the actual substituted and reference base pairs, and will make the
287
+ `getReadSequence()` method work.
288
+
289
+ ###### Parameters
290
+
291
+ - `refRegion`
292
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
293
+
294
+ - `refRegion.start`
295
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
296
+ - `refRegion.end`
297
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
298
+ - `refRegion.seq`
299
+ **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
300
+
301
+ - `compressionScheme` **CramContainerCompressionScheme**
302
+
303
+ Returns
304
+ **[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)**
305
+ nothing
137
306
 
138
307
  ### ReadFeatures
139
308
 
140
- The feature objects appearing in the `readFeatures` member of CramRecord objects that show insertions, deletions, substitutions, etc.
309
+ The feature objects appearing in the `readFeatures` member of CramRecord objects
310
+ that show insertions, deletions, substitutions, etc.
141
311
 
142
312
  #### Static fields
143
313
 
144
- * **code** (`character`): One of "bqBXIDiQNSPH". See page 15 of the CRAM v3 spec for their meanings.
145
- * **data** (`any`): the data associated with the feature. The format of this varies depending on the feature code.
146
- * **pos** (`number`): location relative to the read (1-based)
147
- * **refPos** (`number`): location relative to the reference (1-based)
314
+ - **code** (`character`): One of "bqBXIDiQNSPH". See page 15 of the CRAM v3 spec
315
+ for their meanings.
316
+ - **data** (`any`): the data associated with the feature. The format of this
317
+ varies depending on the feature code.
318
+ - **pos** (`number`): location relative to the read (1-based)
319
+ - **refPos** (`number`): location relative to the reference (1-based)
148
320
 
149
321
  ### IndexedCramFile
150
322
 
151
323
  <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
152
324
 
153
- #### Table of Contents
325
+ ##### Table of Contents
326
+
327
+ - [constructor](#constructor)
328
+ - [Parameters](#parameters)
329
+ - [getRecordsForRange](#getrecordsforrange)
330
+ - [Parameters](#parameters-1)
331
+ - [hasDataForReferenceSequence](#hasdataforreferencesequence)
332
+ - [Parameters](#parameters-2)
333
+
334
+ #### constructor
335
+
336
+ ##### Parameters
337
+
338
+ - `args`
339
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
340
+
341
+ - `args.cram` **CramFile**
342
+ - `args.index` **Index-like** object that supports
343
+ getEntriesForRange(seqId,start,end) -> Promise\[Array\[index entries]]
344
+ - `args.cacheSize`
345
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?**
346
+ optional maximum number of CRAM records to cache. default 20,000
347
+ - `args.fetchSizeLimit`
348
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?**
349
+ optional maximum number of bytes to fetch in a single getRecordsForRange
350
+ call. Default 3 MiB.
351
+ - `args.checkSequenceMD5`
352
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**
353
+ default true. if false, disables verifying the MD5 checksum of the reference
354
+ sequence underlying a slice. In some applications, this check can cause an
355
+ inconvenient amount (many megabases) of sequences to be fetched.
356
+
357
+ #### getRecordsForRange
358
+
359
+ ##### Parameters
360
+
361
+ - `seq`
362
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
363
+ numeric ID of the reference sequence
364
+ - `start`
365
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
366
+ start of the range of interest. 1-based closed coordinates.
367
+ - `end`
368
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
369
+ end of the range of interest. 1-based closed coordinates.
370
+ - `opts` (optional, default `{}`)
371
+
372
+ #### hasDataForReferenceSequence
373
+
374
+ ##### Parameters
375
+
376
+ - `seqId`
377
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
378
+
379
+ Returns
380
+ **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
381
+ true if the CRAM file contains data for the given reference sequence numerical
382
+ ID
154
383
 
155
384
  ### CramFile
156
385
 
157
386
  <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
158
387
 
159
- #### Table of Contents
388
+ ##### Table of Contents
389
+
390
+ - [constructor](#constructor)
391
+ - [Parameters](#parameters)
392
+ - [containerCount](#containercount)
393
+
394
+ #### constructor
395
+
396
+ ##### Parameters
397
+
398
+ - `args`
399
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
400
+
401
+ - `args.filehandle`
402
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
403
+ a filehandle that implements the stat() and read() methods of the Node
404
+ filehandle API <https://nodejs.org/api/fs.html#fs_class_filehandle>
405
+ - `args.path`
406
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
407
+ path to the cram file
408
+ - `args.url`
409
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
410
+ url for the cram file. also supports file:// urls for local files
411
+ - `args.seqFetch`
412
+ **[function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?**
413
+ a function with signature `(seqId, startCoordinate, endCoordinate)` that
414
+ returns a promise for a string of sequence bases
415
+ - `args.cacheSize`
416
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?**
417
+ optional maximum number of CRAM records to cache. default 20,000
418
+ - `args.checkSequenceMD5`
419
+ **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**
420
+ default true. if false, disables verifying the MD5 checksum of the reference
421
+ sequence underlying a slice. In some applications, this check can cause an
422
+ inconvenient amount (many megabases) of sequences to be fetched.
423
+
424
+ #### containerCount
160
425
 
161
426
  ### CraiIndex
162
427
 
163
428
  <!-- Generated by documentation.js. Update this documentation by updating the source code. -->
164
429
 
165
- #### Table of Contents
430
+ ##### Table of Contents
431
+
432
+ - [constructor](#constructor)
433
+ - [Parameters](#parameters)
434
+ - [hasDataForReferenceSequence](#hasdataforreferencesequence)
435
+ - [Parameters](#parameters-1)
436
+ - [getEntriesForRange](#getentriesforrange)
437
+ - [Parameters](#parameters-2)
438
+
439
+ #### constructor
440
+
441
+ ##### Parameters
442
+
443
+ - `args`
444
+ **[object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
445
+
446
+ - `args.path`
447
+ **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
448
+ - `args.url`
449
+ **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
450
+ - `args.filehandle` **FileHandle?**
451
+
452
+ #### hasDataForReferenceSequence
453
+
454
+ ##### Parameters
455
+
456
+ - `seqId`
457
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
458
+
459
+ Returns
460
+ **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
461
+ true if the index contains entries for the given reference sequence ID, false
462
+ otherwise
463
+
464
+ #### getEntriesForRange
465
+
466
+ fetch index entries for the given range
467
+
468
+ ##### Parameters
469
+
470
+ - `seqId`
471
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
472
+ - `queryStart`
473
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
474
+ - `queryEnd`
475
+ **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)**
476
+
477
+ Returns
478
+ **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)**
479
+ promise for an array of objects of the form
480
+ `{start, span, containerStart, sliceStart, sliceBytes }`
166
481
 
167
482
  ### CramUnimplementedError
168
483
 
169
484
  **Extends Error**
170
485
 
171
- Error caused by encountering a part of the CRAM spec that has not yet been implemented
486
+ Error caused by encountering a part of the CRAM spec that has not yet been
487
+ implemented
172
488
 
173
489
  ### CramMalformedError
174
490
 
@@ -184,7 +500,10 @@ An error caused by attempting to read beyond the end of the defined data.
184
500
 
185
501
  ## Academic Use
186
502
 
187
- This package was written with funding from the [NHGRI](http://genome.gov) as part of the [JBrowse](http://jbrowse.org) project. If you use it in an academic project that you publish, please cite the most recent JBrowse paper, which will be linked from [jbrowse.org](http://jbrowse.org).
503
+ This package was written with funding from the [NHGRI](http://genome.gov) as
504
+ part of the [JBrowse](http://jbrowse.org) project. If you use it in an academic
505
+ project that you publish, please cite the most recent JBrowse paper, which will
506
+ be linked from [jbrowse.org](http://jbrowse.org).
188
507
 
189
508
  ## License
190
509
 
@@ -1 +1 @@
1
- {"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"craiIndex.js","sourceRoot":"","sources":["../src/craiIndex.ts"],"names":[],"mappings":"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"}