@jbrowse/plugin-alignments 2.17.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -3
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +25 -24
  3. package/dist/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  6. package/dist/AlignmentsFeatureDetail/Flags.js +8 -10
  7. package/dist/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  8. package/dist/AlignmentsFeatureDetail/Formatter.js +11 -39
  9. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +4 -7
  10. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +46 -54
  11. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +4 -7
  12. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +58 -61
  13. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +3 -4
  14. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +4 -5
  15. package/dist/AlignmentsFeatureDetail/PairLink.d.ts +2 -3
  16. package/dist/AlignmentsFeatureDetail/PairLink.js +3 -7
  17. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +3 -4
  18. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +6 -9
  19. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +2 -3
  20. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -31
  21. package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  22. package/dist/AlignmentsFeatureDetail/getSAFeatures.js +0 -4
  23. package/dist/AlignmentsFeatureDetail/index.d.ts +1 -1
  24. package/dist/AlignmentsFeatureDetail/index.js +17 -7
  25. package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  26. package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +2 -2
  27. package/dist/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  28. package/dist/AlignmentsFeatureDetail/tagInfo.js +1 -1
  29. package/dist/AlignmentsFeatureDetail/util.d.ts +1 -1
  30. package/dist/AlignmentsTrack/configSchemaF.d.ts +1 -1
  31. package/dist/AlignmentsTrack/configSchemaF.js +1 -8
  32. package/dist/AlignmentsTrack/index.d.ts +1 -1
  33. package/dist/AlignmentsTrack/index.js +0 -3
  34. package/dist/BamAdapter/BamAdapter.d.ts +6 -5
  35. package/dist/BamAdapter/BamAdapter.js +21 -39
  36. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  37. package/dist/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  38. package/dist/BamAdapter/configSchema.d.ts +0 -17
  39. package/dist/BamAdapter/configSchema.js +1 -22
  40. package/dist/BamAdapter/index.d.ts +1 -1
  41. package/dist/BamAdapter/index.js +17 -7
  42. package/dist/CramAdapter/CramAdapter.d.ts +6 -9
  43. package/dist/CramAdapter/CramAdapter.js +25 -43
  44. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  45. package/dist/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  46. package/dist/CramAdapter/CramTestAdapters.d.ts +3 -3
  47. package/dist/CramAdapter/CramTestAdapters.js +6 -6
  48. package/dist/CramAdapter/configSchema.d.ts +0 -14
  49. package/dist/CramAdapter/configSchema.js +1 -19
  50. package/dist/CramAdapter/index.d.ts +1 -1
  51. package/dist/CramAdapter/index.js +17 -8
  52. package/dist/CramAdapter/util.d.ts +2 -2
  53. package/dist/CramAdapter/util.js +1 -24
  54. package/dist/GuessAlignmentsTypes/index.d.ts +1 -1
  55. package/dist/GuessAlignmentsTypes/index.js +19 -34
  56. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  57. package/dist/HtsgetBamAdapter/configSchema.d.ts +0 -9
  58. package/dist/HtsgetBamAdapter/configSchema.js +1 -14
  59. package/dist/HtsgetBamAdapter/index.d.ts +1 -1
  60. package/dist/HtsgetBamAdapter/index.js +18 -8
  61. package/dist/LinearAlignmentsDisplay/alignmentsModel.d.ts +2 -5
  62. package/dist/LinearAlignmentsDisplay/alignmentsModel.js +1 -31
  63. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -3
  64. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -18
  65. package/dist/LinearAlignmentsDisplay/configSchema.d.ts +2 -16
  66. package/dist/LinearAlignmentsDisplay/configSchema.js +3 -20
  67. package/dist/LinearAlignmentsDisplay/index.d.ts +1 -1
  68. package/dist/LinearAlignmentsDisplay/index.js +1 -2
  69. package/dist/LinearAlignmentsDisplay/model.d.ts +7 -77
  70. package/dist/LinearAlignmentsDisplay/model.js +10 -85
  71. package/dist/LinearAlignmentsDisplay/util.d.ts +1 -1
  72. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +52 -164
  73. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +71 -145
  74. package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  75. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +12 -41
  76. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +3 -4
  77. package/dist/LinearPileupDisplay/components/GroupByDialog.js +106 -92
  78. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -8
  79. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +3 -7
  80. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  81. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +15 -44
  82. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  83. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +12 -40
  84. package/dist/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  85. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +17 -46
  86. package/dist/LinearPileupDisplay/configSchema.d.ts +13 -16
  87. package/dist/LinearPileupDisplay/configSchema.js +12 -30
  88. package/dist/LinearPileupDisplay/index.d.ts +1 -1
  89. package/dist/LinearPileupDisplay/index.js +2 -2
  90. package/dist/LinearPileupDisplay/model.d.ts +123 -111
  91. package/dist/LinearPileupDisplay/model.js +29 -109
  92. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -3
  93. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +6 -33
  94. package/dist/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  95. package/dist/LinearReadArcsDisplay/configSchema.js +8 -31
  96. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  97. package/dist/LinearReadArcsDisplay/drawFeats.js +1 -9
  98. package/dist/LinearReadArcsDisplay/index.d.ts +1 -1
  99. package/dist/LinearReadArcsDisplay/index.js +18 -9
  100. package/dist/LinearReadArcsDisplay/model.d.ts +16 -94
  101. package/dist/LinearReadArcsDisplay/model.js +34 -111
  102. package/dist/LinearReadArcsDisplay/util.d.ts +1 -1
  103. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -3
  104. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +6 -33
  105. package/dist/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  106. package/dist/LinearReadCloudDisplay/configSchema.js +3 -28
  107. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  108. package/dist/LinearReadCloudDisplay/drawFeats.js +2 -2
  109. package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  110. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  111. package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  112. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -3
  113. package/dist/LinearReadCloudDisplay/index.d.ts +1 -1
  114. package/dist/LinearReadCloudDisplay/index.js +18 -9
  115. package/dist/LinearReadCloudDisplay/model.d.ts +14 -56
  116. package/dist/LinearReadCloudDisplay/model.js +34 -75
  117. package/dist/LinearReadCloudDisplay/util.js +0 -1
  118. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -3
  119. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +16 -55
  120. package/dist/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  121. package/dist/LinearSNPCoverageDisplay/configSchema.js +16 -32
  122. package/dist/LinearSNPCoverageDisplay/index.d.ts +1 -1
  123. package/dist/LinearSNPCoverageDisplay/index.js +1 -2
  124. package/dist/LinearSNPCoverageDisplay/model.d.ts +13 -54
  125. package/dist/LinearSNPCoverageDisplay/model.js +69 -159
  126. package/dist/MismatchParser/cigarToMismatches.d.ts +2 -3
  127. package/dist/MismatchParser/cigarToMismatches.js +4 -7
  128. package/dist/MismatchParser/getNextRefPos.js +0 -2
  129. package/dist/MismatchParser/index.d.ts +3 -4
  130. package/dist/MismatchParser/index.js +1 -9
  131. package/dist/MismatchParser/mdToMismatches.d.ts +2 -3
  132. package/dist/MismatchParser/mdToMismatches.js +0 -6
  133. package/dist/ModificationParser/index.d.ts +1 -1
  134. package/dist/ModificationParser/index.js +1 -18
  135. package/dist/PileupRPC/base.d.ts +2 -2
  136. package/dist/PileupRPC/base.js +0 -1
  137. package/dist/PileupRPC/index.d.ts +1 -1
  138. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  139. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  140. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  141. package/dist/PileupRPC/methods/GetReducedFeatures.js +3 -5
  142. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  143. package/dist/PileupRPC/methods/GetVisibleModifications.js +1 -1
  144. package/dist/PileupRPC/util.d.ts +1 -1
  145. package/dist/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  146. package/dist/PileupRenderer/PileupLayoutSession.js +2 -5
  147. package/dist/PileupRenderer/PileupRenderer.d.ts +14 -24
  148. package/dist/PileupRenderer/PileupRenderer.js +28 -23
  149. package/dist/PileupRenderer/colorBy.d.ts +2 -2
  150. package/dist/PileupRenderer/colorBy.js +0 -6
  151. package/dist/PileupRenderer/components/PileupRendering.d.ts +2 -3
  152. package/dist/PileupRenderer/components/PileupRendering.js +15 -43
  153. package/dist/PileupRenderer/configSchema.d.ts +5 -31
  154. package/dist/PileupRenderer/configSchema.js +6 -35
  155. package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  156. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -6
  157. package/dist/PileupRenderer/index.d.ts +1 -1
  158. package/dist/PileupRenderer/index.js +1 -1
  159. package/dist/PileupRenderer/layoutFeature.d.ts +2 -2
  160. package/dist/PileupRenderer/layoutFeature.js +0 -1
  161. package/dist/PileupRenderer/layoutFeatures.d.ts +5 -2
  162. package/dist/PileupRenderer/layoutFeatures.js +6 -4
  163. package/dist/PileupRenderer/makeImageData.d.ts +3 -4
  164. package/dist/PileupRenderer/makeImageData.js +10 -2
  165. package/dist/PileupRenderer/renderAlignment.d.ts +3 -3
  166. package/dist/PileupRenderer/renderAlignment.js +3 -5
  167. package/dist/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  168. package/dist/PileupRenderer/renderAlignmentShape.js +1 -1
  169. package/dist/PileupRenderer/renderMethylation.d.ts +4 -4
  170. package/dist/PileupRenderer/renderMethylation.js +0 -4
  171. package/dist/PileupRenderer/renderMismatches.d.ts +5 -4
  172. package/dist/PileupRenderer/renderMismatches.js +19 -25
  173. package/dist/PileupRenderer/renderModifications.d.ts +3 -3
  174. package/dist/PileupRenderer/renderModifications.js +1 -3
  175. package/dist/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  176. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  177. package/dist/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  178. package/dist/PileupRenderer/renderPerBaseQuality.js +2 -2
  179. package/dist/PileupRenderer/renderSoftClipping.d.ts +5 -5
  180. package/dist/PileupRenderer/renderSoftClipping.js +0 -4
  181. package/dist/PileupRenderer/sortUtil.d.ts +2 -2
  182. package/dist/PileupRenderer/sortUtil.js +1 -4
  183. package/dist/PileupRenderer/types.d.ts +26 -0
  184. package/dist/PileupRenderer/types.js +2 -0
  185. package/dist/PileupRenderer/util.d.ts +2 -2
  186. package/dist/PileupRenderer/util.js +1 -3
  187. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  188. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -6
  189. package/dist/SNPCoverageAdapter/configSchema.d.ts +0 -4
  190. package/dist/SNPCoverageAdapter/configSchema.js +1 -8
  191. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  192. package/dist/SNPCoverageAdapter/generateCoverageBins.js +25 -247
  193. package/dist/SNPCoverageAdapter/index.d.ts +1 -1
  194. package/dist/SNPCoverageAdapter/index.js +17 -7
  195. package/dist/SNPCoverageAdapter/processDepth.d.ts +8 -0
  196. package/dist/SNPCoverageAdapter/processDepth.js +38 -0
  197. package/dist/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  198. package/dist/SNPCoverageAdapter/processMismatches.js +58 -0
  199. package/dist/SNPCoverageAdapter/processModifications.d.ts +10 -0
  200. package/dist/SNPCoverageAdapter/processModifications.js +49 -0
  201. package/dist/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  202. package/dist/SNPCoverageAdapter/processReferenceCpGs.js +63 -0
  203. package/dist/SNPCoverageAdapter/util.d.ts +10 -0
  204. package/dist/SNPCoverageAdapter/util.js +41 -0
  205. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -18
  206. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +35 -288
  207. package/dist/SNPCoverageRenderer/configSchema.d.ts +3 -18
  208. package/dist/SNPCoverageRenderer/configSchema.js +4 -22
  209. package/dist/SNPCoverageRenderer/index.d.ts +1 -1
  210. package/dist/SNPCoverageRenderer/index.js +2 -2
  211. package/dist/SNPCoverageRenderer/makeImage.d.ts +2 -0
  212. package/dist/SNPCoverageRenderer/makeImage.js +270 -0
  213. package/dist/SNPCoverageRenderer/types.d.ts +19 -0
  214. package/dist/SNPCoverageRenderer/types.js +2 -0
  215. package/dist/index.d.ts +2 -2
  216. package/dist/index.js +29 -19
  217. package/dist/shared/afterAttach.d.ts +1 -1
  218. package/dist/shared/afterAttach.js +0 -2
  219. package/dist/shared/color.d.ts +1 -1
  220. package/dist/shared/color.js +0 -8
  221. package/dist/shared/components/BaseDisplayComponent.d.ts +3 -4
  222. package/dist/shared/components/BaseDisplayComponent.js +13 -19
  223. package/dist/shared/components/FilterByTagDialog.d.ts +2 -3
  224. package/dist/shared/components/FilterByTagDialog.js +44 -94
  225. package/dist/shared/fetchChains.d.ts +2 -2
  226. package/dist/shared/fetchChains.js +1 -2
  227. package/dist/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  228. package/dist/shared/getMaximumModificationAtEachPosition.js +1 -2
  229. package/dist/shared/getUniqueModifications.d.ts +5 -5
  230. package/dist/shared/getUniqueTags.d.ts +4 -4
  231. package/dist/shared/renderSvgUtil.d.ts +1 -2
  232. package/dist/shared/renderSvgUtil.js +20 -19
  233. package/dist/shared/util.d.ts +11 -1
  234. package/dist/shared/util.js +27 -1
  235. package/dist/util.d.ts +4 -4
  236. package/dist/util.js +3 -9
  237. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -3
  238. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +8 -17
  239. package/esm/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  240. package/esm/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  241. package/esm/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  242. package/esm/AlignmentsFeatureDetail/Flags.js +8 -10
  243. package/esm/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  244. package/esm/AlignmentsFeatureDetail/Formatter.js +11 -16
  245. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +4 -7
  246. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +30 -48
  247. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +4 -7
  248. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +41 -54
  249. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +3 -4
  250. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +4 -5
  251. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +2 -3
  252. package/esm/AlignmentsFeatureDetail/PairLink.js +3 -4
  253. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +3 -4
  254. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +6 -9
  255. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +2 -3
  256. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +22 -29
  257. package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  258. package/esm/AlignmentsFeatureDetail/getSAFeatures.js +0 -4
  259. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  260. package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  261. package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +2 -2
  262. package/esm/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  263. package/esm/AlignmentsFeatureDetail/tagInfo.js +1 -1
  264. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -1
  265. package/esm/AlignmentsTrack/configSchemaF.d.ts +1 -1
  266. package/esm/AlignmentsTrack/configSchemaF.js +1 -8
  267. package/esm/AlignmentsTrack/index.d.ts +1 -1
  268. package/esm/AlignmentsTrack/index.js +0 -3
  269. package/esm/BamAdapter/BamAdapter.d.ts +6 -5
  270. package/esm/BamAdapter/BamAdapter.js +19 -37
  271. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  272. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  273. package/esm/BamAdapter/configSchema.d.ts +0 -17
  274. package/esm/BamAdapter/configSchema.js +1 -22
  275. package/esm/BamAdapter/index.d.ts +1 -1
  276. package/esm/CramAdapter/CramAdapter.d.ts +6 -9
  277. package/esm/CramAdapter/CramAdapter.js +24 -42
  278. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  279. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  280. package/esm/CramAdapter/CramTestAdapters.d.ts +3 -3
  281. package/esm/CramAdapter/CramTestAdapters.js +6 -6
  282. package/esm/CramAdapter/configSchema.d.ts +0 -14
  283. package/esm/CramAdapter/configSchema.js +1 -19
  284. package/esm/CramAdapter/index.d.ts +1 -1
  285. package/esm/CramAdapter/index.js +0 -1
  286. package/esm/CramAdapter/util.d.ts +2 -2
  287. package/esm/CramAdapter/util.js +1 -24
  288. package/esm/GuessAlignmentsTypes/index.d.ts +1 -1
  289. package/esm/GuessAlignmentsTypes/index.js +20 -35
  290. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  291. package/esm/HtsgetBamAdapter/configSchema.d.ts +0 -9
  292. package/esm/HtsgetBamAdapter/configSchema.js +1 -14
  293. package/esm/HtsgetBamAdapter/index.d.ts +1 -1
  294. package/esm/HtsgetBamAdapter/index.js +1 -1
  295. package/esm/LinearAlignmentsDisplay/alignmentsModel.d.ts +2 -5
  296. package/esm/LinearAlignmentsDisplay/alignmentsModel.js +1 -31
  297. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -3
  298. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -15
  299. package/esm/LinearAlignmentsDisplay/configSchema.d.ts +2 -16
  300. package/esm/LinearAlignmentsDisplay/configSchema.js +3 -20
  301. package/esm/LinearAlignmentsDisplay/index.d.ts +1 -1
  302. package/esm/LinearAlignmentsDisplay/index.js +1 -2
  303. package/esm/LinearAlignmentsDisplay/model.d.ts +7 -77
  304. package/esm/LinearAlignmentsDisplay/model.js +11 -86
  305. package/esm/LinearAlignmentsDisplay/util.d.ts +1 -1
  306. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +52 -164
  307. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +56 -140
  308. package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  309. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +12 -18
  310. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +3 -4
  311. package/esm/LinearPileupDisplay/components/GroupByDialog.js +106 -69
  312. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -8
  313. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +3 -4
  314. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  315. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +15 -21
  316. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  317. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +12 -17
  318. package/esm/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  319. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +17 -23
  320. package/esm/LinearPileupDisplay/configSchema.d.ts +13 -16
  321. package/esm/LinearPileupDisplay/configSchema.js +12 -30
  322. package/esm/LinearPileupDisplay/index.d.ts +1 -1
  323. package/esm/LinearPileupDisplay/index.js +2 -2
  324. package/esm/LinearPileupDisplay/model.d.ts +123 -111
  325. package/esm/LinearPileupDisplay/model.js +13 -103
  326. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -3
  327. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +6 -10
  328. package/esm/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  329. package/esm/LinearReadArcsDisplay/configSchema.js +8 -31
  330. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  331. package/esm/LinearReadArcsDisplay/drawFeats.js +1 -9
  332. package/esm/LinearReadArcsDisplay/index.d.ts +1 -1
  333. package/esm/LinearReadArcsDisplay/index.js +1 -2
  334. package/esm/LinearReadArcsDisplay/model.d.ts +16 -94
  335. package/esm/LinearReadArcsDisplay/model.js +18 -105
  336. package/esm/LinearReadArcsDisplay/util.d.ts +1 -1
  337. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -3
  338. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +6 -10
  339. package/esm/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  340. package/esm/LinearReadCloudDisplay/configSchema.js +3 -28
  341. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  342. package/esm/LinearReadCloudDisplay/drawFeats.js +2 -2
  343. package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  344. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  345. package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  346. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -3
  347. package/esm/LinearReadCloudDisplay/index.d.ts +1 -1
  348. package/esm/LinearReadCloudDisplay/index.js +1 -2
  349. package/esm/LinearReadCloudDisplay/model.d.ts +14 -56
  350. package/esm/LinearReadCloudDisplay/model.js +17 -68
  351. package/esm/LinearReadCloudDisplay/util.js +0 -1
  352. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -3
  353. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +16 -52
  354. package/esm/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  355. package/esm/LinearSNPCoverageDisplay/configSchema.js +16 -32
  356. package/esm/LinearSNPCoverageDisplay/index.d.ts +1 -1
  357. package/esm/LinearSNPCoverageDisplay/index.js +1 -2
  358. package/esm/LinearSNPCoverageDisplay/model.d.ts +13 -54
  359. package/esm/LinearSNPCoverageDisplay/model.js +53 -153
  360. package/esm/MismatchParser/cigarToMismatches.d.ts +2 -3
  361. package/esm/MismatchParser/cigarToMismatches.js +4 -7
  362. package/esm/MismatchParser/getNextRefPos.js +0 -2
  363. package/esm/MismatchParser/index.d.ts +3 -4
  364. package/esm/MismatchParser/index.js +1 -9
  365. package/esm/MismatchParser/mdToMismatches.d.ts +2 -3
  366. package/esm/MismatchParser/mdToMismatches.js +0 -6
  367. package/esm/ModificationParser/index.d.ts +1 -1
  368. package/esm/ModificationParser/index.js +1 -18
  369. package/esm/PileupRPC/base.d.ts +2 -2
  370. package/esm/PileupRPC/base.js +0 -1
  371. package/esm/PileupRPC/index.d.ts +1 -1
  372. package/esm/PileupRPC/index.js +1 -1
  373. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  374. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  375. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  376. package/esm/PileupRPC/methods/GetReducedFeatures.js +3 -5
  377. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  378. package/esm/PileupRPC/methods/GetVisibleModifications.js +1 -1
  379. package/esm/PileupRPC/util.d.ts +1 -1
  380. package/esm/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  381. package/esm/PileupRenderer/PileupLayoutSession.js +2 -5
  382. package/esm/PileupRenderer/PileupRenderer.d.ts +14 -24
  383. package/esm/PileupRenderer/PileupRenderer.js +12 -17
  384. package/esm/PileupRenderer/colorBy.d.ts +2 -2
  385. package/esm/PileupRenderer/colorBy.js +1 -7
  386. package/esm/PileupRenderer/components/PileupRendering.d.ts +2 -3
  387. package/esm/PileupRenderer/components/PileupRendering.js +15 -20
  388. package/esm/PileupRenderer/configSchema.d.ts +5 -31
  389. package/esm/PileupRenderer/configSchema.js +6 -35
  390. package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  391. package/esm/PileupRenderer/getAlignmentShapeColor.js +2 -7
  392. package/esm/PileupRenderer/index.d.ts +1 -1
  393. package/esm/PileupRenderer/index.js +1 -1
  394. package/esm/PileupRenderer/layoutFeature.d.ts +2 -2
  395. package/esm/PileupRenderer/layoutFeature.js +0 -1
  396. package/esm/PileupRenderer/layoutFeatures.d.ts +5 -2
  397. package/esm/PileupRenderer/layoutFeatures.js +7 -5
  398. package/esm/PileupRenderer/makeImageData.d.ts +3 -4
  399. package/esm/PileupRenderer/makeImageData.js +10 -2
  400. package/esm/PileupRenderer/renderAlignment.d.ts +3 -3
  401. package/esm/PileupRenderer/renderAlignment.js +3 -5
  402. package/esm/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  403. package/esm/PileupRenderer/renderAlignmentShape.js +1 -1
  404. package/esm/PileupRenderer/renderMethylation.d.ts +4 -4
  405. package/esm/PileupRenderer/renderMethylation.js +0 -4
  406. package/esm/PileupRenderer/renderMismatches.d.ts +5 -4
  407. package/esm/PileupRenderer/renderMismatches.js +19 -25
  408. package/esm/PileupRenderer/renderModifications.d.ts +3 -3
  409. package/esm/PileupRenderer/renderModifications.js +1 -3
  410. package/esm/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  411. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  412. package/esm/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  413. package/esm/PileupRenderer/renderPerBaseQuality.js +2 -2
  414. package/esm/PileupRenderer/renderSoftClipping.d.ts +5 -5
  415. package/esm/PileupRenderer/renderSoftClipping.js +1 -5
  416. package/esm/PileupRenderer/sortUtil.d.ts +2 -2
  417. package/esm/PileupRenderer/sortUtil.js +1 -4
  418. package/esm/PileupRenderer/types.d.ts +26 -0
  419. package/esm/PileupRenderer/types.js +1 -0
  420. package/esm/PileupRenderer/util.d.ts +2 -2
  421. package/esm/PileupRenderer/util.js +1 -3
  422. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  423. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +5 -7
  424. package/esm/SNPCoverageAdapter/configSchema.d.ts +0 -4
  425. package/esm/SNPCoverageAdapter/configSchema.js +1 -8
  426. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  427. package/esm/SNPCoverageAdapter/generateCoverageBins.js +24 -246
  428. package/esm/SNPCoverageAdapter/index.d.ts +1 -1
  429. package/esm/SNPCoverageAdapter/processDepth.d.ts +8 -0
  430. package/esm/SNPCoverageAdapter/processDepth.js +35 -0
  431. package/esm/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  432. package/esm/SNPCoverageAdapter/processMismatches.js +55 -0
  433. package/esm/SNPCoverageAdapter/processModifications.d.ts +10 -0
  434. package/esm/SNPCoverageAdapter/processModifications.js +46 -0
  435. package/esm/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  436. package/esm/SNPCoverageAdapter/processReferenceCpGs.js +60 -0
  437. package/esm/SNPCoverageAdapter/util.d.ts +10 -0
  438. package/esm/SNPCoverageAdapter/util.js +35 -0
  439. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -18
  440. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +3 -289
  441. package/esm/SNPCoverageRenderer/configSchema.d.ts +3 -18
  442. package/esm/SNPCoverageRenderer/configSchema.js +4 -22
  443. package/esm/SNPCoverageRenderer/index.d.ts +1 -1
  444. package/esm/SNPCoverageRenderer/index.js +2 -2
  445. package/esm/SNPCoverageRenderer/makeImage.d.ts +2 -0
  446. package/esm/SNPCoverageRenderer/makeImage.js +267 -0
  447. package/esm/SNPCoverageRenderer/types.d.ts +19 -0
  448. package/esm/SNPCoverageRenderer/types.js +1 -0
  449. package/esm/index.d.ts +2 -2
  450. package/esm/index.js +10 -10
  451. package/esm/shared/afterAttach.d.ts +1 -1
  452. package/esm/shared/afterAttach.js +0 -2
  453. package/esm/shared/color.d.ts +1 -1
  454. package/esm/shared/color.js +0 -8
  455. package/esm/shared/components/BaseDisplayComponent.d.ts +3 -4
  456. package/esm/shared/components/BaseDisplayComponent.js +13 -16
  457. package/esm/shared/components/FilterByTagDialog.d.ts +2 -3
  458. package/esm/shared/components/FilterByTagDialog.js +44 -71
  459. package/esm/shared/fetchChains.d.ts +2 -2
  460. package/esm/shared/fetchChains.js +1 -2
  461. package/esm/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  462. package/esm/shared/getMaximumModificationAtEachPosition.js +1 -2
  463. package/esm/shared/getUniqueModifications.d.ts +5 -5
  464. package/esm/shared/getUniqueTags.d.ts +4 -4
  465. package/esm/shared/renderSvgUtil.d.ts +1 -2
  466. package/esm/shared/renderSvgUtil.js +3 -9
  467. package/esm/shared/util.d.ts +11 -1
  468. package/esm/shared/util.js +24 -0
  469. package/esm/util.d.ts +4 -4
  470. package/esm/util.js +3 -9
  471. package/package.json +6 -7
@@ -1,11 +1,11 @@
1
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
- import { Theme } from '@mui/material';
3
- import { RenderArgsDeserializedWithFeaturesAndLayout } from './PileupRenderer';
4
- import { LayoutFeature } from './util';
1
+ import type { ProcessedRenderArgs } from './types';
2
+ import type { LayoutFeature } from './util';
3
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
+ import type { Theme } from '@mui/material';
5
5
  export declare function renderSoftClipping({ ctx, feat, renderArgs, config, theme, colorForBase, canvasWidth, }: {
6
6
  ctx: CanvasRenderingContext2D;
7
7
  feat: LayoutFeature;
8
- renderArgs: RenderArgsDeserializedWithFeaturesAndLayout;
8
+ renderArgs: ProcessedRenderArgs;
9
9
  config: AnyConfigurationModel;
10
10
  colorForBase: Record<string, string>;
11
11
  theme: Theme;
@@ -13,7 +13,6 @@ function renderSoftClipping({ ctx, feat, renderArgs, config, theme, colorForBase
13
13
  const mismatches = feature.get('mismatches');
14
14
  const seq = feature.get('seq');
15
15
  const { charWidth, charHeight } = (0, util_2.getCharWidthHeight)();
16
- // Display all bases softclipped off in lightened colors
17
16
  if (!(seq && mismatches)) {
18
17
  return;
19
18
  }
@@ -31,8 +30,6 @@ function renderSoftClipping({ ctx, feat, renderArgs, config, theme, colorForBase
31
30
  const s0 = feature.get('start') - (i === 0 ? len : 0) + refOffset + k;
32
31
  const [leftPx, rightPx] = (0, util_1.bpSpanPx)(s0, s0 + 1, region, bpPerPx);
33
32
  const widthPx = Math.max(minFeatWidth, rightPx - leftPx);
34
- // Black accounts for IUPAC ambiguity code bases such as N that
35
- // show in soft clipping
36
33
  const baseColor = colorForBase[base] || '#000000';
37
34
  ctx.fillStyle = baseColor;
38
35
  (0, util_2.fillRect)(ctx, leftPx, topPx, widthPx, heightPx, canvasWidth);
@@ -51,7 +48,6 @@ function renderSoftClipping({ ctx, feat, renderArgs, config, theme, colorForBase
51
48
  seqOffset += len;
52
49
  }
53
50
  if (op === 'H') {
54
- // do nothing
55
51
  }
56
52
  if (op === 'D') {
57
53
  refOffset += len;
@@ -1,3 +1,3 @@
1
- import { Feature } from '@jbrowse/core/util';
2
- import { SortedBy } from '../shared/types';
1
+ import type { SortedBy } from '../shared/types';
2
+ import type { Feature } from '@jbrowse/core/util';
3
3
  export declare const sortFeature: (features: Map<string, Feature>, sortedBy: SortedBy) => Map<string, Feature>;
@@ -7,7 +7,6 @@ const sortFeature = (features, sortedBy) => {
7
7
  const featuresInCenterLine = [];
8
8
  const featuresOutsideCenter = [];
9
9
  const { pos, type } = sortedBy;
10
- // only sort on features that intersect center line, append those outside post-sort
11
10
  featureArray.forEach(innerArray => {
12
11
  const feature = innerArray;
13
12
  const start = feature.get('start');
@@ -40,7 +39,6 @@ const sortFeature = (features, sortedBy) => {
40
39
  }
41
40
  break;
42
41
  }
43
- // first sort all mismatches, then all reference bases at the end
44
42
  case 'Base pair': {
45
43
  const baseSortArray = [];
46
44
  for (const feature of featuresInCenterLine) {
@@ -62,14 +60,13 @@ const sortFeature = (features, sortedBy) => {
62
60
  const acode = bMismatch === null || bMismatch === void 0 ? void 0 : bMismatch.base.toUpperCase();
63
61
  const bcode = aMismatch === null || aMismatch === void 0 ? void 0 : aMismatch.base.toUpperCase();
64
62
  return acode === bcode && acode === '*'
65
- ? // @ts-expect-error
63
+ ?
66
64
  aMismatch.length - bMismatch.length
67
65
  : (acode ? acode.charCodeAt(0) : 0) -
68
66
  (bcode ? bcode.charCodeAt(0) : 0);
69
67
  });
70
68
  break;
71
69
  }
72
- // sorts positive strands then negative strands
73
70
  case 'Read strand': {
74
71
  featuresInCenterLine.sort((a, b) => a.get('strand') <= b.get('strand') ? 1 : -1);
75
72
  break;
@@ -0,0 +1,26 @@
1
+ import type { ColorBy, ModificationTypeWithColor, SortedBy } from '../shared/types';
2
+ import type { RenderArgsDeserialized as BoxRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType';
3
+ import type { Feature } from '@jbrowse/core/util';
4
+ import type { BaseLayout } from '@jbrowse/core/util/layouts/BaseLayout';
5
+ export interface LayoutFeature {
6
+ heightPx: number;
7
+ topPx: number;
8
+ feature: Feature;
9
+ }
10
+ export interface RenderArgsDeserialized extends BoxRenderArgsDeserialized {
11
+ colorBy?: ColorBy;
12
+ colorTagMap?: Record<string, string>;
13
+ visibleModifications?: Record<string, ModificationTypeWithColor>;
14
+ sortedBy?: SortedBy;
15
+ showSoftClip: boolean;
16
+ highResolutionScaling: number;
17
+ }
18
+ export interface ProcessedRenderArgs extends RenderArgsDeserialized {
19
+ features: Map<string, Feature>;
20
+ layout: BaseLayout<Feature>;
21
+ regionSequence: string | undefined;
22
+ }
23
+ export interface PreProcessedRenderArgs extends RenderArgsDeserialized {
24
+ features: Map<string, Feature>;
25
+ layout: BaseLayout<Feature>;
26
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
- import { Feature } from '@jbrowse/core/util';
2
- import { Theme } from '@mui/material';
1
+ import type { Feature } from '@jbrowse/core/util';
2
+ import type { Theme } from '@mui/material';
3
3
  export declare function fillRect(ctx: CanvasRenderingContext2D, l: number, t: number, w: number, h: number, cw: number, color?: string): void;
4
4
  export declare function getColorBaseMap(theme: Theme): {
5
5
  A: string;
@@ -23,7 +23,7 @@ function getColorBaseMap(theme) {
23
23
  C: bases.C.main,
24
24
  G: bases.G.main,
25
25
  T: bases.T.main,
26
- deletion: '#808080', // gray
26
+ deletion: '#808080',
27
27
  };
28
28
  }
29
29
  function getContrastBaseMap(theme) {
@@ -38,8 +38,6 @@ function shouldDrawSNPsMuted(type) {
38
38
  function shouldDrawIndels() {
39
39
  return true;
40
40
  }
41
- // get width and height of chars the height is an approximation: width letter M
42
- // is approximately the height
43
41
  function getCharWidthHeight() {
44
42
  const charWidth = (0, util_1.measureText)('A');
45
43
  const charHeight = (0, util_1.measureText)('M') - 2;
@@ -1,6 +1,7 @@
1
- import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { AugmentedRegion as Region } from '@jbrowse/core/util/types';
3
- import { Feature } from '@jbrowse/core/util/simpleFeature';
1
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import type { Feature } from '@jbrowse/core/util/simpleFeature';
4
+ import type { AugmentedRegion as Region } from '@jbrowse/core/util/types';
4
5
  export default class SNPCoverageAdapter extends BaseFeatureDataAdapter {
5
6
  protected configure(): Promise<{
6
7
  subadapter: BaseFeatureDataAdapter;
@@ -4,11 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
7
- const simpleFeature_1 = __importDefault(require("@jbrowse/core/util/simpleFeature"));
8
7
  const rxjs_1 = require("@jbrowse/core/util/rxjs");
9
- const operators_1 = require("rxjs/operators");
8
+ const simpleFeature_1 = __importDefault(require("@jbrowse/core/util/simpleFeature"));
10
9
  const rxjs_2 = require("rxjs");
11
- // locals
10
+ const operators_1 = require("rxjs/operators");
12
11
  const util_1 = require("../util");
13
12
  const generateCoverageBins_1 = require("./generateCoverageBins");
14
13
  class SNPCoverageAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
@@ -58,7 +57,6 @@ class SNPCoverageAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
58
57
  },
59
58
  }));
60
59
  });
61
- // make fake features from the coverage
62
60
  Object.entries(skipmap).forEach(([key, skip]) => {
63
61
  observer.next(new simpleFeature_1.default({
64
62
  id: key,
@@ -73,7 +71,7 @@ class SNPCoverageAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
73
71
  }));
74
72
  });
75
73
  observer.complete();
76
- }, opts.signal);
74
+ }, opts.stopToken);
77
75
  }
78
76
  async getMultiRegionFeatureDensityStats(regions, opts) {
79
77
  const { subadapter } = await this.configure();
@@ -83,6 +81,6 @@ class SNPCoverageAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
83
81
  const { subadapter } = await this.configure();
84
82
  return subadapter.getRefNames(opts);
85
83
  }
86
- freeResources( /* { region } */) { }
84
+ freeResources() { }
87
85
  }
88
86
  exports.default = SNPCoverageAdapter;
@@ -1,8 +1,4 @@
1
1
  declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- * normally refers to a BAM or CRAM adapter
5
- */
6
2
  subadapter: {
7
3
  type: string;
8
4
  defaultValue: null;
@@ -1,15 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const configuration_1 = require("@jbrowse/core/configuration");
4
- /**
5
- * #config SNPCoverageAdapter
6
- */
7
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
4
+ function x() { }
8
5
  const configSchema = (0, configuration_1.ConfigurationSchema)('SNPCoverageAdapter', {
9
- /**
10
- * #slot
11
- * normally refers to a BAM or CRAM adapter
12
- */
13
6
  subadapter: {
14
7
  type: 'frozen',
15
8
  defaultValue: null,
@@ -1,10 +1,7 @@
1
- import { AugmentedRegion as Region } from '@jbrowse/core/util/types';
2
- import { Feature } from '@jbrowse/core/util';
3
- import { ColorBy, PreBaseCoverageBin, SkipMap } from '../shared/types';
4
- interface Opts {
5
- bpPerPx?: number;
6
- colorBy?: ColorBy;
7
- }
1
+ import type { Opts } from './util';
2
+ import type { PreBaseCoverageBin, SkipMap } from '../shared/types';
3
+ import type { Feature } from '@jbrowse/core/util';
4
+ import type { AugmentedRegion as Region } from '@jbrowse/core/util/types';
8
5
  export declare function generateCoverageBins({ fetchSequence, features, region, opts, }: {
9
6
  features: Feature[];
10
7
  region: Region;
@@ -14,4 +11,3 @@ export declare function generateCoverageBins({ fetchSequence, features, region,
14
11
  bins: PreBaseCoverageBin[];
15
12
  skipmap: SkipMap;
16
13
  }>;
17
- export {};
@@ -2,261 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateCoverageBins = generateCoverageBins;
4
4
  const util_1 = require("@jbrowse/core/util");
5
- // locals
6
- const MismatchParser_1 = require("../MismatchParser");
7
- const ModificationParser_1 = require("../ModificationParser");
8
- const getMaximumModificationAtEachPosition_1 = require("../shared/getMaximumModificationAtEachPosition");
9
- function mismatchLen(mismatch) {
10
- return !isInterbase(mismatch.type) ? mismatch.length : 1;
11
- }
12
- function isInterbase(type) {
13
- return type === 'softclip' || type === 'hardclip' || type === 'insertion';
14
- }
15
- function inc(bin, strand, type, field) {
16
- let thisBin = bin[type][field];
17
- if (thisBin === undefined) {
18
- thisBin = bin[type][field] = {
19
- entryDepth: 0,
20
- probabilities: [],
21
- '-1': 0,
22
- '0': 0,
23
- '1': 0,
24
- };
25
- }
26
- thisBin.entryDepth++;
27
- thisBin[strand]++;
28
- }
29
- function processDepth({ feature, bins, region, regionSequence, }) {
30
- const fstart = feature.get('start');
31
- const fend = feature.get('end');
32
- const fstrand = feature.get('strand');
33
- const regionLength = region.end - region.start;
34
- for (let j = fstart; j < fend + 1; j++) {
35
- const i = j - region.start;
36
- if (i >= 0 && i < regionLength) {
37
- if (bins[i] === undefined) {
38
- bins[i] = {
39
- depth: 0,
40
- readsCounted: 0,
41
- refbase: regionSequence[i],
42
- ref: {
43
- probabilities: [],
44
- entryDepth: 0,
45
- '-1': 0,
46
- 0: 0,
47
- 1: 0,
48
- },
49
- snps: {},
50
- mods: {},
51
- nonmods: {},
52
- delskips: {},
53
- noncov: {},
54
- };
55
- }
56
- if (j !== fend) {
57
- bins[i].depth++;
58
- bins[i].readsCounted++;
59
- bins[i].ref.entryDepth++;
60
- bins[i].ref[fstrand]++;
61
- }
62
- }
63
- }
64
- }
65
- function processSNPs({ feature, region, bins, skipmap, }) {
66
- var _a;
67
- const fstart = feature.get('start');
68
- const fstrand = feature.get('strand');
69
- const mismatches = (_a = feature.get('mismatches')) !== null && _a !== void 0 ? _a : [];
70
- // normal SNP based coloring
71
- for (const mismatch of mismatches) {
72
- const mstart = fstart + mismatch.start;
73
- const mlen = mismatchLen(mismatch);
74
- const mend = mstart + mlen;
75
- for (let j = mstart; j < mstart + mlen; j++) {
76
- const epos = j - region.start;
77
- if (epos >= 0 && epos < bins.length) {
78
- const bin = bins[epos];
79
- const { base, type } = mismatch;
80
- const interbase = isInterbase(type);
81
- if (type === 'deletion' || type === 'skip') {
82
- inc(bin, fstrand, 'delskips', type);
83
- bin.depth--;
84
- }
85
- else if (!interbase) {
86
- inc(bin, fstrand, 'snps', base);
87
- bin.ref.entryDepth--;
88
- bin.ref[fstrand]--;
89
- }
90
- else {
91
- inc(bin, fstrand, 'noncov', type);
92
- }
93
- }
94
- }
95
- if (mismatch.type === 'skip') {
96
- // for upper case XS and TS: reports the literal strand of the genomic
97
- // transcript
98
- const tags = feature.get('tags');
99
- const xs = (tags === null || tags === void 0 ? void 0 : tags.XS) || (tags === null || tags === void 0 ? void 0 : tags.TS);
100
- // for lower case ts from minimap2: genomic transcript flipped by read
101
- // strand
102
- const ts = tags === null || tags === void 0 ? void 0 : tags.ts;
103
- const effectiveStrand = xs === '+'
104
- ? 1
105
- : xs === '-'
106
- ? -1
107
- : (ts === '+' ? 1 : xs === '-' ? -1 : 0) * fstrand;
108
- const hash = `${mstart}_${mend}_${effectiveStrand}`;
109
- if (skipmap[hash] === undefined) {
110
- skipmap[hash] = {
111
- feature: feature,
112
- start: mstart,
113
- end: mend,
114
- strand: fstrand,
115
- effectiveStrand,
116
- score: 0,
117
- };
118
- }
119
- skipmap[hash].score++;
120
- }
121
- }
122
- }
123
- function processReferenceCpGs({ feature, region, bins, regionSequence, }) {
124
- var _a;
125
- const fstart = feature.get('start');
126
- const fend = feature.get('end');
127
- const fstrand = feature.get('strand');
128
- const seq = feature.get('seq');
129
- const mismatches = (_a = feature.get('mismatches')) !== null && _a !== void 0 ? _a : [];
130
- const r = regionSequence.toLowerCase();
131
- if (seq) {
132
- const cigarOps = (0, MismatchParser_1.parseCigar)(feature.get('CIGAR'));
133
- const { methBins, methProbs } = (0, ModificationParser_1.getMethBins)(feature, cigarOps);
134
- const dels = mismatches.filter(f => f.type === 'deletion');
135
- // methylation based coloring takes into account both reference sequence
136
- // CpG detection and reads
137
- for (let i = 0; i < fend - fstart; i++) {
138
- const j = i + fstart;
139
- const l1 = r[j - region.start + 1];
140
- const l2 = r[j - region.start + 2];
141
- if (l1 === 'c' && l2 === 'g') {
142
- const bin0 = bins[j - region.start];
143
- const bin1 = bins[j - region.start + 1];
144
- const b0 = methBins[i];
145
- const b1 = methBins[i + 1];
146
- const p0 = methProbs[i];
147
- const p1 = methProbs[i + 1];
148
- // color
149
- if ((b0 && (p0 !== undefined ? p0 > 0.5 : true)) ||
150
- (b1 && (p1 !== undefined ? p1 > 0.5 : true))) {
151
- if (bin0) {
152
- incWithProbabilities(bin0, fstrand, 'mods', 'cpg_meth', p0 || 0);
153
- bin0.ref.entryDepth--;
154
- bin0.ref[fstrand]--;
155
- }
156
- if (bin1) {
157
- incWithProbabilities(bin1, fstrand, 'mods', 'cpg_meth', p1 || 0);
158
- bin1.ref.entryDepth--;
159
- bin1.ref[fstrand]--;
160
- }
161
- }
162
- else {
163
- if (bin0) {
164
- if (!dels.some(d => (0, util_1.doesIntersect2)(j, j + 1, d.start + fstart, d.start + fstart + d.length))) {
165
- incWithProbabilities(bin0, fstrand, 'nonmods', 'cpg_unmeth', 1 - (p0 || 0));
166
- bin0.ref.entryDepth--;
167
- bin0.ref[fstrand]--;
168
- }
169
- }
170
- if (bin1) {
171
- if (!dels.some(d => (0, util_1.doesIntersect2)(j + 1, j + 2, d.start + fstart, d.start + fstart + d.length))) {
172
- incWithProbabilities(bin1, fstrand, 'nonmods', 'cpg_unmeth', 1 - (p1 || 0));
173
- bin1.ref.entryDepth--;
174
- bin1.ref[fstrand]--;
175
- }
176
- }
177
- }
178
- }
179
- }
180
- }
181
- }
182
- function processModification({ feature, colorBy, region, bins, regionSequence, }) {
183
- var _a, _b, _c;
184
- const fstart = feature.get('start');
185
- const fstrand = feature.get('strand');
186
- const fend = feature.get('end');
187
- const twoColor = (_a = colorBy === null || colorBy === void 0 ? void 0 : colorBy.modifications) === null || _a === void 0 ? void 0 : _a.twoColor;
188
- const isolatedModification = (_b = colorBy === null || colorBy === void 0 ? void 0 : colorBy.modifications) === null || _b === void 0 ? void 0 : _b.isolatedModification;
189
- (_c = (0, getMaximumModificationAtEachPosition_1.getMaxProbModAtEachPosition)(feature)) === null || _c === void 0 ? void 0 : _c.forEach(({ type, prob, allProbs }, pos) => {
190
- if (isolatedModification && type !== isolatedModification) {
191
- return;
192
- }
193
- const epos = pos + fstart - region.start;
194
- if (epos >= 0 && epos < bins.length && pos + fstart < fend) {
195
- if (bins[epos] === undefined) {
196
- bins[epos] = {
197
- depth: 0,
198
- readsCounted: 0,
199
- refbase: regionSequence[epos],
200
- snps: {},
201
- ref: {
202
- probabilities: [],
203
- entryDepth: 0,
204
- '-1': 0,
205
- 0: 0,
206
- 1: 0,
207
- },
208
- mods: {},
209
- nonmods: {},
210
- delskips: {},
211
- noncov: {},
212
- };
213
- }
214
- const s = 1 - (0, util_1.sum)(allProbs);
215
- const bin = bins[epos];
216
- if (twoColor && s > (0, util_1.max)(allProbs)) {
217
- incWithProbabilities(bin, fstrand, 'nonmods', `nonmod_${type}`, s);
218
- }
219
- else {
220
- incWithProbabilities(bin, fstrand, 'mods', `mod_${type}`, prob);
221
- }
222
- }
223
- });
224
- }
225
- function incWithProbabilities(bin, strand, type, field, probability) {
226
- let thisBin = bin[type][field];
227
- if (thisBin === undefined) {
228
- thisBin = bin[type][field] = {
229
- entryDepth: 0,
230
- probabilities: [],
231
- '-1': 0,
232
- '0': 0,
233
- '1': 0,
234
- };
235
- }
236
- thisBin.entryDepth++;
237
- thisBin.probabilities.push(probability);
238
- thisBin[strand]++;
239
- }
5
+ const stopToken_1 = require("@jbrowse/core/util/stopToken");
6
+ const processDepth_1 = require("./processDepth");
7
+ const processMismatches_1 = require("./processMismatches");
8
+ const processModifications_1 = require("./processModifications");
9
+ const processReferenceCpGs_1 = require("./processReferenceCpGs");
240
10
  async function generateCoverageBins({ fetchSequence, features, region, opts, }) {
241
- const { colorBy } = opts;
11
+ const { stopToken, colorBy } = opts;
242
12
  const skipmap = {};
243
13
  const bins = [];
244
14
  const start2 = Math.max(0, region.start - 1);
245
15
  const diff = region.start - start2;
246
- const regionSequence = (await fetchSequence({
247
- ...region,
248
- start: start2,
249
- end: region.end + 1,
250
- })) || '';
16
+ let start = performance.now();
251
17
  for (const feature of features) {
252
- processDepth({
18
+ if (performance.now() - start > 400) {
19
+ (0, stopToken_1.checkStopToken)(stopToken);
20
+ start = performance.now();
21
+ }
22
+ (0, processDepth_1.processDepth)({
253
23
  feature,
254
24
  bins,
255
25
  region,
256
- regionSequence: regionSequence.slice(diff),
257
26
  });
258
27
  if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications') {
259
- processModification({
28
+ const regionSequence = (await fetchSequence({
29
+ ...region,
30
+ start: start2,
31
+ end: region.end + 1,
32
+ })) || '';
33
+ (0, processModifications_1.processModifications)({
260
34
  feature,
261
35
  colorBy,
262
36
  bins,
@@ -265,17 +39,21 @@ async function generateCoverageBins({ fetchSequence, features, region, opts, })
265
39
  });
266
40
  }
267
41
  else if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'methylation') {
268
- processReferenceCpGs({
42
+ const regionSequence = (await fetchSequence({
43
+ ...region,
44
+ start: start2,
45
+ end: region.end + 1,
46
+ })) || '';
47
+ (0, processReferenceCpGs_1.processReferenceCpGs)({
269
48
  feature,
270
49
  bins,
271
50
  region,
272
51
  regionSequence,
273
52
  });
274
53
  }
275
- processSNPs({ feature, skipmap, bins, region });
54
+ (0, processMismatches_1.processMismatches)({ feature, skipmap, bins, region });
276
55
  }
277
56
  for (const bin of bins) {
278
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
279
57
  if (bin) {
280
58
  bin.mods = Object.fromEntries(Object.entries(bin.mods).map(([key, val]) => {
281
59
  return [
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function SNPCoverageAdapterF(pluginManager: PluginManager): void;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
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
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -0,0 +1,8 @@
1
+ import type { PreBaseCoverageBin } from '../shared/types';
2
+ import type { Feature } from '@jbrowse/core/util';
3
+ import type { AugmentedRegion } from '@jbrowse/core/util/types';
4
+ export declare function processDepth({ feature, bins, region, }: {
5
+ feature: Feature;
6
+ bins: PreBaseCoverageBin[];
7
+ region: AugmentedRegion;
8
+ }): void;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processDepth = processDepth;
4
+ function processDepth({ feature, bins, region, }) {
5
+ const fstart = feature.get('start');
6
+ const fend = feature.get('end');
7
+ const fstrand = feature.get('strand');
8
+ const regionLength = region.end - region.start;
9
+ for (let j = fstart; j < fend + 1; j++) {
10
+ const i = j - region.start;
11
+ if (i >= 0 && i < regionLength) {
12
+ if (bins[i] === undefined) {
13
+ bins[i] = {
14
+ depth: 0,
15
+ readsCounted: 0,
16
+ ref: {
17
+ probabilities: [],
18
+ entryDepth: 0,
19
+ '-1': 0,
20
+ 0: 0,
21
+ 1: 0,
22
+ },
23
+ snps: {},
24
+ mods: {},
25
+ nonmods: {},
26
+ delskips: {},
27
+ noncov: {},
28
+ };
29
+ }
30
+ if (j !== fend) {
31
+ bins[i].depth++;
32
+ bins[i].readsCounted++;
33
+ bins[i].ref.entryDepth++;
34
+ bins[i].ref[fstrand]++;
35
+ }
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,9 @@
1
+ import type { PreBaseCoverageBin, SkipMap } from '../shared/types';
2
+ import type { Feature } from '@jbrowse/core/util';
3
+ import type { AugmentedRegion } from '@jbrowse/core/util/types';
4
+ export declare function processMismatches({ feature, region, bins, skipmap, }: {
5
+ region: AugmentedRegion;
6
+ bins: PreBaseCoverageBin[];
7
+ feature: Feature;
8
+ skipmap: SkipMap;
9
+ }): void;