@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,27 +1,21 @@
1
1
  import { BamFile } from '@gmod/bam';
2
- import { toArray } from 'rxjs/operators';
3
- import { firstValueFrom } from 'rxjs';
4
- // jbrowse
5
- import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
6
3
  import { bytesForRegions, updateStatus } from '@jbrowse/core/util';
4
+ import QuickLRU from '@jbrowse/core/util/QuickLRU';
7
5
  import { openLocation } from '@jbrowse/core/util/io';
8
6
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
9
- import QuickLRU from '@jbrowse/core/util/QuickLRU';
10
- // locals
7
+ import { checkStopToken } from '@jbrowse/core/util/stopToken';
8
+ import { firstValueFrom } from 'rxjs';
9
+ import { toArray } from 'rxjs/operators';
11
10
  import BamSlightlyLazyFeature from './BamSlightlyLazyFeature';
11
+ import { filterReadFlag, filterTagValue } from '../shared/util';
12
12
  export default class BamAdapter extends BaseFeatureDataAdapter {
13
13
  constructor() {
14
14
  super(...arguments);
15
- // used for avoiding re-creation new BamSlightlyLazyFeatures, keeping
16
- // mismatches in cache. at an average of 100kb-300kb, keeping even just 500
17
- // of these in memory is memory intensive but can reduce recomputation on
18
- // these objects
19
15
  this.ultraLongFeatureCache = new QuickLRU({
20
16
  maxSize: 500,
21
17
  });
22
18
  }
23
- // derived classes may not use the same configuration so a custom configure
24
- // method allows derived classes to override this behavior
25
19
  async configurePre() {
26
20
  const bamLocation = this.getConf('bamLocation');
27
21
  const location = this.getConf(['index', 'location']);
@@ -53,23 +47,20 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
53
47
  }
54
48
  return this.configureP;
55
49
  }
56
- async getHeader(opts) {
50
+ async getHeader(_opts) {
57
51
  const { bam } = await this.configure();
58
- return bam.getHeaderText(opts);
52
+ return bam.getHeaderText();
59
53
  }
60
54
  async setupPre(opts) {
61
55
  const { statusCallback = () => { } } = opts || {};
62
56
  const { bam } = await this.configure();
63
57
  this.samHeader = await updateStatus('Downloading index', statusCallback, async () => {
64
- const samHeader = await bam.getHeader(opts);
65
- // use the @SQ lines in the header to figure out the
66
- // mapping between ref ref ID numbers and names
58
+ const samHeader = await bam.getHeader();
67
59
  const idToName = [];
68
60
  const nameToId = {};
69
61
  samHeader === null || samHeader === void 0 ? void 0 : samHeader.filter(l => l.tag === 'SQ').forEach((sqLine, refId) => {
70
62
  const SN = sqLine.data.find(item => item.tag === 'SN');
71
63
  if (SN) {
72
- // this is the ref name
73
64
  const refName = SN.value;
74
65
  nameToId[refName] = refId;
75
66
  idToName[refId] = refName;
@@ -127,11 +118,13 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
127
118
  }
128
119
  getFeatures(region, opts) {
129
120
  const { refName, start, end, originalRefName } = region;
130
- const { signal, filterBy, statusCallback = () => { } } = opts || {};
121
+ const { stopToken, filterBy, statusCallback = () => { } } = opts || {};
131
122
  return ObservableCreate(async (observer) => {
132
123
  const { bam } = await this.configure();
133
124
  await this.setup(opts);
134
- const records = await updateStatus('Downloading alignments', statusCallback, () => bam.getRecordsForRange(refName, start, end, opts));
125
+ checkStopToken(stopToken);
126
+ const records = await updateStatus('Downloading alignments', statusCallback, () => bam.getRecordsForRange(refName, start, end));
127
+ checkStopToken(stopToken);
135
128
  await updateStatus('Processing alignments', statusCallback, async () => {
136
129
  const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
137
130
  for (const record of records) {
@@ -139,25 +132,16 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
139
132
  if (!record.tags.MD) {
140
133
  ref = await this.seqFetch(originalRefName || refName, record.start, record.end);
141
134
  }
142
- const flags = record.flags;
143
- if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
135
+ if (filterReadFlag(record.flags, flagInclude, flagExclude)) {
144
136
  continue;
145
137
  }
146
- if (tagFilter) {
147
- const readVal = record.tags[tagFilter.tag];
148
- const filterVal = tagFilter.value;
149
- if (filterVal === '*'
150
- ? readVal === undefined
151
- : `${readVal}` !== `${filterVal}`) {
152
- continue;
153
- }
138
+ if (tagFilter &&
139
+ filterTagValue(record.tags[tagFilter.tag], tagFilter.value)) {
140
+ continue;
154
141
  }
155
142
  if (readName && record.name !== readName) {
156
143
  continue;
157
144
  }
158
- // retrieve a feature from our feature cache if it is available, the
159
- // features in the cache have pre-computed mismatches objects that
160
- // can be re-used across blocks
161
145
  const ret = this.ultraLongFeatureCache.get(`${record.id}`);
162
146
  if (!ret) {
163
147
  const elt = new BamSlightlyLazyFeature(record, this, ref);
@@ -170,11 +154,10 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
170
154
  }
171
155
  observer.complete();
172
156
  });
173
- }, signal);
157
+ });
174
158
  }
175
159
  async getMultiRegionFeatureDensityStats(regions, opts) {
176
160
  const { bam } = await this.configure();
177
- // this is a method to avoid calling on htsget adapters
178
161
  if (bam.index) {
179
162
  const bytes = await bytesForRegions(regions, bam);
180
163
  const fetchSizeLimit = this.getConf('fetchSizeLimit');
@@ -182,8 +165,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
182
165
  }
183
166
  return super.getMultiRegionFeatureDensityStats(regions, opts);
184
167
  }
185
- freeResources( /* { region } */) { }
186
- // depends on setup being called before the BAM constructor
168
+ freeResources() { }
187
169
  refIdToName(refId) {
188
170
  var _a;
189
171
  return (_a = this.samHeader) === null || _a === void 0 ? void 0 : _a.idToName[refId];
@@ -1,6 +1,6 @@
1
- import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
2
- import { BamRecord } from '@gmod/bam';
3
- import BamAdapter from './BamAdapter';
1
+ import type BamAdapter from './BamAdapter';
2
+ import type { BamRecord } from '@gmod/bam';
3
+ import type { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
4
4
  export default class BamSlightlyLazyFeature implements Feature {
5
5
  private record;
6
6
  private adapter;
@@ -1,9 +1,6 @@
1
- // locals
2
1
  import { getMismatches } from '../MismatchParser';
3
2
  import { cacheGetter } from '../shared/util';
4
3
  export default class BamSlightlyLazyFeature {
5
- // uses parameter properties to automatically create fields on the class
6
- // https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
7
4
  constructor(record, adapter, ref) {
8
5
  this.record = record;
9
6
  this.adapter = adapter;
@@ -1,7 +1,4 @@
1
1
  declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- */
5
2
  bamLocation: {
6
3
  type: string;
7
4
  defaultValue: {
@@ -10,17 +7,11 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
10
7
  };
11
8
  };
12
9
  index: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
13
- /**
14
- * #slot index.indexType
15
- */
16
10
  indexType: {
17
11
  model: import("mobx-state-tree").ISimpleType<string>;
18
12
  type: string;
19
13
  defaultValue: string;
20
14
  };
21
- /**
22
- * #slot index.location
23
- */
24
15
  location: {
25
16
  type: string;
26
17
  defaultValue: {
@@ -29,19 +20,11 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
29
20
  };
30
21
  };
31
22
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
32
- /**
33
- * #slot
34
- */
35
23
  fetchSizeLimit: {
36
24
  type: string;
37
25
  description: string;
38
26
  defaultValue: number;
39
27
  };
40
- /**
41
- * #slot
42
- * generally refers to the reference genome assembly's sequence adapter
43
- * currently needs to be manually added
44
- */
45
28
  sequenceAdapter: {
46
29
  type: string;
47
30
  description: string;
@@ -1,30 +1,17 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  import { types } from 'mobx-state-tree';
3
- /**
4
- * #config BamAdapter
5
- * used to configure BAM adapter
6
- */
7
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
3
+ function x() { }
8
4
  const configSchema = ConfigurationSchema('BamAdapter', {
9
- /**
10
- * #slot
11
- */
12
5
  bamLocation: {
13
6
  type: 'fileLocation',
14
7
  defaultValue: { uri: '/path/to/my.bam', locationType: 'UriLocation' },
15
8
  },
16
9
  index: ConfigurationSchema('BamIndex', {
17
- /**
18
- * #slot index.indexType
19
- */
20
10
  indexType: {
21
11
  model: types.enumeration('IndexType', ['BAI', 'CSI']),
22
12
  type: 'stringEnum',
23
13
  defaultValue: 'BAI',
24
14
  },
25
- /**
26
- * #slot index.location
27
- */
28
15
  location: {
29
16
  type: 'fileLocation',
30
17
  defaultValue: {
@@ -33,19 +20,11 @@ const configSchema = ConfigurationSchema('BamAdapter', {
33
20
  },
34
21
  },
35
22
  }),
36
- /**
37
- * #slot
38
- */
39
23
  fetchSizeLimit: {
40
24
  type: 'number',
41
25
  description: 'size to fetch in bytes over which to display a warning to the user that too much data will be fetched',
42
26
  defaultValue: 5000000,
43
27
  },
44
- /**
45
- * #slot
46
- * generally refers to the reference genome assembly's sequence adapter
47
- * currently needs to be manually added
48
- */
49
28
  sequenceAdapter: {
50
29
  type: 'frozen',
51
30
  description: 'sequence data adapter, used to calculate SNPs when BAM reads lacking MD tags',
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function BamAdapterF(pluginManager: PluginManager): void;
@@ -1,8 +1,10 @@
1
- import { IndexedCramFile, CramRecord } from '@gmod/cram';
2
- import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
- import type { Region, Feature } from '@jbrowse/core/util';
1
+ import { IndexedCramFile } from '@gmod/cram';
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
4
3
  import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
5
- import { FilterBy } from '../shared/types';
4
+ import type { FilterBy } from '../shared/types';
5
+ import type { CramRecord } from '@gmod/cram';
6
+ import type { BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
7
+ import type { Feature, Region } from '@jbrowse/core/util';
6
8
  interface Header {
7
9
  idToName?: string[];
8
10
  nameToId?: Record<string, number>;
@@ -42,11 +44,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
42
44
  bytes: number;
43
45
  fetchSizeLimit: any;
44
46
  }>;
45
- /**
46
- * get the approximate number of bytes queried from the file for the given
47
- * query regions
48
- * @param regions - list of query regions
49
- */
50
47
  private bytesForRegions;
51
48
  }
52
49
  export {};
@@ -1,26 +1,21 @@
1
1
  import { CraiIndex, IndexedCramFile } from '@gmod/cram';
2
- import { toArray } from 'rxjs/operators';
3
- import { firstValueFrom } from 'rxjs';
4
- // jbrowse
5
- import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
6
- import { checkAbortSignal, updateStatus, toLocale } from '@jbrowse/core/util';
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import { toLocale, updateStatus } from '@jbrowse/core/util';
4
+ import QuickLRU from '@jbrowse/core/util/QuickLRU';
7
5
  import { openLocation } from '@jbrowse/core/util/io';
8
6
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
9
- import QuickLRU from '@jbrowse/core/util/QuickLRU';
10
- // locals
7
+ import { checkStopToken } from '@jbrowse/core/util/stopToken';
8
+ import { firstValueFrom } from 'rxjs';
9
+ import { toArray } from 'rxjs/operators';
11
10
  import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
11
+ import { filterReadFlag, filterTagValue } from '../shared/util';
12
12
  export default class CramAdapter extends BaseFeatureDataAdapter {
13
13
  constructor() {
14
14
  super(...arguments);
15
15
  this.samHeader = {};
16
- // used for avoiding re-creation new BamSlightlyLazyFeatures, keeping
17
- // mismatches in cache. at an average of 100kb-300kb, keeping even just 500
18
- // of these in memory is fairly intensive but can reduce recomputation on
19
- // these objects
20
16
  this.ultraLongFeatureCache = new QuickLRU({
21
17
  maxSize: 500,
22
18
  });
23
- // maps a seqId to original refname, passed specially to render args, to a seqid
24
19
  this.seqIdToOriginalRefName = [];
25
20
  }
26
21
  async configurePre() {
@@ -29,7 +24,9 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
29
24
  const pm = this.pluginManager;
30
25
  const cram = new IndexedCramFile({
31
26
  cramFilehandle: openLocation(cramLocation, pm),
32
- index: new CraiIndex({ filehandle: openLocation(craiLocation, pm) }),
27
+ index: new CraiIndex({
28
+ filehandle: openLocation(craiLocation, pm),
29
+ }),
33
30
  seqFetch: (...args) => this.seqFetch(...args),
34
31
  checkSequenceMD5: false,
35
32
  });
@@ -60,7 +57,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
60
57
  return cram.cram.getHeaderText();
61
58
  }
62
59
  async seqFetch(seqId, start, end) {
63
- start -= 1; // convert from 1-based closed to interbase
60
+ start -= 1;
64
61
  const { sequenceAdapter } = await this.configure();
65
62
  const refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
66
63
  if (!refName) {
@@ -98,8 +95,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
98
95
  const conf = await this.configure();
99
96
  const { cram } = conf;
100
97
  const samHeader = await cram.cram.getSamHeader();
101
- // use the @SQ lines in the header to figure out the
102
- // mapping between ref ID numbers and names
103
98
  const idToName = [];
104
99
  const nameToId = {};
105
100
  samHeader
@@ -117,7 +112,10 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
117
112
  .map(rgLine => { var _a; return (_a = rgLine.data.find(item => item.tag === 'ID')) === null || _a === void 0 ? void 0 : _a.value; });
118
113
  const data = { idToName, nameToId, readGroups };
119
114
  this.samHeader = data;
120
- return { samHeader: data, ...conf };
115
+ return {
116
+ samHeader: data,
117
+ ...conf,
118
+ };
121
119
  });
122
120
  }
123
121
  async setup(opts) {
@@ -136,8 +134,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
136
134
  }
137
135
  return samHeader.idToName;
138
136
  }
139
- // use info from the SAM header if possible, but fall back to using
140
- // the ref seq order from when the browser's refseqs were loaded
141
137
  refNameToId(refName) {
142
138
  if (this.samHeader.nameToId) {
143
139
  return this.samHeader.nameToId[refName];
@@ -147,8 +143,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
147
143
  }
148
144
  return undefined;
149
145
  }
150
- // use info from the SAM header if possible, but fall back to using
151
- // the ref seq order from when the browser's refseqs were loaded
152
146
  refIdToName(refId) {
153
147
  var _a, _b;
154
148
  return ((_a = this.samHeader.idToName) === null || _a === void 0 ? void 0 : _a[refId]) || ((_b = this.seqIdToRefName) === null || _b === void 0 ? void 0 : _b[refId]);
@@ -157,7 +151,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
157
151
  return this.seqIdToOriginalRefName[refId];
158
152
  }
159
153
  getFeatures(region, opts) {
160
- const { signal, filterBy, statusCallback = () => { } } = opts || {};
154
+ const { stopToken, filterBy, statusCallback = () => { } } = opts || {};
161
155
  const { refName, start, end, originalRefName } = region;
162
156
  return ObservableCreate(async (observer) => {
163
157
  const { cram, samHeader } = await this.setup(opts);
@@ -171,25 +165,19 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
171
165
  this.seqIdToOriginalRefName[refId] = originalRefName;
172
166
  }
173
167
  const records = await updateStatus('Downloading alignments', statusCallback, () => cram.getRecordsForRange(refId, start, end));
174
- checkAbortSignal(signal);
168
+ checkStopToken(stopToken);
175
169
  await updateStatus('Processing alignments', statusCallback, () => {
176
170
  var _a;
177
171
  const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
178
172
  for (const record of records) {
179
- const flags = record.flags;
180
- if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
173
+ if (filterReadFlag(record.flags, flagInclude, flagExclude)) {
181
174
  continue;
182
175
  }
183
- if (tagFilter) {
184
- const readVal = tagFilter.tag === 'RG'
176
+ if (tagFilter &&
177
+ filterTagValue(tagFilter.tag === 'RG'
185
178
  ? (_a = samHeader.readGroups) === null || _a === void 0 ? void 0 : _a[record.readGroupId]
186
- : record.tags[tagFilter.tag];
187
- const filterVal = tagFilter.value;
188
- if (filterVal === '*'
189
- ? readVal === undefined
190
- : `${readVal}` !== `${filterVal}`) {
191
- continue;
192
- }
179
+ : record.tags[tagFilter.tag], tagFilter.value)) {
180
+ continue;
193
181
  }
194
182
  if (readName && record.readName !== readName) {
195
183
  continue;
@@ -206,13 +194,12 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
206
194
  }
207
195
  observer.complete();
208
196
  });
209
- }, signal);
197
+ }, stopToken);
210
198
  }
211
- freeResources( /* { region } */) { }
199
+ freeResources() { }
212
200
  cramRecordToFeature(record) {
213
201
  return new CramSlightlyLazyFeature(record, this);
214
202
  }
215
- // we return the configured fetchSizeLimit, and the bytes for the region
216
203
  async getMultiRegionFeatureDensityStats(regions, opts) {
217
204
  const bytes = await this.bytesForRegions(regions, opts);
218
205
  const fetchSizeLimit = this.getConf('fetchSizeLimit');
@@ -221,11 +208,6 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
221
208
  fetchSizeLimit,
222
209
  };
223
210
  }
224
- /**
225
- * get the approximate number of bytes queried from the file for the given
226
- * query regions
227
- * @param regions - list of query regions
228
- */
229
211
  async bytesForRegions(regions, _opts) {
230
212
  const { cram } = await this.configure();
231
213
  const blockResults = await Promise.all(regions.map(region => {
@@ -1,6 +1,6 @@
1
- import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util';
2
- import { CramRecord } from '@gmod/cram';
3
- import CramAdapter from './CramAdapter';
1
+ import type CramAdapter from './CramAdapter';
2
+ import type { CramRecord } from '@gmod/cram';
3
+ import type { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util';
4
4
  export default class CramSlightlyLazyFeature implements Feature {
5
5
  private record;
6
6
  private _store;
@@ -1,8 +1,6 @@
1
1
  import { readFeaturesToCIGAR, readFeaturesToMismatches } from './util';
2
2
  import { cacheGetter } from '../shared/util';
3
3
  export default class CramSlightlyLazyFeature {
4
- // uses parameter properties to automatically create fields on the class
5
- // https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
6
4
  constructor(record, _store) {
7
5
  this.record = record;
8
6
  this._store = _store;
@@ -66,7 +64,6 @@ export default class CramSlightlyLazyFeature {
66
64
  get seq() {
67
65
  return this.record.getReadBases();
68
66
  }
69
- // generate a CIGAR, based on code from jkbonfield
70
67
  get CIGAR() {
71
68
  return readFeaturesToCIGAR(this.record.readFeatures, this.record.alignmentStart, this.record.readLength, this.record._refRegion);
72
69
  }
@@ -90,18 +87,6 @@ export default class CramSlightlyLazyFeature {
90
87
  }
91
88
  get mismatches() {
92
89
  return readFeaturesToMismatches(this.record.readFeatures, this.start, this.qualRaw);
93
- // this commented code can try to resolve MD tags, xref https://github.com/galaxyproject/tools-iuc/issues/6523#issuecomment-2462927211 but put on hold
94
- // return this.tags.MD && this.seq
95
- // ? mismatches.concat(
96
- // mdToMismatches(
97
- // this.tags.MD,
98
- // parseCigar(this.CIGAR),
99
- // mismatches,
100
- // this.seq,
101
- // this.qualRaw,
102
- // ),
103
- // )
104
- // : mismatches
105
90
  }
106
91
  get fields() {
107
92
  return {
@@ -126,9 +111,7 @@ export default class CramSlightlyLazyFeature {
126
111
  toJSON() {
127
112
  return {
128
113
  ...this.fields,
129
- // lazy
130
114
  CIGAR: this.CIGAR,
131
- // lazy
132
115
  qual: this.qual,
133
116
  };
134
117
  }
@@ -1,7 +1,7 @@
1
- import { GenericFilehandle } from 'generic-filehandle';
2
- import { Observable } from 'rxjs';
3
- import SimpleFeature from '@jbrowse/core/util/simpleFeature';
4
1
  import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
+ import SimpleFeature from '@jbrowse/core/util/simpleFeature';
3
+ import { Observable } from 'rxjs';
4
+ import type { GenericFilehandle } from 'generic-filehandle2';
5
5
  export declare function parseSmallFasta(text: string): {
6
6
  id: string;
7
7
  description: string;
@@ -1,8 +1,7 @@
1
- import { Observable } from 'rxjs';
2
- import SimpleFeature from '@jbrowse/core/util/simpleFeature';
3
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
4
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
5
- // setup for Cram Adapter Testing
2
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
+ import SimpleFeature from '@jbrowse/core/util/simpleFeature';
4
+ import { Observable } from 'rxjs';
6
5
  export function parseSmallFasta(text) {
7
6
  return text
8
7
  .split('>')
@@ -22,7 +21,8 @@ export function parseSmallFasta(text) {
22
21
  export class FetchableSmallFasta {
23
22
  constructor(filehandle) {
24
23
  this.data = filehandle.readFile().then(buffer => {
25
- const text = buffer.toString('utf8');
24
+ const decoder = new TextDecoder('utf8');
25
+ const text = decoder.decode(buffer);
26
26
  return parseSmallFasta(text);
27
27
  });
28
28
  }
@@ -73,5 +73,5 @@ export class SequenceAdapter extends BaseFeatureDataAdapter {
73
73
  return { unsubscribe: () => { } };
74
74
  });
75
75
  }
76
- freeResources( /* { region } */) { }
76
+ freeResources() { }
77
77
  }
@@ -1,15 +1,9 @@
1
1
  declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot fetchSizeLimit
4
- */
5
2
  fetchSizeLimit: {
6
3
  type: string;
7
4
  description: string;
8
5
  defaultValue: number;
9
6
  };
10
- /**
11
- * #slot cramLocation
12
- */
13
7
  cramLocation: {
14
8
  type: string;
15
9
  defaultValue: {
@@ -17,9 +11,6 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
17
11
  locationType: string;
18
12
  };
19
13
  };
20
- /**
21
- * #slot craiLocation
22
- */
23
14
  craiLocation: {
24
15
  type: string;
25
16
  defaultValue: {
@@ -27,11 +18,6 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
27
18
  locationType: string;
28
19
  };
29
20
  };
30
- /**
31
- * #slot sequenceAdapter
32
- * generally refers to the reference genome assembly's sequence adapter
33
- * currently needs to be manually added
34
- */
35
21
  sequenceAdapter: {
36
22
  type: string;
37
23
  description: string;
@@ -1,21 +1,11 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- /**
3
- * #config CramAdapter
4
- * used to configure CRAM adapter
5
- */
6
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ function x() { }
7
3
  const configSchema = ConfigurationSchema('CramAdapter', {
8
- /**
9
- * #slot fetchSizeLimit
10
- */
11
4
  fetchSizeLimit: {
12
5
  type: 'number',
13
6
  description: 'size in bytes over which to display a warning to the user that too much data will be fetched',
14
7
  defaultValue: 3000000,
15
8
  },
16
- /**
17
- * #slot cramLocation
18
- */
19
9
  cramLocation: {
20
10
  type: 'fileLocation',
21
11
  defaultValue: {
@@ -23,9 +13,6 @@ const configSchema = ConfigurationSchema('CramAdapter', {
23
13
  locationType: 'UriLocation',
24
14
  },
25
15
  },
26
- /**
27
- * #slot craiLocation
28
- */
29
16
  craiLocation: {
30
17
  type: 'fileLocation',
31
18
  defaultValue: {
@@ -33,11 +20,6 @@ const configSchema = ConfigurationSchema('CramAdapter', {
33
20
  locationType: 'UriLocation',
34
21
  },
35
22
  },
36
- /**
37
- * #slot sequenceAdapter
38
- * generally refers to the reference genome assembly's sequence adapter
39
- * currently needs to be manually added
40
- */
41
23
  sequenceAdapter: {
42
24
  type: 'frozen',
43
25
  description: 'sequence data adapter',
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function CramAdapterF(pluginManager: PluginManager): void;
@@ -1,5 +1,4 @@
1
1
  import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
2
- // locals
3
2
  import configSchema from './configSchema';
4
3
  export default function CramAdapterF(pluginManager) {
5
4
  pluginManager.addAdapterType(() => {
@@ -1,5 +1,5 @@
1
- import { CramRecord } from '@gmod/cram';
2
- import { Mismatch } from '../shared/types';
1
+ import type { Mismatch } from '../shared/types';
2
+ import type { CramRecord } from '@gmod/cram';
3
3
  type ReadFeatures = CramRecord['readFeatures'];
4
4
  export declare function readFeaturesToMismatches(readFeatures: ReadFeatures, start: number, qual?: number[] | null): Mismatch[];
5
5
  export declare function readFeaturesToCIGAR(readFeatures: ReadFeatures, alignmentStart: number, readLen: number, refRegion?: {