loom-browser 0.0.1 → 0.0.3

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 (192) hide show
  1. package/dist/loom.esm.js +27 -21
  2. package/dist/loom.esm.min.js +1 -1
  3. package/dist/loom.esm.min.js.map +1 -1
  4. package/dist/loom.js +27 -21
  5. package/dist/loom.min.js +1 -1
  6. package/dist/loom.min.js.map +1 -1
  7. package/dist/types/commandDispatcher.d.ts +22 -1
  8. package/dist/types/gtx/zstdWasm.d.ts +4 -1
  9. package/dist/types/gtx/zstdWasmInlined.d.ts +6 -0
  10. package/dist/types/index.d.ts +1 -1
  11. package/dist/types/remoteProtocol.d.ts +2 -0
  12. package/package.json +8 -2
  13. package/dist/igv.d.ts +0 -667
  14. package/dist/igv.esm.js +0 -76708
  15. package/dist/igv.esm.min.js +0 -26
  16. package/dist/igv.esm.min.js.map +0 -1
  17. package/dist/igv.js +0 -76716
  18. package/dist/igv.min.js +0 -26
  19. package/dist/igv.min.js.map +0 -1
  20. package/dist/loom.d.ts +0 -667
  21. package/dist/types/agent/index.d.ts +0 -4
  22. package/dist/types/agent/stateProjection.d.ts +0 -115
  23. package/dist/types/agent/trackSelector.d.ts +0 -31
  24. package/dist/types/baseTrackCanvas.d.ts +0 -62
  25. package/dist/types/bigwig/binaryParser.d.ts +0 -25
  26. package/dist/types/bigwig/bpTree.d.ts +0 -40
  27. package/dist/types/bigwig/bwReader.d.ts +0 -69
  28. package/dist/types/bigwig/chromTree.d.ts +0 -28
  29. package/dist/types/bigwig/inflate.d.ts +0 -9
  30. package/dist/types/bigwig/rangeReader.d.ts +0 -48
  31. package/dist/types/bigwig/rpTree.d.ts +0 -27
  32. package/dist/types/dataSources/dynseqDataSource.d.ts +0 -20
  33. package/dist/types/dynseqRenderer.d.ts +0 -37
  34. package/dist/types/geneRenderer.d.ts +0 -17
  35. package/dist/types/geneThemes.d.ts +0 -11
  36. package/dist/types/geneTrackCanvas.d.ts +0 -46
  37. package/dist/types/renderTheme.d.ts +0 -72
  38. package/dist/types/renderThemePresets.d.ts +0 -16
  39. package/dist/types/rulerRenderer.d.ts +0 -14
  40. package/dist/types/rulerTrackCanvas.d.ts +0 -32
  41. package/dist/types/src/bigwig/index.d.ts +0 -66
  42. package/dist/types/src/canvasProvider.d.ts +0 -36
  43. package/dist/types/src/commandDispatcher.d.ts +0 -220
  44. package/dist/types/src/contextMenu.d.ts +0 -64
  45. package/dist/types/src/contextMenuProvider.d.ts +0 -25
  46. package/dist/types/src/data/cachedSequence.d.ts +0 -19
  47. package/dist/types/src/data/ucscApi.d.ts +0 -21
  48. package/dist/types/src/data/ucscSequence.d.ts +0 -19
  49. package/dist/types/src/dataLifecycle.d.ts +0 -16
  50. package/dist/types/src/dataSources/bigWigDataSource.d.ts +0 -24
  51. package/dist/types/src/dataSources/dataSourceCacheKey.d.ts +0 -9
  52. package/dist/types/src/dataSources/featureSourceFactory.d.ts +0 -46
  53. package/dist/types/src/dataSources/geneDataSource.d.ts +0 -16
  54. package/dist/types/src/dataSources/gtxDataSource.d.ts +0 -42
  55. package/dist/types/src/dataSources/sequenceDataSource.d.ts +0 -15
  56. package/dist/types/src/dataSources/textFeatureSource.d.ts +0 -63
  57. package/dist/types/src/decode/bed.d.ts +0 -64
  58. package/dist/types/src/decode/bedpe.d.ts +0 -36
  59. package/dist/types/src/decode/exonUtils.d.ts +0 -29
  60. package/dist/types/src/decode/gff.d.ts +0 -58
  61. package/dist/types/src/decode/interact.d.ts +0 -19
  62. package/dist/types/src/decode/ucsc.d.ts +0 -56
  63. package/dist/types/src/events.d.ts +0 -23
  64. package/dist/types/src/export/canvas2svg.d.ts +0 -166
  65. package/dist/types/src/export/index.d.ts +0 -2
  66. package/dist/types/src/featureCache.d.ts +0 -69
  67. package/dist/types/src/formats/featureParser.d.ts +0 -72
  68. package/dist/types/src/formats/formatDetection.d.ts +0 -46
  69. package/dist/types/src/genome/chromAlias.d.ts +0 -46
  70. package/dist/types/src/genome/chromSizes.d.ts +0 -53
  71. package/dist/types/src/genome/genome.d.ts +0 -51
  72. package/dist/types/src/genomeBrowser.d.ts +0 -189
  73. package/dist/types/src/gtx/fetchCoordinator.d.ts +0 -34
  74. package/dist/types/src/gtx/gtxReader.d.ts +0 -144
  75. package/dist/types/src/gtx/index.d.ts +0 -40
  76. package/dist/types/src/gtx/zstdWasm.d.ts +0 -22
  77. package/dist/types/src/headlessGenomeBrowser.d.ts +0 -450
  78. package/dist/types/src/index.d.ts +0 -123
  79. package/dist/types/src/intervalTree.d.ts +0 -56
  80. package/dist/types/src/io/binaryParser.d.ts +0 -25
  81. package/dist/types/src/io/index.d.ts +0 -7
  82. package/dist/types/src/io/rangeReader.d.ts +0 -48
  83. package/dist/types/src/locusUtils.d.ts +0 -37
  84. package/dist/types/src/pack.d.ts +0 -41
  85. package/dist/types/src/popupProvider.d.ts +0 -22
  86. package/dist/types/src/remoteProtocol.d.ts +0 -81
  87. package/dist/types/src/roi/index.d.ts +0 -3
  88. package/dist/types/src/roi/roiRenderer.d.ts +0 -24
  89. package/dist/types/src/roi/roiSet.d.ts +0 -41
  90. package/dist/types/src/sequence/sequenceUtils.d.ts +0 -44
  91. package/dist/types/src/session.d.ts +0 -55
  92. package/dist/types/src/stateProjection.d.ts +0 -115
  93. package/dist/types/src/tabix/index.d.ts +0 -48
  94. package/dist/types/src/themes/index.d.ts +0 -3
  95. package/dist/types/src/themes/renderTheme.d.ts +0 -86
  96. package/dist/types/src/themes/renderThemePresets.d.ts +0 -16
  97. package/dist/types/src/trackRegistry.d.ts +0 -81
  98. package/dist/types/src/trackSelector.d.ts +0 -31
  99. package/dist/types/src/tracks/annotation/annotationRenderer.d.ts +0 -17
  100. package/dist/types/src/tracks/annotation/annotationThemes.d.ts +0 -11
  101. package/dist/types/src/tracks/annotation/annotationTrackCanvas.d.ts +0 -58
  102. package/dist/types/src/tracks/annotation/index.d.ts +0 -4
  103. package/dist/types/src/tracks/axis/axisRenderer.d.ts +0 -19
  104. package/dist/types/src/tracks/axis/index.d.ts +0 -1
  105. package/dist/types/src/tracks/baseTrackCanvas.d.ts +0 -113
  106. package/dist/types/src/tracks/dynseq/dynseqRenderer.d.ts +0 -38
  107. package/dist/types/src/tracks/dynseq/index.d.ts +0 -1
  108. package/dist/types/src/tracks/index.d.ts +0 -7
  109. package/dist/types/src/tracks/interaction/index.d.ts +0 -4
  110. package/dist/types/src/tracks/interaction/interactionRenderer.d.ts +0 -52
  111. package/dist/types/src/tracks/interaction/interactionTrackCanvas.d.ts +0 -54
  112. package/dist/types/src/tracks/ruler/index.d.ts +0 -3
  113. package/dist/types/src/tracks/ruler/rulerRenderer.d.ts +0 -25
  114. package/dist/types/src/tracks/ruler/rulerTrackCanvas.d.ts +0 -43
  115. package/dist/types/src/tracks/sequence/index.d.ts +0 -5
  116. package/dist/types/src/tracks/sequence/sequenceRenderer.d.ts +0 -34
  117. package/dist/types/src/tracks/sequence/sequenceThemes.d.ts +0 -11
  118. package/dist/types/src/tracks/sequence/sequenceTrackCanvas.d.ts +0 -67
  119. package/dist/types/src/tracks/wig/index.d.ts +0 -5
  120. package/dist/types/src/tracks/wig/wigRenderer.d.ts +0 -15
  121. package/dist/types/src/tracks/wig/wigSummary.d.ts +0 -31
  122. package/dist/types/src/tracks/wig/wigThemes.d.ts +0 -15
  123. package/dist/types/src/tracks/wig/wigTrackCanvas.d.ts +0 -82
  124. package/dist/types/src/types.d.ts +0 -885
  125. package/dist/types/src/ui/components/LoomBrowserShell.d.ts +0 -52
  126. package/dist/types/src/ui/components/LoomChromosomeSelect.d.ts +0 -18
  127. package/dist/types/src/ui/components/LoomContextMenu.d.ts +0 -39
  128. package/dist/types/src/ui/components/LoomExportControls.d.ts +0 -13
  129. package/dist/types/src/ui/components/LoomInputDialog.d.ts +0 -27
  130. package/dist/types/src/ui/components/LoomLocusInput.d.ts +0 -18
  131. package/dist/types/src/ui/components/LoomNavbar.d.ts +0 -15
  132. package/dist/types/src/ui/components/LoomPopup.d.ts +0 -32
  133. package/dist/types/src/ui/components/LoomWindowSize.d.ts +0 -14
  134. package/dist/types/src/ui/components/LoomZoomControls.d.ts +0 -10
  135. package/dist/types/src/ui/index.d.ts +0 -21
  136. package/dist/types/src/ui/themes.d.ts +0 -14
  137. package/dist/types/src/worker/nodeWorkerProvider.d.ts +0 -28
  138. package/dist/types/src/worker/taskHandler.d.ts +0 -15
  139. package/dist/types/src/worker/webWorkerProvider.d.ts +0 -51
  140. package/dist/types/src/worker/workerScript.d.ts +0 -11
  141. package/dist/types/src/workerProvider.d.ts +0 -76
  142. package/dist/types/tabix/bgzBlockLoader.d.ts +0 -60
  143. package/dist/types/tabix/bgzf.d.ts +0 -43
  144. package/dist/types/tabix/tabixIndex.d.ts +0 -85
  145. package/dist/types/tabix/tabixReader.d.ts +0 -60
  146. package/dist/types/tabix/virtualOffset.d.ts +0 -41
  147. package/dist/types/test/src/mockCanvasProvider.d.ts +0 -67
  148. package/dist/types/test/src/testBedDecode.d.ts +0 -1
  149. package/dist/types/test/src/testCanvas2SVG.d.ts +0 -7
  150. package/dist/types/test/src/testChromAlias.d.ts +0 -1
  151. package/dist/types/test/src/testCommandDispatcher.d.ts +0 -1
  152. package/dist/types/test/src/testData.d.ts +0 -7
  153. package/dist/types/test/src/testDataLifecycle.d.ts +0 -1
  154. package/dist/types/test/src/testDataSourceCacheKey.d.ts +0 -1
  155. package/dist/types/test/src/testDataSources.d.ts +0 -5
  156. package/dist/types/test/src/testDecodeUcsc.d.ts +0 -1
  157. package/dist/types/test/src/testEvents.d.ts +0 -1
  158. package/dist/types/test/src/testFeatureCache.d.ts +0 -1
  159. package/dist/types/test/src/testFeatureParser.d.ts +0 -1
  160. package/dist/types/test/src/testFormatDetection.d.ts +0 -1
  161. package/dist/types/test/src/testGffDecode.d.ts +0 -1
  162. package/dist/types/test/src/testHeadlessBrowser.d.ts +0 -1
  163. package/dist/types/test/src/testInteractionDecoder.d.ts +0 -1
  164. package/dist/types/test/src/testIntervalTree.d.ts +0 -1
  165. package/dist/types/test/src/testLocusUtils.d.ts +0 -1
  166. package/dist/types/test/src/testPack.d.ts +0 -1
  167. package/dist/types/test/src/testROI.d.ts +0 -1
  168. package/dist/types/test/src/testRemoteProtocol.d.ts +0 -1
  169. package/dist/types/test/src/testRenderTheme.d.ts +0 -1
  170. package/dist/types/test/src/testSVGExport.d.ts +0 -5
  171. package/dist/types/test/src/testSequence.d.ts +0 -1
  172. package/dist/types/test/src/testSession.d.ts +0 -1
  173. package/dist/types/test/src/testTrackSelector.d.ts +0 -1
  174. package/dist/types/test/src/testTrackSerialize.d.ts +0 -1
  175. package/dist/types/test/src/testWigSummary.d.ts +0 -1
  176. package/dist/types/test/src/testWorkerDispatch.d.ts +0 -9
  177. package/dist/types/tracks/gene/geneRenderer.d.ts +0 -17
  178. package/dist/types/tracks/gene/geneThemes.d.ts +0 -11
  179. package/dist/types/tracks/gene/geneTrackCanvas.d.ts +0 -58
  180. package/dist/types/tracks/gene/index.d.ts +0 -4
  181. package/dist/types/ui/components/IgvBrowserShell.d.ts +0 -52
  182. package/dist/types/ui/components/IgvChromosomeSelect.d.ts +0 -18
  183. package/dist/types/ui/components/IgvExportControls.d.ts +0 -13
  184. package/dist/types/ui/components/IgvLocusInput.d.ts +0 -18
  185. package/dist/types/ui/components/IgvNavbar.d.ts +0 -15
  186. package/dist/types/ui/components/IgvWindowSize.d.ts +0 -14
  187. package/dist/types/ui/components/IgvZoomControls.d.ts +0 -10
  188. package/dist/types/wigRenderer.d.ts +0 -15
  189. package/dist/types/wigSummary.d.ts +0 -31
  190. package/dist/types/wigThemes.d.ts +0 -15
  191. package/dist/types/wigTrackCanvas.d.ts +0 -46
  192. package/dist/types/worker/decodeWig.d.ts +0 -20
@@ -1,43 +0,0 @@
1
- /**
2
- * Canvas manager for rendering a genomic coordinate ruler.
3
- *
4
- * Extends BaseTrackCanvas — canvas lifecycle is handled by the base class.
5
- * This class only implements ruler-specific rendering.
6
- *
7
- * Usage:
8
- * const canvas = document.createElement('canvas')
9
- * const ruler = new RulerTrackCanvas(canvas, { locus })
10
- * ruler.attachTo(containerDiv)
11
- */
12
- import type { Locus, RulerRenderConfig, RenderContext, RulerTrackSessionConfig } from '../../types';
13
- import type { CanvasProvider } from '../../canvasProvider';
14
- import type { RenderTheme } from '../../themes/renderTheme';
15
- import type { CumulativeOffsets, ChromSizes } from '../../genome/chromSizes';
16
- import { BaseTrackCanvas } from '../baseTrackCanvas';
17
- export interface RulerTrackCanvasOptions {
18
- locus: Locus;
19
- /** Per-track config overrides. Applied after theme-derived defaults. */
20
- config?: Partial<RulerRenderConfig>;
21
- /** Unified render theme. Palette drives default colors/fonts. */
22
- theme?: Partial<RenderTheme>;
23
- /** Canvas provider for environment abstraction. Default: DOMCanvasProvider. */
24
- canvasProvider?: CanvasProvider;
25
- /** Cumulative offsets for whole genome view. */
26
- cumulativeOffsets?: CumulativeOffsets;
27
- /** Chromosome sizes for whole genome view. */
28
- chromSizes?: ChromSizes;
29
- }
30
- export declare class RulerTrackCanvas extends BaseTrackCanvas<RulerRenderConfig> {
31
- readonly type = "ruler";
32
- private _cumulativeOffsets?;
33
- private _chromSizes?;
34
- constructor(canvas: HTMLCanvasElement, options: RulerTrackCanvasOptions);
35
- /** Set cumulative offsets for whole genome view (called by browser). */
36
- setCumulativeOffsets(offsets: CumulativeOffsets): void;
37
- /** Set chromosome sizes for whole genome view (called by browser). */
38
- setChromSizes(sizes: ChromSizes): void;
39
- protected computeHeight(_width: number): number;
40
- protected getBackground(): string;
41
- protected doRender(ctx: CanvasRenderingContext2D, _width: number, _height: number, rc: RenderContext): void;
42
- serializeConfig(theme: RenderTheme): RulerTrackSessionConfig;
43
- }
@@ -1,5 +0,0 @@
1
- export { renderSequenceTrack } from './sequenceRenderer';
2
- export type { SequenceFeature } from './sequenceRenderer';
3
- export { SequenceTrackCanvas } from './sequenceTrackCanvas';
4
- export type { SequenceTrackCanvasOptions } from './sequenceTrackCanvas';
5
- export { modernSequenceTheme, darkSequenceTheme } from './sequenceThemes';
@@ -1,34 +0,0 @@
1
- /**
2
- * Pure sequence track renderer — stateless, no DOM, no side effects.
3
- *
4
- * Layer 2 (Track Canvas + Themed Renderers): Takes a CanvasRenderingContext2D
5
- * and draws. All rendering decisions are driven by the config and render context.
6
- *
7
- * Port of js/sequenceTrack.ts draw() method with full feature parity:
8
- * - Base rendering as colored rectangles (zoomed out) or text (zoomed in)
9
- * - Reverse complement display
10
- * - Three-frame amino acid translation with START/STOP highlighting
11
- *
12
- * The BP_PER_PIXEL_THRESHOLD (1/10 = 0.1) controls text vs block rendering,
13
- * matching igv.js exactly.
14
- */
15
- import type { RenderContext, SequenceRenderConfig } from '../../types';
16
- /** Sequence data passed from the data lifecycle to the renderer. */
17
- export interface SequenceFeature {
18
- /** Genomic position of the first base in the sequence string. */
19
- bpStart: number;
20
- /** The nucleotide sequence string. */
21
- sequence: string;
22
- }
23
- /**
24
- * Render the sequence track onto a canvas context.
25
- *
26
- * Pure function — no state, no side effects, no DOM. Matches igv.js
27
- * SequenceTrack.draw() (js/sequenceTrack.ts) with exact feature parity.
28
- *
29
- * @param ctx - Canvas 2D rendering context (already DPR-scaled by BaseTrackCanvas)
30
- * @param seqFeature - The sequence data (bpStart + sequence string), or null if no data
31
- * @param config - Full resolved SequenceRenderConfig
32
- * @param rc - Render context (bpStart, bpPerPixel, pixelWidth)
33
- */
34
- export declare function renderSequenceTrack(ctx: CanvasRenderingContext2D, seqFeature: SequenceFeature | null, config: SequenceRenderConfig, rc: RenderContext): void;
@@ -1,11 +0,0 @@
1
- /**
2
- * Preset render themes for sequence tracks.
3
- *
4
- * Each theme is a Partial<SequenceRenderConfig> that can be spread over defaults.
5
- * Usage: resolveSequenceConfig(theme, modernSequenceTheme)
6
- */
7
- import type { SequenceRenderConfig } from '../../types';
8
- /** Modern theme — softer frame colors, solid text, rounded start/stop badges. */
9
- export declare const modernSequenceTheme: Partial<SequenceRenderConfig>;
10
- /** Dark theme — muted backgrounds, bright labels, high contrast on dark canvas. */
11
- export declare const darkSequenceTheme: Partial<SequenceRenderConfig>;
@@ -1,67 +0,0 @@
1
- /**
2
- * Sequence track canvas — extends BaseTrackCanvas for DNA/RNA sequence display.
3
- *
4
- * Layer 2 (Track Canvas): Manages canvas lifecycle, DPR scaling, config state,
5
- * and delegates rendering to the pure sequenceRenderer.
6
- *
7
- * Port of js/sequenceTrack.ts with full feature parity:
8
- * - DNA/RNA/protein sequence rendering
9
- * - Reverse complement toggle
10
- * - Three-frame amino acid translation toggle
11
- * - Dynamic height (25px default, 115px with translation)
12
- * - Context menu items (strand toggle, translation toggle)
13
- * - Visibility window enforcement (bpPerPixel threshold of 10)
14
- * - Session serialization
15
- *
16
- * Data is provided via the standard DataSource lifecycle — the browser fetches
17
- * sequence through a SequenceDataSource and pushes it via setFeatures().
18
- * Also supports direct setSequence() for standalone usage.
19
- */
20
- import { BaseTrackCanvas } from '../baseTrackCanvas';
21
- import type { Locus, RenderContext, SequenceRenderConfig, TrackSessionConfig, ContextMenuItem } from '../../types';
22
- import type { RenderTheme } from '../../themes/renderTheme';
23
- import type { SequenceFeature } from './sequenceRenderer';
24
- import type { CanvasProvider } from '../../canvasProvider';
25
- /** Options for constructing a SequenceTrackCanvas. */
26
- export interface SequenceTrackCanvasOptions {
27
- locus: Locus;
28
- config?: Partial<SequenceRenderConfig>;
29
- theme?: Partial<RenderTheme>;
30
- canvasProvider?: CanvasProvider;
31
- }
32
- export declare class SequenceTrackCanvas extends BaseTrackCanvas<SequenceRenderConfig> {
33
- readonly type = "sequence";
34
- private _sequence;
35
- private _theme;
36
- constructor(canvas: HTMLCanvasElement, options: SequenceTrackCanvasOptions);
37
- /**
38
- * Whether the current viewport is zoomed in enough to fetch/render sequence.
39
- * Matches igv.js bppSequenceThreshold check in getFeatures().
40
- */
41
- shouldFetchSequence(bpPerPixel: number): boolean;
42
- /**
43
- * Standard DataSource lifecycle: browser pushes SequenceFeature[] from SequenceDataSource.
44
- * Takes the first element (single sequence region) or clears if empty (zoomed out).
45
- */
46
- setFeatures(features: SequenceFeature[]): void;
47
- /** Set the sequence data directly. For standalone usage without a DataSource. */
48
- setSequence(feature: SequenceFeature | null): void;
49
- /** Get the current sequence data (for context menu operations). */
50
- getSequence(): SequenceFeature | null;
51
- /** Toggle reverse complement display. */
52
- toggleReversed(): void;
53
- /** Toggle three-frame translation display. */
54
- toggleFrameTranslate(): void;
55
- /**
56
- * Return context menu items for the sequence track.
57
- *
58
- * Matches igv.js SequenceTrack.menuItemList() + contextMenuItemList():
59
- * - Strand toggle (Forward/Reverse)
60
- * - Translation toggle (Three-frame Translate / Close Translation)
61
- */
62
- getContextMenuItems(_x: number, _y: number): ContextMenuItem[] | undefined;
63
- protected computeHeight(_width: number): number;
64
- protected getBackground(): string;
65
- protected doRender(ctx: CanvasRenderingContext2D, _width: number, _height: number, rc: RenderContext): void;
66
- serializeConfig(theme: RenderTheme): TrackSessionConfig;
67
- }
@@ -1,5 +0,0 @@
1
- export { renderWigTrack } from './wigRenderer';
2
- export { WigTrackCanvas } from './wigTrackCanvas';
3
- export type { WigTrackCanvasOptions } from './wigTrackCanvas';
4
- export { summarizeWigData, computeWigDataRange } from './wigSummary';
5
- export { modernWigTheme, darkWigTheme, warmWigTheme, lineWigTheme } from './wigThemes';
@@ -1,15 +0,0 @@
1
- /**
2
- * Standalone wig track renderer.
3
- *
4
- * Adapted from js/feature/wigTrack.ts draw() method with no `this` context —
5
- * all configuration is passed as explicit parameters.
6
- *
7
- * Supports four graph types: bar, line, points, and dynseq.
8
- */
9
- import type { WigFeature, WigRenderConfig, RenderContext } from '../../types';
10
- /**
11
- * Render wig features onto a canvas context.
12
- *
13
- * The canvas should be sized and cleared before calling this.
14
- */
15
- export declare function renderWigTrack(ctx: CanvasRenderingContext2D, features: WigFeature[], config: WigRenderConfig, rc: RenderContext): void;
@@ -1,31 +0,0 @@
1
- /**
2
- * Resolution-aware data summarization for wig tracks.
3
- *
4
- * When zoomed out, many data points map to the same pixel. This module bins
5
- * features and applies a window function (mean, min, max) to produce one
6
- * summary value per pixel-width bin.
7
- *
8
- * Ported from js/feature/wigSummary.ts with strict types, no `any`.
9
- */
10
- import type { WigFeature, WindowFunction } from '../../types';
11
- /**
12
- * Summarize wig features by binning into pixel-width windows and applying
13
- * a window function.
14
- *
15
- * Features must be sorted by position. Wig features cannot overlap.
16
- *
17
- * @param features - sorted array of wig features
18
- * @param startBP - start position in base pairs (left edge of viewport)
19
- * @param bpPerPixel - base pairs per pixel (bin size)
20
- * @param windowFunction - aggregation function: mean, min, max, or none
21
- * @returns summarized features (one per pixel-bin)
22
- */
23
- export declare function summarizeWigData(features: WigFeature[], startBP: number, bpPerPixel: number, windowFunction?: WindowFunction): WigFeature[];
24
- /**
25
- * Compute the min/max data range from a set of wig features.
26
- * Useful for autoscaling.
27
- */
28
- export declare function computeWigDataRange(features: WigFeature[]): {
29
- min: number;
30
- max: number;
31
- };
@@ -1,15 +0,0 @@
1
- /**
2
- * Preset render themes for wig tracks.
3
- *
4
- * Each theme is a Partial<WigRenderConfig> that can be spread over defaults.
5
- * Usage: { ...defaultWigRenderConfig(), ...modernWigTheme }
6
- */
7
- import type { WigRenderConfig } from '../../types';
8
- /** Modern theme — blue bars with subtle styling. */
9
- export declare const modernWigTheme: Partial<WigRenderConfig>;
10
- /** Dark theme — bright teal on dark background. */
11
- export declare const darkWigTheme: Partial<WigRenderConfig>;
12
- /** Warm red theme — for coverage or signal intensity. */
13
- export declare const warmWigTheme: Partial<WigRenderConfig>;
14
- /** Line graph variant — modern blue line. */
15
- export declare const lineWigTheme: Partial<WigRenderConfig>;
@@ -1,82 +0,0 @@
1
- /**
2
- * Canvas manager for rendering wig (wiggle) tracks.
3
- *
4
- * Extends BaseTrackCanvas — canvas lifecycle is handled by the base class.
5
- * This class implements wig-specific logic: value scaling, autoscale,
6
- * and rendering delegation.
7
- *
8
- * Data summarization (pixel-width binning) is handled at the data source
9
- * layer by BigWigDataSource, not here. This keeps the render layer
10
- * focused on rendering and lets headless consumers benefit from
11
- * pre-summarized data.
12
- *
13
- * For dynseq mode, an optional `sequenceProvider` can be passed at construction.
14
- * When in dynseq mode, the track automatically fetches and attaches DNA sequence
15
- * to features at high zoom (bpPerPixel < 2). This matches the igv.js pattern
16
- * where sequence is fetched during getFeatures(), not during rendering.
17
- *
18
- * Usage:
19
- * const canvas = document.createElement('canvas')
20
- * const track = new WigTrackCanvas(canvas, { locus, features })
21
- * track.attachTo(containerDiv)
22
- */
23
- import type { WigFeature, WigRenderConfig, WindowFunction, Locus, RenderContext, WigTrackSessionConfig, HitTestResult, AxisInfo, ContextMenuItem, NumericState, SequenceProvider } from '../../types';
24
- import type { CanvasProvider } from '../../canvasProvider';
25
- import type { RenderTheme } from '../../themes/renderTheme';
26
- import { BaseTrackCanvas } from '../baseTrackCanvas';
27
- export interface WigTrackCanvasOptions {
28
- locus: Locus;
29
- features: WigFeature[];
30
- /** Per-track config overrides. Applied after theme-derived defaults. */
31
- config?: Partial<WigRenderConfig>;
32
- /** Unified render theme. Palette drives default colors/fonts. */
33
- theme?: Partial<RenderTheme>;
34
- /** Fixed pixel height. If not set, uses config.height (default 50). */
35
- height?: number;
36
- /** Background color. Overrides palette.background if set. */
37
- background?: string;
38
- /** Canvas provider for environment abstraction. Default: DOMCanvasProvider. */
39
- canvasProvider?: CanvasProvider;
40
- /** Track name for axis label. */
41
- name?: string;
42
- /** Sequence provider for dynseq rendering. When set, dynseq appears in the graph type menu. */
43
- sequenceProvider?: SequenceProvider;
44
- }
45
- export declare class WigTrackCanvas extends BaseTrackCanvas<WigRenderConfig> {
46
- private features;
47
- private fixedHeight;
48
- private _name;
49
- private _lastDataRange;
50
- private _sequenceProvider;
51
- /** Abort controller for in-flight sequence fetch. */
52
- private _seqAbort;
53
- /** Callback invoked when the user changes the windowing function via context menu. */
54
- private _onWindowFunctionChange?;
55
- readonly type = "wig";
56
- constructor(canvas: HTMLCanvasElement, options: WigTrackCanvasOptions);
57
- /** Set a callback invoked when the user changes the windowing function via context menu. */
58
- set onWindowFunctionChange(cb: ((wf: WindowFunction) => void) | undefined);
59
- /** Update features and re-render. Recomputes autoscale if enabled. */
60
- setFeatures(features: WigFeature[]): void;
61
- /** Update locus and re-render. Re-fetches sequence in dynseq mode. */
62
- setLocus(locus: Locus): void;
63
- /** Merge partial config and re-render. Triggers sequence fetch when switching to dynseq. */
64
- setConfig(config: Partial<WigRenderConfig>): void;
65
- /**
66
- * Fetch DNA sequence for current features and re-render.
67
- * At low zoom (bpPerPixel >= 2), skips fetch — the renderer falls back to bars.
68
- */
69
- private augmentWithSequence;
70
- protected computeHeight(_width: number): number;
71
- protected getBackground(): string;
72
- protected doRender(ctx: CanvasRenderingContext2D, _width: number, height: number, rc: RenderContext): void;
73
- getAxisInfo(): AxisInfo | undefined;
74
- getContextMenuItems(_x: number, _y: number): ContextMenuItem[];
75
- /**
76
- * Return numeric state for shared menu items (autoscale, log scale, set data range).
77
- * The browser calls numericDataMenuItems() with this state when assembling context menus.
78
- */
79
- getNumericState(): NumericState;
80
- hitTest(x: number, _y: number): HitTestResult<WigFeature>[];
81
- serializeConfig(theme: RenderTheme): WigTrackSessionConfig;
82
- }