loom-browser 0.0.1 → 0.0.2

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 (185) hide show
  1. package/dist/loom.esm.min.js.map +1 -1
  2. package/dist/types/commandDispatcher.d.ts +22 -1
  3. package/dist/types/index.d.ts +1 -1
  4. package/dist/types/remoteProtocol.d.ts +2 -0
  5. package/package.json +8 -2
  6. package/dist/igv.d.ts +0 -667
  7. package/dist/igv.esm.js +0 -76708
  8. package/dist/igv.esm.min.js +0 -26
  9. package/dist/igv.esm.min.js.map +0 -1
  10. package/dist/igv.js +0 -76716
  11. package/dist/igv.min.js +0 -26
  12. package/dist/igv.min.js.map +0 -1
  13. package/dist/loom.d.ts +0 -667
  14. package/dist/types/agent/index.d.ts +0 -4
  15. package/dist/types/agent/stateProjection.d.ts +0 -115
  16. package/dist/types/agent/trackSelector.d.ts +0 -31
  17. package/dist/types/baseTrackCanvas.d.ts +0 -62
  18. package/dist/types/bigwig/binaryParser.d.ts +0 -25
  19. package/dist/types/bigwig/bpTree.d.ts +0 -40
  20. package/dist/types/bigwig/bwReader.d.ts +0 -69
  21. package/dist/types/bigwig/chromTree.d.ts +0 -28
  22. package/dist/types/bigwig/inflate.d.ts +0 -9
  23. package/dist/types/bigwig/rangeReader.d.ts +0 -48
  24. package/dist/types/bigwig/rpTree.d.ts +0 -27
  25. package/dist/types/dataSources/dynseqDataSource.d.ts +0 -20
  26. package/dist/types/dynseqRenderer.d.ts +0 -37
  27. package/dist/types/geneRenderer.d.ts +0 -17
  28. package/dist/types/geneThemes.d.ts +0 -11
  29. package/dist/types/geneTrackCanvas.d.ts +0 -46
  30. package/dist/types/renderTheme.d.ts +0 -72
  31. package/dist/types/renderThemePresets.d.ts +0 -16
  32. package/dist/types/rulerRenderer.d.ts +0 -14
  33. package/dist/types/rulerTrackCanvas.d.ts +0 -32
  34. package/dist/types/src/bigwig/index.d.ts +0 -66
  35. package/dist/types/src/canvasProvider.d.ts +0 -36
  36. package/dist/types/src/commandDispatcher.d.ts +0 -220
  37. package/dist/types/src/contextMenu.d.ts +0 -64
  38. package/dist/types/src/contextMenuProvider.d.ts +0 -25
  39. package/dist/types/src/data/cachedSequence.d.ts +0 -19
  40. package/dist/types/src/data/ucscApi.d.ts +0 -21
  41. package/dist/types/src/data/ucscSequence.d.ts +0 -19
  42. package/dist/types/src/dataLifecycle.d.ts +0 -16
  43. package/dist/types/src/dataSources/bigWigDataSource.d.ts +0 -24
  44. package/dist/types/src/dataSources/dataSourceCacheKey.d.ts +0 -9
  45. package/dist/types/src/dataSources/featureSourceFactory.d.ts +0 -46
  46. package/dist/types/src/dataSources/geneDataSource.d.ts +0 -16
  47. package/dist/types/src/dataSources/gtxDataSource.d.ts +0 -42
  48. package/dist/types/src/dataSources/sequenceDataSource.d.ts +0 -15
  49. package/dist/types/src/dataSources/textFeatureSource.d.ts +0 -63
  50. package/dist/types/src/decode/bed.d.ts +0 -64
  51. package/dist/types/src/decode/bedpe.d.ts +0 -36
  52. package/dist/types/src/decode/exonUtils.d.ts +0 -29
  53. package/dist/types/src/decode/gff.d.ts +0 -58
  54. package/dist/types/src/decode/interact.d.ts +0 -19
  55. package/dist/types/src/decode/ucsc.d.ts +0 -56
  56. package/dist/types/src/events.d.ts +0 -23
  57. package/dist/types/src/export/canvas2svg.d.ts +0 -166
  58. package/dist/types/src/export/index.d.ts +0 -2
  59. package/dist/types/src/featureCache.d.ts +0 -69
  60. package/dist/types/src/formats/featureParser.d.ts +0 -72
  61. package/dist/types/src/formats/formatDetection.d.ts +0 -46
  62. package/dist/types/src/genome/chromAlias.d.ts +0 -46
  63. package/dist/types/src/genome/chromSizes.d.ts +0 -53
  64. package/dist/types/src/genome/genome.d.ts +0 -51
  65. package/dist/types/src/genomeBrowser.d.ts +0 -189
  66. package/dist/types/src/gtx/fetchCoordinator.d.ts +0 -34
  67. package/dist/types/src/gtx/gtxReader.d.ts +0 -144
  68. package/dist/types/src/gtx/index.d.ts +0 -40
  69. package/dist/types/src/gtx/zstdWasm.d.ts +0 -22
  70. package/dist/types/src/headlessGenomeBrowser.d.ts +0 -450
  71. package/dist/types/src/index.d.ts +0 -123
  72. package/dist/types/src/intervalTree.d.ts +0 -56
  73. package/dist/types/src/io/binaryParser.d.ts +0 -25
  74. package/dist/types/src/io/index.d.ts +0 -7
  75. package/dist/types/src/io/rangeReader.d.ts +0 -48
  76. package/dist/types/src/locusUtils.d.ts +0 -37
  77. package/dist/types/src/pack.d.ts +0 -41
  78. package/dist/types/src/popupProvider.d.ts +0 -22
  79. package/dist/types/src/remoteProtocol.d.ts +0 -81
  80. package/dist/types/src/roi/index.d.ts +0 -3
  81. package/dist/types/src/roi/roiRenderer.d.ts +0 -24
  82. package/dist/types/src/roi/roiSet.d.ts +0 -41
  83. package/dist/types/src/sequence/sequenceUtils.d.ts +0 -44
  84. package/dist/types/src/session.d.ts +0 -55
  85. package/dist/types/src/stateProjection.d.ts +0 -115
  86. package/dist/types/src/tabix/index.d.ts +0 -48
  87. package/dist/types/src/themes/index.d.ts +0 -3
  88. package/dist/types/src/themes/renderTheme.d.ts +0 -86
  89. package/dist/types/src/themes/renderThemePresets.d.ts +0 -16
  90. package/dist/types/src/trackRegistry.d.ts +0 -81
  91. package/dist/types/src/trackSelector.d.ts +0 -31
  92. package/dist/types/src/tracks/annotation/annotationRenderer.d.ts +0 -17
  93. package/dist/types/src/tracks/annotation/annotationThemes.d.ts +0 -11
  94. package/dist/types/src/tracks/annotation/annotationTrackCanvas.d.ts +0 -58
  95. package/dist/types/src/tracks/annotation/index.d.ts +0 -4
  96. package/dist/types/src/tracks/axis/axisRenderer.d.ts +0 -19
  97. package/dist/types/src/tracks/axis/index.d.ts +0 -1
  98. package/dist/types/src/tracks/baseTrackCanvas.d.ts +0 -113
  99. package/dist/types/src/tracks/dynseq/dynseqRenderer.d.ts +0 -38
  100. package/dist/types/src/tracks/dynseq/index.d.ts +0 -1
  101. package/dist/types/src/tracks/index.d.ts +0 -7
  102. package/dist/types/src/tracks/interaction/index.d.ts +0 -4
  103. package/dist/types/src/tracks/interaction/interactionRenderer.d.ts +0 -52
  104. package/dist/types/src/tracks/interaction/interactionTrackCanvas.d.ts +0 -54
  105. package/dist/types/src/tracks/ruler/index.d.ts +0 -3
  106. package/dist/types/src/tracks/ruler/rulerRenderer.d.ts +0 -25
  107. package/dist/types/src/tracks/ruler/rulerTrackCanvas.d.ts +0 -43
  108. package/dist/types/src/tracks/sequence/index.d.ts +0 -5
  109. package/dist/types/src/tracks/sequence/sequenceRenderer.d.ts +0 -34
  110. package/dist/types/src/tracks/sequence/sequenceThemes.d.ts +0 -11
  111. package/dist/types/src/tracks/sequence/sequenceTrackCanvas.d.ts +0 -67
  112. package/dist/types/src/tracks/wig/index.d.ts +0 -5
  113. package/dist/types/src/tracks/wig/wigRenderer.d.ts +0 -15
  114. package/dist/types/src/tracks/wig/wigSummary.d.ts +0 -31
  115. package/dist/types/src/tracks/wig/wigThemes.d.ts +0 -15
  116. package/dist/types/src/tracks/wig/wigTrackCanvas.d.ts +0 -82
  117. package/dist/types/src/types.d.ts +0 -885
  118. package/dist/types/src/ui/components/LoomBrowserShell.d.ts +0 -52
  119. package/dist/types/src/ui/components/LoomChromosomeSelect.d.ts +0 -18
  120. package/dist/types/src/ui/components/LoomContextMenu.d.ts +0 -39
  121. package/dist/types/src/ui/components/LoomExportControls.d.ts +0 -13
  122. package/dist/types/src/ui/components/LoomInputDialog.d.ts +0 -27
  123. package/dist/types/src/ui/components/LoomLocusInput.d.ts +0 -18
  124. package/dist/types/src/ui/components/LoomNavbar.d.ts +0 -15
  125. package/dist/types/src/ui/components/LoomPopup.d.ts +0 -32
  126. package/dist/types/src/ui/components/LoomWindowSize.d.ts +0 -14
  127. package/dist/types/src/ui/components/LoomZoomControls.d.ts +0 -10
  128. package/dist/types/src/ui/index.d.ts +0 -21
  129. package/dist/types/src/ui/themes.d.ts +0 -14
  130. package/dist/types/src/worker/nodeWorkerProvider.d.ts +0 -28
  131. package/dist/types/src/worker/taskHandler.d.ts +0 -15
  132. package/dist/types/src/worker/webWorkerProvider.d.ts +0 -51
  133. package/dist/types/src/worker/workerScript.d.ts +0 -11
  134. package/dist/types/src/workerProvider.d.ts +0 -76
  135. package/dist/types/tabix/bgzBlockLoader.d.ts +0 -60
  136. package/dist/types/tabix/bgzf.d.ts +0 -43
  137. package/dist/types/tabix/tabixIndex.d.ts +0 -85
  138. package/dist/types/tabix/tabixReader.d.ts +0 -60
  139. package/dist/types/tabix/virtualOffset.d.ts +0 -41
  140. package/dist/types/test/src/mockCanvasProvider.d.ts +0 -67
  141. package/dist/types/test/src/testBedDecode.d.ts +0 -1
  142. package/dist/types/test/src/testCanvas2SVG.d.ts +0 -7
  143. package/dist/types/test/src/testChromAlias.d.ts +0 -1
  144. package/dist/types/test/src/testCommandDispatcher.d.ts +0 -1
  145. package/dist/types/test/src/testData.d.ts +0 -7
  146. package/dist/types/test/src/testDataLifecycle.d.ts +0 -1
  147. package/dist/types/test/src/testDataSourceCacheKey.d.ts +0 -1
  148. package/dist/types/test/src/testDataSources.d.ts +0 -5
  149. package/dist/types/test/src/testDecodeUcsc.d.ts +0 -1
  150. package/dist/types/test/src/testEvents.d.ts +0 -1
  151. package/dist/types/test/src/testFeatureCache.d.ts +0 -1
  152. package/dist/types/test/src/testFeatureParser.d.ts +0 -1
  153. package/dist/types/test/src/testFormatDetection.d.ts +0 -1
  154. package/dist/types/test/src/testGffDecode.d.ts +0 -1
  155. package/dist/types/test/src/testHeadlessBrowser.d.ts +0 -1
  156. package/dist/types/test/src/testInteractionDecoder.d.ts +0 -1
  157. package/dist/types/test/src/testIntervalTree.d.ts +0 -1
  158. package/dist/types/test/src/testLocusUtils.d.ts +0 -1
  159. package/dist/types/test/src/testPack.d.ts +0 -1
  160. package/dist/types/test/src/testROI.d.ts +0 -1
  161. package/dist/types/test/src/testRemoteProtocol.d.ts +0 -1
  162. package/dist/types/test/src/testRenderTheme.d.ts +0 -1
  163. package/dist/types/test/src/testSVGExport.d.ts +0 -5
  164. package/dist/types/test/src/testSequence.d.ts +0 -1
  165. package/dist/types/test/src/testSession.d.ts +0 -1
  166. package/dist/types/test/src/testTrackSelector.d.ts +0 -1
  167. package/dist/types/test/src/testTrackSerialize.d.ts +0 -1
  168. package/dist/types/test/src/testWigSummary.d.ts +0 -1
  169. package/dist/types/test/src/testWorkerDispatch.d.ts +0 -9
  170. package/dist/types/tracks/gene/geneRenderer.d.ts +0 -17
  171. package/dist/types/tracks/gene/geneThemes.d.ts +0 -11
  172. package/dist/types/tracks/gene/geneTrackCanvas.d.ts +0 -58
  173. package/dist/types/tracks/gene/index.d.ts +0 -4
  174. package/dist/types/ui/components/IgvBrowserShell.d.ts +0 -52
  175. package/dist/types/ui/components/IgvChromosomeSelect.d.ts +0 -18
  176. package/dist/types/ui/components/IgvExportControls.d.ts +0 -13
  177. package/dist/types/ui/components/IgvLocusInput.d.ts +0 -18
  178. package/dist/types/ui/components/IgvNavbar.d.ts +0 -15
  179. package/dist/types/ui/components/IgvWindowSize.d.ts +0 -14
  180. package/dist/types/ui/components/IgvZoomControls.d.ts +0 -10
  181. package/dist/types/wigRenderer.d.ts +0 -15
  182. package/dist/types/wigSummary.d.ts +0 -31
  183. package/dist/types/wigThemes.d.ts +0 -15
  184. package/dist/types/wigTrackCanvas.d.ts +0 -46
  185. package/dist/types/worker/decodeWig.d.ts +0 -20
package/dist/igv.d.ts DELETED
@@ -1,667 +0,0 @@
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;