@genome-spy/core 0.42.2 → 0.43.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 (75) hide show
  1. package/dist/bundle/{index-d7k3kkin.js → index-noY1e-G6.js} +365 -361
  2. package/dist/bundle/index.es.js +3348 -3223
  3. package/dist/bundle/index.js +89 -84
  4. package/dist/schema.json +251 -1
  5. package/dist/src/data/collector.d.ts.map +1 -1
  6. package/dist/src/data/collector.js +28 -2
  7. package/dist/src/data/sources/dataSourceFactory.d.ts +7 -7
  8. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  9. package/dist/src/data/sources/dataSourceFactory.js +9 -9
  10. package/dist/src/data/sources/{dynamic → lazy}/README.md +2 -2
  11. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -0
  12. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -0
  13. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -0
  14. package/dist/src/data/sources/{dynamic → lazy}/bigBedSource.d.ts +6 -0
  15. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -0
  16. package/dist/src/data/sources/lazy/bigBedSource.js +206 -0
  17. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -0
  18. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -0
  19. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -0
  20. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -0
  21. package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.js +3 -3
  22. package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -0
  23. package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -0
  24. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  25. package/dist/src/data/transforms/regexFold.js +6 -8
  26. package/dist/src/encoder/encoder.d.ts +1 -1
  27. package/dist/src/encoder/encoder.d.ts.map +1 -1
  28. package/dist/src/gl/arrayBuilder.d.ts +11 -5
  29. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  30. package/dist/src/gl/arrayBuilder.js +77 -40
  31. package/dist/src/gl/dataToVertices.d.ts +3 -2
  32. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  33. package/dist/src/gl/dataToVertices.js +52 -17
  34. package/dist/src/gl/glslScaleGenerator.d.ts +12 -0
  35. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  36. package/dist/src/gl/glslScaleGenerator.js +38 -4
  37. package/dist/src/gl/includes/scales.glsl.js +1 -1
  38. package/dist/src/marks/link.d.ts.map +1 -1
  39. package/dist/src/marks/link.js +2 -1
  40. package/dist/src/marks/mark.d.ts.map +1 -1
  41. package/dist/src/marks/mark.js +9 -1
  42. package/dist/src/spec/channel.d.ts +14 -1
  43. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  44. package/dist/src/view/flowBuilder.js +11 -4
  45. package/dist/src/view/unitView.d.ts +1 -1
  46. package/dist/src/view/unitView.d.ts.map +1 -1
  47. package/package.json +3 -3
  48. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +0 -1
  49. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +0 -1
  50. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +0 -1
  51. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +0 -1
  52. package/dist/src/data/sources/dynamic/bigBedSource.js +0 -84
  53. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +0 -1
  54. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +0 -1
  55. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +0 -1
  56. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +0 -1
  57. package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +0 -1
  58. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +0 -1
  59. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.d.ts +0 -0
  60. /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.js +0 -0
  61. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.d.ts +0 -0
  62. /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.js +0 -0
  63. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.d.ts +0 -0
  64. /package/dist/src/data/sources/{dynamic → lazy}/bamSource.js +0 -0
  65. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.d.ts +0 -0
  66. /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.js +0 -0
  67. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.d.ts +0 -0
  68. /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.js +0 -0
  69. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.d.ts +0 -0
  70. /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.js +0 -0
  71. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.d.ts +0 -0
  72. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.d.ts +0 -0
  73. /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.js +0 -0
  74. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.d.ts +0 -0
  75. /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"AAWA;IA+BQ;;;;;OAKG;IACH,yBAEC;IAkGD;;;;;;MAKC;CAoFR;iBAxOgB,WAAW"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"AAWA;IA+BQ;;;;;OAKG;IACH,yBAEC;IAmGD;;;;;;MAKC;CAoFR;iBAzOgB,WAAW"}
@@ -139,6 +139,7 @@ export default class LinkMark extends Mark {
139
139
 
140
140
  const vertexData = builder.toArrays();
141
141
 
142
+ // TODO: Use gl_VertexID to calculate the strip in the vertex shader
142
143
  vertexData.arrays.strip = {
143
144
  data: createStrip(this.properties.segments),
144
145
  numComponents: 2,
@@ -245,5 +246,5 @@ function createStrip(/** @type number */ segments) {
245
246
  coords.push(i / segments, 0.5);
246
247
  coords.push(i / segments, -0.5);
247
248
  }
248
- return coords;
249
+ return new Float32Array(coords);
249
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"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"}
@@ -258,6 +258,12 @@ export default class Mark {
258
258
  }
259
259
  }
260
260
 
261
+ if (encoding.x) {
262
+ // Building the x index is rarely necessary, but it's safer to build
263
+ // it by default.
264
+ encoding.x.buildIndex ??= true;
265
+ }
266
+
261
267
  return encoding;
262
268
  });
263
269
  }
@@ -387,7 +393,9 @@ export default class Mark {
387
393
  channel,
388
394
  scale,
389
395
  channelDef,
390
- sharedChannels
396
+ sharedChannels?.includes(channel)
397
+ ? sharedChannels
398
+ : [channel]
391
399
  );
392
400
 
393
401
  scaleCode.push(generated.glsl);
@@ -314,13 +314,26 @@ export type ChannelDef<F extends Field = string> =
314
314
  // TODO: Does this make sense?
315
315
  export type ChannelDefWithScale = ScaleMixins & TypeMixins<Type>;
316
316
 
317
+ export interface XIndexDef {
318
+ /**
319
+ * Builds and index for efficient rendering of subsets of the data. This
320
+ * setting is useful when rendering large amounts of data and often
321
+ * only a small subset of the data is visible. An example of such a
322
+ * situation is a scatter plot spanning the whole genome.
323
+ *
324
+ * This setting implicitly sorts the data by the field assigned
325
+ * on the `x` channel.
326
+ */
327
+ buildIndex?: boolean;
328
+ }
329
+
317
330
  export interface Encoding<F extends Field = string> {
318
331
  /**
319
332
  * X coordinates of the marks.
320
333
  *
321
334
  * The `value` of this channel can be a number between zero and one.
322
335
  */
323
- x?: PositionDef<F>;
336
+ x?: PositionDef<F> & XIndexDef;
324
337
 
325
338
  /**
326
339
  * Y coordinates of the marks.
@@ -1 +1 @@
1
- {"version":3,"file":"flowBuilder.d.ts","sourceRoot":"","sources":["../../../src/view/flowBuilder.js"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,8JAkKC;AAED;;;;;;GAMG;AACH;;;IAgGc;;;OAGG;;EAYhB;AA0BD;;;;;;GAMG;AACH;;;0BAqB0B,QAAQ,SAAS,OAAO,qBAAqB,EAAE,KAAK,CAAC,CAAC;EAkB/E;qBAxXoB,qBAAqB;sBANpB,sBAAsB"}
1
+ {"version":3,"file":"flowBuilder.d.ts","sourceRoot":"","sources":["../../../src/view/flowBuilder.js"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,8JAkKC;AAED;;;;;;GAMG;AACH;;;IAgGc;;;OAGG;;EAYhB;AAgCD;;;;;;GAMG;AACH;;;0BAqB0B,QAAQ,SAAS,OAAO,qBAAqB,EAAE,KAAK,CAAC,CAAC;EAkB/E;qBA/XoB,qBAAqB;sBANpB,sBAAsB"}
@@ -13,6 +13,7 @@ import {
13
13
  isFieldDef,
14
14
  isPositionalChannel,
15
15
  getPrimaryChannel,
16
+ isExprDef,
16
17
  } from "../encoder/encoder.js";
17
18
  import LinearizeGenomicCoordinate from "../data/transforms/linearizeGenomicCoordinate.js";
18
19
  import { group } from "d3-array";
@@ -311,20 +312,26 @@ export function linearizeLocusAccess(view) {
311
312
  }
312
313
 
313
314
  /**
314
- * @param {import("./view.js").default} view
315
+ * @param {import("./unitView.js").default} view
315
316
  * @param {import("../spec/channel.js").Encoding} [encoding]
316
317
  * @returns {import("../spec/transform.js").CompareParams}
317
318
  */
318
319
  function getCompareParamsForView(view, encoding) {
319
- // TODO: Should sort by min(x, x2).
320
320
  const e = { ...view.getEncoding(), ...encoding }.x;
321
321
  if (isChannelDefWithScale(e)) {
322
322
  if (view.getScaleResolution("x")?.isZoomable()) {
323
323
  if (isFieldDef(e)) {
324
- return { field: e.field };
324
+ // TODO: Don't sort if the data is already sorted.
325
+ // The sort status should be tracked in the data flow.
326
+ // For instance, genomic data is typically already sorted
327
+ // by position within a chromosome (but not necessarily
328
+ // across chromosomes).
329
+ return "buildIndex" in e && e.buildIndex
330
+ ? { field: e.field }
331
+ : null;
325
332
  } else if (isDatumDef(e)) {
326
333
  // Nop
327
- } else {
334
+ } else if (isExprDef(e)) {
328
335
  // TODO: Support expr by inserting a Formula transform
329
336
  throw new Error(
330
337
  "A zoomable x channel must be mapped to a field."
@@ -54,7 +54,7 @@ export default class UnitView extends ContainerView {
54
54
  /**
55
55
  * @param {Channel} channel A primary channel
56
56
  */
57
- _validateDomainQuery(channel: import("../spec/channel.js").Channel): import("../spec/channel.js").MarkPropExprDef<import("../spec/channel.js").Type> | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").Type> | import("../spec/channel.js").ChromPosDef | import("../spec/channel.js").PositionDatumDef | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").TypeForShape> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").Type> | import("../spec/channel.js").PositionFieldDef<string> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").TypeForShape>;
57
+ _validateDomainQuery(channel: import("../spec/channel.js").Channel): import("../spec/channel.js").MarkPropExprDef<import("../spec/channel.js").Type> | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").Type> | import("../spec/channel.js").ChromPosDef | import("../spec/channel.js").PositionDatumDef | (import("../spec/channel.js").ChromPosDefBase & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").TypeMixins<"locus"> & import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").XIndexDef) | (import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").DatumDefBase & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").TypeMixins<import("../spec/channel.js").Type> & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").XIndexDef) | import("../spec/channel.js").MarkPropDatumDef<import("../spec/channel.js").TypeForShape> | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").Type> | import("../spec/channel.js").PositionFieldDef<string> | (import("../spec/channel.js").FieldDefBase<string> & import("../spec/channel.js").TitleMixins & import("../spec/channel.js").TypeMixins<import("../spec/channel.js").Type> & import("../spec/channel.js").ScaleMixins & import("../spec/channel.js").PositionMixins & import("../spec/channel.js").XIndexDef) | import("../spec/channel.js").MarkPropFieldDef<string, import("../spec/channel.js").TypeForShape>;
58
58
  /**
59
59
  * Returns the domain of the specified channel of this domain/mark.
60
60
  *
@@ -1 +1 @@
1
- {"version":3,"file":"unitView.d.ts","sourceRoot":"","sources":["../../../src/view/unitView.js"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH;QAHkB,MAAM,GAAE,cAAc,kBAAkB,EAAE,OAAO;EASjE;AAEF;IACI;;;;;;;OAOG;IACH;;;;;;;;OAQG;IACH,kBAPW,OAAO,iBAAiB,EAAE,QAAQ,WAClC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,OAAO,WAAW,EAAE,WAAW,EAkBzC;IAbG,yCAAgB;IAIZ,iDAAiD;IACjD,MADW,OAAO,kBAAkB,EAAE,OAAO,CACnB;IAUlC;;;;OAIG;IACH,gBAJW,OAAO,4CAA4C,EAAE,OAAO,UAC5D,OAAO,uBAAuB,EAAE,OAAO,YACvC,OAAO,uBAAuB,EAAE,gBAAgB,QAY1D;IAED,kDAIC;IAED;;;;;OAKG;IACH,iEAyEC;IAED;;;OAGG;IACH,mGASC;IAkBD;;OAEG;IACH,uDAEC;IAED;;OAEG;IACH,opBAcC;IAED;;;;;OAKG;IACH,6BAHW,OAAO,oBAAoB,EAAE,gBAAgB,iDAkBvD;IAED;;;;;;;;;;;;OAYG;IACH,gHA2CC;IAED,uBAQC;IAgBD;;;;OAIG;IACH,8BAJW,MAAM,+DAEJ,OAAO,iBAAiB,EAAE,kBAAkB,CAKxD;CACJ;0BAnVyB,oBAAoB"}
1
+ {"version":3,"file":"unitView.d.ts","sourceRoot":"","sources":["../../../src/view/unitView.js"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH;QAHkB,MAAM,GAAE,cAAc,kBAAkB,EAAE,OAAO;EASjE;AAEF;IACI;;;;;;;OAOG;IACH;;;;;;;;OAQG;IACH,kBAPW,OAAO,iBAAiB,EAAE,QAAQ,WAClC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,OAAO,WAAW,EAAE,WAAW,EAkBzC;IAbG,yCAAgB;IAIZ,iDAAiD;IACjD,MADW,OAAO,kBAAkB,EAAE,OAAO,CACnB;IAUlC;;;;OAIG;IACH,gBAJW,OAAO,4CAA4C,EAAE,OAAO,UAC5D,OAAO,uBAAuB,EAAE,OAAO,YACvC,OAAO,uBAAuB,EAAE,gBAAgB,QAY1D;IAED,kDAIC;IAED;;;;;OAKG;IACH,iEAyEC;IAED;;;OAGG;IACH,mGASC;IAkBD;;OAEG;IACH,uDAEC;IAED;;OAEG;IACH,6/CAcC;IAED;;;;;OAKG;IACH,6BAHW,OAAO,oBAAoB,EAAE,gBAAgB,iDAkBvD;IAED;;;;;;;;;;;;OAYG;IACH,gHA2CC;IAED,uBAQC;IAgBD;;;;OAIG;IACH,8BAJW,MAAM,+DAEJ,OAAO,iBAAiB,EAAE,kBAAkB,CAKxD;CACJ;0BAnVyB,oBAAoB"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "contributors": [],
9
9
  "license": "MIT",
10
- "version": "0.42.2",
10
+ "version": "0.43.1",
11
11
  "jsdelivr": "dist/bundle/index.js",
12
12
  "unpkg": "dist/bundle/index.js",
13
13
  "browser": "dist/bundle/index.js",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@gmod/bam": "^2.0.0",
40
- "@gmod/bbi": "^4.0.0",
40
+ "@gmod/bbi": "^4.0.3",
41
41
  "@gmod/bed": "^2.1.2",
42
42
  "@gmod/bgzf-filehandle": "^1.4.7",
43
43
  "@gmod/gff": "^1.3.0",
@@ -65,5 +65,5 @@
65
65
  "vega-scale": "^7.1.1",
66
66
  "vega-util": "^1.16.0"
67
67
  },
68
- "gitHead": "dfeb11779563fcc77e9e82f6f536c6512136b550"
68
+ "gitHead": "e47791753d5467ab83b5ef073976eb2f2484000b"
69
69
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"axisGenomeSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/axisGenomeSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,cAAc,QAC9C,OAAO,uBAAuB,EAAE,OAAO,EAIjD;CAKJ;iCAlBgC,2BAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"axisTickSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/axisTickSource.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IAMI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,aAAa,QAC7C,OAAO,uBAAuB,EAAE,OAAO,EAYjD;IAnBD;;OAEG;IACH,OAFU,OAAO,0BAA0B,EAAE,MAAM,EAAE,CAE1C;IAeP,sDAAoB;IAGxB,iCAkCC;CACJ;iCA9DgC,2BAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bamSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/bamSource.js"],"names":[],"mappings":"AAGA;IAeI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,OAAO,QACvC,OAAO,uBAAuB,EAAE,OAAO,EAmDjD;IAhED;;;;;;;;OAQG;IACH,sBAFgB,MAAM,KAAK,MAAM,CAEH;IAkB1B,gDAAgC;IAQhC,iCA4BE;;CAmCT;qCAxGoC,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bigBedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/bigBedSource.js"],"names":[],"mappings":"AAGA;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EA4CjD;IApDD,0CAA0C;IAC1C,QADW,OAAO,WAAW,EAAE,OAAO,CAC/B;IAEP,yCAAyC;IACzC,KADW,OAAO,WAAW,EAAE,MAAM,CACjC;IAkBA,mDAAgC;IAQhC,iCAqBE;CA4BT;qCAlFoC,+BAA+B"}
@@ -1,84 +0,0 @@
1
- import addBaseUrl from "../../../utils/addBaseUrl.js";
2
- import SingleAxisWindowedSource from "./singleAxisWindowedSource.js";
3
-
4
- export default class BigBedSource extends SingleAxisWindowedSource {
5
- /** @type {import("@gmod/bed").default} */
6
- parser;
7
-
8
- /** @type {import("@gmod/bbi").BigBed} */
9
- bbi;
10
-
11
- /**
12
- * @param {import("../../../spec/data.js").BigBedData} params
13
- * @param {import("../../../view/view.js").default} view
14
- */
15
- constructor(params, view) {
16
- /** @type {import("../../../spec/data.js").BigBedData} */
17
- const paramsWithDefaults = {
18
- channel: "x",
19
- windowSize: 1000000,
20
- debounce: 200,
21
- debounceMode: "window",
22
- ...params,
23
- };
24
-
25
- super(view, paramsWithDefaults.channel);
26
-
27
- this.params = paramsWithDefaults;
28
-
29
- if (!this.params.url) {
30
- throw new Error("No URL provided for BigBedSource");
31
- }
32
-
33
- this.setupDebouncing(this.params);
34
-
35
- this.initializedPromise = new Promise((resolve) => {
36
- Promise.all([
37
- import("@gmod/bed"),
38
- import("@gmod/bbi"),
39
- import("generic-filehandle"),
40
- ]).then(([bed, { BigBed }, { RemoteFile }]) => {
41
- const BED = bed.default;
42
-
43
- this.bbi = new BigBed({
44
- filehandle: new RemoteFile(
45
- addBaseUrl(this.params.url, this.view.getBaseUrl())
46
- ),
47
- });
48
-
49
- this.bbi.getHeader().then(async (header) => {
50
- // @ts-ignore TODO: Fix
51
- this.parser = new BED({ autoSql: header.autoSql });
52
-
53
- resolve();
54
- });
55
- });
56
- });
57
- }
58
-
59
- /**
60
- * @param {number[]} interval linearized domain
61
- */
62
- async loadInterval(interval) {
63
- const features = await this.discretizeAndLoad(
64
- interval,
65
- async (d, signal) =>
66
- this.bbi
67
- .getFeatures(d.chrom, d.startPos, d.endPos, {
68
- signal,
69
- })
70
- .then((features) =>
71
- features.map((f) =>
72
- this.parser.parseLine(
73
- `${d.chrom}\t${f.start}\t${f.end}\t${f.rest}`,
74
- { uniqueId: f.uniqueId }
75
- )
76
- )
77
- )
78
- );
79
-
80
- if (features) {
81
- this.publishData(features);
82
- }
83
- }
84
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"bigWigSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/bigWigSource.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAiDjD;IAnCG,mDAAgC;IAQhC,iCA0BE;IA+BN;;;OAGG;IAEH,uBAJW,MAAM,EAAE,kBACR,MAAM,iBA0BhB;;CACJ;qCA1HoC,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/gff3Source.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EASjD;IAED;;OAEG;IACH,sBAFW,MAAM,EAAE,OAUlB;;CACJ;wBAlCuB,kBAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/indexedFastaSource.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,gBAAgB,QAChD,OAAO,uBAAuB,EAAE,OAAO,EA+CjD;IAjCG,yDAAgC;IAQhC,iCAwBE;IATM,iDAKE;CA6BjB;qCA5EoC,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAOI;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EAiDrE;IAzDD;;;OAGG;IACH,4CAAuC;IASnC,8CAAgB;IAYhB,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,oEAA4D;IA+BhE;;;OAGG;IACH,wBAWC;IAED;;;;OAIG;IACH,oEAEC;IAED;;;;;;OAMG;IACH,wBAJW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,iBAK9D;IAED;;;;;OAKG;IACH,mCAHW,OAAO,QAKjB;IAED;;;;;OAKG;IACH,gCAGC;IAQD;;;;;OAKG;IACH,8BAHW,OAAO,mBAAmB,EAAE,KAAK,EAAE,EAAE,QAkB/C;CACJ;uBAxJsB,kBAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAQI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,CAGxB;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAmBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAiBlB;IAED;;;;;OAKG;IACH,iCAHW,MAAM,EAAE,iBAKlB;IAED;;;;;;;;;OASG;IACH,yCANW,MAAM,EAAE,4BACU,OAAO,mCAAmC,EAAE,0BAA0B,UAAU,WAAW,+BAqCvH;IAED;;;;;;;;OAQG;IACH,qCAJW,MAAM,EAAE,cACR,MAAM,YAWhB;IAED;;;;OAIG;IACH,+CAHW,MAAM,EAAE,WAUlB;;CACJ;iCAvJgC,2BAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/tabixSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EA8CjD;IAhCG,kDAAgC;IAQhC,iCAuBE;IAoCN;;;;;OAKG;IACH,gCAHW,MAAM,EAAE,GACN,CAAC,EAAE,CAKf;;CACJ;qCAvGoC,+BAA+B"}