@jbrowse/plugin-alignments 2.6.1 → 2.6.3

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 (534) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +0 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +0 -1
  3. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/index.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/util.js +0 -1
  6. package/dist/AlignmentsTrack/configSchemaF.js +0 -1
  7. package/dist/AlignmentsTrack/index.js +0 -1
  8. package/dist/BamAdapter/BamAdapter.js +0 -1
  9. package/dist/BamAdapter/BamSlightlyLazyFeature.js +0 -1
  10. package/dist/BamAdapter/configSchema.js +0 -1
  11. package/dist/BamAdapter/index.js +0 -1
  12. package/dist/CramAdapter/CramAdapter.js +0 -1
  13. package/dist/CramAdapter/CramSlightlyLazyFeature.js +0 -1
  14. package/dist/CramAdapter/CramTestAdapters.js +0 -1
  15. package/dist/CramAdapter/configSchema.js +0 -1
  16. package/dist/CramAdapter/index.js +0 -1
  17. package/dist/CramAdapter/util.js +0 -1
  18. package/dist/GuessAlignmentsTypes/index.js +0 -1
  19. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +0 -1
  20. package/dist/HtsgetBamAdapter/configSchema.js +0 -1
  21. package/dist/HtsgetBamAdapter/index.js +0 -1
  22. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  23. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +5 -2
  24. package/dist/LinearAlignmentsDisplay/index.js +0 -1
  25. package/dist/LinearAlignmentsDisplay/models/configSchema.js +0 -1
  26. package/dist/LinearAlignmentsDisplay/models/model.js +5 -2
  27. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +492 -0
  28. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +529 -0
  29. package/dist/LinearPileupDisplay/components/ColorByModifications.js +0 -1
  30. package/dist/LinearPileupDisplay/components/ColorByTag.js +0 -1
  31. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  32. package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  33. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  34. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  35. package/dist/LinearPileupDisplay/components/SortByTag.js +0 -1
  36. package/dist/LinearPileupDisplay/configSchema.js +0 -1
  37. package/dist/LinearPileupDisplay/index.d.ts +1 -0
  38. package/dist/LinearPileupDisplay/index.js +3 -2
  39. package/dist/LinearPileupDisplay/model.d.ts +110 -231
  40. package/dist/LinearPileupDisplay/model.js +47 -445
  41. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  42. package/dist/LinearReadArcsDisplay/configSchema.js +0 -1
  43. package/dist/LinearReadArcsDisplay/drawFeats.js +0 -1
  44. package/dist/LinearReadArcsDisplay/index.js +0 -1
  45. package/dist/LinearReadArcsDisplay/model.js +0 -1
  46. package/dist/LinearReadArcsDisplay/util.js +0 -1
  47. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  48. package/dist/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  49. package/dist/LinearReadCloudDisplay/configSchema.js +0 -1
  50. package/dist/LinearReadCloudDisplay/drawFeats.js +0 -1
  51. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  52. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -1
  53. package/dist/LinearReadCloudDisplay/index.js +0 -1
  54. package/dist/LinearReadCloudDisplay/model.d.ts +1 -3
  55. package/dist/LinearReadCloudDisplay/model.js +0 -1
  56. package/dist/LinearReadCloudDisplay/util.js +0 -1
  57. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  58. package/dist/LinearSNPCoverageDisplay/index.js +0 -1
  59. package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  60. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  61. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  62. package/dist/LinearSNPCoverageDisplay/models/model.js +0 -1
  63. package/dist/MismatchParser/index.js +0 -1
  64. package/dist/PileupRPC/base.js +0 -1
  65. package/dist/PileupRPC/index.js +0 -1
  66. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  67. package/dist/PileupRPC/methods/GetReducedFeatures.js +0 -1
  68. package/dist/PileupRPC/methods/GetVisibleModifications.js +0 -1
  69. package/dist/PileupRPC/rpcMethods.js +0 -1
  70. package/dist/PileupRPC/util.js +0 -1
  71. package/dist/PileupRenderer/PileupLayoutSession.js +0 -1
  72. package/dist/PileupRenderer/PileupRenderer.js +0 -1
  73. package/dist/PileupRenderer/colorBy.js +8 -7
  74. package/dist/PileupRenderer/components/PileupRendering.js +0 -1
  75. package/dist/PileupRenderer/configSchema.js +0 -1
  76. package/dist/PileupRenderer/getAlignmentShapeColor.js +0 -1
  77. package/dist/PileupRenderer/index.js +0 -1
  78. package/dist/PileupRenderer/layoutFeature.js +0 -1
  79. package/dist/PileupRenderer/layoutFeatures.js +0 -1
  80. package/dist/PileupRenderer/makeImageData.js +0 -1
  81. package/dist/PileupRenderer/renderAlignment.js +0 -1
  82. package/dist/PileupRenderer/renderAlignmentShape.js +1 -2
  83. package/dist/PileupRenderer/renderMethylation.js +0 -1
  84. package/dist/PileupRenderer/renderMismatches.js +0 -1
  85. package/dist/PileupRenderer/renderModifications.js +0 -1
  86. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  87. package/dist/PileupRenderer/renderPerBaseQuality.js +0 -1
  88. package/dist/PileupRenderer/renderSoftClipping.js +0 -1
  89. package/dist/PileupRenderer/sortUtil.js +0 -1
  90. package/dist/PileupRenderer/util.js +0 -1
  91. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  92. package/dist/SNPCoverageAdapter/configSchema.js +0 -1
  93. package/dist/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  94. package/dist/SNPCoverageAdapter/index.js +0 -1
  95. package/dist/SNPCoverageAdapter/util.js +0 -1
  96. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  97. package/dist/SNPCoverageRenderer/configSchema.js +0 -1
  98. package/dist/SNPCoverageRenderer/index.js +0 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +2 -2
  101. package/dist/shared/BaseDisplayComponent.js +0 -1
  102. package/dist/shared/FilterByTag.js +0 -1
  103. package/dist/shared/afterAttach.js +0 -1
  104. package/dist/shared/color.d.ts +10 -0
  105. package/dist/shared/color.js +7 -2
  106. package/dist/shared/fetchChains.js +0 -1
  107. package/dist/shared/index.js +0 -1
  108. package/dist/shared/renderSvg.js +0 -1
  109. package/dist/shared/util.js +0 -1
  110. package/dist/util.js +0 -1
  111. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +0 -1
  112. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +0 -1
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +0 -1
  114. package/esm/AlignmentsFeatureDetail/index.js +0 -1
  115. package/esm/AlignmentsFeatureDetail/util.js +0 -1
  116. package/esm/AlignmentsTrack/configSchemaF.js +0 -1
  117. package/esm/AlignmentsTrack/index.js +0 -1
  118. package/esm/BamAdapter/BamAdapter.js +0 -1
  119. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -1
  120. package/esm/BamAdapter/configSchema.js +0 -1
  121. package/esm/BamAdapter/index.js +0 -1
  122. package/esm/CramAdapter/CramAdapter.js +0 -1
  123. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -1
  124. package/esm/CramAdapter/CramTestAdapters.js +0 -1
  125. package/esm/CramAdapter/configSchema.js +0 -1
  126. package/esm/CramAdapter/index.js +0 -1
  127. package/esm/CramAdapter/util.js +0 -1
  128. package/esm/GuessAlignmentsTypes/index.js +0 -1
  129. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +0 -1
  130. package/esm/HtsgetBamAdapter/configSchema.js +0 -1
  131. package/esm/HtsgetBamAdapter/index.js +0 -1
  132. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  133. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +5 -2
  134. package/esm/LinearAlignmentsDisplay/index.js +0 -1
  135. package/esm/LinearAlignmentsDisplay/models/configSchema.js +0 -1
  136. package/esm/LinearAlignmentsDisplay/models/model.js +5 -2
  137. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +492 -0
  138. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +499 -0
  139. package/esm/LinearPileupDisplay/components/ColorByModifications.js +0 -1
  140. package/esm/LinearPileupDisplay/components/ColorByTag.js +0 -1
  141. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  142. package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  143. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  144. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  145. package/esm/LinearPileupDisplay/components/SortByTag.js +0 -1
  146. package/esm/LinearPileupDisplay/configSchema.js +0 -1
  147. package/esm/LinearPileupDisplay/index.d.ts +1 -0
  148. package/esm/LinearPileupDisplay/index.js +1 -1
  149. package/esm/LinearPileupDisplay/model.d.ts +110 -231
  150. package/esm/LinearPileupDisplay/model.js +48 -446
  151. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  152. package/esm/LinearReadArcsDisplay/configSchema.js +0 -1
  153. package/esm/LinearReadArcsDisplay/drawFeats.js +0 -1
  154. package/esm/LinearReadArcsDisplay/index.js +0 -1
  155. package/esm/LinearReadArcsDisplay/model.js +0 -1
  156. package/esm/LinearReadArcsDisplay/util.js +0 -1
  157. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  158. package/esm/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  159. package/esm/LinearReadCloudDisplay/configSchema.js +0 -1
  160. package/esm/LinearReadCloudDisplay/drawFeats.js +0 -1
  161. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  162. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -1
  163. package/esm/LinearReadCloudDisplay/index.js +0 -1
  164. package/esm/LinearReadCloudDisplay/model.d.ts +1 -3
  165. package/esm/LinearReadCloudDisplay/model.js +0 -1
  166. package/esm/LinearReadCloudDisplay/util.js +0 -1
  167. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  168. package/esm/LinearSNPCoverageDisplay/index.js +0 -1
  169. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  170. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  171. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  172. package/esm/LinearSNPCoverageDisplay/models/model.js +0 -1
  173. package/esm/MismatchParser/index.js +0 -1
  174. package/esm/PileupRPC/base.js +0 -1
  175. package/esm/PileupRPC/index.js +0 -1
  176. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  177. package/esm/PileupRPC/methods/GetReducedFeatures.js +0 -1
  178. package/esm/PileupRPC/methods/GetVisibleModifications.js +0 -1
  179. package/esm/PileupRPC/rpcMethods.js +0 -1
  180. package/esm/PileupRPC/util.js +0 -1
  181. package/esm/PileupRenderer/PileupLayoutSession.js +0 -1
  182. package/esm/PileupRenderer/PileupRenderer.js +0 -1
  183. package/esm/PileupRenderer/colorBy.js +8 -7
  184. package/esm/PileupRenderer/components/PileupRendering.js +0 -1
  185. package/esm/PileupRenderer/configSchema.js +0 -1
  186. package/esm/PileupRenderer/getAlignmentShapeColor.js +0 -1
  187. package/esm/PileupRenderer/index.js +0 -1
  188. package/esm/PileupRenderer/layoutFeature.js +0 -1
  189. package/esm/PileupRenderer/layoutFeatures.js +0 -1
  190. package/esm/PileupRenderer/makeImageData.js +0 -1
  191. package/esm/PileupRenderer/renderAlignment.js +0 -1
  192. package/esm/PileupRenderer/renderAlignmentShape.js +1 -2
  193. package/esm/PileupRenderer/renderMethylation.js +0 -1
  194. package/esm/PileupRenderer/renderMismatches.js +0 -1
  195. package/esm/PileupRenderer/renderModifications.js +0 -1
  196. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  197. package/esm/PileupRenderer/renderPerBaseQuality.js +0 -1
  198. package/esm/PileupRenderer/renderSoftClipping.js +0 -1
  199. package/esm/PileupRenderer/sortUtil.js +0 -1
  200. package/esm/PileupRenderer/util.js +0 -1
  201. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  202. package/esm/SNPCoverageAdapter/configSchema.js +0 -1
  203. package/esm/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  204. package/esm/SNPCoverageAdapter/index.js +0 -1
  205. package/esm/SNPCoverageAdapter/util.js +0 -1
  206. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  207. package/esm/SNPCoverageRenderer/configSchema.js +0 -1
  208. package/esm/SNPCoverageRenderer/index.js +0 -1
  209. package/esm/index.d.ts +1 -1
  210. package/esm/index.js +1 -2
  211. package/esm/shared/BaseDisplayComponent.js +0 -1
  212. package/esm/shared/FilterByTag.js +0 -1
  213. package/esm/shared/afterAttach.js +0 -1
  214. package/esm/shared/color.d.ts +10 -0
  215. package/esm/shared/color.js +6 -1
  216. package/esm/shared/fetchChains.js +0 -1
  217. package/esm/shared/index.js +0 -1
  218. package/esm/shared/renderSvg.js +0 -1
  219. package/esm/shared/util.js +0 -1
  220. package/esm/util.js +0 -1
  221. package/package.json +4 -5
  222. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  223. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  224. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  225. package/dist/AlignmentsFeatureDetail/index.js.map +0 -1
  226. package/dist/AlignmentsFeatureDetail/util.js.map +0 -1
  227. package/dist/AlignmentsTrack/configSchemaF.js.map +0 -1
  228. package/dist/AlignmentsTrack/index.js.map +0 -1
  229. package/dist/BamAdapter/BamAdapter.js.map +0 -1
  230. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  231. package/dist/BamAdapter/configSchema.js.map +0 -1
  232. package/dist/BamAdapter/index.js.map +0 -1
  233. package/dist/CramAdapter/CramAdapter.js.map +0 -1
  234. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  235. package/dist/CramAdapter/CramTestAdapters.js.map +0 -1
  236. package/dist/CramAdapter/configSchema.js.map +0 -1
  237. package/dist/CramAdapter/index.js.map +0 -1
  238. package/dist/CramAdapter/util.js.map +0 -1
  239. package/dist/GuessAlignmentsTypes/index.js.map +0 -1
  240. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  241. package/dist/HtsgetBamAdapter/configSchema.js.map +0 -1
  242. package/dist/HtsgetBamAdapter/index.js.map +0 -1
  243. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  244. package/dist/LinearAlignmentsDisplay/index.js.map +0 -1
  245. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  246. package/dist/LinearAlignmentsDisplay/models/model.js.map +0 -1
  247. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  248. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  249. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  250. package/dist/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  251. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  252. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  253. package/dist/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  254. package/dist/LinearPileupDisplay/configSchema.js.map +0 -1
  255. package/dist/LinearPileupDisplay/index.js.map +0 -1
  256. package/dist/LinearPileupDisplay/model.js.map +0 -1
  257. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  258. package/dist/LinearReadArcsDisplay/configSchema.js.map +0 -1
  259. package/dist/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  260. package/dist/LinearReadArcsDisplay/index.js.map +0 -1
  261. package/dist/LinearReadArcsDisplay/model.js.map +0 -1
  262. package/dist/LinearReadArcsDisplay/util.js.map +0 -1
  263. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  264. package/dist/LinearReadCloudDisplay/configSchema.js.map +0 -1
  265. package/dist/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  266. package/dist/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  267. package/dist/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  268. package/dist/LinearReadCloudDisplay/index.js.map +0 -1
  269. package/dist/LinearReadCloudDisplay/model.js.map +0 -1
  270. package/dist/LinearReadCloudDisplay/util.js.map +0 -1
  271. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  272. package/dist/LinearSNPCoverageDisplay/index.js.map +0 -1
  273. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  274. package/dist/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  275. package/dist/MismatchParser/index.js.map +0 -1
  276. package/dist/PileupRPC/base.js.map +0 -1
  277. package/dist/PileupRPC/index.js.map +0 -1
  278. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  279. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  280. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  281. package/dist/PileupRPC/rpcMethods.js.map +0 -1
  282. package/dist/PileupRPC/util.js.map +0 -1
  283. package/dist/PileupRenderer/PileupLayoutSession.js.map +0 -1
  284. package/dist/PileupRenderer/PileupRenderer.js.map +0 -1
  285. package/dist/PileupRenderer/colorBy.js.map +0 -1
  286. package/dist/PileupRenderer/components/PileupRendering.js.map +0 -1
  287. package/dist/PileupRenderer/configSchema.js.map +0 -1
  288. package/dist/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  289. package/dist/PileupRenderer/index.js.map +0 -1
  290. package/dist/PileupRenderer/layoutFeature.js.map +0 -1
  291. package/dist/PileupRenderer/layoutFeatures.js.map +0 -1
  292. package/dist/PileupRenderer/makeImageData.js.map +0 -1
  293. package/dist/PileupRenderer/renderAlignment.js.map +0 -1
  294. package/dist/PileupRenderer/renderAlignmentShape.js.map +0 -1
  295. package/dist/PileupRenderer/renderMethylation.js.map +0 -1
  296. package/dist/PileupRenderer/renderMismatches.js.map +0 -1
  297. package/dist/PileupRenderer/renderModifications.js.map +0 -1
  298. package/dist/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  299. package/dist/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  300. package/dist/PileupRenderer/renderSoftClipping.js.map +0 -1
  301. package/dist/PileupRenderer/sortUtil.js.map +0 -1
  302. package/dist/PileupRenderer/util.js.map +0 -1
  303. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  304. package/dist/SNPCoverageAdapter/configSchema.js.map +0 -1
  305. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  306. package/dist/SNPCoverageAdapter/index.js.map +0 -1
  307. package/dist/SNPCoverageAdapter/util.js.map +0 -1
  308. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  309. package/dist/SNPCoverageRenderer/configSchema.js.map +0 -1
  310. package/dist/SNPCoverageRenderer/index.js.map +0 -1
  311. package/dist/index.js.map +0 -1
  312. package/dist/shared/BaseDisplayComponent.js.map +0 -1
  313. package/dist/shared/FilterByTag.js.map +0 -1
  314. package/dist/shared/afterAttach.js.map +0 -1
  315. package/dist/shared/color.js.map +0 -1
  316. package/dist/shared/fetchChains.js.map +0 -1
  317. package/dist/shared/index.js.map +0 -1
  318. package/dist/shared/renderSvg.js.map +0 -1
  319. package/dist/shared/util.js.map +0 -1
  320. package/dist/util.js.map +0 -1
  321. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  322. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  323. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  324. package/esm/AlignmentsFeatureDetail/index.js.map +0 -1
  325. package/esm/AlignmentsFeatureDetail/util.js.map +0 -1
  326. package/esm/AlignmentsTrack/configSchemaF.js.map +0 -1
  327. package/esm/AlignmentsTrack/index.js.map +0 -1
  328. package/esm/BamAdapter/BamAdapter.js.map +0 -1
  329. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  330. package/esm/BamAdapter/configSchema.js.map +0 -1
  331. package/esm/BamAdapter/index.js.map +0 -1
  332. package/esm/CramAdapter/CramAdapter.js.map +0 -1
  333. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  334. package/esm/CramAdapter/CramTestAdapters.js.map +0 -1
  335. package/esm/CramAdapter/configSchema.js.map +0 -1
  336. package/esm/CramAdapter/index.js.map +0 -1
  337. package/esm/CramAdapter/util.js.map +0 -1
  338. package/esm/GuessAlignmentsTypes/index.js.map +0 -1
  339. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  340. package/esm/HtsgetBamAdapter/configSchema.js.map +0 -1
  341. package/esm/HtsgetBamAdapter/index.js.map +0 -1
  342. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  343. package/esm/LinearAlignmentsDisplay/index.js.map +0 -1
  344. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  345. package/esm/LinearAlignmentsDisplay/models/model.js.map +0 -1
  346. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  347. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  348. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  349. package/esm/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  350. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  351. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  352. package/esm/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  353. package/esm/LinearPileupDisplay/configSchema.js.map +0 -1
  354. package/esm/LinearPileupDisplay/index.js.map +0 -1
  355. package/esm/LinearPileupDisplay/model.js.map +0 -1
  356. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  357. package/esm/LinearReadArcsDisplay/configSchema.js.map +0 -1
  358. package/esm/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  359. package/esm/LinearReadArcsDisplay/index.js.map +0 -1
  360. package/esm/LinearReadArcsDisplay/model.js.map +0 -1
  361. package/esm/LinearReadArcsDisplay/util.js.map +0 -1
  362. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  363. package/esm/LinearReadCloudDisplay/configSchema.js.map +0 -1
  364. package/esm/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  365. package/esm/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  366. package/esm/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  367. package/esm/LinearReadCloudDisplay/index.js.map +0 -1
  368. package/esm/LinearReadCloudDisplay/model.js.map +0 -1
  369. package/esm/LinearReadCloudDisplay/util.js.map +0 -1
  370. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  371. package/esm/LinearSNPCoverageDisplay/index.js.map +0 -1
  372. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  373. package/esm/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  374. package/esm/MismatchParser/index.js.map +0 -1
  375. package/esm/PileupRPC/base.js.map +0 -1
  376. package/esm/PileupRPC/index.js.map +0 -1
  377. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  378. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  379. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  380. package/esm/PileupRPC/rpcMethods.js.map +0 -1
  381. package/esm/PileupRPC/util.js.map +0 -1
  382. package/esm/PileupRenderer/PileupLayoutSession.js.map +0 -1
  383. package/esm/PileupRenderer/PileupRenderer.js.map +0 -1
  384. package/esm/PileupRenderer/colorBy.js.map +0 -1
  385. package/esm/PileupRenderer/components/PileupRendering.js.map +0 -1
  386. package/esm/PileupRenderer/configSchema.js.map +0 -1
  387. package/esm/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  388. package/esm/PileupRenderer/index.js.map +0 -1
  389. package/esm/PileupRenderer/layoutFeature.js.map +0 -1
  390. package/esm/PileupRenderer/layoutFeatures.js.map +0 -1
  391. package/esm/PileupRenderer/makeImageData.js.map +0 -1
  392. package/esm/PileupRenderer/renderAlignment.js.map +0 -1
  393. package/esm/PileupRenderer/renderAlignmentShape.js.map +0 -1
  394. package/esm/PileupRenderer/renderMethylation.js.map +0 -1
  395. package/esm/PileupRenderer/renderMismatches.js.map +0 -1
  396. package/esm/PileupRenderer/renderModifications.js.map +0 -1
  397. package/esm/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  398. package/esm/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  399. package/esm/PileupRenderer/renderSoftClipping.js.map +0 -1
  400. package/esm/PileupRenderer/sortUtil.js.map +0 -1
  401. package/esm/PileupRenderer/util.js.map +0 -1
  402. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  403. package/esm/SNPCoverageAdapter/configSchema.js.map +0 -1
  404. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  405. package/esm/SNPCoverageAdapter/index.js.map +0 -1
  406. package/esm/SNPCoverageAdapter/util.js.map +0 -1
  407. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  408. package/esm/SNPCoverageRenderer/configSchema.js.map +0 -1
  409. package/esm/SNPCoverageRenderer/index.js.map +0 -1
  410. package/esm/index.js.map +0 -1
  411. package/esm/shared/BaseDisplayComponent.js.map +0 -1
  412. package/esm/shared/FilterByTag.js.map +0 -1
  413. package/esm/shared/afterAttach.js.map +0 -1
  414. package/esm/shared/color.js.map +0 -1
  415. package/esm/shared/fetchChains.js.map +0 -1
  416. package/esm/shared/index.js.map +0 -1
  417. package/esm/shared/renderSvg.js.map +0 -1
  418. package/esm/shared/util.js.map +0 -1
  419. package/esm/util.js.map +0 -1
  420. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +0 -155
  421. package/src/AlignmentsFeatureDetail/AlignmentsFeatureFlags.tsx +0 -60
  422. package/src/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.tsx +0 -51
  423. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.tsx.snap +0 -327
  424. package/src/AlignmentsFeatureDetail/index.test.tsx +0 -47
  425. package/src/AlignmentsFeatureDetail/index.ts +0 -33
  426. package/src/AlignmentsFeatureDetail/util.ts +0 -27
  427. package/src/AlignmentsTrack/configSchemaF.ts +0 -22
  428. package/src/AlignmentsTrack/index.ts +0 -22
  429. package/src/BamAdapter/BamAdapter.test.ts +0 -124
  430. package/src/BamAdapter/BamAdapter.ts +0 -251
  431. package/src/BamAdapter/BamSlightlyLazyFeature.ts +0 -149
  432. package/src/BamAdapter/__snapshots__/BamAdapter.test.ts.snap +0 -1105
  433. package/src/BamAdapter/configSchema.ts +0 -65
  434. package/src/BamAdapter/index.ts +0 -14
  435. package/src/CombinationTest.test.ts +0 -108
  436. package/src/CramAdapter/CramAdapter.test.ts +0 -85
  437. package/src/CramAdapter/CramAdapter.ts +0 -323
  438. package/src/CramAdapter/CramSlightlyLazyFeature.ts +0 -185
  439. package/src/CramAdapter/CramTestAdapters.ts +0 -98
  440. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -256
  441. package/src/CramAdapter/__snapshots__/util.test.ts.snap +0 -14
  442. package/src/CramAdapter/configSchema.ts +0 -57
  443. package/src/CramAdapter/index.ts +0 -16
  444. package/src/CramAdapter/util.test.ts +0 -26
  445. package/src/CramAdapter/util.ts +0 -251
  446. package/src/GuessAlignmentsTypes/index.ts +0 -79
  447. package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +0 -24
  448. package/src/HtsgetBamAdapter/configSchema.ts +0 -40
  449. package/src/HtsgetBamAdapter/index.ts +0 -17
  450. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +0 -52
  451. package/src/LinearAlignmentsDisplay/index.ts +0 -21
  452. package/src/LinearAlignmentsDisplay/models/configSchema.test.ts +0 -60
  453. package/src/LinearAlignmentsDisplay/models/configSchema.ts +0 -41
  454. package/src/LinearAlignmentsDisplay/models/model.tsx +0 -403
  455. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +0 -102
  456. package/src/LinearPileupDisplay/components/ColorByTag.tsx +0 -61
  457. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +0 -32
  458. package/src/LinearPileupDisplay/components/ModificationsTable.tsx +0 -38
  459. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +0 -82
  460. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +0 -71
  461. package/src/LinearPileupDisplay/components/SortByTag.tsx +0 -64
  462. package/src/LinearPileupDisplay/configSchema.test.js +0 -55
  463. package/src/LinearPileupDisplay/configSchema.ts +0 -67
  464. package/src/LinearPileupDisplay/index.ts +0 -24
  465. package/src/LinearPileupDisplay/model.ts +0 -884
  466. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +0 -50
  467. package/src/LinearReadArcsDisplay/configSchema.ts +0 -68
  468. package/src/LinearReadArcsDisplay/declare.d.ts +0 -1
  469. package/src/LinearReadArcsDisplay/drawFeats.ts +0 -210
  470. package/src/LinearReadArcsDisplay/index.ts +0 -23
  471. package/src/LinearReadArcsDisplay/model.tsx +0 -355
  472. package/src/LinearReadArcsDisplay/util.ts +0 -10
  473. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +0 -48
  474. package/src/LinearReadCloudDisplay/configSchema.ts +0 -57
  475. package/src/LinearReadCloudDisplay/drawFeats.ts +0 -35
  476. package/src/LinearReadCloudDisplay/drawLongReadChains.ts +0 -85
  477. package/src/LinearReadCloudDisplay/drawPairChains.ts +0 -139
  478. package/src/LinearReadCloudDisplay/index.ts +0 -23
  479. package/src/LinearReadCloudDisplay/model.tsx +0 -246
  480. package/src/LinearReadCloudDisplay/util.ts +0 -47
  481. package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +0 -128
  482. package/src/LinearSNPCoverageDisplay/index.ts +0 -20
  483. package/src/LinearSNPCoverageDisplay/models/configSchema.test.ts +0 -35
  484. package/src/LinearSNPCoverageDisplay/models/configSchema.ts +0 -82
  485. package/src/LinearSNPCoverageDisplay/models/model.ts +0 -336
  486. package/src/MismatchParser/index.test.ts +0 -283
  487. package/src/MismatchParser/index.ts +0 -508
  488. package/src/PileupRPC/base.ts +0 -24
  489. package/src/PileupRPC/index.ts +0 -12
  490. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +0 -44
  491. package/src/PileupRPC/methods/GetReducedFeatures.ts +0 -67
  492. package/src/PileupRPC/methods/GetVisibleModifications.ts +0 -45
  493. package/src/PileupRPC/rpcMethods.ts +0 -3
  494. package/src/PileupRPC/util.ts +0 -19
  495. package/src/PileupRenderer/PileupLayoutSession.ts +0 -64
  496. package/src/PileupRenderer/PileupRenderer.ts +0 -142
  497. package/src/PileupRenderer/colorBy.ts +0 -74
  498. package/src/PileupRenderer/components/PileupRendering.tsx +0 -209
  499. package/src/PileupRenderer/configSchema.ts +0 -108
  500. package/src/PileupRenderer/getAlignmentShapeColor.ts +0 -87
  501. package/src/PileupRenderer/index.ts +0 -16
  502. package/src/PileupRenderer/layoutFeature.ts +0 -83
  503. package/src/PileupRenderer/layoutFeatures.ts +0 -44
  504. package/src/PileupRenderer/makeImageData.ts +0 -93
  505. package/src/PileupRenderer/renderAlignment.ts +0 -97
  506. package/src/PileupRenderer/renderAlignmentShape.ts +0 -45
  507. package/src/PileupRenderer/renderMethylation.ts +0 -75
  508. package/src/PileupRenderer/renderMismatches.ts +0 -206
  509. package/src/PileupRenderer/renderModifications.ts +0 -74
  510. package/src/PileupRenderer/renderPerBaseLettering.ts +0 -67
  511. package/src/PileupRenderer/renderPerBaseQuality.ts +0 -46
  512. package/src/PileupRenderer/renderSoftClipping.ts +0 -78
  513. package/src/PileupRenderer/sortUtil.ts +0 -107
  514. package/src/PileupRenderer/util.ts +0 -63
  515. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +0 -111
  516. package/src/SNPCoverageAdapter/configSchema.ts +0 -23
  517. package/src/SNPCoverageAdapter/generateCoverageBins.ts +0 -259
  518. package/src/SNPCoverageAdapter/index.ts +0 -18
  519. package/src/SNPCoverageAdapter/util.ts +0 -33
  520. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +0 -270
  521. package/src/SNPCoverageRenderer/configSchema.ts +0 -64
  522. package/src/SNPCoverageRenderer/index.ts +0 -17
  523. package/src/__snapshots__/index.test.ts.snap +0 -3
  524. package/src/index.test.ts +0 -17
  525. package/src/index.ts +0 -48
  526. package/src/shared/BaseDisplayComponent.tsx +0 -83
  527. package/src/shared/FilterByTag.tsx +0 -187
  528. package/src/shared/afterAttach.tsx +0 -66
  529. package/src/shared/color.ts +0 -86
  530. package/src/shared/fetchChains.ts +0 -62
  531. package/src/shared/index.ts +0 -75
  532. package/src/shared/renderSvg.tsx +0 -64
  533. package/src/shared/util.ts +0 -10
  534. package/src/util.ts +0 -154
@@ -1,884 +0,0 @@
1
- import { lazy } from 'react'
2
- import { autorun, observable } from 'mobx'
3
- import {
4
- cast,
5
- types,
6
- addDisposer,
7
- getSnapshot,
8
- Instance,
9
- } from 'mobx-state-tree'
10
- import copy from 'copy-to-clipboard'
11
- import {
12
- AnyConfigurationModel,
13
- AnyConfigurationSchemaType,
14
- ConfigurationReference,
15
- readConfObject,
16
- getConf,
17
- } from '@jbrowse/core/configuration'
18
- import { getRpcSessionId } from '@jbrowse/core/util/tracks'
19
- import {
20
- getEnv,
21
- getSession,
22
- isSessionModelWithWidgets,
23
- getContainingView,
24
- SimpleFeature,
25
- Feature,
26
- } from '@jbrowse/core/util'
27
-
28
- import {
29
- LinearGenomeViewModel,
30
- BaseLinearDisplay,
31
- } from '@jbrowse/plugin-linear-genome-view'
32
-
33
- // icons
34
- import VisibilityIcon from '@mui/icons-material/Visibility'
35
- import { ContentCopy as ContentCopyIcon } from '@jbrowse/core/ui/Icons'
36
- import MenuOpenIcon from '@mui/icons-material/MenuOpen'
37
- import SortIcon from '@mui/icons-material/Sort'
38
- import PaletteIcon from '@mui/icons-material/Palette'
39
- import FilterListIcon from '@mui/icons-material/ClearAll'
40
-
41
- // locals
42
- import LinearPileupDisplayBlurb from './components/LinearPileupDisplayBlurb'
43
- import {
44
- getUniqueTagValues,
45
- getUniqueModificationValues,
46
- FilterModel,
47
- } from '../shared'
48
- import { SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature'
49
- import { createAutorun, modificationColors } from '../util'
50
- import { randomColor } from '../util'
51
-
52
- // async
53
- const FilterByTagDlg = lazy(() => import('../shared/FilterByTag'))
54
- const ColorByTagDlg = lazy(() => import('./components/ColorByTag'))
55
- const SortByTagDlg = lazy(() => import('./components/SortByTag'))
56
- const SetFeatureHeightDlg = lazy(() => import('./components/SetFeatureHeight'))
57
- const SetMaxHeightDlg = lazy(() => import('./components/SetMaxHeight'))
58
- const ModificationsDlg = lazy(() => import('./components/ColorByModifications'))
59
-
60
- // using a map because it preserves order
61
- const rendererTypes = new Map([
62
- ['pileup', 'PileupRenderer'],
63
- ['svg', 'SvgFeatureRenderer'],
64
- ])
65
-
66
- type LGV = LinearGenomeViewModel
67
-
68
- export interface Filter {
69
- flagInclude: number
70
- flagExclude: number
71
- readName?: string
72
- tagFilter?: { tag: string; value: string }
73
- }
74
-
75
- /**
76
- * #stateModel LinearPileupDisplay
77
- * #category display
78
- * extends `BaseLinearDisplay`
79
- */
80
- function stateModelFactory(configSchema: AnyConfigurationSchemaType) {
81
- return types
82
- .compose(
83
- 'LinearPileupDisplay',
84
- BaseLinearDisplay,
85
- types.model({
86
- /**
87
- * #property
88
- */
89
- type: types.literal('LinearPileupDisplay'),
90
- /**
91
- * #property
92
- */
93
- configuration: ConfigurationReference(configSchema),
94
- /**
95
- * #property
96
- */
97
- showSoftClipping: false,
98
- /**
99
- * #property
100
- */
101
- featureHeight: types.maybe(types.number),
102
- /**
103
- * #property
104
- */
105
- noSpacing: types.maybe(types.boolean),
106
- /**
107
- * #property
108
- */
109
- fadeLikelihood: types.maybe(types.boolean),
110
- /**
111
- * #property
112
- */
113
- trackMaxHeight: types.maybe(types.number),
114
- /**
115
- * #property
116
- */
117
- mismatchAlpha: types.maybe(types.boolean),
118
-
119
- /**
120
- * #property
121
- */
122
- sortedBy: types.maybe(
123
- types.model({
124
- type: types.string,
125
- pos: types.number,
126
- tag: types.maybe(types.string),
127
- refName: types.string,
128
- assemblyName: types.string,
129
- }),
130
- ),
131
-
132
- /**
133
- * #property
134
- */
135
- colorBy: types.maybe(
136
- types.model({
137
- type: types.string,
138
- tag: types.maybe(types.string),
139
- extra: types.frozen(),
140
- }),
141
- ),
142
-
143
- /**
144
- * #property
145
- */
146
- filterBy: types.optional(FilterModel, {}),
147
- }),
148
- )
149
- .volatile(() => ({
150
- colorTagMap: observable.map<string, string>({}),
151
- modificationTagMap: observable.map<string, string>({}),
152
- featureUnderMouseVolatile: undefined as undefined | Feature,
153
- currSortBpPerPx: 0,
154
- modificationsReady: false,
155
- sortReady: false,
156
- tagsReady: false,
157
- }))
158
- .views(self => ({
159
- get autorunReady() {
160
- const view = getContainingView(self) as LGV
161
- return (
162
- view.initialized &&
163
- self.featureDensityStatsReady &&
164
- !self.regionTooLarge
165
- )
166
- },
167
- }))
168
- .actions(self => ({
169
- /**
170
- * #action
171
- */
172
- setModificationsReady(flag: boolean) {
173
- self.modificationsReady = flag
174
- },
175
- /**
176
- * #action
177
- */
178
- setTagsReady(flag: boolean) {
179
- self.tagsReady = flag
180
- },
181
- /**
182
- * #action
183
- */
184
- setSortReady(flag: boolean) {
185
- self.sortReady = flag
186
- },
187
- /**
188
- * #action
189
- */
190
- setCurrSortBpPerPx(n: number) {
191
- self.currSortBpPerPx = n
192
- },
193
- /**
194
- * #action
195
- */
196
- setMaxHeight(n: number) {
197
- self.trackMaxHeight = n
198
- },
199
- /**
200
- * #action
201
- */
202
- setFeatureHeight(n?: number) {
203
- self.featureHeight = n
204
- },
205
- /**
206
- * #action
207
- */
208
- setNoSpacing(flag?: boolean) {
209
- self.noSpacing = flag
210
- },
211
-
212
- /**
213
- * #action
214
- */
215
- setColorScheme(colorScheme: { type: string; tag?: string }) {
216
- self.colorTagMap = observable.map({}) // clear existing mapping
217
- self.colorBy = cast(colorScheme)
218
- self.tagsReady = false
219
- self.modificationsReady = false
220
- },
221
-
222
- /**
223
- * #action
224
- */
225
- updateModificationColorMap(uniqueModifications: string[]) {
226
- uniqueModifications.forEach(value => {
227
- if (!self.modificationTagMap.has(value)) {
228
- self.modificationTagMap.set(
229
- value,
230
- modificationColors[value] || randomColor(),
231
- )
232
- }
233
- })
234
- },
235
-
236
- /**
237
- * #action
238
- */
239
- updateColorTagMap(uniqueTag: string[]) {
240
- // pale color scheme
241
- // https://cran.r-project.org/web/packages/khroma/vignettes/tol.html
242
- // e.g. "tol_light"
243
- const colorPalette = [
244
- '#BBCCEE',
245
- 'pink',
246
- '#CCDDAA',
247
- '#EEEEBB',
248
- '#FFCCCC',
249
- 'lightblue',
250
- 'lightgreen',
251
- 'tan',
252
- '#CCEEFF',
253
- 'lightsalmon',
254
- ]
255
-
256
- uniqueTag.forEach(value => {
257
- if (!self.colorTagMap.has(value)) {
258
- const totalKeys = [...self.colorTagMap.keys()].length
259
- self.colorTagMap.set(value, colorPalette[totalKeys])
260
- }
261
- })
262
- },
263
- /**
264
- * #action
265
- */
266
- setFeatureUnderMouse(feat?: Feature) {
267
- self.featureUnderMouseVolatile = feat
268
- },
269
-
270
- /**
271
- * #action
272
- */
273
- selectFeature(feature: Feature) {
274
- const session = getSession(self)
275
- if (isSessionModelWithWidgets(session)) {
276
- const featureWidget = session.addWidget(
277
- 'AlignmentsFeatureWidget',
278
- 'alignmentFeature',
279
- { featureData: feature.toJSON(), view: getContainingView(self) },
280
- )
281
- session.showWidget(featureWidget)
282
- }
283
- session.setSelection(feature)
284
- },
285
-
286
- /**
287
- * #action
288
- */
289
- clearSelected() {
290
- self.sortedBy = undefined
291
- },
292
-
293
- /**
294
- * #action
295
- * uses copy-to-clipboard and generates notification
296
- */
297
- copyFeatureToClipboard(feature: Feature) {
298
- const { uniqueId, ...rest } = feature.toJSON()
299
- const session = getSession(self)
300
- copy(JSON.stringify(rest, null, 4))
301
- session.notify('Copied to clipboard', 'success')
302
- },
303
-
304
- /**
305
- * #action
306
- */
307
- toggleSoftClipping() {
308
- self.showSoftClipping = !self.showSoftClipping
309
- },
310
-
311
- /**
312
- * #action
313
- */
314
- toggleMismatchAlpha() {
315
- self.mismatchAlpha = !self.mismatchAlpha
316
- },
317
-
318
- /**
319
- * #action
320
- */
321
- setConfig(conf: AnyConfigurationModel) {
322
- self.configuration = conf
323
- },
324
-
325
- /**
326
- * #action
327
- */
328
- setSortedBy(type: string, tag?: string) {
329
- const { centerLineInfo } = getContainingView(self) as LGV
330
- if (!centerLineInfo) {
331
- return
332
- }
333
- const { refName, assemblyName, offset } = centerLineInfo
334
- const centerBp = Math.round(offset) + 1
335
-
336
- if (centerBp < 0 || !refName) {
337
- return
338
- }
339
-
340
- self.sortReady = false
341
- self.sortedBy = {
342
- type,
343
- pos: centerBp,
344
- refName,
345
- assemblyName,
346
- tag,
347
- }
348
- },
349
- setFilterBy(filter: Filter) {
350
- self.filterBy = cast(filter)
351
- },
352
- }))
353
- .actions(self => {
354
- // resets the sort object and refresh whole display on reload
355
- const superReload = self.reload
356
-
357
- return {
358
- /**
359
- * #action
360
- */
361
- reload() {
362
- self.clearSelected()
363
- superReload()
364
- },
365
- }
366
- })
367
-
368
- .views(self => ({
369
- /**
370
- * #getter
371
- */
372
- get rendererConfig() {
373
- const {
374
- featureHeight,
375
- noSpacing,
376
- trackMaxHeight,
377
- mismatchAlpha,
378
- rendererTypeName,
379
- } = self
380
- const configBlob = getConf(self, ['renderers', rendererTypeName]) || {}
381
- return self.rendererType.configSchema.create(
382
- {
383
- ...configBlob,
384
- ...(featureHeight !== undefined ? { height: featureHeight } : {}),
385
- ...(noSpacing !== undefined ? { noSpacing } : {}),
386
- ...(mismatchAlpha !== undefined ? { mismatchAlpha } : {}),
387
- ...(trackMaxHeight !== undefined
388
- ? { maxHeight: trackMaxHeight }
389
- : {}),
390
- },
391
- getEnv(self),
392
- )
393
- },
394
- }))
395
- .views(self => ({
396
- /**
397
- * #getter
398
- */
399
- get maxHeight() {
400
- return readConfObject(self.rendererConfig, 'maxHeight')
401
- },
402
-
403
- /**
404
- * #getter
405
- */
406
- get featureHeightSetting() {
407
- return readConfObject(self.rendererConfig, 'height')
408
- },
409
- /**
410
- * #getter
411
- */
412
- get mismatchAlphaSetting() {
413
- return readConfObject(self.rendererConfig, 'mismatchAlpha')
414
- },
415
- /**
416
- * #getter
417
- */
418
- get featureUnderMouse() {
419
- return self.featureUnderMouseVolatile
420
- },
421
- /**
422
- * #getter
423
- */
424
- get renderReady() {
425
- const view = getContainingView(self) as LGV
426
- return (
427
- self.modificationsReady &&
428
- self.tagsReady &&
429
- self.currSortBpPerPx === view.bpPerPx
430
- )
431
- },
432
- }))
433
- .views(self => {
434
- const {
435
- trackMenuItems: superTrackMenuItems,
436
- renderProps: superRenderProps,
437
- } = self
438
-
439
- return {
440
- /**
441
- * #getter
442
- */
443
- get rendererTypeName() {
444
- const viewName = getConf(self, 'defaultRendering')
445
- const rendererType = rendererTypes.get(viewName)
446
- if (!rendererType) {
447
- throw new Error(`unknown alignments view name ${viewName}`)
448
- }
449
- return rendererType
450
- },
451
-
452
- /**
453
- * #method
454
- */
455
- contextMenuItems() {
456
- const feat = self.contextMenuFeature
457
- return feat
458
- ? [
459
- {
460
- label: 'Open feature details',
461
- icon: MenuOpenIcon,
462
- onClick: (): void => {
463
- self.clearFeatureSelection()
464
- if (feat) {
465
- self.selectFeature(feat)
466
- }
467
- },
468
- },
469
- {
470
- label: 'Copy info to clipboard',
471
- icon: ContentCopyIcon,
472
- onClick: (): void => {
473
- if (feat) {
474
- self.copyFeatureToClipboard(feat)
475
- }
476
- },
477
- },
478
- ]
479
- : []
480
- },
481
-
482
- /**
483
- * #getter
484
- */
485
- get DisplayBlurb() {
486
- return LinearPileupDisplayBlurb
487
- },
488
- /**
489
- * #method
490
- */
491
- renderPropsPre() {
492
- const {
493
- colorTagMap,
494
- modificationTagMap,
495
- sortedBy,
496
- colorBy,
497
- filterBy,
498
- rpcDriverName,
499
- } = self
500
-
501
- const superProps = superRenderProps()
502
- return {
503
- ...superProps,
504
- notReady: superProps.notReady || !self.renderReady,
505
- rpcDriverName,
506
- displayModel: self,
507
- sortedBy: sortedBy ? getSnapshot(sortedBy) : undefined,
508
- colorBy: colorBy ? getSnapshot(colorBy) : undefined,
509
- filterBy: JSON.parse(JSON.stringify(filterBy)),
510
- colorTagMap: Object.fromEntries(colorTagMap.toJSON()),
511
- modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
512
- showSoftClip: self.showSoftClipping,
513
- config: self.rendererConfig,
514
- async onFeatureClick(_: unknown, featureId?: string) {
515
- const session = getSession(self)
516
- const { rpcManager } = session
517
- try {
518
- const f = featureId || self.featureIdUnderMouse
519
- if (!f) {
520
- self.clearFeatureSelection()
521
- } else {
522
- const sessionId = getRpcSessionId(self)
523
- const { feature } = (await rpcManager.call(
524
- sessionId,
525
- 'CoreGetFeatureDetails',
526
- {
527
- featureId: f,
528
- sessionId,
529
- layoutId: getContainingView(self).id,
530
- rendererType: 'PileupRenderer',
531
- },
532
- )) as { feature: SimpleFeatureSerialized | undefined }
533
-
534
- if (feature) {
535
- self.selectFeature(new SimpleFeature(feature))
536
- }
537
- }
538
- } catch (e) {
539
- console.error(e)
540
- session.notify(`${e}`)
541
- }
542
- },
543
-
544
- onClick() {
545
- self.clearFeatureSelection()
546
- },
547
- // similar to click but opens a menu with further options
548
- async onFeatureContextMenu(_: unknown, featureId?: string) {
549
- const session = getSession(self)
550
- const { rpcManager } = session
551
- try {
552
- const f = featureId || self.featureIdUnderMouse
553
- if (!f) {
554
- self.clearFeatureSelection()
555
- } else {
556
- const sessionId = getRpcSessionId(self)
557
- const { feature } = (await rpcManager.call(
558
- sessionId,
559
- 'CoreGetFeatureDetails',
560
- {
561
- featureId: f,
562
- sessionId,
563
- layoutId: getContainingView(self).id,
564
- rendererType: 'PileupRenderer',
565
- },
566
- )) as { feature: SimpleFeatureSerialized }
567
-
568
- if (feature) {
569
- self.setContextMenuFeature(new SimpleFeature(feature))
570
- }
571
- }
572
- } catch (e) {
573
- console.error(e)
574
- session.notify(`${e}`)
575
- }
576
- },
577
- }
578
- },
579
-
580
- // renderProps and renderPropsPre are separated due to sortReady
581
- // causing a infinite loop in the sort autorun, since the sort autorun
582
- // uses renderProps
583
- /**
584
- * #method
585
- */
586
- renderProps() {
587
- const pre = this.renderPropsPre()
588
- return {
589
- ...pre,
590
- notReady: pre.notReady || !self.sortReady,
591
- }
592
- },
593
-
594
- /**
595
- * #method
596
- */
597
- trackMenuItems() {
598
- return [
599
- ...superTrackMenuItems(),
600
- {
601
- label: 'Show soft clipping',
602
- icon: VisibilityIcon,
603
- type: 'checkbox',
604
- checked: self.showSoftClipping,
605
- onClick: () => {
606
- self.toggleSoftClipping()
607
- // if toggling from off to on, will break sort for this track
608
- // so clear it
609
- if (self.showSoftClipping) {
610
- self.clearSelected()
611
- }
612
- },
613
- },
614
- {
615
- label: 'Sort by',
616
- icon: SortIcon,
617
- disabled: self.showSoftClipping,
618
- subMenu: [
619
- ...['Start location', 'Read strand', 'Base pair'].map(
620
- option => ({
621
- label: option,
622
- onClick: () => self.setSortedBy(option),
623
- }),
624
- ),
625
- {
626
- label: 'Sort by tag...',
627
- onClick: () => {
628
- getSession(self).queueDialog(handleClose => [
629
- SortByTagDlg,
630
- { model: self, handleClose },
631
- ])
632
- },
633
- },
634
- {
635
- label: 'Clear sort',
636
- onClick: () => self.clearSelected(),
637
- },
638
- ],
639
- },
640
- {
641
- label: 'Color scheme',
642
- icon: PaletteIcon,
643
- subMenu: [
644
- {
645
- label: 'Normal',
646
- onClick: () => self.setColorScheme({ type: 'normal' }),
647
- },
648
- {
649
- label: 'Mapping quality',
650
- onClick: () =>
651
- self.setColorScheme({ type: 'mappingQuality' }),
652
- },
653
- {
654
- label: 'Strand',
655
- onClick: () => self.setColorScheme({ type: 'strand' }),
656
- },
657
- {
658
- label: 'Pair orientation',
659
- onClick: () =>
660
- self.setColorScheme({ type: 'pairOrientation' }),
661
- },
662
- {
663
- label: 'Per-base quality',
664
- onClick: () =>
665
- self.setColorScheme({ type: 'perBaseQuality' }),
666
- },
667
- {
668
- label: 'Per-base lettering',
669
- onClick: () =>
670
- self.setColorScheme({ type: 'perBaseLettering' }),
671
- },
672
- {
673
- label: 'Modifications or methylation',
674
- onClick: () => {
675
- getSession(self).queueDialog(doneCallback => [
676
- ModificationsDlg,
677
- { model: self, handleClose: doneCallback },
678
- ])
679
- },
680
- },
681
- {
682
- label: 'Insert size',
683
- onClick: () => self.setColorScheme({ type: 'insertSize' }),
684
- },
685
- {
686
- label: 'Stranded paired-end',
687
- onClick: () =>
688
- self.setColorScheme({ type: 'reverseTemplate' }),
689
- },
690
- {
691
- label: 'Color by tag...',
692
- onClick: () => {
693
- getSession(self).queueDialog(doneCallback => [
694
- ColorByTagDlg,
695
- { model: self, handleClose: doneCallback },
696
- ])
697
- },
698
- },
699
- ],
700
- },
701
- {
702
- label: 'Filter by',
703
- icon: FilterListIcon,
704
- onClick: () => {
705
- getSession(self).queueDialog(doneCallback => [
706
- FilterByTagDlg,
707
- { model: self, handleClose: doneCallback },
708
- ])
709
- },
710
- },
711
- {
712
- label: 'Set feature height',
713
- subMenu: [
714
- {
715
- label: 'Normal',
716
- onClick: () => {
717
- self.setFeatureHeight(7)
718
- self.setNoSpacing(false)
719
- },
720
- },
721
- {
722
- label: 'Compact',
723
- onClick: () => {
724
- self.setFeatureHeight(2)
725
- self.setNoSpacing(true)
726
- },
727
- },
728
- {
729
- label: 'Manually set height',
730
- onClick: () => {
731
- getSession(self).queueDialog(doneCallback => [
732
- SetFeatureHeightDlg,
733
- { model: self, handleClose: doneCallback },
734
- ])
735
- },
736
- },
737
- ],
738
- },
739
- {
740
- label: 'Set max height',
741
- onClick: () => {
742
- getSession(self).queueDialog(doneCallback => [
743
- SetMaxHeightDlg,
744
- { model: self, handleClose: doneCallback },
745
- ])
746
- },
747
- },
748
- {
749
- label: 'Fade mismatches by quality',
750
- type: 'checkbox',
751
- checked: self.mismatchAlphaSetting,
752
- onClick: () => self.toggleMismatchAlpha(),
753
- },
754
- ]
755
- },
756
- }
757
- })
758
- .actions(self => ({
759
- afterAttach() {
760
- createAutorun(
761
- self,
762
- async () => {
763
- const view = getContainingView(self) as LGV
764
- if (!self.autorunReady) {
765
- return
766
- }
767
-
768
- const { colorBy } = self
769
- const { staticBlocks } = view
770
- if (colorBy?.tag) {
771
- const vals = await getUniqueTagValues(self, colorBy, staticBlocks)
772
- self.updateColorTagMap(vals)
773
- }
774
- self.setTagsReady(true)
775
- },
776
- { delay: 1000 },
777
- )
778
- createAutorun(self, async () => {
779
- if (!self.autorunReady) {
780
- return
781
- }
782
- const { parentTrack, colorBy } = self
783
- const { staticBlocks } = getContainingView(self) as LGV
784
- if (colorBy?.type === 'modifications') {
785
- const adapter = getConf(parentTrack, ['adapter'])
786
- const vals = await getUniqueModificationValues(
787
- self,
788
- adapter,
789
- colorBy,
790
- staticBlocks,
791
- )
792
- self.updateModificationColorMap(vals)
793
- }
794
- self.setModificationsReady(true)
795
- })
796
-
797
- createAutorun(
798
- self,
799
- async () => {
800
- const { rpcManager } = getSession(self)
801
- const view = getContainingView(self) as LGV
802
- if (!self.autorunReady) {
803
- return
804
- }
805
-
806
- const { sortedBy, adapterConfig, rendererType } = self
807
- const { bpPerPx } = view
808
-
809
- if (sortedBy) {
810
- const { pos, refName, assemblyName } = sortedBy
811
- // render just the sorted region first
812
- // @ts-expect-error
813
- await self.rendererType.renderInClient(rpcManager, {
814
- assemblyName,
815
- regions: [
816
- {
817
- start: pos,
818
- end: pos + 1,
819
- refName,
820
- assemblyName,
821
- },
822
- ],
823
- adapterConfig,
824
- rendererType: rendererType.name,
825
- sessionId: getRpcSessionId(self),
826
- layoutId: view.id,
827
- timeout: 1_000_000,
828
- ...self.renderPropsPre(),
829
- })
830
- }
831
- self.setCurrSortBpPerPx(bpPerPx)
832
- self.setSortReady(true)
833
- },
834
- { delay: 1000 },
835
- )
836
-
837
- // autorun synchronizes featureUnderMouse with featureIdUnderMouse
838
- // asynchronously. this is needed due to how we do not serialize all
839
- // features from the BAM/CRAM over the rpc
840
- addDisposer(
841
- self,
842
- autorun(async () => {
843
- const session = getSession(self)
844
- try {
845
- const featureId = self.featureIdUnderMouse
846
- if (self.featureUnderMouse?.id() !== featureId) {
847
- if (!featureId) {
848
- self.setFeatureUnderMouse(undefined)
849
- } else {
850
- const sessionId = getRpcSessionId(self)
851
- const view = getContainingView(self)
852
- const { feature } = (await session.rpcManager.call(
853
- sessionId,
854
- 'CoreGetFeatureDetails',
855
- {
856
- featureId,
857
- sessionId,
858
- layoutId: view.id,
859
- rendererType: 'PileupRenderer',
860
- },
861
- )) as { feature: SimpleFeatureSerialized }
862
-
863
- // check featureIdUnderMouse is still the same as the
864
- // feature.id that was returned e.g. that the user hasn't
865
- // moused over to a new position during the async operation
866
- // above
867
- if (self.featureIdUnderMouse === feature.uniqueId) {
868
- self.setFeatureUnderMouse(new SimpleFeature(feature))
869
- }
870
- }
871
- }
872
- } catch (e) {
873
- console.error(e)
874
- session.notify(`${e}`, 'error')
875
- }
876
- }),
877
- )
878
- },
879
- }))
880
- }
881
-
882
- export type LinearPileupDisplayStateModel = ReturnType<typeof stateModelFactory>
883
- export type LinearPileupDisplayModel = Instance<LinearPileupDisplayStateModel>
884
- export default stateModelFactory