@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.
Files changed (142) hide show
  1. package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js +16 -34
  2. package/dist/BgzipFastaAdapter/BgzipFastaAdapter.js.map +1 -1
  3. package/dist/BgzipFastaAdapter/configSchema.js +1 -1
  4. package/dist/BgzipFastaAdapter/configSchema.js.map +1 -1
  5. package/dist/BgzipFastaAdapter/index.d.ts +3 -1
  6. package/dist/BgzipFastaAdapter/index.js +38 -3
  7. package/dist/BgzipFastaAdapter/index.js.map +1 -1
  8. package/dist/ChromSizesAdapter/ChromSizesAdapter.d.ts +9 -9
  9. package/dist/ChromSizesAdapter/ChromSizesAdapter.js +34 -128
  10. package/dist/ChromSizesAdapter/ChromSizesAdapter.js.map +1 -1
  11. package/dist/ChromSizesAdapter/configSchema.js +1 -1
  12. package/dist/ChromSizesAdapter/configSchema.js.map +1 -1
  13. package/dist/ChromSizesAdapter/index.d.ts +3 -1
  14. package/dist/ChromSizesAdapter/index.js +38 -3
  15. package/dist/ChromSizesAdapter/index.js.map +1 -1
  16. package/dist/DivSequenceRenderer/components/DivSequenceRendering.js +51 -89
  17. package/dist/DivSequenceRenderer/components/DivSequenceRendering.js.map +1 -1
  18. package/dist/DivSequenceRenderer/configSchema.js +1 -1
  19. package/dist/DivSequenceRenderer/configSchema.js.map +1 -1
  20. package/dist/DivSequenceRenderer/index.d.ts +3 -2
  21. package/dist/DivSequenceRenderer/index.js +25 -5
  22. package/dist/DivSequenceRenderer/index.js.map +1 -1
  23. package/dist/GCContentAdapter/GCContentAdapter.d.ts +1 -7
  24. package/dist/GCContentAdapter/GCContentAdapter.js +75 -180
  25. package/dist/GCContentAdapter/GCContentAdapter.js.map +1 -1
  26. package/dist/GCContentAdapter/configSchema.js +3 -3
  27. package/dist/GCContentAdapter/configSchema.js.map +1 -1
  28. package/dist/GCContentAdapter/index.d.ts +1 -4
  29. package/dist/GCContentAdapter/index.js +15 -7
  30. package/dist/GCContentAdapter/index.js.map +1 -1
  31. package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js +77 -171
  32. package/dist/IndexedFastaAdapter/IndexedFastaAdapter.js.map +1 -1
  33. package/dist/IndexedFastaAdapter/configSchema.js +1 -1
  34. package/dist/IndexedFastaAdapter/configSchema.js.map +1 -1
  35. package/dist/IndexedFastaAdapter/index.d.ts +3 -1
  36. package/dist/IndexedFastaAdapter/index.js +38 -3
  37. package/dist/IndexedFastaAdapter/index.js.map +1 -1
  38. package/dist/LinearReferenceSequenceDisplay/configSchema.js +6 -3
  39. package/dist/LinearReferenceSequenceDisplay/configSchema.js.map +1 -1
  40. package/dist/LinearReferenceSequenceDisplay/index.d.ts +3 -2
  41. package/dist/LinearReferenceSequenceDisplay/index.js +16 -5
  42. package/dist/LinearReferenceSequenceDisplay/index.js.map +1 -1
  43. package/dist/LinearReferenceSequenceDisplay/model.d.ts +1 -1
  44. package/dist/LinearReferenceSequenceDisplay/model.js +29 -33
  45. package/dist/LinearReferenceSequenceDisplay/model.js.map +1 -1
  46. package/dist/{referenceSeqTrackConfig.d.ts → ReferenceSequenceTrack/configSchema.d.ts} +0 -0
  47. package/dist/{referenceSeqTrackConfig.js → ReferenceSequenceTrack/configSchema.js} +19 -30
  48. package/dist/ReferenceSequenceTrack/configSchema.js.map +1 -0
  49. package/dist/ReferenceSequenceTrack/index.d.ts +3 -0
  50. package/dist/ReferenceSequenceTrack/index.js +19 -0
  51. package/dist/ReferenceSequenceTrack/index.js.map +1 -0
  52. package/dist/SequenceSearchAdapter/SequenceSearchAdapter.d.ts +8 -0
  53. package/dist/SequenceSearchAdapter/SequenceSearchAdapter.js +84 -0
  54. package/dist/SequenceSearchAdapter/SequenceSearchAdapter.js.map +1 -0
  55. package/dist/SequenceSearchAdapter/configSchema.d.ts +2 -0
  56. package/dist/SequenceSearchAdapter/configSchema.js +28 -0
  57. package/dist/SequenceSearchAdapter/configSchema.js.map +1 -0
  58. package/dist/SequenceSearchAdapter/index.d.ts +3 -0
  59. package/dist/SequenceSearchAdapter/index.js +44 -0
  60. package/dist/SequenceSearchAdapter/index.js.map +1 -0
  61. package/dist/TwoBitAdapter/TwoBitAdapter.js +66 -174
  62. package/dist/TwoBitAdapter/TwoBitAdapter.js.map +1 -1
  63. package/dist/TwoBitAdapter/configSchema.js +1 -1
  64. package/dist/TwoBitAdapter/configSchema.js.map +1 -1
  65. package/dist/TwoBitAdapter/index.d.ts +3 -1
  66. package/dist/TwoBitAdapter/index.js +38 -3
  67. package/dist/TwoBitAdapter/index.js.map +1 -1
  68. package/dist/createExtensionPoints.d.ts +3 -0
  69. package/dist/createExtensionPoints.js +86 -0
  70. package/dist/createExtensionPoints.js.map +1 -0
  71. package/dist/index.js +27 -261
  72. package/dist/index.js.map +1 -1
  73. package/esm/BgzipFastaAdapter/index.d.ts +3 -1
  74. package/esm/BgzipFastaAdapter/index.js +15 -1
  75. package/esm/BgzipFastaAdapter/index.js.map +1 -1
  76. package/esm/ChromSizesAdapter/ChromSizesAdapter.d.ts +9 -9
  77. package/esm/ChromSizesAdapter/ChromSizesAdapter.js +20 -26
  78. package/esm/ChromSizesAdapter/ChromSizesAdapter.js.map +1 -1
  79. package/esm/ChromSizesAdapter/index.d.ts +3 -1
  80. package/esm/ChromSizesAdapter/index.js +15 -1
  81. package/esm/ChromSizesAdapter/index.js.map +1 -1
  82. package/esm/DivSequenceRenderer/index.d.ts +3 -2
  83. package/esm/DivSequenceRenderer/index.js +25 -2
  84. package/esm/DivSequenceRenderer/index.js.map +1 -1
  85. package/esm/GCContentAdapter/GCContentAdapter.d.ts +1 -7
  86. package/esm/GCContentAdapter/GCContentAdapter.js +7 -18
  87. package/esm/GCContentAdapter/GCContentAdapter.js.map +1 -1
  88. package/esm/GCContentAdapter/index.d.ts +1 -4
  89. package/esm/GCContentAdapter/index.js +11 -3
  90. package/esm/GCContentAdapter/index.js.map +1 -1
  91. package/esm/IndexedFastaAdapter/index.d.ts +3 -1
  92. package/esm/IndexedFastaAdapter/index.js +15 -1
  93. package/esm/IndexedFastaAdapter/index.js.map +1 -1
  94. package/esm/LinearReferenceSequenceDisplay/configSchema.js +1 -1
  95. package/esm/LinearReferenceSequenceDisplay/configSchema.js.map +1 -1
  96. package/esm/LinearReferenceSequenceDisplay/index.d.ts +3 -2
  97. package/esm/LinearReferenceSequenceDisplay/index.js +16 -2
  98. package/esm/LinearReferenceSequenceDisplay/index.js.map +1 -1
  99. package/esm/LinearReferenceSequenceDisplay/model.d.ts +1 -1
  100. package/esm/{referenceSeqTrackConfig.d.ts → ReferenceSequenceTrack/configSchema.d.ts} +0 -0
  101. package/esm/{referenceSeqTrackConfig.js → ReferenceSequenceTrack/configSchema.js} +1 -1
  102. package/esm/ReferenceSequenceTrack/configSchema.js.map +1 -0
  103. package/esm/ReferenceSequenceTrack/index.d.ts +3 -0
  104. package/esm/ReferenceSequenceTrack/index.js +14 -0
  105. package/esm/ReferenceSequenceTrack/index.js.map +1 -0
  106. package/esm/SequenceSearchAdapter/SequenceSearchAdapter.d.ts +8 -0
  107. package/esm/SequenceSearchAdapter/SequenceSearchAdapter.js +81 -0
  108. package/esm/SequenceSearchAdapter/SequenceSearchAdapter.js.map +1 -0
  109. package/esm/SequenceSearchAdapter/configSchema.d.ts +2 -0
  110. package/esm/SequenceSearchAdapter/configSchema.js +26 -0
  111. package/esm/SequenceSearchAdapter/configSchema.js.map +1 -0
  112. package/esm/SequenceSearchAdapter/index.d.ts +3 -0
  113. package/esm/SequenceSearchAdapter/index.js +16 -0
  114. package/esm/SequenceSearchAdapter/index.js.map +1 -0
  115. package/esm/TwoBitAdapter/index.d.ts +3 -1
  116. package/esm/TwoBitAdapter/index.js +15 -1
  117. package/esm/TwoBitAdapter/index.js.map +1 -1
  118. package/esm/createExtensionPoints.d.ts +3 -0
  119. package/esm/createExtensionPoints.js +84 -0
  120. package/esm/createExtensionPoints.js.map +1 -0
  121. package/esm/index.js +19 -186
  122. package/esm/index.js.map +1 -1
  123. package/package.json +6 -8
  124. package/src/BgzipFastaAdapter/index.ts +22 -1
  125. package/src/ChromSizesAdapter/ChromSizesAdapter.ts +22 -42
  126. package/src/ChromSizesAdapter/index.ts +22 -1
  127. package/src/DivSequenceRenderer/index.ts +31 -2
  128. package/src/GCContentAdapter/GCContentAdapter.ts +15 -25
  129. package/src/GCContentAdapter/index.ts +17 -4
  130. package/src/IndexedFastaAdapter/index.ts +22 -1
  131. package/src/LinearReferenceSequenceDisplay/configSchema.ts +1 -1
  132. package/src/LinearReferenceSequenceDisplay/index.ts +19 -2
  133. package/src/{referenceSeqTrackConfig.ts → ReferenceSequenceTrack/configSchema.ts} +0 -0
  134. package/src/ReferenceSequenceTrack/index.ts +21 -0
  135. package/src/SequenceSearchAdapter/SequenceSearchAdapter.ts +103 -0
  136. package/src/SequenceSearchAdapter/configSchema.ts +31 -0
  137. package/src/SequenceSearchAdapter/index.ts +22 -0
  138. package/src/TwoBitAdapter/index.ts +21 -1
  139. package/src/createExtensionPoints.ts +122 -0
  140. package/src/index.ts +20 -268
  141. package/dist/referenceSeqTrackConfig.js.map +0 -1
  142. 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 { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view';
7
- import { makeIndex, getFileName, } from '@jbrowse/core/util/tracks';
8
- import { configSchema as bgzipFastaAdapterConfigSchema } from './BgzipFastaAdapter';
9
- import { configSchema as chromSizesAdapterConfigSchema } from './ChromSizesAdapter';
10
- import { configSchema as divSequenceRendererConfigSchema, ReactComponent as DivSequenceRendererReactComponent, } from './DivSequenceRenderer';
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 { createReferenceSeqTrackConfig } from './referenceSeqTrackConfig';
16
- /* adjust in both directions */
17
- class DivSequenceRenderer extends FeatureRendererType {
18
- constructor() {
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.addAdapterType(() => new AdapterType({
37
- name: 'TwoBitAdapter',
38
- configSchema: twoBitAdapterConfigSchema,
39
- adapterMetadata: {
40
- category: null,
41
- hiddenFromGUI: true,
42
- displayName: null,
43
- description: null,
44
- },
45
- getAdapterClass: () => import('./TwoBitAdapter/TwoBitAdapter').then(r => r.default),
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":"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"}
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.0.0",
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": "^1.0.0",
48
- "@jbrowse/plugin-linear-genome-view": "^1.0.0",
49
- "@jbrowse/plugin-wiggle": "^1.0.0",
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": "ecc7f5d47351a5ea04bc00f3a6eb6dfb607342e6"
62
+ "gitHead": "449b17325c9a4a97181f7ddddf48e80219f03b8d"
65
63
  }
@@ -1 +1,22 @@
1
- export { default as configSchema } from './configSchema'
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 refSeqs: Promise<Record<string, number>>
9
+ protected setupP?: Promise<{ [key: string]: number }>
17
10
 
18
- protected source: string
19
-
20
- public constructor(
21
- config: Instance<typeof MyConfigSchema>,
22
- getSubAdapter?: getSubAdapterType,
23
- pluginManager?: PluginManager,
24
- ) {
25
- super(config, getSubAdapter, pluginManager)
26
- const chromSizesLocation = readConfObject(config, 'chromSizesLocation')
27
- if (!chromSizesLocation) {
28
- throw new Error('must provide chromSizesLocation')
29
- }
30
- const file = openLocation(
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
- private async init(file: GenericFilehandle) {
39
- const data = await file.readFile('utf8')
40
- const refSeqs: { [key: string]: number } = {}
41
- if (!data.length) {
42
- throw new Error(`Could not read file ${file.toString()}`)
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
- data.split('\n').forEach((line: string) => {
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.refSeqs
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
- export { default as configSchema } from './configSchema'
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
- export { default as ReactComponent } from './components/DivSequenceRendering'
2
- export { default as configSchema } from './configSchema'
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, { Feature } from '@jbrowse/core/util/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
- // instantiate the sequence adapter
22
- const sequenceAdapter = readConfObject(this.config, 'sequenceAdapter')
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 dataAdapter.dataAdapter as BaseFeatureDataAdapter
23
+ return adapter.dataAdapter as BaseFeatureDataAdapter
29
24
  }
30
25
 
31
26
  public async getRefNames() {
32
- const sequenceAdapter = await this.configure()
33
- return sequenceAdapter.getRefNames()
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
- ...query,
61
- start: queryStart,
62
- end: queryEnd,
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 } */): void {}
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
- return {
6
- configSchema: pluginManager.load(configSchemaF),
7
- getAdapterClass: () => import('./GCContentAdapter').then(r => r.default),
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
- export { default as configSchema } from './configSchema'
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 { configSchema as divSequenceRendererConfigSchema } from '../DivSequenceRenderer'
2
+ import { default as divSequenceRendererConfigSchema } from '../DivSequenceRenderer/configSchema'
3
3
 
4
4
  export const configSchema = ConfigurationSchema(
5
5
  'LinearReferenceSequenceDisplay',
@@ -1,2 +1,19 @@
1
- export { configSchema } from './configSchema'
2
- export { modelFactory } from './model'
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
+ }
@@ -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
+ }