@jbrowse/plugin-alignments 2.2.1 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsTrack/index.js +1 -0
  4. package/dist/AlignmentsTrack/index.js.map +1 -1
  5. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  6. package/dist/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  7. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  8. package/dist/BamAdapter/index.js +1 -0
  9. package/dist/BamAdapter/index.js.map +1 -1
  10. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  11. package/dist/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  12. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  13. package/dist/CramAdapter/CramTestAdapters.js +2 -1
  14. package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
  15. package/dist/CramAdapter/index.js +1 -0
  16. package/dist/CramAdapter/index.js.map +1 -1
  17. package/dist/GuessAlignmentsTypes/index.d.ts +3 -0
  18. package/dist/GuessAlignmentsTypes/index.js +56 -0
  19. package/dist/GuessAlignmentsTypes/index.js.map +1 -0
  20. package/dist/HtsgetBamAdapter/index.js +11 -11
  21. package/dist/HtsgetBamAdapter/index.js.map +1 -1
  22. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  23. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  24. package/dist/LinearAlignmentsDisplay/index.js +1 -0
  25. package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
  26. package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  27. package/dist/LinearAlignmentsDisplay/models/configSchema.js +2 -3
  28. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  29. package/dist/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  30. package/dist/LinearAlignmentsDisplay/models/model.js +166 -151
  31. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  32. package/dist/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
  33. package/dist/LinearPileupDisplay/components/ColorByModifications.js +7 -22
  34. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  35. package/dist/LinearPileupDisplay/components/ColorByTag.js +2 -22
  36. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  37. package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  38. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +3 -22
  39. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  40. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +2 -18
  41. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  42. package/dist/LinearPileupDisplay/components/SortByTag.js +2 -23
  43. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  44. package/dist/LinearPileupDisplay/configSchema.d.ts +0 -3
  45. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  46. package/dist/LinearPileupDisplay/index.js +2 -0
  47. package/dist/LinearPileupDisplay/index.js.map +1 -1
  48. package/dist/LinearPileupDisplay/model.d.ts +19 -16
  49. package/dist/LinearPileupDisplay/model.js +28 -13
  50. package/dist/LinearPileupDisplay/model.js.map +1 -1
  51. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  52. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +49 -0
  53. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  54. package/dist/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  55. package/dist/LinearReadArcsDisplay/configSchema.js +52 -0
  56. package/dist/LinearReadArcsDisplay/configSchema.js.map +1 -0
  57. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  58. package/dist/LinearReadArcsDisplay/drawFeats.js +162 -0
  59. package/dist/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  60. package/dist/LinearReadArcsDisplay/index.d.ts +2 -0
  61. package/dist/LinearReadArcsDisplay/index.js +27 -0
  62. package/dist/LinearReadArcsDisplay/index.js.map +1 -0
  63. package/dist/LinearReadArcsDisplay/model.d.ts +342 -0
  64. package/dist/LinearReadArcsDisplay/model.js +327 -0
  65. package/dist/LinearReadArcsDisplay/model.js.map +1 -0
  66. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  67. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +49 -0
  68. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  69. package/dist/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  70. package/dist/LinearReadCloudDisplay/configSchema.js +51 -0
  71. package/dist/LinearReadCloudDisplay/configSchema.js.map +1 -0
  72. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  73. package/dist/LinearReadCloudDisplay/drawFeats.js +159 -0
  74. package/dist/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  75. package/dist/LinearReadCloudDisplay/index.d.ts +2 -0
  76. package/dist/LinearReadCloudDisplay/index.js +27 -0
  77. package/dist/LinearReadCloudDisplay/index.js.map +1 -0
  78. package/dist/LinearReadCloudDisplay/model.d.ts +320 -0
  79. package/dist/LinearReadCloudDisplay/model.js +252 -0
  80. package/dist/LinearReadCloudDisplay/model.js.map +1 -0
  81. package/dist/LinearSNPCoverageDisplay/index.js +1 -0
  82. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
  83. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
  84. package/dist/LinearSNPCoverageDisplay/models/model.js +9 -12
  85. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  86. package/dist/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  87. package/dist/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +116 -3
  88. package/dist/MismatchParser/index.js.map +1 -0
  89. package/dist/PileupRPC/base.d.ts +8 -0
  90. package/dist/PileupRPC/base.js +22 -0
  91. package/dist/PileupRPC/base.js.map +1 -0
  92. package/dist/PileupRPC/index.d.ts +3 -0
  93. package/dist/PileupRPC/index.js +9 -0
  94. package/dist/PileupRPC/index.js.map +1 -0
  95. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  96. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +29 -0
  97. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  98. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  99. package/dist/PileupRPC/methods/GetReducedFeatures.js +61 -0
  100. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  101. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  102. package/dist/PileupRPC/methods/GetVisibleModifications.js +32 -0
  103. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  104. package/dist/PileupRPC/rpcMethods.d.ts +4 -34
  105. package/dist/PileupRPC/rpcMethods.js +7 -77
  106. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  107. package/dist/PileupRPC/util.d.ts +8 -0
  108. package/dist/PileupRPC/util.js +20 -0
  109. package/dist/PileupRPC/util.js.map +1 -0
  110. package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
  111. package/dist/PileupRenderer/PileupRenderer.js +5 -5
  112. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  113. package/dist/PileupRenderer/configSchema.js +1 -1
  114. package/dist/PileupRenderer/configSchema.js.map +1 -1
  115. package/dist/PileupRenderer/index.js +1 -0
  116. package/dist/PileupRenderer/index.js.map +1 -1
  117. package/dist/PileupRenderer/sortUtil.d.ts +1 -1
  118. package/dist/PileupRenderer/sortUtil.js +2 -2
  119. package/dist/PileupRenderer/sortUtil.js.map +1 -1
  120. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
  121. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +3 -182
  122. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  123. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
  124. package/dist/SNPCoverageAdapter/generateCoverageBins.js +185 -0
  125. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
  126. package/dist/SNPCoverageAdapter/index.js +1 -3
  127. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  128. package/dist/index.d.ts +2 -2
  129. package/dist/index.js +12 -58
  130. package/dist/index.js.map +1 -1
  131. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  132. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.js +5 -24
  133. package/dist/shared/FilterByTag.js.map +1 -0
  134. package/dist/shared/color.d.ts +17 -0
  135. package/dist/shared/color.js +43 -0
  136. package/dist/shared/color.js.map +1 -0
  137. package/dist/shared/fetchChains.d.ts +27 -0
  138. package/dist/shared/fetchChains.js +30 -0
  139. package/dist/shared/fetchChains.js.map +1 -0
  140. package/dist/shared/index.d.ts +36 -0
  141. package/dist/{shared.js → shared/index.js} +12 -2
  142. package/dist/shared/index.js.map +1 -0
  143. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  144. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  145. package/esm/AlignmentsTrack/index.js +1 -0
  146. package/esm/AlignmentsTrack/index.js.map +1 -1
  147. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  148. package/esm/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  149. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  150. package/esm/BamAdapter/index.js +1 -0
  151. package/esm/BamAdapter/index.js.map +1 -1
  152. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  153. package/esm/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  154. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  155. package/esm/CramAdapter/CramTestAdapters.js +2 -1
  156. package/esm/CramAdapter/CramTestAdapters.js.map +1 -1
  157. package/esm/CramAdapter/index.js +1 -0
  158. package/esm/CramAdapter/index.js.map +1 -1
  159. package/esm/GuessAlignmentsTypes/index.d.ts +3 -0
  160. package/esm/GuessAlignmentsTypes/index.js +54 -0
  161. package/esm/GuessAlignmentsTypes/index.js.map +1 -0
  162. package/esm/HtsgetBamAdapter/index.js +11 -11
  163. package/esm/HtsgetBamAdapter/index.js.map +1 -1
  164. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  165. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  166. package/esm/LinearAlignmentsDisplay/index.js +1 -0
  167. package/esm/LinearAlignmentsDisplay/index.js.map +1 -1
  168. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  169. package/esm/LinearAlignmentsDisplay/models/configSchema.js +2 -4
  170. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  171. package/esm/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  172. package/esm/LinearAlignmentsDisplay/models/model.js +167 -152
  173. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
  174. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +3 -1
  175. package/esm/LinearPileupDisplay/components/ColorByModifications.js +8 -23
  176. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  177. package/esm/LinearPileupDisplay/components/ColorByTag.js +3 -20
  178. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  179. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  180. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +4 -20
  181. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  182. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +3 -16
  183. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  184. package/esm/LinearPileupDisplay/components/SortByTag.js +3 -21
  185. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  186. package/esm/LinearPileupDisplay/configSchema.d.ts +0 -3
  187. package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
  188. package/esm/LinearPileupDisplay/index.js +2 -0
  189. package/esm/LinearPileupDisplay/index.js.map +1 -1
  190. package/esm/LinearPileupDisplay/model.d.ts +19 -16
  191. package/esm/LinearPileupDisplay/model.js +29 -14
  192. package/esm/LinearPileupDisplay/model.js.map +1 -1
  193. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  194. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +44 -0
  195. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  196. package/esm/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  197. package/esm/LinearReadArcsDisplay/configSchema.js +50 -0
  198. package/esm/LinearReadArcsDisplay/configSchema.js.map +1 -0
  199. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  200. package/esm/LinearReadArcsDisplay/drawFeats.js +157 -0
  201. package/esm/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  202. package/esm/LinearReadArcsDisplay/index.d.ts +2 -0
  203. package/esm/LinearReadArcsDisplay/index.js +21 -0
  204. package/esm/LinearReadArcsDisplay/index.js.map +1 -0
  205. package/esm/LinearReadArcsDisplay/model.d.ts +342 -0
  206. package/esm/LinearReadArcsDisplay/model.js +299 -0
  207. package/esm/LinearReadArcsDisplay/model.js.map +1 -0
  208. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  209. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +44 -0
  210. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  211. package/esm/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  212. package/esm/LinearReadCloudDisplay/configSchema.js +49 -0
  213. package/esm/LinearReadCloudDisplay/configSchema.js.map +1 -0
  214. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  215. package/esm/LinearReadCloudDisplay/drawFeats.js +156 -0
  216. package/esm/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  217. package/esm/LinearReadCloudDisplay/index.d.ts +2 -0
  218. package/esm/LinearReadCloudDisplay/index.js +21 -0
  219. package/esm/LinearReadCloudDisplay/index.js.map +1 -0
  220. package/esm/LinearReadCloudDisplay/model.d.ts +320 -0
  221. package/esm/LinearReadCloudDisplay/model.js +224 -0
  222. package/esm/LinearReadCloudDisplay/model.js.map +1 -0
  223. package/esm/LinearSNPCoverageDisplay/index.js +1 -0
  224. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -1
  225. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +22 -19
  226. package/esm/LinearSNPCoverageDisplay/models/model.js +11 -14
  227. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  228. package/esm/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  229. package/esm/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +107 -2
  230. package/esm/MismatchParser/index.js.map +1 -0
  231. package/esm/PileupRPC/base.d.ts +8 -0
  232. package/esm/PileupRPC/base.js +16 -0
  233. package/esm/PileupRPC/base.js.map +1 -0
  234. package/esm/PileupRPC/index.d.ts +3 -0
  235. package/esm/PileupRPC/index.js +7 -0
  236. package/esm/PileupRPC/index.js.map +1 -0
  237. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  238. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +23 -0
  239. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  240. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  241. package/esm/PileupRPC/methods/GetReducedFeatures.js +55 -0
  242. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  243. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  244. package/esm/PileupRPC/methods/GetVisibleModifications.js +26 -0
  245. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  246. package/esm/PileupRPC/rpcMethods.d.ts +4 -34
  247. package/esm/PileupRPC/rpcMethods.js +4 -74
  248. package/esm/PileupRPC/rpcMethods.js.map +1 -1
  249. package/esm/PileupRPC/util.d.ts +8 -0
  250. package/esm/PileupRPC/util.js +15 -0
  251. package/esm/PileupRPC/util.js.map +1 -0
  252. package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
  253. package/esm/PileupRenderer/PileupRenderer.js +5 -5
  254. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  255. package/esm/PileupRenderer/configSchema.js +1 -1
  256. package/esm/PileupRenderer/configSchema.js.map +1 -1
  257. package/esm/PileupRenderer/index.js +1 -0
  258. package/esm/PileupRenderer/index.js.map +1 -1
  259. package/esm/PileupRenderer/sortUtil.d.ts +1 -1
  260. package/esm/PileupRenderer/sortUtil.js +1 -1
  261. package/esm/PileupRenderer/sortUtil.js.map +1 -1
  262. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +0 -51
  263. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -183
  264. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  265. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +53 -0
  266. package/esm/SNPCoverageAdapter/generateCoverageBins.js +182 -0
  267. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +1 -0
  268. package/esm/SNPCoverageAdapter/index.js +1 -3
  269. package/esm/SNPCoverageAdapter/index.js.map +1 -1
  270. package/esm/index.d.ts +2 -2
  271. package/esm/index.js +10 -56
  272. package/esm/index.js.map +1 -1
  273. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  274. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.js +6 -22
  275. package/esm/shared/FilterByTag.js.map +1 -0
  276. package/esm/shared/color.d.ts +17 -0
  277. package/esm/shared/color.js +37 -0
  278. package/esm/shared/color.js.map +1 -0
  279. package/esm/shared/fetchChains.d.ts +27 -0
  280. package/esm/shared/fetchChains.js +26 -0
  281. package/esm/shared/fetchChains.js.map +1 -0
  282. package/esm/shared/index.d.ts +36 -0
  283. package/esm/{shared.js → shared/index.js} +11 -1
  284. package/esm/shared/index.js.map +1 -0
  285. package/package.json +5 -5
  286. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +1 -1
  287. package/src/AlignmentsTrack/index.ts +1 -0
  288. package/src/BamAdapter/BamSlightlyLazyFeature.ts +13 -19
  289. package/src/BamAdapter/index.ts +1 -0
  290. package/src/CramAdapter/CramSlightlyLazyFeature.ts +13 -15
  291. package/src/CramAdapter/CramTestAdapters.ts +1 -0
  292. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -10
  293. package/src/CramAdapter/index.ts +1 -0
  294. package/src/GuessAlignmentsTypes/index.ts +79 -0
  295. package/src/HtsgetBamAdapter/index.ts +11 -15
  296. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +21 -29
  297. package/src/LinearAlignmentsDisplay/index.ts +1 -0
  298. package/src/LinearAlignmentsDisplay/models/configSchema.ts +2 -6
  299. package/src/LinearAlignmentsDisplay/models/model.tsx +238 -199
  300. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +5 -34
  301. package/src/LinearPileupDisplay/components/ColorByTag.tsx +2 -29
  302. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +5 -27
  303. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +2 -24
  304. package/src/LinearPileupDisplay/components/SortByTag.tsx +2 -31
  305. package/src/LinearPileupDisplay/configSchema.ts +1 -3
  306. package/src/LinearPileupDisplay/index.ts +2 -0
  307. package/src/LinearPileupDisplay/model.ts +36 -23
  308. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +86 -0
  309. package/src/LinearReadArcsDisplay/configSchema.ts +58 -0
  310. package/src/LinearReadArcsDisplay/declare.d.ts +1 -0
  311. package/src/LinearReadArcsDisplay/drawFeats.ts +199 -0
  312. package/src/LinearReadArcsDisplay/index.ts +23 -0
  313. package/src/LinearReadArcsDisplay/model.tsx +370 -0
  314. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +86 -0
  315. package/src/LinearReadCloudDisplay/configSchema.ts +57 -0
  316. package/src/LinearReadCloudDisplay/drawFeats.ts +201 -0
  317. package/src/LinearReadCloudDisplay/index.ts +23 -0
  318. package/src/LinearReadCloudDisplay/model.tsx +289 -0
  319. package/src/LinearSNPCoverageDisplay/index.ts +1 -0
  320. package/src/LinearSNPCoverageDisplay/models/model.ts +15 -21
  321. package/src/{BamAdapter/MismatchParser.test.ts → MismatchParser/index.test.ts} +1 -1
  322. package/src/{BamAdapter/MismatchParser.ts → MismatchParser/index.ts} +129 -2
  323. package/src/PileupRPC/base.ts +24 -0
  324. package/src/PileupRPC/index.ts +12 -0
  325. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +41 -0
  326. package/src/PileupRPC/methods/GetReducedFeatures.ts +76 -0
  327. package/src/PileupRPC/methods/GetVisibleModifications.ts +45 -0
  328. package/src/PileupRPC/rpcMethods.ts +8 -113
  329. package/src/PileupRPC/util.ts +19 -0
  330. package/src/PileupRenderer/PileupRenderer.ts +5 -8
  331. package/src/PileupRenderer/configSchema.ts +1 -1
  332. package/src/PileupRenderer/index.ts +1 -0
  333. package/src/PileupRenderer/sortUtil.ts +2 -3
  334. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +5 -249
  335. package/src/SNPCoverageAdapter/generateCoverageBins.ts +245 -0
  336. package/src/SNPCoverageAdapter/index.ts +1 -3
  337. package/src/index.ts +12 -93
  338. package/src/{LinearPileupDisplay/components → shared}/FilterByTag.tsx +5 -31
  339. package/src/shared/color.ts +47 -0
  340. package/src/shared/fetchChains.ts +63 -0
  341. package/src/{shared.ts → shared/index.ts} +17 -4
  342. package/dist/BamAdapter/MismatchParser.js.map +0 -1
  343. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  344. package/dist/shared.d.ts +0 -25
  345. package/dist/shared.js.map +0 -1
  346. package/esm/BamAdapter/MismatchParser.js.map +0 -1
  347. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  348. package/esm/shared.d.ts +0 -25
  349. package/esm/shared.js.map +0 -1
@@ -1,19 +1,13 @@
1
1
  import React, { useState } from 'react';
2
2
  import { observer } from 'mobx-react';
3
- import { Button, Dialog, DialogActions, DialogContent, DialogTitle, IconButton, Link, Paper, TextField, Typography, } from '@mui/material';
3
+ import { Button, DialogActions, DialogContent, Link, Paper, TextField, Typography, } from '@mui/material';
4
+ import { Dialog } from '@jbrowse/core/ui';
4
5
  import { makeStyles } from 'tss-react/mui';
5
- import CloseIcon from '@mui/icons-material/Close';
6
6
  const useStyles = makeStyles()(theme => ({
7
7
  paper: {
8
8
  padding: theme.spacing(2),
9
9
  margin: theme.spacing(2),
10
10
  },
11
- closeButton: {
12
- position: 'absolute',
13
- right: theme.spacing(1),
14
- top: theme.spacing(1),
15
- color: theme.palette.grey[500],
16
- },
17
11
  field: {
18
12
  margin: theme.spacing(2),
19
13
  },
@@ -63,11 +57,7 @@ function FilterByTagDlg(props) {
63
57
  const [readName, setReadName] = useState((filterBy === null || filterBy === void 0 ? void 0 : filterBy.readName) || '');
64
58
  const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/);
65
59
  const site = 'https://broadinstitute.github.io/picard/explain-flags.html';
66
- return (React.createElement(Dialog, { open: true, onClose: handleClose },
67
- React.createElement(DialogTitle, null,
68
- "Filter options",
69
- React.createElement(IconButton, { "aria-label": "close", className: classes.closeButton, onClick: handleClose },
70
- React.createElement(CloseIcon, null))),
60
+ return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Filter options" },
71
61
  React.createElement(DialogContent, null,
72
62
  React.createElement(Typography, null,
73
63
  "Set filter bitmask options. Refer to ",
@@ -84,22 +74,16 @@ function FilterByTagDlg(props) {
84
74
  React.createElement(Bitmask, { flag: flagExclude, setFlag: setFlagExclude })))),
85
75
  React.createElement(Paper, { className: classes.paper, variant: "outlined" },
86
76
  React.createElement(Typography, null, "Filter by tag name and value. Use * in the value field to get all reads containing any value for that tag. Example: filter tag name SA with value * to get all split/supplementary reads. Other examples include HP for haplotype, or RG for read group"),
87
- React.createElement(TextField, { className: classes.field, value: tag, onChange: event => {
88
- setTag(event.target.value);
89
- }, placeholder: "Enter tag name", inputProps: {
77
+ React.createElement(TextField, { className: classes.field, value: tag, onChange: event => setTag(event.target.value), placeholder: "Enter tag name", inputProps: {
90
78
  maxLength: 2,
91
79
  'data-testid': 'color-tag-name-input',
92
80
  }, error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', "data-testid": "color-tag-name" }),
93
- React.createElement(TextField, { className: classes.field, value: tagValue, onChange: event => {
94
- setTagValue(event.target.value);
95
- }, placeholder: "Enter tag value", inputProps: {
81
+ React.createElement(TextField, { className: classes.field, value: tagValue, onChange: event => setTagValue(event.target.value), placeholder: "Enter tag value", inputProps: {
96
82
  'data-testid': 'color-tag-name-input',
97
83
  }, "data-testid": "color-tag-value" })),
98
84
  React.createElement(Paper, { className: classes.paper, variant: "outlined" },
99
85
  React.createElement(Typography, null, "Filter by read name"),
100
- React.createElement(TextField, { className: classes.field, value: readName, onChange: event => {
101
- setReadName(event.target.value);
102
- }, placeholder: "Enter read name", inputProps: {
86
+ React.createElement(TextField, { className: classes.field, value: readName, onChange: event => setReadName(event.target.value), placeholder: "Enter read name", inputProps: {
103
87
  'data-testid': 'color-tag-readname-input',
104
88
  }, "data-testid": "color-tag-readname" })),
105
89
  React.createElement(DialogActions, null,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterByTag.js","sourceRoot":"","sources":["../../src/shared/FilterByTag.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ChainStats } from './fetchChains';
2
+ export declare function getInsertSizeColor(f1: {
3
+ refName: string;
4
+ tlen?: number;
5
+ }, f2: {
6
+ refName: string;
7
+ }, stats?: ChainStats): "" | "red" | "purple" | "#f0f";
8
+ export declare function getInsertSizeAndOrientationColor(f1: {
9
+ refName: string;
10
+ pair_orientation?: string;
11
+ tlen?: number;
12
+ }, f2: {
13
+ refName: string;
14
+ }, stats?: ChainStats): string;
15
+ export declare function getOrientationColor(f: {
16
+ pair_orientation?: string;
17
+ }): string;
@@ -0,0 +1,37 @@
1
+ import { orientationTypes } from '../util';
2
+ const alignmentColoring = {
3
+ color_pair_lr: '#c8c8c8',
4
+ color_pair_rr: 'navy',
5
+ color_pair_rl: 'teal',
6
+ color_pair_ll: 'green',
7
+ };
8
+ export function getInsertSizeColor(f1, f2, stats) {
9
+ const sameRef = f1.refName === f2.refName;
10
+ const tlen = Math.abs(f1.tlen || 0);
11
+ if (sameRef && tlen > ((stats === null || stats === void 0 ? void 0 : stats.upper) || 0)) {
12
+ return 'red';
13
+ }
14
+ else if (sameRef && tlen < ((stats === null || stats === void 0 ? void 0 : stats.lower) || 0)) {
15
+ return '#f0f';
16
+ }
17
+ else if (!sameRef) {
18
+ return 'purple';
19
+ }
20
+ return '';
21
+ }
22
+ export function getInsertSizeAndOrientationColor(f1, f2, stats) {
23
+ return getInsertSizeColor(f1, f2, stats) || getOrientationColor(f1);
24
+ }
25
+ export function getOrientationColor(f) {
26
+ const type = orientationTypes['fr'];
27
+ const orientation = type[f.pair_orientation || ''];
28
+ const map = {
29
+ LR: 'color_pair_lr',
30
+ RR: 'color_pair_rr',
31
+ RL: 'color_pair_rl',
32
+ LL: 'color_pair_ll',
33
+ };
34
+ const val = map[orientation];
35
+ return alignmentColoring[val] || 'grey';
36
+ }
37
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/shared/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG1C,MAAM,iBAAiB,GAA8B;IACnD,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,OAAO;CACvB,CAAA;AAED,MAAM,UAAU,kBAAkB,CAChC,EAAsC,EACtC,EAAuB,EACvB,KAAkB;IAElB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACnC,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,CAAC,CAAC,EAAE;QACzC,OAAO,KAAK,CAAA;KACb;SAAM,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,CAAC,CAAC,EAAE;QAChD,OAAO,MAAM,CAAA;KACd;SAAM,IAAI,CAAC,OAAO,EAAE;QACnB,OAAO,QAAQ,CAAA;KAChB;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,EAAiE,EACjE,EAAuB,EACvB,KAAkB;IAElB,OAAO,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAgC;IAClE,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,eAAe;KACpB,CAAA;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,WAA+B,CAAC,CAAA;IAChD,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;AACzC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { IAnyStateTreeNode } from 'mobx-state-tree';
2
+ export interface ReducedFeature {
3
+ name: string;
4
+ strand: number;
5
+ refName: string;
6
+ start: number;
7
+ end: number;
8
+ id: string;
9
+ flags: number;
10
+ tlen: number;
11
+ pair_orientation: string;
12
+ next_ref?: string;
13
+ next_pos?: number;
14
+ clipPos: number;
15
+ SA?: string;
16
+ }
17
+ export interface ChainStats {
18
+ max: number;
19
+ min: number;
20
+ upper: number;
21
+ lower: number;
22
+ }
23
+ export interface ChainData {
24
+ chains: ReducedFeature[][];
25
+ stats?: ChainStats;
26
+ }
27
+ export declare function fetchChains(self: IAnyStateTreeNode): Promise<void>;
@@ -0,0 +1,26 @@
1
+ import { getContainingTrack, getContainingView, getSession, } from '@jbrowse/core/util';
2
+ import { getSnapshot } from 'mobx-state-tree';
3
+ export async function fetchChains(self) {
4
+ try {
5
+ const { rpcSessionId: sessionId } = getContainingTrack(self);
6
+ const { rpcManager } = getSession(self);
7
+ const view = getContainingView(self);
8
+ if (!view.initialized || self.error) {
9
+ return;
10
+ }
11
+ self.setLoading(true);
12
+ const ret = (await rpcManager.call(sessionId, 'PileupGetReducedFeatures', {
13
+ sessionId,
14
+ regions: view.staticBlocks.contentBlocks,
15
+ filterBy: getSnapshot(self.filterBy),
16
+ adapterConfig: self.adapterConfig,
17
+ }));
18
+ self.setChainData(ret);
19
+ self.setLoading(false);
20
+ }
21
+ catch (e) {
22
+ console.error(e);
23
+ self.setError(e);
24
+ }
25
+ }
26
+ //# sourceMappingURL=fetchChains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchChains.js","sourceRoot":"","sources":["../../src/shared/fetchChains.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,WAAW,EAAqB,MAAM,iBAAiB,CAAA;AAiChE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAuB;IACvD,IAAI;QACF,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAQ,CAAA;QAE3C,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;YACnC,OAAM;SACP;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAErB,MAAM,GAAG,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,EAAE;YACxE,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;YACxC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YACpC,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAc,CAAA;QAEhB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;KACjB;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { IAnyStateTreeNode } from 'mobx-state-tree';
2
+ import { BlockSet } from '@jbrowse/core/util/blockTypes';
3
+ import { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
+ export declare function getUniqueTagValues(self: IAnyStateTreeNode & {
5
+ adapterConfig: AnyConfigurationModel;
6
+ }, colorScheme: {
7
+ type: string;
8
+ tag?: string;
9
+ }, blocks: BlockSet, opts?: {
10
+ headers?: Record<string, string>;
11
+ signal?: AbortSignal;
12
+ filters?: string[];
13
+ }): Promise<string[]>;
14
+ type Track = IAnyStateTreeNode & {
15
+ configuration: AnyConfigurationModel;
16
+ };
17
+ export declare function getUniqueModificationValues(self: IAnyStateTreeNode & {
18
+ parentTrack: Track;
19
+ }, adapterConfig: AnyConfigurationModel, colorScheme: {
20
+ type: string;
21
+ tag?: string;
22
+ }, blocks: BlockSet, opts?: {
23
+ headers?: Record<string, string>;
24
+ signal?: AbortSignal;
25
+ filters?: string[];
26
+ }): Promise<string[]>;
27
+ export declare const FilterModel: import("mobx-state-tree").IModelType<{
28
+ flagInclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
29
+ flagExclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
30
+ readName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
31
+ tagFilter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
32
+ tag: import("mobx-state-tree").ISimpleType<string>;
33
+ value: import("mobx-state-tree").ISimpleType<string>;
34
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
35
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
36
+ export {};
@@ -1,3 +1,4 @@
1
+ import { types } from 'mobx-state-tree';
1
2
  import { getSession } from '@jbrowse/core/util';
2
3
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
3
4
  export async function getUniqueTagValues(self, colorScheme, blocks, opts) {
@@ -25,4 +26,13 @@ export async function getUniqueModificationValues(self, adapterConfig, colorSche
25
26
  });
26
27
  return values;
27
28
  }
28
- //# sourceMappingURL=shared.js.map
29
+ export const FilterModel = types.model({
30
+ flagInclude: types.optional(types.number, 0),
31
+ flagExclude: types.optional(types.number, 1540),
32
+ readName: types.maybe(types.string),
33
+ tagFilter: types.maybe(types.model({
34
+ tag: types.string,
35
+ value: types.string,
36
+ })),
37
+ });
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,iBAAiB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAkE,EAClE,WAA2C,EAC3C,MAAgB,EAChB,IAIC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,eAAe,CAAC,IAAI,CAAC,EACrB,4BAA4B,EAC5B;QACE,aAAa;QACb,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,GAAG,IAAI;KACR,CACF,CAAA;IACD,OAAO,MAAkB,CAAA;AAC3B,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAEC,EACD,aAAoC,EACpC,WAA2C,EAC3C,MAAgB,EAChB,IAIC;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAClC,SAAS,EACT,+BAA+B,EAC/B;QACE,aAAa;QACb,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,SAAS;QACT,OAAO,EAAE,MAAM,CAAC,aAAa;QAC7B,GAAG,IAAI;KACR,CACF,CAAA;IACD,OAAO,MAAkB,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;IACrC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IAC/C,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,KAAK,CAAC,KAAK,CACpB,KAAK,CAAC,KAAK,CAAC;QACV,GAAG,EAAE,KAAK,CAAC,MAAM;QACjB,KAAK,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC,CACH;CACF,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-alignments",
3
- "version": "2.2.1",
3
+ "version": "2.3.0",
4
4
  "description": "JBrowse 2 alignments adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -27,7 +27,7 @@
27
27
  "build": "npm-run-all build:*",
28
28
  "test": "cd ../..; jest plugins/alignments",
29
29
  "prepublishOnly": "yarn test",
30
- "prepack": "yarn build; yarn useDist",
30
+ "prepack": "yarn build && yarn useDist",
31
31
  "postpack": "yarn useSrc",
32
32
  "useDist": "node ../../scripts/useDist.js",
33
33
  "useSrc": "node ../../scripts/useSrc.js",
@@ -40,6 +40,7 @@
40
40
  "@gmod/bam": "^1.1.15",
41
41
  "@gmod/cram": "^1.7.1",
42
42
  "@mui/icons-material": "^5.0.1",
43
+ "canvas2svg": "^1.0.16",
43
44
  "clone": "^2.1.2",
44
45
  "color": "^3.1.2",
45
46
  "copy-to-clipboard": "^3.3.1",
@@ -54,10 +55,9 @@
54
55
  "mobx": "^6.0.0",
55
56
  "mobx-react": "^7.0.0",
56
57
  "mobx-state-tree": "^5.0.0",
57
- "prop-types": "^15.0.0",
58
58
  "react": ">=16.8.0",
59
59
  "rxjs": "^6.0.0",
60
- "tss-react": "^3.0.0"
60
+ "tss-react": "^4.0.0"
61
61
  },
62
62
  "publishConfig": {
63
63
  "access": "public"
@@ -65,5 +65,5 @@
65
65
  "distModule": "esm/index.js",
66
66
  "srcModule": "src/index.ts",
67
67
  "module": "esm/index.js",
68
- "gitHead": "896d175c5d9345049faea8e1155f243c912aac42"
68
+ "gitHead": "a85b280a8af4d1a11e81ab42913f5f6049e6e580"
69
69
  }
@@ -17,7 +17,7 @@ import {
17
17
  BaseCard,
18
18
  SimpleValue,
19
19
  } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
20
- import { parseCigar } from '../BamAdapter/MismatchParser'
20
+ import { parseCigar } from '../MismatchParser'
21
21
 
22
22
  const useStyles = makeStyles()({
23
23
  compact: {
@@ -29,6 +29,7 @@ export default function register(pm: PluginManager) {
29
29
  const configSchema = configSchemaFactory(pm)
30
30
  const track = new TrackType({
31
31
  name: 'AlignmentsTrack',
32
+ displayName: 'Alignments track',
32
33
  configSchema,
33
34
  stateModel: createBaseTrackModel(pm, 'AlignmentsTrack', configSchema),
34
35
  })
@@ -6,7 +6,7 @@ import {
6
6
  import { BamRecord } from '@gmod/bam'
7
7
 
8
8
  // locals
9
- import { getMismatches } from './MismatchParser'
9
+ import { getClip, getMismatches } from '../MismatchParser'
10
10
  import BamAdapter from './BamAdapter'
11
11
 
12
12
  export default class BamSlightlyLazyFeature implements Feature {
@@ -42,23 +42,21 @@ export default class BamSlightlyLazyFeature implements Feature {
42
42
  return this.record.isPaired() ? this.record.getPairOrientation() : undefined
43
43
  }
44
44
 
45
- _get_next_seq_id() {
46
- return this.record._next_refid()
47
- }
48
-
49
- _get_seq_id() {
50
- // @ts-ignore
51
- return this.record._refID
45
+ _get_next_ref() {
46
+ return this.record.isPaired()
47
+ ? this.adapter.refIdToName(this.record._next_refid())
48
+ : undefined
52
49
  }
53
50
 
54
- _get_next_refName() {
55
- return this.adapter.refIdToName(this.record._next_refid())
51
+ _get_next_pos() {
52
+ return this.record.isPaired() ? this.record._next_pos() : undefined
56
53
  }
57
54
 
58
55
  _get_next_segment_position() {
59
- const { record, adapter } = this
60
- return record.isPaired()
61
- ? `${adapter.refIdToName(record._next_refid())}:${record._next_pos() + 1}`
56
+ return this.record.isPaired()
57
+ ? `${this.adapter.refIdToName(this.record._next_refid())}:${
58
+ this.record._next_pos() + 1
59
+ }`
62
60
  : undefined
63
61
  }
64
62
 
@@ -84,9 +82,7 @@ export default class BamSlightlyLazyFeature implements Feature {
84
82
  prop =>
85
83
  prop.startsWith('_get_') &&
86
84
  prop !== '_get_mismatches' &&
87
- prop !== '_get_tags' &&
88
- prop !== '_get_next_seq_id' &&
89
- prop !== '_get_seq_id',
85
+ prop !== '_get_tags',
90
86
  )
91
87
  .map(methodName => methodName.replace('_get_', ''))
92
88
  .concat(this.record._tags()),
@@ -148,8 +144,6 @@ export default class BamSlightlyLazyFeature implements Feature {
148
144
 
149
145
  _get_clipPos() {
150
146
  const cigar = this.get('CIGAR') || ''
151
- return this.get('strand') === -1
152
- ? +(cigar.match(/(\d+)[SH]$/) || [])[1] || 0
153
- : +(cigar.match(/^(\d+)([SH])/) || [])[1] || 0
147
+ return getClip(cigar, this.get('strand'))
154
148
  }
155
149
  }
@@ -6,6 +6,7 @@ export default (pluginManager: PluginManager) => {
6
6
  pluginManager.addAdapterType(() => {
7
7
  return new AdapterType({
8
8
  name: 'BamAdapter',
9
+ displayName: 'BAM adapter',
9
10
  configSchema,
10
11
  getAdapterClass: () => import('./BamAdapter').then(r => r.default),
11
12
  })
@@ -4,8 +4,10 @@ import {
4
4
  SimpleFeatureSerialized,
5
5
  } from '@jbrowse/core/util/simpleFeature'
6
6
  import { CramRecord } from '@gmod/cram'
7
+
8
+ // locals
7
9
  import CramAdapter from './CramAdapter'
8
- import { Mismatch, readFeaturesToCIGAR, readFeaturesToMismatches } from './util'
10
+ import { readFeaturesToCIGAR, readFeaturesToMismatches } from './util'
9
11
 
10
12
  export default class CramSlightlyLazyFeature implements Feature {
11
13
  // uses parameter properties to automatically create fields on the class
@@ -57,12 +59,8 @@ export default class CramSlightlyLazyFeature implements Feature {
57
59
  return this.record.qualityScores
58
60
  }
59
61
 
60
- _get_seq_id() {
61
- return this._store.refIdToName(this.record.sequenceId)
62
- }
63
-
64
62
  _get_refName() {
65
- return this._get_seq_id()
63
+ return this._store.refIdToName(this.record.sequenceId)
66
64
  }
67
65
 
68
66
  _get_is_paired() {
@@ -77,16 +75,12 @@ export default class CramSlightlyLazyFeature implements Feature {
77
75
  return this.record.templateLength || this.record.templateSize
78
76
  }
79
77
 
80
- _get_next_seq_id() {
78
+ _get_next_ref() {
81
79
  return this.record.mate
82
80
  ? this._store.refIdToName(this.record.mate.sequenceId)
83
81
  : undefined
84
82
  }
85
83
 
86
- _get_next_pos() {
87
- return this.record.mate ? this.record.mate.alignmentStart : undefined
88
- }
89
-
90
84
  _get_next_segment_position() {
91
85
  return this.record.mate
92
86
  ? `${this._store.refIdToName(this.record.mate.sequenceId)}:${
@@ -95,6 +89,10 @@ export default class CramSlightlyLazyFeature implements Feature {
95
89
  : undefined
96
90
  }
97
91
 
92
+ _get_next_pos() {
93
+ return this.record.mate?.alignmentStart
94
+ }
95
+
98
96
  _get_tags() {
99
97
  const RG = this._read_group_id()
100
98
  const { tags } = this.record
@@ -141,15 +139,15 @@ export default class CramSlightlyLazyFeature implements Feature {
141
139
  return undefined
142
140
  }
143
141
 
144
- parent(): undefined | Feature {
142
+ parent() {
145
143
  return undefined
146
144
  }
147
145
 
148
- children(): undefined | Feature[] {
146
+ children() {
149
147
  return undefined
150
148
  }
151
149
 
152
- set(): void {}
150
+ set() {}
153
151
 
154
152
  pairedFeature() {
155
153
  return false
@@ -181,7 +179,7 @@ export default class CramSlightlyLazyFeature implements Feature {
181
179
  }
182
180
  }
183
181
 
184
- _get_mismatches(): Mismatch[] {
182
+ _get_mismatches() {
185
183
  const readFeatures = this.record.readFeatures
186
184
  const qual = this.qualRaw()
187
185
  const start = this.get('start')
@@ -89,6 +89,7 @@ export class SequenceAdapter extends BaseFeatureDataAdapter {
89
89
  )
90
90
  observer.complete()
91
91
  })
92
+ .catch(e => observer.error(e))
92
93
  return { unsubscribe: () => {} }
93
94
  })
94
95
  }
@@ -13,7 +13,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
13
13
  "refName": "ctgA",
14
14
  "score": 37,
15
15
  "seq": "TACACTGGTTCGGAGACGGTTCGTGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATGAGCGGCCGCTGACCGGCGGCACGACTAATATAGTGCAAGA",
16
- "seq_id": "ctgA",
17
16
  "start": 5440,
18
17
  "strand": -1,
19
18
  "tags": {
@@ -39,7 +38,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
39
38
  "refName": "ctgA",
40
39
  "score": 37,
41
40
  "seq": "ACACTGGTTCGGAGACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCGGCCCCTGTCCGGCGGCACGAATAATATAGTGCAAGAA",
42
- "seq_id": "ctgA",
43
41
  "start": 5441,
44
42
  "strand": -1,
45
43
  "tags": {
@@ -65,7 +63,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
65
63
  "refName": "ctgA",
66
64
  "score": 37,
67
65
  "seq": "CTGGTTCGGAGACGGTTCATGACGACCGCGCTATATGTCGGCATCTGCGTCGCATGAGCGGCCGCTGTCCGGCGGCTCGAATAATATAGTGCAAGAAAAA",
68
- "seq_id": "ctgA",
69
66
  "start": 5444,
70
67
  "strand": 1,
71
68
  "tags": {
@@ -91,7 +88,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
91
88
  "refName": "ctgA",
92
89
  "score": 37,
93
90
  "seq": "AGACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACT",
94
- "seq_id": "ctgA",
95
91
  "start": 5453,
96
92
  "strand": 1,
97
93
  "tags": {
@@ -117,7 +113,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
117
113
  "refName": "ctgA",
118
114
  "score": 37,
119
115
  "seq": "GACGGTTCATGACGAGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCCGCCGCTGTCCGACGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTA",
120
- "seq_id": "ctgA",
121
116
  "start": 5454,
122
117
  "strand": 1,
123
118
  "tags": {
@@ -143,7 +138,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
143
138
  "refName": "ctgA",
144
139
  "score": 37,
145
140
  "seq": "TTCATGACGAGCGCGCTATATGACGGCATCTGCGCCGCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTT",
146
- "seq_id": "ctgA",
147
141
  "start": 5459,
148
142
  "strand": -1,
149
143
  "tags": {
@@ -169,7 +163,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
169
163
  "refName": "ctgA",
170
164
  "score": 37,
171
165
  "seq": "TCATGACGAGCGCGCTATATGTCGGCATCTGCGCCGCATCAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTA",
172
- "seq_id": "ctgA",
173
166
  "start": 5460,
174
167
  "strand": 1,
175
168
  "tags": {
@@ -195,7 +188,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
195
188
  "refName": "ctgA",
196
189
  "score": 37,
197
190
  "seq": "AGCGCGCTATATGTCGGCATCTGCGCCCCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTATATATGAT",
198
- "seq_id": "ctgA",
199
191
  "start": 5468,
200
192
  "strand": 1,
201
193
  "tags": {
@@ -221,7 +213,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
221
213
  "refName": "ctgA",
222
214
  "score": 37,
223
215
  "seq": "CCCATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCTAAGACTACGGTTATATATGATGGAACGGCCCTCACAGCATTCTCACA",
224
- "seq_id": "ctgA",
225
216
  "start": 5494,
226
217
  "strand": -1,
227
218
  "tags": {
@@ -247,7 +238,6 @@ exports[`adapter can fetch features from volvox-sorted.cram 1`] = `
247
238
  "refName": "ctgA",
248
239
  "score": 37,
249
240
  "seq": "CATGAGCGGCCGCTGTCCGGCGGCACGAATAATATAGTGCAAGAAAAACCGAAGACTACGGTTATATATGATGGAACGGCCCTCACAGCATTGTAACAGG",
250
- "seq_id": "ctgA",
251
241
  "start": 5496,
252
242
  "strand": 1,
253
243
  "tags": {
@@ -8,6 +8,7 @@ export default (pluginManager: PluginManager) => {
8
8
  pluginManager.addAdapterType(() => {
9
9
  return new AdapterType({
10
10
  name: 'CramAdapter',
11
+ displayName: 'CRAM adapter',
11
12
  configSchema,
12
13
  getAdapterClass: () => import('./CramAdapter').then(r => r.default),
13
14
  })
@@ -0,0 +1,79 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager'
2
+ import { FileLocation } from '@jbrowse/core/util/types'
3
+ import {
4
+ makeIndex,
5
+ makeIndexType,
6
+ getFileName,
7
+ AdapterGuesser,
8
+ TrackTypeGuesser,
9
+ } from '@jbrowse/core/util/tracks'
10
+
11
+ export default (pluginManager: PluginManager) => {
12
+ pluginManager.addToExtensionPoint(
13
+ 'Core-guessAdapterForLocation',
14
+ (adapterGuesser: AdapterGuesser) => {
15
+ return (
16
+ file: FileLocation,
17
+ index?: FileLocation,
18
+ adapterHint?: string,
19
+ ) => {
20
+ const regexGuess = /\.cram$/i
21
+ const adapterName = 'CramAdapter'
22
+ const fileName = getFileName(file)
23
+ const obj = {
24
+ type: adapterName,
25
+ cramLocation: file,
26
+ craiLocation: index || makeIndex(file, '.crai'),
27
+ }
28
+ if (regexGuess.test(fileName) && !adapterHint) {
29
+ return obj
30
+ } else if (adapterHint === adapterName) {
31
+ return obj
32
+ }
33
+ return adapterGuesser(file, index, adapterHint)
34
+ }
35
+ },
36
+ )
37
+
38
+ pluginManager.addToExtensionPoint(
39
+ 'Core-guessAdapterForLocation',
40
+ (adapterGuesser: AdapterGuesser) => {
41
+ return (
42
+ file: FileLocation,
43
+ index?: FileLocation,
44
+ adapterHint?: string,
45
+ ) => {
46
+ const regexGuess = /\.bam$/i
47
+ const adapterName = 'BamAdapter'
48
+ const fileName = getFileName(file)
49
+ const indexName = index && getFileName(index)
50
+
51
+ const obj = {
52
+ type: adapterName,
53
+ bamLocation: file,
54
+ index: {
55
+ location: index || makeIndex(file, '.bai'),
56
+ indexType: makeIndexType(indexName, 'CSI', 'BAI'),
57
+ },
58
+ }
59
+ if (regexGuess.test(fileName) && !adapterHint) {
60
+ return obj
61
+ } else if (adapterHint === adapterName) {
62
+ return obj
63
+ }
64
+ return adapterGuesser(file, index, adapterHint)
65
+ }
66
+ },
67
+ )
68
+ pluginManager.addToExtensionPoint(
69
+ 'Core-guessTrackTypeForLocation',
70
+ (trackTypeGuesser: TrackTypeGuesser) => {
71
+ return (adapterName: string) => {
72
+ if (adapterName === 'BamAdapter' || adapterName === 'CramAdapter') {
73
+ return 'AlignmentsTrack'
74
+ }
75
+ return trackTypeGuesser(adapterName)
76
+ }
77
+ },
78
+ )
79
+ }