@jbrowse/plugin-alignments 1.7.11 → 2.0.0

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 (289) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +192 -216
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  3. package/dist/AlignmentsFeatureDetail/index.d.ts +3 -3
  4. package/dist/AlignmentsFeatureDetail/index.js +48 -44
  5. package/dist/AlignmentsFeatureDetail/index.js.map +1 -0
  6. package/dist/AlignmentsTrack/index.js +24 -32
  7. package/dist/AlignmentsTrack/index.js.map +1 -0
  8. package/dist/BamAdapter/BamAdapter.js +345 -585
  9. package/dist/BamAdapter/BamAdapter.js.map +1 -0
  10. package/dist/BamAdapter/BamSlightlyLazyFeature.js +143 -174
  11. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  12. package/dist/BamAdapter/MismatchParser.js +340 -417
  13. package/dist/BamAdapter/MismatchParser.js.map +1 -0
  14. package/dist/BamAdapter/configSchema.js +33 -46
  15. package/dist/BamAdapter/configSchema.js.map +1 -0
  16. package/dist/BamAdapter/index.js +36 -32
  17. package/dist/BamAdapter/index.js.map +1 -0
  18. package/dist/CramAdapter/CramAdapter.js +376 -644
  19. package/dist/CramAdapter/CramAdapter.js.map +1 -0
  20. package/dist/CramAdapter/CramSlightlyLazyFeature.js +374 -439
  21. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  22. package/dist/CramAdapter/CramTestAdapters.js +169 -227
  23. package/dist/CramAdapter/CramTestAdapters.js.map +1 -0
  24. package/dist/CramAdapter/configSchema.js +28 -38
  25. package/dist/CramAdapter/configSchema.js.map +1 -0
  26. package/dist/CramAdapter/index.js +37 -32
  27. package/dist/CramAdapter/index.js.map +1 -0
  28. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +91 -93
  29. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  30. package/dist/HtsgetBamAdapter/configSchema.js +19 -29
  31. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -0
  32. package/dist/HtsgetBamAdapter/index.js +44 -38
  33. package/dist/HtsgetBamAdapter/index.js.map +1 -0
  34. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +36 -65
  35. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  36. package/dist/LinearAlignmentsDisplay/index.js +22 -28
  37. package/dist/LinearAlignmentsDisplay/index.js.map +1 -0
  38. package/dist/LinearAlignmentsDisplay/models/configSchema.js +12 -23
  39. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  40. package/dist/LinearAlignmentsDisplay/models/model.d.ts +10 -10
  41. package/dist/LinearAlignmentsDisplay/models/model.js +257 -245
  42. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -0
  43. package/dist/LinearPileupDisplay/components/ColorByModifications.js +98 -116
  44. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  45. package/dist/LinearPileupDisplay/components/ColorByTag.js +82 -91
  46. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  47. package/dist/LinearPileupDisplay/components/FilterByTag.js +156 -192
  48. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  49. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +15 -29
  50. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  51. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +79 -93
  52. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  53. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +78 -81
  54. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  55. package/dist/LinearPileupDisplay/components/SortByTag.js +80 -88
  56. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  57. package/dist/LinearPileupDisplay/configSchema.js +40 -42
  58. package/dist/LinearPileupDisplay/configSchema.js.map +1 -0
  59. package/dist/LinearPileupDisplay/index.js +21 -27
  60. package/dist/LinearPileupDisplay/index.js.map +1 -0
  61. package/dist/LinearPileupDisplay/model.d.ts +27 -17
  62. package/dist/LinearPileupDisplay/model.js +702 -797
  63. package/dist/LinearPileupDisplay/model.js.map +1 -0
  64. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  65. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +104 -77
  66. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  67. package/dist/LinearSNPCoverageDisplay/index.js +21 -27
  68. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -0
  69. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +45 -55
  70. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  71. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +13 -11
  72. package/dist/LinearSNPCoverageDisplay/models/model.js +257 -230
  73. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  74. package/dist/NestedFrequencyTable.js +104 -139
  75. package/dist/NestedFrequencyTable.js.map +1 -0
  76. package/dist/PileupRPC/rpcMethods.js +199 -278
  77. package/dist/PileupRPC/rpcMethods.js.map +1 -0
  78. package/dist/PileupRenderer/PileupLayoutSession.js +56 -76
  79. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -0
  80. package/dist/PileupRenderer/PileupRenderer.d.ts +4 -4
  81. package/dist/PileupRenderer/PileupRenderer.js +938 -1205
  82. package/dist/PileupRenderer/PileupRenderer.js.map +1 -0
  83. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  84. package/dist/PileupRenderer/components/PileupRendering.js +173 -253
  85. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -0
  86. package/dist/PileupRenderer/configSchema.js +65 -71
  87. package/dist/PileupRenderer/configSchema.js.map +1 -0
  88. package/dist/PileupRenderer/index.js +17 -22
  89. package/dist/PileupRenderer/index.js.map +1 -0
  90. package/dist/PileupRenderer/sortUtil.js +83 -107
  91. package/dist/PileupRenderer/sortUtil.js.map +1 -0
  92. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +436 -589
  93. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  94. package/dist/SNPCoverageAdapter/configSchema.js +10 -20
  95. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -0
  96. package/dist/SNPCoverageAdapter/index.js +46 -41
  97. package/dist/SNPCoverageAdapter/index.js.map +1 -0
  98. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +1 -1
  99. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +265 -290
  100. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  101. package/dist/SNPCoverageRenderer/configSchema.js +30 -39
  102. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -0
  103. package/dist/SNPCoverageRenderer/index.js +19 -30
  104. package/dist/SNPCoverageRenderer/index.js.map +1 -0
  105. package/dist/index.js +135 -152
  106. package/dist/index.js.map +1 -0
  107. package/dist/shared.js +84 -92
  108. package/dist/shared.js.map +1 -0
  109. package/dist/util.js +130 -121
  110. package/dist/util.js.map +1 -0
  111. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -0
  112. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +145 -0
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  114. package/esm/AlignmentsFeatureDetail/index.d.ts +38 -0
  115. package/esm/AlignmentsFeatureDetail/index.js +23 -0
  116. package/esm/AlignmentsFeatureDetail/index.js.map +1 -0
  117. package/esm/AlignmentsTrack/index.d.ts +2 -0
  118. package/esm/AlignmentsTrack/index.js +23 -0
  119. package/esm/AlignmentsTrack/index.js.map +1 -0
  120. package/esm/BamAdapter/BamAdapter.d.ts +40 -0
  121. package/esm/BamAdapter/BamAdapter.js +173 -0
  122. package/esm/BamAdapter/BamAdapter.js.map +1 -0
  123. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -0
  124. package/esm/BamAdapter/BamSlightlyLazyFeature.js +107 -0
  125. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  126. package/esm/BamAdapter/MismatchParser.d.ts +25 -0
  127. package/esm/BamAdapter/MismatchParser.js +294 -0
  128. package/esm/BamAdapter/MismatchParser.js.map +1 -0
  129. package/esm/BamAdapter/configSchema.d.ts +2 -0
  130. package/esm/BamAdapter/configSchema.js +31 -0
  131. package/esm/BamAdapter/configSchema.js.map +1 -0
  132. package/esm/BamAdapter/index.d.ts +3 -0
  133. package/esm/BamAdapter/index.js +10 -0
  134. package/esm/BamAdapter/index.js.map +1 -0
  135. package/esm/CramAdapter/CramAdapter.d.ts +53 -0
  136. package/esm/CramAdapter/CramAdapter.js +228 -0
  137. package/esm/CramAdapter/CramAdapter.js.map +1 -0
  138. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -0
  139. package/esm/CramAdapter/CramSlightlyLazyFeature.js +349 -0
  140. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  141. package/esm/CramAdapter/CramTestAdapters.d.ts +29 -0
  142. package/esm/CramAdapter/CramTestAdapters.js +70 -0
  143. package/esm/CramAdapter/CramTestAdapters.js.map +1 -0
  144. package/esm/CramAdapter/configSchema.d.ts +3 -0
  145. package/esm/CramAdapter/configSchema.js +26 -0
  146. package/esm/CramAdapter/configSchema.js.map +1 -0
  147. package/esm/CramAdapter/index.d.ts +3 -0
  148. package/esm/CramAdapter/index.js +11 -0
  149. package/esm/CramAdapter/index.js.map +1 -0
  150. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -0
  151. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +27 -0
  152. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  153. package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -0
  154. package/esm/HtsgetBamAdapter/configSchema.js +17 -0
  155. package/esm/HtsgetBamAdapter/configSchema.js.map +1 -0
  156. package/esm/HtsgetBamAdapter/index.d.ts +3 -0
  157. package/esm/HtsgetBamAdapter/index.js +16 -0
  158. package/esm/HtsgetBamAdapter/index.js.map +1 -0
  159. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -0
  160. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +34 -0
  161. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  162. package/esm/LinearAlignmentsDisplay/index.d.ts +2 -0
  163. package/esm/LinearAlignmentsDisplay/index.js +19 -0
  164. package/esm/LinearAlignmentsDisplay/index.js.map +1 -0
  165. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -0
  166. package/esm/LinearAlignmentsDisplay/models/configSchema.js +12 -0
  167. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  168. package/esm/LinearAlignmentsDisplay/models/model.d.ts +105 -0
  169. package/esm/LinearAlignmentsDisplay/models/model.js +181 -0
  170. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -0
  171. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -0
  172. package/esm/LinearPileupDisplay/components/ColorByModifications.js +71 -0
  173. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  174. package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +9 -0
  175. package/esm/LinearPileupDisplay/components/ColorByTag.js +45 -0
  176. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  177. package/esm/LinearPileupDisplay/components/FilterByTag.d.ts +18 -0
  178. package/esm/LinearPileupDisplay/components/FilterByTag.js +123 -0
  179. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  180. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -0
  181. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +13 -0
  182. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  183. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -0
  184. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +41 -0
  185. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  186. package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -0
  187. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +43 -0
  188. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  189. package/esm/LinearPileupDisplay/components/SortByTag.d.ts +9 -0
  190. package/esm/LinearPileupDisplay/components/SortByTag.js +43 -0
  191. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  192. package/esm/LinearPileupDisplay/configSchema.d.ts +6 -0
  193. package/esm/LinearPileupDisplay/configSchema.js +41 -0
  194. package/esm/LinearPileupDisplay/configSchema.js.map +1 -0
  195. package/esm/LinearPileupDisplay/index.d.ts +2 -0
  196. package/esm/LinearPileupDisplay/index.js +18 -0
  197. package/esm/LinearPileupDisplay/index.js.map +1 -0
  198. package/esm/LinearPileupDisplay/model.d.ts +332 -0
  199. package/esm/LinearPileupDisplay/model.js +576 -0
  200. package/esm/LinearPileupDisplay/model.js.map +1 -0
  201. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +10 -0
  202. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +57 -0
  203. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  204. package/esm/LinearSNPCoverageDisplay/index.d.ts +2 -0
  205. package/esm/LinearSNPCoverageDisplay/index.js +18 -0
  206. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -0
  207. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -0
  208. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +44 -0
  209. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  210. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +348 -0
  211. package/esm/LinearSNPCoverageDisplay/models/model.js +185 -0
  212. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  213. package/esm/NestedFrequencyTable.d.ts +14 -0
  214. package/esm/NestedFrequencyTable.js +101 -0
  215. package/esm/NestedFrequencyTable.js.map +1 -0
  216. package/esm/PileupRPC/rpcMethods.d.ts +34 -0
  217. package/esm/PileupRPC/rpcMethods.js +70 -0
  218. package/esm/PileupRPC/rpcMethods.js.map +1 -0
  219. package/esm/PileupRenderer/PileupLayoutSession.d.ts +32 -0
  220. package/esm/PileupRenderer/PileupLayoutSession.js +32 -0
  221. package/esm/PileupRenderer/PileupLayoutSession.js.map +1 -0
  222. package/esm/PileupRenderer/PileupRenderer.d.ts +182 -0
  223. package/esm/PileupRenderer/PileupRenderer.js +830 -0
  224. package/esm/PileupRenderer/PileupRenderer.js.map +1 -0
  225. package/esm/PileupRenderer/components/PileupRendering.d.ts +23 -0
  226. package/esm/PileupRenderer/components/PileupRendering.js +138 -0
  227. package/esm/PileupRenderer/components/PileupRendering.js.map +1 -0
  228. package/esm/PileupRenderer/configSchema.d.ts +2 -0
  229. package/esm/PileupRenderer/configSchema.js +64 -0
  230. package/esm/PileupRenderer/configSchema.js.map +1 -0
  231. package/esm/PileupRenderer/index.d.ts +2 -0
  232. package/esm/PileupRenderer/index.js +12 -0
  233. package/esm/PileupRenderer/index.js.map +1 -0
  234. package/esm/PileupRenderer/sortUtil.d.ts +8 -0
  235. package/esm/PileupRenderer/sortUtil.js +80 -0
  236. package/esm/PileupRenderer/sortUtil.js.map +1 -0
  237. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -0
  238. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +259 -0
  239. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  240. package/esm/SNPCoverageAdapter/configSchema.d.ts +3 -0
  241. package/esm/SNPCoverageAdapter/configSchema.js +6 -0
  242. package/esm/SNPCoverageAdapter/configSchema.js.map +1 -0
  243. package/esm/SNPCoverageAdapter/index.d.ts +3 -0
  244. package/esm/SNPCoverageAdapter/index.js +18 -0
  245. package/esm/SNPCoverageAdapter/index.js.map +1 -0
  246. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -0
  247. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +185 -0
  248. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  249. package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -0
  250. package/esm/SNPCoverageRenderer/configSchema.js +29 -0
  251. package/esm/SNPCoverageRenderer/configSchema.js.map +1 -0
  252. package/esm/SNPCoverageRenderer/index.d.ts +3 -0
  253. package/esm/SNPCoverageRenderer/index.js +14 -0
  254. package/esm/SNPCoverageRenderer/index.js.map +1 -0
  255. package/esm/index.d.ts +10 -0
  256. package/esm/index.js +91 -0
  257. package/esm/index.js.map +1 -0
  258. package/esm/shared.d.ts +25 -0
  259. package/esm/shared.js +28 -0
  260. package/esm/shared.js.map +1 -0
  261. package/esm/util.d.ts +19 -0
  262. package/esm/util.js +83 -0
  263. package/esm/util.js.map +1 -0
  264. package/package.json +19 -11
  265. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +4 -4
  266. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
  267. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
  268. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
  269. package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
  270. package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
  271. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
  272. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
  273. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
  274. package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
  275. package/src/LinearPileupDisplay/model.ts +16 -10
  276. package/src/LinearSNPCoverageDisplay/models/model.ts +25 -25
  277. package/src/PileupRenderer/PileupRenderer.tsx +54 -40
  278. package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
  279. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +7 -5
  280. package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
  281. package/dist/BamAdapter/BamAdapter.test.js +0 -177
  282. package/dist/BamAdapter/MismatchParser.test.js +0 -251
  283. package/dist/CramAdapter/CramAdapter.test.js +0 -138
  284. package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
  285. package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
  286. package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
  287. package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
  288. package/dist/declare.d.js +0 -1
  289. package/dist/index.test.js +0 -26
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { getConf } from '@jbrowse/core/configuration';
4
+ import { ResizeHandle } from '@jbrowse/core/ui';
5
+ import { makeStyles } from 'tss-react/mui';
6
+ const useStyles = makeStyles()(() => ({
7
+ resizeHandle: {
8
+ height: 2,
9
+ position: 'absolute',
10
+ zIndex: 2,
11
+ },
12
+ }));
13
+ function AlignmentsDisplay({ model }) {
14
+ const { PileupDisplay, SNPCoverageDisplay, showPileup, showCoverage } = model;
15
+ const { classes } = useStyles();
16
+ const top = SNPCoverageDisplay.height;
17
+ return (React.createElement("div", { "data-testid": `display-${getConf(model, 'displayId')}`, style: { position: 'relative' } },
18
+ showCoverage ? (React.createElement(React.Fragment, null,
19
+ React.createElement("div", { "data-testid": "Blockset-snpcoverage" },
20
+ React.createElement(SNPCoverageDisplay.RenderingComponent, { model: SNPCoverageDisplay })),
21
+ React.createElement(ResizeHandle, { onDrag: delta => {
22
+ SNPCoverageDisplay.setHeight(SNPCoverageDisplay.height + delta);
23
+ return delta;
24
+ }, className: classes.resizeHandle, style: {
25
+ top,
26
+ } }))) : null,
27
+ showPileup ? (React.createElement("div", { "data-testid": "Blockset-pileup", style: {
28
+ position: 'absolute',
29
+ top: showCoverage ? SNPCoverageDisplay.height : 0,
30
+ } },
31
+ React.createElement(PileupDisplay.RenderingComponent, { model: PileupDisplay }))) : null));
32
+ }
33
+ export default observer(AlignmentsDisplay);
34
+ //# sourceMappingURL=AlignmentsDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlignmentsDisplay.js","sourceRoot":"","sources":["../../../src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IACpC,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,iBAAiB,CAAC,EAAE,KAAK,EAAqC;IACrE,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC7E,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAA;IACrC,OAAO,CACL,4CACe,WAAW,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,EACrD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;QAE9B,YAAY,CAAC,CAAC,CAAC,CACd;YACE,4CAAiB,sBAAsB;gBACrC,oBAAC,kBAAkB,CAAC,kBAAkB,IAAC,KAAK,EAAE,kBAAkB,GAAI,CAChE;YACN,oBAAC,YAAY,IACX,MAAM,EAAE,KAAK,CAAC,EAAE;oBACd,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,GAAG,KAAK,CAAC,CAAA;oBAC/D,OAAO,KAAK,CAAA;gBACd,CAAC,EACD,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,KAAK,EAAE;oBACL,GAAG;iBACJ,GACD,CACD,CACJ,CAAC,CAAC,CAAC,IAAI;QAEP,UAAU,CAAC,CAAC,CAAC,CACZ,4CACc,iBAAiB,EAC7B,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAClD;YAED,oBAAC,aAAa,CAAC,kBAAkB,IAAC,KAAK,EAAE,aAAa,GAAI,CACtD,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function (pluginManager: PluginManager): void;
@@ -0,0 +1,19 @@
1
+ import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
2
+ // locals
3
+ import configSchemaFactory from './models/configSchema';
4
+ import modelFactory from './models/model';
5
+ import ReactComponent from './components/AlignmentsDisplay';
6
+ export default function (pluginManager) {
7
+ pluginManager.addDisplayType(() => {
8
+ const configSchema = configSchemaFactory(pluginManager);
9
+ return new DisplayType({
10
+ name: 'LinearAlignmentsDisplay',
11
+ configSchema,
12
+ stateModel: modelFactory(pluginManager, configSchema),
13
+ trackType: 'AlignmentsTrack',
14
+ viewType: 'LinearGenomeView',
15
+ ReactComponent,
16
+ });
17
+ });
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearAlignmentsDisplay/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAEzE,SAAS;AACT,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,cAAc,MAAM,gCAAgC,CAAA;AAE3D,MAAM,CAAC,OAAO,WAAW,aAA4B;IACnD,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,yBAAyB;YAC/B,YAAY;YACZ,UAAU,EAAE,YAAY,CAAC,aAAa,EAAE,YAAY,CAAC;YACrD,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,cAAc;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ declare const configModelFactory: (pluginManager: PluginManager) => import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
3
+ export declare type AlignmentsConfigModel = ReturnType<typeof configModelFactory>;
4
+ export default configModelFactory;
@@ -0,0 +1,12 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ import { baseLinearDisplayConfigSchema } from '@jbrowse/plugin-linear-genome-view';
3
+ const configModelFactory = (pluginManager) => {
4
+ const PileupDisplayConfigSchema = pluginManager.getDisplayType('LinearPileupDisplay').configSchema;
5
+ const SNPCoverageDisplayConfigSchema = pluginManager.getDisplayType('LinearSNPCoverageDisplay').configSchema;
6
+ return ConfigurationSchema('LinearAlignmentsDisplay', {
7
+ pileupDisplay: PileupDisplayConfigSchema,
8
+ snpCoverageDisplay: SNPCoverageDisplayConfigSchema,
9
+ }, { baseConfiguration: baseLinearDisplayConfigSchema, explicitlyTyped: true });
10
+ };
11
+ export default configModelFactory;
12
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../../src/LinearAlignmentsDisplay/models/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAA;AAGlF,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAE,EAAE;IAC1D,MAAM,yBAAyB,GAAG,aAAa,CAAC,cAAc,CAC5D,qBAAqB,CACtB,CAAC,YAAY,CAAA;IACd,MAAM,8BAA8B,GAAG,aAAa,CAAC,cAAc,CACjE,0BAA0B,CAC3B,CAAC,YAAY,CAAA;IAEd,OAAO,mBAAmB,CACxB,yBAAyB,EACzB;QACE,aAAa,EAAE,yBAAyB;QACxC,kBAAkB,EAAE,8BAA8B;KACnD,EACD,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,eAAe,EAAE,IAAI,EAAE,CAC5E,CAAA;AACH,CAAC,CAAA;AAGD,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,105 @@
1
+ import React from 'react';
2
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import PluginManager from '@jbrowse/core/PluginManager';
4
+ import { MenuItem } from '@jbrowse/core/ui';
5
+ import { Instance } from 'mobx-state-tree';
6
+ import { AlignmentsConfigModel } from './configSchema';
7
+ declare const stateModelFactory: (pluginManager: PluginManager, configSchema: AlignmentsConfigModel) => import("mobx-state-tree").IModelType<{
8
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
9
+ type: import("mobx-state-tree").ISimpleType<string>;
10
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
11
+ } & {
12
+ PileupDisplay: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IAnyModelType>;
13
+ SNPCoverageDisplay: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IAnyModelType>;
14
+ snpCovHeight: import("mobx-state-tree").IType<number | undefined, number, number>;
15
+ type: import("mobx-state-tree").ISimpleType<"LinearAlignmentsDisplay">;
16
+ configuration: import("mobx-state-tree").ITypeUnion<any, any, any>;
17
+ height: import("mobx-state-tree").IType<number | undefined, number, number>;
18
+ showCoverage: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
19
+ showPileup: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
20
+ userFeatureScreenDensity: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
21
+ }, {
22
+ rendererTypeName: string;
23
+ error: unknown;
24
+ } & {
25
+ readonly RenderingComponent: React.FC<{
26
+ model: {
27
+ id: string;
28
+ type: string;
29
+ rpcDriverName: string | undefined;
30
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
31
+ rendererTypeName: string;
32
+ error: unknown;
33
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
34
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
35
+ type: import("mobx-state-tree").ISimpleType<string>;
36
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
37
+ }, {
38
+ rendererTypeName: string;
39
+ error: unknown;
40
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
41
+ onHorizontalScroll?: Function | undefined;
42
+ blockState?: Record<string, any> | undefined;
43
+ }>;
44
+ readonly DisplayBlurb: React.FC<{
45
+ model: {
46
+ id: string;
47
+ type: string;
48
+ rpcDriverName: string | undefined;
49
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
50
+ rendererTypeName: string;
51
+ error: unknown;
52
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
53
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
54
+ type: import("mobx-state-tree").ISimpleType<string>;
55
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
56
+ }, {
57
+ rendererTypeName: string;
58
+ error: unknown;
59
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
60
+ }> | null;
61
+ readonly adapterConfig: any;
62
+ readonly parentTrack: any;
63
+ renderProps(): any;
64
+ readonly rendererType: any;
65
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
66
+ trackMenuItems(): MenuItem[];
67
+ readonly viewMenuActions: MenuItem[];
68
+ regionCannotBeRendered(): undefined;
69
+ } & {
70
+ setError(error?: unknown): void;
71
+ setRpcDriverName(rpcDriverName: string): void;
72
+ reload(): void;
73
+ } & {
74
+ scrollTop: number;
75
+ } & {
76
+ toggleCoverage(): void;
77
+ togglePileup(): void;
78
+ setScrollTop(scrollTop: number): void;
79
+ setSNPCoverageHeight(n: number): void;
80
+ } & {
81
+ readonly pileupDisplayConfig: any;
82
+ getFeatureByID(blockKey: string, id: string): any;
83
+ searchFeatureByID(id: string): any;
84
+ readonly features: any;
85
+ readonly DisplayBlurb: any;
86
+ readonly sortedBy: any;
87
+ readonly sortedByPosition: any;
88
+ readonly sortedByRefName: any;
89
+ readonly snpCoverageDisplayConfig: any;
90
+ trackMenuItems(): MenuItem[];
91
+ } & {
92
+ setSNPCoverageDisplay(displayConfig: AnyConfigurationModel): void;
93
+ setUserFeatureScreenDensity(limit: number): void;
94
+ setPileupDisplay(displayConfig: AnyConfigurationModel): void;
95
+ setHeight(displayHeight: number): number;
96
+ resizeHeight(distance: number): number;
97
+ } & {
98
+ afterAttach(): void;
99
+ renderSvg(opts: {
100
+ rasterizeLayers?: boolean;
101
+ }): Promise<JSX.Element>;
102
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
103
+ export default stateModelFactory;
104
+ export declare type AlignmentsDisplayStateModel = ReturnType<typeof stateModelFactory>;
105
+ export declare type AlignmentsDisplayModel = Instance<AlignmentsDisplayStateModel>;
@@ -0,0 +1,181 @@
1
+ import React from 'react';
2
+ import { ConfigurationReference, getConf, } from '@jbrowse/core/configuration';
3
+ import { BaseDisplay } from '@jbrowse/core/pluggableElementTypes/models';
4
+ import { autorun, when } from 'mobx';
5
+ import { addDisposer, getSnapshot, types } from 'mobx-state-tree';
6
+ import { getContainingTrack } from '@jbrowse/core/util';
7
+ import deepEqual from 'fast-deep-equal';
8
+ const minDisplayHeight = 20;
9
+ const stateModelFactory = (pluginManager, configSchema) => {
10
+ return types
11
+ .compose('LinearAlignmentsDisplay', BaseDisplay, types.model({
12
+ PileupDisplay: types.maybe(pluginManager.getDisplayType('LinearPileupDisplay').stateModel),
13
+ SNPCoverageDisplay: types.maybe(pluginManager.getDisplayType('LinearSNPCoverageDisplay').stateModel),
14
+ snpCovHeight: 45,
15
+ type: types.literal('LinearAlignmentsDisplay'),
16
+ configuration: ConfigurationReference(configSchema),
17
+ height: 250,
18
+ showCoverage: true,
19
+ showPileup: true,
20
+ userFeatureScreenDensity: types.maybe(types.number),
21
+ }))
22
+ .volatile(() => ({
23
+ scrollTop: 0,
24
+ }))
25
+ .actions(self => ({
26
+ toggleCoverage() {
27
+ self.showCoverage = !self.showCoverage;
28
+ },
29
+ togglePileup() {
30
+ self.showPileup = !self.showPileup;
31
+ },
32
+ setScrollTop(scrollTop) {
33
+ self.scrollTop = scrollTop;
34
+ },
35
+ setSNPCoverageHeight(n) {
36
+ self.snpCovHeight = n;
37
+ },
38
+ }))
39
+ .views(self => {
40
+ const { trackMenuItems: superTrackMenuItems } = self;
41
+ return {
42
+ get pileupDisplayConfig() {
43
+ const conf = getConf(self, 'pileupDisplay');
44
+ const track = getContainingTrack(self);
45
+ return {
46
+ ...conf,
47
+ type: 'LinearPileupDisplay',
48
+ name: `${getConf(track, 'name')} pileup`,
49
+ displayId: `${self.configuration.displayId}_pileup_xyz`, // xyz to avoid someone accidentally naming the displayId similar to this
50
+ };
51
+ },
52
+ getFeatureByID(blockKey, id) {
53
+ return self.PileupDisplay.getFeatureByID(blockKey, id);
54
+ },
55
+ searchFeatureByID(id) {
56
+ return self.PileupDisplay.searchFeatureByID(id);
57
+ },
58
+ get features() {
59
+ return self.PileupDisplay.features;
60
+ },
61
+ get DisplayBlurb() {
62
+ var _a;
63
+ return (_a = self.PileupDisplay) === null || _a === void 0 ? void 0 : _a.DisplayBlurb;
64
+ },
65
+ get sortedBy() {
66
+ return self.PileupDisplay.sortedBy;
67
+ },
68
+ get sortedByPosition() {
69
+ return self.PileupDisplay.sortedByPosition;
70
+ },
71
+ get sortedByRefName() {
72
+ return self.PileupDisplay.sortedByRefName;
73
+ },
74
+ get snpCoverageDisplayConfig() {
75
+ const conf = getConf(self, 'snpCoverageDisplay');
76
+ const track = getContainingTrack(self);
77
+ return {
78
+ ...conf,
79
+ type: 'LinearSNPCoverageDisplay',
80
+ name: `${getConf(track, 'name')} snp coverage`,
81
+ displayId: `${self.configuration.displayId}_snpcoverage_xyz`, // xyz to avoid someone accidentally naming the displayId similar to this
82
+ };
83
+ },
84
+ trackMenuItems() {
85
+ return [
86
+ ...superTrackMenuItems(),
87
+ {
88
+ type: 'subMenu',
89
+ label: 'Pileup settings',
90
+ subMenu: self.PileupDisplay.trackMenuItems(),
91
+ },
92
+ {
93
+ type: 'subMenu',
94
+ label: 'SNPCoverage settings',
95
+ subMenu: self.SNPCoverageDisplay.trackMenuItems(),
96
+ },
97
+ ];
98
+ },
99
+ };
100
+ })
101
+ .actions(self => ({
102
+ setSNPCoverageDisplay(displayConfig) {
103
+ self.SNPCoverageDisplay = {
104
+ type: 'LinearSNPCoverageDisplay',
105
+ configuration: displayConfig,
106
+ height: self.snpCovHeight,
107
+ };
108
+ },
109
+ setUserFeatureScreenDensity(limit) {
110
+ self.PileupDisplay.setUserFeatureScreenDensity(limit);
111
+ self.SNPCoverageDisplay.setUserFeatureScreenDensity(limit);
112
+ },
113
+ setPileupDisplay(displayConfig) {
114
+ self.PileupDisplay = {
115
+ type: 'LinearPileupDisplay',
116
+ configuration: displayConfig,
117
+ };
118
+ },
119
+ setHeight(displayHeight) {
120
+ if (displayHeight > minDisplayHeight) {
121
+ self.height = displayHeight;
122
+ }
123
+ else {
124
+ self.height = minDisplayHeight;
125
+ }
126
+ return self.height;
127
+ },
128
+ resizeHeight(distance) {
129
+ const oldHeight = self.height;
130
+ const newHeight = this.setHeight(self.height + distance);
131
+ return newHeight - oldHeight;
132
+ },
133
+ }))
134
+ .actions(self => ({
135
+ afterAttach() {
136
+ addDisposer(self, autorun(() => {
137
+ if (!self.SNPCoverageDisplay) {
138
+ self.setSNPCoverageDisplay(self.snpCoverageDisplayConfig);
139
+ }
140
+ else if (!deepEqual(self.snpCoverageDisplayConfig, getSnapshot(self.SNPCoverageDisplay.configuration))) {
141
+ self.SNPCoverageDisplay.setHeight(self.snpCovHeight);
142
+ self.SNPCoverageDisplay.setConfig(self.snpCoverageDisplayConfig);
143
+ }
144
+ if (!self.PileupDisplay) {
145
+ self.setPileupDisplay(self.pileupDisplayConfig);
146
+ }
147
+ else if (!deepEqual(self.pileupDisplayConfig, getSnapshot(self.PileupDisplay.configuration))) {
148
+ self.PileupDisplay.setConfig(self.pileupDisplayConfig);
149
+ }
150
+ // propagate the filterBy setting from pileupdisplay to snpcoverage
151
+ // note: the snpcoverage display is not able to control filterBy
152
+ // itself
153
+ if (self.PileupDisplay.filterBy &&
154
+ !deepEqual(getSnapshot(self.PileupDisplay.filterBy), getSnapshot(self.SNPCoverageDisplay.filterBy))) {
155
+ self.SNPCoverageDisplay.setFilterBy(getSnapshot(self.PileupDisplay.filterBy));
156
+ }
157
+ if (self.PileupDisplay.colorBy &&
158
+ !deepEqual(getSnapshot(self.PileupDisplay.colorBy), self.SNPCoverageDisplay.colorBy
159
+ ? getSnapshot(self.SNPCoverageDisplay.colorBy)
160
+ : {})) {
161
+ self.SNPCoverageDisplay.setColorBy(getSnapshot(self.PileupDisplay.colorBy));
162
+ }
163
+ }));
164
+ addDisposer(self, autorun(() => {
165
+ self.setSNPCoverageHeight(self.SNPCoverageDisplay.height);
166
+ }));
167
+ },
168
+ async renderSvg(opts) {
169
+ const pileupHeight = self.height - self.SNPCoverageDisplay.height;
170
+ await when(() => self.PileupDisplay.ready);
171
+ return (React.createElement(React.Fragment, null,
172
+ React.createElement("g", null, await self.SNPCoverageDisplay.renderSvg(opts)),
173
+ React.createElement("g", { transform: `translate(0 ${self.SNPCoverageDisplay.height})` }, await self.PileupDisplay.renderSvg({
174
+ ...opts,
175
+ overrideHeight: pileupHeight,
176
+ }))));
177
+ },
178
+ }));
179
+ };
180
+ export default stateModelFactory;
181
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/LinearAlignmentsDisplay/models/model.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { ObservableMap } from 'mobx';
3
+ declare function ColorByTagDlg(props: {
4
+ model: {
5
+ setColorScheme: Function;
6
+ modificationTagMap: ObservableMap<string, string>;
7
+ colorBy?: {
8
+ type: string;
9
+ };
10
+ };
11
+ handleClose: () => void;
12
+ }): JSX.Element;
13
+ declare const _default: typeof ColorByTagDlg;
14
+ export default _default;
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Button, CircularProgress, Dialog, DialogActions, DialogContent, DialogTitle, IconButton, Typography, } from '@mui/material';
4
+ import { makeStyles } from 'tss-react/mui';
5
+ import CloseIcon from '@mui/icons-material/Close';
6
+ const useStyles = makeStyles()(theme => ({
7
+ closeButton: {
8
+ position: 'absolute',
9
+ right: theme.spacing(1),
10
+ top: theme.spacing(1),
11
+ color: theme.palette.grey[500],
12
+ },
13
+ table: {
14
+ border: '1px solid #888',
15
+ margin: theme.spacing(4),
16
+ '& td': {
17
+ padding: theme.spacing(1),
18
+ },
19
+ },
20
+ }));
21
+ function ModificationTable({ modifications, }) {
22
+ const { classes } = useStyles();
23
+ return (React.createElement("table", { className: classes.table },
24
+ React.createElement("tbody", null, modifications.map(([key, value]) => (React.createElement("tr", { key: key },
25
+ React.createElement("td", null, key),
26
+ React.createElement("td", null, value),
27
+ React.createElement("td", { style: {
28
+ width: '1em',
29
+ background: value,
30
+ } })))))));
31
+ }
32
+ function ColorByTagDlg(props) {
33
+ const { classes } = useStyles();
34
+ const { model, handleClose } = props;
35
+ const { colorBy, modificationTagMap } = model;
36
+ const modifications = [...modificationTagMap.entries()];
37
+ return (React.createElement(Dialog, { open: true, onClose: handleClose },
38
+ React.createElement(DialogTitle, null,
39
+ "Color by modifications",
40
+ React.createElement(IconButton, { "aria-label": "close", className: classes.closeButton, onClick: handleClose },
41
+ React.createElement(CloseIcon, null))),
42
+ React.createElement(DialogContent, null,
43
+ React.createElement(Typography, null, "You can choose to color the modifications in the BAM/CRAM MM/ML specification using this dialog. Choosing modifications colors the modified positions and can color multiple modification types. Choosing the methylation setting colors methylated and unmethylated CpG."),
44
+ React.createElement(Typography, null, "Note: you can revisit this dialog to see the current mapping of colors to modification type for the modification coloring mode"),
45
+ React.createElement("div", { style: { margin: 20 } },
46
+ (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications' ? (React.createElement("div", null, modifications.length ? (React.createElement(React.Fragment, null,
47
+ "Current modification-type-to-color mapping",
48
+ React.createElement(ModificationTable, { modifications: [...modificationTagMap.entries()] }))) : (React.createElement("div", null,
49
+ React.createElement(Typography, null, "Note: color by modifications is already enabled. Loading current modifications..."),
50
+ React.createElement(CircularProgress, { size: 15 }))))) : null,
51
+ (colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation' ? (React.createElement(ModificationTable, { modifications: [
52
+ ['methylated', 'red'],
53
+ ['unmethylated', 'blue'],
54
+ ] })) : null),
55
+ React.createElement(DialogActions, null,
56
+ React.createElement(Button, { variant: "contained", color: "primary", style: { margin: 5 }, onClick: () => {
57
+ model.setColorScheme({
58
+ type: 'modifications',
59
+ });
60
+ handleClose();
61
+ } }, "Modifications"),
62
+ React.createElement(Button, { variant: "contained", color: "primary", style: { margin: 5 }, onClick: () => {
63
+ model.setColorScheme({
64
+ type: 'methylation',
65
+ });
66
+ handleClose();
67
+ } }, "Methylation"),
68
+ React.createElement(Button, { variant: "contained", color: "secondary", style: { margin: 5 }, onClick: () => handleClose() }, "Cancel")))));
69
+ }
70
+ export default observer(ColorByTagDlg);
71
+ //# sourceMappingURL=ColorByModifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorByModifications.js","sourceRoot":"","sources":["../../../src/LinearPileupDisplay/components/ColorByModifications.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B;IACD,KAAK,EAAE;QACL,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE;YACN,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;SAC1B;KACF;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,iBAAiB,CAAC,EACzB,aAAa,GAGd;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,OAAO,CACL,+BAAO,SAAS,EAAE,OAAO,CAAC,KAAK;QAC7B,mCACG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACnC,4BAAI,GAAG,EAAE,GAAG;YACV,gCAAK,GAAG,CAAM;YACd,gCAAK,KAAK,CAAM;YAChB,4BACE,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,KAAK;iBAClB,GACD,CACC,CACN,CAAC,CACI,CACF,CACT,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAOtB;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAE7C,MAAM,aAAa,GAAG,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAA;IAEvD,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,WAAW;QAC/B,oBAAC,WAAW;;YAEV,oBAAC,UAAU,kBACE,OAAO,EAClB,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,OAAO,EAAE,WAAW;gBAEpB,oBAAC,SAAS,OAAG,CACF,CACD;QACd,oBAAC,aAAa;YACZ,oBAAC,UAAU,oRAKE;YACb,oBAAC,UAAU,yIAGE;YACb,6BAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;gBACvB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,eAAe,CAAC,CAAC,CAAC,CACnC,iCACG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CACtB;;oBAEE,oBAAC,iBAAiB,IAChB,aAAa,EAAE,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC,GAChD,CACD,CACJ,CAAC,CAAC,CAAC,CACF;oBACE,oBAAC,UAAU,4FAGE;oBACb,oBAAC,gBAAgB,IAAC,IAAI,EAAE,EAAE,GAAI,CAC1B,CACP,CACG,CACP,CAAC,CAAC,CAAC,IAAI;gBACP,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,aAAa,CAAC,CAAC,CAAC,CACjC,oBAAC,iBAAiB,IAChB,aAAa,EAAE;wBACb,CAAC,YAAY,EAAE,KAAK,CAAC;wBACrB,CAAC,cAAc,EAAE,MAAM,CAAC;qBACzB,GACD,CACH,CAAC,CAAC,CAAC,IAAI,CACJ;YACN,oBAAC,aAAa;gBACZ,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE;wBACZ,KAAK,CAAC,cAAc,CAAC;4BACnB,IAAI,EAAE,eAAe;yBACtB,CAAC,CAAA;wBACF,WAAW,EAAE,CAAA;oBACf,CAAC,oBAGM;gBACT,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE;wBACZ,KAAK,CAAC,cAAc,CAAC;4BACnB,IAAI,EAAE,aAAa;yBACpB,CAAC,CAAA;wBACF,WAAW,EAAE,CAAA;oBACf,CAAC,kBAGM;gBACT,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,aAGrB,CACK,CACF,CACT,CACV,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,aAAa,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ declare function ColorByTagDlg(props: {
3
+ model: {
4
+ setColorScheme: Function;
5
+ };
6
+ handleClose: () => void;
7
+ }): JSX.Element;
8
+ declare const _default: typeof ColorByTagDlg;
9
+ export default _default;
@@ -0,0 +1,45 @@
1
+ import React, { useState } from 'react';
2
+ import { observer } from 'mobx-react';
3
+ import { Button, Dialog, DialogContent, DialogActions, DialogTitle, IconButton, TextField, Typography, } from '@mui/material';
4
+ import { makeStyles } from 'tss-react/mui';
5
+ import CloseIcon from '@mui/icons-material/Close';
6
+ const useStyles = makeStyles()(theme => ({
7
+ root: {
8
+ width: 300,
9
+ },
10
+ closeButton: {
11
+ position: 'absolute',
12
+ right: theme.spacing(1),
13
+ top: theme.spacing(1),
14
+ color: theme.palette.grey[500],
15
+ },
16
+ }));
17
+ function ColorByTagDlg(props) {
18
+ const { classes } = useStyles();
19
+ const { model, handleClose } = props;
20
+ const [tag, setTag] = useState('');
21
+ const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/);
22
+ return (React.createElement(Dialog, { open: true, onClose: handleClose },
23
+ React.createElement(DialogTitle, null,
24
+ "Color by tag",
25
+ React.createElement(IconButton, { "aria-label": "close", className: classes.closeButton, onClick: handleClose },
26
+ React.createElement(CloseIcon, null))),
27
+ React.createElement(DialogContent, { style: { overflowX: 'hidden' } },
28
+ React.createElement(Typography, null, "Enter tag to color by: "),
29
+ React.createElement(Typography, { color: "textSecondary" }, "Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),
30
+ React.createElement(TextField, { value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: {
31
+ maxLength: 2,
32
+ 'data-testid': 'color-tag-name-input',
33
+ }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "color-tag-name" }),
34
+ React.createElement(DialogActions, null,
35
+ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
36
+ model.setColorScheme({
37
+ type: 'tag',
38
+ tag,
39
+ });
40
+ handleClose();
41
+ }, disabled: !validTag }, "Submit"),
42
+ React.createElement(Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
43
+ }
44
+ export default observer(ColorByTagDlg);
45
+ //# sourceMappingURL=ColorByTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorByTag.js","sourceRoot":"","sources":["../../../src/LinearPileupDisplay/components/ColorByTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAEjD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE;QACJ,KAAK,EAAE,GAAG;KACX;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B;CACF,CAAC,CAAC,CAAA;AAEH,SAAS,aAAa,CAAC,KAGtB;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEnD,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,WAAW;QAC/B,oBAAC,WAAW;;YAEV,oBAAC,UAAU,kBACE,OAAO,EAClB,SAAS,EAAE,OAAO,CAAC,WAAW,EAC9B,OAAO,EAAE,WAAW;gBAEpB,oBAAC,SAAS,OAAG,CACF,CACD;QACd,oBAAC,aAAa,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;YAC3C,oBAAC,UAAU,kCAAqC;YAChD,oBAAC,UAAU,IAAC,KAAK,EAAC,eAAe,+IAGpB;YAEb,oBAAC,SAAS,IACR,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EAAC,gBAAgB,EAC5B,UAAU,EAAE;oBACV,SAAS,EAAE,CAAC;oBACZ,aAAa,EAAE,sBAAsB;iBACtC,EACD,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EACpC,UAAU,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAClE,YAAY,EAAC,KAAK,iBACN,gBAAgB,GAC5B;YACF,oBAAC,aAAa;gBACZ,oBAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,OAAO,EAAE,GAAG,EAAE;wBACZ,KAAK,CAAC,cAAc,CAAC;4BACnB,IAAI,EAAE,KAAK;4BACX,GAAG;yBACJ,CAAC,CAAA;wBACF,WAAW,EAAE,CAAA;oBACf,CAAC,EACD,QAAQ,EAAE,CAAC,QAAQ,aAGZ;gBACT,oBAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,EAAC,OAAO,EAAE,WAAW,aAEzD,CACK,CACF,CACT,CACV,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,aAAa,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ declare function FilterByTagDlg(props: {
3
+ model: {
4
+ filterBy?: {
5
+ flagExclude: number;
6
+ flagInclude: number;
7
+ readName?: string;
8
+ tagFilter?: {
9
+ tag: string;
10
+ value: string;
11
+ };
12
+ };
13
+ setFilterBy: Function;
14
+ };
15
+ handleClose: () => void;
16
+ }): JSX.Element;
17
+ declare const _default: typeof FilterByTagDlg;
18
+ export default _default;