@jbrowse/plugin-sequence 2.0.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js +16 -34
- package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js.map +1 -1
- package/dist/BgzipFastaAdapter/configSchema.js +1 -1
- package/dist/BgzipFastaAdapter/configSchema.js.map +1 -1
- package/dist/BgzipFastaAdapter/index.d.ts +3 -1
- package/dist/BgzipFastaAdapter/index.js +38 -3
- package/dist/BgzipFastaAdapter/index.js.map +1 -1
- package/dist/ChromSizesAdapter/ChromSizesAdapter.d.ts +9 -9
- package/dist/ChromSizesAdapter/ChromSizesAdapter.js +34 -128
- package/dist/ChromSizesAdapter/ChromSizesAdapter.js.map +1 -1
- package/dist/ChromSizesAdapter/configSchema.js +1 -1
- package/dist/ChromSizesAdapter/configSchema.js.map +1 -1
- package/dist/ChromSizesAdapter/index.d.ts +3 -1
- package/dist/ChromSizesAdapter/index.js +38 -3
- package/dist/ChromSizesAdapter/index.js.map +1 -1
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.js +51 -89
- package/dist/DivSequenceRenderer/components/DivSequenceRendering.js.map +1 -1
- package/dist/DivSequenceRenderer/configSchema.js +1 -1
- package/dist/DivSequenceRenderer/configSchema.js.map +1 -1
- package/dist/DivSequenceRenderer/index.d.ts +3 -2
- package/dist/DivSequenceRenderer/index.js +25 -5
- package/dist/DivSequenceRenderer/index.js.map +1 -1
- package/dist/GCContentAdapter/GCContentAdapter.d.ts +1 -7
- package/dist/GCContentAdapter/GCContentAdapter.js +75 -180
- package/dist/GCContentAdapter/GCContentAdapter.js.map +1 -1
- package/dist/GCContentAdapter/configSchema.js +3 -3
- package/dist/GCContentAdapter/configSchema.js.map +1 -1
- package/dist/GCContentAdapter/index.d.ts +1 -4
- package/dist/GCContentAdapter/index.js +15 -7
- package/dist/GCContentAdapter/index.js.map +1 -1
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js +77 -171
- package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js.map +1 -1
- package/dist/IndexedFastaAdapter/configSchema.js +1 -1
- package/dist/IndexedFastaAdapter/configSchema.js.map +1 -1
- package/dist/IndexedFastaAdapter/index.d.ts +3 -1
- package/dist/IndexedFastaAdapter/index.js +38 -3
- package/dist/IndexedFastaAdapter/index.js.map +1 -1
- package/dist/LinearReferenceSequenceDisplay/configSchema.js +6 -3
- package/dist/LinearReferenceSequenceDisplay/configSchema.js.map +1 -1
- package/dist/LinearReferenceSequenceDisplay/index.d.ts +3 -2
- package/dist/LinearReferenceSequenceDisplay/index.js +16 -5
- package/dist/LinearReferenceSequenceDisplay/index.js.map +1 -1
- package/dist/LinearReferenceSequenceDisplay/model.d.ts +1 -1
- package/dist/LinearReferenceSequenceDisplay/model.js +29 -33
- package/dist/LinearReferenceSequenceDisplay/model.js.map +1 -1
- package/dist/{referenceSeqTrackConfig.d.ts → ReferenceSequenceTrack/configSchema.d.ts} +0 -0
- package/dist/{referenceSeqTrackConfig.js → ReferenceSequenceTrack/configSchema.js} +19 -30
- package/dist/ReferenceSequenceTrack/configSchema.js.map +1 -0
- package/dist/ReferenceSequenceTrack/index.d.ts +3 -0
- package/dist/ReferenceSequenceTrack/index.js +19 -0
- package/dist/ReferenceSequenceTrack/index.js.map +1 -0
- package/dist/SequenceSearchAdapter/SequenceSearchAdapter.d.ts +8 -0
- package/dist/SequenceSearchAdapter/SequenceSearchAdapter.js +84 -0
- package/dist/SequenceSearchAdapter/SequenceSearchAdapter.js.map +1 -0
- package/dist/SequenceSearchAdapter/configSchema.d.ts +2 -0
- package/dist/SequenceSearchAdapter/configSchema.js +28 -0
- package/dist/SequenceSearchAdapter/configSchema.js.map +1 -0
- package/dist/SequenceSearchAdapter/index.d.ts +3 -0
- package/dist/SequenceSearchAdapter/index.js +44 -0
- package/dist/SequenceSearchAdapter/index.js.map +1 -0
- package/dist/TwoBitAdapter/TwoBitAdapter.js +66 -174
- package/dist/TwoBitAdapter/TwoBitAdapter.js.map +1 -1
- package/dist/TwoBitAdapter/configSchema.js +1 -1
- package/dist/TwoBitAdapter/configSchema.js.map +1 -1
- package/dist/TwoBitAdapter/index.d.ts +3 -1
- package/dist/TwoBitAdapter/index.js +38 -3
- package/dist/TwoBitAdapter/index.js.map +1 -1
- package/dist/createExtensionPoints.d.ts +3 -0
- package/dist/createExtensionPoints.js +86 -0
- package/dist/createExtensionPoints.js.map +1 -0
- package/dist/index.js +27 -261
- package/dist/index.js.map +1 -1
- package/esm/BgzipFastaAdapter/index.d.ts +3 -1
- package/esm/BgzipFastaAdapter/index.js +15 -1
- package/esm/BgzipFastaAdapter/index.js.map +1 -1
- package/esm/ChromSizesAdapter/ChromSizesAdapter.d.ts +9 -9
- package/esm/ChromSizesAdapter/ChromSizesAdapter.js +20 -26
- package/esm/ChromSizesAdapter/ChromSizesAdapter.js.map +1 -1
- package/esm/ChromSizesAdapter/index.d.ts +3 -1
- package/esm/ChromSizesAdapter/index.js +15 -1
- package/esm/ChromSizesAdapter/index.js.map +1 -1
- package/esm/DivSequenceRenderer/index.d.ts +3 -2
- package/esm/DivSequenceRenderer/index.js +25 -2
- package/esm/DivSequenceRenderer/index.js.map +1 -1
- package/esm/GCContentAdapter/GCContentAdapter.d.ts +1 -7
- package/esm/GCContentAdapter/GCContentAdapter.js +7 -18
- package/esm/GCContentAdapter/GCContentAdapter.js.map +1 -1
- package/esm/GCContentAdapter/index.d.ts +1 -4
- package/esm/GCContentAdapter/index.js +11 -3
- package/esm/GCContentAdapter/index.js.map +1 -1
- package/esm/IndexedFastaAdapter/index.d.ts +3 -1
- package/esm/IndexedFastaAdapter/index.js +15 -1
- package/esm/IndexedFastaAdapter/index.js.map +1 -1
- package/esm/LinearReferenceSequenceDisplay/configSchema.js +1 -1
- package/esm/LinearReferenceSequenceDisplay/configSchema.js.map +1 -1
- package/esm/LinearReferenceSequenceDisplay/index.d.ts +3 -2
- package/esm/LinearReferenceSequenceDisplay/index.js +16 -2
- package/esm/LinearReferenceSequenceDisplay/index.js.map +1 -1
- package/esm/LinearReferenceSequenceDisplay/model.d.ts +1 -1
- package/esm/{referenceSeqTrackConfig.d.ts → ReferenceSequenceTrack/configSchema.d.ts} +0 -0
- package/esm/{referenceSeqTrackConfig.js → ReferenceSequenceTrack/configSchema.js} +1 -1
- package/esm/ReferenceSequenceTrack/configSchema.js.map +1 -0
- package/esm/ReferenceSequenceTrack/index.d.ts +3 -0
- package/esm/ReferenceSequenceTrack/index.js +14 -0
- package/esm/ReferenceSequenceTrack/index.js.map +1 -0
- package/esm/SequenceSearchAdapter/SequenceSearchAdapter.d.ts +8 -0
- package/esm/SequenceSearchAdapter/SequenceSearchAdapter.js +81 -0
- package/esm/SequenceSearchAdapter/SequenceSearchAdapter.js.map +1 -0
- package/esm/SequenceSearchAdapter/configSchema.d.ts +2 -0
- package/esm/SequenceSearchAdapter/configSchema.js +26 -0
- package/esm/SequenceSearchAdapter/configSchema.js.map +1 -0
- package/esm/SequenceSearchAdapter/index.d.ts +3 -0
- package/esm/SequenceSearchAdapter/index.js +16 -0
- package/esm/SequenceSearchAdapter/index.js.map +1 -0
- package/esm/TwoBitAdapter/index.d.ts +3 -1
- package/esm/TwoBitAdapter/index.js +15 -1
- package/esm/TwoBitAdapter/index.js.map +1 -1
- package/esm/createExtensionPoints.d.ts +3 -0
- package/esm/createExtensionPoints.js +84 -0
- package/esm/createExtensionPoints.js.map +1 -0
- package/esm/index.js +19 -186
- package/esm/index.js.map +1 -1
- package/package.json +6 -8
- package/src/BgzipFastaAdapter/index.ts +22 -1
- package/src/ChromSizesAdapter/ChromSizesAdapter.ts +22 -42
- package/src/ChromSizesAdapter/index.ts +22 -1
- package/src/DivSequenceRenderer/index.ts +31 -2
- package/src/GCContentAdapter/GCContentAdapter.ts +15 -25
- package/src/GCContentAdapter/index.ts +17 -4
- package/src/IndexedFastaAdapter/index.ts +22 -1
- package/src/LinearReferenceSequenceDisplay/configSchema.ts +1 -1
- package/src/LinearReferenceSequenceDisplay/index.ts +19 -2
- package/src/{referenceSeqTrackConfig.ts → ReferenceSequenceTrack/configSchema.ts} +0 -0
- package/src/ReferenceSequenceTrack/index.ts +21 -0
- package/src/SequenceSearchAdapter/SequenceSearchAdapter.ts +103 -0
- package/src/SequenceSearchAdapter/configSchema.ts +31 -0
- package/src/SequenceSearchAdapter/index.ts +22 -0
- package/src/TwoBitAdapter/index.ts +21 -1
- package/src/createExtensionPoints.ts +122 -0
- package/src/index.ts +20 -268
- package/dist/referenceSeqTrackConfig.js.map +0 -1
- package/esm/referenceSeqTrackConfig.js.map +0 -1
package/esm/index.js
CHANGED
|
@@ -1,197 +1,30 @@
|
|
|
1
|
-
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
|
|
2
|
-
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models';
|
|
3
|
-
import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType';
|
|
4
|
-
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType';
|
|
5
1
|
import Plugin from '@jbrowse/core/Plugin';
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import { configSchema as indexedFastaAdapterConfigSchema } from './IndexedFastaAdapter';
|
|
12
|
-
import { configSchema as linearReferenceSequenceDisplayConfigSchema, modelFactory as linearReferenceSequenceDisplayModelFactory, } from './LinearReferenceSequenceDisplay';
|
|
13
|
-
import { configSchema as twoBitAdapterConfigSchema } from './TwoBitAdapter';
|
|
2
|
+
import TwoBitAdapterF from './TwoBitAdapter';
|
|
3
|
+
import DivSequenceRendererF from './DivSequenceRenderer';
|
|
4
|
+
import BgzipFastaAdapterF from './BgzipFastaAdapter';
|
|
5
|
+
import ChromSizesAdapterF from './ChromSizesAdapter';
|
|
6
|
+
import IndexedFastaAdapterF from './IndexedFastaAdapter';
|
|
14
7
|
import GCContentAdapterF from './GCContentAdapter';
|
|
15
|
-
import
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
super(...arguments);
|
|
20
|
-
this.supportsSVG = true;
|
|
21
|
-
}
|
|
22
|
-
getExpandedRegion(region) {
|
|
23
|
-
return {
|
|
24
|
-
...region,
|
|
25
|
-
start: Math.max(region.start - 3, 0),
|
|
26
|
-
end: region.end + 3,
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
8
|
+
import SequenceSearchAdapterF from './SequenceSearchAdapter';
|
|
9
|
+
import ReferenceSequenceTrackF from './ReferenceSequenceTrack';
|
|
10
|
+
import LinearReferenceSequenceDisplayF from './LinearReferenceSequenceDisplay';
|
|
11
|
+
import createExtensionPoints from './createExtensionPoints';
|
|
30
12
|
export default class SequencePlugin extends Plugin {
|
|
31
13
|
constructor() {
|
|
32
14
|
super(...arguments);
|
|
33
15
|
this.name = 'SequencePlugin';
|
|
34
16
|
}
|
|
35
17
|
install(pluginManager) {
|
|
36
|
-
pluginManager
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}));
|
|
47
|
-
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
48
|
-
return (file, index, adapterHint) => {
|
|
49
|
-
const regexGuess = /\.2bit$/i;
|
|
50
|
-
const adapterName = 'TwoBitAdapter';
|
|
51
|
-
const fileName = getFileName(file);
|
|
52
|
-
const obj = {
|
|
53
|
-
type: adapterName,
|
|
54
|
-
twoBitLocation: file,
|
|
55
|
-
};
|
|
56
|
-
if (regexGuess.test(fileName) && !adapterHint) {
|
|
57
|
-
return obj;
|
|
58
|
-
}
|
|
59
|
-
else if (adapterHint === adapterName) {
|
|
60
|
-
return obj;
|
|
61
|
-
}
|
|
62
|
-
return adapterGuesser(file, index, adapterHint);
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => {
|
|
66
|
-
return (adapterName) => {
|
|
67
|
-
if (adapterName === 'TwoBitAdapter') {
|
|
68
|
-
return 'ReferenceSequenceTrack';
|
|
69
|
-
}
|
|
70
|
-
return trackTypeGuesser(adapterName);
|
|
71
|
-
};
|
|
72
|
-
});
|
|
73
|
-
pluginManager.addAdapterType(() => new AdapterType({
|
|
74
|
-
name: 'ChromSizesAdapter',
|
|
75
|
-
configSchema: chromSizesAdapterConfigSchema,
|
|
76
|
-
adapterMetadata: {
|
|
77
|
-
category: null,
|
|
78
|
-
hiddenFromGUI: true,
|
|
79
|
-
displayName: null,
|
|
80
|
-
description: null,
|
|
81
|
-
},
|
|
82
|
-
getAdapterClass: () => import('./ChromSizesAdapter/ChromSizesAdapter').then(r => r.default),
|
|
83
|
-
}));
|
|
84
|
-
pluginManager.addAdapterType(() => new AdapterType({
|
|
85
|
-
name: 'IndexedFastaAdapter',
|
|
86
|
-
configSchema: indexedFastaAdapterConfigSchema,
|
|
87
|
-
adapterMetadata: {
|
|
88
|
-
category: null,
|
|
89
|
-
hiddenFromGUI: true,
|
|
90
|
-
displayName: null,
|
|
91
|
-
description: null,
|
|
92
|
-
},
|
|
93
|
-
getAdapterClass: () => import('./IndexedFastaAdapter/IndexedFastaAdapter').then(r => r.default),
|
|
94
|
-
}));
|
|
95
|
-
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
96
|
-
return (file, index, adapterHint) => {
|
|
97
|
-
const regexGuess = /\.(fa|fasta|fas|fna|mfa)$/i;
|
|
98
|
-
const adapterName = 'IndexedFastaAdapter';
|
|
99
|
-
const fileName = getFileName(file);
|
|
100
|
-
const obj = {
|
|
101
|
-
type: adapterName,
|
|
102
|
-
fastaLocation: file,
|
|
103
|
-
faiLocation: index || makeIndex(file, '.fai'),
|
|
104
|
-
};
|
|
105
|
-
if (regexGuess.test(fileName) && !adapterHint) {
|
|
106
|
-
return obj;
|
|
107
|
-
}
|
|
108
|
-
else if (adapterHint === adapterName) {
|
|
109
|
-
return obj;
|
|
110
|
-
}
|
|
111
|
-
return adapterGuesser(file, index, adapterHint);
|
|
112
|
-
};
|
|
113
|
-
});
|
|
114
|
-
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => {
|
|
115
|
-
return (adapterName) => {
|
|
116
|
-
if (adapterName === 'IndexedFastaAdapter') {
|
|
117
|
-
return 'ReferenceSequenceTrack';
|
|
118
|
-
}
|
|
119
|
-
return trackTypeGuesser(adapterName);
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
pluginManager.addAdapterType(() => new AdapterType({
|
|
123
|
-
name: 'BgzipFastaAdapter',
|
|
124
|
-
configSchema: bgzipFastaAdapterConfigSchema,
|
|
125
|
-
adapterMetadata: {
|
|
126
|
-
category: null,
|
|
127
|
-
hiddenFromGUI: true,
|
|
128
|
-
displayName: null,
|
|
129
|
-
description: null,
|
|
130
|
-
},
|
|
131
|
-
getAdapterClass: () => import('./BgzipFastaAdapter/BgzipFastaAdapter').then(r => r.default),
|
|
132
|
-
}));
|
|
133
|
-
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
134
|
-
return (file, index, adapterHint) => {
|
|
135
|
-
const regexGuess = /\.(fa|fasta|fas|fna|mfa)\.b?gz$/i;
|
|
136
|
-
const adapterName = 'BgzipFastaAdapter';
|
|
137
|
-
const fileName = getFileName(file);
|
|
138
|
-
const obj = {
|
|
139
|
-
type: adapterName,
|
|
140
|
-
faiLocation: makeIndex(file, '.fai'),
|
|
141
|
-
gziLocation: makeIndex(file, '.gzi'),
|
|
142
|
-
};
|
|
143
|
-
if (regexGuess.test(fileName) && !adapterHint) {
|
|
144
|
-
return obj;
|
|
145
|
-
}
|
|
146
|
-
else if (adapterHint === adapterName) {
|
|
147
|
-
return obj;
|
|
148
|
-
}
|
|
149
|
-
return adapterGuesser(file, index, adapterHint);
|
|
150
|
-
};
|
|
151
|
-
});
|
|
152
|
-
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => {
|
|
153
|
-
return (adapterName) => {
|
|
154
|
-
if (adapterName === 'BgzipFastaAdapter') {
|
|
155
|
-
return 'ReferenceSequenceTrack';
|
|
156
|
-
}
|
|
157
|
-
return trackTypeGuesser(adapterName);
|
|
158
|
-
};
|
|
159
|
-
});
|
|
160
|
-
pluginManager.addAdapterType(() => new AdapterType({
|
|
161
|
-
name: 'GCContentAdapter',
|
|
162
|
-
adapterMetadata: {
|
|
163
|
-
category: null,
|
|
164
|
-
hiddenFromGUI: true,
|
|
165
|
-
displayName: null,
|
|
166
|
-
description: null,
|
|
167
|
-
},
|
|
168
|
-
...pluginManager.load(GCContentAdapterF),
|
|
169
|
-
}));
|
|
170
|
-
pluginManager.addTrackType(() => {
|
|
171
|
-
const configSchema = createReferenceSeqTrackConfig(pluginManager);
|
|
172
|
-
return new TrackType({
|
|
173
|
-
name: 'ReferenceSequenceTrack',
|
|
174
|
-
configSchema,
|
|
175
|
-
stateModel: createBaseTrackModel(pluginManager, 'ReferenceSequenceTrack', configSchema),
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
pluginManager.addDisplayType(() => {
|
|
179
|
-
const stateModel = linearReferenceSequenceDisplayModelFactory(linearReferenceSequenceDisplayConfigSchema);
|
|
180
|
-
return {
|
|
181
|
-
name: 'LinearReferenceSequenceDisplay',
|
|
182
|
-
configSchema: linearReferenceSequenceDisplayConfigSchema,
|
|
183
|
-
stateModel,
|
|
184
|
-
trackType: 'ReferenceSequenceTrack',
|
|
185
|
-
viewType: 'LinearGenomeView',
|
|
186
|
-
ReactComponent: BaseLinearDisplayComponent,
|
|
187
|
-
};
|
|
188
|
-
});
|
|
189
|
-
pluginManager.addRendererType(() => new DivSequenceRenderer({
|
|
190
|
-
name: 'DivSequenceRenderer',
|
|
191
|
-
ReactComponent: DivSequenceRendererReactComponent,
|
|
192
|
-
configSchema: divSequenceRendererConfigSchema,
|
|
193
|
-
pluginManager,
|
|
194
|
-
}));
|
|
18
|
+
DivSequenceRendererF(pluginManager);
|
|
19
|
+
TwoBitAdapterF(pluginManager);
|
|
20
|
+
BgzipFastaAdapterF(pluginManager);
|
|
21
|
+
ChromSizesAdapterF(pluginManager);
|
|
22
|
+
IndexedFastaAdapterF(pluginManager);
|
|
23
|
+
GCContentAdapterF(pluginManager);
|
|
24
|
+
SequenceSearchAdapterF(pluginManager);
|
|
25
|
+
ReferenceSequenceTrackF(pluginManager);
|
|
26
|
+
LinearReferenceSequenceDisplayF(pluginManager);
|
|
27
|
+
createExtensionPoints(pluginManager);
|
|
195
28
|
}
|
|
196
29
|
}
|
|
197
30
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,oBAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,oBAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,sBAAsB,MAAM,yBAAyB,CAAA;AAC5D,OAAO,uBAAuB,MAAM,0BAA0B,CAAA;AAC9D,OAAO,+BAA+B,MAAM,kCAAkC,CAAA;AAC9E,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,MAAM;IAAlD;;QACE,SAAI,GAAG,gBAAgB,CAAA;IAczB,CAAC;IAZC,OAAO,CAAC,aAA4B;QAClC,oBAAoB,CAAC,aAAa,CAAC,CAAA;QACnC,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,oBAAoB,CAAC,aAAa,CAAC,CAAA;QACnC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAChC,sBAAsB,CAAC,aAAa,CAAC,CAAA;QACrC,uBAAuB,CAAC,aAAa,CAAC,CAAA;QACtC,+BAA+B,CAAC,aAAa,CAAC,CAAA;QAC9C,qBAAqB,CAAC,aAAa,CAAC,CAAA;IACtC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-sequence",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "JBrowse 2 sequence adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -37,16 +37,14 @@
|
|
|
37
37
|
"clean": "rimraf dist esm *.tsbuildinfo"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@babel/runtime": "^7.17.9",
|
|
41
40
|
"@gmod/indexedfasta": "^2.0.2",
|
|
42
41
|
"@gmod/twobit": "^1.1.12",
|
|
43
|
-
"abortable-promise-cache": "^1.5.0"
|
|
44
|
-
"generic-filehandle": "^2.2.2"
|
|
42
|
+
"abortable-promise-cache": "^1.5.0"
|
|
45
43
|
},
|
|
46
44
|
"peerDependencies": {
|
|
47
|
-
"@jbrowse/core": "^
|
|
48
|
-
"@jbrowse/plugin-linear-genome-view": "^
|
|
49
|
-
"@jbrowse/plugin-wiggle": "^
|
|
45
|
+
"@jbrowse/core": "^2.0.0",
|
|
46
|
+
"@jbrowse/plugin-linear-genome-view": "^2.0.0",
|
|
47
|
+
"@jbrowse/plugin-wiggle": "^2.0.0",
|
|
50
48
|
"@mui/material": "^5.0.0",
|
|
51
49
|
"mobx": "^6.0.0",
|
|
52
50
|
"mobx-react": "^7.0.0",
|
|
@@ -61,5 +59,5 @@
|
|
|
61
59
|
"distModule": "esm/index.js",
|
|
62
60
|
"srcModule": "src/index.ts",
|
|
63
61
|
"module": "esm/index.js",
|
|
64
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "449b17325c9a4a97181f7ddddf48e80219f03b8d"
|
|
65
63
|
}
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
|
|
3
|
+
|
|
4
|
+
import configSchema from './configSchema'
|
|
5
|
+
|
|
6
|
+
export default (pluginManager: PluginManager) => {
|
|
7
|
+
pluginManager.addAdapterType(
|
|
8
|
+
() =>
|
|
9
|
+
new AdapterType({
|
|
10
|
+
name: 'BgzipFastaAdapter',
|
|
11
|
+
configSchema,
|
|
12
|
+
adapterMetadata: {
|
|
13
|
+
category: null,
|
|
14
|
+
hiddenFromGUI: true,
|
|
15
|
+
displayName: null,
|
|
16
|
+
description: null,
|
|
17
|
+
},
|
|
18
|
+
getAdapterClass: () =>
|
|
19
|
+
import('./BgzipFastaAdapter').then(r => r.default),
|
|
20
|
+
}),
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -2,56 +2,40 @@ import {
|
|
|
2
2
|
RegionsAdapter,
|
|
3
3
|
BaseAdapter,
|
|
4
4
|
} from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
5
|
-
import { FileLocation } from '@jbrowse/core/util/types'
|
|
6
5
|
import { openLocation } from '@jbrowse/core/util/io'
|
|
7
|
-
import { GenericFilehandle } from 'generic-filehandle'
|
|
8
|
-
import { readConfObject } from '@jbrowse/core/configuration'
|
|
9
|
-
import { Instance } from 'mobx-state-tree'
|
|
10
|
-
import MyConfigSchema from './configSchema'
|
|
11
|
-
import PluginManager from '@jbrowse/core/PluginManager'
|
|
12
|
-
import { getSubAdapterType } from '@jbrowse/core/data_adapters/dataAdapterCache'
|
|
13
6
|
|
|
14
7
|
export default class extends BaseAdapter implements RegionsAdapter {
|
|
15
8
|
// the map of refSeq to length
|
|
16
|
-
protected
|
|
9
|
+
protected setupP?: Promise<{ [key: string]: number }>
|
|
17
10
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
chromSizesLocation as FileLocation,
|
|
32
|
-
this.pluginManager,
|
|
11
|
+
async setupPre() {
|
|
12
|
+
const pm = this.pluginManager
|
|
13
|
+
const file = openLocation(this.getConf('chromSizesLocation'), pm)
|
|
14
|
+
const data = await file.readFile('utf8')
|
|
15
|
+
return Object.fromEntries(
|
|
16
|
+
data
|
|
17
|
+
.split('\n')
|
|
18
|
+
.map(f => f.trim())
|
|
19
|
+
.filter(f => !!f)
|
|
20
|
+
.map((line: string) => {
|
|
21
|
+
const [name, length] = line.split('\t')
|
|
22
|
+
return [name, +length]
|
|
23
|
+
}),
|
|
33
24
|
)
|
|
34
|
-
this.source = file.toString()
|
|
35
|
-
this.refSeqs = this.init(file)
|
|
36
25
|
}
|
|
37
26
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
27
|
+
async setup() {
|
|
28
|
+
if (!this.setupP) {
|
|
29
|
+
this.setupP = this.setupPre().catch(e => {
|
|
30
|
+
this.setupP = undefined
|
|
31
|
+
throw e
|
|
32
|
+
})
|
|
43
33
|
}
|
|
44
|
-
|
|
45
|
-
if (line.length) {
|
|
46
|
-
const [name, length] = line.split('\t')
|
|
47
|
-
refSeqs[name] = +length
|
|
48
|
-
}
|
|
49
|
-
})
|
|
50
|
-
return refSeqs
|
|
34
|
+
return this.setupP
|
|
51
35
|
}
|
|
52
36
|
|
|
53
37
|
public async getRegions() {
|
|
54
|
-
const refSeqs = await this.
|
|
38
|
+
const refSeqs = await this.setup()
|
|
55
39
|
return Object.keys(refSeqs).map(refName => ({
|
|
56
40
|
refName,
|
|
57
41
|
start: 0,
|
|
@@ -59,10 +43,6 @@ export default class extends BaseAdapter implements RegionsAdapter {
|
|
|
59
43
|
}))
|
|
60
44
|
}
|
|
61
45
|
|
|
62
|
-
public getFeatures() {
|
|
63
|
-
throw new Error('sequence not available')
|
|
64
|
-
}
|
|
65
|
-
|
|
66
46
|
public getHeader() {
|
|
67
47
|
return {}
|
|
68
48
|
}
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
|
|
3
|
+
|
|
4
|
+
import configSchema from './configSchema'
|
|
5
|
+
|
|
6
|
+
export default (pluginManager: PluginManager) => {
|
|
7
|
+
pluginManager.addAdapterType(
|
|
8
|
+
() =>
|
|
9
|
+
new AdapterType({
|
|
10
|
+
name: 'ChromSizesAdapter',
|
|
11
|
+
configSchema,
|
|
12
|
+
adapterMetadata: {
|
|
13
|
+
category: null,
|
|
14
|
+
hiddenFromGUI: true,
|
|
15
|
+
displayName: null,
|
|
16
|
+
description: null,
|
|
17
|
+
},
|
|
18
|
+
getAdapterClass: () =>
|
|
19
|
+
import('./ChromSizesAdapter').then(r => r.default),
|
|
20
|
+
}),
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -1,2 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
|
|
3
|
+
import { Region } from '@jbrowse/core/util/types'
|
|
4
|
+
import FeatureRendererType from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
|
|
5
|
+
import ReactComponent from './components/DivSequenceRendering'
|
|
6
|
+
import configSchema from './configSchema'
|
|
7
|
+
|
|
8
|
+
/* adjust in both directions */
|
|
9
|
+
class DivSequenceRenderer extends FeatureRendererType {
|
|
10
|
+
supportsSVG = true
|
|
11
|
+
|
|
12
|
+
getExpandedRegion(region: Region) {
|
|
13
|
+
return {
|
|
14
|
+
...region,
|
|
15
|
+
start: Math.max(region.start - 3, 0),
|
|
16
|
+
end: region.end + 3,
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default (pluginManager: PluginManager) => {
|
|
22
|
+
pluginManager.addRendererType(
|
|
23
|
+
() =>
|
|
24
|
+
new DivSequenceRenderer({
|
|
25
|
+
name: 'DivSequenceRenderer',
|
|
26
|
+
ReactComponent,
|
|
27
|
+
configSchema,
|
|
28
|
+
pluginManager,
|
|
29
|
+
}),
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -2,10 +2,8 @@ import {
|
|
|
2
2
|
BaseFeatureDataAdapter,
|
|
3
3
|
BaseOptions,
|
|
4
4
|
} from '@jbrowse/core/data_adapters/BaseAdapter'
|
|
5
|
-
import { Region } from '@jbrowse/core/util/types'
|
|
6
5
|
import { ObservableCreate } from '@jbrowse/core/util/rxjs'
|
|
7
|
-
import SimpleFeature,
|
|
8
|
-
import { readConfObject } from '@jbrowse/core/configuration'
|
|
6
|
+
import { SimpleFeature, Feature, Region } from '@jbrowse/core/util'
|
|
9
7
|
import { toArray } from 'rxjs/operators'
|
|
10
8
|
|
|
11
9
|
export default class extends BaseFeatureDataAdapter {
|
|
@@ -18,30 +16,19 @@ export default class extends BaseFeatureDataAdapter {
|
|
|
18
16
|
public static capabilities = ['hasLocalStats']
|
|
19
17
|
|
|
20
18
|
public async configure() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const dataAdapter = await this.getSubAdapter?.(sequenceAdapter)
|
|
25
|
-
if (!dataAdapter) {
|
|
19
|
+
const adapter = await this.getSubAdapter?.(this.getConf('sequenceAdapter'))
|
|
20
|
+
if (!adapter) {
|
|
26
21
|
throw new Error('Error getting subadapter')
|
|
27
22
|
}
|
|
28
|
-
return
|
|
23
|
+
return adapter.dataAdapter as BaseFeatureDataAdapter
|
|
29
24
|
}
|
|
30
25
|
|
|
31
26
|
public async getRefNames() {
|
|
32
|
-
const
|
|
33
|
-
return
|
|
27
|
+
const adapter = await this.configure()
|
|
28
|
+
return adapter.getRefNames()
|
|
34
29
|
}
|
|
35
30
|
|
|
36
|
-
/**
|
|
37
|
-
* Fetch features for a certain region
|
|
38
|
-
* @param param -
|
|
39
|
-
* @returns Observable of Feature objects in the region
|
|
40
|
-
*/
|
|
41
31
|
public getFeatures(query: Region, opts: BaseOptions) {
|
|
42
|
-
this.windowSize = 1000
|
|
43
|
-
this.windowDelta = 1000
|
|
44
|
-
this.gcMode = 'content'
|
|
45
32
|
return ObservableCreate<Feature>(async observer => {
|
|
46
33
|
const sequenceAdapter = await this.configure()
|
|
47
34
|
const hw = this.windowSize === 1 ? 1 : this.windowSize / 2 // Half the window size
|
|
@@ -56,11 +43,14 @@ export default class extends BaseFeatureDataAdapter {
|
|
|
56
43
|
return
|
|
57
44
|
}
|
|
58
45
|
|
|
59
|
-
const ret = sequenceAdapter.getFeatures(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
46
|
+
const ret = sequenceAdapter.getFeatures(
|
|
47
|
+
{
|
|
48
|
+
...query,
|
|
49
|
+
start: queryStart,
|
|
50
|
+
end: queryEnd,
|
|
51
|
+
},
|
|
52
|
+
opts,
|
|
53
|
+
)
|
|
64
54
|
const feats = await ret.pipe(toArray()).toPromise()
|
|
65
55
|
const residues = feats[0]?.get('seq') || ''
|
|
66
56
|
|
|
@@ -105,5 +95,5 @@ export default class extends BaseFeatureDataAdapter {
|
|
|
105
95
|
* will not be needed for the forseeable future and can be purged
|
|
106
96
|
* from caches, etc
|
|
107
97
|
*/
|
|
108
|
-
public freeResources(/* { region } */)
|
|
98
|
+
public freeResources(/* { region } */) {}
|
|
109
99
|
}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
|
|
3
|
+
|
|
2
4
|
import configSchemaF from './configSchema'
|
|
3
5
|
|
|
4
6
|
export default (pluginManager: PluginManager) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
pluginManager.addAdapterType(
|
|
8
|
+
() =>
|
|
9
|
+
new AdapterType({
|
|
10
|
+
name: 'GCContentAdapter',
|
|
11
|
+
adapterMetadata: {
|
|
12
|
+
category: null,
|
|
13
|
+
hiddenFromGUI: true,
|
|
14
|
+
displayName: null,
|
|
15
|
+
description: null,
|
|
16
|
+
},
|
|
17
|
+
configSchema: configSchemaF(pluginManager),
|
|
18
|
+
getAdapterClass: () =>
|
|
19
|
+
import('./GCContentAdapter').then(r => r.default),
|
|
20
|
+
}),
|
|
21
|
+
)
|
|
9
22
|
}
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
|
|
3
|
+
|
|
4
|
+
import configSchema from './configSchema'
|
|
5
|
+
|
|
6
|
+
export default (pluginManager: PluginManager) => {
|
|
7
|
+
pluginManager.addAdapterType(
|
|
8
|
+
() =>
|
|
9
|
+
new AdapterType({
|
|
10
|
+
name: 'IndexedFastaAdapter',
|
|
11
|
+
configSchema,
|
|
12
|
+
adapterMetadata: {
|
|
13
|
+
category: null,
|
|
14
|
+
hiddenFromGUI: true,
|
|
15
|
+
displayName: null,
|
|
16
|
+
description: null,
|
|
17
|
+
},
|
|
18
|
+
getAdapterClass: () =>
|
|
19
|
+
import('./IndexedFastaAdapter').then(r => r.default),
|
|
20
|
+
}),
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration'
|
|
2
|
-
import {
|
|
2
|
+
import { default as divSequenceRendererConfigSchema } from '../DivSequenceRenderer/configSchema'
|
|
3
3
|
|
|
4
4
|
export const configSchema = ConfigurationSchema(
|
|
5
5
|
'LinearReferenceSequenceDisplay',
|
|
@@ -1,2 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view'
|
|
3
|
+
|
|
4
|
+
import { configSchema } from './configSchema'
|
|
5
|
+
import { modelFactory } from './model'
|
|
6
|
+
|
|
7
|
+
export default (pluginManager: PluginManager) => {
|
|
8
|
+
pluginManager.addDisplayType(() => {
|
|
9
|
+
const stateModel = modelFactory(configSchema)
|
|
10
|
+
return {
|
|
11
|
+
name: 'LinearReferenceSequenceDisplay',
|
|
12
|
+
configSchema,
|
|
13
|
+
stateModel,
|
|
14
|
+
trackType: 'ReferenceSequenceTrack',
|
|
15
|
+
viewType: 'LinearGenomeView',
|
|
16
|
+
ReactComponent: BaseLinearDisplayComponent,
|
|
17
|
+
}
|
|
18
|
+
})
|
|
19
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
+
|
|
3
|
+
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType'
|
|
4
|
+
import { createBaseTrackModel } from '@jbrowse/core/pluggableElementTypes/models'
|
|
5
|
+
import { createReferenceSeqTrackConfig } from './configSchema'
|
|
6
|
+
|
|
7
|
+
export default (pluginManager: PluginManager) => {
|
|
8
|
+
pluginManager.addTrackType(() => {
|
|
9
|
+
const configSchema = createReferenceSeqTrackConfig(pluginManager)
|
|
10
|
+
|
|
11
|
+
return new TrackType({
|
|
12
|
+
name: 'ReferenceSequenceTrack',
|
|
13
|
+
configSchema,
|
|
14
|
+
stateModel: createBaseTrackModel(
|
|
15
|
+
pluginManager,
|
|
16
|
+
'ReferenceSequenceTrack',
|
|
17
|
+
configSchema,
|
|
18
|
+
),
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
}
|