@jbrowse/plugin-alignments 2.1.7 → 2.2.1

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 (226) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +12 -13
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsTrack/index.d.ts +1 -1
  4. package/dist/AlignmentsTrack/index.js +16 -6
  5. package/dist/AlignmentsTrack/index.js.map +1 -1
  6. package/dist/BamAdapter/BamAdapter.d.ts +7 -3
  7. package/dist/BamAdapter/BamAdapter.js +36 -31
  8. package/dist/BamAdapter/BamAdapter.js.map +1 -1
  9. package/dist/BamAdapter/BamSlightlyLazyFeature.js +1 -0
  10. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  11. package/dist/BamAdapter/MismatchParser.d.ts +2 -2
  12. package/dist/BamAdapter/MismatchParser.js +4 -7
  13. package/dist/BamAdapter/MismatchParser.js.map +1 -1
  14. package/dist/BamAdapter/configSchema.d.ts +2 -2
  15. package/dist/BamAdapter/configSchema.js +27 -2
  16. package/dist/BamAdapter/configSchema.js.map +1 -1
  17. package/dist/BamAdapter/index.js +7 -5
  18. package/dist/BamAdapter/index.js.map +1 -1
  19. package/dist/CramAdapter/CramAdapter.d.ts +13 -7
  20. package/dist/CramAdapter/CramAdapter.js +56 -61
  21. package/dist/CramAdapter/CramAdapter.js.map +1 -1
  22. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +15 -23
  23. package/dist/CramAdapter/CramSlightlyLazyFeature.js +10 -217
  24. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  25. package/dist/CramAdapter/CramTestAdapters.d.ts +1 -1
  26. package/dist/CramAdapter/CramTestAdapters.js +1 -1
  27. package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
  28. package/dist/CramAdapter/configSchema.d.ts +2 -3
  29. package/dist/CramAdapter/configSchema.js +44 -22
  30. package/dist/CramAdapter/configSchema.js.map +1 -1
  31. package/dist/CramAdapter/index.js +7 -5
  32. package/dist/CramAdapter/index.js.map +1 -1
  33. package/dist/CramAdapter/util.d.ts +18 -0
  34. package/dist/CramAdapter/util.js +241 -0
  35. package/dist/CramAdapter/util.js.map +1 -0
  36. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +5 -2
  37. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +15 -20
  38. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
  39. package/dist/HtsgetBamAdapter/configSchema.d.ts +2 -2
  40. package/dist/HtsgetBamAdapter/configSchema.js +20 -3
  41. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -1
  42. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +1 -1
  43. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  44. package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +2 -2
  45. package/dist/LinearAlignmentsDisplay/models/configSchema.js +23 -6
  46. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  47. package/dist/LinearAlignmentsDisplay/models/model.d.ts +77 -10
  48. package/dist/LinearAlignmentsDisplay/models/model.js +102 -9
  49. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  50. package/dist/LinearPileupDisplay/configSchema.d.ts +4 -4
  51. package/dist/LinearPileupDisplay/configSchema.js +22 -5
  52. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  53. package/dist/LinearPileupDisplay/index.d.ts +3 -0
  54. package/dist/LinearPileupDisplay/index.js +3 -0
  55. package/dist/LinearPileupDisplay/index.js.map +1 -1
  56. package/dist/LinearPileupDisplay/model.d.ts +100 -6
  57. package/dist/LinearPileupDisplay/model.js +611 -503
  58. package/dist/LinearPileupDisplay/model.js.map +1 -1
  59. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  60. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +33 -4
  61. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
  62. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +87 -4
  63. package/dist/LinearSNPCoverageDisplay/models/model.js +240 -159
  64. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  65. package/dist/PileupRPC/rpcMethods.d.ts +1 -1
  66. package/dist/PileupRPC/rpcMethods.js +12 -7
  67. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  68. package/dist/PileupRenderer/PileupLayoutSession.d.ts +1 -1
  69. package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
  70. package/dist/PileupRenderer/PileupRenderer.js +37 -34
  71. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  72. package/dist/PileupRenderer/configSchema.d.ts +2 -2
  73. package/dist/PileupRenderer/configSchema.js +37 -2
  74. package/dist/PileupRenderer/configSchema.js.map +1 -1
  75. package/dist/PileupRenderer/index.js +8 -6
  76. package/dist/PileupRenderer/index.js.map +1 -1
  77. package/dist/SNPCoverageAdapter/configSchema.d.ts +2 -3
  78. package/dist/SNPCoverageAdapter/configSchema.js +15 -4
  79. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -1
  80. package/dist/SNPCoverageAdapter/index.d.ts +1 -2
  81. package/dist/SNPCoverageAdapter/index.js +17 -14
  82. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  83. package/dist/SNPCoverageRenderer/configSchema.d.ts +2 -2
  84. package/dist/SNPCoverageRenderer/configSchema.js +21 -1
  85. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -1
  86. package/dist/SNPCoverageRenderer/index.d.ts +0 -1
  87. package/dist/SNPCoverageRenderer/index.js +1 -4
  88. package/dist/SNPCoverageRenderer/index.js.map +1 -1
  89. package/dist/index.d.ts +3 -2
  90. package/dist/index.js +4 -2
  91. package/dist/index.js.map +1 -1
  92. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +12 -13
  93. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  94. package/esm/AlignmentsTrack/index.d.ts +1 -1
  95. package/esm/AlignmentsTrack/index.js +16 -6
  96. package/esm/AlignmentsTrack/index.js.map +1 -1
  97. package/esm/BamAdapter/BamAdapter.d.ts +7 -3
  98. package/esm/BamAdapter/BamAdapter.js +36 -31
  99. package/esm/BamAdapter/BamAdapter.js.map +1 -1
  100. package/esm/BamAdapter/BamSlightlyLazyFeature.js +1 -0
  101. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  102. package/esm/BamAdapter/MismatchParser.d.ts +2 -2
  103. package/esm/BamAdapter/MismatchParser.js +4 -7
  104. package/esm/BamAdapter/MismatchParser.js.map +1 -1
  105. package/esm/BamAdapter/configSchema.d.ts +2 -2
  106. package/esm/BamAdapter/configSchema.js +27 -2
  107. package/esm/BamAdapter/configSchema.js.map +1 -1
  108. package/esm/BamAdapter/index.js +7 -5
  109. package/esm/BamAdapter/index.js.map +1 -1
  110. package/esm/CramAdapter/CramAdapter.d.ts +13 -7
  111. package/esm/CramAdapter/CramAdapter.js +56 -61
  112. package/esm/CramAdapter/CramAdapter.js.map +1 -1
  113. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +15 -23
  114. package/esm/CramAdapter/CramSlightlyLazyFeature.js +10 -217
  115. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  116. package/esm/CramAdapter/CramTestAdapters.d.ts +1 -1
  117. package/esm/CramAdapter/CramTestAdapters.js +1 -1
  118. package/esm/CramAdapter/CramTestAdapters.js.map +1 -1
  119. package/esm/CramAdapter/configSchema.d.ts +2 -3
  120. package/esm/CramAdapter/configSchema.js +44 -22
  121. package/esm/CramAdapter/configSchema.js.map +1 -1
  122. package/esm/CramAdapter/index.js +8 -6
  123. package/esm/CramAdapter/index.js.map +1 -1
  124. package/esm/CramAdapter/util.d.ts +18 -0
  125. package/esm/CramAdapter/util.js +236 -0
  126. package/esm/CramAdapter/util.js.map +1 -0
  127. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +5 -2
  128. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +15 -20
  129. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
  130. package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -2
  131. package/esm/HtsgetBamAdapter/configSchema.js +20 -3
  132. package/esm/HtsgetBamAdapter/configSchema.js.map +1 -1
  133. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +1 -1
  134. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  135. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +2 -2
  136. package/esm/LinearAlignmentsDisplay/models/configSchema.js +23 -6
  137. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  138. package/esm/LinearAlignmentsDisplay/models/model.d.ts +77 -10
  139. package/esm/LinearAlignmentsDisplay/models/model.js +102 -9
  140. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
  141. package/esm/LinearPileupDisplay/configSchema.d.ts +4 -4
  142. package/esm/LinearPileupDisplay/configSchema.js +22 -5
  143. package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
  144. package/esm/LinearPileupDisplay/index.d.ts +3 -0
  145. package/esm/LinearPileupDisplay/index.js +1 -0
  146. package/esm/LinearPileupDisplay/index.js.map +1 -1
  147. package/esm/LinearPileupDisplay/model.d.ts +100 -6
  148. package/esm/LinearPileupDisplay/model.js +611 -503
  149. package/esm/LinearPileupDisplay/model.js.map +1 -1
  150. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  151. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +33 -4
  152. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
  153. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +87 -4
  154. package/esm/LinearSNPCoverageDisplay/models/model.js +240 -159
  155. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  156. package/esm/PileupRPC/rpcMethods.d.ts +1 -1
  157. package/esm/PileupRPC/rpcMethods.js +12 -7
  158. package/esm/PileupRPC/rpcMethods.js.map +1 -1
  159. package/esm/PileupRenderer/PileupLayoutSession.d.ts +1 -1
  160. package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
  161. package/esm/PileupRenderer/PileupRenderer.js +37 -34
  162. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  163. package/esm/PileupRenderer/configSchema.d.ts +2 -2
  164. package/esm/PileupRenderer/configSchema.js +37 -2
  165. package/esm/PileupRenderer/configSchema.js.map +1 -1
  166. package/esm/PileupRenderer/index.js +8 -6
  167. package/esm/PileupRenderer/index.js.map +1 -1
  168. package/esm/SNPCoverageAdapter/configSchema.d.ts +2 -3
  169. package/esm/SNPCoverageAdapter/configSchema.js +15 -4
  170. package/esm/SNPCoverageAdapter/configSchema.js.map +1 -1
  171. package/esm/SNPCoverageAdapter/index.d.ts +1 -2
  172. package/esm/SNPCoverageAdapter/index.js +17 -15
  173. package/esm/SNPCoverageAdapter/index.js.map +1 -1
  174. package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -2
  175. package/esm/SNPCoverageRenderer/configSchema.js +21 -1
  176. package/esm/SNPCoverageRenderer/configSchema.js.map +1 -1
  177. package/esm/SNPCoverageRenderer/index.d.ts +0 -1
  178. package/esm/SNPCoverageRenderer/index.js +1 -3
  179. package/esm/SNPCoverageRenderer/index.js.map +1 -1
  180. package/esm/index.d.ts +3 -2
  181. package/esm/index.js +2 -2
  182. package/esm/index.js.map +1 -1
  183. package/package.json +4 -3
  184. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +17 -16
  185. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +41 -513
  186. package/src/AlignmentsFeatureDetail/index.test.js +6 -4
  187. package/src/AlignmentsTrack/index.ts +18 -12
  188. package/src/BamAdapter/BamAdapter.ts +42 -41
  189. package/src/BamAdapter/BamSlightlyLazyFeature.ts +2 -1
  190. package/src/BamAdapter/MismatchParser.test.ts +21 -12
  191. package/src/BamAdapter/MismatchParser.ts +7 -10
  192. package/src/BamAdapter/__snapshots__/BamAdapter.test.ts.snap +135 -135
  193. package/src/BamAdapter/configSchema.ts +57 -29
  194. package/src/BamAdapter/index.ts +7 -8
  195. package/src/CombinationTest.test.ts +107 -0
  196. package/src/CramAdapter/CramAdapter.test.ts +1 -2
  197. package/src/CramAdapter/CramAdapter.ts +83 -84
  198. package/src/CramAdapter/CramSlightlyLazyFeature.ts +18 -218
  199. package/src/CramAdapter/CramTestAdapters.ts +1 -1
  200. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +31 -31
  201. package/src/CramAdapter/__snapshots__/util.test.ts.snap +14 -0
  202. package/src/CramAdapter/configSchema.ts +54 -30
  203. package/src/CramAdapter/index.ts +8 -9
  204. package/src/CramAdapter/util.test.ts +26 -0
  205. package/src/CramAdapter/util.ts +251 -0
  206. package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +14 -21
  207. package/src/HtsgetBamAdapter/configSchema.ts +36 -19
  208. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -1
  209. package/src/LinearAlignmentsDisplay/models/configSchema.ts +23 -10
  210. package/src/LinearAlignmentsDisplay/models/model.tsx +107 -11
  211. package/src/LinearPileupDisplay/configSchema.ts +25 -9
  212. package/src/LinearPileupDisplay/index.ts +5 -0
  213. package/src/LinearPileupDisplay/model.ts +151 -34
  214. package/src/LinearSNPCoverageDisplay/models/configSchema.ts +36 -9
  215. package/src/LinearSNPCoverageDisplay/models/model.ts +83 -4
  216. package/src/PileupRPC/rpcMethods.ts +15 -20
  217. package/src/PileupRenderer/{PileupRenderer.tsx → PileupRenderer.ts} +53 -63
  218. package/src/PileupRenderer/configSchema.ts +39 -2
  219. package/src/PileupRenderer/index.ts +8 -9
  220. package/src/SNPCoverageAdapter/configSchema.ts +21 -12
  221. package/src/SNPCoverageAdapter/index.ts +17 -18
  222. package/src/SNPCoverageRenderer/configSchema.ts +23 -1
  223. package/src/SNPCoverageRenderer/index.ts +1 -8
  224. package/src/__snapshots__/index.test.ts.snap +1 -1
  225. package/src/index.ts +11 -4
  226. package/src/declare.d.ts +0 -1
@@ -3,28 +3,43 @@ import { linearBasicDisplayConfigSchemaFactory } from '@jbrowse/plugin-linear-ge
3
3
  import { types, Instance } from 'mobx-state-tree'
4
4
  import PluginManager from '@jbrowse/core/PluginManager'
5
5
 
6
- function PileupConfigFactory(pluginManager: PluginManager) {
7
- const PileupRendererConfigSchema =
8
- pluginManager.getRendererType('PileupRenderer').configSchema
6
+ /**
7
+ * #config LinearPileupDisplay
8
+ */
9
+ function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
9
10
 
11
+ function configSchemaF(pluginManager: PluginManager) {
10
12
  // modify config schema to take in a sub coverage display
11
13
  return ConfigurationSchema(
12
14
  'LinearPileupDisplay',
13
15
  {
16
+ /**
17
+ * #slot
18
+ */
14
19
  defaultRendering: {
15
20
  type: 'stringEnum',
16
21
  model: types.enumeration('Rendering', ['pileup']),
17
22
  defaultValue: 'pileup',
18
23
  },
24
+ /**
25
+ * #slot
26
+ */
19
27
  renderers: ConfigurationSchema('RenderersConfiguration', {
20
- PileupRenderer: PileupRendererConfigSchema,
28
+ PileupRenderer:
29
+ pluginManager.getRendererType('PileupRenderer').configSchema,
21
30
  }),
22
- renderer: '',
31
+ /**
32
+ * #slot
33
+ */
23
34
  maxFeatureScreenDensity: {
24
35
  type: 'number',
25
36
  description: 'maximum features per pixel that is displayed in the view',
26
37
  defaultValue: 5,
27
38
  },
39
+
40
+ /**
41
+ * #slot
42
+ */
28
43
  colorScheme: {
29
44
  type: 'stringEnum',
30
45
  model: types.enumeration('colorScheme', [
@@ -40,14 +55,15 @@ function PileupConfigFactory(pluginManager: PluginManager) {
40
55
  },
41
56
  },
42
57
  {
58
+ /**
59
+ * #baseConfiguration
60
+ */
43
61
  baseConfiguration: linearBasicDisplayConfigSchemaFactory(pluginManager),
44
62
  explicitlyTyped: true,
45
63
  },
46
64
  )
47
65
  }
48
66
 
49
- export type LinearPileupDisplayConfigModel = ReturnType<
50
- typeof PileupConfigFactory
51
- >
67
+ export type LinearPileupDisplayConfigModel = ReturnType<typeof configSchemaF>
52
68
  export type LinearPileupDisplayConfig = Instance<LinearPileupDisplayConfigModel>
53
- export default PileupConfigFactory
69
+ export default configSchemaF
@@ -17,3 +17,8 @@ export default function register(pluginManager: PluginManager) {
17
17
  })
18
18
  })
19
19
  }
20
+
21
+ export {
22
+ modelFactory as linearPileupDisplayStateModelFactory,
23
+ configSchemaFactory as linearPileupDisplayConfigSchemaFactory,
24
+ }
@@ -53,20 +53,51 @@ const rendererTypes = new Map([
53
53
 
54
54
  type LGV = LinearGenomeViewModel
55
55
 
56
- const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
57
- types
56
+ /**
57
+ * #stateModel LinearPileupDisplay
58
+ * extends `BaseLinearDisplay`
59
+ */
60
+ function stateModelFactory(configSchema: LinearPileupDisplayConfigModel) {
61
+ return types
58
62
  .compose(
59
63
  'LinearPileupDisplay',
60
64
  BaseLinearDisplay,
61
65
  types.model({
66
+ /**
67
+ * #property
68
+ */
62
69
  type: types.literal('LinearPileupDisplay'),
70
+ /**
71
+ * #property
72
+ */
63
73
  configuration: ConfigurationReference(configSchema),
74
+ /**
75
+ * #property
76
+ */
64
77
  showSoftClipping: false,
78
+ /**
79
+ * #property
80
+ */
65
81
  featureHeight: types.maybe(types.number),
82
+ /**
83
+ * #property
84
+ */
66
85
  noSpacing: types.maybe(types.boolean),
86
+ /**
87
+ * #property
88
+ */
67
89
  fadeLikelihood: types.maybe(types.boolean),
90
+ /**
91
+ * #property
92
+ */
68
93
  trackMaxHeight: types.maybe(types.number),
94
+ /**
95
+ * #property
96
+ */
69
97
  mismatchAlpha: types.maybe(types.boolean),
98
+ /**
99
+ * #property
100
+ */
70
101
  sortedBy: types.maybe(
71
102
  types.model({
72
103
  type: types.string,
@@ -76,6 +107,10 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
76
107
  assemblyName: types.string,
77
108
  }),
78
109
  ),
110
+
111
+ /**
112
+ * #property
113
+ */
79
114
  colorBy: types.maybe(
80
115
  types.model({
81
116
  type: types.string,
@@ -83,6 +118,10 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
83
118
  extra: types.frozen(),
84
119
  }),
85
120
  ),
121
+
122
+ /**
123
+ * #property
124
+ */
86
125
  filterBy: types.optional(
87
126
  types.model({
88
127
  flagInclude: types.optional(types.number, 0),
@@ -100,28 +139,53 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
100
139
  colorTagMap: observable.map<string, string>({}),
101
140
  modificationTagMap: observable.map<string, string>({}),
102
141
  featureUnderMouseVolatile: undefined as undefined | Feature,
142
+ currSortBpPerPx: 0,
103
143
  ready: false,
104
144
  }))
105
145
  .actions(self => ({
146
+ /**
147
+ * #action
148
+ */
106
149
  setReady(flag: boolean) {
107
150
  self.ready = flag
108
151
  },
152
+ /**
153
+ * #action
154
+ */
155
+ setCurrSortBpPerPx(n: number) {
156
+ self.currSortBpPerPx = n
157
+ },
158
+ /**
159
+ * #action
160
+ */
109
161
  setMaxHeight(n: number) {
110
162
  self.trackMaxHeight = n
111
163
  },
164
+ /**
165
+ * #action
166
+ */
112
167
  setFeatureHeight(n: number) {
113
168
  self.featureHeight = n
114
169
  },
170
+ /**
171
+ * #action
172
+ */
115
173
  setNoSpacing(flag: boolean) {
116
174
  self.noSpacing = flag
117
175
  },
118
176
 
177
+ /**
178
+ * #action
179
+ */
119
180
  setColorScheme(colorScheme: { type: string; tag?: string }) {
120
181
  self.colorTagMap = observable.map({}) // clear existing mapping
121
182
  self.colorBy = cast(colorScheme)
122
183
  self.ready = false
123
184
  },
124
185
 
186
+ /**
187
+ * #action
188
+ */
125
189
  updateModificationColorMap(uniqueModifications: string[]) {
126
190
  const colorPalette = ['red', 'blue', 'green', 'orange', 'purple']
127
191
  uniqueModifications.forEach(value => {
@@ -133,6 +197,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
133
197
  })
134
198
  },
135
199
 
200
+ /**
201
+ * #action
202
+ */
136
203
  updateColorTagMap(uniqueTag: string[]) {
137
204
  // pale color scheme
138
205
  // https://cran.r-project.org/web/packages/khroma/vignettes/tol.html
@@ -158,6 +225,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
158
225
  }
159
226
  })
160
227
  },
228
+ /**
229
+ * #action
230
+ */
161
231
  setFeatureUnderMouse(feat?: Feature) {
162
232
  self.featureUnderMouseVolatile = feat
163
233
  },
@@ -230,7 +300,7 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
230
300
  ...self.renderProps(),
231
301
  })
232
302
  self.setReady(true)
233
- self.setCurrBpPerPx(bpPerPx)
303
+ self.setCurrSortBpPerPx(bpPerPx)
234
304
  } else {
235
305
  self.setReady(true)
236
306
  }
@@ -244,6 +314,8 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
244
314
  )
245
315
 
246
316
  // autorun synchronizes featureUnderMouse with featureIdUnderMouse
317
+ // asynchronously. this is needed due to how we do not serialize all
318
+ // features from the BAM/CRAM over the rpc
247
319
  addDisposer(
248
320
  self,
249
321
  autorun(async () => {
@@ -285,6 +357,10 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
285
357
  }),
286
358
  )
287
359
  },
360
+
361
+ /**
362
+ * #action
363
+ */
288
364
  selectFeature(feature: Feature) {
289
365
  const session = getSession(self)
290
366
  if (isSessionModelWithWidgets(session)) {
@@ -298,11 +374,17 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
298
374
  session.setSelection(feature)
299
375
  },
300
376
 
377
+ /**
378
+ * #action
379
+ */
301
380
  clearSelected() {
302
381
  self.sortedBy = undefined
303
382
  },
304
383
 
305
- // uses copy-to-clipboard and generates notification
384
+ /**
385
+ * #action
386
+ * uses copy-to-clipboard and generates notification
387
+ */
306
388
  copyFeatureToClipboard(feature: Feature) {
307
389
  const { uniqueId, ...rest } = feature.toJSON()
308
390
  const session = getSession(self)
@@ -310,17 +392,30 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
310
392
  session.notify('Copied to clipboard', 'success')
311
393
  },
312
394
 
395
+ /**
396
+ * #action
397
+ */
313
398
  toggleSoftClipping() {
314
399
  self.showSoftClipping = !self.showSoftClipping
315
400
  },
401
+
402
+ /**
403
+ * #action
404
+ */
316
405
  toggleMismatchAlpha() {
317
406
  self.mismatchAlpha = !self.mismatchAlpha
318
407
  },
319
408
 
409
+ /**
410
+ * #action
411
+ */
320
412
  setConfig(configuration: AnyConfigurationModel) {
321
413
  self.configuration = configuration
322
414
  },
323
415
 
416
+ /**
417
+ * #action
418
+ */
324
419
  setSortedBy(type: string, tag?: string) {
325
420
  const { centerLineInfo } = getContainingView(self) as LGV
326
421
  if (!centerLineInfo) {
@@ -356,6 +451,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
356
451
  const superReload = self.reload
357
452
 
358
453
  return {
454
+ /**
455
+ * #action
456
+ */
359
457
  reload() {
360
458
  self.clearSelected()
361
459
  superReload()
@@ -364,12 +462,19 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
364
462
  })
365
463
 
366
464
  .views(self => ({
465
+ /**
466
+ * #getter
467
+ */
367
468
  get maxHeight() {
368
469
  const conf = getConf(self, ['renderers', self.rendererTypeName]) || {}
369
470
  return self.trackMaxHeight !== undefined
370
471
  ? self.trackMaxHeight
371
472
  : conf.maxHeight
372
473
  },
474
+
475
+ /**
476
+ * #getter
477
+ */
373
478
  get rendererConfig() {
374
479
  const configBlob =
375
480
  getConf(self, ['renderers', self.rendererTypeName]) || {}
@@ -384,16 +489,26 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
384
489
  getEnv(self),
385
490
  )
386
491
  },
492
+
493
+ /**
494
+ * #getter
495
+ */
387
496
  get featureHeightSetting() {
388
497
  return (
389
498
  self.featureHeight || readConfObject(this.rendererConfig, 'height')
390
499
  )
391
500
  },
501
+ /**
502
+ * #getter
503
+ */
392
504
  get mismatchAlphaSetting() {
393
505
  return self.mismatchAlpha !== undefined
394
506
  ? self.mismatchAlpha
395
507
  : readConfObject(this.rendererConfig, 'mismatchAlpha')
396
508
  },
509
+ /**
510
+ * #getter
511
+ */
397
512
  get featureUnderMouse() {
398
513
  return self.featureUnderMouseVolatile
399
514
  },
@@ -405,6 +520,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
405
520
  } = self
406
521
 
407
522
  return {
523
+ /**
524
+ * #getter
525
+ */
408
526
  get rendererTypeName() {
409
527
  const viewName = getConf(self, 'defaultRendering')
410
528
  const rendererType = rendererTypes.get(viewName)
@@ -414,6 +532,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
414
532
  return rendererType
415
533
  },
416
534
 
535
+ /**
536
+ * #method
537
+ */
417
538
  contextMenuItems() {
418
539
  const feat = self.contextMenuFeature
419
540
  const contextMenuItems = feat
@@ -442,10 +563,15 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
442
563
  return contextMenuItems
443
564
  },
444
565
 
566
+ /**
567
+ * #getter
568
+ */
445
569
  get DisplayBlurb() {
446
570
  return LinearPileupDisplayBlurb
447
571
  },
448
-
572
+ /**
573
+ * #method
574
+ */
449
575
  renderProps() {
450
576
  const view = getContainingView(self) as LGV
451
577
  const {
@@ -455,7 +581,7 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
455
581
  colorBy,
456
582
  filterBy,
457
583
  rpcDriverName,
458
- currBpPerPx,
584
+ currSortBpPerPx,
459
585
  ready,
460
586
  } = self
461
587
 
@@ -466,7 +592,7 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
466
592
  notReady:
467
593
  superProps.notReady ||
468
594
  !ready ||
469
- (sortedBy && currBpPerPx !== view.bpPerPx),
595
+ (sortedBy && currSortBpPerPx !== view.bpPerPx),
470
596
  rpcDriverName,
471
597
  displayModel: self,
472
598
  sortedBy,
@@ -543,6 +669,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
543
669
  }
544
670
  },
545
671
 
672
+ /**
673
+ * #method
674
+ */
546
675
  trackMenuItems() {
547
676
  return [
548
677
  ...superTrackMenuItems(),
@@ -592,39 +721,31 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
592
721
  subMenu: [
593
722
  {
594
723
  label: 'Normal',
595
- onClick: () => {
596
- self.setColorScheme({ type: 'normal' })
597
- },
724
+ onClick: () => self.setColorScheme({ type: 'normal' }),
598
725
  },
599
726
  {
600
727
  label: 'Mapping quality',
601
- onClick: () => {
602
- self.setColorScheme({ type: 'mappingQuality' })
603
- },
728
+ onClick: () =>
729
+ self.setColorScheme({ type: 'mappingQuality' }),
604
730
  },
605
731
  {
606
732
  label: 'Strand',
607
- onClick: () => {
608
- self.setColorScheme({ type: 'strand' })
609
- },
733
+ onClick: () => self.setColorScheme({ type: 'strand' }),
610
734
  },
611
735
  {
612
736
  label: 'Pair orientation',
613
- onClick: () => {
614
- self.setColorScheme({ type: 'pairOrientation' })
615
- },
737
+ onClick: () =>
738
+ self.setColorScheme({ type: 'pairOrientation' }),
616
739
  },
617
740
  {
618
741
  label: 'Per-base quality',
619
- onClick: () => {
620
- self.setColorScheme({ type: 'perBaseQuality' })
621
- },
742
+ onClick: () =>
743
+ self.setColorScheme({ type: 'perBaseQuality' }),
622
744
  },
623
745
  {
624
746
  label: 'Per-base lettering',
625
- onClick: () => {
626
- self.setColorScheme({ type: 'perBaseLettering' })
627
- },
747
+ onClick: () =>
748
+ self.setColorScheme({ type: 'perBaseLettering' }),
628
749
  },
629
750
  {
630
751
  label: 'Modifications or methylation',
@@ -637,15 +758,12 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
637
758
  },
638
759
  {
639
760
  label: 'Insert size',
640
- onClick: () => {
641
- self.setColorScheme({ type: 'insertSize' })
642
- },
761
+ onClick: () => self.setColorScheme({ type: 'insertSize' }),
643
762
  },
644
763
  {
645
764
  label: 'Stranded paired-end',
646
- onClick: () => {
647
- self.setColorScheme({ type: 'reverseTemplate' })
648
- },
765
+ onClick: () =>
766
+ self.setColorScheme({ type: 'reverseTemplate' }),
649
767
  },
650
768
  {
651
769
  label: 'Color by tag...',
@@ -690,14 +808,13 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
690
808
  label: 'Fade mismatches by quality',
691
809
  type: 'checkbox',
692
810
  checked: self.mismatchAlphaSetting,
693
- onClick: () => {
694
- self.toggleMismatchAlpha()
695
- },
811
+ onClick: () => self.toggleMismatchAlpha(),
696
812
  },
697
813
  ]
698
814
  },
699
815
  }
700
816
  })
817
+ }
701
818
 
702
819
  export type LinearPileupDisplayStateModel = ReturnType<typeof stateModelFactory>
703
820
  export type LinearPileupDisplayModel = Instance<LinearPileupDisplayStateModel>
@@ -3,14 +3,18 @@ import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-vie
3
3
  import { types } from 'mobx-state-tree'
4
4
  import PluginManager from '@jbrowse/core/PluginManager'
5
5
 
6
- export default function SNPCoverageConfigFactory(pluginManager: PluginManager) {
7
- const SNPCoverageRendererConfigSchema = pluginManager.getRendererType(
8
- 'SNPCoverageRenderer',
9
- ).configSchema
6
+ /**
7
+ * #config LinearSNPCoverageDisplay
8
+ */
9
+ function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
10
10
 
11
+ export default function SNPCoverageConfigFactory(pluginManager: PluginManager) {
11
12
  return ConfigurationSchema(
12
13
  'LinearSNPCoverageDisplay',
13
14
  {
15
+ /**
16
+ * #slot
17
+ */
14
18
  autoscale: {
15
19
  type: 'stringEnum',
16
20
  defaultValue: 'local',
@@ -18,38 +22,61 @@ export default function SNPCoverageConfigFactory(pluginManager: PluginManager) {
18
22
  description:
19
23
  'performs local autoscaling (no other options for SNP Coverage available)',
20
24
  },
25
+ /**
26
+ * #slot
27
+ */
21
28
  minScore: {
22
29
  type: 'number',
23
30
  defaultValue: Number.MIN_VALUE,
24
31
  description: 'minimum value for the y-scale',
25
32
  },
33
+ /**
34
+ * #slot
35
+ */
26
36
  maxScore: {
27
37
  type: 'number',
28
38
  description: 'maximum value for the y-scale',
29
39
  defaultValue: Number.MAX_VALUE,
30
40
  },
41
+ /**
42
+ * #slot
43
+ */
31
44
  scaleType: {
32
45
  type: 'stringEnum',
33
46
  model: types.enumeration('Scale type', ['linear', 'log']), // todo zscale
34
47
  description: 'The type of scale to use',
35
48
  defaultValue: 'linear',
36
49
  },
37
- inverted: {
50
+ /**
51
+ * #slot
52
+ */ inverted: {
38
53
  type: 'boolean',
39
54
  description: 'draw upside down',
40
55
  defaultValue: false,
41
56
  },
42
-
57
+ /**
58
+ * #slot
59
+ */
43
60
  multiTicks: {
44
61
  type: 'boolean',
45
62
  description: 'Display multiple values for the ticks',
46
63
  defaultValue: false,
47
64
  },
48
-
65
+ /**
66
+ * #slot
67
+ */
49
68
  renderers: ConfigurationSchema('RenderersConfiguration', {
50
- SNPCoverageRenderer: SNPCoverageRendererConfigSchema,
69
+ SNPCoverageRenderer: pluginManager.getRendererType(
70
+ 'SNPCoverageRenderer',
71
+ ).configSchema,
51
72
  }),
52
73
  },
53
- { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true },
74
+ {
75
+ /**
76
+ * #baseConfiguration
77
+ */
78
+ baseConfiguration: baseLinearDisplayConfigSchema,
79
+ explicitlyTyped: true,
80
+ },
54
81
  )
55
82
  }