jbrowse-plugin-mafviewer 1.2.2 → 1.2.4
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 +6 -1
- package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.d.ts +12 -3
- package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js +123 -94
- package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js.map +1 -1
- package/dist/BigMafAdapter/BigMafAdapter.d.ts +1 -1
- package/dist/BigMafAdapter/BigMafAdapter.js +50 -49
- package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -1
- package/dist/LinearMafDisplay/components/ColorLegend.d.ts +2 -4
- package/dist/LinearMafDisplay/components/ColorLegend.js +2 -3
- package/dist/LinearMafDisplay/components/ColorLegend.js.map +1 -1
- package/dist/LinearMafDisplay/components/{ReactComponent.d.ts → LinearMafDisplayComponent.d.ts} +1 -1
- package/dist/LinearMafDisplay/components/{ReactComponent.js → LinearMafDisplayComponent.js} +2 -2
- package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js.map +1 -0
- package/dist/LinearMafDisplay/components/SetRowHeightDialog.js +38 -0
- package/dist/LinearMafDisplay/components/SetRowHeightDialog.js.map +1 -0
- package/dist/LinearMafDisplay/components/SvgWrapper.d.ts +1 -1
- package/dist/LinearMafDisplay/components/SvgWrapper.js.map +1 -1
- package/dist/LinearMafDisplay/components/Tree.d.ts +2 -1
- package/dist/LinearMafDisplay/components/Tree.js +2 -0
- package/dist/LinearMafDisplay/components/Tree.js.map +1 -1
- package/dist/LinearMafDisplay/components/YScaleBars.d.ts +1 -1
- package/dist/LinearMafDisplay/components/YScaleBars.js +1 -10
- package/dist/LinearMafDisplay/components/YScaleBars.js.map +1 -1
- package/dist/LinearMafDisplay/index.js +1 -1
- package/dist/LinearMafDisplay/index.js.map +1 -1
- package/dist/LinearMafDisplay/stateModel.d.ts +20 -19
- package/dist/LinearMafDisplay/stateModel.js +42 -7
- package/dist/LinearMafDisplay/stateModel.js.map +1 -1
- package/dist/LinearMafDisplay/types.d.ts +5 -3
- package/dist/LinearMafDisplay/types.js +1 -15
- package/dist/LinearMafDisplay/types.js.map +1 -1
- package/dist/LinearMafDisplay/util.d.ts +4 -0
- package/dist/LinearMafDisplay/util.js +16 -0
- package/dist/LinearMafDisplay/util.js.map +1 -0
- package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +4 -4
- package/dist/LinearMafRenderer/LinearMafRenderer.js +9 -11
- package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
- package/dist/LinearMafRenderer/makeImageData.js +35 -17
- package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
- package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +1 -1
- package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -1
- package/dist/MafAddTrackWorkflow/index.js +0 -1
- package/dist/MafAddTrackWorkflow/index.js.map +1 -1
- package/dist/MafTabixAdapter/MafTabixAdapter.d.ts +1 -1
- package/dist/MafTabixAdapter/MafTabixAdapter.js +6 -7
- package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -1
- package/dist/MafTabixAdapter/configSchema.js +29 -1
- package/dist/MafTabixAdapter/configSchema.js.map +1 -1
- package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +7 -19
- package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
- package/dist/util.d.ts +2 -2
- package/dist/util.js +5 -1
- package/dist/util.js.map +1 -1
- package/package.json +11 -10
- package/src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts +135 -99
- package/src/BigMafAdapter/BigMafAdapter.ts +52 -49
- package/src/LinearMafDisplay/components/ColorLegend.tsx +11 -7
- package/src/LinearMafDisplay/components/{ReactComponent.tsx → LinearMafDisplayComponent.tsx} +2 -2
- package/src/LinearMafDisplay/components/SetRowHeightDialog.tsx +83 -0
- package/src/LinearMafDisplay/components/SvgWrapper.tsx +1 -2
- package/src/LinearMafDisplay/components/Tree.tsx +5 -1
- package/src/LinearMafDisplay/components/YScaleBars.tsx +3 -21
- package/src/LinearMafDisplay/index.ts +1 -1
- package/src/LinearMafDisplay/stateModel.ts +49 -18
- package/src/LinearMafDisplay/types.ts +4 -24
- package/src/LinearMafDisplay/util.ts +27 -0
- package/src/LinearMafRenderer/LinearMafRenderer.ts +10 -15
- package/src/LinearMafRenderer/makeImageData.ts +48 -18
- package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +9 -11
- package/src/MafAddTrackWorkflow/index.ts +0 -1
- package/src/MafTabixAdapter/MafTabixAdapter.ts +9 -7
- package/src/MafTabixAdapter/configSchema.ts +29 -1
- package/src/util.ts +6 -2
- package/dist/LinearMafDisplay/components/ReactComponent.js.map +0 -1
- package/dist/LinearMafDisplay/components/SetRowHeight.js +0 -36
- package/dist/LinearMafDisplay/components/SetRowHeight.js.map +0 -1
- package/src/LinearMafDisplay/components/SetRowHeight.tsx +0 -83
- /package/dist/LinearMafDisplay/components/{SetRowHeight.d.ts → SetRowHeightDialog.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -94,7 +94,12 @@ can use nhLocation or samples array on adapter
|
|
|
94
94
|
|
|
95
95
|
### Example BgzipTaffyAdapter config
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
Note: TAF files are actually significantly slower and has known bugs...will
|
|
98
|
+
update once fixed
|
|
99
|
+
|
|
100
|
+
This notice will be removed it it is improved
|
|
101
|
+
|
|
102
|
+
As with other adapters, you can use nhLocation or samples array on adapter
|
|
98
103
|
|
|
99
104
|
```json
|
|
100
105
|
{
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
2
|
import { Feature, Region } from '@jbrowse/core/util';
|
|
3
|
-
import type { IndexData } from './types';
|
|
3
|
+
import type { IndexData, OrganismRecord } from './types';
|
|
4
4
|
export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
5
5
|
setupP?: Promise<IndexData>;
|
|
6
|
+
private cache;
|
|
6
7
|
getRefNames(): Promise<string[]>;
|
|
8
|
+
getChunk(buffer: Uint8Array, opts?: BaseOptions): Promise<{
|
|
9
|
+
uniqueId: string;
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
strand: number;
|
|
13
|
+
alignments: Record<string, OrganismRecord>;
|
|
14
|
+
seq: string;
|
|
15
|
+
} | undefined>;
|
|
7
16
|
setupPre(): Promise<IndexData>;
|
|
8
17
|
setup(opts?: BaseOptions): Promise<IndexData>;
|
|
9
18
|
readTaiFile(): Promise<IndexData>;
|
|
@@ -11,11 +20,11 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
|
11
20
|
getSamples(_query: Region): Promise<{
|
|
12
21
|
samples: {
|
|
13
22
|
id: string;
|
|
14
|
-
label
|
|
23
|
+
label?: string;
|
|
15
24
|
color?: string;
|
|
16
25
|
}[];
|
|
17
26
|
tree: Record<string, any> | undefined;
|
|
18
27
|
}>;
|
|
19
|
-
getLines(query: Region, byteRanges: IndexData): Promise<
|
|
28
|
+
getLines(query: Region, byteRanges: IndexData): Promise<unknown>;
|
|
20
29
|
freeResources(): void;
|
|
21
30
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { unzip } from '@gmod/bgzf-filehandle';
|
|
2
2
|
import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
3
|
import { SimpleFeature, updateStatus, } from '@jbrowse/core/util';
|
|
4
|
+
import QuickLRU from '@jbrowse/core/util/QuickLRU';
|
|
4
5
|
import { openLocation } from '@jbrowse/core/util/io';
|
|
5
6
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
7
|
+
import AbortablePromiseCache from 'abortable-promise-cache';
|
|
6
8
|
import Long from 'long';
|
|
7
9
|
import VirtualOffset from './virtualOffset';
|
|
8
10
|
import parseNewick from '../parseNewick';
|
|
@@ -12,10 +14,116 @@ import { parseLineByLine } from './util';
|
|
|
12
14
|
const toP = (s = 0) => +(+s).toFixed(1);
|
|
13
15
|
export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
14
16
|
setupP;
|
|
17
|
+
cache = new AbortablePromiseCache({
|
|
18
|
+
cache: new QuickLRU({ maxSize: 50 }),
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
fill: async ({ nextEntry, firstEntry }, signal, statusCallback) => {
|
|
21
|
+
const file = openLocation(this.getConf('tafGzLocation'));
|
|
22
|
+
const response = await file.read(nextEntry.virtualOffset.blockPosition -
|
|
23
|
+
firstEntry.virtualOffset.blockPosition, firstEntry.virtualOffset.blockPosition);
|
|
24
|
+
const buffer = await unzip(response);
|
|
25
|
+
const slice = buffer.slice(firstEntry.virtualOffset.dataPosition);
|
|
26
|
+
return this.getChunk(slice, {
|
|
27
|
+
statusCallback: statusCallback,
|
|
28
|
+
signal,
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
});
|
|
15
32
|
async getRefNames() {
|
|
16
33
|
const data = await this.setup();
|
|
17
34
|
return Object.keys(data);
|
|
18
35
|
}
|
|
36
|
+
async getChunk(buffer, opts) {
|
|
37
|
+
const { statusCallback = () => { } } = opts || {};
|
|
38
|
+
const alignments = {};
|
|
39
|
+
const data = [];
|
|
40
|
+
let a0;
|
|
41
|
+
let j = 0;
|
|
42
|
+
let b = 0;
|
|
43
|
+
parseLineByLine(buffer, line => {
|
|
44
|
+
if (j++ % 100 === 0) {
|
|
45
|
+
statusCallback(`Processing ${toP(b / 1_000_000)}/${toP(buffer.length / 1_000_000)}Mb`);
|
|
46
|
+
}
|
|
47
|
+
b += line.length;
|
|
48
|
+
if (line) {
|
|
49
|
+
const [lineData, rowInstructions] = line.split(' ; ');
|
|
50
|
+
if (rowInstructions) {
|
|
51
|
+
for (const ins of parseRowInstructions(rowInstructions)) {
|
|
52
|
+
if (ins.type === 'i') {
|
|
53
|
+
data.splice(ins.row, 0, ins);
|
|
54
|
+
if (!alignments[ins.asm]) {
|
|
55
|
+
alignments[ins.asm] = {
|
|
56
|
+
start: ins.start,
|
|
57
|
+
strand: ins.strand,
|
|
58
|
+
srcSize: ins.length,
|
|
59
|
+
chr: ins.ref,
|
|
60
|
+
data: '',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
const e = alignments[ins.asm];
|
|
64
|
+
e.data += ' '.repeat(Math.max(0, j - e.data.length - 1)); // catch it up
|
|
65
|
+
}
|
|
66
|
+
else if (ins.type === 's') {
|
|
67
|
+
if (!alignments[ins.asm]) {
|
|
68
|
+
alignments[ins.asm] = {
|
|
69
|
+
start: ins.start,
|
|
70
|
+
strand: ins.strand,
|
|
71
|
+
srcSize: ins.length,
|
|
72
|
+
chr: ins.ref,
|
|
73
|
+
data: '',
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const e = alignments[ins.asm];
|
|
77
|
+
e.data += ' '.repeat(Math.max(0, j - e.data.length - 1)); // catch it up
|
|
78
|
+
data[ins.row] = ins;
|
|
79
|
+
}
|
|
80
|
+
else if (ins.type === 'd') {
|
|
81
|
+
data.splice(ins.row, 1);
|
|
82
|
+
}
|
|
83
|
+
// no gaps for now(?)
|
|
84
|
+
// else if (ins.type === 'g') {
|
|
85
|
+
// console.log('g??')
|
|
86
|
+
// } else if (ins.type === 'G') {
|
|
87
|
+
// console.log('G??')
|
|
88
|
+
// }
|
|
89
|
+
}
|
|
90
|
+
if (!a0) {
|
|
91
|
+
a0 = data[0];
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const lineLen = lineData.length;
|
|
95
|
+
for (let i = 0; i < lineLen; i++) {
|
|
96
|
+
const letter = lineData[i];
|
|
97
|
+
const r = data[i];
|
|
98
|
+
if (r) {
|
|
99
|
+
alignments[r.asm].data += letter;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// not sure why but chr22_KI270731v1_random.taf.gz ends up here
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
if (a0) {
|
|
108
|
+
const row0 = alignments[a0.asm];
|
|
109
|
+
// see
|
|
110
|
+
// https://github.com/ComparativeGenomicsToolkit/taffy/blob/f5a5354/docs/taffy_utilities.md#referenced-based-maftaf-and-indexing
|
|
111
|
+
// for the significance of row[0]:
|
|
112
|
+
//
|
|
113
|
+
// "An anchor line in TAF is a column from which all sequence
|
|
114
|
+
// coordinates can be deduced without scanning backwards to previous
|
|
115
|
+
// lines "
|
|
116
|
+
return {
|
|
117
|
+
uniqueId: `${row0.start}-${row0.data.length}`,
|
|
118
|
+
start: row0.start,
|
|
119
|
+
end: row0.start + row0.data.length,
|
|
120
|
+
strand: row0.strand,
|
|
121
|
+
alignments,
|
|
122
|
+
seq: row0.data,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
19
127
|
setupPre() {
|
|
20
128
|
if (!this.setupP) {
|
|
21
129
|
this.setupP = this.readTaiFile().catch((e) => {
|
|
@@ -72,95 +180,17 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
|
72
180
|
return ObservableCreate(async (observer) => {
|
|
73
181
|
try {
|
|
74
182
|
const byteRanges = await this.setup();
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
b += line.length;
|
|
87
|
-
if (line) {
|
|
88
|
-
const [lineData, rowInstructions] = line.split(' ; ');
|
|
89
|
-
if (rowInstructions) {
|
|
90
|
-
for (const ins of parseRowInstructions(rowInstructions)) {
|
|
91
|
-
if (ins.type === 'i') {
|
|
92
|
-
data.splice(ins.row, 0, ins);
|
|
93
|
-
if (!alignments[ins.asm]) {
|
|
94
|
-
alignments[ins.asm] = {
|
|
95
|
-
start: ins.start,
|
|
96
|
-
strand: ins.strand,
|
|
97
|
-
srcSize: ins.length,
|
|
98
|
-
chr: ins.ref,
|
|
99
|
-
data: '',
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
const e = alignments[ins.asm];
|
|
103
|
-
e.data += ' '.repeat(Math.max(0, j - e.data.length)); // catch it up
|
|
104
|
-
}
|
|
105
|
-
else if (ins.type === 's') {
|
|
106
|
-
if (!alignments[ins.asm]) {
|
|
107
|
-
alignments[ins.asm] = {
|
|
108
|
-
start: ins.start,
|
|
109
|
-
strand: ins.strand,
|
|
110
|
-
srcSize: ins.length,
|
|
111
|
-
chr: ins.ref,
|
|
112
|
-
data: '',
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
const e = alignments[ins.asm];
|
|
116
|
-
e.data += ' '.repeat(Math.max(0, j - e.data.length)); // catch it up
|
|
117
|
-
data[ins.row] = ins;
|
|
118
|
-
}
|
|
119
|
-
else if (ins.type === 'd') {
|
|
120
|
-
data.splice(ins.row, 1);
|
|
121
|
-
}
|
|
122
|
-
// no gaps for now(?)
|
|
123
|
-
// else if (ins.type === 'g') {
|
|
124
|
-
// }
|
|
125
|
-
// else if (ins.type === 'G') {
|
|
126
|
-
// }
|
|
127
|
-
}
|
|
128
|
-
if (!a0) {
|
|
129
|
-
a0 = data[0];
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
const lineLen = lineData.length;
|
|
133
|
-
for (let i = 0; i < lineLen; i++) {
|
|
134
|
-
const letter = lineData[i];
|
|
135
|
-
const r = data[i];
|
|
136
|
-
if (r) {
|
|
137
|
-
alignments[r.asm].data += letter;
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// not sure why but chr22_KI270731v1_random.taf.gz ends up here
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
if (a0) {
|
|
146
|
-
const row0 = alignments[a0.asm];
|
|
147
|
-
// see
|
|
148
|
-
// https://github.com/ComparativeGenomicsToolkit/taffy/blob/f5a5354/docs/taffy_utilities.md#referenced-based-maftaf-and-indexing
|
|
149
|
-
// for the significance of row[0]:
|
|
150
|
-
//
|
|
151
|
-
// "An anchor line in TAF is a column from which all sequence
|
|
152
|
-
// coordinates can be deduced without scanning backwards to previous
|
|
153
|
-
// lines "
|
|
154
|
-
observer.next(new SimpleFeature({
|
|
155
|
-
uniqueId: `${row0.start}-${row0.data.length}`,
|
|
156
|
-
refName: query.refName,
|
|
157
|
-
start: row0.start,
|
|
158
|
-
end: row0.start + row0.data.length,
|
|
159
|
-
strand: row0.strand,
|
|
160
|
-
alignments,
|
|
161
|
-
seq: row0.data,
|
|
162
|
-
}));
|
|
163
|
-
}
|
|
183
|
+
const feat = await updateStatus('Downloading alignments', statusCallback, () => this.getLines(query, byteRanges));
|
|
184
|
+
if (feat) {
|
|
185
|
+
observer.next(
|
|
186
|
+
// @ts-expect-error
|
|
187
|
+
new SimpleFeature({
|
|
188
|
+
...feat,
|
|
189
|
+
refName: query.refName,
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
console.error('no feature found');
|
|
164
194
|
}
|
|
165
195
|
statusCallback('');
|
|
166
196
|
observer.complete();
|
|
@@ -184,7 +214,6 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
|
184
214
|
}
|
|
185
215
|
// TODO: cache processed large chunks
|
|
186
216
|
async getLines(query, byteRanges) {
|
|
187
|
-
const file = openLocation(this.getConf('tafGzLocation'));
|
|
188
217
|
const records = byteRanges[query.refName];
|
|
189
218
|
if (records) {
|
|
190
219
|
let firstEntry;
|
|
@@ -211,10 +240,10 @@ export default class BgzipTaffyAdapter extends BaseFeatureDataAdapter {
|
|
|
211
240
|
// file whn you request e.g. out of range region (e.g. taf in chr22:1-100
|
|
212
241
|
// and you are at chr22:200-300)
|
|
213
242
|
if (firstEntry && nextEntry) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
243
|
+
return this.cache.get(`${JSON.stringify(nextEntry)}_${JSON.stringify(firstEntry)}`, {
|
|
244
|
+
nextEntry,
|
|
245
|
+
firstEntry,
|
|
246
|
+
});
|
|
218
247
|
}
|
|
219
248
|
}
|
|
220
249
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BgzipTaffyAdapter.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAGL,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"BgzipTaffyAdapter.js","sourceRoot":"","sources":["../../src/BgzipTaffyAdapter/BgzipTaffyAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAGL,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,QAAQ,MAAM,6BAA6B,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAcxC,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAEvC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,sBAAsB;IAC5D,MAAM,CAAqB;IAE1B,KAAK,GAAG,IAAI,qBAAqB,CAAC;QACxC,KAAK,EAAE,IAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACpC,mBAAmB;QACnB,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE;YAChE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;YACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,SAAS,CAAC,aAAa,CAAC,aAAa;gBACnC,UAAU,CAAC,aAAa,CAAC,aAAa,EACxC,UAAU,CAAC,aAAa,CAAC,aAAa,CACvC,CAAA;YACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;YACjE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC1B,cAAc,EAAE,cAAuC;gBACvD,MAAM;aACP,CAAC,CAAA;QACJ,CAAC;KACF,CAAC,CAAA;IAEF,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,CAAC,QAAQ,CAAC,MAAkB,EAAE,IAAkB;QACnD,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,MAAM,UAAU,GAAG,EAAoC,CAAA;QACvD,MAAM,IAAI,GAAG,EAAa,CAAA;QAC1B,IAAI,EAAO,CAAA;QACX,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;gBACpB,cAAc,CACZ,cAAc,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CACvE,CAAA;YACH,CAAC;YACD,CAAC,IAAI,IAAI,CAAC,MAAM,CAAA;YAChB,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBACrD,IAAI,eAAe,EAAE,CAAC;oBACpB,KAAK,MAAM,GAAG,IAAI,oBAAoB,CAAC,eAAe,CAAC,EAAE,CAAC;wBACxD,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;4BACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;4BAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gCACzB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;oCACpB,KAAK,EAAE,GAAG,CAAC,KAAK;oCAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oCAClB,OAAO,EAAE,GAAG,CAAC,MAAM;oCACnB,GAAG,EAAE,GAAG,CAAC,GAAG;oCACZ,IAAI,EAAE,EAAE;iCACT,CAAA;4BACH,CAAC;4BACD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;4BAC9B,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;wBACzE,CAAC;6BAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;4BAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gCACzB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG;oCACpB,KAAK,EAAE,GAAG,CAAC,KAAK;oCAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oCAClB,OAAO,EAAE,GAAG,CAAC,MAAM;oCACnB,GAAG,EAAE,GAAG,CAAC,GAAG;oCACZ,IAAI,EAAE,EAAE;iCACT,CAAA;4BACH,CAAC;4BACD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;4BAC9B,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,cAAc;4BACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;wBACrB,CAAC;6BAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;4BAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;wBACzB,CAAC;wBAED,qBAAqB;wBACrB,+BAA+B;wBAC/B,uBAAuB;wBACvB,iCAAiC;wBACjC,uBAAuB;wBACvB,IAAI;oBACN,CAAC;oBACD,IAAI,CAAC,EAAE,EAAE,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,GAAG,QAAS,CAAC,MAAM,CAAA;gBAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjC,MAAM,MAAM,GAAG,QAAS,CAAC,CAAC,CAAC,CAAA;oBAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;oBAEjB,IAAI,CAAC,EAAE,CAAC;wBACN,UAAU,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC,IAAI,IAAI,MAAM,CAAA;oBACnC,CAAC;yBAAM,CAAC;wBACN,+DAA+D;oBACjE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG,CAAE,CAAA;YAEhC,MAAM;YACN,gIAAgI;YAChI,kCAAkC;YAClC,EAAE;YACF,6DAA6D;YAC7D,oEAAoE;YACpE,UAAU;YACV,OAAO;gBACL,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU;gBACV,GAAG,EAAE,IAAI,CAAC,IAAI;aACf,CAAA;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,QAAQ;QACN,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;IACD,KAAK,CAAC,IAAkB;QACtB,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,OAAO,YAAY,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,EAAE,CAC5D,IAAI,CAAC,QAAQ,EAAE,CAChB,CAAA;IACH,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,KAAK,GAAG,IAAI;aACf,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAClB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,OAAO,GAAG,EAAe,CAAA;QAC/B,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,oBAAoB,GAAG,CAAC,CAAA;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACvD,MAAM,wBAAwB,GAAG,oBAAoB,GAAG,CAAC,aAAc,CAAA;YACvE,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YAE/D,qEAAqE;YACrE,uEAAuE;YACvE,gDAAgD;YAChD,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACvB,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;YAE1D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;gBACrB,OAAO,GAAG,EAAE,CAAA;gBACZ,YAAY,GAAG,CAAC,CAAA;gBAChB,oBAAoB,GAAG,CAAC,CAAA;YAC1B,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,QAAS,GAAG,YAAY,CAAA;YAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;gBACpB,QAAQ,EAAE,SAAS;gBACnB,aAAa,EAAE,IAAI;aACpB,CAAC,CAAA;YACF,OAAO,GAAG,OAAO,CAAA;YACjB,YAAY,GAAG,SAAS,CAAA;YACxB,oBAAoB,GAAG,wBAAwB,CAAA;QACjD,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,IAAkB;QAC3C,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,OAAO,gBAAgB,CAAU,KAAK,EAAC,QAAQ,EAAC,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;gBACrC,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,wBAAwB,EACxB,cAAc,EACd,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CACvC,CAAA;gBACD,IAAI,IAAI,EAAE,CAAC;oBACT,QAAQ,CAAC,IAAI;oBACX,mBAAmB;oBACnB,IAAI,aAAa,CAAC;wBAChB,GAAG,IAAI;wBACP,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CACH,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBACnC,CAAC;gBAED,cAAc,CAAC,EAAE,CAAC,CAAA;gBAClB,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;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,EAAE,GACN,KAAK,CAAC,GAAG,KAAK,gBAAgB;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhD,2EAA2E;QAC3E,OAAO;QACP,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACvC,CAAA;IACH,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,UAAqB;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,UAAU,CAAA;YACd,IAAI,SAAS,CAAA;YAEb,YAAY;YACZ,sEAAsE;YACtE,OAAO;YACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACxC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;oBACxC,MAAK;gBACP,CAAC;YACH,CAAC;YACD,wEAAwE;YACxE,mBAAmB;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC;oBACtC,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBAC1B,MAAK;gBACP,CAAC;YACH,CAAC;YAED,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACvC,uFAAuF;YACvF,yEAAyE;YACzE,gCAAgC;YAChC,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAC5D;oBACE,SAAS;oBACT,UAAU;iBACX,CACF,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,aAAa,KAAU,CAAC;CACzB"}
|
|
@@ -12,12 +12,11 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
|
|
|
12
12
|
if (!this.getSubAdapter) {
|
|
13
13
|
throw new Error('no getSubAdapter available');
|
|
14
14
|
}
|
|
15
|
-
const adapter = await this.getSubAdapter({
|
|
16
|
-
...getSnapshot(this.config),
|
|
17
|
-
type: 'BigBedAdapter',
|
|
18
|
-
});
|
|
19
15
|
return {
|
|
20
|
-
adapter:
|
|
16
|
+
adapter: (await this.getSubAdapter({
|
|
17
|
+
...getSnapshot(this.config),
|
|
18
|
+
type: 'BigBedAdapter',
|
|
19
|
+
})).dataAdapter,
|
|
21
20
|
};
|
|
22
21
|
}
|
|
23
22
|
async setupPre() {
|
|
@@ -41,53 +40,55 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
|
|
|
41
40
|
const { statusCallback = () => { } } = opts || {};
|
|
42
41
|
return ObservableCreate(async (observer) => {
|
|
43
42
|
const { adapter } = await this.setup();
|
|
44
|
-
const features = await updateStatus('Downloading
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
43
|
+
const features = await updateStatus('Downloading alignments', statusCallback, () => firstValueFrom(adapter.getFeatures(query).pipe(toArray())));
|
|
44
|
+
await updateStatus('Processing alignments', statusCallback, () => {
|
|
45
|
+
for (const feature of features) {
|
|
46
|
+
const maf = feature.get('mafBlock');
|
|
47
|
+
const blocks = maf.split(';');
|
|
48
|
+
let aln;
|
|
49
|
+
const alns = [];
|
|
50
|
+
const alignments = {};
|
|
51
|
+
const blocks2 = [];
|
|
52
|
+
for (const block of blocks) {
|
|
53
|
+
if (block.startsWith('s')) {
|
|
54
|
+
if (aln) {
|
|
55
|
+
alns.push(block.split(/ +/)[6]);
|
|
56
|
+
blocks2.push(block);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
aln = block.split(/ +/)[6];
|
|
60
|
+
alns.push(aln);
|
|
61
|
+
blocks2.push(block);
|
|
62
|
+
}
|
|
62
63
|
}
|
|
63
64
|
}
|
|
65
|
+
for (let i = 0; i < blocks2.length; i++) {
|
|
66
|
+
const elt = blocks2[i];
|
|
67
|
+
const ad = elt.split(/ +/);
|
|
68
|
+
const y = ad[1].split('.');
|
|
69
|
+
const org = y[0];
|
|
70
|
+
const chr = y[1];
|
|
71
|
+
alignments[org] = {
|
|
72
|
+
chr: chr,
|
|
73
|
+
start: +ad[1],
|
|
74
|
+
srcSize: +ad[2],
|
|
75
|
+
strand: ad[3] === '+' ? 1 : -1,
|
|
76
|
+
unknown: +ad[4],
|
|
77
|
+
data: alns[i],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
observer.next(new SimpleFeature({
|
|
81
|
+
id: feature.id(),
|
|
82
|
+
data: {
|
|
83
|
+
start: feature.get('start'),
|
|
84
|
+
end: feature.get('end'),
|
|
85
|
+
refName: feature.get('refName'),
|
|
86
|
+
seq: alns[0],
|
|
87
|
+
alignments: alignments,
|
|
88
|
+
},
|
|
89
|
+
}));
|
|
64
90
|
}
|
|
65
|
-
|
|
66
|
-
const elt = blocks2[i];
|
|
67
|
-
const ad = elt.split(/ +/);
|
|
68
|
-
const y = ad[1].split('.');
|
|
69
|
-
const org = y[0];
|
|
70
|
-
const chr = y[1];
|
|
71
|
-
alignments[org] = {
|
|
72
|
-
chr: chr,
|
|
73
|
-
start: +ad[1],
|
|
74
|
-
srcSize: +ad[2],
|
|
75
|
-
strand: ad[3] === '+' ? 1 : -1,
|
|
76
|
-
unknown: +ad[4],
|
|
77
|
-
data: alns[i],
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
observer.next(new SimpleFeature({
|
|
81
|
-
id: feature.id(),
|
|
82
|
-
data: {
|
|
83
|
-
start: feature.get('start'),
|
|
84
|
-
end: feature.get('end'),
|
|
85
|
-
refName: feature.get('refName'),
|
|
86
|
-
seq: alns[0],
|
|
87
|
-
alignments: alignments,
|
|
88
|
-
},
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
+
});
|
|
91
92
|
observer.complete();
|
|
92
93
|
});
|
|
93
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9C,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAanC,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,sBAAsB;IACxD,MAAM,CAA+C;IAE5D,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { LinearMafDisplayModel } from '../stateModel';
|
|
3
|
-
declare const ColorLegend: ({ model,
|
|
2
|
+
import type { LinearMafDisplayModel } from '../stateModel';
|
|
3
|
+
declare const ColorLegend: ({ model, }: {
|
|
4
4
|
model: LinearMafDisplayModel;
|
|
5
|
-
svgFontSize: number;
|
|
6
|
-
labelWidth: number;
|
|
7
5
|
}) => React.JSX.Element;
|
|
8
6
|
export default ColorLegend;
|
|
@@ -2,9 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import RectBg from './RectBg';
|
|
4
4
|
import Tree from './Tree';
|
|
5
|
-
const ColorLegend = observer(function ({ model,
|
|
6
|
-
const { totalHeight, treeWidth, samples = [], rowHeight } = model;
|
|
7
|
-
const canDisplayLabel = rowHeight >= 8;
|
|
5
|
+
const ColorLegend = observer(function ({ model, }) {
|
|
6
|
+
const { labelWidth, canDisplayLabel, totalHeight, treeWidth, samples = [], rowHeight, svgFontSize, } = model;
|
|
8
7
|
const boxHeight = Math.min(20, rowHeight);
|
|
9
8
|
return (React.createElement(React.Fragment, null,
|
|
10
9
|
React.createElement(RectBg, { y: 0, x: 0, width: labelWidth + 5 + treeWidth, height: totalHeight }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,IAAI,MAAM,QAAQ,CAAA;AAIzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EACrC,KAAK,GAGN;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,WAAW,GACZ,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,CACL;QACE,oBAAC,MAAM,IACL,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS,EACjC,MAAM,EAAE,WAAW,GACnB;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI;QACtB,2BAAG,SAAS,EAAE,aAAa,SAAS,GAAG,CAAC,KAAK;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,CAAC,EAAE,GAAG,GAAG,SAAS,EAClB,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,EACrB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,CAAC;YACD,eAAe;gBACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,8BACE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,gBAAgB,EAAC,QAAQ,EACzB,QAAQ,EAAE,WAAW,EACrB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,IAEjC,MAAM,CAAC,KAAK,CACR,CACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACN,CACH,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,WAAW,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useRef, useState } from 'react';
|
|
2
|
+
import { SanitizedHTML } from '@jbrowse/core/ui';
|
|
2
3
|
import BaseTooltip from '@jbrowse/core/ui/BaseTooltip';
|
|
3
|
-
import SanitizedHTML from '@jbrowse/core/ui/SanitizedHTML';
|
|
4
4
|
import { getContainingView, getEnv } from '@jbrowse/core/util';
|
|
5
5
|
import { observer } from 'mobx-react';
|
|
6
6
|
import { makeStyles } from 'tss-react/mui';
|
|
@@ -47,4 +47,4 @@ const LinearMafDisplay = observer(function (props) {
|
|
|
47
47
|
.join('\n') })))) : null));
|
|
48
48
|
});
|
|
49
49
|
export default LinearMafDisplay;
|
|
50
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=LinearMafDisplayComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearMafDisplayComponent.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { Dialog } from '@jbrowse/core/ui';
|
|
3
|
+
import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { makeStyles } from 'tss-react/mui';
|
|
6
|
+
const useStyles = makeStyles()({
|
|
7
|
+
root: {
|
|
8
|
+
width: 500,
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
const SetRowHeightDialog = observer(function (props) {
|
|
12
|
+
const { model, handleClose } = props;
|
|
13
|
+
const { classes } = useStyles();
|
|
14
|
+
const [rowHeight, setRowHeight] = useState(`${model.rowHeight}`);
|
|
15
|
+
const [rowProportion, setRowProportion] = useState(`${model.rowProportion}`);
|
|
16
|
+
return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Set row height" },
|
|
17
|
+
React.createElement("form", { onSubmit: event => {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
model.setRowProportion(+rowProportion);
|
|
20
|
+
model.setRowHeight(+rowHeight);
|
|
21
|
+
handleClose();
|
|
22
|
+
} },
|
|
23
|
+
React.createElement(DialogContent, { className: classes.root },
|
|
24
|
+
React.createElement(Typography, null, "Set row height and the proportion of the row height to use for drawing each row"),
|
|
25
|
+
React.createElement(TextField, { value: rowHeight, helperText: "Enter row height", autoFocus: true, onChange: event => {
|
|
26
|
+
setRowHeight(event.target.value);
|
|
27
|
+
} }),
|
|
28
|
+
React.createElement(TextField, { value: rowProportion, helperText: "Enter row proportion", onChange: event => {
|
|
29
|
+
setRowProportion(event.target.value);
|
|
30
|
+
} }),
|
|
31
|
+
React.createElement(DialogActions, null,
|
|
32
|
+
React.createElement(Button, { variant: "contained", color: "primary", type: "submit" }, "Submit"),
|
|
33
|
+
React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
|
|
34
|
+
handleClose();
|
|
35
|
+
} }, "Cancel"))))));
|
|
36
|
+
});
|
|
37
|
+
export default SetRowHeightDialog;
|
|
38
|
+
//# sourceMappingURL=SetRowHeightDialog.js.map
|