jbrowse-plugin-mafviewer 1.0.6 → 1.0.8
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/README.md +17 -2
- package/dist/BigMafAdapter/BigMafAdapter.d.ts +17 -0
- package/dist/BigMafAdapter/BigMafAdapter.js +92 -0
- package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -0
- package/dist/BigMafAdapter/configSchema.d.ts +21 -0
- package/dist/BigMafAdapter/configSchema.js +28 -0
- package/dist/BigMafAdapter/configSchema.js.map +1 -0
- package/dist/BigMafAdapter/index.d.ts +2 -0
- package/dist/BigMafAdapter/index.js +11 -0
- package/dist/BigMafAdapter/index.js.map +1 -0
- package/dist/LinearMafDisplay/components/ColorLegend.d.ts +8 -0
- package/dist/LinearMafDisplay/components/ColorLegend.js +15 -0
- package/dist/LinearMafDisplay/components/ColorLegend.js.map +1 -0
- package/dist/LinearMafDisplay/components/ReactComponent.d.ts +6 -0
- package/dist/LinearMafDisplay/components/ReactComponent.js +15 -0
- package/dist/LinearMafDisplay/components/ReactComponent.js.map +1 -0
- package/dist/LinearMafDisplay/components/RectBg.d.ts +9 -0
- package/dist/LinearMafDisplay/components/RectBg.js +7 -0
- package/dist/LinearMafDisplay/components/RectBg.js.map +1 -0
- package/dist/LinearMafDisplay/components/SetRowHeight.d.ts +11 -0
- package/dist/LinearMafDisplay/components/SetRowHeight.js +36 -0
- package/dist/LinearMafDisplay/components/SetRowHeight.js.map +1 -0
- package/dist/LinearMafDisplay/components/YScaleBars.d.ts +9 -0
- package/dist/LinearMafDisplay/components/YScaleBars.js +41 -0
- package/dist/LinearMafDisplay/components/YScaleBars.js.map +1 -0
- package/dist/LinearMafDisplay/configSchema.d.ts +34 -0
- package/dist/LinearMafDisplay/configSchema.js +15 -0
- package/dist/LinearMafDisplay/configSchema.js.map +1 -0
- package/dist/LinearMafDisplay/index.d.ts +2 -0
- package/dist/LinearMafDisplay/index.js +20 -0
- package/dist/LinearMafDisplay/index.js.map +1 -0
- package/dist/LinearMafDisplay/renderSvg.d.ts +4 -0
- package/dist/LinearMafDisplay/renderSvg.js +17 -0
- package/dist/LinearMafDisplay/renderSvg.js.map +1 -0
- package/dist/LinearMafDisplay/stateModel.d.ts +364 -0
- package/dist/LinearMafDisplay/stateModel.js +176 -0
- package/dist/LinearMafDisplay/stateModel.js.map +1 -0
- package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +45 -0
- package/dist/LinearMafRenderer/LinearMafRenderer.js +181 -0
- package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -0
- package/dist/LinearMafRenderer/components/ReactComponent.d.ts +6 -0
- package/dist/LinearMafRenderer/components/ReactComponent.js +8 -0
- package/dist/LinearMafRenderer/components/ReactComponent.js.map +1 -0
- package/dist/LinearMafRenderer/configSchema.d.ts +2 -0
- package/dist/LinearMafRenderer/configSchema.js +13 -0
- package/dist/LinearMafRenderer/configSchema.js.map +1 -0
- package/dist/LinearMafRenderer/index.d.ts +2 -0
- package/dist/LinearMafRenderer/index.js +12 -0
- package/dist/LinearMafRenderer/index.js.map +1 -0
- package/dist/LinearMafRenderer/util.d.ts +10 -0
- package/dist/LinearMafRenderer/util.js +16 -0
- package/dist/LinearMafRenderer/util.js.map +1 -0
- package/dist/MafAddTrackWorkflow/AddTrackWorkflow.d.ts +5 -0
- package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +111 -0
- package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -0
- package/dist/MafAddTrackWorkflow/index.d.ts +2 -0
- package/dist/MafAddTrackWorkflow/index.js +12 -0
- package/dist/MafAddTrackWorkflow/index.js.map +1 -0
- package/dist/MafTabixAdapter/MafTabixAdapter.d.ts +17 -0
- package/dist/MafTabixAdapter/MafTabixAdapter.js +96 -0
- package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -0
- package/dist/MafTabixAdapter/configSchema.d.ts +33 -0
- package/dist/MafTabixAdapter/configSchema.js +40 -0
- package/dist/MafTabixAdapter/configSchema.js.map +1 -0
- package/dist/MafTabixAdapter/index.d.ts +2 -0
- package/dist/MafTabixAdapter/index.js +11 -0
- package/dist/MafTabixAdapter/index.js.map +1 -0
- package/dist/MafTrack/configSchema.d.ts +79 -0
- package/dist/MafTrack/configSchema.js +15 -0
- package/dist/MafTrack/configSchema.js.map +1 -0
- package/dist/MafTrack/index.d.ts +2 -0
- package/dist/MafTrack/index.js +14 -0
- package/dist/MafTrack/index.js.map +1 -0
- package/dist/TaffyAdapter/TaffyAdapter.d.ts +16 -0
- package/dist/TaffyAdapter/TaffyAdapter.js +89 -0
- package/dist/TaffyAdapter/TaffyAdapter.js.map +1 -0
- package/dist/TaffyAdapter/configSchema.d.ts +31 -0
- package/dist/TaffyAdapter/configSchema.js +38 -0
- package/dist/TaffyAdapter/configSchema.js.map +1 -0
- package/dist/TaffyAdapter/index.d.ts +2 -0
- package/dist/TaffyAdapter/index.js +11 -0
- package/dist/TaffyAdapter/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +4 -1
- package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +7 -1
- package/package.json +21 -38
- package/src/BigMafAdapter/BigMafAdapter.ts +1 -2
- package/src/LinearMafDisplay/components/ColorLegend.tsx +2 -2
- package/src/LinearMafDisplay/components/SetRowHeight.tsx +9 -3
- package/src/LinearMafDisplay/components/YScaleBars.tsx +11 -3
- package/src/LinearMafDisplay/stateModel.ts +32 -2
- package/src/LinearMafRenderer/LinearMafRenderer.ts +38 -34
- package/src/LinearMafRenderer/util.ts +20 -0
- package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +60 -22
- package/src/MafTabixAdapter/MafTabixAdapter.ts +2 -2
- package/src/TaffyAdapter/TaffyAdapter.ts +112 -0
- package/src/TaffyAdapter/configSchema.ts +44 -0
- package/src/TaffyAdapter/index.ts +15 -0
- package/src/index.ts +2 -0
- package/dist/jbrowse-plugin-mafviewer.umd.development.js +0 -1439
- package/dist/jbrowse-plugin-mafviewer.umd.development.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MafTabixAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;;GAGG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,YAAY,GAAG,mBAAmB,CACtC,iBAAiB,EACjB;IACE;;OAEG;IACH,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;QACnE,YAAY,EAAE,EAAE;KACjB;IACD;;OAEG;IACH,aAAa,EAAE;QACb,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,wBAAwB;YAC7B,YAAY,EAAE,aAAa;SAC5B;KACF;IACD,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE;QAClC,QAAQ,EAAE;YACR,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,GAAG,EAAE,wBAAwB;aAC9B;SACF;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,KAAK;SACpB;KACF,CAAC;CACH,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AdapterType } from '@jbrowse/core/pluggableElementTypes';
|
|
2
|
+
import configSchema from './configSchema';
|
|
3
|
+
import MafTabixAdapter from './MafTabixAdapter';
|
|
4
|
+
export default function MafTabixAdapterF(pluginManager) {
|
|
5
|
+
return pluginManager.addAdapterType(() => new AdapterType({
|
|
6
|
+
name: 'MafTabixAdapter',
|
|
7
|
+
AdapterClass: MafTabixAdapter,
|
|
8
|
+
configSchema,
|
|
9
|
+
}));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MafTabixAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAE/C,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,aAA4B;IACnE,OAAO,aAAa,CAAC,cAAc,CACjC,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,YAAY,EAAE,eAAe;QAC7B,YAAY;KACb,CAAC,CACL,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
+
export default function configSchemaF(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
3
|
+
name: {
|
|
4
|
+
description: string;
|
|
5
|
+
type: string;
|
|
6
|
+
defaultValue: string;
|
|
7
|
+
};
|
|
8
|
+
assemblyNames: {
|
|
9
|
+
description: string;
|
|
10
|
+
type: string;
|
|
11
|
+
defaultValue: string[];
|
|
12
|
+
};
|
|
13
|
+
description: {
|
|
14
|
+
description: string;
|
|
15
|
+
type: string;
|
|
16
|
+
defaultValue: string;
|
|
17
|
+
};
|
|
18
|
+
category: {
|
|
19
|
+
description: string;
|
|
20
|
+
type: string;
|
|
21
|
+
defaultValue: never[];
|
|
22
|
+
};
|
|
23
|
+
metadata: {
|
|
24
|
+
type: string;
|
|
25
|
+
description: string;
|
|
26
|
+
defaultValue: {};
|
|
27
|
+
};
|
|
28
|
+
adapter: import("mobx-state-tree").IAnyModelType;
|
|
29
|
+
textSearching: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
30
|
+
indexingAttributes: {
|
|
31
|
+
type: string;
|
|
32
|
+
description: string;
|
|
33
|
+
defaultValue: string[];
|
|
34
|
+
};
|
|
35
|
+
indexingFeatureTypesToExclude: {
|
|
36
|
+
type: string;
|
|
37
|
+
description: string;
|
|
38
|
+
defaultValue: string[];
|
|
39
|
+
};
|
|
40
|
+
textSearchAdapter: import("mobx-state-tree").IAnyModelType;
|
|
41
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
42
|
+
displays: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
|
|
43
|
+
formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
44
|
+
feature: {
|
|
45
|
+
type: string;
|
|
46
|
+
description: string;
|
|
47
|
+
defaultValue: {};
|
|
48
|
+
contextVariable: string[];
|
|
49
|
+
};
|
|
50
|
+
subfeatures: {
|
|
51
|
+
type: string;
|
|
52
|
+
description: string;
|
|
53
|
+
defaultValue: {};
|
|
54
|
+
contextVariable: string[];
|
|
55
|
+
};
|
|
56
|
+
depth: {
|
|
57
|
+
type: string;
|
|
58
|
+
defaultValue: number;
|
|
59
|
+
description: string;
|
|
60
|
+
};
|
|
61
|
+
maxDepth: {
|
|
62
|
+
type: string;
|
|
63
|
+
defaultValue: number;
|
|
64
|
+
description: string;
|
|
65
|
+
};
|
|
66
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
67
|
+
formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
68
|
+
config: {
|
|
69
|
+
type: string;
|
|
70
|
+
description: string;
|
|
71
|
+
defaultValue: {};
|
|
72
|
+
contextVariable: string[];
|
|
73
|
+
};
|
|
74
|
+
hideUris: {
|
|
75
|
+
type: string;
|
|
76
|
+
defaultValue: boolean;
|
|
77
|
+
};
|
|
78
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
79
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "trackId">>, "trackId">>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
import { createBaseTrackConfig } from '@jbrowse/core/pluggableElementTypes';
|
|
3
|
+
export default function configSchemaF(pluginManager) {
|
|
4
|
+
return ConfigurationSchema('MafTrack', {}, {
|
|
5
|
+
/**
|
|
6
|
+
* #baseConfiguration
|
|
7
|
+
*/
|
|
8
|
+
baseConfiguration: createBaseTrackConfig(pluginManager),
|
|
9
|
+
/**
|
|
10
|
+
* #identifier
|
|
11
|
+
*/
|
|
12
|
+
explicitIdentifier: 'trackId',
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MafTrack/configSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAE3E,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,aAA4B;IAChE,OAAO,mBAAmB,CACxB,UAAU,EACV,EAAE,EACF;QACE;;WAEG;QACH,iBAAiB,EAAE,qBAAqB,CAAC,aAAa,CAAC;QACvD;;WAEG;QACH,kBAAkB,EAAE,SAAS;KAC9B,CACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TrackType, createBaseTrackModel, } from '@jbrowse/core/pluggableElementTypes';
|
|
2
|
+
import configSchemaF from './configSchema';
|
|
3
|
+
export default function MafTrackF(pluginManager) {
|
|
4
|
+
return pluginManager.addTrackType(() => {
|
|
5
|
+
const configSchema = configSchemaF(pluginManager);
|
|
6
|
+
return new TrackType({
|
|
7
|
+
name: 'MafTrack',
|
|
8
|
+
configSchema,
|
|
9
|
+
displayName: 'MAF track',
|
|
10
|
+
stateModel: createBaseTrackModel(pluginManager, 'MafTrack', configSchema),
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MafTrack/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,oBAAoB,GACrB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,aAA4B;IAC5D,OAAO,aAAa,CAAC,YAAY,CAAC,GAAG,EAAE;QACrC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,YAAY;YACZ,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC;SAC1E,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { Feature, Region } from '@jbrowse/core/util';
|
|
3
|
+
interface ByteRange {
|
|
4
|
+
chrStart: number;
|
|
5
|
+
fileOffst: number;
|
|
6
|
+
}
|
|
7
|
+
type IndexData = Record<string, ByteRange[]>;
|
|
8
|
+
export default class TaffyAdapter extends BaseFeatureDataAdapter {
|
|
9
|
+
setupP?: Promise<IndexData>;
|
|
10
|
+
getRefNames(): Promise<string[]>;
|
|
11
|
+
setup(): Promise<IndexData>;
|
|
12
|
+
readTaiFile(): Promise<IndexData>;
|
|
13
|
+
getFeatures(query: Region): import("rxjs").Observable<Feature>;
|
|
14
|
+
freeResources(): void;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
3
|
+
import { openLocation } from '@jbrowse/core/util/io';
|
|
4
|
+
export default class TaffyAdapter extends BaseFeatureDataAdapter {
|
|
5
|
+
setupP;
|
|
6
|
+
async getRefNames() {
|
|
7
|
+
const data = await this.setup();
|
|
8
|
+
return Object.keys(data);
|
|
9
|
+
}
|
|
10
|
+
setup() {
|
|
11
|
+
if (!this.setupP) {
|
|
12
|
+
this.setupP = this.readTaiFile().catch((e) => {
|
|
13
|
+
this.setupP = undefined;
|
|
14
|
+
throw e;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return this.setupP;
|
|
18
|
+
}
|
|
19
|
+
async readTaiFile() {
|
|
20
|
+
const text = await openLocation(this.getConf('taiLocation')).readFile('utf8');
|
|
21
|
+
const entries = {};
|
|
22
|
+
let lastChr = '';
|
|
23
|
+
for (const line of text.split('\n').filter(line => line.trim())) {
|
|
24
|
+
const [chr, chrStart, fileOffset] = line.split('\t');
|
|
25
|
+
const ref = chr === '*' ? lastChr : chr;
|
|
26
|
+
const r2 = ref.split('.').at(-1);
|
|
27
|
+
if (!entries[r2]) {
|
|
28
|
+
entries[r2] = [];
|
|
29
|
+
}
|
|
30
|
+
entries[r2].push({
|
|
31
|
+
chrStart: +chrStart,
|
|
32
|
+
fileOffst: +fileOffset,
|
|
33
|
+
});
|
|
34
|
+
lastChr = ref;
|
|
35
|
+
}
|
|
36
|
+
return entries;
|
|
37
|
+
}
|
|
38
|
+
getFeatures(query) {
|
|
39
|
+
return ObservableCreate(async (observer) => {
|
|
40
|
+
try {
|
|
41
|
+
// const { tafLocation } = getSnapshot(this.config)
|
|
42
|
+
// const byteRanges = await this.setup()
|
|
43
|
+
//
|
|
44
|
+
// for (const range of byteRanges[query.refName] || []) {
|
|
45
|
+
// const response = await fetch(tafLocation, {
|
|
46
|
+
// headers: {
|
|
47
|
+
// Range: `bytes=${range.start}-${range.start + range.length - 1}`,
|
|
48
|
+
// },
|
|
49
|
+
// })
|
|
50
|
+
//
|
|
51
|
+
// const text = await response.text()
|
|
52
|
+
// const lines = text.split('\n').filter(line => line.trim())
|
|
53
|
+
//
|
|
54
|
+
// for (const line of lines) {
|
|
55
|
+
// const [chr, start, srcSize, strand, unknown, data] =
|
|
56
|
+
// line.split('\t')
|
|
57
|
+
//
|
|
58
|
+
// // Only emit features that overlap with query region
|
|
59
|
+
// const featureStart = parseInt(start, 10)
|
|
60
|
+
// const featureEnd = featureStart + parseInt(srcSize, 10)
|
|
61
|
+
//
|
|
62
|
+
// if (
|
|
63
|
+
// chr === query.refName &&
|
|
64
|
+
// featureEnd >= query.start &&
|
|
65
|
+
// featureStart <= query.end
|
|
66
|
+
// ) {
|
|
67
|
+
// observer.next(
|
|
68
|
+
// new SimpleFeature({
|
|
69
|
+
// uniqueId: `${chr}-${start}-${data}`,
|
|
70
|
+
// refName: chr,
|
|
71
|
+
// start: featureStart,
|
|
72
|
+
// end: featureEnd,
|
|
73
|
+
// strand: parseInt(strand, 10),
|
|
74
|
+
// data: data,
|
|
75
|
+
// }),
|
|
76
|
+
// )
|
|
77
|
+
// }
|
|
78
|
+
// }
|
|
79
|
+
// }
|
|
80
|
+
observer.complete();
|
|
81
|
+
}
|
|
82
|
+
catch (e) {
|
|
83
|
+
observer.error(e);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
freeResources() { }
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=TaffyAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaffyAdapter.js","sourceRoot":"","sources":["../../src/TaffyAdapter/TaffyAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAiBpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,sBAAsB;IACvD,MAAM,CAAqB;IAElC,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBACpD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;gBACvB,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CACnE,MAAM,CACP,CAAA;QACD,MAAM,OAAO,GAAG,EAAe,CAAA;QAC/B,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;YACvC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YAEjC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;YAClB,CAAC;YACD,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,CAAC,QAAQ;gBACnB,SAAS,EAAE,CAAC,UAAU;aACvB,CAAC,CAAA;YACF,OAAO,GAAG,GAAG,CAAA;QACf,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,OAAO,gBAAgB,CAAU,KAAK,EAAC,QAAQ,EAAC,EAAE;YAChD,IAAI,CAAC;gBACH,mDAAmD;gBACnD,wCAAwC;gBACxC,EAAE;gBACF,yDAAyD;gBACzD,gDAAgD;gBAChD,iBAAiB;gBACjB,yEAAyE;gBACzE,SAAS;gBACT,OAAO;gBACP,EAAE;gBACF,uCAAuC;gBACvC,+DAA+D;gBAC/D,EAAE;gBACF,gCAAgC;gBAChC,2DAA2D;gBAC3D,yBAAyB;gBACzB,EAAE;gBACF,2DAA2D;gBAC3D,+CAA+C;gBAC/C,8DAA8D;gBAC9D,EAAE;gBACF,WAAW;gBACX,iCAAiC;gBACjC,qCAAqC;gBACrC,kCAAkC;gBAClC,UAAU;gBACV,uBAAuB;gBACvB,8BAA8B;gBAC9B,iDAAiD;gBACjD,0BAA0B;gBAC1B,iCAAiC;gBACjC,6BAA6B;gBAC7B,0CAA0C;gBAC1C,wBAAwB;gBACxB,cAAc;gBACd,UAAU;gBACV,QAAQ;gBACR,MAAM;gBACN,IAAI;gBACJ,QAAQ,CAAC,QAAQ,EAAE,CAAA;YACrB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,aAAa,KAAU,CAAC;CACzB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
|
|
2
|
+
/**
|
|
3
|
+
* #slot
|
|
4
|
+
*/
|
|
5
|
+
samples: {
|
|
6
|
+
type: string;
|
|
7
|
+
description: string;
|
|
8
|
+
defaultValue: never[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* #slot
|
|
12
|
+
*/
|
|
13
|
+
tafLocation: {
|
|
14
|
+
type: string;
|
|
15
|
+
defaultValue: {
|
|
16
|
+
uri: string;
|
|
17
|
+
locationType: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* #slot
|
|
22
|
+
*/
|
|
23
|
+
taiLocation: {
|
|
24
|
+
type: string;
|
|
25
|
+
defaultValue: {
|
|
26
|
+
uri: string;
|
|
27
|
+
locationType: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
31
|
+
export default configSchema;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
+
/**
|
|
3
|
+
* #config TaffyAdapter
|
|
4
|
+
* used to configure Taffy adapter
|
|
5
|
+
*/
|
|
6
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
7
|
+
const configSchema = ConfigurationSchema('TaffyAdapter', {
|
|
8
|
+
/**
|
|
9
|
+
* #slot
|
|
10
|
+
*/
|
|
11
|
+
samples: {
|
|
12
|
+
type: 'frozen',
|
|
13
|
+
description: 'string[] or {id:string,label:string,color?:string}[]',
|
|
14
|
+
defaultValue: [],
|
|
15
|
+
},
|
|
16
|
+
/**
|
|
17
|
+
* #slot
|
|
18
|
+
*/
|
|
19
|
+
tafLocation: {
|
|
20
|
+
type: 'fileLocation',
|
|
21
|
+
defaultValue: {
|
|
22
|
+
uri: '/path/to/my.taf',
|
|
23
|
+
locationType: 'UriLocation',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* #slot
|
|
28
|
+
*/
|
|
29
|
+
taiLocation: {
|
|
30
|
+
type: 'fileLocation',
|
|
31
|
+
defaultValue: {
|
|
32
|
+
uri: '/path/to/my.taf.tai',
|
|
33
|
+
locationType: 'UriLocation',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}, { explicitlyTyped: true });
|
|
37
|
+
export default configSchema;
|
|
38
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/TaffyAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;;GAGG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,YAAY,GAAG,mBAAmB,CACtC,cAAc,EACd;IACE;;OAEG;IACH,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;QACnE,YAAY,EAAE,EAAE;KACjB;IACD;;OAEG;IACH,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,iBAAiB;YACtB,YAAY,EAAE,aAAa;SAC5B;KACF;IACD;;OAEG;IACH,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,qBAAqB;YAC1B,YAAY,EAAE,aAAa;SAC5B;KACF;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AdapterType } from '@jbrowse/core/pluggableElementTypes';
|
|
2
|
+
import configSchema from './configSchema';
|
|
3
|
+
import TaffyAdapter from './TaffyAdapter';
|
|
4
|
+
export default function TaffyAdapterF(pluginManager) {
|
|
5
|
+
return pluginManager.addAdapterType(() => new AdapterType({
|
|
6
|
+
name: 'TaffyAdapter',
|
|
7
|
+
AdapterClass: TaffyAdapter,
|
|
8
|
+
configSchema,
|
|
9
|
+
}));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/TaffyAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AACjE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,aAA4B;IAChE,OAAO,aAAa,CAAC,cAAc,CACjC,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,YAAY;QAC1B,YAAY;KACb,CAAC,CACL,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Plugin from '@jbrowse/core/Plugin';
|
|
2
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
+
export default class MafViewerPlugin extends Plugin {
|
|
4
|
+
name: string;
|
|
5
|
+
version: any;
|
|
6
|
+
install(pluginManager: PluginManager): void;
|
|
7
|
+
configure(_pluginManager: PluginManager): void;
|
|
8
|
+
}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Plugin from '@jbrowse/core/Plugin';
|
|
2
|
+
import { version } from '../package.json';
|
|
3
|
+
import BigMafAdapterF from './BigMafAdapter';
|
|
4
|
+
import MafTrackF from './MafTrack';
|
|
5
|
+
import LinearMafDisplayF from './LinearMafDisplay';
|
|
6
|
+
import LinearMafRendererF from './LinearMafRenderer';
|
|
7
|
+
import MafTabixAdapterF from './MafTabixAdapter';
|
|
8
|
+
import TaffyAdapterF from './TaffyAdapter';
|
|
9
|
+
import MafAddTrackWorkflowF from './MafAddTrackWorkflow';
|
|
10
|
+
export default class MafViewerPlugin extends Plugin {
|
|
11
|
+
name = 'MafViewerPlugin';
|
|
12
|
+
version = version;
|
|
13
|
+
install(pluginManager) {
|
|
14
|
+
BigMafAdapterF(pluginManager);
|
|
15
|
+
MafTrackF(pluginManager);
|
|
16
|
+
LinearMafDisplayF(pluginManager);
|
|
17
|
+
LinearMafRendererF(pluginManager);
|
|
18
|
+
MafTabixAdapterF(pluginManager);
|
|
19
|
+
TaffyAdapterF(pluginManager);
|
|
20
|
+
MafAddTrackWorkflowF(pluginManager);
|
|
21
|
+
}
|
|
22
|
+
configure(_pluginManager) { }
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAC1C,OAAO,oBAAoB,MAAM,uBAAuB,CAAA;AAExD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IACjD,IAAI,GAAG,iBAAiB,CAAA;IACxB,OAAO,GAAG,OAAO,CAAA;IAEjB,OAAO,CAAC,aAA4B;QAClC,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,SAAS,CAAC,aAAa,CAAC,CAAA;QACxB,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAChC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC/B,aAAa,CAAC,aAAa,CAAC,CAAA;QAC5B,oBAAoB,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;IAED,SAAS,CAAC,cAA6B,IAAG,CAAC;CAC5C"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,n,o,a,i,s,l,c,u,p,f){"use strict";const d=n.ConfigurationSchema("BigMafAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bigBedLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bb",locationType:"UriLocation"}}},{explicitlyTyped:!0});var h=function(e,t){return h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},h(e,t)};function m(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}h(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function g(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}function b(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)!n&&o in t||(n||(n=Array.prototype.slice.call(t,0,o)),n[o]=t[o]);return e.concat(n||Array.prototype.slice.call(t))}function w(e){return"function"==typeof e}function v(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}"function"==typeof SuppressedError&&SuppressedError;var x=v((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));function E(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var S=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}var t;return e.prototype.unsubscribe=function(){var e,t,r,n,o;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var i=g(a),s=i.next();!s.done;s=i.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}else a.remove(this);var l=this.initialTeardown;if(w(l))try{l()}catch(e){o=e instanceof x?e.errors:[e]}var c=this._finalizers;if(c){this._finalizers=null;try{for(var u=g(c),p=u.next();!p.done;p=u.next()){var f=p.value;try{T(f)}catch(e){o=null!=o?o:[],e instanceof x?o=b(b([],y(o)),y(e.errors)):o.push(e)}}}catch(e){r={error:e}}finally{try{p&&!p.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}}if(o)throw new x(o)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)T(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&E(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&E(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=((t=new e).closed=!0,t),e}();function T(e){w(e)?e():e.unsubscribe()}var A={setTimeout:function(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];var o=A.delegate;return(null==o?void 0:o.setTimeout)?o.setTimeout.apply(o,b([e,t],y(r))):setTimeout.apply(void 0,b([e,t],y(r)))},clearTimeout:function(e){var t=A.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function P(){}var M=function(e){function t(t){var r,n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,((r=t)instanceof S||r&&"closed"in r&&w(r.remove)&&w(r.add)&&w(r.unsubscribe))&&t.add(n)):n.destination=L,n}return m(t,e),t.create=function(e,t,r){return new k(e,t,r)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(S),C=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){_(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){_(e)}else _(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){_(e)}},e}(),k=function(e){function t(t,r,n){var o,a=e.call(this)||this;return o=w(t)||!t?{next:null!=t?t:void 0,error:null!=r?r:void 0,complete:null!=n?n:void 0}:t,a.destination=new C(o),a}return m(t,e),t}(M);function _(e){var t;t=e,A.setTimeout((function(){throw t}))}var L={closed:!0,next:P,error:function(e){throw e},complete:P};function B(e){return function(t){if(function(e){return w(null==e?void 0:e.lift)}(t))return t.lift((function(t){try{return e(t,this)}catch(e){this.error(e)}}));throw new TypeError("Unable to lift unknown Observable type")}}var F=function(e){function t(t,r,n,o,a,i){var s=e.call(this,t)||this;return s.onFinalize=a,s.shouldUnsubscribe=i,s._next=r?function(e){try{r(e)}catch(e){t.error(e)}}:e.prototype._next,s._error=o?function(e){try{o(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,s._complete=n?function(){try{n()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,s}return m(t,e),t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;e.prototype.unsubscribe.call(this),!r&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}},t}(M),j=v((function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}}));function R(e,t){var r="object"==typeof t;return new Promise((function(n,o){var a=new k({next:function(e){n(e),a.unsubscribe()},error:o,complete:function(){r?n(t.defaultValue):o(new j)}});e.subscribe(a)}))}var O=function(e,t){return e.push(t),e};function z(){return B((function(e,t){(function(e,t){return B(function(e,t,r,n,o){return function(n,o){var a=r,i=t,s=0;n.subscribe(new F(o,(function(t){var r=s++;i=a?e(i,t,r):(a=!0,t)}),(function(){a&&o.next(i),o.complete()}),void 0,void 0))}}(e,t,arguments.length>=2))})(O,[])(e).subscribe(t)}))}let q=class extends o.BaseFeatureDataAdapter{setupP;async setup(){if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...a.getSnapshot(this.config),type:"BigBedAdapter"})).dataAdapter}}async setupPre(){return this.setupP||(this.setupP=this.setup().catch((e=>{throw this.setupP=void 0,e}))),this.setupP}async getRefNames(){const{adapter:e}=await this.setup();return e.getRefNames()}async getHeader(){const{adapter:e}=await this.setup();return e.getHeader()}getFeatures(e){return s.ObservableCreate((async t=>{const{adapter:r}=await this.setup(),n=await R(r.getFeatures(e).pipe(z()));for(const e of n){const r=e.get("mafBlock").split(";");let n;const o=[],a={},s=[];for(const e of r)e.startsWith("s")&&(n?(o.push(e.split(/ +/)[6]),s.push(e)):(n=e.split(/ +/)[6],o.push(n),s.push(e)));for(let e=0;e<s.length;e++){const t=s[e].split(/ +/),r=t[1].split(".");a[r[0]]={chr:r[1],start:+t[1],srcSize:+t[2],strand:"+"===t[3]?1:-1,unknown:+t[4],data:o[e]}}t.next(new i.SimpleFeature({id:e.id(),data:{start:e.get("start"),end:e.get("end"),refName:e.get("refName"),seq:o[0],alignments:a}}))}t.complete()}))}freeResources(){}};const N=f.makeStyles()({root:{width:500}}),D=c.observer((function(e){const{model:t,handleClose:r}=e,{classes:n}=N(),[o,a]=l.useState(`${t.rowHeight}`),[i,s]=l.useState(`${t.rowProportion}`);return l.createElement(p.Dialog,{open:!0,onClose:r,title:"Filter options"},l.createElement(u.DialogContent,{className:n.root},l.createElement(u.Typography,null,"Set row height and the proportion of the row height to use for drawing each row"),l.createElement(u.TextField,{value:o,onChange:e=>a(e.target.value),placeholder:"Enter row height"}),l.createElement(u.TextField,{value:i,onChange:e=>s(e.target.value),placeholder:"Enter row proportion"}),l.createElement(u.DialogActions,null,l.createElement(u.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:()=>{t.setRowProportion(+i),t.setRowHeight(+o),r()}},"Submit"),l.createElement(u.Button,{variant:"contained",color:"secondary",onClick:()=>r()},"Cancel"))))})),V=e=>{const{color:t="rgb(255,255,255,0.8)"}=e;return l.createElement("rect",{...e,fill:t})},H=c.observer((function({model:e,labelWidth:t,svgFontSize:r}){const{samples:n,rowHeight:o}=e,a=o>=10,i=Math.min(20,o);return n?l.createElement(l.Fragment,null,n.map(((e,r)=>l.createElement(V,{key:`${e.id}-${r}`,y:r*o,x:0,width:t+5,height:i,color:e.color}))),a?n.map(((e,t)=>l.createElement("text",{key:`${e.id}-${t}`,y:t*o+o/2,dominantBaseline:"middle",x:2,fontSize:r},e.label))):null):null})),J=c.observer((function({children:e,model:t,exportSVG:r}){if(r)return l.createElement(l.Fragment,null,e);{const{rowHeight:r,samples:n}=t;return l.createElement("svg",{style:{position:"absolute",top:0,left:0,pointerEvents:"none",height:n.length*r,width:i.getContainingView(t).width}},e)}})),$=c.observer((function(e){const{model:t}=e,{rowHeight:r,samples:n}=t,o=Math.min(Math.max(r,10),14),a=r>=10,s=Math.max(...n.map((e=>i.measureText(e.label,o))).map((e=>a?e:20))||[0]);return l.createElement(J,{...e},l.createElement(H,{model:t,labelWidth:s,svgFontSize:o}))})),W=c.observer((function(e){const{model:t}=e,{pluginManager:r}=i.getEnv(t),n=r.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplayComponent:o}=n.exports;return l.createElement("div",null,l.createElement(o,{...e}),l.createElement($,{model:t}))})),G=n.ConfigurationSchema("LinearMafRenderer",{},{explicitlyTyped:!0});function I(e){const{bases:t}=e.palette;return{a:t.A.main,c:t.C.main,g:t.G.main,t:t.T.main}}class U extends r.FeatureRendererType{getExpandedRegion(e){const{start:t,end:r}=e;return{...e,start:Math.floor(Math.max(t-1,0)),end:Math.ceil(r+1)}}async render(e){const{regions:t,bpPerPx:r,samples:n,rowHeight:o}=e,[a]=t,s=n.length*o+100,l=(a.end-a.start)/r,c=await this.getFeatures(e),u=await i.renderToAbstractCanvas(l,s,e,(t=>function({ctx:e,renderArgs:t}){const{regions:r,bpPerPx:n,rowHeight:o,showAllLetters:a,theme:s,samples:l,rowProportion:c,features:u}=t,[f]=r,d=o*c,h=p.createJBrowseTheme(s),m=I(h),g=function(e){return Object.fromEntries(Object.entries(I(e)).map((([t,r])=>[t,e.palette.getContrastText(r)])))}(h),y=new Map(l.map(((e,t)=>[e.id,t]))),b=1/n,w=o/2,v=d/2,x=(o-d)/2;e.font="bold 10px Courier New,monospace";for(const t of u.values()){const[r]=i.featureSpanPx(t,f,n),s=t.get("alignments"),l=t.get("seq").toLowerCase();for(const[t,n]of Object.entries(s)){const i=n.data,s=i.toLowerCase(),c=y.get(t);if(void 0===c)throw new Error(`unknown sample encountered: ${t}`);const u=o*c;e.beginPath(),e.fillStyle="black";for(let t=0,n=0;t<s.length;t++)if("-"!==l[t]){if("-"===s[t]){const t=r+b*n;e.moveTo(t,u+w),e.lineTo(t+b+.4,u+w)}n++}if(e.stroke(),!a){e.beginPath(),e.fillStyle="lightgrey";for(let t=0,n=0;t<s.length;t++)if("-"!==l[t]){const o=s[t];l[t]===o&&"-"!==o&&e.rect(r+b*n,x+u,b+.4,d),n++}e.fill()}for(let t=0,n=0;t<s.length;t++){const o=s[t];if("-"!==l[t]){if((a||l[t]!==o)&&"-"!==o){const t=r+b*n;e.fillStyle=m[o]??"black",e.fillRect(t,x+u,b+.4,d)}n++}}const p={w:10};if(b>=p.w)for(let t=0,n=0;t<s.length;t++)if("-"!==l[t]){const o=r+b*n,c=(b-p.w)/2+1,f=s[t];!a&&l[t]===f||"-"===f||(e.fillStyle=g[f]??"white",e.fillText(i[t],o+c,v+u+3)),n++}}}for(const t of u.values()){const[r]=i.featureSpanPx(t,f,n),a=t.get("alignments"),s=t.get("seq").toLowerCase();for(const[t,n]of Object.entries(a)){const a=n.data.toLowerCase(),i=y.get(t);if(void 0===i)throw new Error(`unknown sample encountered: ${t}`);const l=o*i;e.beginPath(),e.fillStyle="purple";for(let t=0,n=0;t<a.length;t++){let o="";for(;"-"===s[t];)"-"!==a[t]&&(o+=a[t]),t++;if(o.length>0){const t=r+b*n-1;e.rect(t,x+l+1,1,d-1),e.rect(t-2,x+l,5,1),e.rect(t-2,x+l+d-1,5,1)}n++}e.fill()}}}({ctx:t,renderArgs:{...e,features:c}})));return{...await super.render({...e,...u,width:l,height:s}),...u,width:l,height:s}}}const Y=c.observer((function(e){return l.createElement(p.PrerenderedCanvas,{...e})})),K=n.ConfigurationSchema("MafTabixAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bedGzLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi",locationType:"UriLocation"}},index:n.ConfigurationSchema("Index",{location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi"}},indexType:{type:"string",defaultValue:"TBI"}})},{explicitlyTyped:!0});class Q extends o.BaseFeatureDataAdapter{setupP;async setup(){const e=this.config;if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...a.getSnapshot(e),type:"BedTabixAdapter"})).dataAdapter}}async setupPre(){return this.setupP||(this.setupP=this.setup().catch((e=>{throw this.setupP=void 0,e}))),this.setupP}async getRefNames(){const{adapter:e}=await this.setup();return e.getRefNames()}async getHeader(){const{adapter:e}=await this.setup();return e.getHeader()}getFeatures(e){return s.ObservableCreate((async t=>{const{adapter:r}=await this.setup(),n=await R(r.getFeatures(e).pipe(z())),o=this.getConf("samples"),a="string"==typeof o[0]?o:o.map((e=>e.id)),s=new Set(a);let l=0;for(const e of n){const r=e.get("field5").split(","),n={},o=r.map((e=>e.split(":")[5]));for(const[e,t]of r.entries()){const r=t.split(":"),i=r[0].lastIndexOf("."),c=r[0].slice(0,i),u=r[0].slice(i+1),p=s.has(c)?c:a.find((e=>r[0].startsWith(e)));p?n[p]={chr:u,start:+r[1],srcSize:+r[2],strand:"-"===r[3]?-1:1,unknown:+r[4],data:o[e]}:l<100?(console.error(`line not processed ${r[0]}`),l++):l>100&&console.error("too many errors, not printing any more")}t.next(new i.SimpleFeature({id:e.id(),data:{start:e.get("start"),end:e.get("end"),refName:e.get("refName"),name:e.get("name"),score:e.get("score"),alignments:n,seq:o[0]}}))}t.complete()}))}freeResources(){}}const X=f.makeStyles()((e=>({textbox:{width:"100%"},paper:{margin:e.spacing(),padding:e.spacing()},submit:{marginTop:25,marginBottom:100,display:"block"}})));function Z({model:e}){const{classes:t}=X(),[r,n]=l.useState(""),[o,s]=l.useState(),[c,f]=l.useState(),[d,h]=l.useState(),[m,g]=l.useState("MAF track"),[y,b]=l.useState("BigMafAdapter"),w=a.getRoot(e);return l.createElement(u.Paper,{className:t.paper},l.createElement(u.Paper,null,d?l.createElement(p.ErrorMessage,{error:d}):null,l.createElement(u.FormControl,null,l.createElement(u.FormLabel,null,"File type"),l.createElement(u.RadioGroup,{value:y,onChange:e=>b(e.target.value)},l.createElement(u.FormControlLabel,{value:"BigMafAdapter",control:l.createElement(u.Radio,null),checked:"BigMafAdapter"===y,label:"bigMaf"}),l.createElement(u.FormControlLabel,{value:"MafTabixAdapter",control:l.createElement(u.Radio,null),checked:"MafTabixAdapter"===y,label:"mafTabix"}))),"BigMafAdapter"===y?l.createElement(p.FileSelector,{location:o,name:"Path to bigMaf",setLocation:e=>s(e),rootModel:w}):l.createElement(l.Fragment,null,l.createElement(p.FileSelector,{location:o,name:"Path to MAF tabix",setLocation:e=>s(e),rootModel:w}),l.createElement(p.FileSelector,{location:c,name:"Path to MAF tabix index",setLocation:e=>f(e),rootModel:w}))),l.createElement(u.TextField,{multiline:!0,rows:10,value:r,onChange:e=>n(e.target.value),placeholder:"Enter sample names from the MAF file, one per line, or JSON formatted array of samples",variant:"outlined",fullWidth:!0}),l.createElement(u.TextField,{value:m,onChange:e=>g(e.target.value),helperText:"Track name"}),l.createElement(u.Button,{variant:"contained",className:t.submit,onClick:()=>{try{const t=i.getSession(e);let n=[];try{n=JSON.parse(r)}catch(e){n=r.split(/\n|\r\n|\r/)}const a=[`${m.toLowerCase().replaceAll(" ","_")}-${Date.now()}`,t.adminMode?"":"-sessionTrack"].join("");i.isSessionWithAddTracks(t)&&(t.addTrackConf({trackId:a,type:"MafTrack",name:m,assemblyNames:[e.assembly],adapter:"BigMafAdapter"===y?{type:y,bigBedLocation:o,samples:n}:{type:y,bedGzLocation:o,index:{location:c},samples:n}}),e.view?.showTrack(a)),e.clearData(),i.isSessionModelWithWidgets(t)&&t.hideWidget(e)}catch(e){h(e)}}},"Submit"))}var ee={__proto__:null,renderSvg:async function(e,t,r){const{height:n,id:o}=e,{offsetPx:a,width:s}=i.getContainingView(e),c=`mafclip-${o}`;return l.createElement(l.Fragment,null,l.createElement("defs",null,l.createElement("clipPath",{id:c},l.createElement("rect",{x:0,y:0,width:s,height:n}))),l.createElement("g",{clipPath:`url(#${c})`},l.createElement("g",{id:"snpcov"},await r(t)),l.createElement("g",{transform:`translate(${Math.max(-a,0)})`},l.createElement($,{model:e,orientation:"left",exportSVG:!0}))))}};e.default=class extends t{name="MafViewerPlugin";version="1.0.6";install(e){!function(e){e.addAdapterType((()=>new r.AdapterType({name:"BigMafAdapter",AdapterClass:q,configSchema:d})))}(e),function(e){e.addTrackType((()=>{const t=function(e){return n.ConfigurationSchema("MafTrack",{},{baseConfiguration:r.createBaseTrackConfig(e),explicitIdentifier:"trackId"})}(e);return new r.TrackType({name:"MafTrack",configSchema:t,displayName:"MAF track",stateModel:r.createBaseTrackModel(e,"MafTrack",t)})}))}(e),function(e){e.addDisplayType((()=>{const t=function(e){const t=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:r}=t.exports;return n.ConfigurationSchema("LinearMafDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:r,explicitlyTyped:!0})}(e),o=function(e,t){const r=t.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplay:o}=r.exports;return a.types.compose("LinearMafDisplay",o,a.types.model({type:a.types.literal("LinearMafDisplay"),configuration:n.ConfigurationReference(e),rowHeight:15,rowProportion:.8,showAllLetters:!1})).volatile((()=>({prefersOffset:!0}))).actions((e=>({setRowHeight(t){e.rowHeight=t},setRowProportion(t){e.rowProportion=t},setShowAllLetters(t){e.showAllLetters=t}}))).views((e=>({get samples(){const t=e.adapterConfig.samples;return"string"==typeof t[0]?t.map((e=>({id:e,label:e,color:void 0}))):t},get rendererTypeName(){return"LinearMafRenderer"},get rendererConfig(){const t=n.getConf(e,["renderer"])||{};return e.rendererType.configSchema.create({...t,type:"LinearMafRenderer"},i.getEnv(e))}}))).views((e=>{const{trackMenuItems:t,renderProps:r}=e;return{renderProps(){const{showAllLetters:t,rendererConfig:n,samples:o,rowHeight:a,rowProportion:i}=e;return{...r(),config:n,samples:o,rowHeight:a,rowProportion:i,showAllLetters:t}},trackMenuItems:()=>[...t(),{label:"Set row height",onClick:()=>{i.getSession(e).queueDialog((t=>[D,{model:e,handleClose:t}]))}},{label:"Show all letters",type:"checkbox",checked:e.showAllLetters,onClick:()=>e.setShowAllLetters(!e.showAllLetters)}]}})).actions((e=>{const{renderSvg:t}=e;return{async renderSvg(r){const{renderSvg:n}=await Promise.resolve().then((function(){return ee}));return n(e,r,t)}}}))}(t,e);return new r.DisplayType({name:"LinearMafDisplay",configSchema:t,stateModel:o,ReactComponent:W,viewType:"LinearGenomeView",trackType:"MafTrack",displayName:"MAF display"})}))}(e),function(e){e.addRendererType((()=>new U({name:"LinearMafRenderer",ReactComponent:Y,configSchema:G,pluginManager:e})))}(e),function(e){e.addAdapterType((()=>new r.AdapterType({name:"MafTabixAdapter",AdapterClass:Q,configSchema:K})))}(e),function(e){e.addAddTrackWorkflowType((()=>new r.AddTrackWorkflowType({name:"MAF track",ReactComponent:Z,stateModel:a.types.model({})})))}(e)}configure(e){}},Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jbrowse/core/Plugin"),require("@jbrowse/core/pluggableElementTypes"),require("@jbrowse/core/configuration"),require("@jbrowse/core/data_adapters/BaseAdapter"),require("mobx-state-tree"),require("@jbrowse/core/util"),require("@jbrowse/core/util/rxjs"),require("react"),require("mobx-react"),require("@mui/material"),require("@jbrowse/core/ui"),require("tss-react/mui")):"function"==typeof define&&define.amd?define(["exports","@jbrowse/core/Plugin","@jbrowse/core/pluggableElementTypes","@jbrowse/core/configuration","@jbrowse/core/data_adapters/BaseAdapter","mobx-state-tree","@jbrowse/core/util","@jbrowse/core/util/rxjs","react","mobx-react","@mui/material","@jbrowse/core/ui","tss-react/mui"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBrowsePluginMafViewer={},e.JBrowseExports["@jbrowse/core/Plugin"],e.JBrowseExports["@jbrowse/core/pluggableElementTypes"],e.JBrowseExports["@jbrowse/core/configuration"],e.JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"],e.JBrowseExports["mobx-state-tree"],e.JBrowseExports["@jbrowse/core/util"],e.JBrowseExports["@jbrowse/core/util/rxjs"],e.JBrowseExports.react,e.JBrowseExports["mobx-react"],e.JBrowseExports["@mui/material"],e.JBrowseExports["@jbrowse/core/ui"],e.JBrowseExports["tss-react/mui"]);
|
|
1
|
+
"use strict";var JBrowsePluginMafViewer=(()=>{var kt=Object.create;var ce=Object.defineProperty;var jt=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var Dt=Object.getPrototypeOf,Rt=Object.prototype.hasOwnProperty;var ue=(e,r)=>()=>(e&&(r=e(e=0)),r);var T=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),ir=(e,r)=>{for(var t in r)ce(e,t,{get:r[t],enumerable:!0})},ar=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Bt(r))!Rt.call(e,o)&&o!==t&&ce(e,o,{get:()=>r[o],enumerable:!(n=jt(r,o))||n.enumerable});return e};var a=(e,r,t)=>(t=e!=null?kt(Dt(e)):{},ar(r||!e||!e.__esModule?ce(t,"default",{value:e,enumerable:!0}):t,e)),It=e=>ar(ce({},"__esModule",{value:!0}),e);var pr=T((uo,sr)=>{sr.exports=JBrowseExports["@jbrowse/core/Plugin"]});var B=T((ho,lr)=>{lr.exports=JBrowseExports["@jbrowse/core/pluggableElementTypes"]});var W=T((go,cr)=>{cr.exports=JBrowseExports["@jbrowse/core/configuration"]});var me=T((xo,dr)=>{dr.exports=JBrowseExports["@jbrowse/core/data_adapters/BaseAdapter"]});var z=T((bo,hr)=>{hr.exports=JBrowseExports["mobx-state-tree"]});var D=T((wo,gr)=>{gr.exports=JBrowseExports["@jbrowse/core/util"]});var de=T((vo,yr)=>{yr.exports=JBrowseExports["@jbrowse/core/util/rxjs"]});var R=T((jn,Rr)=>{Rr.exports=JBrowseExports.react});var q=T((Bn,Ir)=>{Ir.exports=JBrowseExports["mobx-react"]});var Je=T((Dn,Nr)=>{Nr.exports=JBrowseExports["@mui/material"]});var ne=T((Rn,Wr)=>{Wr.exports=JBrowseExports["@jbrowse/core/ui"]});var $e=T((In,Vr)=>{Vr.exports=JBrowseExports["tss-react/mui"]});var Jr,Kt,$r,qr=ue(()=>{"use strict";Jr=a(R()),Kt=e=>{let{color:r="rgb(255,255,255,0.8)"}=e;return Jr.default.createElement("rect",{...e,fill:r})},$r=Kt});var ie,Yr,Qt,Kr,Qr=ue(()=>{"use strict";ie=a(R()),Yr=a(q());qr();Qt=(0,Yr.observer)(function({model:e,labelWidth:r,svgFontSize:t}){let{samples:n,rowHeight:o}=e,i=o>=10,s=Math.min(20,o);return ie.default.createElement(ie.default.Fragment,null,n.map((f,p)=>ie.default.createElement($r,{key:`${f.id}-${p}`,y:p*o,x:0,width:r+5,height:s,color:f.color})),i?n.map((f,p)=>ie.default.createElement("text",{key:`${f.id}-${p}`,y:p*o+o/2,dominantBaseline:"middle",x:2,fontSize:t},f.label)):null)}),Kr=Qt});function Zt(e,r=Number.NEGATIVE_INFINITY){let t=r;for(let n of e)t=Math.max(n,t);return t}var Y,ve,qe,Xt,eo,Se,Ye=ue(()=>{"use strict";Y=a(R()),ve=a(D()),qe=a(q());Qr();Xt=(0,qe.observer)(function({children:e,model:r,exportSVG:t}){if(t)return Y.default.createElement(Y.default.Fragment,null,e);{let{rowHeight:n,samples:o}=r;return Y.default.createElement("svg",{style:{position:"absolute",top:0,left:0,pointerEvents:"none",height:o.length*n,width:(0,ve.getContainingView)(r).width}},e)}});eo=(0,qe.observer)(function(e){let{model:r}=e,{rowHeight:t,samples:n}=r,o=Math.min(Math.max(t,10),14),i=t>=10,s=20,f=Zt(n.map(p=>(0,ve.measureText)(p.label,o)).map(p=>i?p:s));return Y.default.createElement(Xt,{...e},Y.default.createElement(Kr,{model:r,labelWidth:f,svgFontSize:o}))}),Se=eo});var Zr={};ir(Zr,{renderSvg:()=>ro});async function ro(e,r,t){let{height:n,id:o}=e,{offsetPx:i,width:s}=(0,Xr.getContainingView)(e),f=`mafclip-${o}`;return L.default.createElement(L.default.Fragment,null,L.default.createElement("defs",null,L.default.createElement("clipPath",{id:f},L.default.createElement("rect",{x:0,y:0,width:s,height:n}))),L.default.createElement("g",{clipPath:`url(#${f})`},L.default.createElement("g",{id:"snpcov"},await t(r)),L.default.createElement("g",{transform:`translate(${Math.max(-i,0)})`},L.default.createElement(Se,{model:e,orientation:"left",exportSVG:!0}))))}var L,Xr,et=ue(()=>{"use strict";L=a(R()),Xr=a(D());Ye()});var Tt=T((Ti,St)=>{St.exports=JBrowseExports["@jbrowse/core/util/io"]});var lo={};ir(lo,{default:()=>Ae});var Ot=a(pr());var fr="1.0.8";var kr=a(B());var ur=a(W());var Wt=(0,ur.ConfigurationSchema)("BigMafAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bigBedLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bb",locationType:"UriLocation"}}},{explicitlyTyped:!0}),mr=Wt;var Fr=a(me()),_r=a(z()),Lr=a(D()),Or=a(de());var Oe=function(e,r){return Oe=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])},Oe(e,r)};function ee(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");Oe(e,r);function t(){this.constructor=e}e.prototype=r===null?Object.create(r):(t.prototype=r.prototype,new t)}function ke(e){var r=typeof Symbol=="function"&&Symbol.iterator,t=r&&e[r],n=0;if(t)return t.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function G(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var n=t.call(e),o,i=[],s;try{for(;(r===void 0||r-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(f){s={error:f}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return i}function J(e,r,t){if(t||arguments.length===2)for(var n=0,o=r.length,i;n<o;n++)(i||!(n in r))&&(i||(i=Array.prototype.slice.call(r,0,n)),i[n]=r[n]);return e.concat(i||Array.prototype.slice.call(r))}function _(e){return typeof e=="function"}function he(e){var r=function(n){Error.call(n),n.stack=new Error().stack},t=e(r);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var ge=he(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription:
|
|
2
|
+
`+t.map(function(n,o){return o+1+") "+n.toString()}).join(`
|
|
3
|
+
`):"",this.name="UnsubscriptionError",this.errors=t}});function je(e,r){if(e){var t=e.indexOf(r);0<=t&&e.splice(t,1)}}var ye=function(){function e(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var r,t,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var f=ke(s),p=f.next();!p.done;p=f.next()){var u=p.value;u.remove(this)}}catch(d){r={error:d}}finally{try{p&&!p.done&&(t=f.return)&&t.call(f)}finally{if(r)throw r.error}}else s.remove(this);var h=this.initialTeardown;if(_(h))try{h()}catch(d){i=d instanceof ge?d.errors:[d]}var x=this._finalizers;if(x){this._finalizers=null;try{for(var l=ke(x),v=l.next();!v.done;v=l.next()){var b=v.value;try{xr(b)}catch(d){i=i??[],d instanceof ge?i=J(J([],G(i)),G(d.errors)):i.push(d)}}}catch(d){n={error:d}}finally{try{v&&!v.done&&(o=l.return)&&o.call(l)}finally{if(n)throw n.error}}}if(i)throw new ge(i)}},e.prototype.add=function(r){var t;if(r&&r!==this)if(this.closed)xr(r);else{if(r instanceof e){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(r)}},e.prototype._hasParent=function(r){var t=this._parentage;return t===r||Array.isArray(t)&&t.includes(r)},e.prototype._addParent=function(r){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(r),t):t?[t,r]:r},e.prototype._removeParent=function(r){var t=this._parentage;t===r?this._parentage=null:Array.isArray(t)&&je(t,r)},e.prototype.remove=function(r){var t=this._finalizers;t&&je(t,r),r instanceof e&&r._removeParent(this)},e.EMPTY=function(){var r=new e;return r.closed=!0,r}(),e}();var Oo=ye.EMPTY;function br(e){return e instanceof ye||e&&"closed"in e&&_(e.remove)&&_(e.add)&&_(e.unsubscribe)}function xr(e){_(e)?e():e.unsubscribe()}var V={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var $={setTimeout:function(e,r){for(var t=[],n=2;n<arguments.length;n++)t[n-2]=arguments[n];var o=$.delegate;return o?.setTimeout?o.setTimeout.apply(o,J([e,r],G(t))):setTimeout.apply(void 0,J([e,r],G(t)))},clearTimeout:function(e){var r=$.delegate;return(r?.clearTimeout||clearTimeout)(e)},delegate:void 0};function wr(e){$.setTimeout(function(){var r=V.onUnhandledError;if(r)r(e);else throw e})}function Be(){}var vr=function(){return De("C",void 0,void 0)}();function Sr(e){return De("E",void 0,e)}function Tr(e){return De("N",e,void 0)}function De(e,r,t){return{kind:e,value:r,error:t}}var Re=null;function Mr(e){V.useDeprecatedSynchronousErrorHandling&&Re&&(Re.errorThrown=!0,Re.error=e)}var We=function(e){ee(r,e);function r(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,br(t)&&t.add(n)):n.destination=zt,n}return r.create=function(t,n,o){return new Ve(t,n,o)},r.prototype.next=function(t){this.isStopped?Ne(Tr(t),this):this._next(t)},r.prototype.error=function(t){this.isStopped?Ne(Sr(t),this):(this.isStopped=!0,this._error(t))},r.prototype.complete=function(){this.isStopped?Ne(vr,this):(this.isStopped=!0,this._complete())},r.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},r.prototype._next=function(t){this.destination.next(t)},r.prototype._error=function(t){try{this.destination.error(t)}finally{this.unsubscribe()}},r.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},r}(ye);var Vt=Function.prototype.bind;function Ie(e,r){return Vt.call(e,r)}var Ht=function(){function e(r){this.partialObserver=r}return e.prototype.next=function(r){var t=this.partialObserver;if(t.next)try{t.next(r)}catch(n){xe(n)}},e.prototype.error=function(r){var t=this.partialObserver;if(t.error)try{t.error(r)}catch(n){xe(n)}else xe(r)},e.prototype.complete=function(){var r=this.partialObserver;if(r.complete)try{r.complete()}catch(t){xe(t)}},e}(),Ve=function(e){ee(r,e);function r(t,n,o){var i=e.call(this)||this,s;if(_(t)||!t)s={next:t??void 0,error:n??void 0,complete:o??void 0};else{var f;i&&V.useDeprecatedNextContext?(f=Object.create(t),f.unsubscribe=function(){return i.unsubscribe()},s={next:t.next&&Ie(t.next,f),error:t.error&&Ie(t.error,f),complete:t.complete&&Ie(t.complete,f)}):s=t}return i.destination=new Ht(s),i}return r}(We);function xe(e){V.useDeprecatedSynchronousErrorHandling?Mr(e):wr(e)}function Ut(e){throw e}function Ne(e,r){var t=V.onStoppedNotification;t&&$.setTimeout(function(){return t(e,r)})}var zt={closed:!0,next:Be,error:Ut,complete:Be};function Gt(e){return _(e?.lift)}function be(e){return function(r){if(Gt(r))return r.lift(function(t){try{return e(t,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}function Pr(e,r,t,n,o){return new Jt(e,r,t,n,o)}var Jt=function(e){ee(r,e);function r(t,n,o,i,s,f){var p=e.call(this,t)||this;return p.onFinalize=s,p.shouldUnsubscribe=f,p._next=n?function(u){try{n(u)}catch(h){t.error(h)}}:e.prototype._next,p._error=i?function(u){try{i(u)}catch(h){t.error(h)}finally{this.unsubscribe()}}:e.prototype._error,p._complete=o?function(){try{o()}catch(u){t.error(u)}finally{this.unsubscribe()}}:e.prototype._complete,p}return r.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}},r}(We);var Er=he(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}});function re(e,r){var t=typeof r=="object";return new Promise(function(n,o){var i=new Ve({next:function(s){n(s),i.unsubscribe()},error:o,complete:function(){t?n(r.defaultValue):o(new Er)}});e.subscribe(i)})}function Ar(e,r,t,n,o){return function(i,s){var f=t,p=r,u=0;i.subscribe(Pr(s,function(h){var x=u++;p=f?e(p,h,x):(f=!0,h),n&&s.next(p)},o&&function(){f&&s.next(p),s.complete()}))}}function Cr(e,r){return be(Ar(e,r,arguments.length>=2,!1,!0))}var $t=function(e,r){return e.push(r),e};function te(){return be(function(e,r){Cr($t,[])(e).subscribe(r)})}var oe=class extends Fr.BaseFeatureDataAdapter{setupP;async setup(){if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...(0,_r.getSnapshot)(this.config),type:"BigBedAdapter"})).dataAdapter}}async setupPre(){return this.setupP||(this.setupP=this.setup().catch(r=>{throw this.setupP=void 0,r})),this.setupP}async getRefNames(){let{adapter:r}=await this.setup();return r.getRefNames()}async getHeader(){let{adapter:r}=await this.setup();return r.getHeader()}getFeatures(r){return(0,Or.ObservableCreate)(async t=>{let{adapter:n}=await this.setup(),o=await re(n.getFeatures(r).pipe(te()));for(let i of o){let f=i.get("mafBlock").split(";"),p,u=[],h={},x=[];for(let l of f)l.startsWith("s")&&(p?(u.push(l.split(/ +/)[6]),x.push(l)):(p=l.split(/ +/)[6],u.push(p),x.push(l)));for(let l=0;l<x.length;l++){let b=x[l].split(/ +/),d=b[1].split("."),A=d[0],c=d[1];h[A]={chr:c,start:+b[1],srcSize:+b[2],strand:b[3]==="+"?1:-1,unknown:+b[4],data:u[l]}}t.next(new Lr.SimpleFeature({id:i.id(),data:{start:i.get("start"),end:i.get("end"),refName:i.get("refName"),seq:u[0],alignments:h}}))}t.complete()})}freeResources(){}};function He(e){return e.addAdapterType(()=>new kr.AdapterType({name:"BigMafAdapter",AdapterClass:oe,configSchema:mr}))}var we=a(B());var jr=a(W()),Br=a(B());function Ue(e){return(0,jr.ConfigurationSchema)("MafTrack",{},{baseConfiguration:(0,Br.createBaseTrackConfig)(e),explicitIdentifier:"trackId"})}function ze(e){return e.addTrackType(()=>{let r=Ue(e);return new we.TrackType({name:"MafTrack",configSchema:r,displayName:"MAF track",stateModel:(0,we.createBaseTrackModel)(e,"MafTrack",r)})})}var nt=a(B());var Dr=a(W());function Ge(e){let r=e.getPlugin("LinearGenomeViewPlugin"),{baseLinearDisplayConfigSchema:t}=r.exports;return(0,Dr.ConfigurationSchema)("LinearMafDisplay",{renderer:e.pluggableConfigSchemaType("renderer")},{baseConfiguration:t,explicitlyTyped:!0})}var Te=a(z()),Me=a(W()),Pe=a(D());var P=a(R()),Hr=a(q()),E=a(Je()),Ur=a(ne()),zr=a($e()),qt=(0,zr.makeStyles)()({root:{width:500}}),Yt=(0,Hr.observer)(function(e){let{model:r,handleClose:t}=e,{classes:n}=qt(),[o,i]=(0,P.useState)(`${r.rowHeight}`),[s,f]=(0,P.useState)(`${r.rowProportion}`);return P.default.createElement(Ur.Dialog,{open:!0,onClose:t,title:"Filter options"},P.default.createElement(E.DialogContent,{className:n.root},P.default.createElement(E.Typography,null,"Set row height and the proportion of the row height to use for drawing each row"),P.default.createElement(E.TextField,{value:o,onChange:p=>{i(p.target.value)},placeholder:"Enter row height"}),P.default.createElement(E.TextField,{value:s,onChange:p=>{f(p.target.value)},placeholder:"Enter row proportion"}),P.default.createElement(E.DialogActions,null,P.default.createElement(E.Button,{variant:"contained",color:"primary",type:"submit",autoFocus:!0,onClick:()=>{r.setRowProportion(+s),r.setRowHeight(+o),t()}},"Submit"),P.default.createElement(E.Button,{variant:"contained",color:"secondary",onClick:()=>{t()}},"Cancel"))))}),Gr=Yt;function to(e){return typeof e[0]=="string"}function Ke(e,r){let t=r.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplay:n}=t.exports;return Te.types.compose("LinearMafDisplay",n,Te.types.model({type:Te.types.literal("LinearMafDisplay"),configuration:(0,Me.ConfigurationReference)(e),rowHeight:15,rowProportion:.8,showAllLetters:!1,mismatchRendering:!0})).volatile(()=>({prefersOffset:!0})).actions(o=>({setRowHeight(i){o.rowHeight=i},setRowProportion(i){o.rowProportion=i},setShowAllLetters(i){o.showAllLetters=i},setMismatchRendering(i){o.mismatchRendering=i}})).views(o=>({get samples(){let i=o.adapterConfig.samples;return to(i)?i.map(s=>({id:s,label:s,color:void 0})):i},get rendererTypeName(){return"LinearMafRenderer"},get rendererConfig(){let s=(0,Me.getConf)(o,["renderer"])||{};return o.rendererType.configSchema.create({...s,type:"LinearMafRenderer"},(0,Pe.getEnv)(o))}})).views(o=>{let{trackMenuItems:i,renderProps:s}=o;return{renderProps(){let{showAllLetters:f,rendererConfig:p,samples:u,rowHeight:h,rowProportion:x,mismatchRendering:l}=o;return{...s(),config:p,samples:u,rowHeight:h,rowProportion:x,showAllLetters:f,mismatchRendering:l}},trackMenuItems(){return[...i(),{label:"Set row height",onClick:()=>{(0,Pe.getSession)(o).queueDialog(f=>[Gr,{model:o,handleClose:f}])}},{label:"Show all letters",type:"checkbox",checked:o.showAllLetters,onClick:()=>{o.setShowAllLetters(!o.showAllLetters)}},{label:"Draw mismatches as single color",type:"checkbox",checked:!o.mismatchRendering,onClick:()=>{o.setMismatchRendering(!o.mismatchRendering)}}]}}}).actions(o=>{let{renderSvg:i}=o;return{async renderSvg(s){let{renderSvg:f}=await Promise.resolve().then(()=>(et(),Zr));return f(o,s,i)}}})}var Ee=a(R()),rt=a(D()),tt=a(q());Ye();var oo=(0,tt.observer)(function(e){let{model:r}=e,{pluginManager:t}=(0,rt.getEnv)(r),n=t.getPlugin("LinearGenomeViewPlugin"),{BaseLinearDisplayComponent:o}=n.exports;return Ee.default.createElement("div",null,Ee.default.createElement(o,{...e}),Ee.default.createElement(Se,{model:r}))}),ot=oo;function Qe(e){e.addDisplayType(()=>{let r=Ge(e),t=Ke(r,e);return new nt.DisplayType({name:"LinearMafDisplay",configSchema:r,stateModel:t,ReactComponent:ot,viewType:"LinearGenomeView",trackType:"MafTrack",displayName:"MAF display"})})}var it=a(W());var no=(0,it.ConfigurationSchema)("LinearMafRenderer",{},{explicitlyTyped:!0}),at=no;var pt=a(B()),ft=a(ne()),ae=a(D());function st(e){return Object.fromEntries(Object.entries(Xe(e)).map(([r,t])=>[r,e.palette.getContrastText(t)]))}function Xe(e){let{bases:r}=e.palette;return{a:r.A.main,c:r.C.main,g:r.G.main,t:r.T.main}}function io({ctx:e,renderArgs:r}){let{regions:t,bpPerPx:n,rowHeight:o,showAllLetters:i,theme:s,mismatchRendering:f,samples:p,rowProportion:u,features:h}=r,[x]=t,l=o*u,v=(0,ft.createJBrowseTheme)(s),b=Xe(v),d=st(v),A=new Map(p.map((O,N)=>[O.id,N])),c=1/n,C=.4,I=o/2,le=l/2,H=(o-l)/2;e.font="bold 10px Courier New,monospace";for(let O of h.values()){let[N]=(0,ae.featureSpanPx)(O,x,n),Ce=O.get("alignments"),k=O.get("seq").toLowerCase();for(let[X,Fe]of Object.entries(Ce)){let _e=Fe.data,M=_e.toLowerCase(),Z=A.get(X);if(Z===void 0)throw new Error(`unknown sample encountered: ${X}`);let F=o*Z;e.beginPath(),e.fillStyle="black";for(let y=0,S=0;y<M.length;y++)if(k[y]!=="-"){if(M[y]==="-"){let w=N+c*S;e.moveTo(w,F+I),e.lineTo(w+c+C,F+I)}S++}if(e.stroke(),!i){e.beginPath(),e.fillStyle="lightgrey";for(let y=0,S=0;y<M.length;y++)if(k[y]!=="-"){let w=M[y],U=N+c*S;k[y]===w&&w!=="-"&&e.rect(U,H+F,c+C,l),S++}e.fill()}for(let y=0,S=0;y<M.length;y++){let w=M[y];if(k[y]!=="-"){if(w!=="-"){let U=N+c*S;k[y]!==w?(e.fillStyle=f?b[w]??"black":"orange",e.fillRect(U,H+F,c+C,l)):i&&(e.fillStyle=f?b[w]??"black":"lightblue",e.fillRect(U,H+F,c+C,l))}S++}}let j=10;if(c>=j){for(let y=0,S=0;y<M.length;y++)if(k[y]!=="-"){let w=N+c*S,U=(c-j)/2+1,Le=M[y];(i||k[y]!==Le)&&Le!=="-"&&(e.fillStyle=d[Le]??"white",e.fillText(_e[y],w+U,le+F+3)),S++}}}}for(let O of h.values()){let[N]=(0,ae.featureSpanPx)(O,x,n),Ce=O.get("alignments"),k=O.get("seq").toLowerCase();for(let[X,Fe]of Object.entries(Ce)){let M=Fe.data.toLowerCase(),Z=A.get(X);if(Z===void 0)throw new Error(`unknown sample encountered: ${X}`);let F=o*Z;e.beginPath(),e.fillStyle="purple";for(let j=0,y=0;j<M.length;j++){let S="";for(;k[j]==="-";)M[j]!=="-"&&(S+=M[j]),j++;if(S.length>0){let w=N+c*y-1;e.rect(w,H+F+1,1,l-1),e.rect(w-2,H+F,5,1),e.rect(w-2,H+F+l-1,5,1)}y++}e.fill()}}}var se=class extends pt.FeatureRendererType{getExpandedRegion(r){let{start:t,end:n}=r,o=1;return{...r,start:Math.floor(Math.max(t-o,0)),end:Math.ceil(n+o)}}async render(r){let{regions:t,bpPerPx:n,samples:o,rowHeight:i}=r,[s]=t,f=o.length*i+100,p=(s.end-s.start)/n,u=await this.getFeatures(r),h=await(0,ae.renderToAbstractCanvas)(p,f,r,l=>{io({ctx:l,renderArgs:{...r,features:u}})});return{...await super.render({...r,...h,width:p,height:f}),...h,width:p,height:f}}};var lt=a(ne()),ct=a(q()),ut=a(R()),ao=(0,ct.observer)(function(e){return ut.default.createElement(lt.PrerenderedCanvas,{...e})}),mt=ao;function Ze(e){e.addRendererType(()=>new se({name:"LinearMafRenderer",ReactComponent:mt,configSchema:at,pluginManager:e}))}var bt=a(B());var er=a(W());var so=(0,er.ConfigurationSchema)("MafTabixAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},bedGzLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi",locationType:"UriLocation"}},index:(0,er.ConfigurationSchema)("Index",{location:{type:"fileLocation",defaultValue:{uri:"/path/to/my.bed.gz.tbi"}},indexType:{type:"string",defaultValue:"TBI"}})},{explicitlyTyped:!0}),dt=so;var ht=a(me()),gt=a(z()),yt=a(D()),xt=a(de());var pe=class extends ht.BaseFeatureDataAdapter{setupP;async setup(){let r=this.config;if(!this.getSubAdapter)throw new Error("no getSubAdapter available");return{adapter:(await this.getSubAdapter({...(0,gt.getSnapshot)(r),type:"BedTabixAdapter"})).dataAdapter}}async setupPre(){return this.setupP||(this.setupP=this.setup().catch(r=>{throw this.setupP=void 0,r})),this.setupP}async getRefNames(){let{adapter:r}=await this.setup();return r.getRefNames()}async getHeader(){let{adapter:r}=await this.setup();return r.getHeader()}getFeatures(r){return(0,xt.ObservableCreate)(async t=>{let{adapter:n}=await this.setup(),o=await re(n.getFeatures(r).pipe(te())),i=this.getConf("samples"),s=typeof i[0]=="string"?i:i.map(u=>u.id),f=new Set(s),p=0;for(let u of o){let h=u.get("field5").split(","),x={},l=h.map(v=>v.split(":")[5]);for(let[v,b]of h.entries()){let d=b.split(":"),A=d[0].lastIndexOf("."),c=d[0].slice(0,A),C=d[0].slice(A+1),I=f.has(c)?c:s.find(le=>d[0].startsWith(le));I?x[I]={chr:C,start:+d[1],srcSize:+d[2],strand:d[3]==="-"?-1:1,unknown:+d[4],data:l[v]}:p<100?(console.error(`line not processed ${d[0]}`),p++):p>100&&console.error("too many errors, not printing any more")}t.next(new yt.SimpleFeature({id:u.id(),data:{start:u.get("start"),end:u.get("end"),refName:u.get("refName"),name:u.get("name"),score:u.get("score"),alignments:x,seq:l[0]}}))}t.complete()})}freeResources(){}};function rr(e){return e.addAdapterType(()=>new bt.AdapterType({name:"MafTabixAdapter",AdapterClass:pe,configSchema:dt}))}var At=a(B());var wt=a(W());var po=(0,wt.ConfigurationSchema)("TaffyAdapter",{samples:{type:"frozen",description:"string[] or {id:string,label:string,color?:string}[]",defaultValue:[]},tafLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.taf",locationType:"UriLocation"}},taiLocation:{type:"fileLocation",defaultValue:{uri:"/path/to/my.taf.tai",locationType:"UriLocation"}}},{explicitlyTyped:!0}),vt=po;var Mt=a(me()),Pt=a(de()),Et=a(Tt()),fe=class extends Mt.BaseFeatureDataAdapter{setupP;async getRefNames(){let r=await this.setup();return Object.keys(r)}setup(){return this.setupP||(this.setupP=this.readTaiFile().catch(r=>{throw this.setupP=void 0,r})),this.setupP}async readTaiFile(){let r=await(0,Et.openLocation)(this.getConf("taiLocation")).readFile("utf8"),t={},n="";for(let o of r.split(`
|
|
4
|
+
`).filter(i=>i.trim())){let[i,s,f]=o.split(" "),p=i==="*"?n:i,u=p.split(".").at(-1);t[u]||(t[u]=[]),t[u].push({chrStart:+s,fileOffst:+f}),n=p}return t}getFeatures(r){return(0,Pt.ObservableCreate)(async t=>{try{t.complete()}catch(n){t.error(n)}})}freeResources(){}};function tr(e){return e.addAdapterType(()=>new At.AdapterType({name:"TaffyAdapter",AdapterClass:fe,configSchema:vt}))}var _t=a(B()),Lt=a(z());var m=a(R()),g=a(Je()),Ct=a($e()),Q=a(D()),K=a(ne()),Ft=a(z()),fo=(0,Ct.makeStyles)()(e=>({textbox:{width:"100%"},paper:{margin:e.spacing(),padding:e.spacing()},submit:{marginTop:25,marginBottom:100,display:"block"}}));function or({model:e}){let{classes:r}=fo(),[t,n]=(0,m.useState)(""),[o,i]=(0,m.useState)(),[s,f]=(0,m.useState)(),[p,u]=(0,m.useState)(),[h,x]=(0,m.useState)("MAF track"),[l,v]=(0,m.useState)("BigMafAdapter"),[b,d]=(0,m.useState)("TBI"),A=(0,Ft.getRoot)(e);return m.default.createElement(g.Paper,{className:r.paper},m.default.createElement(g.Paper,null,p?m.default.createElement(K.ErrorMessage,{error:p}):null,m.default.createElement(g.FormControl,null,m.default.createElement(g.FormLabel,null,"File type"),m.default.createElement(g.RadioGroup,{value:l,onChange:c=>{v(c.target.value)}},m.default.createElement(g.FormControlLabel,{value:"BigMafAdapter",control:m.default.createElement(g.Radio,null),checked:l==="BigMafAdapter",label:"bigMaf"}),m.default.createElement(g.FormControlLabel,{value:"MafTabixAdapter",control:m.default.createElement(g.Radio,null),checked:l==="MafTabixAdapter",label:"mafTabix"}))),l==="BigMafAdapter"?m.default.createElement(K.FileSelector,{location:o,name:"Path to bigMaf",rootModel:A,setLocation:c=>{i(c)}}):m.default.createElement(m.default.Fragment,null,m.default.createElement(g.FormControl,null,m.default.createElement(g.FormLabel,null,"Index type"),m.default.createElement(g.RadioGroup,{value:l,onChange:c=>{d(c.target.value)}},m.default.createElement(g.FormControlLabel,{value:"TBI",control:m.default.createElement(g.Radio,null),checked:b==="TBI",label:"TBI"}),m.default.createElement(g.FormControlLabel,{value:"CSI",control:m.default.createElement(g.Radio,null),checked:b==="CSI",label:"CSI"}))),m.default.createElement(K.FileSelector,{location:o,name:"Path to MAF tabix",setLocation:c=>{i(c)},rootModel:A}),m.default.createElement(K.FileSelector,{location:s,name:"Path to MAF tabix index",setLocation:c=>{f(c)},rootModel:A}))),m.default.createElement(g.TextField,{multiline:!0,rows:10,value:t,onChange:c=>{n(c.target.value)},placeholder:"Enter sample names from the MAF file, one per line, or JSON formatted array of samples",variant:"outlined",fullWidth:!0}),m.default.createElement(g.TextField,{value:h,helperText:"Track name",onChange:c=>{x(c.target.value)}}),m.default.createElement(g.Button,{variant:"contained",className:r.submit,onClick:()=>{try{let c=(0,Q.getSession)(e),C=[];try{C=JSON.parse(t)}catch{C=t.split(/\n|\r\n|\r/)}let I=[`${h.toLowerCase().replaceAll(" ","_")}-${Date.now()}`,c.adminMode?"":"-sessionTrack"].join("");(0,Q.isSessionWithAddTracks)(c)&&(c.addTrackConf({trackId:I,type:"MafTrack",name:h,assemblyNames:[e.assembly],adapter:l==="BigMafAdapter"?{type:l,bigBedLocation:o,samples:C}:{type:l,bedGzLocation:o,index:{indexType:b,location:s},samples:C}}),e.view?.showTrack(I)),e.clearData(),(0,Q.isSessionModelWithWidgets)(c)&&c.hideWidget(e)}catch(c){u(c)}}},"Submit"))}function nr(e){e.addAddTrackWorkflowType(()=>new _t.AddTrackWorkflowType({name:"MAF track",ReactComponent:or,stateModel:Lt.types.model({})}))}var Ae=class extends Ot.default{name="MafViewerPlugin";version=fr;install(r){He(r),ze(r),Qe(r),Ze(r),rr(r),tr(r),nr(r)}configure(r){}};return It(lo);})();
|
|
2
5
|
//# sourceMappingURL=jbrowse-plugin-mafviewer.umd.production.min.js.map
|