@jbrowse/plugin-alignments 2.6.1 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +0 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +0 -1
  3. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/index.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/util.js +0 -1
  6. package/dist/AlignmentsTrack/configSchemaF.js +0 -1
  7. package/dist/AlignmentsTrack/index.js +0 -1
  8. package/dist/BamAdapter/BamAdapter.js +0 -1
  9. package/dist/BamAdapter/BamSlightlyLazyFeature.js +0 -1
  10. package/dist/BamAdapter/configSchema.js +0 -1
  11. package/dist/BamAdapter/index.js +0 -1
  12. package/dist/CramAdapter/CramAdapter.js +0 -1
  13. package/dist/CramAdapter/CramSlightlyLazyFeature.js +0 -1
  14. package/dist/CramAdapter/CramTestAdapters.js +0 -1
  15. package/dist/CramAdapter/configSchema.js +0 -1
  16. package/dist/CramAdapter/index.js +0 -1
  17. package/dist/CramAdapter/util.js +0 -1
  18. package/dist/GuessAlignmentsTypes/index.js +0 -1
  19. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +0 -1
  20. package/dist/HtsgetBamAdapter/configSchema.js +0 -1
  21. package/dist/HtsgetBamAdapter/index.js +0 -1
  22. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  23. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +5 -2
  24. package/dist/LinearAlignmentsDisplay/index.js +0 -1
  25. package/dist/LinearAlignmentsDisplay/models/configSchema.js +0 -1
  26. package/dist/LinearAlignmentsDisplay/models/model.js +5 -2
  27. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +492 -0
  28. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +529 -0
  29. package/dist/LinearPileupDisplay/components/ColorByModifications.js +0 -1
  30. package/dist/LinearPileupDisplay/components/ColorByTag.js +0 -1
  31. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  32. package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  33. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  34. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  35. package/dist/LinearPileupDisplay/components/SortByTag.js +0 -1
  36. package/dist/LinearPileupDisplay/configSchema.js +0 -1
  37. package/dist/LinearPileupDisplay/index.d.ts +1 -0
  38. package/dist/LinearPileupDisplay/index.js +3 -2
  39. package/dist/LinearPileupDisplay/model.d.ts +110 -231
  40. package/dist/LinearPileupDisplay/model.js +47 -445
  41. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  42. package/dist/LinearReadArcsDisplay/configSchema.js +0 -1
  43. package/dist/LinearReadArcsDisplay/drawFeats.js +0 -1
  44. package/dist/LinearReadArcsDisplay/index.js +0 -1
  45. package/dist/LinearReadArcsDisplay/model.js +0 -1
  46. package/dist/LinearReadArcsDisplay/util.js +0 -1
  47. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  48. package/dist/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  49. package/dist/LinearReadCloudDisplay/configSchema.js +0 -1
  50. package/dist/LinearReadCloudDisplay/drawFeats.js +0 -1
  51. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  52. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -1
  53. package/dist/LinearReadCloudDisplay/index.js +0 -1
  54. package/dist/LinearReadCloudDisplay/model.d.ts +1 -3
  55. package/dist/LinearReadCloudDisplay/model.js +0 -1
  56. package/dist/LinearReadCloudDisplay/util.js +0 -1
  57. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  58. package/dist/LinearSNPCoverageDisplay/index.js +0 -1
  59. package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  60. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  61. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  62. package/dist/LinearSNPCoverageDisplay/models/model.js +0 -1
  63. package/dist/MismatchParser/index.js +0 -1
  64. package/dist/PileupRPC/base.js +0 -1
  65. package/dist/PileupRPC/index.js +0 -1
  66. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  67. package/dist/PileupRPC/methods/GetReducedFeatures.js +0 -1
  68. package/dist/PileupRPC/methods/GetVisibleModifications.js +0 -1
  69. package/dist/PileupRPC/rpcMethods.js +0 -1
  70. package/dist/PileupRPC/util.js +0 -1
  71. package/dist/PileupRenderer/PileupLayoutSession.js +0 -1
  72. package/dist/PileupRenderer/PileupRenderer.js +0 -1
  73. package/dist/PileupRenderer/colorBy.js +8 -7
  74. package/dist/PileupRenderer/components/PileupRendering.js +0 -1
  75. package/dist/PileupRenderer/configSchema.js +0 -1
  76. package/dist/PileupRenderer/getAlignmentShapeColor.js +0 -1
  77. package/dist/PileupRenderer/index.js +0 -1
  78. package/dist/PileupRenderer/layoutFeature.js +0 -1
  79. package/dist/PileupRenderer/layoutFeatures.js +0 -1
  80. package/dist/PileupRenderer/makeImageData.js +0 -1
  81. package/dist/PileupRenderer/renderAlignment.js +0 -1
  82. package/dist/PileupRenderer/renderAlignmentShape.js +1 -2
  83. package/dist/PileupRenderer/renderMethylation.js +0 -1
  84. package/dist/PileupRenderer/renderMismatches.js +0 -1
  85. package/dist/PileupRenderer/renderModifications.js +0 -1
  86. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  87. package/dist/PileupRenderer/renderPerBaseQuality.js +0 -1
  88. package/dist/PileupRenderer/renderSoftClipping.js +0 -1
  89. package/dist/PileupRenderer/sortUtil.js +0 -1
  90. package/dist/PileupRenderer/util.js +0 -1
  91. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  92. package/dist/SNPCoverageAdapter/configSchema.js +0 -1
  93. package/dist/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  94. package/dist/SNPCoverageAdapter/index.js +0 -1
  95. package/dist/SNPCoverageAdapter/util.js +0 -1
  96. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  97. package/dist/SNPCoverageRenderer/configSchema.js +0 -1
  98. package/dist/SNPCoverageRenderer/index.js +0 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +2 -2
  101. package/dist/shared/BaseDisplayComponent.js +0 -1
  102. package/dist/shared/FilterByTag.js +0 -1
  103. package/dist/shared/afterAttach.js +0 -1
  104. package/dist/shared/color.d.ts +10 -0
  105. package/dist/shared/color.js +7 -2
  106. package/dist/shared/fetchChains.js +0 -1
  107. package/dist/shared/index.js +0 -1
  108. package/dist/shared/renderSvg.js +0 -1
  109. package/dist/shared/util.js +0 -1
  110. package/dist/util.js +0 -1
  111. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +0 -1
  112. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +0 -1
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +0 -1
  114. package/esm/AlignmentsFeatureDetail/index.js +0 -1
  115. package/esm/AlignmentsFeatureDetail/util.js +0 -1
  116. package/esm/AlignmentsTrack/configSchemaF.js +0 -1
  117. package/esm/AlignmentsTrack/index.js +0 -1
  118. package/esm/BamAdapter/BamAdapter.js +0 -1
  119. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -1
  120. package/esm/BamAdapter/configSchema.js +0 -1
  121. package/esm/BamAdapter/index.js +0 -1
  122. package/esm/CramAdapter/CramAdapter.js +0 -1
  123. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -1
  124. package/esm/CramAdapter/CramTestAdapters.js +0 -1
  125. package/esm/CramAdapter/configSchema.js +0 -1
  126. package/esm/CramAdapter/index.js +0 -1
  127. package/esm/CramAdapter/util.js +0 -1
  128. package/esm/GuessAlignmentsTypes/index.js +0 -1
  129. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +0 -1
  130. package/esm/HtsgetBamAdapter/configSchema.js +0 -1
  131. package/esm/HtsgetBamAdapter/index.js +0 -1
  132. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  133. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +5 -2
  134. package/esm/LinearAlignmentsDisplay/index.js +0 -1
  135. package/esm/LinearAlignmentsDisplay/models/configSchema.js +0 -1
  136. package/esm/LinearAlignmentsDisplay/models/model.js +5 -2
  137. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +492 -0
  138. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +499 -0
  139. package/esm/LinearPileupDisplay/components/ColorByModifications.js +0 -1
  140. package/esm/LinearPileupDisplay/components/ColorByTag.js +0 -1
  141. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  142. package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  143. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  144. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  145. package/esm/LinearPileupDisplay/components/SortByTag.js +0 -1
  146. package/esm/LinearPileupDisplay/configSchema.js +0 -1
  147. package/esm/LinearPileupDisplay/index.d.ts +1 -0
  148. package/esm/LinearPileupDisplay/index.js +1 -1
  149. package/esm/LinearPileupDisplay/model.d.ts +110 -231
  150. package/esm/LinearPileupDisplay/model.js +48 -446
  151. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  152. package/esm/LinearReadArcsDisplay/configSchema.js +0 -1
  153. package/esm/LinearReadArcsDisplay/drawFeats.js +0 -1
  154. package/esm/LinearReadArcsDisplay/index.js +0 -1
  155. package/esm/LinearReadArcsDisplay/model.js +0 -1
  156. package/esm/LinearReadArcsDisplay/util.js +0 -1
  157. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  158. package/esm/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  159. package/esm/LinearReadCloudDisplay/configSchema.js +0 -1
  160. package/esm/LinearReadCloudDisplay/drawFeats.js +0 -1
  161. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  162. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -1
  163. package/esm/LinearReadCloudDisplay/index.js +0 -1
  164. package/esm/LinearReadCloudDisplay/model.d.ts +1 -3
  165. package/esm/LinearReadCloudDisplay/model.js +0 -1
  166. package/esm/LinearReadCloudDisplay/util.js +0 -1
  167. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  168. package/esm/LinearSNPCoverageDisplay/index.js +0 -1
  169. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  170. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  171. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  172. package/esm/LinearSNPCoverageDisplay/models/model.js +0 -1
  173. package/esm/MismatchParser/index.js +0 -1
  174. package/esm/PileupRPC/base.js +0 -1
  175. package/esm/PileupRPC/index.js +0 -1
  176. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  177. package/esm/PileupRPC/methods/GetReducedFeatures.js +0 -1
  178. package/esm/PileupRPC/methods/GetVisibleModifications.js +0 -1
  179. package/esm/PileupRPC/rpcMethods.js +0 -1
  180. package/esm/PileupRPC/util.js +0 -1
  181. package/esm/PileupRenderer/PileupLayoutSession.js +0 -1
  182. package/esm/PileupRenderer/PileupRenderer.js +0 -1
  183. package/esm/PileupRenderer/colorBy.js +8 -7
  184. package/esm/PileupRenderer/components/PileupRendering.js +0 -1
  185. package/esm/PileupRenderer/configSchema.js +0 -1
  186. package/esm/PileupRenderer/getAlignmentShapeColor.js +0 -1
  187. package/esm/PileupRenderer/index.js +0 -1
  188. package/esm/PileupRenderer/layoutFeature.js +0 -1
  189. package/esm/PileupRenderer/layoutFeatures.js +0 -1
  190. package/esm/PileupRenderer/makeImageData.js +0 -1
  191. package/esm/PileupRenderer/renderAlignment.js +0 -1
  192. package/esm/PileupRenderer/renderAlignmentShape.js +1 -2
  193. package/esm/PileupRenderer/renderMethylation.js +0 -1
  194. package/esm/PileupRenderer/renderMismatches.js +0 -1
  195. package/esm/PileupRenderer/renderModifications.js +0 -1
  196. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  197. package/esm/PileupRenderer/renderPerBaseQuality.js +0 -1
  198. package/esm/PileupRenderer/renderSoftClipping.js +0 -1
  199. package/esm/PileupRenderer/sortUtil.js +0 -1
  200. package/esm/PileupRenderer/util.js +0 -1
  201. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  202. package/esm/SNPCoverageAdapter/configSchema.js +0 -1
  203. package/esm/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  204. package/esm/SNPCoverageAdapter/index.js +0 -1
  205. package/esm/SNPCoverageAdapter/util.js +0 -1
  206. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  207. package/esm/SNPCoverageRenderer/configSchema.js +0 -1
  208. package/esm/SNPCoverageRenderer/index.js +0 -1
  209. package/esm/index.d.ts +1 -1
  210. package/esm/index.js +1 -2
  211. package/esm/shared/BaseDisplayComponent.js +0 -1
  212. package/esm/shared/FilterByTag.js +0 -1
  213. package/esm/shared/afterAttach.js +0 -1
  214. package/esm/shared/color.d.ts +10 -0
  215. package/esm/shared/color.js +6 -1
  216. package/esm/shared/fetchChains.js +0 -1
  217. package/esm/shared/index.js +0 -1
  218. package/esm/shared/renderSvg.js +0 -1
  219. package/esm/shared/util.js +0 -1
  220. package/esm/util.js +0 -1
  221. package/package.json +4 -5
  222. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  223. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  224. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  225. package/dist/AlignmentsFeatureDetail/index.js.map +0 -1
  226. package/dist/AlignmentsFeatureDetail/util.js.map +0 -1
  227. package/dist/AlignmentsTrack/configSchemaF.js.map +0 -1
  228. package/dist/AlignmentsTrack/index.js.map +0 -1
  229. package/dist/BamAdapter/BamAdapter.js.map +0 -1
  230. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  231. package/dist/BamAdapter/configSchema.js.map +0 -1
  232. package/dist/BamAdapter/index.js.map +0 -1
  233. package/dist/CramAdapter/CramAdapter.js.map +0 -1
  234. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  235. package/dist/CramAdapter/CramTestAdapters.js.map +0 -1
  236. package/dist/CramAdapter/configSchema.js.map +0 -1
  237. package/dist/CramAdapter/index.js.map +0 -1
  238. package/dist/CramAdapter/util.js.map +0 -1
  239. package/dist/GuessAlignmentsTypes/index.js.map +0 -1
  240. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  241. package/dist/HtsgetBamAdapter/configSchema.js.map +0 -1
  242. package/dist/HtsgetBamAdapter/index.js.map +0 -1
  243. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  244. package/dist/LinearAlignmentsDisplay/index.js.map +0 -1
  245. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  246. package/dist/LinearAlignmentsDisplay/models/model.js.map +0 -1
  247. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  248. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  249. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  250. package/dist/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  251. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  252. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  253. package/dist/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  254. package/dist/LinearPileupDisplay/configSchema.js.map +0 -1
  255. package/dist/LinearPileupDisplay/index.js.map +0 -1
  256. package/dist/LinearPileupDisplay/model.js.map +0 -1
  257. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  258. package/dist/LinearReadArcsDisplay/configSchema.js.map +0 -1
  259. package/dist/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  260. package/dist/LinearReadArcsDisplay/index.js.map +0 -1
  261. package/dist/LinearReadArcsDisplay/model.js.map +0 -1
  262. package/dist/LinearReadArcsDisplay/util.js.map +0 -1
  263. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  264. package/dist/LinearReadCloudDisplay/configSchema.js.map +0 -1
  265. package/dist/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  266. package/dist/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  267. package/dist/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  268. package/dist/LinearReadCloudDisplay/index.js.map +0 -1
  269. package/dist/LinearReadCloudDisplay/model.js.map +0 -1
  270. package/dist/LinearReadCloudDisplay/util.js.map +0 -1
  271. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  272. package/dist/LinearSNPCoverageDisplay/index.js.map +0 -1
  273. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  274. package/dist/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  275. package/dist/MismatchParser/index.js.map +0 -1
  276. package/dist/PileupRPC/base.js.map +0 -1
  277. package/dist/PileupRPC/index.js.map +0 -1
  278. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  279. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  280. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  281. package/dist/PileupRPC/rpcMethods.js.map +0 -1
  282. package/dist/PileupRPC/util.js.map +0 -1
  283. package/dist/PileupRenderer/PileupLayoutSession.js.map +0 -1
  284. package/dist/PileupRenderer/PileupRenderer.js.map +0 -1
  285. package/dist/PileupRenderer/colorBy.js.map +0 -1
  286. package/dist/PileupRenderer/components/PileupRendering.js.map +0 -1
  287. package/dist/PileupRenderer/configSchema.js.map +0 -1
  288. package/dist/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  289. package/dist/PileupRenderer/index.js.map +0 -1
  290. package/dist/PileupRenderer/layoutFeature.js.map +0 -1
  291. package/dist/PileupRenderer/layoutFeatures.js.map +0 -1
  292. package/dist/PileupRenderer/makeImageData.js.map +0 -1
  293. package/dist/PileupRenderer/renderAlignment.js.map +0 -1
  294. package/dist/PileupRenderer/renderAlignmentShape.js.map +0 -1
  295. package/dist/PileupRenderer/renderMethylation.js.map +0 -1
  296. package/dist/PileupRenderer/renderMismatches.js.map +0 -1
  297. package/dist/PileupRenderer/renderModifications.js.map +0 -1
  298. package/dist/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  299. package/dist/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  300. package/dist/PileupRenderer/renderSoftClipping.js.map +0 -1
  301. package/dist/PileupRenderer/sortUtil.js.map +0 -1
  302. package/dist/PileupRenderer/util.js.map +0 -1
  303. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  304. package/dist/SNPCoverageAdapter/configSchema.js.map +0 -1
  305. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  306. package/dist/SNPCoverageAdapter/index.js.map +0 -1
  307. package/dist/SNPCoverageAdapter/util.js.map +0 -1
  308. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  309. package/dist/SNPCoverageRenderer/configSchema.js.map +0 -1
  310. package/dist/SNPCoverageRenderer/index.js.map +0 -1
  311. package/dist/index.js.map +0 -1
  312. package/dist/shared/BaseDisplayComponent.js.map +0 -1
  313. package/dist/shared/FilterByTag.js.map +0 -1
  314. package/dist/shared/afterAttach.js.map +0 -1
  315. package/dist/shared/color.js.map +0 -1
  316. package/dist/shared/fetchChains.js.map +0 -1
  317. package/dist/shared/index.js.map +0 -1
  318. package/dist/shared/renderSvg.js.map +0 -1
  319. package/dist/shared/util.js.map +0 -1
  320. package/dist/util.js.map +0 -1
  321. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  322. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  323. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  324. package/esm/AlignmentsFeatureDetail/index.js.map +0 -1
  325. package/esm/AlignmentsFeatureDetail/util.js.map +0 -1
  326. package/esm/AlignmentsTrack/configSchemaF.js.map +0 -1
  327. package/esm/AlignmentsTrack/index.js.map +0 -1
  328. package/esm/BamAdapter/BamAdapter.js.map +0 -1
  329. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  330. package/esm/BamAdapter/configSchema.js.map +0 -1
  331. package/esm/BamAdapter/index.js.map +0 -1
  332. package/esm/CramAdapter/CramAdapter.js.map +0 -1
  333. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  334. package/esm/CramAdapter/CramTestAdapters.js.map +0 -1
  335. package/esm/CramAdapter/configSchema.js.map +0 -1
  336. package/esm/CramAdapter/index.js.map +0 -1
  337. package/esm/CramAdapter/util.js.map +0 -1
  338. package/esm/GuessAlignmentsTypes/index.js.map +0 -1
  339. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  340. package/esm/HtsgetBamAdapter/configSchema.js.map +0 -1
  341. package/esm/HtsgetBamAdapter/index.js.map +0 -1
  342. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  343. package/esm/LinearAlignmentsDisplay/index.js.map +0 -1
  344. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  345. package/esm/LinearAlignmentsDisplay/models/model.js.map +0 -1
  346. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  347. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  348. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  349. package/esm/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  350. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  351. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  352. package/esm/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  353. package/esm/LinearPileupDisplay/configSchema.js.map +0 -1
  354. package/esm/LinearPileupDisplay/index.js.map +0 -1
  355. package/esm/LinearPileupDisplay/model.js.map +0 -1
  356. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  357. package/esm/LinearReadArcsDisplay/configSchema.js.map +0 -1
  358. package/esm/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  359. package/esm/LinearReadArcsDisplay/index.js.map +0 -1
  360. package/esm/LinearReadArcsDisplay/model.js.map +0 -1
  361. package/esm/LinearReadArcsDisplay/util.js.map +0 -1
  362. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  363. package/esm/LinearReadCloudDisplay/configSchema.js.map +0 -1
  364. package/esm/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  365. package/esm/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  366. package/esm/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  367. package/esm/LinearReadCloudDisplay/index.js.map +0 -1
  368. package/esm/LinearReadCloudDisplay/model.js.map +0 -1
  369. package/esm/LinearReadCloudDisplay/util.js.map +0 -1
  370. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  371. package/esm/LinearSNPCoverageDisplay/index.js.map +0 -1
  372. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  373. package/esm/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  374. package/esm/MismatchParser/index.js.map +0 -1
  375. package/esm/PileupRPC/base.js.map +0 -1
  376. package/esm/PileupRPC/index.js.map +0 -1
  377. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  378. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  379. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  380. package/esm/PileupRPC/rpcMethods.js.map +0 -1
  381. package/esm/PileupRPC/util.js.map +0 -1
  382. package/esm/PileupRenderer/PileupLayoutSession.js.map +0 -1
  383. package/esm/PileupRenderer/PileupRenderer.js.map +0 -1
  384. package/esm/PileupRenderer/colorBy.js.map +0 -1
  385. package/esm/PileupRenderer/components/PileupRendering.js.map +0 -1
  386. package/esm/PileupRenderer/configSchema.js.map +0 -1
  387. package/esm/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  388. package/esm/PileupRenderer/index.js.map +0 -1
  389. package/esm/PileupRenderer/layoutFeature.js.map +0 -1
  390. package/esm/PileupRenderer/layoutFeatures.js.map +0 -1
  391. package/esm/PileupRenderer/makeImageData.js.map +0 -1
  392. package/esm/PileupRenderer/renderAlignment.js.map +0 -1
  393. package/esm/PileupRenderer/renderAlignmentShape.js.map +0 -1
  394. package/esm/PileupRenderer/renderMethylation.js.map +0 -1
  395. package/esm/PileupRenderer/renderMismatches.js.map +0 -1
  396. package/esm/PileupRenderer/renderModifications.js.map +0 -1
  397. package/esm/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  398. package/esm/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  399. package/esm/PileupRenderer/renderSoftClipping.js.map +0 -1
  400. package/esm/PileupRenderer/sortUtil.js.map +0 -1
  401. package/esm/PileupRenderer/util.js.map +0 -1
  402. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  403. package/esm/SNPCoverageAdapter/configSchema.js.map +0 -1
  404. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  405. package/esm/SNPCoverageAdapter/index.js.map +0 -1
  406. package/esm/SNPCoverageAdapter/util.js.map +0 -1
  407. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  408. package/esm/SNPCoverageRenderer/configSchema.js.map +0 -1
  409. package/esm/SNPCoverageRenderer/index.js.map +0 -1
  410. package/esm/index.js.map +0 -1
  411. package/esm/shared/BaseDisplayComponent.js.map +0 -1
  412. package/esm/shared/FilterByTag.js.map +0 -1
  413. package/esm/shared/afterAttach.js.map +0 -1
  414. package/esm/shared/color.js.map +0 -1
  415. package/esm/shared/fetchChains.js.map +0 -1
  416. package/esm/shared/index.js.map +0 -1
  417. package/esm/shared/renderSvg.js.map +0 -1
  418. package/esm/shared/util.js.map +0 -1
  419. package/esm/util.js.map +0 -1
  420. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +0 -155
  421. package/src/AlignmentsFeatureDetail/AlignmentsFeatureFlags.tsx +0 -60
  422. package/src/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.tsx +0 -51
  423. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.tsx.snap +0 -327
  424. package/src/AlignmentsFeatureDetail/index.test.tsx +0 -47
  425. package/src/AlignmentsFeatureDetail/index.ts +0 -33
  426. package/src/AlignmentsFeatureDetail/util.ts +0 -27
  427. package/src/AlignmentsTrack/configSchemaF.ts +0 -22
  428. package/src/AlignmentsTrack/index.ts +0 -22
  429. package/src/BamAdapter/BamAdapter.test.ts +0 -124
  430. package/src/BamAdapter/BamAdapter.ts +0 -251
  431. package/src/BamAdapter/BamSlightlyLazyFeature.ts +0 -149
  432. package/src/BamAdapter/__snapshots__/BamAdapter.test.ts.snap +0 -1105
  433. package/src/BamAdapter/configSchema.ts +0 -65
  434. package/src/BamAdapter/index.ts +0 -14
  435. package/src/CombinationTest.test.ts +0 -108
  436. package/src/CramAdapter/CramAdapter.test.ts +0 -85
  437. package/src/CramAdapter/CramAdapter.ts +0 -323
  438. package/src/CramAdapter/CramSlightlyLazyFeature.ts +0 -185
  439. package/src/CramAdapter/CramTestAdapters.ts +0 -98
  440. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -256
  441. package/src/CramAdapter/__snapshots__/util.test.ts.snap +0 -14
  442. package/src/CramAdapter/configSchema.ts +0 -57
  443. package/src/CramAdapter/index.ts +0 -16
  444. package/src/CramAdapter/util.test.ts +0 -26
  445. package/src/CramAdapter/util.ts +0 -251
  446. package/src/GuessAlignmentsTypes/index.ts +0 -79
  447. package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +0 -24
  448. package/src/HtsgetBamAdapter/configSchema.ts +0 -40
  449. package/src/HtsgetBamAdapter/index.ts +0 -17
  450. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +0 -52
  451. package/src/LinearAlignmentsDisplay/index.ts +0 -21
  452. package/src/LinearAlignmentsDisplay/models/configSchema.test.ts +0 -60
  453. package/src/LinearAlignmentsDisplay/models/configSchema.ts +0 -41
  454. package/src/LinearAlignmentsDisplay/models/model.tsx +0 -403
  455. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +0 -102
  456. package/src/LinearPileupDisplay/components/ColorByTag.tsx +0 -61
  457. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +0 -32
  458. package/src/LinearPileupDisplay/components/ModificationsTable.tsx +0 -38
  459. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +0 -82
  460. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +0 -71
  461. package/src/LinearPileupDisplay/components/SortByTag.tsx +0 -64
  462. package/src/LinearPileupDisplay/configSchema.test.js +0 -55
  463. package/src/LinearPileupDisplay/configSchema.ts +0 -67
  464. package/src/LinearPileupDisplay/index.ts +0 -24
  465. package/src/LinearPileupDisplay/model.ts +0 -884
  466. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +0 -50
  467. package/src/LinearReadArcsDisplay/configSchema.ts +0 -68
  468. package/src/LinearReadArcsDisplay/declare.d.ts +0 -1
  469. package/src/LinearReadArcsDisplay/drawFeats.ts +0 -210
  470. package/src/LinearReadArcsDisplay/index.ts +0 -23
  471. package/src/LinearReadArcsDisplay/model.tsx +0 -355
  472. package/src/LinearReadArcsDisplay/util.ts +0 -10
  473. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +0 -48
  474. package/src/LinearReadCloudDisplay/configSchema.ts +0 -57
  475. package/src/LinearReadCloudDisplay/drawFeats.ts +0 -35
  476. package/src/LinearReadCloudDisplay/drawLongReadChains.ts +0 -85
  477. package/src/LinearReadCloudDisplay/drawPairChains.ts +0 -139
  478. package/src/LinearReadCloudDisplay/index.ts +0 -23
  479. package/src/LinearReadCloudDisplay/model.tsx +0 -246
  480. package/src/LinearReadCloudDisplay/util.ts +0 -47
  481. package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +0 -128
  482. package/src/LinearSNPCoverageDisplay/index.ts +0 -20
  483. package/src/LinearSNPCoverageDisplay/models/configSchema.test.ts +0 -35
  484. package/src/LinearSNPCoverageDisplay/models/configSchema.ts +0 -82
  485. package/src/LinearSNPCoverageDisplay/models/model.ts +0 -336
  486. package/src/MismatchParser/index.test.ts +0 -283
  487. package/src/MismatchParser/index.ts +0 -508
  488. package/src/PileupRPC/base.ts +0 -24
  489. package/src/PileupRPC/index.ts +0 -12
  490. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +0 -44
  491. package/src/PileupRPC/methods/GetReducedFeatures.ts +0 -67
  492. package/src/PileupRPC/methods/GetVisibleModifications.ts +0 -45
  493. package/src/PileupRPC/rpcMethods.ts +0 -3
  494. package/src/PileupRPC/util.ts +0 -19
  495. package/src/PileupRenderer/PileupLayoutSession.ts +0 -64
  496. package/src/PileupRenderer/PileupRenderer.ts +0 -142
  497. package/src/PileupRenderer/colorBy.ts +0 -74
  498. package/src/PileupRenderer/components/PileupRendering.tsx +0 -209
  499. package/src/PileupRenderer/configSchema.ts +0 -108
  500. package/src/PileupRenderer/getAlignmentShapeColor.ts +0 -87
  501. package/src/PileupRenderer/index.ts +0 -16
  502. package/src/PileupRenderer/layoutFeature.ts +0 -83
  503. package/src/PileupRenderer/layoutFeatures.ts +0 -44
  504. package/src/PileupRenderer/makeImageData.ts +0 -93
  505. package/src/PileupRenderer/renderAlignment.ts +0 -97
  506. package/src/PileupRenderer/renderAlignmentShape.ts +0 -45
  507. package/src/PileupRenderer/renderMethylation.ts +0 -75
  508. package/src/PileupRenderer/renderMismatches.ts +0 -206
  509. package/src/PileupRenderer/renderModifications.ts +0 -74
  510. package/src/PileupRenderer/renderPerBaseLettering.ts +0 -67
  511. package/src/PileupRenderer/renderPerBaseQuality.ts +0 -46
  512. package/src/PileupRenderer/renderSoftClipping.ts +0 -78
  513. package/src/PileupRenderer/sortUtil.ts +0 -107
  514. package/src/PileupRenderer/util.ts +0 -63
  515. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +0 -111
  516. package/src/SNPCoverageAdapter/configSchema.ts +0 -23
  517. package/src/SNPCoverageAdapter/generateCoverageBins.ts +0 -259
  518. package/src/SNPCoverageAdapter/index.ts +0 -18
  519. package/src/SNPCoverageAdapter/util.ts +0 -33
  520. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +0 -270
  521. package/src/SNPCoverageRenderer/configSchema.ts +0 -64
  522. package/src/SNPCoverageRenderer/index.ts +0 -17
  523. package/src/__snapshots__/index.test.ts.snap +0 -3
  524. package/src/index.test.ts +0 -17
  525. package/src/index.ts +0 -48
  526. package/src/shared/BaseDisplayComponent.tsx +0 -83
  527. package/src/shared/FilterByTag.tsx +0 -187
  528. package/src/shared/afterAttach.tsx +0 -66
  529. package/src/shared/color.ts +0 -86
  530. package/src/shared/fetchChains.ts +0 -62
  531. package/src/shared/index.ts +0 -75
  532. package/src/shared/renderSvg.tsx +0 -64
  533. package/src/shared/util.ts +0 -10
  534. package/src/util.ts +0 -154
@@ -1,508 +0,0 @@
1
- import { revcom, Feature } from '@jbrowse/core/util'
2
- import { getTagAlt } from '../util'
3
-
4
- export interface Mismatch {
5
- qual?: number
6
- start: number
7
- length: number
8
- type: string
9
- base: string
10
- altbase?: string
11
- seq?: string
12
- cliplen?: number
13
- }
14
- const mdRegex = new RegExp(/(\d+|\^[a-z]+|[a-z])/gi)
15
- const modificationRegex = new RegExp(/([A-Z])([-+])([^,.?]+)([.?])?/)
16
- const cigarRegex = new RegExp(/([MIDNSHPX=])/)
17
- const startClip = new RegExp(/(\d+)[SH]$/)
18
- const endClip = new RegExp(/^(\d+)([SH])/)
19
-
20
- export function parseCigar(cigar = '') {
21
- return cigar.split(cigarRegex).slice(0, -1)
22
- }
23
-
24
- export function cigarToMismatches(
25
- ops: string[],
26
- seq?: string,
27
- ref?: string,
28
- qual?: Buffer,
29
- ) {
30
- let roffset = 0 // reference offset
31
- let soffset = 0 // seq offset
32
- const mismatches: Mismatch[] = []
33
- const hasRefAndSeq = ref && seq
34
- for (let i = 0; i < ops.length; i += 2) {
35
- const len = +ops[i]
36
- const op = ops[i + 1]
37
-
38
- if (op === 'M' || op === '=' || op === 'E') {
39
- if (hasRefAndSeq) {
40
- for (let j = 0; j < len; j++) {
41
- if (
42
- // @ts-ignore in the full yarn build of the repo, this says that object is possibly undefined for some reason, ignored
43
- seq[soffset + j].toUpperCase() !== ref[roffset + j].toUpperCase()
44
- ) {
45
- mismatches.push({
46
- start: roffset + j,
47
- type: 'mismatch',
48
- base: seq[soffset + j],
49
- altbase: ref[roffset + j],
50
- length: 1,
51
- })
52
- }
53
- }
54
- }
55
- soffset += len
56
- }
57
- if (op === 'I') {
58
- mismatches.push({
59
- start: roffset,
60
- type: 'insertion',
61
- base: `${len}`,
62
- length: 0,
63
- })
64
- soffset += len
65
- } else if (op === 'D') {
66
- mismatches.push({
67
- start: roffset,
68
- type: 'deletion',
69
- base: '*',
70
- length: len,
71
- })
72
- } else if (op === 'N') {
73
- mismatches.push({
74
- start: roffset,
75
- type: 'skip',
76
- base: 'N',
77
- length: len,
78
- })
79
- } else if (op === 'X') {
80
- const r = seq?.slice(soffset, soffset + len) || []
81
- const q = qual?.slice(soffset, soffset + len) || []
82
-
83
- for (let j = 0; j < len; j++) {
84
- mismatches.push({
85
- start: roffset + j,
86
- type: 'mismatch',
87
- base: r[j],
88
- qual: q[j],
89
- length: 1,
90
- })
91
- }
92
- soffset += len
93
- } else if (op === 'H') {
94
- mismatches.push({
95
- start: roffset,
96
- type: 'hardclip',
97
- base: `H${len}`,
98
- cliplen: len,
99
- length: 1,
100
- })
101
- } else if (op === 'S') {
102
- mismatches.push({
103
- start: roffset,
104
- type: 'softclip',
105
- base: `S${len}`,
106
- cliplen: len,
107
- length: 1,
108
- })
109
- soffset += len
110
- }
111
-
112
- if (op !== 'I' && op !== 'S' && op !== 'H') {
113
- roffset += len
114
- }
115
- }
116
- return mismatches
117
- }
118
-
119
- /**
120
- * parse a SAM MD tag to find mismatching bases of the template versus the
121
- * reference @returns array of mismatches and their positions
122
- */
123
- export function mdToMismatches(
124
- mdstring: string,
125
- ops: string[],
126
- cigarMismatches: Mismatch[],
127
- seq: string,
128
- qual?: Buffer,
129
- ) {
130
- let curr: Mismatch = { start: 0, base: '', length: 0, type: 'mismatch' }
131
- let lastCigar = 0
132
- let lastTemplateOffset = 0
133
- let lastRefOffset = 0
134
- let lastSkipPos = 0
135
- const mismatchRecords: Mismatch[] = []
136
- const skips = cigarMismatches.filter(cigar => cigar.type === 'skip')
137
-
138
- // convert a position on the reference sequence to a position
139
- // on the template sequence, taking into account hard and soft
140
- // clipping of reads
141
-
142
- function nextRecord(): void {
143
- mismatchRecords.push(curr)
144
-
145
- // get a new mismatch record ready
146
- curr = {
147
- start: curr.start + curr.length,
148
- length: 0,
149
- base: '',
150
- type: 'mismatch',
151
- }
152
- }
153
-
154
- function getTemplateCoordLocal(refCoord: number): number {
155
- let templateOffset = lastTemplateOffset
156
- let refOffset = lastRefOffset
157
- for (
158
- let i = lastCigar;
159
- i < ops.length && refOffset <= refCoord;
160
- i += 2, lastCigar = i
161
- ) {
162
- const len = +ops[i]
163
- const op = ops[i + 1]
164
-
165
- if (op === 'S' || op === 'I') {
166
- templateOffset += len
167
- } else if (op === 'D' || op === 'P' || op === 'N') {
168
- refOffset += len
169
- } else if (op !== 'H') {
170
- templateOffset += len
171
- refOffset += len
172
- }
173
- }
174
- lastTemplateOffset = templateOffset
175
- lastRefOffset = refOffset
176
-
177
- return templateOffset - (refOffset - refCoord)
178
- }
179
-
180
- // now actually parse the MD string
181
- const md = mdstring.match(mdRegex) || []
182
- for (let i = 0; i < md.length; i++) {
183
- const token = md[i]
184
- const num = +token
185
- if (!Number.isNaN(num)) {
186
- curr.start += num
187
- } else if (token.startsWith('^')) {
188
- curr.start += token.length - 1
189
- } else {
190
- // mismatch
191
- for (let j = 0; j < token.length; j += 1) {
192
- curr.length = 1
193
-
194
- while (lastSkipPos < skips.length) {
195
- const mismatch = skips[lastSkipPos]
196
- if (curr.start >= mismatch.start) {
197
- curr.start += mismatch.length
198
- lastSkipPos++
199
- } else {
200
- break
201
- }
202
- }
203
- const s = getTemplateCoordLocal(curr.start)
204
- curr.base = seq[s] || 'X'
205
- curr.qual = qual?.[s]
206
- curr.altbase = token
207
- nextRecord()
208
- }
209
- }
210
- }
211
- return mismatchRecords
212
- }
213
-
214
- export function getMismatches(
215
- cigar: string,
216
- md?: string,
217
- seq?: string,
218
- ref?: string,
219
- qual?: Buffer,
220
- ) {
221
- let mismatches: Mismatch[] = []
222
- const ops = parseCigar(cigar)
223
-
224
- // parse the CIGAR tag if it has one
225
- if (cigar) {
226
- mismatches = mismatches.concat(cigarToMismatches(ops, seq, ref, qual))
227
- }
228
-
229
- // now let's look for CRAM or MD mismatches
230
- if (md && seq) {
231
- mismatches = mismatches.concat(
232
- mdToMismatches(md, ops, mismatches, seq, qual),
233
- )
234
- }
235
-
236
- return mismatches
237
- }
238
- // get relative reference sequence positions for positions given relative to
239
- // the read sequence
240
- export function* getNextRefPos(cigarOps: string[], positions: number[]) {
241
- let readPos = 0
242
- let refPos = 0
243
- let currPos = 0
244
-
245
- for (let i = 0; i < cigarOps.length && currPos < positions.length; i += 2) {
246
- const len = +cigarOps[i]
247
- const op = cigarOps[i + 1]
248
- if (op === 'S' || op === 'I') {
249
- for (let i = 0; i < len && currPos < positions.length; i++) {
250
- if (positions[currPos] === readPos + i) {
251
- currPos++
252
- }
253
- }
254
- readPos += len
255
- } else if (op === 'D' || op === 'N') {
256
- refPos += len
257
- } else if (op === 'M' || op === 'X' || op === '=') {
258
- for (let i = 0; i < len && currPos < positions.length; i++) {
259
- if (positions[currPos] === readPos + i) {
260
- yield refPos + i
261
- currPos++
262
- }
263
- }
264
- readPos += len
265
- refPos += len
266
- }
267
- }
268
- }
269
-
270
- export function getModificationProbabilities(feature: Feature) {
271
- const m = (getTagAlt(feature, 'ML', 'Ml') as number[] | string) || []
272
- return m
273
- ? (typeof m === 'string' ? m.split(',').map(e => +e) : m).map(e => e / 255)
274
- : (getTagAlt(feature, 'MP', 'Mp') as string | undefined)
275
- ?.split('')
276
- .map(s => s.charCodeAt(0) - 33)
277
- .map(elt => Math.min(1, elt / 50))
278
- }
279
-
280
- export function getMethBins(feature: Feature) {
281
- const fstart = feature.get('start')
282
- const fend = feature.get('end')
283
- const fstrand = feature.get('strand') as -1 | 0 | 1
284
- const flen = fend - fstart
285
- const mm = (getTagAlt(feature, 'MM', 'Mm') as string | undefined) || ''
286
- const methBins = new Array<number>(flen)
287
- const methProbs = new Array<number>(flen)
288
- const seq = feature.get('seq') as string | undefined
289
- if (seq) {
290
- const ops = parseCigar(feature.get('CIGAR'))
291
- const probabilities = getModificationProbabilities(feature)
292
- const modifications = getModificationPositions(mm, seq, fstrand)
293
- let probIndex = 0
294
- for (const { type, positions } of modifications) {
295
- if (type === 'm') {
296
- for (const ref of getNextRefPos(ops, positions)) {
297
- const prob = probabilities?.[probIndex] || 0
298
- probIndex++
299
- if (ref >= 0 && ref < flen) {
300
- methBins[ref] = 1
301
- methProbs[ref] = prob
302
- }
303
- }
304
- }
305
- }
306
- }
307
- return { methBins, methProbs }
308
- }
309
-
310
- export function getModificationPositions(
311
- mm: string,
312
- fseq: string,
313
- fstrand: number,
314
- ) {
315
- const seq = fstrand === -1 ? revcom(fseq) : fseq
316
- const mods = mm.split(';').filter(mod => !!mod)
317
- const result = []
318
- for (let i = 0; i < mods.length; i++) {
319
- const mod = mods[i]
320
- const [basemod, ...skips] = mod.split(',')
321
-
322
- // regexes based on parse_mm.pl from hts-specs
323
- const matches = basemod.match(modificationRegex)
324
- if (!matches) {
325
- throw new Error('bad format for MM tag')
326
- }
327
- const [, base, strand, typestr] = matches
328
-
329
- // can be a multi e.g. C+mh for both meth (m) and hydroxymeth (h) so
330
- // split, and they can also be chemical codes (ChEBI) e.g. C+16061
331
- const types = typestr.split(/(\d+|.)/).filter(f => !!f)
332
-
333
- if (strand === '-') {
334
- console.warn('unsupported negative strand modifications')
335
- // make sure to return a somewhat matching type even in this case
336
- result.push({ type: 'unsupported', positions: [] as number[] })
337
- }
338
-
339
- // this logic also based on parse_mm.pl from hts-specs is that in the
340
- // sequence of the read, if we have a modification type e.g. C+m;2 and a
341
- // sequence ACGTACGTAC we skip the two instances of C and go to the last
342
- // C
343
- for (let j = 0; j < types.length; j++) {
344
- const type = types[j]
345
- let i = 0
346
- const positions = []
347
- for (let k = 0; k < skips.length; k++) {
348
- let delta = +skips[k]
349
- do {
350
- if (base === 'N' || base === seq[i]) {
351
- delta--
352
- }
353
- i++
354
- } while (delta >= 0 && i < seq.length)
355
-
356
- const temp = i - 1
357
- positions.push(fstrand === -1 ? seq.length - 1 - temp : temp)
358
- }
359
- if (fstrand === -1) {
360
- positions.sort((a, b) => a - b)
361
- }
362
- result.push({
363
- type,
364
- positions,
365
- })
366
- }
367
- }
368
- return result
369
- }
370
-
371
- export function getModificationTypes(mm: string) {
372
- return mm
373
- .split(';')
374
- .filter(mod => !!mod)
375
- .flatMap(mod => {
376
- const [basemod] = mod.split(',')
377
-
378
- const matches = basemod.match(modificationRegex)
379
- if (!matches) {
380
- throw new Error(`bad format for MM tag: ${mm}`)
381
- }
382
- const typestr = matches[3]
383
-
384
- // can be a multi e.g. C+mh for both meth (m) and hydroxymeth (h) so
385
- // split, and they can also be chemical codes (ChEBI) e.g. C+16061
386
- return typestr.split(/(\d+|.)/).filter(f => !!f)
387
- })
388
- }
389
-
390
- export function getOrientedCigar(flip: boolean, cigar: string[]) {
391
- if (flip) {
392
- const ret = []
393
- for (let i = 0; i < cigar.length; i += 2) {
394
- const len = cigar[i]
395
- let op = cigar[i + 1]
396
- if (op === 'D') {
397
- op = 'I'
398
- } else if (op === 'I') {
399
- op = 'D'
400
- }
401
- ret.push(len, op)
402
- }
403
- return ret
404
- } else {
405
- return cigar
406
- }
407
- }
408
-
409
- export function getOrientedMismatches(flip: boolean, cigar: string) {
410
- const p = parseCigar(cigar)
411
- return cigarToMismatches(flip ? getOrientedCigar(flip, p) : p)
412
- }
413
-
414
- export function getLengthOnRef(cigar: string) {
415
- const cigarOps = parseCigar(cigar)
416
- let lengthOnRef = 0
417
- for (let i = 0; i < cigarOps.length; i += 2) {
418
- const len = +cigarOps[i]
419
- const op = cigarOps[i + 1]
420
- if (op !== 'H' && op !== 'S' && op !== 'I') {
421
- lengthOnRef += len
422
- }
423
- }
424
- return lengthOnRef
425
- }
426
-
427
- export function getLength(cigar: string) {
428
- const cigarOps = parseCigar(cigar)
429
- let length = 0
430
- for (let i = 0; i < cigarOps.length; i += 2) {
431
- const len = +cigarOps[i]
432
- const op = cigarOps[i + 1]
433
- if (op !== 'D' && op !== 'N') {
434
- length += len
435
- }
436
- }
437
- return length
438
- }
439
-
440
- export function getLengthSansClipping(cigar: string) {
441
- const cigarOps = parseCigar(cigar)
442
- let length = 0
443
- for (let i = 0; i < cigarOps.length; i += 2) {
444
- const len = +cigarOps[i]
445
- const op = cigarOps[i + 1]
446
- if (op !== 'H' && op !== 'S' && op !== 'D' && op !== 'N') {
447
- length += len
448
- }
449
- }
450
- return length
451
- }
452
-
453
- export function getClip(cigar: string, strand: number) {
454
- return strand === -1
455
- ? +(cigar.match(startClip) || [])[1] || 0
456
- : +(cigar.match(endClip) || [])[1] || 0
457
- }
458
-
459
- export function getTag(f: Feature, tag: string) {
460
- const tags = f.get('tags')
461
- return tags ? tags[tag] : f.get(tag)
462
- }
463
-
464
- // produces a list of "feature-like" object from parsing supplementary
465
- // alignments in the SA tag
466
- //
467
- // @param normalize - used specifically in the linear-read-vs-ref context, it
468
- // flips features around relative to the original feature. other contexts of
469
- // usage can keep this false
470
- export function featurizeSA(
471
- SA: string | undefined,
472
- id: string,
473
- strand: number,
474
- readName: string,
475
- normalize?: boolean,
476
- ) {
477
- return (
478
- SA?.split(';')
479
- .filter(aln => !!aln)
480
- .map((aln, index) => {
481
- const [saRef, saStart, saStrand, saCigar] = aln.split(',')
482
- const saLengthOnRef = getLengthOnRef(saCigar)
483
- const saLength = getLength(saCigar)
484
- const saLengthSansClipping = getLengthSansClipping(saCigar)
485
- const saStrandNormalized = saStrand === '-' ? -1 : 1
486
- const saClipPos = getClip(
487
- saCigar,
488
- (normalize ? strand : 1) * saStrandNormalized,
489
- )
490
- const saRealStart = +saStart - 1
491
- return {
492
- refName: saRef,
493
- start: saRealStart,
494
- end: saRealStart + saLengthOnRef,
495
- seqLength: saLength,
496
- clipPos: saClipPos,
497
- CIGAR: saCigar,
498
- strand: (normalize ? strand : 1) * saStrandNormalized,
499
- uniqueId: `${id}_SA${index}`,
500
- mate: {
501
- start: saClipPos,
502
- end: saClipPos + saLengthSansClipping,
503
- refName: readName,
504
- },
505
- }
506
- }) || []
507
- )
508
- }
@@ -1,24 +0,0 @@
1
- import RpcMethodType from '@jbrowse/core/pluggableElementTypes/RpcMethodType'
2
- import { renameRegionsIfNeeded } from '@jbrowse/core/util'
3
- import { RenderArgs } from '@jbrowse/core/rpc/coreRpcMethods'
4
-
5
- // specialized get features to return limited data about alignments
6
- export default abstract class PileupBaseRPC extends RpcMethodType {
7
- async serializeArguments(
8
- args: RenderArgs & {
9
- signal?: AbortSignal
10
- statusCallback?: (arg: string) => void
11
- },
12
- rpcDriver: string,
13
- ) {
14
- const { rootModel } = this.pluginManager
15
- const assemblyManager = rootModel?.session?.assemblyManager
16
- if (!assemblyManager) {
17
- throw new Error('no assembly manager available')
18
- }
19
-
20
- const renamedArgs = await renameRegionsIfNeeded(assemblyManager, args)
21
-
22
- return super.serializeArguments(renamedArgs, rpcDriver)
23
- }
24
- }
@@ -1,12 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import {
3
- PileupGetGlobalValueForTag,
4
- PileupGetVisibleModifications,
5
- PileupGetReducedFeatures,
6
- } from './rpcMethods'
7
-
8
- export default (pm: PluginManager) => {
9
- pm.addRpcMethod(() => new PileupGetGlobalValueForTag(pm))
10
- pm.addRpcMethod(() => new PileupGetVisibleModifications(pm))
11
- pm.addRpcMethod(() => new PileupGetReducedFeatures(pm))
12
- }
@@ -1,44 +0,0 @@
1
- import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
2
- import { Region } from '@jbrowse/core/util'
3
- import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
4
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
5
- import { toArray } from 'rxjs/operators'
6
- import { firstValueFrom } from 'rxjs'
7
-
8
- // locals
9
- import PileupBaseRPC from '../base'
10
- import { getTag } from '../../util'
11
-
12
- export default class PileupGetGlobalValueForTag extends PileupBaseRPC {
13
- name = 'PileupGetGlobalValueForTag'
14
-
15
- async execute(
16
- args: {
17
- adapterConfig: {}
18
- signal?: RemoteAbortSignal
19
- headers?: Record<string, string>
20
- regions: Region[]
21
- sessionId: string
22
- tag: string
23
- },
24
- rpcDriver: string,
25
- ) {
26
- const { adapterConfig, sessionId, regions, tag } =
27
- await this.deserializeArguments(args, rpcDriver)
28
-
29
- const dataAdapter = (
30
- await getAdapter(this.pluginManager, sessionId, adapterConfig)
31
- ).dataAdapter as BaseFeatureDataAdapter
32
-
33
- const features = dataAdapter.getFeaturesInMultipleRegions(regions)
34
- const featuresArray = await firstValueFrom(features.pipe(toArray()))
35
- return [
36
- ...new Set(
37
- featuresArray
38
- .map(feature => getTag(feature, tag))
39
- .filter(f => f !== undefined)
40
- .map(f => `${f}`),
41
- ),
42
- ]
43
- }
44
- }
@@ -1,67 +0,0 @@
1
- import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
2
- import { Region, dedupe, groupBy } from '@jbrowse/core/util'
3
- import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
4
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
5
- import { toArray } from 'rxjs/operators'
6
- import { firstValueFrom } from 'rxjs'
7
- // locals
8
- import { filterForPairs, getInsertSizeStats } from '../util'
9
- import PileupBaseRPC from '../base'
10
- import { getTag } from '../../util'
11
-
12
- // specialized get features to return limited data about alignments
13
- export default class PileupGetReducedFeatures extends PileupBaseRPC {
14
- name = 'PileupGetReducedFeatures'
15
-
16
- async execute(
17
- args: {
18
- adapterConfig: {}
19
- signal?: RemoteAbortSignal
20
- headers?: Record<string, string>
21
- regions: Region[]
22
- sessionId: string
23
- tag: string
24
- },
25
- rpcDriver: string,
26
- ) {
27
- const des = await this.deserializeArguments(args, rpcDriver)
28
- const { adapterConfig, sessionId, regions } = des
29
- const dataAdapter = (
30
- await getAdapter(this.pluginManager, sessionId, adapterConfig)
31
- ).dataAdapter as BaseFeatureDataAdapter
32
-
33
- const featuresArray = await firstValueFrom(
34
- dataAdapter.getFeaturesInMultipleRegions(regions, des).pipe(toArray()),
35
- )
36
-
37
- const reduced = dedupe(
38
- featuresArray.map(f => ({
39
- id: f.id(),
40
- refName: f.get('refName'),
41
- name: f.get('name'),
42
- start: f.get('start'),
43
- strand: f.get('strand'),
44
- end: f.get('end'),
45
- flags: f.get('flags'),
46
- tlen: f.get('template_length'),
47
- pair_orientation: f.get('pair_orientation'),
48
- next_ref: f.get('next_ref'),
49
- next_pos: f.get('next_pos'),
50
- clipPos: f.get('clipPos'),
51
- SA: getTag(f, 'SA'),
52
- })),
53
- f => f.id,
54
- )
55
-
56
- const filtered = filterForPairs(reduced)
57
- const stats = filtered.length ? getInsertSizeStats(filtered) : undefined
58
- const chains = groupBy(reduced, f => f.name)
59
-
60
- return {
61
- chains: Object.values(chains),
62
- stats,
63
- hasPaired: !!stats,
64
- containsNoTransferables: true,
65
- }
66
- }
67
- }
@@ -1,45 +0,0 @@
1
- import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache'
2
- import { RemoteAbortSignal } from '@jbrowse/core/rpc/remoteAbortSignals'
3
- import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
4
- import { Region } from '@jbrowse/core/util'
5
- import { toArray } from 'rxjs/operators'
6
- import { firstValueFrom } from 'rxjs'
7
-
8
- // locals
9
- import { getModificationTypes } from '../../MismatchParser'
10
- import PileupBaseRPC from '../base'
11
- import { getTagAlt } from '../../util'
12
-
13
- export default class PileupGetVisibleModifications extends PileupBaseRPC {
14
- name = 'PileupGetVisibleModifications'
15
-
16
- async execute(
17
- args: {
18
- adapterConfig: {}
19
- signal?: RemoteAbortSignal
20
- headers?: Record<string, string>
21
- regions: Region[]
22
- sessionId: string
23
- tag: string
24
- },
25
- rpcDriver: string,
26
- ) {
27
- const { adapterConfig, sessionId, regions } =
28
- await this.deserializeArguments(args, rpcDriver)
29
- const dataAdapter = (
30
- await getAdapter(this.pluginManager, sessionId, adapterConfig)
31
- ).dataAdapter as BaseFeatureDataAdapter
32
-
33
- const featuresArray = await firstValueFrom(
34
- dataAdapter.getFeaturesInMultipleRegions(regions).pipe(toArray()),
35
- )
36
-
37
- const uniqueValues = new Set<string>()
38
- featuresArray.forEach(f => {
39
- getModificationTypes(getTagAlt(f, 'MM', 'Mm') || '').forEach(t =>
40
- uniqueValues.add(t),
41
- )
42
- })
43
- return [...uniqueValues]
44
- }
45
- }
@@ -1,3 +0,0 @@
1
- export { default as PileupGetReducedFeatures } from './methods/GetReducedFeatures'
2
- export { default as PileupGetVisibleModifications } from './methods/GetVisibleModifications'
3
- export { default as PileupGetGlobalValueForTag } from './methods/GetGlobalValueForTag'