@jbrowse/plugin-alignments 2.6.1 → 2.6.2

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 (524) 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/components/ColorByModifications.js +0 -1
  28. package/dist/LinearPileupDisplay/components/ColorByTag.js +0 -1
  29. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  30. package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  31. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  32. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  33. package/dist/LinearPileupDisplay/components/SortByTag.js +0 -1
  34. package/dist/LinearPileupDisplay/configSchema.js +0 -1
  35. package/dist/LinearPileupDisplay/index.js +0 -1
  36. package/dist/LinearPileupDisplay/model.d.ts +18 -26
  37. package/dist/LinearPileupDisplay/model.js +2 -3
  38. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  39. package/dist/LinearReadArcsDisplay/configSchema.js +0 -1
  40. package/dist/LinearReadArcsDisplay/drawFeats.js +0 -1
  41. package/dist/LinearReadArcsDisplay/index.js +0 -1
  42. package/dist/LinearReadArcsDisplay/model.js +0 -1
  43. package/dist/LinearReadArcsDisplay/util.js +0 -1
  44. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  45. package/dist/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  46. package/dist/LinearReadCloudDisplay/configSchema.js +0 -1
  47. package/dist/LinearReadCloudDisplay/drawFeats.js +0 -1
  48. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  49. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -1
  50. package/dist/LinearReadCloudDisplay/index.js +0 -1
  51. package/dist/LinearReadCloudDisplay/model.d.ts +1 -3
  52. package/dist/LinearReadCloudDisplay/model.js +0 -1
  53. package/dist/LinearReadCloudDisplay/util.js +0 -1
  54. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  55. package/dist/LinearSNPCoverageDisplay/index.js +0 -1
  56. package/dist/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  57. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  58. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  59. package/dist/LinearSNPCoverageDisplay/models/model.js +0 -1
  60. package/dist/MismatchParser/index.js +0 -1
  61. package/dist/PileupRPC/base.js +0 -1
  62. package/dist/PileupRPC/index.js +0 -1
  63. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  64. package/dist/PileupRPC/methods/GetReducedFeatures.js +0 -1
  65. package/dist/PileupRPC/methods/GetVisibleModifications.js +0 -1
  66. package/dist/PileupRPC/rpcMethods.js +0 -1
  67. package/dist/PileupRPC/util.js +0 -1
  68. package/dist/PileupRenderer/PileupLayoutSession.js +0 -1
  69. package/dist/PileupRenderer/PileupRenderer.js +0 -1
  70. package/dist/PileupRenderer/colorBy.js +8 -7
  71. package/dist/PileupRenderer/components/PileupRendering.js +0 -1
  72. package/dist/PileupRenderer/configSchema.js +0 -1
  73. package/dist/PileupRenderer/getAlignmentShapeColor.js +0 -1
  74. package/dist/PileupRenderer/index.js +0 -1
  75. package/dist/PileupRenderer/layoutFeature.js +0 -1
  76. package/dist/PileupRenderer/layoutFeatures.js +0 -1
  77. package/dist/PileupRenderer/makeImageData.js +0 -1
  78. package/dist/PileupRenderer/renderAlignment.js +0 -1
  79. package/dist/PileupRenderer/renderAlignmentShape.js +1 -2
  80. package/dist/PileupRenderer/renderMethylation.js +0 -1
  81. package/dist/PileupRenderer/renderMismatches.js +0 -1
  82. package/dist/PileupRenderer/renderModifications.js +0 -1
  83. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  84. package/dist/PileupRenderer/renderPerBaseQuality.js +0 -1
  85. package/dist/PileupRenderer/renderSoftClipping.js +0 -1
  86. package/dist/PileupRenderer/sortUtil.js +0 -1
  87. package/dist/PileupRenderer/util.js +0 -1
  88. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  89. package/dist/SNPCoverageAdapter/configSchema.js +0 -1
  90. package/dist/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  91. package/dist/SNPCoverageAdapter/index.js +0 -1
  92. package/dist/SNPCoverageAdapter/util.js +0 -1
  93. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  94. package/dist/SNPCoverageRenderer/configSchema.js +0 -1
  95. package/dist/SNPCoverageRenderer/index.js +0 -1
  96. package/dist/index.js +0 -1
  97. package/dist/shared/BaseDisplayComponent.js +0 -1
  98. package/dist/shared/FilterByTag.js +0 -1
  99. package/dist/shared/afterAttach.js +0 -1
  100. package/dist/shared/color.js +0 -1
  101. package/dist/shared/fetchChains.js +0 -1
  102. package/dist/shared/index.js +0 -1
  103. package/dist/shared/renderSvg.js +0 -1
  104. package/dist/shared/util.js +0 -1
  105. package/dist/util.js +0 -1
  106. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +0 -1
  107. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js +0 -1
  108. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js +0 -1
  109. package/esm/AlignmentsFeatureDetail/index.js +0 -1
  110. package/esm/AlignmentsFeatureDetail/util.js +0 -1
  111. package/esm/AlignmentsTrack/configSchemaF.js +0 -1
  112. package/esm/AlignmentsTrack/index.js +0 -1
  113. package/esm/BamAdapter/BamAdapter.js +0 -1
  114. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -1
  115. package/esm/BamAdapter/configSchema.js +0 -1
  116. package/esm/BamAdapter/index.js +0 -1
  117. package/esm/CramAdapter/CramAdapter.js +0 -1
  118. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -1
  119. package/esm/CramAdapter/CramTestAdapters.js +0 -1
  120. package/esm/CramAdapter/configSchema.js +0 -1
  121. package/esm/CramAdapter/index.js +0 -1
  122. package/esm/CramAdapter/util.js +0 -1
  123. package/esm/GuessAlignmentsTypes/index.js +0 -1
  124. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +0 -1
  125. package/esm/HtsgetBamAdapter/configSchema.js +0 -1
  126. package/esm/HtsgetBamAdapter/index.js +0 -1
  127. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  128. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +5 -2
  129. package/esm/LinearAlignmentsDisplay/index.js +0 -1
  130. package/esm/LinearAlignmentsDisplay/models/configSchema.js +0 -1
  131. package/esm/LinearAlignmentsDisplay/models/model.js +5 -2
  132. package/esm/LinearPileupDisplay/components/ColorByModifications.js +0 -1
  133. package/esm/LinearPileupDisplay/components/ColorByTag.js +0 -1
  134. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +0 -1
  135. package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -1
  136. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +0 -1
  137. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +0 -1
  138. package/esm/LinearPileupDisplay/components/SortByTag.js +0 -1
  139. package/esm/LinearPileupDisplay/configSchema.js +0 -1
  140. package/esm/LinearPileupDisplay/index.js +0 -1
  141. package/esm/LinearPileupDisplay/model.d.ts +18 -26
  142. package/esm/LinearPileupDisplay/model.js +2 -3
  143. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +0 -1
  144. package/esm/LinearReadArcsDisplay/configSchema.js +0 -1
  145. package/esm/LinearReadArcsDisplay/drawFeats.js +0 -1
  146. package/esm/LinearReadArcsDisplay/index.js +0 -1
  147. package/esm/LinearReadArcsDisplay/model.js +0 -1
  148. package/esm/LinearReadArcsDisplay/util.js +0 -1
  149. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +0 -1
  150. package/esm/LinearReadCloudDisplay/configSchema.d.ts +4 -4
  151. package/esm/LinearReadCloudDisplay/configSchema.js +0 -1
  152. package/esm/LinearReadCloudDisplay/drawFeats.js +0 -1
  153. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +0 -1
  154. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -1
  155. package/esm/LinearReadCloudDisplay/index.js +0 -1
  156. package/esm/LinearReadCloudDisplay/model.d.ts +1 -3
  157. package/esm/LinearReadCloudDisplay/model.js +0 -1
  158. package/esm/LinearReadCloudDisplay/util.js +0 -1
  159. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +0 -1
  160. package/esm/LinearSNPCoverageDisplay/index.js +0 -1
  161. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +3 -0
  162. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +0 -1
  163. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +31 -15
  164. package/esm/LinearSNPCoverageDisplay/models/model.js +0 -1
  165. package/esm/MismatchParser/index.js +0 -1
  166. package/esm/PileupRPC/base.js +0 -1
  167. package/esm/PileupRPC/index.js +0 -1
  168. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +0 -1
  169. package/esm/PileupRPC/methods/GetReducedFeatures.js +0 -1
  170. package/esm/PileupRPC/methods/GetVisibleModifications.js +0 -1
  171. package/esm/PileupRPC/rpcMethods.js +0 -1
  172. package/esm/PileupRPC/util.js +0 -1
  173. package/esm/PileupRenderer/PileupLayoutSession.js +0 -1
  174. package/esm/PileupRenderer/PileupRenderer.js +0 -1
  175. package/esm/PileupRenderer/colorBy.js +8 -7
  176. package/esm/PileupRenderer/components/PileupRendering.js +0 -1
  177. package/esm/PileupRenderer/configSchema.js +0 -1
  178. package/esm/PileupRenderer/getAlignmentShapeColor.js +0 -1
  179. package/esm/PileupRenderer/index.js +0 -1
  180. package/esm/PileupRenderer/layoutFeature.js +0 -1
  181. package/esm/PileupRenderer/layoutFeatures.js +0 -1
  182. package/esm/PileupRenderer/makeImageData.js +0 -1
  183. package/esm/PileupRenderer/renderAlignment.js +0 -1
  184. package/esm/PileupRenderer/renderAlignmentShape.js +1 -2
  185. package/esm/PileupRenderer/renderMethylation.js +0 -1
  186. package/esm/PileupRenderer/renderMismatches.js +0 -1
  187. package/esm/PileupRenderer/renderModifications.js +0 -1
  188. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  189. package/esm/PileupRenderer/renderPerBaseQuality.js +0 -1
  190. package/esm/PileupRenderer/renderSoftClipping.js +0 -1
  191. package/esm/PileupRenderer/sortUtil.js +0 -1
  192. package/esm/PileupRenderer/util.js +0 -1
  193. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +0 -1
  194. package/esm/SNPCoverageAdapter/configSchema.js +0 -1
  195. package/esm/SNPCoverageAdapter/generateCoverageBins.js +0 -1
  196. package/esm/SNPCoverageAdapter/index.js +0 -1
  197. package/esm/SNPCoverageAdapter/util.js +0 -1
  198. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  199. package/esm/SNPCoverageRenderer/configSchema.js +0 -1
  200. package/esm/SNPCoverageRenderer/index.js +0 -1
  201. package/esm/index.js +0 -1
  202. package/esm/shared/BaseDisplayComponent.js +0 -1
  203. package/esm/shared/FilterByTag.js +0 -1
  204. package/esm/shared/afterAttach.js +0 -1
  205. package/esm/shared/color.js +0 -1
  206. package/esm/shared/fetchChains.js +0 -1
  207. package/esm/shared/index.js +0 -1
  208. package/esm/shared/renderSvg.js +0 -1
  209. package/esm/shared/util.js +0 -1
  210. package/esm/util.js +0 -1
  211. package/package.json +4 -5
  212. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  213. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  214. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  215. package/dist/AlignmentsFeatureDetail/index.js.map +0 -1
  216. package/dist/AlignmentsFeatureDetail/util.js.map +0 -1
  217. package/dist/AlignmentsTrack/configSchemaF.js.map +0 -1
  218. package/dist/AlignmentsTrack/index.js.map +0 -1
  219. package/dist/BamAdapter/BamAdapter.js.map +0 -1
  220. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  221. package/dist/BamAdapter/configSchema.js.map +0 -1
  222. package/dist/BamAdapter/index.js.map +0 -1
  223. package/dist/CramAdapter/CramAdapter.js.map +0 -1
  224. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  225. package/dist/CramAdapter/CramTestAdapters.js.map +0 -1
  226. package/dist/CramAdapter/configSchema.js.map +0 -1
  227. package/dist/CramAdapter/index.js.map +0 -1
  228. package/dist/CramAdapter/util.js.map +0 -1
  229. package/dist/GuessAlignmentsTypes/index.js.map +0 -1
  230. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  231. package/dist/HtsgetBamAdapter/configSchema.js.map +0 -1
  232. package/dist/HtsgetBamAdapter/index.js.map +0 -1
  233. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  234. package/dist/LinearAlignmentsDisplay/index.js.map +0 -1
  235. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  236. package/dist/LinearAlignmentsDisplay/models/model.js.map +0 -1
  237. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  238. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  239. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  240. package/dist/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  241. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  242. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  243. package/dist/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  244. package/dist/LinearPileupDisplay/configSchema.js.map +0 -1
  245. package/dist/LinearPileupDisplay/index.js.map +0 -1
  246. package/dist/LinearPileupDisplay/model.js.map +0 -1
  247. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  248. package/dist/LinearReadArcsDisplay/configSchema.js.map +0 -1
  249. package/dist/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  250. package/dist/LinearReadArcsDisplay/index.js.map +0 -1
  251. package/dist/LinearReadArcsDisplay/model.js.map +0 -1
  252. package/dist/LinearReadArcsDisplay/util.js.map +0 -1
  253. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  254. package/dist/LinearReadCloudDisplay/configSchema.js.map +0 -1
  255. package/dist/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  256. package/dist/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  257. package/dist/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  258. package/dist/LinearReadCloudDisplay/index.js.map +0 -1
  259. package/dist/LinearReadCloudDisplay/model.js.map +0 -1
  260. package/dist/LinearReadCloudDisplay/util.js.map +0 -1
  261. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  262. package/dist/LinearSNPCoverageDisplay/index.js.map +0 -1
  263. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  264. package/dist/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  265. package/dist/MismatchParser/index.js.map +0 -1
  266. package/dist/PileupRPC/base.js.map +0 -1
  267. package/dist/PileupRPC/index.js.map +0 -1
  268. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  269. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  270. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  271. package/dist/PileupRPC/rpcMethods.js.map +0 -1
  272. package/dist/PileupRPC/util.js.map +0 -1
  273. package/dist/PileupRenderer/PileupLayoutSession.js.map +0 -1
  274. package/dist/PileupRenderer/PileupRenderer.js.map +0 -1
  275. package/dist/PileupRenderer/colorBy.js.map +0 -1
  276. package/dist/PileupRenderer/components/PileupRendering.js.map +0 -1
  277. package/dist/PileupRenderer/configSchema.js.map +0 -1
  278. package/dist/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  279. package/dist/PileupRenderer/index.js.map +0 -1
  280. package/dist/PileupRenderer/layoutFeature.js.map +0 -1
  281. package/dist/PileupRenderer/layoutFeatures.js.map +0 -1
  282. package/dist/PileupRenderer/makeImageData.js.map +0 -1
  283. package/dist/PileupRenderer/renderAlignment.js.map +0 -1
  284. package/dist/PileupRenderer/renderAlignmentShape.js.map +0 -1
  285. package/dist/PileupRenderer/renderMethylation.js.map +0 -1
  286. package/dist/PileupRenderer/renderMismatches.js.map +0 -1
  287. package/dist/PileupRenderer/renderModifications.js.map +0 -1
  288. package/dist/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  289. package/dist/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  290. package/dist/PileupRenderer/renderSoftClipping.js.map +0 -1
  291. package/dist/PileupRenderer/sortUtil.js.map +0 -1
  292. package/dist/PileupRenderer/util.js.map +0 -1
  293. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  294. package/dist/SNPCoverageAdapter/configSchema.js.map +0 -1
  295. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  296. package/dist/SNPCoverageAdapter/index.js.map +0 -1
  297. package/dist/SNPCoverageAdapter/util.js.map +0 -1
  298. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  299. package/dist/SNPCoverageRenderer/configSchema.js.map +0 -1
  300. package/dist/SNPCoverageRenderer/index.js.map +0 -1
  301. package/dist/index.js.map +0 -1
  302. package/dist/shared/BaseDisplayComponent.js.map +0 -1
  303. package/dist/shared/FilterByTag.js.map +0 -1
  304. package/dist/shared/afterAttach.js.map +0 -1
  305. package/dist/shared/color.js.map +0 -1
  306. package/dist/shared/fetchChains.js.map +0 -1
  307. package/dist/shared/index.js.map +0 -1
  308. package/dist/shared/renderSvg.js.map +0 -1
  309. package/dist/shared/util.js.map +0 -1
  310. package/dist/util.js.map +0 -1
  311. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +0 -1
  312. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureFlags.js.map +0 -1
  313. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.js.map +0 -1
  314. package/esm/AlignmentsFeatureDetail/index.js.map +0 -1
  315. package/esm/AlignmentsFeatureDetail/util.js.map +0 -1
  316. package/esm/AlignmentsTrack/configSchemaF.js.map +0 -1
  317. package/esm/AlignmentsTrack/index.js.map +0 -1
  318. package/esm/BamAdapter/BamAdapter.js.map +0 -1
  319. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +0 -1
  320. package/esm/BamAdapter/configSchema.js.map +0 -1
  321. package/esm/BamAdapter/index.js.map +0 -1
  322. package/esm/CramAdapter/CramAdapter.js.map +0 -1
  323. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +0 -1
  324. package/esm/CramAdapter/CramTestAdapters.js.map +0 -1
  325. package/esm/CramAdapter/configSchema.js.map +0 -1
  326. package/esm/CramAdapter/index.js.map +0 -1
  327. package/esm/CramAdapter/util.js.map +0 -1
  328. package/esm/GuessAlignmentsTypes/index.js.map +0 -1
  329. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +0 -1
  330. package/esm/HtsgetBamAdapter/configSchema.js.map +0 -1
  331. package/esm/HtsgetBamAdapter/index.js.map +0 -1
  332. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +0 -1
  333. package/esm/LinearAlignmentsDisplay/index.js.map +0 -1
  334. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +0 -1
  335. package/esm/LinearAlignmentsDisplay/models/model.js.map +0 -1
  336. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +0 -1
  337. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +0 -1
  338. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +0 -1
  339. package/esm/LinearPileupDisplay/components/ModificationsTable.js.map +0 -1
  340. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +0 -1
  341. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +0 -1
  342. package/esm/LinearPileupDisplay/components/SortByTag.js.map +0 -1
  343. package/esm/LinearPileupDisplay/configSchema.js.map +0 -1
  344. package/esm/LinearPileupDisplay/index.js.map +0 -1
  345. package/esm/LinearPileupDisplay/model.js.map +0 -1
  346. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +0 -1
  347. package/esm/LinearReadArcsDisplay/configSchema.js.map +0 -1
  348. package/esm/LinearReadArcsDisplay/drawFeats.js.map +0 -1
  349. package/esm/LinearReadArcsDisplay/index.js.map +0 -1
  350. package/esm/LinearReadArcsDisplay/model.js.map +0 -1
  351. package/esm/LinearReadArcsDisplay/util.js.map +0 -1
  352. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +0 -1
  353. package/esm/LinearReadCloudDisplay/configSchema.js.map +0 -1
  354. package/esm/LinearReadCloudDisplay/drawFeats.js.map +0 -1
  355. package/esm/LinearReadCloudDisplay/drawLongReadChains.js.map +0 -1
  356. package/esm/LinearReadCloudDisplay/drawPairChains.js.map +0 -1
  357. package/esm/LinearReadCloudDisplay/index.js.map +0 -1
  358. package/esm/LinearReadCloudDisplay/model.js.map +0 -1
  359. package/esm/LinearReadCloudDisplay/util.js.map +0 -1
  360. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +0 -1
  361. package/esm/LinearSNPCoverageDisplay/index.js.map +0 -1
  362. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +0 -1
  363. package/esm/LinearSNPCoverageDisplay/models/model.js.map +0 -1
  364. package/esm/MismatchParser/index.js.map +0 -1
  365. package/esm/PileupRPC/base.js.map +0 -1
  366. package/esm/PileupRPC/index.js.map +0 -1
  367. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +0 -1
  368. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +0 -1
  369. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +0 -1
  370. package/esm/PileupRPC/rpcMethods.js.map +0 -1
  371. package/esm/PileupRPC/util.js.map +0 -1
  372. package/esm/PileupRenderer/PileupLayoutSession.js.map +0 -1
  373. package/esm/PileupRenderer/PileupRenderer.js.map +0 -1
  374. package/esm/PileupRenderer/colorBy.js.map +0 -1
  375. package/esm/PileupRenderer/components/PileupRendering.js.map +0 -1
  376. package/esm/PileupRenderer/configSchema.js.map +0 -1
  377. package/esm/PileupRenderer/getAlignmentShapeColor.js.map +0 -1
  378. package/esm/PileupRenderer/index.js.map +0 -1
  379. package/esm/PileupRenderer/layoutFeature.js.map +0 -1
  380. package/esm/PileupRenderer/layoutFeatures.js.map +0 -1
  381. package/esm/PileupRenderer/makeImageData.js.map +0 -1
  382. package/esm/PileupRenderer/renderAlignment.js.map +0 -1
  383. package/esm/PileupRenderer/renderAlignmentShape.js.map +0 -1
  384. package/esm/PileupRenderer/renderMethylation.js.map +0 -1
  385. package/esm/PileupRenderer/renderMismatches.js.map +0 -1
  386. package/esm/PileupRenderer/renderModifications.js.map +0 -1
  387. package/esm/PileupRenderer/renderPerBaseLettering.js.map +0 -1
  388. package/esm/PileupRenderer/renderPerBaseQuality.js.map +0 -1
  389. package/esm/PileupRenderer/renderSoftClipping.js.map +0 -1
  390. package/esm/PileupRenderer/sortUtil.js.map +0 -1
  391. package/esm/PileupRenderer/util.js.map +0 -1
  392. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +0 -1
  393. package/esm/SNPCoverageAdapter/configSchema.js.map +0 -1
  394. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +0 -1
  395. package/esm/SNPCoverageAdapter/index.js.map +0 -1
  396. package/esm/SNPCoverageAdapter/util.js.map +0 -1
  397. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +0 -1
  398. package/esm/SNPCoverageRenderer/configSchema.js.map +0 -1
  399. package/esm/SNPCoverageRenderer/index.js.map +0 -1
  400. package/esm/index.js.map +0 -1
  401. package/esm/shared/BaseDisplayComponent.js.map +0 -1
  402. package/esm/shared/FilterByTag.js.map +0 -1
  403. package/esm/shared/afterAttach.js.map +0 -1
  404. package/esm/shared/color.js.map +0 -1
  405. package/esm/shared/fetchChains.js.map +0 -1
  406. package/esm/shared/index.js.map +0 -1
  407. package/esm/shared/renderSvg.js.map +0 -1
  408. package/esm/shared/util.js.map +0 -1
  409. package/esm/util.js.map +0 -1
  410. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +0 -155
  411. package/src/AlignmentsFeatureDetail/AlignmentsFeatureFlags.tsx +0 -60
  412. package/src/AlignmentsFeatureDetail/AlignmentsFeatureSuppAligns.tsx +0 -51
  413. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.tsx.snap +0 -327
  414. package/src/AlignmentsFeatureDetail/index.test.tsx +0 -47
  415. package/src/AlignmentsFeatureDetail/index.ts +0 -33
  416. package/src/AlignmentsFeatureDetail/util.ts +0 -27
  417. package/src/AlignmentsTrack/configSchemaF.ts +0 -22
  418. package/src/AlignmentsTrack/index.ts +0 -22
  419. package/src/BamAdapter/BamAdapter.test.ts +0 -124
  420. package/src/BamAdapter/BamAdapter.ts +0 -251
  421. package/src/BamAdapter/BamSlightlyLazyFeature.ts +0 -149
  422. package/src/BamAdapter/__snapshots__/BamAdapter.test.ts.snap +0 -1105
  423. package/src/BamAdapter/configSchema.ts +0 -65
  424. package/src/BamAdapter/index.ts +0 -14
  425. package/src/CombinationTest.test.ts +0 -108
  426. package/src/CramAdapter/CramAdapter.test.ts +0 -85
  427. package/src/CramAdapter/CramAdapter.ts +0 -323
  428. package/src/CramAdapter/CramSlightlyLazyFeature.ts +0 -185
  429. package/src/CramAdapter/CramTestAdapters.ts +0 -98
  430. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -256
  431. package/src/CramAdapter/__snapshots__/util.test.ts.snap +0 -14
  432. package/src/CramAdapter/configSchema.ts +0 -57
  433. package/src/CramAdapter/index.ts +0 -16
  434. package/src/CramAdapter/util.test.ts +0 -26
  435. package/src/CramAdapter/util.ts +0 -251
  436. package/src/GuessAlignmentsTypes/index.ts +0 -79
  437. package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +0 -24
  438. package/src/HtsgetBamAdapter/configSchema.ts +0 -40
  439. package/src/HtsgetBamAdapter/index.ts +0 -17
  440. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +0 -52
  441. package/src/LinearAlignmentsDisplay/index.ts +0 -21
  442. package/src/LinearAlignmentsDisplay/models/configSchema.test.ts +0 -60
  443. package/src/LinearAlignmentsDisplay/models/configSchema.ts +0 -41
  444. package/src/LinearAlignmentsDisplay/models/model.tsx +0 -403
  445. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +0 -102
  446. package/src/LinearPileupDisplay/components/ColorByTag.tsx +0 -61
  447. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +0 -32
  448. package/src/LinearPileupDisplay/components/ModificationsTable.tsx +0 -38
  449. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +0 -82
  450. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +0 -71
  451. package/src/LinearPileupDisplay/components/SortByTag.tsx +0 -64
  452. package/src/LinearPileupDisplay/configSchema.test.js +0 -55
  453. package/src/LinearPileupDisplay/configSchema.ts +0 -67
  454. package/src/LinearPileupDisplay/index.ts +0 -24
  455. package/src/LinearPileupDisplay/model.ts +0 -884
  456. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +0 -50
  457. package/src/LinearReadArcsDisplay/configSchema.ts +0 -68
  458. package/src/LinearReadArcsDisplay/declare.d.ts +0 -1
  459. package/src/LinearReadArcsDisplay/drawFeats.ts +0 -210
  460. package/src/LinearReadArcsDisplay/index.ts +0 -23
  461. package/src/LinearReadArcsDisplay/model.tsx +0 -355
  462. package/src/LinearReadArcsDisplay/util.ts +0 -10
  463. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +0 -48
  464. package/src/LinearReadCloudDisplay/configSchema.ts +0 -57
  465. package/src/LinearReadCloudDisplay/drawFeats.ts +0 -35
  466. package/src/LinearReadCloudDisplay/drawLongReadChains.ts +0 -85
  467. package/src/LinearReadCloudDisplay/drawPairChains.ts +0 -139
  468. package/src/LinearReadCloudDisplay/index.ts +0 -23
  469. package/src/LinearReadCloudDisplay/model.tsx +0 -246
  470. package/src/LinearReadCloudDisplay/util.ts +0 -47
  471. package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +0 -128
  472. package/src/LinearSNPCoverageDisplay/index.ts +0 -20
  473. package/src/LinearSNPCoverageDisplay/models/configSchema.test.ts +0 -35
  474. package/src/LinearSNPCoverageDisplay/models/configSchema.ts +0 -82
  475. package/src/LinearSNPCoverageDisplay/models/model.ts +0 -336
  476. package/src/MismatchParser/index.test.ts +0 -283
  477. package/src/MismatchParser/index.ts +0 -508
  478. package/src/PileupRPC/base.ts +0 -24
  479. package/src/PileupRPC/index.ts +0 -12
  480. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +0 -44
  481. package/src/PileupRPC/methods/GetReducedFeatures.ts +0 -67
  482. package/src/PileupRPC/methods/GetVisibleModifications.ts +0 -45
  483. package/src/PileupRPC/rpcMethods.ts +0 -3
  484. package/src/PileupRPC/util.ts +0 -19
  485. package/src/PileupRenderer/PileupLayoutSession.ts +0 -64
  486. package/src/PileupRenderer/PileupRenderer.ts +0 -142
  487. package/src/PileupRenderer/colorBy.ts +0 -74
  488. package/src/PileupRenderer/components/PileupRendering.tsx +0 -209
  489. package/src/PileupRenderer/configSchema.ts +0 -108
  490. package/src/PileupRenderer/getAlignmentShapeColor.ts +0 -87
  491. package/src/PileupRenderer/index.ts +0 -16
  492. package/src/PileupRenderer/layoutFeature.ts +0 -83
  493. package/src/PileupRenderer/layoutFeatures.ts +0 -44
  494. package/src/PileupRenderer/makeImageData.ts +0 -93
  495. package/src/PileupRenderer/renderAlignment.ts +0 -97
  496. package/src/PileupRenderer/renderAlignmentShape.ts +0 -45
  497. package/src/PileupRenderer/renderMethylation.ts +0 -75
  498. package/src/PileupRenderer/renderMismatches.ts +0 -206
  499. package/src/PileupRenderer/renderModifications.ts +0 -74
  500. package/src/PileupRenderer/renderPerBaseLettering.ts +0 -67
  501. package/src/PileupRenderer/renderPerBaseQuality.ts +0 -46
  502. package/src/PileupRenderer/renderSoftClipping.ts +0 -78
  503. package/src/PileupRenderer/sortUtil.ts +0 -107
  504. package/src/PileupRenderer/util.ts +0 -63
  505. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +0 -111
  506. package/src/SNPCoverageAdapter/configSchema.ts +0 -23
  507. package/src/SNPCoverageAdapter/generateCoverageBins.ts +0 -259
  508. package/src/SNPCoverageAdapter/index.ts +0 -18
  509. package/src/SNPCoverageAdapter/util.ts +0 -33
  510. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +0 -270
  511. package/src/SNPCoverageRenderer/configSchema.ts +0 -64
  512. package/src/SNPCoverageRenderer/index.ts +0 -17
  513. package/src/__snapshots__/index.test.ts.snap +0 -3
  514. package/src/index.test.ts +0 -17
  515. package/src/index.ts +0 -48
  516. package/src/shared/BaseDisplayComponent.tsx +0 -83
  517. package/src/shared/FilterByTag.tsx +0 -187
  518. package/src/shared/afterAttach.tsx +0 -66
  519. package/src/shared/color.ts +0 -86
  520. package/src/shared/fetchChains.ts +0 -62
  521. package/src/shared/index.ts +0 -75
  522. package/src/shared/renderSvg.tsx +0 -64
  523. package/src/shared/util.ts +0 -10
  524. package/src/util.ts +0 -154
@@ -1,259 +0,0 @@
1
- import { AugmentedRegion as Region } from '@jbrowse/core/util/types'
2
- import { Feature } from '@jbrowse/core/util/simpleFeature'
3
- import { getTag, getTagAlt, shouldFetchReferenceSequence } from '../util'
4
- import {
5
- parseCigar,
6
- getNextRefPos,
7
- getModificationPositions,
8
- getMethBins,
9
- Mismatch,
10
- } from '../MismatchParser'
11
- import { doesIntersect2 } from '@jbrowse/core/util'
12
- import { Bin, SkipMap } from './util'
13
-
14
- function mismatchLen(mismatch: Mismatch) {
15
- return !isInterbase(mismatch.type) ? mismatch.length : 1
16
- }
17
-
18
- function isInterbase(type: string) {
19
- return type === 'softclip' || type === 'hardclip' || type === 'insertion'
20
- }
21
-
22
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
- function inc(bin: any, strand: number, type: string, field: string) {
24
- let thisBin = bin[type][field]
25
- if (thisBin === undefined) {
26
- thisBin = bin[type][field] = {
27
- total: 0,
28
- '-1': 0,
29
- '0': 0,
30
- '1': 0,
31
- }
32
- }
33
- thisBin.total++
34
- thisBin[strand]++
35
- }
36
-
37
- export default async function generateCoverageBins(
38
- features: Feature[],
39
- region: Region,
40
- opts: { bpPerPx?: number; colorBy?: { type: string; tag?: string } },
41
- fetchSequence: (arg: Region) => Promise<string>,
42
- ) {
43
- const { colorBy } = opts
44
- const extendedRegion = {
45
- ...region,
46
- start: Math.max(0, region.start - 1),
47
- end: region.end + 1,
48
- }
49
- const binMax = Math.ceil(extendedRegion.end - extendedRegion.start)
50
- const skipmap = {} as SkipMap
51
- const regionSequence =
52
- features.length && shouldFetchReferenceSequence(opts.colorBy?.type)
53
- ? await fetchSequence(region)
54
- : undefined
55
-
56
- const bins = [] as Bin[]
57
-
58
- for (const feature of features) {
59
- const fstart = feature.get('start')
60
- const fend = feature.get('end')
61
- const fstrand = feature.get('strand') as -1 | 0 | 1
62
- const mismatches = (feature.get('mismatches') as Mismatch[]) || []
63
-
64
- for (let j = fstart; j < fend + 1; j++) {
65
- const i = j - region.start
66
- if (i >= 0 && i < binMax) {
67
- if (bins[i] === undefined) {
68
- bins[i] = {
69
- total: 0,
70
- all: 0,
71
- ref: 0,
72
- '-1': 0,
73
- '0': 0,
74
- '1': 0,
75
- lowqual: {},
76
- cov: {},
77
- delskips: {},
78
- noncov: {},
79
- }
80
- }
81
- if (j !== fend) {
82
- bins[i].total++
83
- bins[i].all++
84
- bins[i].ref++
85
- bins[i][fstrand]++
86
- }
87
- }
88
- }
89
-
90
- if (colorBy?.type === 'modifications') {
91
- const seq = feature.get('seq') as string | undefined
92
- const mm = (getTagAlt(feature, 'MM', 'Mm') as string) || ''
93
- const ops = parseCigar(feature.get('CIGAR'))
94
- const fend = feature.get('end')
95
- if (seq) {
96
- const modifications = getModificationPositions(mm, seq, fstrand)
97
- for (const { type, positions } of modifications) {
98
- const mod = `mod_${type}`
99
- for (const pos of getNextRefPos(ops, positions)) {
100
- const epos = pos + fstart - region.start
101
- if (epos >= 0 && epos < bins.length && pos + fstart < fend) {
102
- if (bins[epos] === undefined) {
103
- bins[epos] = {
104
- total: 0,
105
- all: 0,
106
- ref: 0,
107
- '-1': 0,
108
- '0': 0,
109
- '1': 0,
110
- lowqual: {},
111
- cov: {},
112
- delskips: {},
113
- noncov: {},
114
- }
115
- }
116
- const bin = bins[epos]
117
- if (bin) {
118
- inc(bin, fstrand, 'cov', mod)
119
- } else {
120
- console.warn(
121
- 'Undefined position in modifications snpcoverage encountered',
122
- )
123
- }
124
- }
125
- }
126
- }
127
- }
128
- }
129
-
130
- if (colorBy?.type === 'methylation') {
131
- if (!regionSequence) {
132
- throw new Error(
133
- 'no region sequence detected, need sequenceAdapter configuration',
134
- )
135
- }
136
- const seq = feature.get('seq') as string | undefined
137
- if (!seq) {
138
- continue
139
- }
140
- const { methBins, methProbs } = getMethBins(feature)
141
- const dels = mismatches.filter(f => f.type === 'deletion')
142
-
143
- // methylation based coloring takes into account both reference sequence
144
- // CpG detection and reads
145
- for (let i = 0; i < fend - fstart; i++) {
146
- const j = i + fstart
147
- const l1 = regionSequence[j - region.start + 1]?.toLowerCase()
148
- const l2 = regionSequence[j - region.start + 2]?.toLowerCase()
149
- if (l1 === 'c' && l2 === 'g') {
150
- const bin0 = bins[j - region.start]
151
- const bin1 = bins[j - region.start + 1]
152
- const b0 = methBins[i]
153
- const b1 = methBins[i + 1]
154
- const p0 = methProbs[i]
155
- const p1 = methProbs[i + 1]
156
-
157
- // color
158
- if (
159
- (b0 && (p0 !== undefined ? p0 > 0.5 : true)) ||
160
- (b1 && (p1 !== undefined ? p1 > 0.5 : true))
161
- ) {
162
- if (bin0) {
163
- inc(bin0, fstrand, 'cov', 'meth')
164
- bin0.ref--
165
- bin0[fstrand]--
166
- }
167
- if (bin1) {
168
- inc(bin1, fstrand, 'cov', 'meth')
169
- bin1.ref--
170
- bin1[fstrand]--
171
- }
172
- } else {
173
- if (bin0) {
174
- if (
175
- !dels?.some(d =>
176
- doesIntersect2(
177
- j,
178
- j + 1,
179
- d.start + fstart,
180
- d.start + fstart + d.length,
181
- ),
182
- )
183
- ) {
184
- inc(bin0, fstrand, 'cov', 'unmeth')
185
- bin0.ref--
186
- bin0[fstrand]
187
- }
188
- }
189
- if (bin1) {
190
- if (
191
- !dels?.some(d =>
192
- doesIntersect2(
193
- j + 1,
194
- j + 2,
195
- d.start + fstart,
196
- d.start + fstart + d.length,
197
- ),
198
- )
199
- ) {
200
- inc(bin1, fstrand, 'cov', 'unmeth')
201
- bin1.ref--
202
- bin1[fstrand]--
203
- }
204
- }
205
- }
206
- }
207
- }
208
- }
209
-
210
- // normal SNP based coloring
211
- const colorSNPs =
212
- colorBy?.type !== 'modifications' && colorBy?.type !== 'methylation'
213
-
214
- for (const mismatch of mismatches) {
215
- const mstart = fstart + mismatch.start
216
- const mlen = mismatchLen(mismatch)
217
- const mend = mstart + mlen
218
- for (let j = mstart; j < mstart + mlen; j++) {
219
- const epos = j - region.start
220
- if (epos >= 0 && epos < bins.length) {
221
- const bin = bins[epos]
222
- const { base, type } = mismatch
223
- const interbase = isInterbase(type)
224
- if (!interbase) {
225
- bin.ref--
226
- bin[fstrand]--
227
- } else {
228
- inc(bin, fstrand, 'noncov', type)
229
- }
230
-
231
- if (type === 'deletion' || type === 'skip') {
232
- inc(bin, fstrand, 'delskips', type)
233
- bin.total--
234
- } else if (!interbase && colorSNPs) {
235
- inc(bin, fstrand, 'cov', base)
236
- bin.refbase = mismatch.altbase
237
- }
238
- }
239
- }
240
-
241
- if (mismatch.type === 'skip') {
242
- const hash = `${mstart}_${mend}_${fstrand}`
243
- if (skipmap[hash] === undefined) {
244
- skipmap[hash] = {
245
- feature: feature,
246
- start: mstart,
247
- end: mend,
248
- strand: fstrand,
249
- xs: getTag(feature, 'XS') || getTag(feature, 'TS'),
250
- score: 0,
251
- }
252
- }
253
- skipmap[hash].score++
254
- }
255
- }
256
- }
257
-
258
- return { bins, skipmap }
259
- }
@@ -1,18 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType'
3
- import configSchema from './configSchema'
4
-
5
- export default function (pluginManager: PluginManager) {
6
- pluginManager.addAdapterType(() => {
7
- return new AdapterType({
8
- name: 'SNPCoverageAdapter',
9
- displayName: 'SNPCoverage adapter',
10
- adapterMetadata: {
11
- hiddenFromGUI: true,
12
- },
13
- getAdapterClass: () =>
14
- import('./SNPCoverageAdapter').then(r => r.default),
15
- configSchema,
16
- })
17
- })
18
- }
@@ -1,33 +0,0 @@
1
- export interface SkipMap {
2
- [key: string]: {
3
- score: number
4
- feature: unknown
5
- start: number
6
- end: number
7
- strand: number
8
- xs: string
9
- }
10
- }
11
-
12
- // bins contain:
13
- // - cov feature if they contribute to coverage
14
- // - noncov are insertions/clip features that don't contribute to coverage
15
- // - delskips deletions or introns that don't contribute to coverage
16
- export interface BinType {
17
- total?: number
18
- strands?: { [key: string]: number }
19
- }
20
-
21
- export interface Bin {
22
- refbase?: string
23
- total: number
24
- all: number
25
- ref: number
26
- '-1': number
27
- '0': number
28
- '1': number
29
- lowqual: BinType
30
- cov: BinType
31
- delskips: BinType
32
- noncov: BinType
33
- }
@@ -1,270 +0,0 @@
1
- import { createJBrowseTheme } from '@jbrowse/core/ui'
2
- import { featureSpanPx, bpSpanPx, Feature } from '@jbrowse/core/util'
3
- import { readConfObject } from '@jbrowse/core/configuration'
4
- import { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
5
- import {
6
- getOrigin,
7
- getScale,
8
- ScaleOpts,
9
- WiggleBaseRenderer,
10
- YSCALEBAR_LABEL_OFFSET,
11
- } from '@jbrowse/plugin-wiggle'
12
-
13
- export interface RenderArgsDeserialized extends FeatureRenderArgsDeserialized {
14
- bpPerPx: number
15
- height: number
16
- highResolutionScaling: number
17
- scaleOpts: ScaleOpts
18
- }
19
-
20
- export interface RenderArgsDeserializedWithFeatures
21
- extends RenderArgsDeserialized {
22
- features: Map<string, Feature>
23
- ticks: { values: number[] }
24
- displayCrossHatches: boolean
25
- modificationTagMap?: Record<string, string | undefined>
26
- }
27
-
28
- type Counts = {
29
- [key: string]: { total: number; strands: { [key: string]: number } }
30
- }
31
-
32
- interface SNPInfo {
33
- cov: Counts
34
- noncov: Counts
35
- total: number
36
- }
37
-
38
- const fudgeFactor = 0.6
39
-
40
- export default class SNPCoverageRenderer extends WiggleBaseRenderer {
41
- // note: the snps are drawn on linear scale even if the data is drawn in log
42
- // scape hence the two different scales being used
43
- async draw(
44
- ctx: CanvasRenderingContext2D,
45
- props: RenderArgsDeserializedWithFeatures,
46
- ) {
47
- const {
48
- features,
49
- regions,
50
- bpPerPx,
51
- displayCrossHatches,
52
- modificationTagMap = {},
53
- scaleOpts,
54
- height: unadjustedHeight,
55
- theme: configTheme,
56
- config: cfg,
57
- ticks,
58
- } = props
59
- const theme = createJBrowseTheme(configTheme)
60
- const [region] = regions
61
- const width = (region.end - region.start) / bpPerPx
62
-
63
- // the adjusted height takes into account YSCALEBAR_LABEL_OFFSET from the
64
- // wiggle display, and makes the height of the actual drawn area add
65
- // "padding" to the top and bottom of the display
66
- const offset = YSCALEBAR_LABEL_OFFSET
67
- const height = unadjustedHeight - offset * 2
68
-
69
- const { domain } = scaleOpts
70
- if (!domain) {
71
- return
72
- }
73
- const opts = { ...scaleOpts, range: [0, height] }
74
- const viewScale = getScale(opts)
75
-
76
- // clipping and insertion indicators, uses a smaller height/2 scale
77
- const indicatorViewScale = getScale({
78
- ...opts,
79
- range: [0, height / 2],
80
- scaleType: 'linear',
81
- })
82
- const originY = getOrigin(scaleOpts.scaleType)
83
- const originLinear = getOrigin('linear')
84
-
85
- const indicatorThreshold = readConfObject(cfg, 'indicatorThreshold')
86
- const drawInterbaseCounts = readConfObject(cfg, 'drawInterbaseCounts')
87
- const drawArcs = readConfObject(cfg, 'drawArcs')
88
- const drawIndicators = readConfObject(cfg, 'drawIndicators')
89
-
90
- // get the y coordinate that we are plotting at, this can be log scale
91
- const toY = (n: number) => height - (viewScale(n) || 0) + offset
92
- const toHeight = (n: number) => toY(originY) - toY(n)
93
- // used specifically for indicator
94
- const toY2 = (n: number) => height - (indicatorViewScale(n) || 0) + offset
95
- const toHeight2 = (n: number) => toY2(originLinear) - toY2(n)
96
-
97
- const { bases } = theme.palette
98
- const colorForBase: { [key: string]: string } = {
99
- A: bases.A.main,
100
- C: bases.C.main,
101
- G: bases.G.main,
102
- T: bases.T.main,
103
- insertion: 'purple',
104
- softclip: 'blue',
105
- hardclip: 'red',
106
- total: readConfObject(cfg, 'color'),
107
- meth: 'red',
108
- unmeth: 'blue',
109
- }
110
-
111
- const feats = [...features.values()]
112
- const coverage = feats.filter(f => f.get('type') !== 'skip')
113
- const skips = feats.filter(f => f.get('type') === 'skip')
114
-
115
- // Use two pass rendering, which helps in visualizing the SNPs at higher
116
- // bpPerPx First pass: draw the gray background
117
- ctx.fillStyle = colorForBase.total
118
- for (let i = 0; i < coverage.length; i++) {
119
- const feature = coverage[i]
120
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx)
121
- const w = rightPx - leftPx + fudgeFactor
122
- const score = feature.get('score') as number
123
- ctx.fillRect(leftPx, toY(score), w, toHeight(score))
124
- }
125
-
126
- // Keep track of previous total which we will use it to draw the interbase
127
- // indicator (if there is a sudden clip, there will be no read coverage but
128
- // there will be "clip" coverage) at that position beyond the read. if the
129
- // clip is right at a block boundary then prevTotal will not be available,
130
- // so this is a best attempt to plot interbase indicator at the "cliffs"
131
- let prevTotal = 0
132
-
133
- // extraHorizontallyFlippedOffset is used to draw interbase items, which
134
- // are located to the left when forward and right when reversed
135
- const extraHorizontallyFlippedOffset = region.reversed ? 1 / bpPerPx : 0
136
-
137
- // Second pass: draw the SNP data, and add a minimum feature width of 1px
138
- // which can be wider than the actual bpPerPx This reduces overdrawing of
139
- // the grey background over the SNPs
140
-
141
- for (let i = 0; i < coverage.length; i++) {
142
- const feature = coverage[i]
143
- const [leftPx, rightPx] = featureSpanPx(feature, region, bpPerPx)
144
-
145
- const score = feature.get('score') as number
146
- const snpinfo = feature.get('snpinfo') as SNPInfo
147
- const w = Math.max(rightPx - leftPx, 1)
148
- const totalScore = snpinfo.total
149
- const keys = Object.keys(snpinfo.cov).sort()
150
-
151
- let curr = 0
152
- for (let i = 0; i < keys.length; i++) {
153
- const base = keys[i]
154
- const { total } = snpinfo.cov[base]
155
- ctx.fillStyle =
156
- colorForBase[base] ||
157
- modificationTagMap[base.replace('mod_', '')] ||
158
- 'black'
159
-
160
- const height = toHeight(score)
161
- const bottom = toY(score) + height
162
- ctx.fillRect(
163
- Math.round(leftPx),
164
- bottom - ((total + curr) / score) * height,
165
- w,
166
- (total / score) * height,
167
- )
168
- curr += total
169
- }
170
-
171
- const interbaseEvents = Object.keys(snpinfo.noncov)
172
- const indicatorHeight = 4.5
173
- if (drawInterbaseCounts) {
174
- let curr = 0
175
- for (let i = 0; i < interbaseEvents.length; i++) {
176
- const base = interbaseEvents[i]
177
- const { total } = snpinfo.noncov[base]
178
- const r = 0.6
179
- ctx.fillStyle = colorForBase[base]
180
- ctx.fillRect(
181
- leftPx - r + extraHorizontallyFlippedOffset,
182
- indicatorHeight + toHeight2(curr),
183
- r * 2,
184
- toHeight2(total),
185
- )
186
- curr += total
187
- }
188
- }
189
-
190
- if (drawIndicators) {
191
- let accum = 0
192
- let max = 0
193
- let maxBase = ''
194
- for (let i = 0; i < interbaseEvents.length; i++) {
195
- const base = interbaseEvents[i]
196
- const { total } = snpinfo.noncov[base]
197
- accum += total
198
- if (total > max) {
199
- max = total
200
- maxBase = base
201
- }
202
- }
203
-
204
- // avoid drawing a bunch of indicators if coverage is very low e.g.
205
- // less than 7, uses the prev total in the case of the "cliff"
206
- const indicatorComparatorScore = Math.max(totalScore, prevTotal)
207
- if (
208
- accum > indicatorComparatorScore * indicatorThreshold &&
209
- indicatorComparatorScore > 7
210
- ) {
211
- ctx.fillStyle = colorForBase[maxBase]
212
- ctx.beginPath()
213
- const l = leftPx + extraHorizontallyFlippedOffset
214
- ctx.moveTo(l - 3.5, 0)
215
- ctx.lineTo(l + 3.5, 0)
216
- ctx.lineTo(l, indicatorHeight)
217
- ctx.fill()
218
- }
219
- }
220
- prevTotal = totalScore
221
- }
222
-
223
- if (drawArcs) {
224
- for (let i = 0; i < skips.length; i++) {
225
- const f = skips[i]
226
- const [left, right] = bpSpanPx(
227
- f.get('start'),
228
- f.get('end'),
229
- region,
230
- bpPerPx,
231
- )
232
-
233
- ctx.beginPath()
234
- const str = f.get('strand') as number
235
- const xs = f.get('xs') as string
236
- const pos = 'rgba(255,200,200,0.7)'
237
- const neg = 'rgba(200,200,255,0.7)'
238
- const neutral = 'rgba(200,200,200,0.7)'
239
-
240
- if (xs === '+') {
241
- ctx.strokeStyle = pos
242
- } else if (xs === '-') {
243
- ctx.strokeStyle = neg
244
- } else if (str === 1) {
245
- ctx.strokeStyle = pos
246
- } else if (str === -1) {
247
- ctx.strokeStyle = neg
248
- } else {
249
- ctx.strokeStyle = neutral
250
- }
251
-
252
- ctx.lineWidth = Math.log(f.get('score') + 1)
253
- ctx.moveTo(left, height - offset * 2)
254
- ctx.bezierCurveTo(left, 0, right, 0, right, height - offset * 2)
255
- ctx.stroke()
256
- }
257
- }
258
-
259
- if (displayCrossHatches) {
260
- ctx.lineWidth = 1
261
- ctx.strokeStyle = 'rgba(140,140,140,0.8)'
262
- ticks.values.forEach(tick => {
263
- ctx.beginPath()
264
- ctx.moveTo(0, Math.round(toY(tick)))
265
- ctx.lineTo(width, Math.round(toY(tick)))
266
- ctx.stroke()
267
- })
268
- }
269
- }
270
- }
@@ -1,64 +0,0 @@
1
- import { ConfigurationSchema } from '@jbrowse/core/configuration'
2
-
3
- /**
4
- * #config SNPCoverageRenderer
5
- */
6
- function x() {} // eslint-disable-line @typescript-eslint/no-unused-vars
7
-
8
- const SNPCoverageRenderer = ConfigurationSchema(
9
- 'SNPCoverageRenderer',
10
- {
11
- /**
12
- * #slot
13
- */
14
- clipColor: {
15
- type: 'color',
16
- description: 'the color of the clipping marker',
17
- defaultValue: 'red',
18
- },
19
- /**
20
- * #slot
21
- */
22
- indicatorThreshold: {
23
- type: 'number',
24
- description:
25
- 'the proportion of reads containing a insertion/clip indicator',
26
- defaultValue: 0.4,
27
- },
28
- /**
29
- * #slot
30
- */
31
- drawArcs: {
32
- type: 'boolean',
33
- description: 'Draw sashimi-style arcs for intron features',
34
- defaultValue: true,
35
- },
36
- /**
37
- * #slot
38
- */
39
- drawInterbaseCounts: {
40
- type: 'boolean',
41
- description:
42
- 'draw count "upsidedown histogram" of the interbase events that don\'t contribute to the coverage count so are not drawn in the normal histogram',
43
- defaultValue: true,
44
- },
45
- /**
46
- * #slot
47
- */
48
- drawIndicators: {
49
- type: 'boolean',
50
- description:
51
- 'draw a triangular indicator where an event has been detected',
52
- defaultValue: true,
53
- },
54
-
55
- color: {
56
- type: 'color',
57
- description: 'Background color for the SNPCoverage renderer',
58
- defaultValue: '#d3d3d3',
59
- },
60
- },
61
- { explicitlyTyped: true },
62
- )
63
-
64
- export default SNPCoverageRenderer
@@ -1,17 +0,0 @@
1
- import configSchema from './configSchema'
2
- import PluginManager from '@jbrowse/core/PluginManager'
3
- import SNPCoverageRenderer from './SNPCoverageRenderer'
4
-
5
- import { WiggleRendering } from '@jbrowse/plugin-wiggle'
6
-
7
- export default function register(pluginManager: PluginManager) {
8
- pluginManager.addRendererType(
9
- () =>
10
- new SNPCoverageRenderer({
11
- name: 'SNPCoverageRenderer',
12
- ReactComponent: WiggleRendering,
13
- configSchema,
14
- pluginManager,
15
- }),
16
- )
17
- }
@@ -1,3 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`plugin in a stock JBrowse 1`] = `{}`;
package/src/index.test.ts DELETED
@@ -1,17 +0,0 @@
1
- import PluginManager from '@jbrowse/core/PluginManager'
2
- import SVG from '@jbrowse/plugin-svg'
3
- import { getSnapshot } from 'mobx-state-tree'
4
- import ThisPlugin from '.'
5
-
6
- test('plugin in a stock JBrowse', () => {
7
- const pluginManager = new PluginManager([new ThisPlugin(), new SVG()])
8
- pluginManager.createPluggableElements()
9
- pluginManager.configure()
10
- expect(() => pluginManager.addPlugin(new ThisPlugin())).toThrow(
11
- /JBrowse already configured, cannot add plugins/,
12
- )
13
-
14
- const BamAdapter = pluginManager.getAdapterType('BamAdapter')
15
- const config = BamAdapter.configSchema.create({ type: 'BamAdapter' })
16
- expect(getSnapshot(config)).toMatchSnapshot()
17
- })