@jbrowse/plugin-variants 2.17.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/ChordVariantDisplay/index.d.ts +1 -1
  2. package/dist/ChordVariantDisplay/index.js +1 -2
  3. package/dist/ChordVariantDisplay/models/configSchema.d.ts +1 -4
  4. package/dist/ChordVariantDisplay/models/configSchema.js +1 -10
  5. package/dist/ChordVariantDisplay/models/stateModelFactory.d.ts +10 -28
  6. package/dist/ChordVariantDisplay/models/stateModelFactory.js +2 -23
  7. package/dist/LinearVariantDisplay/configSchema.d.ts +2 -2
  8. package/dist/LinearVariantDisplay/configSchema.js +1 -10
  9. package/dist/LinearVariantDisplay/index.d.ts +1 -1
  10. package/dist/LinearVariantDisplay/index.js +2 -2
  11. package/dist/LinearVariantDisplay/model.d.ts +13 -43
  12. package/dist/LinearVariantDisplay/model.js +1 -17
  13. package/dist/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  14. package/dist/MultiLinearVariantDisplay/components/Crosshair.js +35 -0
  15. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +5 -0
  16. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +29 -0
  17. package/dist/MultiLinearVariantDisplay/configSchema.d.ts +80 -0
  18. package/dist/MultiLinearVariantDisplay/configSchema.js +30 -0
  19. package/dist/MultiLinearVariantDisplay/index.d.ts +2 -0
  20. package/dist/MultiLinearVariantDisplay/index.js +57 -0
  21. package/dist/MultiLinearVariantDisplay/model.d.ts +351 -0
  22. package/dist/MultiLinearVariantDisplay/model.js +83 -0
  23. package/dist/MultiLinearVariantDisplay/renderSvg.d.ts +3 -0
  24. package/dist/MultiLinearVariantDisplay/renderSvg.js +15 -0
  25. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  26. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +28 -0
  27. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +6 -0
  28. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +39 -0
  29. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +5 -0
  30. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +31 -0
  31. package/dist/MultiLinearVariantMatrixDisplay/configSchema.d.ts +37 -0
  32. package/dist/MultiLinearVariantMatrixDisplay/configSchema.js +22 -0
  33. package/dist/MultiLinearVariantMatrixDisplay/index.d.ts +2 -0
  34. package/dist/MultiLinearVariantMatrixDisplay/index.js +24 -0
  35. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +356 -0
  36. package/dist/MultiLinearVariantMatrixDisplay/model.js +113 -0
  37. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +3 -0
  38. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +17 -0
  39. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +34 -0
  40. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +87 -0
  41. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +7 -0
  42. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +38 -0
  43. package/dist/MultiLinearVariantMatrixRenderer/configSchema.d.ts +2 -0
  44. package/dist/MultiLinearVariantMatrixRenderer/configSchema.js +6 -0
  45. package/dist/MultiLinearVariantMatrixRenderer/index.d.ts +2 -0
  46. package/dist/MultiLinearVariantMatrixRenderer/index.js +20 -0
  47. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  48. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +100 -0
  49. package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  50. package/dist/MultiLinearVariantMatrixRenderer/types.js +2 -0
  51. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +31 -0
  52. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.js +73 -0
  53. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +22 -0
  54. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.js +52 -0
  55. package/dist/MultiLinearVariantRenderer/configSchema.d.ts +2 -0
  56. package/dist/MultiLinearVariantRenderer/configSchema.js +8 -0
  57. package/dist/MultiLinearVariantRenderer/index.d.ts +2 -0
  58. package/dist/MultiLinearVariantRenderer/index.js +19 -0
  59. package/dist/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  60. package/dist/MultiLinearVariantRenderer/makeImageData.js +67 -0
  61. package/dist/MultiLinearVariantRenderer/types.d.ts +19 -0
  62. package/dist/MultiLinearVariantRenderer/types.js +2 -0
  63. package/dist/MultiVariantBaseRenderer.d.ts +46 -0
  64. package/dist/MultiVariantBaseRenderer.js +39 -0
  65. package/dist/StructuralVariantChordRenderer/Chord.d.ts +4 -21
  66. package/dist/StructuralVariantChordRenderer/Chord.js +8 -34
  67. package/dist/StructuralVariantChordRenderer/ReactComponent.d.ts +4 -5
  68. package/dist/StructuralVariantChordRenderer/ReactComponent.js +7 -30
  69. package/dist/StructuralVariantChordRenderer/configSchema.d.ts +0 -9
  70. package/dist/StructuralVariantChordRenderer/configSchema.js +1 -13
  71. package/dist/StructuralVariantChordRenderer/index.d.ts +1 -1
  72. package/dist/StructuralVariantChordRenderer/index.js +1 -1
  73. package/dist/StructuralVariantChordRenderer/types.d.ts +17 -0
  74. package/dist/StructuralVariantChordRenderer/types.js +2 -0
  75. package/dist/Tooltip.d.ts +19 -0
  76. package/dist/Tooltip.js +32 -0
  77. package/dist/VariantFeatureWidget/BreakendMultiLevelOptionDialog.js +0 -1
  78. package/dist/VariantFeatureWidget/BreakendSingleLevelOptionDialog.js +0 -1
  79. package/dist/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  80. package/dist/VariantFeatureWidget/Checkbox2.js +2 -5
  81. package/dist/VariantFeatureWidget/LaunchBreakendPanel.d.ts +4 -5
  82. package/dist/VariantFeatureWidget/LaunchBreakendPanel.js +73 -80
  83. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  84. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.js +60 -0
  85. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  86. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.js +15 -0
  87. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  88. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +20 -0
  89. package/dist/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  90. package/dist/VariantFeatureWidget/VariantConsequencePanel.js +15 -0
  91. package/dist/VariantFeatureWidget/VariantFeatureWidget.d.ts +2 -3
  92. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +50 -41
  93. package/dist/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  94. package/dist/VariantFeatureWidget/VariantSampleFilters.js +10 -0
  95. package/dist/VariantFeatureWidget/VariantSampleGrid.d.ts +10 -8
  96. package/dist/VariantFeatureWidget/VariantSampleGrid.js +17 -51
  97. package/dist/VariantFeatureWidget/index.d.ts +1 -1
  98. package/dist/VariantFeatureWidget/index.js +18 -8
  99. package/dist/VariantFeatureWidget/stateModelFactory.d.ts +2 -2
  100. package/dist/VariantFeatureWidget/stateModelFactory.js +1 -1
  101. package/dist/VariantFeatureWidget/types.d.ts +16 -0
  102. package/dist/VariantFeatureWidget/types.js +2 -0
  103. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.d.ts +17 -0
  104. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.js +50 -0
  105. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +26 -0
  106. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +53 -0
  107. package/dist/VariantRPC/MultiVariantGetSources.d.ts +14 -0
  108. package/dist/VariantRPC/MultiVariantGetSources.js +22 -0
  109. package/dist/VariantTrack/configSchema.d.ts +2 -3
  110. package/dist/VariantTrack/configSchema.js +6 -13
  111. package/dist/VariantTrack/index.d.ts +1 -1
  112. package/dist/VcfAdapter/VcfAdapter.d.ts +10 -2
  113. package/dist/VcfAdapter/VcfAdapter.js +32 -8
  114. package/dist/VcfAdapter/configSchema.d.ts +8 -3
  115. package/dist/VcfAdapter/configSchema.js +13 -8
  116. package/dist/VcfAdapter/index.d.ts +1 -1
  117. package/dist/VcfAdapter/index.js +17 -7
  118. package/dist/VcfFeature/index.d.ts +5 -29
  119. package/dist/VcfFeature/index.js +36 -26
  120. package/dist/VcfFeature/util.d.ts +1 -4
  121. package/dist/VcfFeature/util.js +3 -16
  122. package/dist/VcfTabixAdapter/VcfTabixAdapter.d.ts +7 -3
  123. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +44 -13
  124. package/dist/VcfTabixAdapter/configSchema.d.ts +8 -9
  125. package/dist/VcfTabixAdapter/configSchema.js +10 -14
  126. package/dist/VcfTabixAdapter/index.d.ts +1 -1
  127. package/dist/VcfTabixAdapter/index.js +17 -7
  128. package/dist/extensionPoints.d.ts +1 -1
  129. package/dist/extensionPoints.js +21 -33
  130. package/dist/getMultiVariantFeaturesAutorun.d.ts +16 -0
  131. package/dist/getMultiVariantFeaturesAutorun.js +41 -0
  132. package/dist/getMultiVariantSourcesAutorun.d.ts +11 -0
  133. package/dist/getMultiVariantSourcesAutorun.js +37 -0
  134. package/dist/index.d.ts +1 -1
  135. package/dist/index.js +18 -4
  136. package/dist/shared/BulkEditPanel.d.ts +5 -0
  137. package/dist/shared/BulkEditPanel.js +84 -0
  138. package/dist/shared/ClusterDialog.d.ts +11 -0
  139. package/dist/shared/ClusterDialog.js +109 -0
  140. package/dist/shared/ColorLegend.d.ts +10 -0
  141. package/dist/shared/ColorLegend.js +22 -0
  142. package/dist/shared/HelpfulTips.d.ts +1 -0
  143. package/dist/shared/HelpfulTips.js +7 -0
  144. package/dist/shared/LegendBar.d.ts +18 -0
  145. package/dist/shared/LegendBar.js +32 -0
  146. package/dist/shared/MAFFilterDialog.d.ts +8 -0
  147. package/dist/shared/MAFFilterDialog.js +28 -0
  148. package/dist/shared/MultiVariantBaseModel.d.ts +341 -0
  149. package/dist/shared/MultiVariantBaseModel.js +316 -0
  150. package/dist/shared/MultiVariantTooltip.d.ts +6 -0
  151. package/dist/shared/MultiVariantTooltip.js +23 -0
  152. package/dist/shared/RectBg.d.ts +8 -0
  153. package/dist/shared/RectBg.js +8 -0
  154. package/dist/shared/RowPalettizer.d.ts +5 -0
  155. package/dist/shared/RowPalettizer.js +40 -0
  156. package/dist/shared/SetColorDialog.d.ts +11 -0
  157. package/dist/shared/SetColorDialog.js +55 -0
  158. package/dist/shared/SetMinMaxDialog.d.ts +10 -0
  159. package/dist/shared/SetMinMaxDialog.js +26 -0
  160. package/dist/shared/SetRowHeightDialog.d.ts +8 -0
  161. package/dist/shared/SetRowHeightDialog.js +18 -0
  162. package/dist/shared/SharedVariantConfigSchema.d.ts +66 -0
  163. package/dist/shared/SharedVariantConfigSchema.js +56 -0
  164. package/dist/shared/SharedVariantMixin.d.ts +309 -0
  165. package/dist/shared/SharedVariantMixin.js +58 -0
  166. package/dist/shared/SourcesDataGrid.d.ts +6 -0
  167. package/dist/shared/SourcesDataGrid.js +68 -0
  168. package/dist/shared/SourcesGrid.d.ts +7 -0
  169. package/dist/shared/SourcesGrid.js +14 -0
  170. package/dist/shared/SourcesGridHeader.d.ts +7 -0
  171. package/dist/shared/SourcesGridHeader.js +41 -0
  172. package/dist/shared/multiVariantColor.d.ts +3 -0
  173. package/dist/shared/multiVariantColor.js +50 -0
  174. package/dist/shared/util.d.ts +10 -0
  175. package/dist/shared/util.js +32 -0
  176. package/dist/types.d.ts +14 -0
  177. package/dist/types.js +2 -0
  178. package/dist/util.d.ts +8 -0
  179. package/dist/util.js +86 -0
  180. package/esm/ChordVariantDisplay/index.d.ts +1 -1
  181. package/esm/ChordVariantDisplay/index.js +1 -2
  182. package/esm/ChordVariantDisplay/models/configSchema.d.ts +1 -4
  183. package/esm/ChordVariantDisplay/models/configSchema.js +1 -10
  184. package/esm/ChordVariantDisplay/models/stateModelFactory.d.ts +10 -28
  185. package/esm/ChordVariantDisplay/models/stateModelFactory.js +3 -24
  186. package/esm/LinearVariantDisplay/configSchema.d.ts +2 -2
  187. package/esm/LinearVariantDisplay/configSchema.js +1 -10
  188. package/esm/LinearVariantDisplay/index.d.ts +1 -1
  189. package/esm/LinearVariantDisplay/index.js +2 -2
  190. package/esm/LinearVariantDisplay/model.d.ts +13 -43
  191. package/esm/LinearVariantDisplay/model.js +2 -18
  192. package/esm/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  193. package/esm/MultiLinearVariantDisplay/components/Crosshair.js +30 -0
  194. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +5 -0
  195. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +24 -0
  196. package/esm/MultiLinearVariantDisplay/configSchema.d.ts +80 -0
  197. package/esm/MultiLinearVariantDisplay/configSchema.js +24 -0
  198. package/esm/MultiLinearVariantDisplay/index.d.ts +2 -0
  199. package/esm/MultiLinearVariantDisplay/index.js +18 -0
  200. package/esm/MultiLinearVariantDisplay/model.d.ts +351 -0
  201. package/esm/MultiLinearVariantDisplay/model.js +44 -0
  202. package/esm/MultiLinearVariantDisplay/renderSvg.d.ts +3 -0
  203. package/esm/MultiLinearVariantDisplay/renderSvg.js +9 -0
  204. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  205. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +23 -0
  206. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +6 -0
  207. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +37 -0
  208. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +5 -0
  209. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +26 -0
  210. package/esm/MultiLinearVariantMatrixDisplay/configSchema.d.ts +37 -0
  211. package/esm/MultiLinearVariantMatrixDisplay/configSchema.js +16 -0
  212. package/esm/MultiLinearVariantMatrixDisplay/index.d.ts +2 -0
  213. package/esm/MultiLinearVariantMatrixDisplay/index.js +18 -0
  214. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +356 -0
  215. package/esm/MultiLinearVariantMatrixDisplay/model.js +74 -0
  216. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +3 -0
  217. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +11 -0
  218. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +34 -0
  219. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +48 -0
  220. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +7 -0
  221. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +36 -0
  222. package/esm/MultiLinearVariantMatrixRenderer/configSchema.d.ts +2 -0
  223. package/esm/MultiLinearVariantMatrixRenderer/configSchema.js +4 -0
  224. package/esm/MultiLinearVariantMatrixRenderer/index.d.ts +2 -0
  225. package/esm/MultiLinearVariantMatrixRenderer/index.js +14 -0
  226. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  227. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +97 -0
  228. package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  229. package/esm/MultiLinearVariantMatrixRenderer/types.js +1 -0
  230. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +31 -0
  231. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.js +34 -0
  232. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +22 -0
  233. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.js +47 -0
  234. package/esm/MultiLinearVariantRenderer/configSchema.d.ts +2 -0
  235. package/esm/MultiLinearVariantRenderer/configSchema.js +6 -0
  236. package/esm/MultiLinearVariantRenderer/index.d.ts +2 -0
  237. package/esm/MultiLinearVariantRenderer/index.js +13 -0
  238. package/esm/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  239. package/esm/MultiLinearVariantRenderer/makeImageData.js +61 -0
  240. package/esm/MultiLinearVariantRenderer/types.d.ts +19 -0
  241. package/esm/MultiLinearVariantRenderer/types.js +1 -0
  242. package/esm/MultiVariantBaseRenderer.d.ts +46 -0
  243. package/esm/MultiVariantBaseRenderer.js +33 -0
  244. package/esm/StructuralVariantChordRenderer/Chord.d.ts +4 -21
  245. package/esm/StructuralVariantChordRenderer/Chord.js +8 -11
  246. package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +4 -5
  247. package/esm/StructuralVariantChordRenderer/ReactComponent.js +7 -7
  248. package/esm/StructuralVariantChordRenderer/configSchema.d.ts +0 -9
  249. package/esm/StructuralVariantChordRenderer/configSchema.js +1 -13
  250. package/esm/StructuralVariantChordRenderer/index.d.ts +1 -1
  251. package/esm/StructuralVariantChordRenderer/index.js +1 -1
  252. package/esm/StructuralVariantChordRenderer/types.d.ts +17 -0
  253. package/esm/StructuralVariantChordRenderer/types.js +1 -0
  254. package/esm/Tooltip.d.ts +19 -0
  255. package/esm/Tooltip.js +27 -0
  256. package/esm/VariantFeatureWidget/BreakendMultiLevelOptionDialog.js +0 -1
  257. package/esm/VariantFeatureWidget/BreakendSingleLevelOptionDialog.js +0 -1
  258. package/esm/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  259. package/esm/VariantFeatureWidget/Checkbox2.js +2 -2
  260. package/esm/VariantFeatureWidget/LaunchBreakendPanel.d.ts +4 -5
  261. package/esm/VariantFeatureWidget/LaunchBreakendPanel.js +55 -72
  262. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  263. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.js +24 -0
  264. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  265. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.js +9 -0
  266. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  267. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +17 -0
  268. package/esm/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  269. package/esm/VariantFeatureWidget/VariantConsequencePanel.js +9 -0
  270. package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +2 -3
  271. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +33 -34
  272. package/esm/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  273. package/esm/VariantFeatureWidget/VariantSampleFilters.js +7 -0
  274. package/esm/VariantFeatureWidget/VariantSampleGrid.d.ts +10 -8
  275. package/esm/VariantFeatureWidget/VariantSampleGrid.js +18 -29
  276. package/esm/VariantFeatureWidget/index.d.ts +1 -1
  277. package/esm/VariantFeatureWidget/index.js +1 -1
  278. package/esm/VariantFeatureWidget/stateModelFactory.d.ts +2 -2
  279. package/esm/VariantFeatureWidget/stateModelFactory.js +1 -1
  280. package/esm/VariantFeatureWidget/types.d.ts +16 -0
  281. package/esm/VariantFeatureWidget/types.js +1 -0
  282. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.d.ts +17 -0
  283. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +43 -0
  284. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +26 -0
  285. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +46 -0
  286. package/esm/VariantRPC/MultiVariantGetSources.d.ts +14 -0
  287. package/esm/VariantRPC/MultiVariantGetSources.js +15 -0
  288. package/esm/VariantTrack/configSchema.d.ts +2 -3
  289. package/esm/VariantTrack/configSchema.js +5 -13
  290. package/esm/VariantTrack/index.d.ts +1 -1
  291. package/esm/VcfAdapter/VcfAdapter.d.ts +10 -2
  292. package/esm/VcfAdapter/VcfAdapter.js +34 -10
  293. package/esm/VcfAdapter/configSchema.d.ts +8 -3
  294. package/esm/VcfAdapter/configSchema.js +13 -8
  295. package/esm/VcfAdapter/index.d.ts +1 -1
  296. package/esm/VcfFeature/index.d.ts +5 -29
  297. package/esm/VcfFeature/index.js +36 -26
  298. package/esm/VcfFeature/util.d.ts +1 -4
  299. package/esm/VcfFeature/util.js +3 -16
  300. package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +7 -3
  301. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +45 -14
  302. package/esm/VcfTabixAdapter/configSchema.d.ts +8 -9
  303. package/esm/VcfTabixAdapter/configSchema.js +10 -14
  304. package/esm/VcfTabixAdapter/index.d.ts +1 -1
  305. package/esm/extensionPoints.d.ts +1 -1
  306. package/esm/extensionPoints.js +22 -34
  307. package/esm/getMultiVariantFeaturesAutorun.d.ts +16 -0
  308. package/esm/getMultiVariantFeaturesAutorun.js +38 -0
  309. package/esm/getMultiVariantSourcesAutorun.d.ts +11 -0
  310. package/esm/getMultiVariantSourcesAutorun.js +34 -0
  311. package/esm/index.d.ts +1 -1
  312. package/esm/index.js +18 -4
  313. package/esm/shared/BulkEditPanel.d.ts +5 -0
  314. package/esm/shared/BulkEditPanel.js +81 -0
  315. package/esm/shared/ClusterDialog.d.ts +11 -0
  316. package/esm/shared/ClusterDialog.js +103 -0
  317. package/esm/shared/ColorLegend.d.ts +10 -0
  318. package/esm/shared/ColorLegend.js +17 -0
  319. package/esm/shared/HelpfulTips.d.ts +1 -0
  320. package/esm/shared/HelpfulTips.js +4 -0
  321. package/esm/shared/LegendBar.d.ts +18 -0
  322. package/esm/shared/LegendBar.js +26 -0
  323. package/esm/shared/MAFFilterDialog.d.ts +8 -0
  324. package/esm/shared/MAFFilterDialog.js +26 -0
  325. package/esm/shared/MultiVariantBaseModel.d.ts +341 -0
  326. package/esm/shared/MultiVariantBaseModel.js +277 -0
  327. package/esm/shared/MultiVariantTooltip.d.ts +6 -0
  328. package/esm/shared/MultiVariantTooltip.js +17 -0
  329. package/esm/shared/RectBg.d.ts +8 -0
  330. package/esm/shared/RectBg.js +6 -0
  331. package/esm/shared/RowPalettizer.d.ts +5 -0
  332. package/esm/shared/RowPalettizer.js +37 -0
  333. package/esm/shared/SetColorDialog.d.ts +11 -0
  334. package/esm/shared/SetColorDialog.js +49 -0
  335. package/esm/shared/SetMinMaxDialog.d.ts +10 -0
  336. package/esm/shared/SetMinMaxDialog.js +23 -0
  337. package/esm/shared/SetRowHeightDialog.d.ts +8 -0
  338. package/esm/shared/SetRowHeightDialog.js +15 -0
  339. package/esm/shared/SharedVariantConfigSchema.d.ts +66 -0
  340. package/esm/shared/SharedVariantConfigSchema.js +53 -0
  341. package/esm/shared/SharedVariantMixin.d.ts +309 -0
  342. package/esm/shared/SharedVariantMixin.js +55 -0
  343. package/esm/shared/SourcesDataGrid.d.ts +6 -0
  344. package/esm/shared/SourcesDataGrid.js +62 -0
  345. package/esm/shared/SourcesGrid.d.ts +7 -0
  346. package/esm/shared/SourcesGrid.js +9 -0
  347. package/esm/shared/SourcesGridHeader.d.ts +7 -0
  348. package/esm/shared/SourcesGridHeader.js +35 -0
  349. package/esm/shared/multiVariantColor.d.ts +3 -0
  350. package/esm/shared/multiVariantColor.js +45 -0
  351. package/esm/shared/util.d.ts +10 -0
  352. package/esm/shared/util.js +28 -0
  353. package/esm/types.d.ts +14 -0
  354. package/esm/types.js +1 -0
  355. package/esm/util.d.ts +8 -0
  356. package/esm/util.js +77 -0
  357. package/package.json +7 -8
  358. package/dist/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  359. package/dist/VariantFeatureWidget/AnnotGrid.js +0 -39
  360. package/dist/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  361. package/dist/VariantFeatureWidget/VariantAnnotationTable.js +0 -16
  362. package/esm/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  363. package/esm/VariantFeatureWidget/AnnotGrid.js +0 -13
  364. package/esm/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  365. package/esm/VariantFeatureWidget/VariantAnnotationTable.js +0 -10
@@ -0,0 +1,16 @@
1
+ export interface Descriptions {
2
+ INFO?: {
3
+ ANN?: {
4
+ Description?: string;
5
+ };
6
+ CSQ?: {
7
+ Description?: string;
8
+ };
9
+ };
10
+ }
11
+ export interface ReducedFeature {
12
+ INFO?: {
13
+ ANN?: string[];
14
+ CSQ?: string[];
15
+ };
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import type { Region } from '@jbrowse/core/util';
4
+ export declare class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameRegions {
5
+ name: string;
6
+ execute(args: {
7
+ adapterConfig: AnyConfigurationModel;
8
+ stopToken?: string;
9
+ sessionId: string;
10
+ headers?: Record<string, string>;
11
+ regions: Region[];
12
+ bpPerPx: number;
13
+ }, rpcDriverClassName: string): Promise<Record<string, {
14
+ name: string;
15
+ genotypes: number[];
16
+ }>>;
17
+ }
@@ -0,0 +1,43 @@
1
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache';
2
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
3
+ import { firstValueFrom, toArray } from 'rxjs';
4
+ import { getFeaturesThatPassMinorAlleleFrequencyFilter } from '../util';
5
+ export class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameRegions {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'MultiVariantGetGenotypeMatrix';
9
+ }
10
+ async execute(args, rpcDriverClassName) {
11
+ const pm = this.pluginManager;
12
+ const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
13
+ const { sources, minorAlleleFrequencyFilter, regions, adapterConfig, sessionId, } = deserializedArgs;
14
+ const adapter = await getAdapter(pm, sessionId, adapterConfig);
15
+ const dataAdapter = adapter.dataAdapter;
16
+ const region = regions[0];
17
+ const feats = await firstValueFrom(dataAdapter.getFeatures(region, deserializedArgs).pipe(toArray()));
18
+ const genotypeFactor = new Set();
19
+ const mafs = getFeaturesThatPassMinorAlleleFrequencyFilter(feats, minorAlleleFrequencyFilter);
20
+ for (const feat of feats) {
21
+ const samp = feat.get('genotypes');
22
+ for (const { name } of sources) {
23
+ const s = samp[name];
24
+ genotypeFactor.add(s);
25
+ }
26
+ }
27
+ const genotypeFactorMap = Object.fromEntries([...genotypeFactor].map((type, idx) => [type, idx]));
28
+ const rows = {};
29
+ for (const feat of mafs) {
30
+ const samp = feat.get('genotypes');
31
+ for (const { name } of sources) {
32
+ if (!rows[name]) {
33
+ rows[name] = {
34
+ name,
35
+ genotypes: [],
36
+ };
37
+ }
38
+ rows[name].genotypes.push(genotypeFactorMap[samp[name]]);
39
+ }
40
+ }
41
+ return rows;
42
+ }
43
+ }
@@ -0,0 +1,26 @@
1
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import type { SampleInfo } from '../types';
3
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
4
+ import type { Region } from '@jbrowse/core/util';
5
+ export declare class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions {
6
+ name: string;
7
+ execute(args: {
8
+ adapterConfig: AnyConfigurationModel;
9
+ stopToken?: string;
10
+ sessionId: string;
11
+ headers?: Record<string, string>;
12
+ regions: Region[];
13
+ bpPerPx: number;
14
+ }, rpcDriverClassName: string): Promise<{
15
+ hasPhased: boolean;
16
+ sampleInfo: Record<string, SampleInfo>;
17
+ features: {
18
+ id: string;
19
+ data: {
20
+ start: number;
21
+ end: number;
22
+ refName: string;
23
+ };
24
+ }[];
25
+ }>;
26
+ }
@@ -0,0 +1,46 @@
1
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache';
2
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
3
+ import { firstValueFrom, toArray } from 'rxjs';
4
+ import { getFeaturesThatPassMinorAlleleFrequencyFilter } from '../util';
5
+ export class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.name = 'MultiVariantGetSimplifiedFeatures';
9
+ }
10
+ async execute(args, rpcDriverClassName) {
11
+ var _a, _b;
12
+ const pm = this.pluginManager;
13
+ const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
14
+ const { minorAlleleFrequencyFilter, regions, adapterConfig, sessionId } = deserializedArgs;
15
+ const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig);
16
+ const feats = await firstValueFrom(dataAdapter
17
+ .getFeaturesInMultipleRegions(regions, deserializedArgs)
18
+ .pipe(toArray()));
19
+ const features = getFeaturesThatPassMinorAlleleFrequencyFilter(feats, minorAlleleFrequencyFilter);
20
+ const sampleInfo = {};
21
+ let hasPhased = false;
22
+ for (const f of features) {
23
+ const samp = f.get('genotypes');
24
+ for (const [key, val] of Object.entries(samp)) {
25
+ const isPhased = val.includes('|');
26
+ hasPhased || (hasPhased = isPhased);
27
+ sampleInfo[key] = {
28
+ maxPloidy: Math.max(((_a = sampleInfo[key]) === null || _a === void 0 ? void 0 : _a.maxPloidy) || 0, val.split('|').length),
29
+ isPhased: ((_b = sampleInfo[key]) === null || _b === void 0 ? void 0 : _b.isPhased) || isPhased,
30
+ };
31
+ }
32
+ }
33
+ return {
34
+ hasPhased,
35
+ sampleInfo,
36
+ features: features.map(f => ({
37
+ id: f.id(),
38
+ data: {
39
+ start: f.get('start'),
40
+ end: f.get('end'),
41
+ refName: f.get('refName'),
42
+ },
43
+ })),
44
+ };
45
+ }
46
+ }
@@ -0,0 +1,14 @@
1
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
+ import type { Region } from '@jbrowse/core/util';
4
+ export declare class MultiVariantGetSources extends RpcMethodTypeWithFiltersAndRenameRegions {
5
+ name: string;
6
+ execute(args: {
7
+ adapterConfig: AnyConfigurationModel;
8
+ stopToken?: string;
9
+ sessionId: string;
10
+ headers?: Record<string, string>;
11
+ regions: Region[];
12
+ bpPerPx: number;
13
+ }, rpcDriverClassName: string): Promise<any>;
14
+ }
@@ -0,0 +1,15 @@
1
+ import { getAdapter } from '@jbrowse/core/data_adapters/dataAdapterCache';
2
+ import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
3
+ export class MultiVariantGetSources extends RpcMethodTypeWithFiltersAndRenameRegions {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.name = 'MultiVariantGetSources';
7
+ }
8
+ async execute(args, rpcDriverClassName) {
9
+ const pm = this.pluginManager;
10
+ const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
11
+ const { regions, adapterConfig, sessionId } = deserializedArgs;
12
+ const { dataAdapter } = await getAdapter(pm, sessionId, adapterConfig);
13
+ return dataAdapter.getSources(regions, deserializedArgs);
14
+ }
15
+ }
@@ -1,5 +1,5 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
2
- declare const configSchema: (pluginManager: PluginManager) => import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function VariantTrackF(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
3
3
  name: {
4
4
  description: string;
5
5
  type: string;
@@ -77,4 +77,3 @@ declare const configSchema: (pluginManager: PluginManager) => import("@jbrowse/c
77
77
  };
78
78
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
79
79
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "trackId">>, undefined>>;
80
- export default configSchema;
@@ -1,15 +1,7 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  import { createBaseTrackConfig } from '@jbrowse/core/pluggableElementTypes';
3
- /**
4
- * #config VariantTrack
5
- * Mostly similar to feature track, but has `ChordDisplayType` registered to it,
6
- * and custom feature details in `LinearVariantDisplay`
7
- */
8
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
9
- const configSchema = (pluginManager) => ConfigurationSchema('VariantTrack', {}, {
10
- /**
11
- * #baseConfiguration
12
- */
13
- baseConfiguration: createBaseTrackConfig(pluginManager),
14
- });
15
- export default configSchema;
3
+ export default function VariantTrackF(pluginManager) {
4
+ return ConfigurationSchema('VariantTrack', {}, {
5
+ baseConfiguration: createBaseTrackConfig(pluginManager),
6
+ });
7
+ }
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function VariantTrackF(pm: PluginManager): void;
@@ -1,11 +1,14 @@
1
- import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { Region, Feature } from '@jbrowse/core/util';
3
1
  import IntervalTree from '@flatten-js/interval-tree';
2
+ import VcfParser from '@gmod/vcf';
3
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
4
+ import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
5
+ import type { Feature, Region } from '@jbrowse/core/util';
4
6
  type StatusCallback = (arg: string) => void;
5
7
  export default class VcfAdapter extends BaseFeatureDataAdapter {
6
8
  calculatedIntervalTreeMap: Record<string, IntervalTree>;
7
9
  vcfFeatures?: Promise<{
8
10
  header: string;
11
+ parser: VcfParser;
9
12
  intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
10
13
  }>;
11
14
  static capabilities: string[];
@@ -13,16 +16,21 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
13
16
  getMetadata(): Promise<any>;
14
17
  setupP(opts?: BaseOptions): Promise<{
15
18
  header: string;
19
+ parser: VcfParser;
16
20
  intervalTreeMap: {
17
21
  [k: string]: (sc?: (arg: string) => void) => IntervalTree<any>;
18
22
  };
19
23
  }>;
20
24
  setup(): Promise<{
21
25
  header: string;
26
+ parser: VcfParser;
22
27
  intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
23
28
  }>;
24
29
  getRefNames(_?: BaseOptions): Promise<string[]>;
25
30
  getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
31
+ getSources(): Promise<{
32
+ name: string;
33
+ }[]>;
26
34
  freeResources(): void;
27
35
  }
28
36
  export {};
@@ -1,10 +1,9 @@
1
- import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
1
+ import IntervalTree from '@flatten-js/interval-tree';
2
+ import VcfParser from '@gmod/vcf';
3
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
2
4
  import { fetchAndMaybeUnzip } from '@jbrowse/core/util';
3
5
  import { openLocation } from '@jbrowse/core/util/io';
4
6
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
5
- import IntervalTree from '@flatten-js/interval-tree';
6
- import VCF from '@gmod/vcf';
7
- // local
8
7
  import VcfFeature from '../VcfFeature';
9
8
  class VcfAdapter extends BaseFeatureDataAdapter {
10
9
  constructor() {
@@ -16,8 +15,7 @@ class VcfAdapter extends BaseFeatureDataAdapter {
16
15
  return header;
17
16
  }
18
17
  async getMetadata() {
19
- const { header } = await this.setup();
20
- const parser = new VCF({ header });
18
+ const { parser } = await this.setup();
21
19
  return parser.getMetadata();
22
20
  }
23
21
  async setupP(opts) {
@@ -30,8 +28,7 @@ class VcfAdapter extends BaseFeatureDataAdapter {
30
28
  const decoder = new TextDecoder('utf8');
31
29
  let i = 0;
32
30
  while (blockStart < buffer.length) {
33
- const n = buffer.indexOf('\n', blockStart);
34
- // could be a non-newline ended file, so slice to end of file if n===-1
31
+ const n = buffer.indexOf(10, blockStart);
35
32
  const b = n === -1 ? buffer.subarray(blockStart) : buffer.subarray(blockStart, n);
36
33
  const line = decoder.decode(b).trim();
37
34
  if (line) {
@@ -53,7 +50,7 @@ class VcfAdapter extends BaseFeatureDataAdapter {
53
50
  blockStart = n + 1;
54
51
  }
55
52
  const header = headerLines.join('\n');
56
- const parser = new VCF({ header });
53
+ const parser = new VcfParser({ header });
57
54
  const intervalTreeMap = Object.fromEntries(Object.entries(featureMap).map(([refName, lines]) => [
58
55
  refName,
59
56
  (sc) => {
@@ -76,6 +73,7 @@ class VcfAdapter extends BaseFeatureDataAdapter {
76
73
  ]));
77
74
  return {
78
75
  header,
76
+ parser,
79
77
  intervalTreeMap,
80
78
  };
81
79
  }
@@ -106,7 +104,33 @@ class VcfAdapter extends BaseFeatureDataAdapter {
106
104
  catch (e) {
107
105
  observer.error(e);
108
106
  }
109
- }, opts.signal);
107
+ }, opts.stopToken);
108
+ }
109
+ async getSources() {
110
+ const conf = this.getConf('samplesTsvLocation');
111
+ if (conf.uri === '' || conf.uri === '/path/to/samples.tsv') {
112
+ const { parser } = await this.setup();
113
+ return parser.samples.map(name => ({
114
+ name,
115
+ }));
116
+ }
117
+ else {
118
+ const txt = await openLocation(conf).readFile('utf8');
119
+ const lines = txt.split(/\n|\r\n|\r/);
120
+ const header = lines[0].split('\t');
121
+ const { parser } = await this.setup();
122
+ const s = new Set(parser.samples);
123
+ return lines
124
+ .slice(1)
125
+ .map(line => {
126
+ const cols = line.split('\t');
127
+ return {
128
+ name: cols[0],
129
+ ...Object.fromEntries(cols.slice(1).map((c, idx) => [header[idx + 1], c])),
130
+ };
131
+ })
132
+ .filter(f => s.has(f.name));
133
+ }
110
134
  }
111
135
  freeResources() { }
112
136
  }
@@ -1,7 +1,4 @@
1
1
  declare const VcfAdapter: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
- /**
3
- * #slot
4
- */
5
2
  vcfLocation: {
6
3
  type: string;
7
4
  defaultValue: {
@@ -9,5 +6,13 @@ declare const VcfAdapter: import("@jbrowse/core/configuration/configurationSchem
9
6
  locationType: string;
10
7
  };
11
8
  };
9
+ samplesTsvLocation: {
10
+ type: string;
11
+ defaultValue: {
12
+ uri: string;
13
+ description: string;
14
+ locationType: string;
15
+ };
16
+ };
12
17
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
13
18
  export default VcfAdapter;
@@ -1,15 +1,20 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
- /**
3
- * #config VcfAdapter
4
- */
5
- function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
2
+ function x() { }
6
3
  const VcfAdapter = ConfigurationSchema('VcfAdapter', {
7
- /**
8
- * #slot
9
- */
10
4
  vcfLocation: {
11
5
  type: 'fileLocation',
12
- defaultValue: { uri: '/path/to/my.vcf', locationType: 'UriLocation' },
6
+ defaultValue: {
7
+ uri: '/path/to/my.vcf',
8
+ locationType: 'UriLocation',
9
+ },
10
+ },
11
+ samplesTsvLocation: {
12
+ type: 'fileLocation',
13
+ defaultValue: {
14
+ uri: '/path/to/samples.tsv',
15
+ description: 'tsv with header like name\tpopulation\tetc. where the first column is required, and is the sample names',
16
+ locationType: 'UriLocation',
17
+ },
13
18
  },
14
19
  }, { explicitlyTyped: true });
15
20
  export default VcfAdapter;
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function VcfAdapterF(pluginManager: PluginManager): void;
@@ -1,43 +1,19 @@
1
- import { Feature } from '@jbrowse/core/util';
2
- import VCF from '@gmod/vcf';
3
- type Samples = Record<string, Record<string, {
4
- values: string[] | number[] | null;
5
- }>>;
6
- interface FeatureData {
7
- [key: string]: unknown;
8
- refName: string;
9
- start: number;
10
- end: number;
11
- description?: string;
12
- type?: string;
13
- name?: string;
14
- aliases?: string[];
15
- samples?: Samples;
16
- }
1
+ import type VCFParser from '@gmod/vcf';
2
+ import type { Variant } from '@gmod/vcf';
3
+ import type { Feature } from '@jbrowse/core/util';
17
4
  export default class VCFFeature implements Feature {
18
5
  private variant;
19
6
  private parser;
20
7
  private data;
21
8
  private _id;
22
9
  constructor(args: {
23
- variant: any;
24
- parser: VCF;
10
+ variant: Variant;
11
+ parser: VCFParser;
25
12
  id: string;
26
13
  });
27
14
  get(field: string): any;
28
- set(): void;
29
15
  parent(): undefined;
30
16
  children(): undefined;
31
- tags(): string[];
32
17
  id(): string;
33
- dataFromVariant(variant: {
34
- REF: string;
35
- POS: number;
36
- ALT?: string[];
37
- CHROM: string;
38
- INFO: any;
39
- ID?: string[];
40
- }): FeatureData;
41
18
  toJSON(): any;
42
19
  }
43
- export {};
@@ -1,53 +1,63 @@
1
- // locals
2
1
  import { getSOTermAndDescription } from './util';
2
+ function dataFromVariant(variant, parser) {
3
+ const { FORMAT, REF = '', ALT, POS, CHROM, ID } = variant;
4
+ const start = POS - 1;
5
+ const [type, description] = getSOTermAndDescription(REF, ALT, parser);
6
+ return {
7
+ refName: CHROM,
8
+ start,
9
+ end: getEnd(variant),
10
+ description,
11
+ type,
12
+ name: ID === null || ID === void 0 ? void 0 : ID.join(','),
13
+ aliases: ID && ID.length > 1 ? ID.slice(1) : undefined,
14
+ format: FORMAT,
15
+ };
16
+ }
17
+ function getEnd(variant) {
18
+ const { POS, REF = '', ALT } = variant;
19
+ const isTRA = ALT === null || ALT === void 0 ? void 0 : ALT.includes('<TRA>');
20
+ const start = POS - 1;
21
+ const isSymbolic = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f.includes('<'));
22
+ if (isSymbolic) {
23
+ const info = variant.INFO;
24
+ if (info.END && !isTRA) {
25
+ return +info.END[0];
26
+ }
27
+ }
28
+ return start + REF.length;
29
+ }
3
30
  export default class VCFFeature {
4
31
  constructor(args) {
5
32
  this.variant = args.variant;
6
33
  this.parser = args.parser;
7
- this.data = this.dataFromVariant(this.variant);
34
+ this.data = dataFromVariant(this.variant, this.parser);
8
35
  this._id = args.id;
9
36
  }
10
37
  get(field) {
11
38
  var _a;
12
39
  return field === 'samples'
13
- ? this.variant.SAMPLES
14
- : ((_a = this.data[field]) !== null && _a !== void 0 ? _a : this.variant[field]);
40
+ ? this.variant.SAMPLES()
41
+ : field === 'genotypes'
42
+ ? this.variant.GENOTYPES()
43
+ : ((_a = this.data[field]) !== null && _a !== void 0 ? _a : this.variant[field]);
15
44
  }
16
- set() { }
17
45
  parent() {
18
46
  return undefined;
19
47
  }
20
48
  children() {
21
49
  return undefined;
22
50
  }
23
- tags() {
24
- return [...Object.keys(this.data), ...Object.keys(this.variant), 'samples'];
25
- }
26
51
  id() {
27
52
  return this._id;
28
53
  }
29
- dataFromVariant(variant) {
30
- const { REF, ALT, POS, CHROM, INFO, ID } = variant;
31
- const start = POS - 1;
32
- const [type, description] = getSOTermAndDescription(REF, ALT, this.parser);
33
- const isTRA = ALT === null || ALT === void 0 ? void 0 : ALT.includes('<TRA>');
34
- const isSymbolic = ALT === null || ALT === void 0 ? void 0 : ALT.some(f => f.includes('<'));
35
- return {
36
- refName: CHROM,
37
- start,
38
- end: isSymbolic && INFO.END && !isTRA ? +INFO.END[0] : start + REF.length,
39
- description,
40
- type,
41
- name: ID === null || ID === void 0 ? void 0 : ID.join(','),
42
- aliases: ID && ID.length > 1 ? ID.slice(1) : undefined,
43
- };
44
- }
45
54
  toJSON() {
55
+ const { SAMPLES, GENOTYPES, ...rest } = this.variant;
46
56
  return {
47
57
  uniqueId: this._id,
48
- ...this.variant,
58
+ ...rest,
49
59
  ...this.data,
50
- samples: this.variant.SAMPLES,
60
+ samples: this.variant.SAMPLES(),
51
61
  };
52
62
  }
53
63
  }
@@ -1,7 +1,4 @@
1
- import VCF from '@gmod/vcf';
2
- /**
3
- * Get a sequence ontology (SO) term that describes the variant type
4
- */
1
+ import type VCF from '@gmod/vcf';
5
2
  export declare function getSOTermAndDescription(ref: string, alt: string[] | undefined, parser: VCF): string[];
6
3
  export declare function getSOAndDescFromAltDefs(alt: string, parser: VCF): string[];
7
4
  export declare function getSOAndDescByExamination(ref: string, alt: string): string[];
@@ -11,11 +11,7 @@ const altTypeToSO = {
11
11
  NON_REF: 'sequence_variant',
12
12
  '*': 'sequence_variant',
13
13
  };
14
- /**
15
- * Get a sequence ontology (SO) term that describes the variant type
16
- */
17
14
  export function getSOTermAndDescription(ref, alt, parser) {
18
- // it's just a remark if there are no alternate alleles
19
15
  if (!alt || alt.length === 0) {
20
16
  return ['remark', 'no alternative alleles'];
21
17
  }
@@ -32,7 +28,6 @@ export function getSOTermAndDescription(ref, alt, parser) {
32
28
  descriptions.add(description);
33
29
  }
34
30
  });
35
- // Combine descriptions like ["SNV G -> A", "SNV G -> T"] to ["SNV G -> A,T"]
36
31
  if (descriptions.size > 1) {
37
32
  const descs = [...descriptions];
38
33
  const prefixes = new Set(descs
@@ -51,35 +46,27 @@ export function getSOTermAndDescription(ref, alt, parser) {
51
46
  return suffixes.length ? `${prefix} -> ${suffixes.join(',')}` : prefix;
52
47
  }));
53
48
  }
54
- if (soTerms.size) {
55
- return [[...soTerms].join(','), [...descriptions].join(',')];
56
- }
57
- return [];
49
+ return soTerms.size
50
+ ? [[...soTerms].join(','), [...descriptions].join(',')]
51
+ : [];
58
52
  }
59
53
  export function getSOAndDescFromAltDefs(alt, parser) {
60
54
  if (typeof alt === 'string' && !alt.startsWith('<')) {
61
55
  return [];
62
56
  }
63
- // look for a definition with an SO type for this
64
57
  let soTerm = altTypeToSO[alt];
65
- // if no SO term but ALT is in metadata, assume sequence_variant
66
58
  if (!soTerm && parser.getMetadata('ALT', alt)) {
67
59
  soTerm = 'sequence_variant';
68
60
  }
69
61
  if (soTerm) {
70
62
  return [soTerm, alt];
71
63
  }
72
- // try to look for a definition for a parent term if we can
73
64
  const modAlt = alt.split(':');
74
65
  if (modAlt.length > 1) {
75
66
  return getSOAndDescFromAltDefs(`<${modAlt.slice(0, -1).join(':')}>`, parser);
76
67
  }
77
- // no parent
78
68
  return [];
79
69
  }
80
- // note: term SNV is used instead of SNP because SO definition of SNP says
81
- // abundance must be at least 1% in population, and can't be sure we meet
82
- // that
83
70
  export function getSOAndDescByExamination(ref, alt) {
84
71
  const bnd = parseBreakend(alt);
85
72
  if (bnd) {
@@ -1,8 +1,9 @@
1
- import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
2
- import { NoAssemblyRegion } from '@jbrowse/core/util/types';
3
- import { Feature } from '@jbrowse/core/util';
4
1
  import { TabixIndexedFile } from '@gmod/tabix';
5
2
  import VcfParser from '@gmod/vcf';
3
+ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
4
+ import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
5
+ import type { Feature } from '@jbrowse/core/util';
6
+ import type { NoAssemblyRegion } from '@jbrowse/core/util/types';
6
7
  export default class VcfTabixAdapter extends BaseFeatureDataAdapter {
7
8
  private configured?;
8
9
  private configurePre;
@@ -14,5 +15,8 @@ export default class VcfTabixAdapter extends BaseFeatureDataAdapter {
14
15
  getHeader(): Promise<string>;
15
16
  getMetadata(): Promise<any>;
16
17
  getFeatures(query: NoAssemblyRegion, opts?: BaseOptions): import("rxjs").Observable<Feature>;
18
+ getSources(): Promise<{
19
+ name: string;
20
+ }[]>;
17
21
  freeResources(): void;
18
22
  }