@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.
- package/dist/bundle/{index-d7k3kkin.js → index-noY1e-G6.js} +365 -361
- package/dist/bundle/index.es.js +3348 -3223
- package/dist/bundle/index.js +89 -84
- package/dist/schema.json +251 -1
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +28 -2
- package/dist/src/data/sources/dataSourceFactory.d.ts +7 -7
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +9 -9
- package/dist/src/data/sources/{dynamic → lazy}/README.md +2 -2
- package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -0
- package/dist/src/data/sources/{dynamic → lazy}/bigBedSource.d.ts +6 -0
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/bigBedSource.js +206 -0
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -0
- package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.js +3 -3
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -0
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +6 -8
- package/dist/src/encoder/encoder.d.ts +1 -1
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/gl/arrayBuilder.d.ts +11 -5
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
- package/dist/src/gl/arrayBuilder.js +77 -40
- package/dist/src/gl/dataToVertices.d.ts +3 -2
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +52 -17
- package/dist/src/gl/glslScaleGenerator.d.ts +12 -0
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +38 -4
- package/dist/src/gl/includes/scales.glsl.js +1 -1
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +2 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +9 -1
- package/dist/src/spec/channel.d.ts +14 -1
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +11 -4
- package/dist/src/view/unitView.d.ts +1 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/bamSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/bigBedSource.js +0 -84
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/singleAxisWindowedSource.d.ts.map +0 -1
- package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +0 -1
- /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/axisGenomeSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/axisTickSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/bamSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/bamSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/bigWigSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/gff3Source.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/indexedFastaSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/singleAxisLazySource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.d.ts +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/singleAxisWindowedSource.js +0 -0
- /package/dist/src/data/sources/{dynamic → lazy}/tabixSource.d.ts +0 -0
- /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;
|
|
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"}
|
package/dist/src/marks/link.js
CHANGED
|
@@ -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":";
|
|
1
|
+
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"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"}
|
package/dist/src/marks/mark.js
CHANGED
|
@@ -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":"
|
|
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("./
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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": "
|
|
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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|