@jbrowse/plugin-data-management 2.7.2 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AddTrackWidget/model.d.ts +81 -0
- package/dist/AddTrackWidget/model.js +81 -0
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -1
- package/dist/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +11 -53
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +5 -7
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +12 -11
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +5 -7
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +11 -8
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -11
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +9 -7
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +40 -135
- package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +12 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +57 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +6 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +42 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +71 -46
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +5 -34
- package/dist/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +8 -3
- package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +6 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +42 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +7 -6
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +9 -28
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +12 -0
- package/dist/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +50 -0
- package/dist/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
- package/dist/HierarchicalTrackSelectorWidget/components/util.js +5 -1
- package/dist/HierarchicalTrackSelectorWidget/facetedModel.d.ts +128 -0
- package/dist/HierarchicalTrackSelectorWidget/facetedModel.js +206 -0
- package/dist/HierarchicalTrackSelectorWidget/facetedUtil.d.ts +2 -0
- package/dist/HierarchicalTrackSelectorWidget/{components/faceted/util.js → facetedUtil.js} +5 -1
- package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +17 -5
- package/dist/HierarchicalTrackSelectorWidget/generateHierarchy.js +27 -21
- package/dist/HierarchicalTrackSelectorWidget/model.d.ts +196 -17
- package/dist/HierarchicalTrackSelectorWidget/model.js +178 -23
- package/dist/ucsc-trackhub/doConnect.d.ts +1 -0
- package/dist/ucsc-trackhub/doConnect.js +131 -0
- package/dist/ucsc-trackhub/model.d.ts +19 -2
- package/dist/ucsc-trackhub/model.js +16 -71
- package/dist/ucsc-trackhub/ucscTrackHub.d.ts +161 -4
- package/dist/ucsc-trackhub/ucscTrackHub.js +49 -166
- package/esm/AddTrackWidget/model.d.ts +81 -0
- package/esm/AddTrackWidget/model.js +81 -0
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.d.ts +1 -1
- package/esm/HierarchicalTrackSelectorWidget/components/ShoppingCart.js +12 -31
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.d.ts +5 -7
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilter.js +13 -11
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.d.ts +5 -7
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetFilters.js +12 -8
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.d.ts +1 -11
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedHeader.js +9 -7
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/FacetedSelector.js +41 -113
- package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.d.ts +12 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/DropdownTrackSelector.js +29 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.d.ts +6 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/FavoriteTracks.js +37 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HamburgerMenu.js +71 -46
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalHeader.js +6 -12
- package/esm/HierarchicalTrackSelectorWidget/components/tree/HierarchicalTree.js +8 -3
- package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.d.ts +6 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/RecentlyUsedTracks.js +37 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackCategory.js +7 -6
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabel.js +8 -27
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.d.ts +12 -0
- package/esm/HierarchicalTrackSelectorWidget/components/tree/TrackLabelMenu.js +45 -0
- package/esm/HierarchicalTrackSelectorWidget/components/util.d.ts +3 -0
- package/esm/HierarchicalTrackSelectorWidget/components/util.js +5 -1
- package/esm/HierarchicalTrackSelectorWidget/facetedModel.d.ts +128 -0
- package/esm/HierarchicalTrackSelectorWidget/facetedModel.js +202 -0
- package/esm/HierarchicalTrackSelectorWidget/facetedUtil.d.ts +2 -0
- package/esm/HierarchicalTrackSelectorWidget/{components/faceted/util.js → facetedUtil.js} +3 -0
- package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.d.ts +17 -5
- package/esm/HierarchicalTrackSelectorWidget/generateHierarchy.js +27 -21
- package/esm/HierarchicalTrackSelectorWidget/model.d.ts +196 -17
- package/esm/HierarchicalTrackSelectorWidget/model.js +180 -25
- package/esm/ucsc-trackhub/doConnect.d.ts +1 -0
- package/esm/ucsc-trackhub/doConnect.js +127 -0
- package/esm/ucsc-trackhub/model.d.ts +19 -2
- package/esm/ucsc-trackhub/model.js +17 -72
- package/esm/ucsc-trackhub/ucscTrackHub.d.ts +161 -4
- package/esm/ucsc-trackhub/ucscTrackHub.js +48 -141
- package/package.json +3 -3
- package/dist/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +0 -1
- package/esm/HierarchicalTrackSelectorWidget/components/faceted/util.d.ts +0 -1
|
@@ -1,61 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.ucscAssemblies = exports.generateTracks = exports.makeLoc2 = exports.makeLocAlt = exports.makeLoc = exports.fetchTrackDbFile = exports.fetchGenomesFile =
|
|
6
|
+
exports.ucscAssemblies = exports.generateTracks = exports.makeLoc2 = exports.makeLocAlt = exports.makeLoc = exports.fetchTrackDbFile = exports.fetchGenomesFile = void 0;
|
|
7
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
30
8
|
const util_1 = require("@jbrowse/core/util");
|
|
31
9
|
const io_1 = require("@jbrowse/core/util/io");
|
|
32
10
|
const tracks_1 = require("@jbrowse/core/util/tracks");
|
|
33
|
-
|
|
34
|
-
try {
|
|
35
|
-
const hubFileText = await (0, io_1.openLocation)(hubLocation).readFile('utf8');
|
|
36
|
-
const { HubFile } = await Promise.resolve().then(() => __importStar(require('@gmod/ucsc-hub')));
|
|
37
|
-
return new HubFile(hubFileText);
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
throw new Error(`Not a valid hub.txt file, got error: '${error}'`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.fetchHubFile = fetchHubFile;
|
|
11
|
+
const ucsc_hub_1 = require("@gmod/ucsc-hub");
|
|
44
12
|
async function fetchGenomesFile(genomesLoc) {
|
|
45
13
|
const genomesFileText = await (0, io_1.openLocation)(genomesLoc).readFile('utf8');
|
|
46
|
-
|
|
47
|
-
return new GenomesFile(genomesFileText);
|
|
14
|
+
return new ucsc_hub_1.GenomesFile(genomesFileText);
|
|
48
15
|
}
|
|
49
16
|
exports.fetchGenomesFile = fetchGenomesFile;
|
|
50
17
|
async function fetchTrackDbFile(trackDbLoc) {
|
|
51
18
|
const text = await (0, io_1.openLocation)(trackDbLoc).readFile('utf8');
|
|
52
|
-
|
|
53
|
-
return new TrackDbFile(text);
|
|
19
|
+
return new ucsc_hub_1.TrackDbFile(text);
|
|
54
20
|
}
|
|
55
21
|
exports.fetchTrackDbFile = fetchTrackDbFile;
|
|
56
22
|
function makeLoc(first, base) {
|
|
57
23
|
return {
|
|
58
|
-
uri: new URL(first, base.uri).href,
|
|
24
|
+
uri: new URL(first, new URL(base.uri, base.baseUri)).href,
|
|
59
25
|
locationType: 'UriLocation',
|
|
60
26
|
};
|
|
61
27
|
}
|
|
@@ -76,11 +42,11 @@ function makeLoc2(first, alt) {
|
|
|
76
42
|
};
|
|
77
43
|
}
|
|
78
44
|
exports.makeLoc2 = makeLoc2;
|
|
79
|
-
function generateTracks(trackDb, trackDbLoc, assemblyName, sequenceAdapter) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const trackKeys =
|
|
45
|
+
function generateTracks({ trackDb, trackDbLoc, assemblyName, sequenceAdapter, }) {
|
|
46
|
+
return Object.entries(trackDb.data)
|
|
47
|
+
.map(([trackName, track]) => {
|
|
48
|
+
var _a;
|
|
49
|
+
const trackKeys = Object.keys(track);
|
|
84
50
|
const parentTrackKeys = new Set([
|
|
85
51
|
'superTrack',
|
|
86
52
|
'compositeTrack',
|
|
@@ -88,42 +54,45 @@ function generateTracks(trackDb, trackDbLoc, assemblyName, sequenceAdapter) {
|
|
|
88
54
|
'view',
|
|
89
55
|
]);
|
|
90
56
|
if (trackKeys.some(key => parentTrackKeys.has(key))) {
|
|
91
|
-
|
|
57
|
+
return undefined;
|
|
92
58
|
}
|
|
93
59
|
const parentTracks = [];
|
|
94
60
|
let currentTrackName = trackName;
|
|
95
61
|
do {
|
|
96
|
-
currentTrackName = ((_a = trackDb.
|
|
62
|
+
currentTrackName = ((_a = trackDb.data[currentTrackName]) === null || _a === void 0 ? void 0 : _a.data.parent) || '';
|
|
97
63
|
if (currentTrackName) {
|
|
98
64
|
;
|
|
99
65
|
[currentTrackName] = currentTrackName.split(' ');
|
|
100
|
-
parentTracks.push(trackDb.
|
|
66
|
+
parentTracks.push(trackDb.data[currentTrackName]);
|
|
101
67
|
}
|
|
102
68
|
} while (currentTrackName);
|
|
103
69
|
parentTracks.reverse();
|
|
104
70
|
const categories = parentTracks
|
|
105
|
-
.map(p => p === null || p === void 0 ? void 0 : p.
|
|
71
|
+
.map(p => p === null || p === void 0 ? void 0 : p.data.shortLabel)
|
|
106
72
|
.filter((f) => !!f);
|
|
107
|
-
const res = makeTrackConfig(
|
|
108
|
-
|
|
73
|
+
const res = makeTrackConfig({
|
|
74
|
+
track: track,
|
|
75
|
+
categories,
|
|
76
|
+
trackDbLoc,
|
|
77
|
+
trackDb,
|
|
78
|
+
sequenceAdapter,
|
|
79
|
+
});
|
|
80
|
+
return {
|
|
109
81
|
...res,
|
|
110
82
|
trackId: `ucsc-trackhub-${(0, util_1.objectHash)(res)}`,
|
|
111
83
|
assemblyNames: [assemblyName],
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
84
|
+
};
|
|
85
|
+
})
|
|
86
|
+
.filter(util_1.notEmpty);
|
|
115
87
|
}
|
|
116
88
|
exports.generateTracks = generateTracks;
|
|
117
|
-
function makeTrackConfig(track, categories, trackDbLoc, trackDb, sequenceAdapter) {
|
|
89
|
+
function makeTrackConfig({ track, categories, trackDbLoc, trackDb, sequenceAdapter, }) {
|
|
118
90
|
var _a;
|
|
119
|
-
|
|
120
|
-
const name = track.
|
|
121
|
-
const bigDataUrl = track.
|
|
122
|
-
const bigDataIdx = track.
|
|
91
|
+
const trackType = track.data.type || ((_a = trackDb.data[track.data.parent || '']) === null || _a === void 0 ? void 0 : _a.data.type) || '';
|
|
92
|
+
const name = track.data.shortLabel || '';
|
|
93
|
+
const bigDataUrl = track.data.bigDataUrl || '';
|
|
94
|
+
const bigDataIdx = track.data.bigDataIndex || '';
|
|
123
95
|
const isUri = (0, util_1.isUriLocation)(trackDbLoc);
|
|
124
|
-
if (!trackType) {
|
|
125
|
-
trackType = (_a = trackDb.get(track.get('parent') || '')) === null || _a === void 0 ? void 0 : _a.get('type');
|
|
126
|
-
}
|
|
127
96
|
let baseTrackType = (trackType === null || trackType === void 0 ? void 0 : trackType.split(' ')[0]) || '';
|
|
128
97
|
if (baseTrackType === 'bam' && bigDataUrl.toLowerCase().endsWith('cram')) {
|
|
129
98
|
baseTrackType = 'cram';
|
|
@@ -135,8 +104,8 @@ function makeTrackConfig(track, categories, trackDbLoc, trackDb, sequenceAdapter
|
|
|
135
104
|
case 'bam':
|
|
136
105
|
return {
|
|
137
106
|
type: 'AlignmentsTrack',
|
|
138
|
-
name: track.
|
|
139
|
-
description: track.
|
|
107
|
+
name: track.data.longLabel,
|
|
108
|
+
description: track.data.longLabel,
|
|
140
109
|
category: categories,
|
|
141
110
|
adapter: {
|
|
142
111
|
type: 'BamAdapter',
|
|
@@ -148,142 +117,55 @@ function makeTrackConfig(track, categories, trackDbLoc, trackDb, sequenceAdapter
|
|
|
148
117
|
},
|
|
149
118
|
},
|
|
150
119
|
};
|
|
151
|
-
case '
|
|
120
|
+
case 'cram':
|
|
152
121
|
return {
|
|
153
|
-
type: '
|
|
122
|
+
type: 'AlignmentsTrack',
|
|
154
123
|
name,
|
|
155
|
-
description: track.
|
|
124
|
+
description: track.data.longLabel,
|
|
156
125
|
category: categories,
|
|
157
126
|
adapter: {
|
|
158
|
-
type: '
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
127
|
+
type: 'CramAdapter',
|
|
128
|
+
cramLocation: bigDataLocation,
|
|
129
|
+
craiLocation: isUri
|
|
130
|
+
? makeLocAlt(bigDataIdx, bigDataUrl + '.crai', trackDbLoc)
|
|
131
|
+
: makeLoc2(bigDataIdx, bigDataUrl + '.crai'),
|
|
132
|
+
sequenceAdapter,
|
|
163
133
|
},
|
|
164
134
|
};
|
|
135
|
+
case 'bigBarChart':
|
|
165
136
|
case 'bigBed':
|
|
166
|
-
return {
|
|
167
|
-
type: 'FeatureTrack',
|
|
168
|
-
name,
|
|
169
|
-
description: track.get('longLabel'),
|
|
170
|
-
category: categories,
|
|
171
|
-
adapter: {
|
|
172
|
-
type: 'BigBedAdapter',
|
|
173
|
-
bigBedLocation: bigDataLocation,
|
|
174
|
-
},
|
|
175
|
-
};
|
|
176
137
|
case 'bigGenePred':
|
|
177
|
-
return {
|
|
178
|
-
type: 'FeatureTrack',
|
|
179
|
-
name,
|
|
180
|
-
description: track.get('longLabel'),
|
|
181
|
-
category: categories,
|
|
182
|
-
adapter: {
|
|
183
|
-
type: 'BigBedAdapter',
|
|
184
|
-
bigBedLocation: bigDataLocation,
|
|
185
|
-
},
|
|
186
|
-
};
|
|
187
138
|
case 'bigChain':
|
|
188
|
-
return {
|
|
189
|
-
type: 'FeatureTrack',
|
|
190
|
-
name,
|
|
191
|
-
description: track.get('longLabel'),
|
|
192
|
-
category: categories,
|
|
193
|
-
adapter: {
|
|
194
|
-
type: 'BigBedAdapter',
|
|
195
|
-
bigBedLocation: bigDataLocation,
|
|
196
|
-
},
|
|
197
|
-
renderer: {
|
|
198
|
-
type: 'SvgFeatureRenderer',
|
|
199
|
-
},
|
|
200
|
-
};
|
|
201
139
|
case 'bigInteract':
|
|
202
|
-
return {
|
|
203
|
-
type: 'FeatureTrack',
|
|
204
|
-
name,
|
|
205
|
-
description: track.get('longLabel'),
|
|
206
|
-
category: categories,
|
|
207
|
-
adapter: {
|
|
208
|
-
type: 'BigBedAdapter',
|
|
209
|
-
bigBedLocation: bigDataLocation,
|
|
210
|
-
},
|
|
211
|
-
renderer: {
|
|
212
|
-
type: 'SvgFeatureRenderer',
|
|
213
|
-
},
|
|
214
|
-
};
|
|
215
140
|
case 'bigMaf':
|
|
216
|
-
|
|
217
|
-
type: 'FeatureTrack',
|
|
218
|
-
name,
|
|
219
|
-
description: track.get('longLabel'),
|
|
220
|
-
category: categories,
|
|
221
|
-
adapter: {
|
|
222
|
-
type: 'BigBedAdapter',
|
|
223
|
-
bigBedLocation: bigDataLocation,
|
|
224
|
-
},
|
|
225
|
-
renderer: {
|
|
226
|
-
type: 'SvgFeatureRenderer',
|
|
227
|
-
},
|
|
228
|
-
};
|
|
141
|
+
case 'bigNarrowPeak':
|
|
229
142
|
case 'bigPsl':
|
|
230
143
|
return {
|
|
231
144
|
type: 'FeatureTrack',
|
|
232
145
|
name,
|
|
233
|
-
description: track.
|
|
146
|
+
description: track.data.longLabel,
|
|
234
147
|
category: categories,
|
|
235
148
|
adapter: {
|
|
236
149
|
type: 'BigBedAdapter',
|
|
237
150
|
bigBedLocation: bigDataLocation,
|
|
238
151
|
},
|
|
239
|
-
renderer: {
|
|
240
|
-
type: 'SvgFeatureRenderer',
|
|
241
|
-
},
|
|
242
152
|
};
|
|
243
153
|
case 'bigWig':
|
|
244
154
|
return {
|
|
245
155
|
type: 'QuantitativeTrack',
|
|
246
156
|
name,
|
|
247
|
-
description: track.
|
|
157
|
+
description: track.data.longLabel,
|
|
248
158
|
category: categories,
|
|
249
159
|
adapter: {
|
|
250
160
|
type: 'BigWigAdapter',
|
|
251
161
|
bigWigLocation: bigDataLocation,
|
|
252
162
|
},
|
|
253
163
|
};
|
|
254
|
-
case 'cram':
|
|
255
|
-
return {
|
|
256
|
-
type: 'AlignmentsTrack',
|
|
257
|
-
name,
|
|
258
|
-
description: track.get('longLabel'),
|
|
259
|
-
category: categories,
|
|
260
|
-
adapter: {
|
|
261
|
-
type: 'CramAdapter',
|
|
262
|
-
cramLocation: bigDataLocation,
|
|
263
|
-
craiLocation: isUri
|
|
264
|
-
? makeLocAlt(bigDataIdx, bigDataUrl + '.crai', trackDbLoc)
|
|
265
|
-
: makeLoc2(bigDataIdx, bigDataUrl + '.crai'),
|
|
266
|
-
sequenceAdapter,
|
|
267
|
-
},
|
|
268
|
-
};
|
|
269
|
-
case 'bigNarrowPeak':
|
|
270
|
-
return {
|
|
271
|
-
type: 'FeatureTrack',
|
|
272
|
-
name,
|
|
273
|
-
description: track.get('longLabel'),
|
|
274
|
-
category: categories,
|
|
275
|
-
adapter: {
|
|
276
|
-
type: 'BigBedAdapter',
|
|
277
|
-
bigBedLocation: bigDataLocation,
|
|
278
|
-
},
|
|
279
|
-
};
|
|
280
|
-
case 'peptideMapping':
|
|
281
|
-
return (0, tracks_1.generateUnsupportedTrackConf)(name, baseTrackType, categories);
|
|
282
164
|
case 'vcfTabix':
|
|
283
165
|
return {
|
|
284
166
|
type: 'VariantTrack',
|
|
285
167
|
name,
|
|
286
|
-
description: track.
|
|
168
|
+
description: track.data.longLabel,
|
|
287
169
|
category: categories,
|
|
288
170
|
adapter: {
|
|
289
171
|
type: 'VcfTabixAdapter',
|
|
@@ -299,7 +181,7 @@ function makeTrackConfig(track, categories, trackDbLoc, trackDb, sequenceAdapter
|
|
|
299
181
|
return {
|
|
300
182
|
type: 'HicTrack',
|
|
301
183
|
name,
|
|
302
|
-
description: track.
|
|
184
|
+
description: track.data.longLabel,
|
|
303
185
|
category: categories,
|
|
304
186
|
adapter: {
|
|
305
187
|
type: 'HicAdapter',
|
|
@@ -307,6 +189,7 @@ function makeTrackConfig(track, categories, trackDbLoc, trackDb, sequenceAdapter
|
|
|
307
189
|
},
|
|
308
190
|
};
|
|
309
191
|
// unsupported types
|
|
192
|
+
// case 'peptideMapping':
|
|
310
193
|
// case 'gvf':
|
|
311
194
|
// case 'ld2':
|
|
312
195
|
// case 'narrowPeak':
|
|
@@ -5,9 +5,21 @@ interface IndexingAttr {
|
|
|
5
5
|
attributes: string[];
|
|
6
6
|
exclude: string[];
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* #stateModel AddTrackModel
|
|
10
|
+
*/
|
|
8
11
|
export default function f(pluginManager: PluginManager): import("mobx-state-tree").IModelType<{
|
|
12
|
+
/**
|
|
13
|
+
* #property
|
|
14
|
+
*/
|
|
9
15
|
id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
|
|
16
|
+
/**
|
|
17
|
+
* #property
|
|
18
|
+
*/
|
|
10
19
|
type: import("mobx-state-tree").ISimpleType<"AddTrackWidget">;
|
|
20
|
+
/**
|
|
21
|
+
* #property
|
|
22
|
+
*/
|
|
11
23
|
view: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IReferenceType<import("mobx-state-tree").IAnyType>>;
|
|
12
24
|
}, {
|
|
13
25
|
trackSource: string;
|
|
@@ -20,30 +32,99 @@ export default function f(pluginManager: PluginManager): import("mobx-state-tree
|
|
|
20
32
|
textIndexTrack: boolean;
|
|
21
33
|
textIndexingConf: IndexingAttr | undefined;
|
|
22
34
|
} & {
|
|
35
|
+
/**
|
|
36
|
+
* #action
|
|
37
|
+
*/
|
|
23
38
|
setAdapterHint(obj: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* #action
|
|
41
|
+
*/
|
|
24
42
|
setTrackSource(str: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* #action
|
|
45
|
+
*/
|
|
25
46
|
setTextIndexingConf(conf: IndexingAttr): void;
|
|
47
|
+
/**
|
|
48
|
+
* #action
|
|
49
|
+
*/
|
|
26
50
|
setTextIndexTrack(flag: boolean): void;
|
|
51
|
+
/**
|
|
52
|
+
* #action
|
|
53
|
+
*/
|
|
27
54
|
setTrackData(obj: FileLocation): void;
|
|
55
|
+
/**
|
|
56
|
+
* #action
|
|
57
|
+
*/
|
|
28
58
|
setIndexTrackData(obj: FileLocation): void;
|
|
59
|
+
/**
|
|
60
|
+
* #action
|
|
61
|
+
*/
|
|
29
62
|
setAssembly(str: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* #action
|
|
65
|
+
*/
|
|
30
66
|
setTrackName(str: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* #action
|
|
69
|
+
*/
|
|
31
70
|
setTrackType(str: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* #action
|
|
73
|
+
*/
|
|
32
74
|
clearData(): void;
|
|
33
75
|
} & {
|
|
76
|
+
/**
|
|
77
|
+
* #getter
|
|
78
|
+
*/
|
|
34
79
|
readonly trackAdapter: import("@jbrowse/core/util/tracks").AdapterConfig | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* #getter
|
|
82
|
+
*/
|
|
35
83
|
readonly trackName: string;
|
|
84
|
+
/**
|
|
85
|
+
* #getter
|
|
86
|
+
*/
|
|
36
87
|
readonly isFtp: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* #getter
|
|
90
|
+
*/
|
|
37
91
|
readonly isRelativeTrackUrl: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* #getter
|
|
94
|
+
*/
|
|
38
95
|
readonly isRelativeIndexUrl: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* #getter
|
|
98
|
+
*/
|
|
39
99
|
readonly isRelativeUrl: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* #getter
|
|
102
|
+
*/
|
|
40
103
|
readonly trackHttp: any;
|
|
104
|
+
/**
|
|
105
|
+
* #getter
|
|
106
|
+
*/
|
|
41
107
|
readonly indexHttp: any;
|
|
108
|
+
/**
|
|
109
|
+
* #getter
|
|
110
|
+
*/
|
|
42
111
|
readonly wrongProtocol: any;
|
|
112
|
+
/**
|
|
113
|
+
* #getter
|
|
114
|
+
*/
|
|
43
115
|
readonly unsupported: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* #getter
|
|
118
|
+
*/
|
|
44
119
|
readonly assembly: any;
|
|
120
|
+
/**
|
|
121
|
+
* #getter
|
|
122
|
+
*/
|
|
45
123
|
readonly trackType: string;
|
|
46
124
|
} & {
|
|
125
|
+
/**
|
|
126
|
+
* #getter
|
|
127
|
+
*/
|
|
47
128
|
readonly warningMessage: "" | "Warning: JBrowse cannot access files using the ftp protocol" | "Warning: one or more of your files do not provide the protocol e.g.\n https://, please provide an absolute URL unless you are sure a\n relative URL is intended." | "Warning: You entered a http:// resources but we cannot access HTTP\n resources from JBrowse when it is running on https. Please use an\n https URL for your track, or access the JBrowse app from the http\n protocol";
|
|
48
129
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
49
130
|
export type AddTrackStateModel = ReturnType<typeof f>;
|
|
@@ -10,11 +10,23 @@ function isAbsoluteUrl(url = '') {
|
|
|
10
10
|
return url.startsWith('/');
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* #stateModel AddTrackModel
|
|
15
|
+
*/
|
|
13
16
|
export default function f(pluginManager) {
|
|
14
17
|
return types
|
|
15
18
|
.model('AddTrackModel', {
|
|
19
|
+
/**
|
|
20
|
+
* #property
|
|
21
|
+
*/
|
|
16
22
|
id: ElementId,
|
|
23
|
+
/**
|
|
24
|
+
* #property
|
|
25
|
+
*/
|
|
17
26
|
type: types.literal('AddTrackWidget'),
|
|
27
|
+
/**
|
|
28
|
+
* #property
|
|
29
|
+
*/
|
|
18
30
|
view: types.safeReference(pluginManager.pluggableMstType('view', 'stateModel')),
|
|
19
31
|
})
|
|
20
32
|
.volatile(() => ({
|
|
@@ -30,33 +42,63 @@ export default function f(pluginManager) {
|
|
|
30
42
|
textIndexingConf: undefined,
|
|
31
43
|
}))
|
|
32
44
|
.actions(self => ({
|
|
45
|
+
/**
|
|
46
|
+
* #action
|
|
47
|
+
*/
|
|
33
48
|
setAdapterHint(obj) {
|
|
34
49
|
self.adapterHint = obj;
|
|
35
50
|
},
|
|
51
|
+
/**
|
|
52
|
+
* #action
|
|
53
|
+
*/
|
|
36
54
|
setTrackSource(str) {
|
|
37
55
|
self.trackSource = str;
|
|
38
56
|
},
|
|
57
|
+
/**
|
|
58
|
+
* #action
|
|
59
|
+
*/
|
|
39
60
|
setTextIndexingConf(conf) {
|
|
40
61
|
self.textIndexingConf = conf;
|
|
41
62
|
},
|
|
63
|
+
/**
|
|
64
|
+
* #action
|
|
65
|
+
*/
|
|
42
66
|
setTextIndexTrack(flag) {
|
|
43
67
|
self.textIndexTrack = flag;
|
|
44
68
|
},
|
|
69
|
+
/**
|
|
70
|
+
* #action
|
|
71
|
+
*/
|
|
45
72
|
setTrackData(obj) {
|
|
46
73
|
self.trackData = obj;
|
|
47
74
|
},
|
|
75
|
+
/**
|
|
76
|
+
* #action
|
|
77
|
+
*/
|
|
48
78
|
setIndexTrackData(obj) {
|
|
49
79
|
self.indexTrackData = obj;
|
|
50
80
|
},
|
|
81
|
+
/**
|
|
82
|
+
* #action
|
|
83
|
+
*/
|
|
51
84
|
setAssembly(str) {
|
|
52
85
|
self.altAssemblyName = str;
|
|
53
86
|
},
|
|
87
|
+
/**
|
|
88
|
+
* #action
|
|
89
|
+
*/
|
|
54
90
|
setTrackName(str) {
|
|
55
91
|
self.altTrackName = str;
|
|
56
92
|
},
|
|
93
|
+
/**
|
|
94
|
+
* #action
|
|
95
|
+
*/
|
|
57
96
|
setTrackType(str) {
|
|
58
97
|
self.altTrackType = str;
|
|
59
98
|
},
|
|
99
|
+
/**
|
|
100
|
+
* #action
|
|
101
|
+
*/
|
|
60
102
|
clearData() {
|
|
61
103
|
self.trackSource = '';
|
|
62
104
|
self.altTrackName = '';
|
|
@@ -70,16 +112,25 @@ export default function f(pluginManager) {
|
|
|
70
112
|
},
|
|
71
113
|
}))
|
|
72
114
|
.views(self => ({
|
|
115
|
+
/**
|
|
116
|
+
* #getter
|
|
117
|
+
*/
|
|
73
118
|
get trackAdapter() {
|
|
74
119
|
const { trackData, indexTrackData, adapterHint } = self;
|
|
75
120
|
return trackData
|
|
76
121
|
? guessAdapter(trackData, indexTrackData, adapterHint, self)
|
|
77
122
|
: undefined;
|
|
78
123
|
},
|
|
124
|
+
/**
|
|
125
|
+
* #getter
|
|
126
|
+
*/
|
|
79
127
|
get trackName() {
|
|
80
128
|
return (self.altTrackName ||
|
|
81
129
|
(self.trackData ? getFileName(self.trackData) : ''));
|
|
82
130
|
},
|
|
131
|
+
/**
|
|
132
|
+
* #getter
|
|
133
|
+
*/
|
|
83
134
|
get isFtp() {
|
|
84
135
|
var _a, _b;
|
|
85
136
|
const { trackData: track, indexTrackData: index } = self;
|
|
@@ -87,43 +138,70 @@ export default function f(pluginManager) {
|
|
|
87
138
|
// @ts-expect-error
|
|
88
139
|
(((_a = index === null || index === void 0 ? void 0 : index.uri) === null || _a === void 0 ? void 0 : _a.startsWith('ftp://')) || ((_b = track === null || track === void 0 ? void 0 : track.uri) === null || _b === void 0 ? void 0 : _b.startsWith('ftp://'))));
|
|
89
140
|
},
|
|
141
|
+
/**
|
|
142
|
+
* #getter
|
|
143
|
+
*/
|
|
90
144
|
get isRelativeTrackUrl() {
|
|
91
145
|
var _a;
|
|
92
146
|
// @ts-expect-error
|
|
93
147
|
const uri = (_a = self.trackData) === null || _a === void 0 ? void 0 : _a.uri;
|
|
94
148
|
return uri ? !isAbsoluteUrl(uri) : false;
|
|
95
149
|
},
|
|
150
|
+
/**
|
|
151
|
+
* #getter
|
|
152
|
+
*/
|
|
96
153
|
get isRelativeIndexUrl() {
|
|
97
154
|
var _a;
|
|
98
155
|
// @ts-expect-error
|
|
99
156
|
const uri = (_a = self.indexTrackData) === null || _a === void 0 ? void 0 : _a.uri;
|
|
100
157
|
return uri ? !isAbsoluteUrl(uri) : false;
|
|
101
158
|
},
|
|
159
|
+
/**
|
|
160
|
+
* #getter
|
|
161
|
+
*/
|
|
102
162
|
get isRelativeUrl() {
|
|
103
163
|
return this.isRelativeIndexUrl || this.isRelativeTrackUrl;
|
|
104
164
|
},
|
|
165
|
+
/**
|
|
166
|
+
* #getter
|
|
167
|
+
*/
|
|
105
168
|
get trackHttp() {
|
|
106
169
|
var _a, _b;
|
|
107
170
|
// @ts-expect-error
|
|
108
171
|
return (_b = (_a = self.trackData) === null || _a === void 0 ? void 0 : _a.uri) === null || _b === void 0 ? void 0 : _b.startsWith('http://');
|
|
109
172
|
},
|
|
173
|
+
/**
|
|
174
|
+
* #getter
|
|
175
|
+
*/
|
|
110
176
|
get indexHttp() {
|
|
111
177
|
var _a, _b;
|
|
112
178
|
// @ts-expect-error
|
|
113
179
|
return (_b = (_a = self.indexTrackData) === null || _a === void 0 ? void 0 : _a.uri) === null || _b === void 0 ? void 0 : _b.startsWith('http://');
|
|
114
180
|
},
|
|
181
|
+
/**
|
|
182
|
+
* #getter
|
|
183
|
+
*/
|
|
115
184
|
get wrongProtocol() {
|
|
116
185
|
return (window.location.protocol === 'https:' &&
|
|
117
186
|
(this.trackHttp || this.indexHttp));
|
|
118
187
|
},
|
|
188
|
+
/**
|
|
189
|
+
* #getter
|
|
190
|
+
*/
|
|
119
191
|
get unsupported() {
|
|
120
192
|
var _a;
|
|
121
193
|
return ((_a = this.trackAdapter) === null || _a === void 0 ? void 0 : _a.type) === UNSUPPORTED;
|
|
122
194
|
},
|
|
195
|
+
/**
|
|
196
|
+
* #getter
|
|
197
|
+
*/
|
|
123
198
|
get assembly() {
|
|
124
199
|
var _a;
|
|
125
200
|
return self.altAssemblyName || ((_a = self.view.assemblyNames) === null || _a === void 0 ? void 0 : _a[0]);
|
|
126
201
|
},
|
|
202
|
+
/**
|
|
203
|
+
* #getter
|
|
204
|
+
*/
|
|
127
205
|
get trackType() {
|
|
128
206
|
return (self.altTrackType ||
|
|
129
207
|
(this.trackAdapter
|
|
@@ -132,6 +210,9 @@ export default function f(pluginManager) {
|
|
|
132
210
|
},
|
|
133
211
|
}))
|
|
134
212
|
.views(self => ({
|
|
213
|
+
/**
|
|
214
|
+
* #getter
|
|
215
|
+
*/
|
|
135
216
|
get warningMessage() {
|
|
136
217
|
if (self.isFtp) {
|
|
137
218
|
return `Warning: JBrowse cannot access files using the ftp protocol`;
|