loom-browser 0.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.
- package/LICENSE +21 -0
- package/README.md +287 -0
- package/dist/igv.d.ts +667 -0
- package/dist/igv.esm.js +76708 -0
- package/dist/igv.esm.min.js +26 -0
- package/dist/igv.esm.min.js.map +1 -0
- package/dist/igv.js +76716 -0
- package/dist/igv.min.js +26 -0
- package/dist/igv.min.js.map +1 -0
- package/dist/loom.d.ts +667 -0
- package/dist/loom.esm.js +14927 -0
- package/dist/loom.esm.min.js +2 -0
- package/dist/loom.esm.min.js.map +1 -0
- package/dist/loom.js +15114 -0
- package/dist/loom.min.js +2 -0
- package/dist/loom.min.js.map +1 -0
- package/dist/types/agent/index.d.ts +4 -0
- package/dist/types/agent/stateProjection.d.ts +115 -0
- package/dist/types/agent/trackSelector.d.ts +31 -0
- package/dist/types/baseTrackCanvas.d.ts +62 -0
- package/dist/types/bigwig/binaryParser.d.ts +25 -0
- package/dist/types/bigwig/bpTree.d.ts +40 -0
- package/dist/types/bigwig/bwReader.d.ts +69 -0
- package/dist/types/bigwig/chromTree.d.ts +28 -0
- package/dist/types/bigwig/index.d.ts +66 -0
- package/dist/types/bigwig/inflate.d.ts +9 -0
- package/dist/types/bigwig/rangeReader.d.ts +48 -0
- package/dist/types/bigwig/rpTree.d.ts +27 -0
- package/dist/types/canvasProvider.d.ts +36 -0
- package/dist/types/commandDispatcher.d.ts +199 -0
- package/dist/types/contextMenu.d.ts +64 -0
- package/dist/types/contextMenuProvider.d.ts +25 -0
- package/dist/types/data/cachedSequence.d.ts +19 -0
- package/dist/types/data/ucscApi.d.ts +21 -0
- package/dist/types/data/ucscSequence.d.ts +19 -0
- package/dist/types/dataLifecycle.d.ts +16 -0
- package/dist/types/dataSources/bigWigDataSource.d.ts +24 -0
- package/dist/types/dataSources/dataSourceCacheKey.d.ts +9 -0
- package/dist/types/dataSources/dynseqDataSource.d.ts +20 -0
- package/dist/types/dataSources/featureSourceFactory.d.ts +46 -0
- package/dist/types/dataSources/geneDataSource.d.ts +16 -0
- package/dist/types/dataSources/gtxDataSource.d.ts +42 -0
- package/dist/types/dataSources/sequenceDataSource.d.ts +15 -0
- package/dist/types/dataSources/textFeatureSource.d.ts +63 -0
- package/dist/types/decode/bed.d.ts +64 -0
- package/dist/types/decode/bedpe.d.ts +36 -0
- package/dist/types/decode/exonUtils.d.ts +29 -0
- package/dist/types/decode/gff.d.ts +58 -0
- package/dist/types/decode/interact.d.ts +19 -0
- package/dist/types/decode/ucsc.d.ts +56 -0
- package/dist/types/dynseqRenderer.d.ts +37 -0
- package/dist/types/events.d.ts +23 -0
- package/dist/types/export/canvas2svg.d.ts +166 -0
- package/dist/types/export/index.d.ts +2 -0
- package/dist/types/featureCache.d.ts +69 -0
- package/dist/types/formats/featureParser.d.ts +72 -0
- package/dist/types/formats/formatDetection.d.ts +46 -0
- package/dist/types/geneRenderer.d.ts +17 -0
- package/dist/types/geneThemes.d.ts +11 -0
- package/dist/types/geneTrackCanvas.d.ts +46 -0
- package/dist/types/genome/chromAlias.d.ts +46 -0
- package/dist/types/genome/chromSizes.d.ts +53 -0
- package/dist/types/genome/genome.d.ts +51 -0
- package/dist/types/genomeBrowser.d.ts +189 -0
- package/dist/types/gtx/fetchCoordinator.d.ts +34 -0
- package/dist/types/gtx/gtxReader.d.ts +144 -0
- package/dist/types/gtx/index.d.ts +40 -0
- package/dist/types/gtx/zstdWasm.d.ts +22 -0
- package/dist/types/headlessGenomeBrowser.d.ts +450 -0
- package/dist/types/index.d.ts +123 -0
- package/dist/types/intervalTree.d.ts +56 -0
- package/dist/types/io/binaryParser.d.ts +25 -0
- package/dist/types/io/index.d.ts +7 -0
- package/dist/types/io/rangeReader.d.ts +48 -0
- package/dist/types/locusUtils.d.ts +37 -0
- package/dist/types/pack.d.ts +41 -0
- package/dist/types/popupProvider.d.ts +22 -0
- package/dist/types/remoteProtocol.d.ts +79 -0
- package/dist/types/renderTheme.d.ts +72 -0
- package/dist/types/renderThemePresets.d.ts +16 -0
- package/dist/types/roi/index.d.ts +3 -0
- package/dist/types/roi/roiRenderer.d.ts +24 -0
- package/dist/types/roi/roiSet.d.ts +41 -0
- package/dist/types/rulerRenderer.d.ts +14 -0
- package/dist/types/rulerTrackCanvas.d.ts +32 -0
- package/dist/types/sequence/sequenceUtils.d.ts +44 -0
- package/dist/types/session.d.ts +55 -0
- package/dist/types/src/bigwig/index.d.ts +66 -0
- package/dist/types/src/canvasProvider.d.ts +36 -0
- package/dist/types/src/commandDispatcher.d.ts +220 -0
- package/dist/types/src/contextMenu.d.ts +64 -0
- package/dist/types/src/contextMenuProvider.d.ts +25 -0
- package/dist/types/src/data/cachedSequence.d.ts +19 -0
- package/dist/types/src/data/ucscApi.d.ts +21 -0
- package/dist/types/src/data/ucscSequence.d.ts +19 -0
- package/dist/types/src/dataLifecycle.d.ts +16 -0
- package/dist/types/src/dataSources/bigWigDataSource.d.ts +24 -0
- package/dist/types/src/dataSources/dataSourceCacheKey.d.ts +9 -0
- package/dist/types/src/dataSources/featureSourceFactory.d.ts +46 -0
- package/dist/types/src/dataSources/geneDataSource.d.ts +16 -0
- package/dist/types/src/dataSources/gtxDataSource.d.ts +42 -0
- package/dist/types/src/dataSources/sequenceDataSource.d.ts +15 -0
- package/dist/types/src/dataSources/textFeatureSource.d.ts +63 -0
- package/dist/types/src/decode/bed.d.ts +64 -0
- package/dist/types/src/decode/bedpe.d.ts +36 -0
- package/dist/types/src/decode/exonUtils.d.ts +29 -0
- package/dist/types/src/decode/gff.d.ts +58 -0
- package/dist/types/src/decode/interact.d.ts +19 -0
- package/dist/types/src/decode/ucsc.d.ts +56 -0
- package/dist/types/src/events.d.ts +23 -0
- package/dist/types/src/export/canvas2svg.d.ts +166 -0
- package/dist/types/src/export/index.d.ts +2 -0
- package/dist/types/src/featureCache.d.ts +69 -0
- package/dist/types/src/formats/featureParser.d.ts +72 -0
- package/dist/types/src/formats/formatDetection.d.ts +46 -0
- package/dist/types/src/genome/chromAlias.d.ts +46 -0
- package/dist/types/src/genome/chromSizes.d.ts +53 -0
- package/dist/types/src/genome/genome.d.ts +51 -0
- package/dist/types/src/genomeBrowser.d.ts +189 -0
- package/dist/types/src/gtx/fetchCoordinator.d.ts +34 -0
- package/dist/types/src/gtx/gtxReader.d.ts +144 -0
- package/dist/types/src/gtx/index.d.ts +40 -0
- package/dist/types/src/gtx/zstdWasm.d.ts +22 -0
- package/dist/types/src/headlessGenomeBrowser.d.ts +450 -0
- package/dist/types/src/index.d.ts +123 -0
- package/dist/types/src/intervalTree.d.ts +56 -0
- package/dist/types/src/io/binaryParser.d.ts +25 -0
- package/dist/types/src/io/index.d.ts +7 -0
- package/dist/types/src/io/rangeReader.d.ts +48 -0
- package/dist/types/src/locusUtils.d.ts +37 -0
- package/dist/types/src/pack.d.ts +41 -0
- package/dist/types/src/popupProvider.d.ts +22 -0
- package/dist/types/src/remoteProtocol.d.ts +81 -0
- package/dist/types/src/roi/index.d.ts +3 -0
- package/dist/types/src/roi/roiRenderer.d.ts +24 -0
- package/dist/types/src/roi/roiSet.d.ts +41 -0
- package/dist/types/src/sequence/sequenceUtils.d.ts +44 -0
- package/dist/types/src/session.d.ts +55 -0
- package/dist/types/src/stateProjection.d.ts +115 -0
- package/dist/types/src/tabix/index.d.ts +48 -0
- package/dist/types/src/themes/index.d.ts +3 -0
- package/dist/types/src/themes/renderTheme.d.ts +86 -0
- package/dist/types/src/themes/renderThemePresets.d.ts +16 -0
- package/dist/types/src/trackRegistry.d.ts +81 -0
- package/dist/types/src/trackSelector.d.ts +31 -0
- package/dist/types/src/tracks/annotation/annotationRenderer.d.ts +17 -0
- package/dist/types/src/tracks/annotation/annotationThemes.d.ts +11 -0
- package/dist/types/src/tracks/annotation/annotationTrackCanvas.d.ts +58 -0
- package/dist/types/src/tracks/annotation/index.d.ts +4 -0
- package/dist/types/src/tracks/axis/axisRenderer.d.ts +19 -0
- package/dist/types/src/tracks/axis/index.d.ts +1 -0
- package/dist/types/src/tracks/baseTrackCanvas.d.ts +113 -0
- package/dist/types/src/tracks/dynseq/dynseqRenderer.d.ts +38 -0
- package/dist/types/src/tracks/dynseq/index.d.ts +1 -0
- package/dist/types/src/tracks/index.d.ts +7 -0
- package/dist/types/src/tracks/interaction/index.d.ts +4 -0
- package/dist/types/src/tracks/interaction/interactionRenderer.d.ts +52 -0
- package/dist/types/src/tracks/interaction/interactionTrackCanvas.d.ts +54 -0
- package/dist/types/src/tracks/ruler/index.d.ts +3 -0
- package/dist/types/src/tracks/ruler/rulerRenderer.d.ts +25 -0
- package/dist/types/src/tracks/ruler/rulerTrackCanvas.d.ts +43 -0
- package/dist/types/src/tracks/sequence/index.d.ts +5 -0
- package/dist/types/src/tracks/sequence/sequenceRenderer.d.ts +34 -0
- package/dist/types/src/tracks/sequence/sequenceThemes.d.ts +11 -0
- package/dist/types/src/tracks/sequence/sequenceTrackCanvas.d.ts +67 -0
- package/dist/types/src/tracks/wig/index.d.ts +5 -0
- package/dist/types/src/tracks/wig/wigRenderer.d.ts +15 -0
- package/dist/types/src/tracks/wig/wigSummary.d.ts +31 -0
- package/dist/types/src/tracks/wig/wigThemes.d.ts +15 -0
- package/dist/types/src/tracks/wig/wigTrackCanvas.d.ts +82 -0
- package/dist/types/src/types.d.ts +885 -0
- package/dist/types/src/ui/components/LoomBrowserShell.d.ts +52 -0
- package/dist/types/src/ui/components/LoomChromosomeSelect.d.ts +18 -0
- package/dist/types/src/ui/components/LoomContextMenu.d.ts +39 -0
- package/dist/types/src/ui/components/LoomExportControls.d.ts +13 -0
- package/dist/types/src/ui/components/LoomInputDialog.d.ts +27 -0
- package/dist/types/src/ui/components/LoomLocusInput.d.ts +18 -0
- package/dist/types/src/ui/components/LoomNavbar.d.ts +15 -0
- package/dist/types/src/ui/components/LoomPopup.d.ts +32 -0
- package/dist/types/src/ui/components/LoomWindowSize.d.ts +14 -0
- package/dist/types/src/ui/components/LoomZoomControls.d.ts +10 -0
- package/dist/types/src/ui/index.d.ts +21 -0
- package/dist/types/src/ui/themes.d.ts +14 -0
- package/dist/types/src/worker/nodeWorkerProvider.d.ts +28 -0
- package/dist/types/src/worker/taskHandler.d.ts +15 -0
- package/dist/types/src/worker/webWorkerProvider.d.ts +51 -0
- package/dist/types/src/worker/workerScript.d.ts +11 -0
- package/dist/types/src/workerProvider.d.ts +76 -0
- package/dist/types/stateProjection.d.ts +115 -0
- package/dist/types/tabix/bgzBlockLoader.d.ts +60 -0
- package/dist/types/tabix/bgzf.d.ts +43 -0
- package/dist/types/tabix/index.d.ts +48 -0
- package/dist/types/tabix/tabixIndex.d.ts +85 -0
- package/dist/types/tabix/tabixReader.d.ts +60 -0
- package/dist/types/tabix/virtualOffset.d.ts +41 -0
- package/dist/types/test/src/mockCanvasProvider.d.ts +67 -0
- package/dist/types/test/src/testBedDecode.d.ts +1 -0
- package/dist/types/test/src/testCanvas2SVG.d.ts +7 -0
- package/dist/types/test/src/testChromAlias.d.ts +1 -0
- package/dist/types/test/src/testCommandDispatcher.d.ts +1 -0
- package/dist/types/test/src/testData.d.ts +7 -0
- package/dist/types/test/src/testDataLifecycle.d.ts +1 -0
- package/dist/types/test/src/testDataSourceCacheKey.d.ts +1 -0
- package/dist/types/test/src/testDataSources.d.ts +5 -0
- package/dist/types/test/src/testDecodeUcsc.d.ts +1 -0
- package/dist/types/test/src/testEvents.d.ts +1 -0
- package/dist/types/test/src/testFeatureCache.d.ts +1 -0
- package/dist/types/test/src/testFeatureParser.d.ts +1 -0
- package/dist/types/test/src/testFormatDetection.d.ts +1 -0
- package/dist/types/test/src/testGffDecode.d.ts +1 -0
- package/dist/types/test/src/testHeadlessBrowser.d.ts +1 -0
- package/dist/types/test/src/testInteractionDecoder.d.ts +1 -0
- package/dist/types/test/src/testIntervalTree.d.ts +1 -0
- package/dist/types/test/src/testLocusUtils.d.ts +1 -0
- package/dist/types/test/src/testPack.d.ts +1 -0
- package/dist/types/test/src/testROI.d.ts +1 -0
- package/dist/types/test/src/testRemoteProtocol.d.ts +1 -0
- package/dist/types/test/src/testRenderTheme.d.ts +1 -0
- package/dist/types/test/src/testSVGExport.d.ts +5 -0
- package/dist/types/test/src/testSequence.d.ts +1 -0
- package/dist/types/test/src/testSession.d.ts +1 -0
- package/dist/types/test/src/testTrackSelector.d.ts +1 -0
- package/dist/types/test/src/testTrackSerialize.d.ts +1 -0
- package/dist/types/test/src/testWigSummary.d.ts +1 -0
- package/dist/types/test/src/testWorkerDispatch.d.ts +9 -0
- package/dist/types/themes/index.d.ts +3 -0
- package/dist/types/themes/renderTheme.d.ts +86 -0
- package/dist/types/themes/renderThemePresets.d.ts +16 -0
- package/dist/types/trackRegistry.d.ts +81 -0
- package/dist/types/trackSelector.d.ts +31 -0
- package/dist/types/tracks/annotation/annotationRenderer.d.ts +17 -0
- package/dist/types/tracks/annotation/annotationThemes.d.ts +11 -0
- package/dist/types/tracks/annotation/annotationTrackCanvas.d.ts +58 -0
- package/dist/types/tracks/annotation/index.d.ts +4 -0
- package/dist/types/tracks/axis/axisRenderer.d.ts +19 -0
- package/dist/types/tracks/axis/index.d.ts +1 -0
- package/dist/types/tracks/baseTrackCanvas.d.ts +113 -0
- package/dist/types/tracks/dynseq/dynseqRenderer.d.ts +38 -0
- package/dist/types/tracks/dynseq/index.d.ts +1 -0
- package/dist/types/tracks/gene/geneRenderer.d.ts +17 -0
- package/dist/types/tracks/gene/geneThemes.d.ts +11 -0
- package/dist/types/tracks/gene/geneTrackCanvas.d.ts +58 -0
- package/dist/types/tracks/gene/index.d.ts +4 -0
- package/dist/types/tracks/index.d.ts +7 -0
- package/dist/types/tracks/interaction/index.d.ts +4 -0
- package/dist/types/tracks/interaction/interactionRenderer.d.ts +52 -0
- package/dist/types/tracks/interaction/interactionTrackCanvas.d.ts +54 -0
- package/dist/types/tracks/ruler/index.d.ts +3 -0
- package/dist/types/tracks/ruler/rulerRenderer.d.ts +25 -0
- package/dist/types/tracks/ruler/rulerTrackCanvas.d.ts +43 -0
- package/dist/types/tracks/sequence/index.d.ts +5 -0
- package/dist/types/tracks/sequence/sequenceRenderer.d.ts +34 -0
- package/dist/types/tracks/sequence/sequenceThemes.d.ts +11 -0
- package/dist/types/tracks/sequence/sequenceTrackCanvas.d.ts +67 -0
- package/dist/types/tracks/wig/index.d.ts +5 -0
- package/dist/types/tracks/wig/wigRenderer.d.ts +15 -0
- package/dist/types/tracks/wig/wigSummary.d.ts +31 -0
- package/dist/types/tracks/wig/wigThemes.d.ts +15 -0
- package/dist/types/tracks/wig/wigTrackCanvas.d.ts +82 -0
- package/dist/types/types.d.ts +885 -0
- package/dist/types/ui/components/IgvBrowserShell.d.ts +52 -0
- package/dist/types/ui/components/IgvChromosomeSelect.d.ts +18 -0
- package/dist/types/ui/components/IgvExportControls.d.ts +13 -0
- package/dist/types/ui/components/IgvLocusInput.d.ts +18 -0
- package/dist/types/ui/components/IgvNavbar.d.ts +15 -0
- package/dist/types/ui/components/IgvWindowSize.d.ts +14 -0
- package/dist/types/ui/components/IgvZoomControls.d.ts +10 -0
- package/dist/types/ui/components/LoomBrowserShell.d.ts +52 -0
- package/dist/types/ui/components/LoomChromosomeSelect.d.ts +18 -0
- package/dist/types/ui/components/LoomContextMenu.d.ts +39 -0
- package/dist/types/ui/components/LoomExportControls.d.ts +13 -0
- package/dist/types/ui/components/LoomInputDialog.d.ts +27 -0
- package/dist/types/ui/components/LoomLocusInput.d.ts +18 -0
- package/dist/types/ui/components/LoomNavbar.d.ts +15 -0
- package/dist/types/ui/components/LoomPopup.d.ts +32 -0
- package/dist/types/ui/components/LoomWindowSize.d.ts +14 -0
- package/dist/types/ui/components/LoomZoomControls.d.ts +10 -0
- package/dist/types/ui/index.d.ts +21 -0
- package/dist/types/ui/themes.d.ts +14 -0
- package/dist/types/wigRenderer.d.ts +15 -0
- package/dist/types/wigSummary.d.ts +31 -0
- package/dist/types/wigThemes.d.ts +15 -0
- package/dist/types/wigTrackCanvas.d.ts +46 -0
- package/dist/types/worker/decodeWig.d.ts +20 -0
- package/dist/types/worker/nodeWorkerProvider.d.ts +28 -0
- package/dist/types/worker/taskHandler.d.ts +15 -0
- package/dist/types/worker/webWorkerProvider.d.ts +51 -0
- package/dist/types/worker/workerScript.d.ts +11 -0
- package/dist/types/workerProvider.d.ts +76 -0
- package/package.json +102 -0
package/dist/igv.d.ts
ADDED
|
@@ -0,0 +1,667 @@
|
|
|
1
|
+
// either uppercase or lowercase
|
|
2
|
+
type AnyCase<T extends string> = Uppercase<T> | Lowercase<T>;
|
|
3
|
+
|
|
4
|
+
// any action that can be deferred as a promise
|
|
5
|
+
type Deferrable<T> = T | Promise<T> | (() => T | Promise<T>);
|
|
6
|
+
|
|
7
|
+
// simply prevents the type from being inferred
|
|
8
|
+
declare class Opaque<N extends string> {
|
|
9
|
+
private readonly __opaque_brand: N;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type TrackType =
|
|
13
|
+
"annotation" | "wig" | "alignment" | "variant" | "mut" | "seg" |
|
|
14
|
+
"gwas" | "interact" | 'interaction' | "qtl" | "junction" | "cnvpytor" | "merged" | "arc" | "longrange" |
|
|
15
|
+
/* undocumented options */
|
|
16
|
+
"snp" | "eqtl";
|
|
17
|
+
|
|
18
|
+
// converts a track type into the options needed to create it
|
|
19
|
+
export type TrackLoad<T extends TrackType> =
|
|
20
|
+
Tracks.TrackCommonOptions &
|
|
21
|
+
(T extends "annotation" ? Tracks.AnnotationTrackOptions & TypeFormatPair<'annotation'> :
|
|
22
|
+
T extends "wig" ? Tracks.WigTrackOptions & TypeFormatPair<'wig'> :
|
|
23
|
+
T extends "alignment" ? Tracks.AlignmentTrackOptions & TypeFormatPair<'alignment'> :
|
|
24
|
+
T extends "variant" ? Tracks.VariantTrackOptions & TypeFormatPair<'variant'> :
|
|
25
|
+
T extends "mut" ? Tracks.MutationTrackOptions & TypeFormatPair<'mut'> :
|
|
26
|
+
T extends "seg" ? Tracks.SegTrackOptions & TypeFormatPair<'seg'> :
|
|
27
|
+
T extends "gwas" ? Tracks.GWASTrackOptions<Tracks.GWASFormat> & TypeFormatPair<'gwas'> :
|
|
28
|
+
T extends "interact" | "interaction" ? Tracks.InteractTrackOptions & TypeFormatPair<'interact' | 'interaction'> :
|
|
29
|
+
T extends "qtl" ? Tracks.QTLTrackOptions & TypeFormatPair<'qtl'> :
|
|
30
|
+
T extends "junction" ? Tracks.JunctionTrackOptions & TypeFormatPair<'junction'> :
|
|
31
|
+
T extends "cnvpytor" ? Tracks.CnvPyTorTrackOptions & TypeFormatPair<'cnvpytor'> :
|
|
32
|
+
T extends "merged" ? Tracks.WigMergedTrackOptions & { type: 'merged' } :
|
|
33
|
+
T extends "arc" ? Tracks.ArcTrackOptions & TypeFormatPair<'arc'> :
|
|
34
|
+
/* undocumented options */
|
|
35
|
+
T extends "snp" ? Tracks.SNPTrackOptions & TypeFormatPair<'snp'> :
|
|
36
|
+
T extends "eqtl" ? Tracks.EQTLTrackOptions & TypeFormatPair<'eqtl'> :
|
|
37
|
+
never);
|
|
38
|
+
|
|
39
|
+
export type TypeFormatPair<T extends TrackType> = {
|
|
40
|
+
type?: T;
|
|
41
|
+
// if we know the format, type is not required
|
|
42
|
+
format: TrackFormatOf<T>;
|
|
43
|
+
// in this case URL can be anything
|
|
44
|
+
url: Deferrable<string>;
|
|
45
|
+
} | ({
|
|
46
|
+
// an explicit type and manual reader is allowed, however format and url will not make sense in this context
|
|
47
|
+
type: T;
|
|
48
|
+
format?: never;
|
|
49
|
+
url?: never;
|
|
50
|
+
} & (CustomReaderOf<T> | FeatureOf<T>));
|
|
51
|
+
|
|
52
|
+
// converts a track type into the file formats that it can accept
|
|
53
|
+
export type TrackFormatOf<T extends TrackType> =
|
|
54
|
+
T extends "annotation" ? Tracks.AnnotationFormat :
|
|
55
|
+
T extends "wig" ? Tracks.WigFormat :
|
|
56
|
+
T extends "alignment" ? Tracks.AlignmentFormat :
|
|
57
|
+
T extends "variant" ? Tracks.VariantFormat :
|
|
58
|
+
T extends "mut" ? Tracks.MutationFormat :
|
|
59
|
+
T extends "seg" ? Tracks.SegFormat :
|
|
60
|
+
T extends "gwas" ? Tracks.GWASFormat :
|
|
61
|
+
T extends "interact" | 'interaction' ? Tracks.InteractFormat :
|
|
62
|
+
T extends "qtl" ? Tracks.QTLFormat :
|
|
63
|
+
T extends "junction" ? Tracks.JunctionFormat :
|
|
64
|
+
T extends "cnvpytor" ? Tracks.CnvPyTorFormat :
|
|
65
|
+
T extends "arc" ? Tracks.ArcFormat :
|
|
66
|
+
/* undocumented options */
|
|
67
|
+
T extends "snp" ? Tracks.SNPFormat :
|
|
68
|
+
T extends "eqtl" ? Tracks.EQTLFormat :
|
|
69
|
+
never;
|
|
70
|
+
|
|
71
|
+
// converts a track type into the manual features that it can accept
|
|
72
|
+
export type FeatureOf<T extends TrackType> =
|
|
73
|
+
T extends "annotation" ? {
|
|
74
|
+
features: Record<string, any>[];
|
|
75
|
+
} :
|
|
76
|
+
T extends "wig" ? {
|
|
77
|
+
features: Tracks.WigTrackFeatures;
|
|
78
|
+
} :
|
|
79
|
+
T extends "seg" ? {
|
|
80
|
+
features: {
|
|
81
|
+
chr: string;
|
|
82
|
+
start: number;
|
|
83
|
+
end: number;
|
|
84
|
+
value: number;
|
|
85
|
+
sample: string;
|
|
86
|
+
}[];
|
|
87
|
+
} : never;
|
|
88
|
+
|
|
89
|
+
// some tracks can support a custom reader that polls data based on options
|
|
90
|
+
export type CustomReaderOf<T extends TrackType> =
|
|
91
|
+
T extends "annotation" ? { reader: Tracks.AnnotationCustomReader } |
|
|
92
|
+
{
|
|
93
|
+
source: {
|
|
94
|
+
url: string;
|
|
95
|
+
method?: "GET" | "POST";
|
|
96
|
+
contentType?: string;
|
|
97
|
+
body?: string;
|
|
98
|
+
}
|
|
99
|
+
} :
|
|
100
|
+
T extends "seg" ? {
|
|
101
|
+
source: {
|
|
102
|
+
url: (options: { chr: string }) => string;
|
|
103
|
+
method?: "GET" | "POST";
|
|
104
|
+
contentType?: string;
|
|
105
|
+
body?: string;
|
|
106
|
+
mappings: Record<string, string>;
|
|
107
|
+
}
|
|
108
|
+
} :
|
|
109
|
+
never;
|
|
110
|
+
|
|
111
|
+
// converts a track type into the actual track class
|
|
112
|
+
export type TrackOf<T extends TrackType> =
|
|
113
|
+
T extends "annotation" ? Tracks.Track :
|
|
114
|
+
T extends "wig" ? Tracks.Track :
|
|
115
|
+
T extends "alignment" ? Tracks.AlignmentTrack :
|
|
116
|
+
T extends "variant" ? Tracks.Track :
|
|
117
|
+
T extends "mut" ? Tracks.Track :
|
|
118
|
+
T extends "seg" ? Tracks.Track :
|
|
119
|
+
T extends "gwas" ? Tracks.Track :
|
|
120
|
+
T extends "interact" | 'interaction' ? Tracks.Track :
|
|
121
|
+
T extends "qtl" ? Tracks.Track :
|
|
122
|
+
T extends "junction" ? Tracks.Track :
|
|
123
|
+
T extends "cnvpytor" ? Tracks.Track :
|
|
124
|
+
T extends "merged" ? Tracks.Track :
|
|
125
|
+
T extends "arc" ? Tracks.Track :
|
|
126
|
+
/* undocumented options */
|
|
127
|
+
T extends "snp" ? Tracks.Track :
|
|
128
|
+
T extends "eqtl" ? Tracks.Track :
|
|
129
|
+
never;
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
export type StaticFeatureConfig<T extends Record<string, any>> = {
|
|
133
|
+
url(options: T): string;
|
|
134
|
+
method?: "GET" | "POST";
|
|
135
|
+
contentType?: string;
|
|
136
|
+
body?: string;
|
|
137
|
+
mappings: Record<keyof T, string>;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
export namespace Tracks {
|
|
142
|
+
export class Track {
|
|
143
|
+
public readonly id: string;
|
|
144
|
+
public readonly type: string;
|
|
145
|
+
public readonly name?: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
export interface TrackCommonOptions {
|
|
150
|
+
name?: string;
|
|
151
|
+
indexURL?: string | Promise<string>;
|
|
152
|
+
indexed?: false;
|
|
153
|
+
order?: number;
|
|
154
|
+
height?: number;
|
|
155
|
+
autoHeight?: boolean;
|
|
156
|
+
minHeight?: number;
|
|
157
|
+
maxHeight?: number;
|
|
158
|
+
visibilityWindow?: number | string;
|
|
159
|
+
removable?: boolean;
|
|
160
|
+
headers?: Record<string, string>;
|
|
161
|
+
oauthToken?: string | (() => string | Promise<string>);
|
|
162
|
+
sourceType?: string;
|
|
163
|
+
filename?: string;
|
|
164
|
+
roi?: DefineROI[];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export class AnnotationCustomReader {
|
|
168
|
+
constructor(config: TrackCommonOptions & AnnotationTrackOptions);
|
|
169
|
+
readFeatures(chr: string, start: number, end: number): Promise<Record<string, any>[]>;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export type AnnotationFormat = "bed" | "gff3" | "gtf" |
|
|
173
|
+
"genePred" | "genePredExt" | "peaks" |
|
|
174
|
+
"narrowPeak" | "broadPeak" | "bigBed" | "rmsk" | "vcf" |
|
|
175
|
+
"gtexgwas";
|
|
176
|
+
|
|
177
|
+
export type AnnotationTrackDisplay = {
|
|
178
|
+
displayMode: AnyCase<"EXPANDED">
|
|
179
|
+
expandedRowHeight?: number,
|
|
180
|
+
} | {
|
|
181
|
+
displayMode: AnyCase<"SQUISHED">
|
|
182
|
+
squishedRowHeight: number,
|
|
183
|
+
} | {
|
|
184
|
+
displayMode?: AnyCase<"COLLAPSED">
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export type AnnotationTrackSearch = {
|
|
188
|
+
searchable: true,
|
|
189
|
+
searchableFields: string[],
|
|
190
|
+
} | {
|
|
191
|
+
searchable?: false,
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export interface AnnotationTrackCommonOptions {
|
|
195
|
+
nameField?: string;
|
|
196
|
+
maxRows?: number;
|
|
197
|
+
filterTypes?: string[];
|
|
198
|
+
color?: string | ((feature: {
|
|
199
|
+
chr: string;
|
|
200
|
+
getAttributeValue: (name: string) => string;
|
|
201
|
+
}) => string);
|
|
202
|
+
colorBy?: string;
|
|
203
|
+
altColor?: string, rBy?: string,
|
|
204
|
+
colorTable?: Record<string, string>,
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export type AnnotationTrackOptions = AnnotationTrackDisplay & AnnotationTrackSearch & AnnotationTrackCommonOptions;
|
|
208
|
+
|
|
209
|
+
export type WigFormat = AnyCase<"wig"> | "bigWig" | AnyCase<'bigWig'> | AnyCase<'tdf'> | AnyCase<'bw'>;
|
|
210
|
+
|
|
211
|
+
export interface WigTrackOptions {
|
|
212
|
+
autoscale?: boolean;
|
|
213
|
+
autoscaleGroup?: string;
|
|
214
|
+
min?: number;
|
|
215
|
+
max?: number;
|
|
216
|
+
color?: string,
|
|
217
|
+
altColor?: string,
|
|
218
|
+
guidelines?: { color: string, y: number, dotted: boolean }[];
|
|
219
|
+
graphType?: "points" | "bar" | "line" | "heatmap" | "dynseq"
|
|
220
|
+
flipAxis?: boolean;
|
|
221
|
+
windowFunction?: "mean" | "max" | "min";
|
|
222
|
+
|
|
223
|
+
height?: number;
|
|
224
|
+
|
|
225
|
+
displayMode?: AnyCase<"EXPANDED" | "SQUISHED" | "COLLAPSED">;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export type WigTrackFeatures = {
|
|
229
|
+
chr: string;
|
|
230
|
+
start: number;
|
|
231
|
+
end: number;
|
|
232
|
+
value: number;
|
|
233
|
+
}[];
|
|
234
|
+
|
|
235
|
+
export type WigMergedTrackOptions = {
|
|
236
|
+
tracks: (Partial<TrackCommonOptions> & ((TypeFormatPair<'wig'> & WigTrackOptions) | (TypeFormatPair<'junction'> & JunctionTrackOptions)))[];
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export type VariantFormat = "vcf";
|
|
240
|
+
|
|
241
|
+
export type VCFItem = {
|
|
242
|
+
chrom: string;
|
|
243
|
+
pos: number;
|
|
244
|
+
id: string;
|
|
245
|
+
ref: string;
|
|
246
|
+
alt: string;
|
|
247
|
+
qual: number;
|
|
248
|
+
filter: string;
|
|
249
|
+
info: Record<string, string>;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export type VariantTrackOptions = {
|
|
253
|
+
displayMode?: AnyCase<"EXPANDED" | "SQUISHED" | "COLLAPSED">;
|
|
254
|
+
squishedCallHeight?: number;
|
|
255
|
+
expandedCallHeight?: number;
|
|
256
|
+
color?: string | ((variant: VCFItem) => string);
|
|
257
|
+
colorBy?: string;
|
|
258
|
+
colorTable?: Record<string, string>;
|
|
259
|
+
noCallColor?: string;
|
|
260
|
+
homvarColor?: string;
|
|
261
|
+
hetvarColor?: string;
|
|
262
|
+
homrefColor?: string;
|
|
263
|
+
supportsWholeGenome?: boolean;
|
|
264
|
+
showGenotypes?: boolean;
|
|
265
|
+
strokecolor?: (variant: VCFItem) => string | void;
|
|
266
|
+
context_hook?: unknown;
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
export type CnvPyTorFormat = "pytor" | "vcf";
|
|
270
|
+
|
|
271
|
+
export type CnvPyTorTrackOptions = {
|
|
272
|
+
signal_name?: string;
|
|
273
|
+
cnv_caller?: "ReadDepth" | "2D";
|
|
274
|
+
bin_size?: number;
|
|
275
|
+
colors?: string[];
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
export type AlignmentFormat = "bam" | "cram";
|
|
279
|
+
|
|
280
|
+
type AlignmentBy = (string & {}) // tag:tagName and base:position
|
|
281
|
+
|
|
282
|
+
export type AlignmentSortOptions = {
|
|
283
|
+
chr: string;
|
|
284
|
+
position: number;
|
|
285
|
+
direction?: "ASC" | "DESC";
|
|
286
|
+
} & ({
|
|
287
|
+
option: "BASE" | "STRAND" | "INSERT_SIZE" | "MATR_CHR" | "MQ";
|
|
288
|
+
} | {
|
|
289
|
+
option: "TAG";
|
|
290
|
+
tag: string;
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
export type AlignmentTrackOptions = {
|
|
294
|
+
showCoverage?: boolean;
|
|
295
|
+
showAlignments?: boolean;
|
|
296
|
+
viewAsPairs?: boolean;
|
|
297
|
+
pairsSupported?: boolean;
|
|
298
|
+
coverageColor?: string;
|
|
299
|
+
color?: string;
|
|
300
|
+
deletionColor?: string;
|
|
301
|
+
displayMode?: AnyCase<"FULL" | "EXPANDED" | "SQUISHED">;
|
|
302
|
+
groupBy?:
|
|
303
|
+
"strand" | "firstOfPairStrand" | "pairOrientation" | "mateChr" | "chimeric" | "supplementary" | "readOrder" | AlignmentBy;
|
|
304
|
+
samplingWindowSize?: number;
|
|
305
|
+
samplingDepth?: number;
|
|
306
|
+
readGroup?: string;
|
|
307
|
+
sort?: AlignmentSortOptions;
|
|
308
|
+
filter?: {
|
|
309
|
+
vendorFailed?: boolean;
|
|
310
|
+
duplicates?: boolean;
|
|
311
|
+
secondary?: boolean;
|
|
312
|
+
supplementary?: boolean;
|
|
313
|
+
mq?: number;
|
|
314
|
+
readGroups?: string[];
|
|
315
|
+
};
|
|
316
|
+
showSoftClips?: boolean;
|
|
317
|
+
showMismatches?: boolean;
|
|
318
|
+
showAllBases?: boolean;
|
|
319
|
+
showInsertionText?: boolean;
|
|
320
|
+
insertionTextColor?: string;
|
|
321
|
+
alignmentRowHeight?: number;
|
|
322
|
+
squishedRowHeight?: number;
|
|
323
|
+
} & (
|
|
324
|
+
{
|
|
325
|
+
colorBy: "strand" | "firstOfPairStrand";
|
|
326
|
+
insertionColor?: string;
|
|
327
|
+
negStrandColor?: string;
|
|
328
|
+
} |
|
|
329
|
+
{
|
|
330
|
+
colorBy: "pairOrientation" | "tlen"
|
|
331
|
+
| "unexpectedPair"
|
|
332
|
+
| "basemod" | "basemod2"
|
|
333
|
+
| AlignmentBy;
|
|
334
|
+
} |
|
|
335
|
+
{
|
|
336
|
+
colorBy?: "fragmentLength";
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
class AlignmentTrack extends Track {
|
|
341
|
+
setHighlightedReads(readNames: string[], color: string): void;
|
|
342
|
+
sort(options: AlignmentSortOptions): void;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
export type GWASFormat = "gwas" | "bed";
|
|
346
|
+
|
|
347
|
+
export type GWASTrackOptions<F extends GWASFormat> = {
|
|
348
|
+
min?: number;
|
|
349
|
+
max?: number;
|
|
350
|
+
posteriorProbability?: boolean;
|
|
351
|
+
dotSize?: number;
|
|
352
|
+
colorTable?: Record<string, string>;
|
|
353
|
+
columns?: F extends "gwas" ? {
|
|
354
|
+
chromosome: number;
|
|
355
|
+
position: number;
|
|
356
|
+
value: number;
|
|
357
|
+
} : never;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
export type MutationFormat = "maf" | "mut";
|
|
361
|
+
|
|
362
|
+
export type MutationTrackOptions = {
|
|
363
|
+
displayMode?: AnyCase<"EXPANDED" | "SQUISHED" | "COLLAPSED">;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
export type SegFormat = "seg";
|
|
367
|
+
|
|
368
|
+
export type SegTrackOptions = {
|
|
369
|
+
displayMode?: AnyCase<"EXPANDED" | "SQUISHED" | "FILL">;
|
|
370
|
+
sort?: ({
|
|
371
|
+
option: "value" | "VALUE";
|
|
372
|
+
} | {
|
|
373
|
+
option: "attribute" | "ATTRIBUTE";
|
|
374
|
+
attribute: string;
|
|
375
|
+
});
|
|
376
|
+
samples?: string[];
|
|
377
|
+
} & (
|
|
378
|
+
{
|
|
379
|
+
isLog?: boolean;
|
|
380
|
+
log?: never;
|
|
381
|
+
} | {
|
|
382
|
+
log?: boolean;
|
|
383
|
+
isLog?: never;
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
export type InteractFormat = "interact" | "bedpe" | "bigInteract" | "bb" | "hic" | "longrange";
|
|
388
|
+
|
|
389
|
+
export type InteractTrackOptions = {
|
|
390
|
+
arcType?: "nested" | "proportional" | "inView" | "partialInView";
|
|
391
|
+
arcOrientation?: "UP" | "DOWN" | boolean;
|
|
392
|
+
color?: string;
|
|
393
|
+
alpha?: number | string;
|
|
394
|
+
logScale?: boolean;
|
|
395
|
+
showBlocks?: boolean;
|
|
396
|
+
thickness?: number;
|
|
397
|
+
useScore?: boolean;
|
|
398
|
+
max?: number;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
export type QTLFormat = "qtl";
|
|
402
|
+
|
|
403
|
+
export type QTLTrackOptions = {
|
|
404
|
+
min?: number;
|
|
405
|
+
max?: number;
|
|
406
|
+
autoscalePercentile?: number;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export type JunctionFormat = "bed";
|
|
410
|
+
|
|
411
|
+
export type JunctionTrackFilteringOptions = {
|
|
412
|
+
minUniquelyMappedReads?: number;
|
|
413
|
+
minTotalReads?: number;
|
|
414
|
+
maxFractionMultiMappedReads?: number;
|
|
415
|
+
minSplicedAlignmentOverhang?: number;
|
|
416
|
+
hideStrand?: "+" | "-";
|
|
417
|
+
hideAnnotatedJunctions?: boolean;
|
|
418
|
+
hideUnannotatedJunctions?: boolean;
|
|
419
|
+
hideMotifs?: string[];
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
export type JunctionTrackOptions = ({
|
|
423
|
+
colorBy?: "numUniqueReads" | "numReads";
|
|
424
|
+
colorByNumReadsThreshold: number;
|
|
425
|
+
} | {
|
|
426
|
+
colorBy: "isAnnotatedJunction" | "strand" | "motif";
|
|
427
|
+
colorByNumReadsThreshold?: never;
|
|
428
|
+
}) & {
|
|
429
|
+
displayMode?: AnyCase<"COLLAPSED" | "EXPANDED" | "SQUISHED">;
|
|
430
|
+
thicknessBasedOn?: "numUniqueReads" | "numReads" | "isAnnotatedJunction";
|
|
431
|
+
bounceHeightBasedOn?: "random" | "distance" | "thickness";
|
|
432
|
+
labelUniqueReadCount?: boolean;
|
|
433
|
+
labelMultiMappedReadCount?: boolean;
|
|
434
|
+
labelTotalReadCount?: boolean;
|
|
435
|
+
labelMotif?: boolean;
|
|
436
|
+
// TODO: documented but not implemented?
|
|
437
|
+
// labelAnnotatedJunction?: string | null;
|
|
438
|
+
minSplicedAlignmentOverhang?: number;
|
|
439
|
+
} & JunctionTrackFilteringOptions;
|
|
440
|
+
|
|
441
|
+
export type ArcFormat = "bp";
|
|
442
|
+
|
|
443
|
+
export type ArcTrackOptions = {
|
|
444
|
+
arcOrientation?: "UP" | "DOWN";
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
// TODO: undocumented
|
|
448
|
+
export type SNPFormat = "snp";
|
|
449
|
+
|
|
450
|
+
export interface SNPTrackOptions {
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
export type EQTLFormat = "eqtl";
|
|
454
|
+
|
|
455
|
+
export interface EQTLTrackOptions {
|
|
456
|
+
sourceType: "gtex-ws";
|
|
457
|
+
tissueSiteDetailId: string;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
type Nucleotide = 'A' | 'C' | 'G' | 'T' | 'N';
|
|
462
|
+
|
|
463
|
+
type SuggestedGenomeIDs = "hs1" | "chm13v1.1" | "hg38" | "hg38_1kg" | "hg19" |
|
|
464
|
+
"hg18" | "mm39" | "mm10" | "mm9" | "rn7" |
|
|
465
|
+
"rn6" | "gorGor6" | "gorGor4" | "panTro6" | "panTro5" |
|
|
466
|
+
"panTro4" | "macFas5" | "GCA_011100615.1" | "panPan2" | "canFam3" |
|
|
467
|
+
"canFam4" | "canFam5" | "bosTau9" | "bosTau8" | "susScr11" |
|
|
468
|
+
"galGal6" | "danRer11" | "danRer10" | "ce11" |
|
|
469
|
+
"dm6" | "dm3" | "dmel_r5.9" | "sacCer3" | "ASM294v2" |
|
|
470
|
+
"ASM985889v3" | "tair10"
|
|
471
|
+
|
|
472
|
+
export type GenomeDef = SuggestedGenomeIDs | (string & {}) | ReferenceGenome;
|
|
473
|
+
|
|
474
|
+
export type GenomeOpt = { reference: GenomeDef, genome?: never } | { genome: GenomeDef, reference?: never };
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* To define or customize a reference genome the reference property can be used.
|
|
478
|
+
*/
|
|
479
|
+
export interface ReferenceGenome {
|
|
480
|
+
id?: string;
|
|
481
|
+
name?: string;
|
|
482
|
+
fastaURL: string;
|
|
483
|
+
indexURL?: string;
|
|
484
|
+
cytobandURL?: string;
|
|
485
|
+
aliasURL?: string;
|
|
486
|
+
/**
|
|
487
|
+
* @deprecated
|
|
488
|
+
*/
|
|
489
|
+
indexed?: true;
|
|
490
|
+
chromosomeOrder?: string[];
|
|
491
|
+
headers?: Record<string, string>;
|
|
492
|
+
wholeGenomeView?: boolean;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
interface CreateOptExtras {
|
|
496
|
+
supportQueryParameters?: boolean;
|
|
497
|
+
queryParametersSupported?: boolean;
|
|
498
|
+
|
|
499
|
+
showNavigation?: boolean;
|
|
500
|
+
|
|
501
|
+
showSampleNames?: boolean;
|
|
502
|
+
sampleNameViewportWidth?: number;
|
|
503
|
+
locus?: string | string[];
|
|
504
|
+
nucleotideColors?: Partial<Record<Nucleotide, string>>;
|
|
505
|
+
|
|
506
|
+
roi?: DefineROI[];
|
|
507
|
+
tracks?: TrackLoad<TrackType>[];
|
|
508
|
+
|
|
509
|
+
search?: {
|
|
510
|
+
url: string;
|
|
511
|
+
chromosomeField: string;
|
|
512
|
+
displayName: string;
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export namespace BrowserEvents {
|
|
517
|
+
export type EventType = "trackremoved" | "trackdrag" | "trackdragend" | "locuschange" | "trackclick" | "trackorderchanged" | "zoom";
|
|
518
|
+
|
|
519
|
+
// returns the type of the event handler based on the event type
|
|
520
|
+
export type EventHandler<T extends EventType> =
|
|
521
|
+
T extends "trackremoved" ? (tracks: Tracks.Track[]) => EventReturn<T> :
|
|
522
|
+
T extends "locusChange" ? (loci: {
|
|
523
|
+
chr: string;
|
|
524
|
+
start: number;
|
|
525
|
+
end: number;
|
|
526
|
+
getLocusString: () => string;
|
|
527
|
+
}[]) => EventReturn<T> :
|
|
528
|
+
T extends "trackclick" ? (
|
|
529
|
+
track: Tracks.Track,
|
|
530
|
+
popoverData?: Record<string, string>,
|
|
531
|
+
genomicLocation?: number
|
|
532
|
+
) => EventReturn<T> :
|
|
533
|
+
T extends "trackorderchanged" ? (trackNames: string[]) => EventReturn<T> :
|
|
534
|
+
T extends "roiadded" ? (roi: { chr: string; start: number; end: number; name?: string }) => EventReturn<T> :
|
|
535
|
+
T extends "roiremoved" ? (roi: { chr: string; start: number; end: number; name?: string }) => EventReturn<T> :
|
|
536
|
+
(payload: any) => EventReturn<T>;
|
|
537
|
+
|
|
538
|
+
export type EventReturn<T extends EventType> =
|
|
539
|
+
T extends "trackclick" ? string | boolean | undefined :
|
|
540
|
+
void;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
export type CreateOpt = (GenomeOpt & CreateOptExtras) | (
|
|
544
|
+
// if a session URL is provided, we do not need a complete definition, additionally we should not allow a different genome
|
|
545
|
+
{
|
|
546
|
+
sessionURL: string;
|
|
547
|
+
} & Partial<CreateOptExtras>
|
|
548
|
+
)
|
|
549
|
+
|
|
550
|
+
export interface ROISet {
|
|
551
|
+
url: string;
|
|
552
|
+
name: string;
|
|
553
|
+
indexed: boolean;
|
|
554
|
+
isUserDefined: boolean;
|
|
555
|
+
color: string;
|
|
556
|
+
headerColor: string;
|
|
557
|
+
isvisible: boolean;
|
|
558
|
+
chr: string;
|
|
559
|
+
start: number;
|
|
560
|
+
end: number;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
export type DefineROI = {
|
|
564
|
+
name?: string;
|
|
565
|
+
color: string;
|
|
566
|
+
} & ({
|
|
567
|
+
url: string;
|
|
568
|
+
indexed?: boolean;
|
|
569
|
+
format?: string;
|
|
570
|
+
} | {
|
|
571
|
+
features: {
|
|
572
|
+
chr: string;
|
|
573
|
+
start: number;
|
|
574
|
+
end: number;
|
|
575
|
+
}[]
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
declare class _Browser {
|
|
580
|
+
currentLoci(): string[] | string;
|
|
581
|
+
loadGenome(genome: string | ReferenceGenome): Promise<void>;
|
|
582
|
+
loadSessionObject(session: Opaque<'igv.js session JSON'>): void;
|
|
583
|
+
loadSession(session: string): void;
|
|
584
|
+
loadTrack<T extends TrackType>(track: TrackLoad<T>): Promise<TrackOf<T>>;
|
|
585
|
+
loadSampleInfo({ url: string }): void;
|
|
586
|
+
findTracks(func: (track: Tracks.Track) => boolean): Tracks.Track[];
|
|
587
|
+
findTracks(property: string, value: any): Tracks.Track[];
|
|
588
|
+
removeTrack(track: Tracks.Track): void;
|
|
589
|
+
removeTrackByName(trackName: string): void;
|
|
590
|
+
loadROI(roi: DefineROI | DefineROI[]): void;
|
|
591
|
+
clearROIs(): void;
|
|
592
|
+
getUserDefinedROIs(): Promise<ROISet[]>;
|
|
593
|
+
search(query: string): void;
|
|
594
|
+
zoomIn(): void;
|
|
595
|
+
zoomOut(): void;
|
|
596
|
+
visibilityChange(): void;
|
|
597
|
+
toJSON(): Opaque<'igv.js session JSON'>;
|
|
598
|
+
compressedSession(): string;
|
|
599
|
+
toSVG(): string;
|
|
600
|
+
setCustomCursorGuideMouseHandler(handler: (state: {
|
|
601
|
+
bp: number,
|
|
602
|
+
start: number,
|
|
603
|
+
end: number,
|
|
604
|
+
interpolant: number,
|
|
605
|
+
}) => void): void;
|
|
606
|
+
|
|
607
|
+
sessionURL(): string;
|
|
608
|
+
|
|
609
|
+
on<T extends BrowserEvents.EventType>(event: T, handler: BrowserEvents.EventHandler<T>): void;
|
|
610
|
+
off(event: BrowserEvents.EventType): void;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
export type Browser = _Browser;
|
|
614
|
+
|
|
615
|
+
type CreateBrowser = (div: HTMLElement, options: CreateOpt) => Promise<Browser>;
|
|
616
|
+
|
|
617
|
+
export type GlobalConfig = {
|
|
618
|
+
minimumBases: number;
|
|
619
|
+
showIdeogram: boolean;
|
|
620
|
+
showCircularView: boolean;
|
|
621
|
+
showCircularViewButton: boolean;
|
|
622
|
+
showTrackLabelButton: boolean;
|
|
623
|
+
showTrackLabels: boolean;
|
|
624
|
+
doShowROITableButton: boolean;
|
|
625
|
+
showROITable: boolean;
|
|
626
|
+
showCursorTrackingGuideButton: boolean;
|
|
627
|
+
showCursorTrackingGuide: boolean;
|
|
628
|
+
showCenterGuideButton: boolean;
|
|
629
|
+
showCenterGuide: boolean;
|
|
630
|
+
showSampleNames: boolean;
|
|
631
|
+
showSVGButton: boolean;
|
|
632
|
+
showControls: boolean;
|
|
633
|
+
showNavigation: boolean;
|
|
634
|
+
showRuler: boolean;
|
|
635
|
+
flanking: number;
|
|
636
|
+
pairsSupported: boolean;
|
|
637
|
+
tracks: TrackLoad<TrackType>[];
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
export type IGV = {
|
|
642
|
+
readonly setDefaults: (config: Partial<GlobalConfig>) => void;
|
|
643
|
+
/**
|
|
644
|
+
* Create an igv.browser instance. This object defines the public API for interacting with the genome browser.
|
|
645
|
+
*
|
|
646
|
+
* @param parentDiv - DOM tree root
|
|
647
|
+
* @param config - configuration options.
|
|
648
|
+
*
|
|
649
|
+
*/
|
|
650
|
+
readonly createBrowser: CreateBrowser;
|
|
651
|
+
readonly removeBrowser: (browser: Browser) => void;
|
|
652
|
+
readonly removeAllBrowsers: () => void;
|
|
653
|
+
readonly setApiKey: (apiKey: string) => void;
|
|
654
|
+
readonly setGoogleOauthToken: (token: string) => void;
|
|
655
|
+
readonly setOauthToken: (token: string, host: string) => void;
|
|
656
|
+
readonly getAllBrowsers: () => Browser[];
|
|
657
|
+
/**
|
|
658
|
+
* This function provided so clients can inform igv of a visibility change, typically when an igv instance is
|
|
659
|
+
* made visible from a tab, accordion, or similar widget.
|
|
660
|
+
*/
|
|
661
|
+
readonly visibilityChange: () => Promise<void>;
|
|
662
|
+
readonly version: () => string;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
declare const igv: IGV;
|
|
666
|
+
|
|
667
|
+
export default igv;
|