@jbrowse/plugin-alignments 2.2.1 → 2.3.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 (349) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsTrack/index.js +1 -0
  4. package/dist/AlignmentsTrack/index.js.map +1 -1
  5. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  6. package/dist/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  7. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  8. package/dist/BamAdapter/index.js +1 -0
  9. package/dist/BamAdapter/index.js.map +1 -1
  10. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  11. package/dist/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  12. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  13. package/dist/CramAdapter/CramTestAdapters.js +2 -1
  14. package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
  15. package/dist/CramAdapter/index.js +1 -0
  16. package/dist/CramAdapter/index.js.map +1 -1
  17. package/dist/GuessAlignmentsTypes/index.d.ts +3 -0
  18. package/dist/GuessAlignmentsTypes/index.js +56 -0
  19. package/dist/GuessAlignmentsTypes/index.js.map +1 -0
  20. package/dist/HtsgetBamAdapter/index.js +11 -11
  21. package/dist/HtsgetBamAdapter/index.js.map +1 -1
  22. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  23. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  24. package/dist/LinearAlignmentsDisplay/index.js +1 -0
  25. package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
  26. package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  27. package/dist/LinearAlignmentsDisplay/models/configSchema.js +2 -3
  28. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  29. package/dist/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  30. package/dist/LinearAlignmentsDisplay/models/model.js +166 -151
  31. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  32. package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
  33. package/dist/LinearPileupDisplay/components/ColorByModifications.js +7 -22
  34. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  35. package/dist/LinearPileupDisplay/components/ColorByTag.js +2 -22
  36. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  37. package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  38. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +3 -22
  39. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  40. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +2 -18
  41. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  42. package/dist/LinearPileupDisplay/components/SortByTag.js +2 -23
  43. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  44. package/dist/LinearPileupDisplay/configSchema.d.ts +0 -3
  45. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  46. package/dist/LinearPileupDisplay/index.js +2 -0
  47. package/dist/LinearPileupDisplay/index.js.map +1 -1
  48. package/dist/LinearPileupDisplay/model.d.ts +19 -16
  49. package/dist/LinearPileupDisplay/model.js +28 -13
  50. package/dist/LinearPileupDisplay/model.js.map +1 -1
  51. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  52. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +49 -0
  53. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  54. package/dist/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  55. package/dist/LinearReadArcsDisplay/configSchema.js +52 -0
  56. package/dist/LinearReadArcsDisplay/configSchema.js.map +1 -0
  57. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  58. package/dist/LinearReadArcsDisplay/drawFeats.js +162 -0
  59. package/dist/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  60. package/dist/LinearReadArcsDisplay/index.d.ts +2 -0
  61. package/dist/LinearReadArcsDisplay/index.js +27 -0
  62. package/dist/LinearReadArcsDisplay/index.js.map +1 -0
  63. package/dist/LinearReadArcsDisplay/model.d.ts +342 -0
  64. package/dist/LinearReadArcsDisplay/model.js +327 -0
  65. package/dist/LinearReadArcsDisplay/model.js.map +1 -0
  66. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  67. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +49 -0
  68. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  69. package/dist/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  70. package/dist/LinearReadCloudDisplay/configSchema.js +51 -0
  71. package/dist/LinearReadCloudDisplay/configSchema.js.map +1 -0
  72. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  73. package/dist/LinearReadCloudDisplay/drawFeats.js +159 -0
  74. package/dist/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  75. package/dist/LinearReadCloudDisplay/index.d.ts +2 -0
  76. package/dist/LinearReadCloudDisplay/index.js +27 -0
  77. package/dist/LinearReadCloudDisplay/index.js.map +1 -0
  78. package/dist/LinearReadCloudDisplay/model.d.ts +320 -0
  79. package/dist/LinearReadCloudDisplay/model.js +252 -0
  80. package/dist/LinearReadCloudDisplay/model.js.map +1 -0
  81. package/dist/LinearSNPCoverageDisplay/index.js +1 -0
  82. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
  83. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
  84. package/dist/LinearSNPCoverageDisplay/models/model.js +9 -12
  85. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  86. package/dist/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  87. package/dist/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +116 -3
  88. package/dist/MismatchParser/index.js.map +1 -0
  89. package/dist/PileupRPC/base.d.ts +8 -0
  90. package/dist/PileupRPC/base.js +22 -0
  91. package/dist/PileupRPC/base.js.map +1 -0
  92. package/dist/PileupRPC/index.d.ts +3 -0
  93. package/dist/PileupRPC/index.js +9 -0
  94. package/dist/PileupRPC/index.js.map +1 -0
  95. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  96. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +29 -0
  97. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  98. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  99. package/dist/PileupRPC/methods/GetReducedFeatures.js +61 -0
  100. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  101. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  102. package/dist/PileupRPC/methods/GetVisibleModifications.js +32 -0
  103. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  104. package/dist/PileupRPC/rpcMethods.d.ts +4 -34
  105. package/dist/PileupRPC/rpcMethods.js +7 -77
  106. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  107. package/dist/PileupRPC/util.d.ts +8 -0
  108. package/dist/PileupRPC/util.js +20 -0
  109. package/dist/PileupRPC/util.js.map +1 -0
  110. package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
  111. package/dist/PileupRenderer/PileupRenderer.js +5 -5
  112. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  113. package/dist/PileupRenderer/configSchema.js +1 -1
  114. package/dist/PileupRenderer/configSchema.js.map +1 -1
  115. package/dist/PileupRenderer/index.js +1 -0
  116. package/dist/PileupRenderer/index.js.map +1 -1
  117. package/dist/PileupRenderer/sortUtil.d.ts +1 -1
  118. package/dist/PileupRenderer/sortUtil.js +2 -2
  119. package/dist/PileupRenderer/sortUtil.js.map +1 -1
  120. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
  121. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +3 -182
  122. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  123. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
  124. package/dist/SNPCoverageAdapter/generateCoverageBins.js +185 -0
  125. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
  126. package/dist/SNPCoverageAdapter/index.js +1 -3
  127. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  128. package/dist/index.d.ts +2 -2
  129. package/dist/index.js +12 -58
  130. package/dist/index.js.map +1 -1
  131. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  132. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.js +5 -24
  133. package/dist/shared/FilterByTag.js.map +1 -0
  134. package/dist/shared/color.d.ts +17 -0
  135. package/dist/shared/color.js +43 -0
  136. package/dist/shared/color.js.map +1 -0
  137. package/dist/shared/fetchChains.d.ts +27 -0
  138. package/dist/shared/fetchChains.js +30 -0
  139. package/dist/shared/fetchChains.js.map +1 -0
  140. package/dist/shared/index.d.ts +36 -0
  141. package/dist/{shared.js → shared/index.js} +12 -2
  142. package/dist/shared/index.js.map +1 -0
  143. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  144. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  145. package/esm/AlignmentsTrack/index.js +1 -0
  146. package/esm/AlignmentsTrack/index.js.map +1 -1
  147. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  148. package/esm/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  149. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  150. package/esm/BamAdapter/index.js +1 -0
  151. package/esm/BamAdapter/index.js.map +1 -1
  152. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  153. package/esm/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  154. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  155. package/esm/CramAdapter/CramTestAdapters.js +2 -1
  156. package/esm/CramAdapter/CramTestAdapters.js.map +1 -1
  157. package/esm/CramAdapter/index.js +1 -0
  158. package/esm/CramAdapter/index.js.map +1 -1
  159. package/esm/GuessAlignmentsTypes/index.d.ts +3 -0
  160. package/esm/GuessAlignmentsTypes/index.js +54 -0
  161. package/esm/GuessAlignmentsTypes/index.js.map +1 -0
  162. package/esm/HtsgetBamAdapter/index.js +11 -11
  163. package/esm/HtsgetBamAdapter/index.js.map +1 -1
  164. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  165. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  166. package/esm/LinearAlignmentsDisplay/index.js +1 -0
  167. package/esm/LinearAlignmentsDisplay/index.js.map +1 -1
  168. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  169. package/esm/LinearAlignmentsDisplay/models/configSchema.js +2 -4
  170. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  171. package/esm/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  172. package/esm/LinearAlignmentsDisplay/models/model.js +167 -152
  173. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
  174. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
  175. package/esm/LinearPileupDisplay/components/ColorByModifications.js +8 -23
  176. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  177. package/esm/LinearPileupDisplay/components/ColorByTag.js +3 -20
  178. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  179. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  180. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +4 -20
  181. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  182. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -16
  183. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  184. package/esm/LinearPileupDisplay/components/SortByTag.js +3 -21
  185. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  186. package/esm/LinearPileupDisplay/configSchema.d.ts +0 -3
  187. package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
  188. package/esm/LinearPileupDisplay/index.js +2 -0
  189. package/esm/LinearPileupDisplay/index.js.map +1 -1
  190. package/esm/LinearPileupDisplay/model.d.ts +19 -16
  191. package/esm/LinearPileupDisplay/model.js +29 -14
  192. package/esm/LinearPileupDisplay/model.js.map +1 -1
  193. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  194. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +44 -0
  195. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  196. package/esm/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  197. package/esm/LinearReadArcsDisplay/configSchema.js +50 -0
  198. package/esm/LinearReadArcsDisplay/configSchema.js.map +1 -0
  199. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  200. package/esm/LinearReadArcsDisplay/drawFeats.js +157 -0
  201. package/esm/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  202. package/esm/LinearReadArcsDisplay/index.d.ts +2 -0
  203. package/esm/LinearReadArcsDisplay/index.js +21 -0
  204. package/esm/LinearReadArcsDisplay/index.js.map +1 -0
  205. package/esm/LinearReadArcsDisplay/model.d.ts +342 -0
  206. package/esm/LinearReadArcsDisplay/model.js +299 -0
  207. package/esm/LinearReadArcsDisplay/model.js.map +1 -0
  208. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  209. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +44 -0
  210. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  211. package/esm/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  212. package/esm/LinearReadCloudDisplay/configSchema.js +49 -0
  213. package/esm/LinearReadCloudDisplay/configSchema.js.map +1 -0
  214. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  215. package/esm/LinearReadCloudDisplay/drawFeats.js +156 -0
  216. package/esm/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  217. package/esm/LinearReadCloudDisplay/index.d.ts +2 -0
  218. package/esm/LinearReadCloudDisplay/index.js +21 -0
  219. package/esm/LinearReadCloudDisplay/index.js.map +1 -0
  220. package/esm/LinearReadCloudDisplay/model.d.ts +320 -0
  221. package/esm/LinearReadCloudDisplay/model.js +224 -0
  222. package/esm/LinearReadCloudDisplay/model.js.map +1 -0
  223. package/esm/LinearSNPCoverageDisplay/index.js +1 -0
  224. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -1
  225. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
  226. package/esm/LinearSNPCoverageDisplay/models/model.js +11 -14
  227. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  228. package/esm/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  229. package/esm/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +107 -2
  230. package/esm/MismatchParser/index.js.map +1 -0
  231. package/esm/PileupRPC/base.d.ts +8 -0
  232. package/esm/PileupRPC/base.js +16 -0
  233. package/esm/PileupRPC/base.js.map +1 -0
  234. package/esm/PileupRPC/index.d.ts +3 -0
  235. package/esm/PileupRPC/index.js +7 -0
  236. package/esm/PileupRPC/index.js.map +1 -0
  237. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  238. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +23 -0
  239. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  240. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  241. package/esm/PileupRPC/methods/GetReducedFeatures.js +55 -0
  242. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  243. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  244. package/esm/PileupRPC/methods/GetVisibleModifications.js +26 -0
  245. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  246. package/esm/PileupRPC/rpcMethods.d.ts +4 -34
  247. package/esm/PileupRPC/rpcMethods.js +4 -74
  248. package/esm/PileupRPC/rpcMethods.js.map +1 -1
  249. package/esm/PileupRPC/util.d.ts +8 -0
  250. package/esm/PileupRPC/util.js +15 -0
  251. package/esm/PileupRPC/util.js.map +1 -0
  252. package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
  253. package/esm/PileupRenderer/PileupRenderer.js +5 -5
  254. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  255. package/esm/PileupRenderer/configSchema.js +1 -1
  256. package/esm/PileupRenderer/configSchema.js.map +1 -1
  257. package/esm/PileupRenderer/index.js +1 -0
  258. package/esm/PileupRenderer/index.js.map +1 -1
  259. package/esm/PileupRenderer/sortUtil.d.ts +1 -1
  260. package/esm/PileupRenderer/sortUtil.js +1 -1
  261. package/esm/PileupRenderer/sortUtil.js.map +1 -1
  262. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
  263. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -183
  264. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  265. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
  266. package/esm/SNPCoverageAdapter/generateCoverageBins.js +182 -0
  267. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
  268. package/esm/SNPCoverageAdapter/index.js +1 -3
  269. package/esm/SNPCoverageAdapter/index.js.map +1 -1
  270. package/esm/index.d.ts +2 -2
  271. package/esm/index.js +10 -56
  272. package/esm/index.js.map +1 -1
  273. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  274. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.js +6 -22
  275. package/esm/shared/FilterByTag.js.map +1 -0
  276. package/esm/shared/color.d.ts +17 -0
  277. package/esm/shared/color.js +37 -0
  278. package/esm/shared/color.js.map +1 -0
  279. package/esm/shared/fetchChains.d.ts +27 -0
  280. package/esm/shared/fetchChains.js +26 -0
  281. package/esm/shared/fetchChains.js.map +1 -0
  282. package/esm/shared/index.d.ts +36 -0
  283. package/esm/{shared.js → shared/index.js} +11 -1
  284. package/esm/shared/index.js.map +1 -0
  285. package/package.json +5 -5
  286. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +1 -1
  287. package/src/AlignmentsTrack/index.ts +1 -0
  288. package/src/BamAdapter/BamSlightlyLazyFeature.ts +13 -19
  289. package/src/BamAdapter/index.ts +1 -0
  290. package/src/CramAdapter/CramSlightlyLazyFeature.ts +13 -15
  291. package/src/CramAdapter/CramTestAdapters.ts +1 -0
  292. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -10
  293. package/src/CramAdapter/index.ts +1 -0
  294. package/src/GuessAlignmentsTypes/index.ts +79 -0
  295. package/src/HtsgetBamAdapter/index.ts +11 -15
  296. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +21 -29
  297. package/src/LinearAlignmentsDisplay/index.ts +1 -0
  298. package/src/LinearAlignmentsDisplay/models/configSchema.ts +2 -6
  299. package/src/LinearAlignmentsDisplay/models/model.tsx +238 -199
  300. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +5 -34
  301. package/src/LinearPileupDisplay/components/ColorByTag.tsx +2 -29
  302. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +5 -27
  303. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +2 -24
  304. package/src/LinearPileupDisplay/components/SortByTag.tsx +2 -31
  305. package/src/LinearPileupDisplay/configSchema.ts +1 -3
  306. package/src/LinearPileupDisplay/index.ts +2 -0
  307. package/src/LinearPileupDisplay/model.ts +36 -23
  308. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +86 -0
  309. package/src/LinearReadArcsDisplay/configSchema.ts +58 -0
  310. package/src/LinearReadArcsDisplay/declare.d.ts +1 -0
  311. package/src/LinearReadArcsDisplay/drawFeats.ts +199 -0
  312. package/src/LinearReadArcsDisplay/index.ts +23 -0
  313. package/src/LinearReadArcsDisplay/model.tsx +370 -0
  314. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +86 -0
  315. package/src/LinearReadCloudDisplay/configSchema.ts +57 -0
  316. package/src/LinearReadCloudDisplay/drawFeats.ts +201 -0
  317. package/src/LinearReadCloudDisplay/index.ts +23 -0
  318. package/src/LinearReadCloudDisplay/model.tsx +289 -0
  319. package/src/LinearSNPCoverageDisplay/index.ts +1 -0
  320. package/src/LinearSNPCoverageDisplay/models/model.ts +15 -21
  321. package/src/{BamAdapter/MismatchParser.test.ts → MismatchParser/index.test.ts} +1 -1
  322. package/src/{BamAdapter/MismatchParser.ts → MismatchParser/index.ts} +129 -2
  323. package/src/PileupRPC/base.ts +24 -0
  324. package/src/PileupRPC/index.ts +12 -0
  325. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +41 -0
  326. package/src/PileupRPC/methods/GetReducedFeatures.ts +76 -0
  327. package/src/PileupRPC/methods/GetVisibleModifications.ts +45 -0
  328. package/src/PileupRPC/rpcMethods.ts +8 -113
  329. package/src/PileupRPC/util.ts +19 -0
  330. package/src/PileupRenderer/PileupRenderer.ts +5 -8
  331. package/src/PileupRenderer/configSchema.ts +1 -1
  332. package/src/PileupRenderer/index.ts +1 -0
  333. package/src/PileupRenderer/sortUtil.ts +2 -3
  334. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -249
  335. package/src/SNPCoverageAdapter/generateCoverageBins.ts +245 -0
  336. package/src/SNPCoverageAdapter/index.ts +1 -3
  337. package/src/index.ts +12 -93
  338. package/src/{LinearPileupDisplay/components → shared}/FilterByTag.tsx +5 -31
  339. package/src/shared/color.ts +47 -0
  340. package/src/shared/fetchChains.ts +63 -0
  341. package/src/{shared.ts → shared/index.ts} +17 -4
  342. package/dist/BamAdapter/MismatchParser.js.map +0 -1
  343. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  344. package/dist/shared.d.ts +0 -25
  345. package/dist/shared.js.map +0 -1
  346. package/esm/BamAdapter/MismatchParser.js.map +0 -1
  347. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  348. package/esm/shared.d.ts +0 -25
  349. package/esm/shared.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const DisplayType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/DisplayType"));
7
+ // locals
8
+ const ReactComponent_1 = __importDefault(require("./components/ReactComponent"));
9
+ const configSchema_1 = __importDefault(require("./configSchema"));
10
+ const model_1 = __importDefault(require("./model"));
11
+ function register(pluginManager) {
12
+ pluginManager.addDisplayType(() => {
13
+ const configSchema = (0, configSchema_1.default)(pluginManager);
14
+ return new DisplayType_1.default({
15
+ name: 'LinearReadCloudDisplay',
16
+ displayName: 'Read cloud display',
17
+ configSchema,
18
+ stateModel: (0, model_1.default)(configSchema),
19
+ trackType: 'AlignmentsTrack',
20
+ viewType: 'LinearGenomeView',
21
+ subDisplay: { type: 'LinearAlignmentsDisplay', lowerPanel: true },
22
+ ReactComponent: ReactComponent_1.default,
23
+ });
24
+ });
25
+ }
26
+ exports.default = register;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearReadCloudDisplay/index.ts"],"names":[],"mappings":";;;;;AACA,kGAAyE;AAEzE,SAAS;AACT,iFAAwD;AACxD,kEAA0C;AAC1C,oDAAiC;AAEjC,SAAwB,QAAQ,CAAC,aAA4B;IAC3D,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,IAAA,sBAAa,EAAC,aAAa,CAAC,CAAA;QACjD,OAAO,IAAI,qBAAW,CAAC;YACrB,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,oBAAoB;YACjC,YAAY;YACZ,UAAU,EAAE,IAAA,eAAW,EAAC,YAAY,CAAC;YACrC,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YACjE,cAAc,EAAd,wBAAc;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAdD,2BAcC"}
@@ -0,0 +1,320 @@
1
+ import React from 'react';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
4
+ import { ChainData } from '../shared/fetchChains';
5
+ import { ExportSvgOptions } from '@jbrowse/plugin-linear-genome-view/src/LinearGenomeView';
6
+ interface Filter {
7
+ flagInclude: number;
8
+ flagExclude: number;
9
+ readName?: string;
10
+ tagFilter?: {
11
+ tag: string;
12
+ value: string;
13
+ };
14
+ }
15
+ /**
16
+ * #stateModel LinearReadCloudDisplay
17
+ * extends `BaseLinearDisplay`
18
+ */
19
+ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
20
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
21
+ type: import("mobx-state-tree").ISimpleType<string>;
22
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
23
+ } & {
24
+ height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
25
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
26
+ key: import("mobx-state-tree").ISimpleType<string>;
27
+ region: import("mobx-state-tree").IModelType<{
28
+ refName: import("mobx-state-tree").ISimpleType<string>;
29
+ /**
30
+ * #property
31
+ */
32
+ start: import("mobx-state-tree").ISimpleType<number>;
33
+ end: import("mobx-state-tree").ISimpleType<number>;
34
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
35
+ } & {
36
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
37
+ }, {
38
+ setRefName(newRefName: string): void;
39
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
40
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
41
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
42
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
43
+ }, {
44
+ renderInProgress: AbortController | undefined;
45
+ filled: boolean;
46
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
47
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
48
+ layout: any;
49
+ /**
50
+ * #action
51
+ */
52
+ status: string;
53
+ error: unknown;
54
+ message: string | undefined;
55
+ maxHeightReached: boolean;
56
+ ReactComponent: ({ model, }: {
57
+ model: any;
58
+ }) => any;
59
+ /**
60
+ * #action
61
+ */
62
+ renderProps: any;
63
+ } & {
64
+ doReload(): void;
65
+ afterAttach(): void;
66
+ setStatus(message: string): void;
67
+ setLoading(abortController: AbortController): void;
68
+ setMessage(messageText: string): void;
69
+ setRendered(props: {
70
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
71
+ features: Map<string, import("@jbrowse/core/util").Feature>; /**
72
+ * #getter
73
+ */
74
+ layout: any;
75
+ maxHeightReached: boolean;
76
+ renderProps: any;
77
+ } | undefined): void;
78
+ setError(error: unknown): void;
79
+ reload(): void;
80
+ beforeDestroy(): void;
81
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
82
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
83
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
84
+ } & {
85
+ /**
86
+ * #property
87
+ */
88
+ type: import("mobx-state-tree").ISimpleType<"LinearReadCloudDisplay">;
89
+ /**
90
+ * #property
91
+ */
92
+ configuration: import("mobx-state-tree").ITypeUnion<any, any, any>;
93
+ /**
94
+ * #property
95
+ */
96
+ filterBy: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
97
+ flagInclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
98
+ flagExclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
99
+ readName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
100
+ tagFilter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
101
+ tag: import("mobx-state-tree").ISimpleType<string>;
102
+ value: import("mobx-state-tree").ISimpleType<string>;
103
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
104
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
105
+ /**
106
+ * #property
107
+ */
108
+ colorBy: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
109
+ type: import("mobx-state-tree").ISimpleType<string>;
110
+ tag: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
111
+ extra: import("mobx-state-tree").IType<any, any, any>;
112
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
113
+ }, {
114
+ rendererTypeName: string;
115
+ error: unknown;
116
+ } & {
117
+ readonly RenderingComponent: React.FC<{
118
+ model: {
119
+ id: string;
120
+ type: string;
121
+ rpcDriverName: string | undefined;
122
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
123
+ rendererTypeName: string;
124
+ error: unknown;
125
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
126
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
127
+ type: import("mobx-state-tree").ISimpleType<string>;
128
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
129
+ }, {
130
+ rendererTypeName: string;
131
+ error: unknown;
132
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
133
+ onHorizontalScroll?: Function | undefined;
134
+ blockState?: Record<string, any> | undefined;
135
+ }>;
136
+ readonly DisplayBlurb: React.FC<{
137
+ model: {
138
+ id: string;
139
+ type: string;
140
+ rpcDriverName: string | undefined;
141
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
142
+ rendererTypeName: string;
143
+ error: unknown;
144
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
145
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
146
+ type: import("mobx-state-tree").ISimpleType<string>;
147
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
148
+ }, {
149
+ rendererTypeName: string;
150
+ error: unknown;
151
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
152
+ }> | null;
153
+ readonly adapterConfig: any;
154
+ readonly parentTrack: any;
155
+ renderProps(): any;
156
+ readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
157
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
158
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
159
+ readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
160
+ regionCannotBeRendered(): undefined;
161
+ } & {
162
+ setError(error?: unknown): void;
163
+ setRpcDriverName(rpcDriverName: string): void;
164
+ reload(): void;
165
+ } & {
166
+ currBpPerPx: number;
167
+ scrollTop: number;
168
+ message: string;
169
+ featureIdUnderMouse: string | undefined;
170
+ contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
171
+ estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
172
+ estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
173
+ } & {
174
+ readonly blockType: "dynamicBlocks" | "staticBlocks";
175
+ readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
176
+ } & {
177
+ readonly renderDelay: number;
178
+ readonly TooltipComponent: React.FC<any>;
179
+ readonly selectedFeatureId: string | undefined;
180
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
181
+ } & {
182
+ readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
183
+ readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
184
+ getFeatureOverlapping(blockKey: string, x: number, y: number): any;
185
+ getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
186
+ searchFeatureByID(id: string): [number, number, number, number] | undefined;
187
+ readonly currentBytesRequested: number;
188
+ readonly currentFeatureScreenDensity: number;
189
+ readonly maxFeatureScreenDensity: any;
190
+ readonly estimatedStatsReady: boolean;
191
+ readonly maxAllowableBytes: number;
192
+ } & {
193
+ setMessage(message: string): void;
194
+ afterAttach(): void;
195
+ estimateRegionsStats(regions: import("@jbrowse/core/util").Region[], opts: {
196
+ headers?: Record<string, string> | undefined;
197
+ signal?: AbortSignal | undefined;
198
+ filters?: string[] | undefined;
199
+ }): Promise<{}>;
200
+ setRegionStatsP(p?: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined): void;
201
+ setRegionStats(estimatedRegionStats?: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined): void;
202
+ clearRegionStats(): void;
203
+ setHeight(displayHeight: number): number;
204
+ resizeHeight(distance: number): number;
205
+ setScrollTop(scrollTop: number): void;
206
+ updateStatsLimit(stats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats): void;
207
+ addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
208
+ setCurrBpPerPx(n: number): void;
209
+ deleteBlock(key: string): void;
210
+ selectFeature(feature: import("@jbrowse/core/util").Feature): void;
211
+ clearFeatureSelection(): void;
212
+ setFeatureIdUnderMouse(feature: string | undefined): void;
213
+ reload(): void;
214
+ setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
215
+ } & {
216
+ readonly regionTooLarge: boolean;
217
+ readonly regionTooLargeReason: string;
218
+ } & {
219
+ reload(): Promise<void>;
220
+ afterAttach(): void;
221
+ } & {
222
+ regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
223
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): JSX.Element | null;
224
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
225
+ contextMenuItems(): {
226
+ label: string;
227
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
228
+ muiName: string;
229
+ };
230
+ onClick: () => void;
231
+ }[];
232
+ renderProps(): any;
233
+ } & {
234
+ renderSvg(opts: ExportSvgOptions & {
235
+ overrideHeight: number;
236
+ }): Promise<JSX.Element>;
237
+ } & {
238
+ loading: boolean;
239
+ drawn: boolean;
240
+ chainData: ChainData | undefined;
241
+ ref: HTMLCanvasElement | null;
242
+ lastDrawnOffsetPx: number;
243
+ } & {
244
+ /**
245
+ * #action
246
+ * internal, a reference to a HTMLCanvas because we use a autorun to draw the canvas
247
+ */
248
+ reload(): void;
249
+ /**
250
+ * #action
251
+ */
252
+ setRef(ref: HTMLCanvasElement | null): void;
253
+ setColorScheme(s: {
254
+ type: string;
255
+ }): void;
256
+ /**
257
+ * #action
258
+ */
259
+ setChainData(args: ChainData): void;
260
+ /**
261
+ * #action
262
+ */
263
+ setLoading(f: boolean): void;
264
+ /**
265
+ * #action
266
+ */
267
+ setDrawn(f: boolean): void;
268
+ /**
269
+ * #action
270
+ */
271
+ setFilterBy(filter: Filter): void;
272
+ /**
273
+ * #action
274
+ */
275
+ setLastDrawnOffsetPx(n: number): void;
276
+ } & {
277
+ /**
278
+ * #getter
279
+ */
280
+ readonly ready: boolean;
281
+ readonly rendererTypeName: string;
282
+ renderProps(): any;
283
+ /**
284
+ * #method
285
+ */
286
+ trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
287
+ label: string;
288
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
289
+ muiName: string;
290
+ };
291
+ onClick: () => void;
292
+ subMenu?: undefined;
293
+ } | {
294
+ label: string;
295
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
296
+ muiName: string;
297
+ };
298
+ subMenu: {
299
+ label: string;
300
+ onClick: () => void;
301
+ }[];
302
+ onClick?: undefined;
303
+ })[];
304
+ /**
305
+ * #method
306
+ */
307
+ renderSvg(opts: ExportSvgOptions): Promise<JSX.Element | undefined>;
308
+ } & {
309
+ afterAttach(): void;
310
+ }, import("mobx-state-tree")._NotCustomized, {
311
+ type: string;
312
+ height: number;
313
+ id: string;
314
+ rpcDriverName: string | undefined;
315
+ userBpPerPxLimit: number | undefined;
316
+ userByteSizeLimit: number | undefined;
317
+ } & import("mobx-state-tree")._NotCustomized>;
318
+ export type LinearReadCloudDisplayStateModel = ReturnType<typeof stateModelFactory>;
319
+ export type LinearReadCloudDisplayModel = Instance<LinearReadCloudDisplayStateModel>;
320
+ export default stateModelFactory;
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importStar(require("react"));
30
+ const mobx_1 = require("mobx");
31
+ const mobx_state_tree_1 = require("mobx-state-tree");
32
+ const configuration_1 = require("@jbrowse/core/configuration");
33
+ const util_1 = require("@jbrowse/core/util");
34
+ const plugin_linear_genome_view_1 = require("@jbrowse/plugin-linear-genome-view");
35
+ // icons
36
+ const Palette_1 = __importDefault(require("@mui/icons-material/Palette"));
37
+ const ClearAll_1 = __importDefault(require("@mui/icons-material/ClearAll"));
38
+ // locals
39
+ const shared_1 = require("../shared");
40
+ const fetchChains_1 = require("../shared/fetchChains");
41
+ const drawFeats_1 = __importDefault(require("./drawFeats"));
42
+ // async
43
+ const FilterByTagDlg = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../shared/FilterByTag'))));
44
+ /**
45
+ * #stateModel LinearReadCloudDisplay
46
+ * extends `BaseLinearDisplay`
47
+ */
48
+ function stateModelFactory(configSchema) {
49
+ return mobx_state_tree_1.types
50
+ .compose('LinearReadCloudDisplay', plugin_linear_genome_view_1.BaseLinearDisplay, mobx_state_tree_1.types.model({
51
+ /**
52
+ * #property
53
+ */
54
+ type: mobx_state_tree_1.types.literal('LinearReadCloudDisplay'),
55
+ /**
56
+ * #property
57
+ */
58
+ configuration: (0, configuration_1.ConfigurationReference)(configSchema),
59
+ /**
60
+ * #property
61
+ */
62
+ filterBy: mobx_state_tree_1.types.optional(shared_1.FilterModel, {}),
63
+ /**
64
+ * #property
65
+ */
66
+ colorBy: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.model({
67
+ type: mobx_state_tree_1.types.string,
68
+ tag: mobx_state_tree_1.types.maybe(mobx_state_tree_1.types.string),
69
+ extra: mobx_state_tree_1.types.frozen(),
70
+ })),
71
+ }))
72
+ .volatile(() => ({
73
+ loading: false,
74
+ drawn: false,
75
+ chainData: undefined,
76
+ ref: null,
77
+ lastDrawnOffsetPx: 0,
78
+ }))
79
+ .actions(self => ({
80
+ /**
81
+ * #action
82
+ * internal, a reference to a HTMLCanvas because we use a autorun to draw the canvas
83
+ */
84
+ reload() {
85
+ self.error = undefined;
86
+ },
87
+ /**
88
+ * #action
89
+ */
90
+ setRef(ref) {
91
+ self.ref = ref;
92
+ },
93
+ setColorScheme(s) {
94
+ self.colorBy = (0, mobx_state_tree_1.cast)(s);
95
+ },
96
+ /**
97
+ * #action
98
+ */
99
+ setChainData(args) {
100
+ self.chainData = args;
101
+ },
102
+ /**
103
+ * #action
104
+ */
105
+ setLoading(f) {
106
+ self.loading = f;
107
+ },
108
+ /**
109
+ * #action
110
+ */
111
+ setDrawn(f) {
112
+ self.drawn = f;
113
+ },
114
+ /**
115
+ * #action
116
+ */
117
+ setFilterBy(filter) {
118
+ self.filterBy = (0, mobx_state_tree_1.cast)(filter);
119
+ },
120
+ /**
121
+ * #action
122
+ */
123
+ setLastDrawnOffsetPx(n) {
124
+ self.lastDrawnOffsetPx = n;
125
+ },
126
+ }))
127
+ .views(self => {
128
+ const { trackMenuItems: superTrackMenuItems, renderProps: superRenderProps, } = self;
129
+ return {
130
+ /**
131
+ * #getter
132
+ */
133
+ get ready() {
134
+ return !!self.chainData;
135
+ },
136
+ // we don't use a server side renderer, but we need to provide this
137
+ // to avoid confusing the system currently
138
+ get rendererTypeName() {
139
+ return 'PileupRenderer';
140
+ },
141
+ // we don't use a server side renderer, so this fills in minimal
142
+ // info so as not to crash
143
+ renderProps() {
144
+ return {
145
+ ...superRenderProps(),
146
+ // never ready, we don't want to use server side render
147
+ notReady: true,
148
+ config: (0, configuration_1.ConfigurationSchema)('empty', {}).create(),
149
+ };
150
+ },
151
+ /**
152
+ * #method
153
+ */
154
+ trackMenuItems() {
155
+ return [
156
+ ...superTrackMenuItems(),
157
+ {
158
+ label: 'Filter by',
159
+ icon: ClearAll_1.default,
160
+ onClick: () => {
161
+ (0, util_1.getSession)(self).queueDialog(handleClose => [
162
+ FilterByTagDlg,
163
+ { model: self, handleClose },
164
+ ]);
165
+ },
166
+ },
167
+ {
168
+ label: 'Color scheme',
169
+ icon: Palette_1.default,
170
+ subMenu: [
171
+ {
172
+ label: 'Insert size ± 3σ and orientation',
173
+ onClick: () => self.setColorScheme({ type: 'insertSizeAndOrientation' }),
174
+ },
175
+ {
176
+ label: 'Insert size ± 3σ',
177
+ onClick: () => self.setColorScheme({ type: 'insertSize' }),
178
+ },
179
+ {
180
+ label: 'Orientation',
181
+ onClick: () => self.setColorScheme({ type: 'orientation' }),
182
+ },
183
+ {
184
+ label: 'Insert size gradient',
185
+ onClick: () => self.setColorScheme({ type: 'gradient' }),
186
+ },
187
+ ],
188
+ },
189
+ ];
190
+ },
191
+ /**
192
+ * #method
193
+ */
194
+ async renderSvg(opts) {
195
+ const view = (0, util_1.getContainingView)(self);
196
+ const width = view.dynamicBlocks.totalWidthPx;
197
+ const height = self.height;
198
+ let str;
199
+ if (opts.rasterizeLayers) {
200
+ const canvas = document.createElement('canvas');
201
+ canvas.width = width * 2;
202
+ canvas.height = height * 2;
203
+ const ctx = canvas.getContext('2d');
204
+ if (!ctx) {
205
+ return;
206
+ }
207
+ ctx.scale(2, 2);
208
+ await (0, drawFeats_1.default)(self, ctx);
209
+ str = (react_1.default.createElement("image", { width: width, height: height, xlinkHref: canvas.toDataURL('image/png') }));
210
+ }
211
+ else {
212
+ // @ts-ignore
213
+ const C2S = await Promise.resolve().then(() => __importStar(require('canvas2svg')));
214
+ const ctx = new C2S.default(width, height);
215
+ await (0, drawFeats_1.default)(self, ctx);
216
+ str = (
217
+ // eslint-disable-next-line react/no-danger
218
+ react_1.default.createElement("g", { dangerouslySetInnerHTML: { __html: ctx.getSvg().innerHTML } }));
219
+ }
220
+ return react_1.default.createElement("g", null, str);
221
+ },
222
+ };
223
+ })
224
+ .actions(self => ({
225
+ afterAttach() {
226
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(() => (0, fetchChains_1.fetchChains)(self), { delay: 1000 }));
227
+ (0, mobx_state_tree_1.addDisposer)(self, (0, mobx_1.autorun)(async () => {
228
+ try {
229
+ const canvas = self.ref;
230
+ if (!canvas) {
231
+ return;
232
+ }
233
+ const ctx = canvas.getContext('2d');
234
+ if (!ctx) {
235
+ return;
236
+ }
237
+ ctx.clearRect(0, 0, canvas.width, self.height * 2);
238
+ ctx.resetTransform();
239
+ ctx.scale(2, 2);
240
+ await (0, drawFeats_1.default)(self, ctx);
241
+ self.setDrawn(true);
242
+ }
243
+ catch (e) {
244
+ console.error(e);
245
+ self.setError(e);
246
+ }
247
+ }, { delay: 1000 }));
248
+ },
249
+ }));
250
+ }
251
+ exports.default = stateModelFactory;
252
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/LinearReadCloudDisplay/model.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ function register(pluginManager) {
12
12
  const configSchema = (0, configSchema_1.default)(pluginManager);
13
13
  return new DisplayType_1.default({
14
14
  name: 'LinearSNPCoverageDisplay',
15
+ displayName: 'SNPCoverage display',
15
16
  configSchema,
16
17
  stateModel: (0, model_1.default)(pluginManager, configSchema),
17
18
  trackType: 'AlignmentsTrack',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearSNPCoverageDisplay/index.ts"],"names":[],"mappings":";;;;;AACA,yEAAuD;AACvD,2DAAyC;AACzC,0DAA0E;AAC1E,kGAAyE;AAEzE,SAAwB,QAAQ,CAAC,aAA4B;IAC3D,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,IAAA,sBAAmB,EAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,qBAAW,CAAC;YACrB,IAAI,EAAE,0BAA0B;YAChC,YAAY;YACZ,UAAU,EAAE,IAAA,eAAY,EAAC,aAAa,EAAE,YAAY,CAAC;YACrD,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,iDAAiC;SAClD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAZD,2BAYC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearSNPCoverageDisplay/index.ts"],"names":[],"mappings":";;;;;AACA,yEAAuD;AACvD,2DAAyC;AACzC,0DAA0E;AAC1E,kGAAyE;AAEzE,SAAwB,QAAQ,CAAC,aAA4B;IAC3D,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,IAAA,sBAAmB,EAAC,aAAa,CAAC,CAAA;QACvD,OAAO,IAAI,qBAAW,CAAC;YACrB,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,qBAAqB;YAClC,YAAY;YACZ,UAAU,EAAE,IAAA,eAAY,EAAC,aAAa,EAAE,YAAY,CAAC;YACrD,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,iDAAiC;SAClD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAbD,2BAaC"}