@jbrowse/plugin-variants 2.18.0 → 3.0.1

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 (272) hide show
  1. package/dist/ChordVariantDisplay/models/stateModelFactory.d.ts +1 -1
  2. package/dist/LinearVariantDisplay/model.d.ts +5 -5
  3. package/dist/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  4. package/dist/MultiLinearVariantDisplay/components/Crosshair.js +35 -0
  5. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +1 -2
  6. package/dist/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +5 -49
  7. package/dist/MultiLinearVariantDisplay/index.js +18 -8
  8. package/dist/MultiLinearVariantDisplay/model.d.ts +113 -40
  9. package/dist/MultiLinearVariantDisplay/model.js +24 -176
  10. package/dist/MultiLinearVariantDisplay/renderSvg.d.ts +1 -2
  11. package/dist/MultiLinearVariantDisplay/renderSvg.js +2 -5
  12. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  13. package/dist/MultiLinearVariantMatrixDisplay/components/Crosshair.js +28 -0
  14. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +1 -2
  15. package/dist/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +13 -16
  16. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +1 -2
  17. package/dist/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +6 -56
  18. package/dist/MultiLinearVariantMatrixDisplay/model.d.ts +109 -27
  19. package/dist/MultiLinearVariantMatrixDisplay/model.js +31 -136
  20. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +1 -2
  21. package/dist/MultiLinearVariantMatrixDisplay/renderSvg.js +3 -7
  22. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +4 -32
  23. package/dist/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +44 -63
  24. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +3 -2
  25. package/dist/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +31 -5
  26. package/dist/MultiLinearVariantMatrixRenderer/index.js +2 -2
  27. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  28. package/dist/MultiLinearVariantMatrixRenderer/makeImageData.js +99 -0
  29. package/dist/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  30. package/dist/MultiLinearVariantMatrixRenderer/types.js +2 -0
  31. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +4 -21
  32. package/dist/MultiLinearVariantRenderer/MultiVariantRenderer.js +38 -25
  33. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +7 -3
  34. package/dist/MultiLinearVariantRenderer/MultiVariantRendering.js +36 -27
  35. package/dist/MultiLinearVariantRenderer/configSchema.d.ts +1 -33
  36. package/dist/MultiLinearVariantRenderer/configSchema.js +0 -5
  37. package/dist/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  38. package/dist/MultiLinearVariantRenderer/makeImageData.js +67 -0
  39. package/dist/MultiLinearVariantRenderer/types.d.ts +19 -0
  40. package/dist/MultiLinearVariantRenderer/types.js +2 -0
  41. package/dist/MultiVariantBaseRenderer.d.ts +4 -4
  42. package/dist/StructuralVariantChordRenderer/Chord.d.ts +2 -19
  43. package/dist/StructuralVariantChordRenderer/Chord.js +3 -25
  44. package/dist/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
  45. package/dist/StructuralVariantChordRenderer/ReactComponent.js +7 -29
  46. package/dist/StructuralVariantChordRenderer/types.d.ts +17 -0
  47. package/dist/StructuralVariantChordRenderer/types.js +2 -0
  48. package/dist/Tooltip.d.ts +2 -2
  49. package/dist/Tooltip.js +6 -32
  50. package/dist/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  51. package/dist/VariantFeatureWidget/Checkbox2.js +2 -5
  52. package/dist/VariantFeatureWidget/LaunchBreakendPanel.d.ts +2 -3
  53. package/dist/VariantFeatureWidget/LaunchBreakendPanel.js +66 -69
  54. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  55. package/dist/VariantFeatureWidget/LaunchBreakendWidgetArea.js +60 -0
  56. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  57. package/dist/VariantFeatureWidget/VariantConsequenceDataGrid.js +15 -0
  58. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  59. package/dist/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +20 -0
  60. package/dist/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  61. package/dist/VariantFeatureWidget/VariantConsequencePanel.js +15 -0
  62. package/dist/VariantFeatureWidget/VariantFeatureWidget.d.ts +1 -2
  63. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +47 -36
  64. package/dist/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  65. package/dist/VariantFeatureWidget/VariantSampleFilters.js +10 -0
  66. package/dist/VariantFeatureWidget/VariantSampleGrid.d.ts +9 -7
  67. package/dist/VariantFeatureWidget/VariantSampleGrid.js +14 -44
  68. package/dist/VariantFeatureWidget/index.js +17 -7
  69. package/dist/VariantFeatureWidget/types.d.ts +16 -0
  70. package/dist/VariantFeatureWidget/types.js +2 -0
  71. package/dist/VariantRPC/MultiVariantGetGenotypeMatrix.js +10 -27
  72. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +12 -7
  73. package/dist/VariantRPC/MultiVariantGetSimplifiedFeatures.js +27 -37
  74. package/dist/VcfAdapter/VcfAdapter.d.ts +7 -0
  75. package/dist/VcfAdapter/VcfAdapter.js +29 -3
  76. package/dist/VcfAdapter/configSchema.d.ts +8 -0
  77. package/dist/VcfAdapter/configSchema.js +12 -1
  78. package/dist/VcfAdapter/index.js +17 -7
  79. package/dist/VcfFeature/index.js +2 -1
  80. package/dist/VcfFeature/util.js +3 -4
  81. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +38 -12
  82. package/dist/VcfTabixAdapter/configSchema.d.ts +8 -0
  83. package/dist/VcfTabixAdapter/configSchema.js +8 -0
  84. package/dist/VcfTabixAdapter/index.js +17 -7
  85. package/dist/extensionPoints.js +21 -33
  86. package/dist/getMultiVariantFeaturesAutorun.d.ts +4 -7
  87. package/dist/getMultiVariantFeaturesAutorun.js +16 -15
  88. package/dist/getMultiVariantSourcesAutorun.d.ts +1 -6
  89. package/dist/shared/BulkEditPanel.d.ts +4 -5
  90. package/dist/shared/BulkEditPanel.js +69 -88
  91. package/dist/shared/ClusterDialog.d.ts +4 -5
  92. package/dist/shared/ClusterDialog.js +45 -86
  93. package/dist/shared/ColorLegend.d.ts +2 -3
  94. package/dist/shared/ColorLegend.js +8 -10
  95. package/dist/shared/HelpfulTips.d.ts +1 -0
  96. package/dist/shared/HelpfulTips.js +7 -0
  97. package/dist/shared/LegendBar.d.ts +3 -3
  98. package/dist/shared/LegendBar.js +6 -12
  99. package/dist/shared/MAFFilterDialog.d.ts +2 -3
  100. package/dist/shared/MAFFilterDialog.js +14 -42
  101. package/dist/shared/MultiVariantBaseModel.d.ts +341 -0
  102. package/dist/shared/MultiVariantBaseModel.js +316 -0
  103. package/dist/shared/MultiVariantTooltip.d.ts +6 -0
  104. package/dist/shared/MultiVariantTooltip.js +23 -0
  105. package/dist/shared/RectBg.d.ts +2 -3
  106. package/dist/shared/RectBg.js +3 -7
  107. package/dist/shared/RowPalettizer.d.ts +2 -3
  108. package/dist/shared/RowPalettizer.js +30 -28
  109. package/dist/shared/SetColorDialog.d.ts +2 -3
  110. package/dist/shared/SetColorDialog.js +26 -65
  111. package/dist/shared/SetMinMaxDialog.d.ts +1 -2
  112. package/dist/shared/SetMinMaxDialog.js +11 -41
  113. package/dist/shared/SetRowHeightDialog.d.ts +8 -0
  114. package/dist/shared/SetRowHeightDialog.js +18 -0
  115. package/dist/shared/SharedVariantMixin.d.ts +7 -7
  116. package/dist/shared/SourcesDataGrid.d.ts +6 -0
  117. package/dist/shared/SourcesDataGrid.js +68 -0
  118. package/dist/shared/SourcesGrid.d.ts +2 -3
  119. package/dist/shared/SourcesGrid.js +5 -134
  120. package/dist/shared/SourcesGridHeader.d.ts +7 -0
  121. package/dist/shared/SourcesGridHeader.js +41 -0
  122. package/dist/shared/multiVariantColor.d.ts +3 -0
  123. package/dist/shared/multiVariantColor.js +50 -0
  124. package/dist/types.d.ts +14 -0
  125. package/dist/types.js +2 -0
  126. package/dist/util.d.ts +6 -9
  127. package/dist/util.js +47 -14
  128. package/esm/ChordVariantDisplay/models/stateModelFactory.d.ts +1 -1
  129. package/esm/LinearVariantDisplay/model.d.ts +5 -5
  130. package/esm/MultiLinearVariantDisplay/components/Crosshair.d.ts +7 -0
  131. package/esm/MultiLinearVariantDisplay/components/Crosshair.js +30 -0
  132. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.d.ts +1 -2
  133. package/esm/MultiLinearVariantDisplay/components/VariantDisplayComponent.js +5 -26
  134. package/esm/MultiLinearVariantDisplay/index.js +1 -1
  135. package/esm/MultiLinearVariantDisplay/model.d.ts +113 -40
  136. package/esm/MultiLinearVariantDisplay/model.js +7 -169
  137. package/esm/MultiLinearVariantDisplay/renderSvg.d.ts +1 -2
  138. package/esm/MultiLinearVariantDisplay/renderSvg.js +2 -5
  139. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.d.ts +7 -0
  140. package/esm/MultiLinearVariantMatrixDisplay/components/Crosshair.js +23 -0
  141. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.d.ts +1 -2
  142. package/esm/MultiLinearVariantMatrixDisplay/components/LinesConnectingMatrixToGenomicPosition.js +13 -13
  143. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.d.ts +1 -2
  144. package/esm/MultiLinearVariantMatrixDisplay/components/VariantDisplayComponent.js +6 -33
  145. package/esm/MultiLinearVariantMatrixDisplay/model.d.ts +109 -27
  146. package/esm/MultiLinearVariantMatrixDisplay/model.js +14 -129
  147. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.d.ts +1 -2
  148. package/esm/MultiLinearVariantMatrixDisplay/renderSvg.js +3 -7
  149. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.d.ts +4 -32
  150. package/esm/MultiLinearVariantMatrixRenderer/LinearVariantMatrixRenderer.js +11 -63
  151. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.d.ts +3 -2
  152. package/esm/MultiLinearVariantMatrixRenderer/components/LinearVariantMatrixRendering.js +31 -2
  153. package/esm/MultiLinearVariantMatrixRenderer/index.js +1 -1
  154. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.d.ts +10 -0
  155. package/esm/MultiLinearVariantMatrixRenderer/makeImageData.js +96 -0
  156. package/esm/MultiLinearVariantMatrixRenderer/types.d.ts +15 -0
  157. package/esm/MultiLinearVariantMatrixRenderer/types.js +1 -0
  158. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.d.ts +4 -21
  159. package/esm/MultiLinearVariantRenderer/MultiVariantRenderer.js +6 -26
  160. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.d.ts +7 -3
  161. package/esm/MultiLinearVariantRenderer/MultiVariantRendering.js +34 -5
  162. package/esm/MultiLinearVariantRenderer/configSchema.d.ts +1 -33
  163. package/esm/MultiLinearVariantRenderer/configSchema.js +0 -2
  164. package/esm/MultiLinearVariantRenderer/makeImageData.d.ts +4 -0
  165. package/esm/MultiLinearVariantRenderer/makeImageData.js +61 -0
  166. package/esm/MultiLinearVariantRenderer/types.d.ts +19 -0
  167. package/esm/MultiLinearVariantRenderer/types.js +1 -0
  168. package/esm/MultiVariantBaseRenderer.d.ts +4 -4
  169. package/esm/StructuralVariantChordRenderer/Chord.d.ts +2 -19
  170. package/esm/StructuralVariantChordRenderer/Chord.js +3 -2
  171. package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +2 -3
  172. package/esm/StructuralVariantChordRenderer/ReactComponent.js +7 -6
  173. package/esm/StructuralVariantChordRenderer/types.d.ts +17 -0
  174. package/esm/StructuralVariantChordRenderer/types.js +1 -0
  175. package/esm/Tooltip.d.ts +2 -2
  176. package/esm/Tooltip.js +6 -9
  177. package/esm/VariantFeatureWidget/Checkbox2.d.ts +1 -2
  178. package/esm/VariantFeatureWidget/Checkbox2.js +2 -2
  179. package/esm/VariantFeatureWidget/LaunchBreakendPanel.d.ts +2 -3
  180. package/esm/VariantFeatureWidget/LaunchBreakendPanel.js +48 -61
  181. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.d.ts +4 -0
  182. package/esm/VariantFeatureWidget/LaunchBreakendWidgetArea.js +24 -0
  183. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.d.ts +5 -0
  184. package/esm/VariantFeatureWidget/VariantConsequenceDataGrid.js +9 -0
  185. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.d.ts +5 -0
  186. package/esm/VariantFeatureWidget/VariantConsequenceDataGridWrapper.js +17 -0
  187. package/esm/VariantFeatureWidget/VariantConsequencePanel.d.ts +5 -0
  188. package/esm/VariantFeatureWidget/VariantConsequencePanel.js +9 -0
  189. package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +1 -2
  190. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +30 -29
  191. package/esm/VariantFeatureWidget/VariantSampleFilters.d.ts +9 -0
  192. package/esm/VariantFeatureWidget/VariantSampleFilters.js +7 -0
  193. package/esm/VariantFeatureWidget/VariantSampleGrid.d.ts +9 -7
  194. package/esm/VariantFeatureWidget/VariantSampleGrid.js +15 -22
  195. package/esm/VariantFeatureWidget/types.d.ts +16 -0
  196. package/esm/VariantFeatureWidget/types.js +1 -0
  197. package/esm/VariantRPC/MultiVariantGetGenotypeMatrix.js +10 -27
  198. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.d.ts +12 -7
  199. package/esm/VariantRPC/MultiVariantGetSimplifiedFeatures.js +27 -37
  200. package/esm/VcfAdapter/VcfAdapter.d.ts +7 -0
  201. package/esm/VcfAdapter/VcfAdapter.js +31 -5
  202. package/esm/VcfAdapter/configSchema.d.ts +8 -0
  203. package/esm/VcfAdapter/configSchema.js +12 -1
  204. package/esm/VcfFeature/index.js +2 -1
  205. package/esm/VcfFeature/util.js +3 -4
  206. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +38 -12
  207. package/esm/VcfTabixAdapter/configSchema.d.ts +8 -0
  208. package/esm/VcfTabixAdapter/configSchema.js +8 -0
  209. package/esm/extensionPoints.js +21 -33
  210. package/esm/getMultiVariantFeaturesAutorun.d.ts +4 -7
  211. package/esm/getMultiVariantFeaturesAutorun.js +16 -15
  212. package/esm/getMultiVariantSourcesAutorun.d.ts +1 -6
  213. package/esm/shared/BulkEditPanel.d.ts +4 -5
  214. package/esm/shared/BulkEditPanel.js +70 -66
  215. package/esm/shared/ClusterDialog.d.ts +4 -5
  216. package/esm/shared/ClusterDialog.js +44 -62
  217. package/esm/shared/ColorLegend.d.ts +2 -3
  218. package/esm/shared/ColorLegend.js +8 -10
  219. package/esm/shared/HelpfulTips.d.ts +1 -0
  220. package/esm/shared/HelpfulTips.js +4 -0
  221. package/esm/shared/LegendBar.d.ts +3 -3
  222. package/esm/shared/LegendBar.js +7 -13
  223. package/esm/shared/MAFFilterDialog.d.ts +2 -3
  224. package/esm/shared/MAFFilterDialog.js +14 -19
  225. package/esm/shared/MultiVariantBaseModel.d.ts +341 -0
  226. package/esm/shared/MultiVariantBaseModel.js +277 -0
  227. package/esm/shared/MultiVariantTooltip.d.ts +6 -0
  228. package/esm/shared/MultiVariantTooltip.js +17 -0
  229. package/esm/shared/RectBg.d.ts +2 -3
  230. package/esm/shared/RectBg.js +3 -4
  231. package/esm/shared/RowPalettizer.d.ts +2 -3
  232. package/esm/shared/RowPalettizer.js +30 -25
  233. package/esm/shared/SetColorDialog.d.ts +2 -3
  234. package/esm/shared/SetColorDialog.js +26 -42
  235. package/esm/shared/SetMinMaxDialog.d.ts +1 -2
  236. package/esm/shared/SetMinMaxDialog.js +11 -18
  237. package/esm/shared/SetRowHeightDialog.d.ts +8 -0
  238. package/esm/shared/SetRowHeightDialog.js +15 -0
  239. package/esm/shared/SharedVariantMixin.d.ts +7 -7
  240. package/esm/shared/SourcesDataGrid.d.ts +6 -0
  241. package/esm/shared/SourcesDataGrid.js +62 -0
  242. package/esm/shared/SourcesGrid.d.ts +2 -3
  243. package/esm/shared/SourcesGrid.js +5 -111
  244. package/esm/shared/SourcesGridHeader.d.ts +7 -0
  245. package/esm/shared/SourcesGridHeader.js +35 -0
  246. package/esm/shared/multiVariantColor.d.ts +3 -0
  247. package/esm/shared/multiVariantColor.js +45 -0
  248. package/esm/types.d.ts +14 -0
  249. package/esm/types.js +1 -0
  250. package/esm/util.d.ts +6 -9
  251. package/esm/util.js +43 -13
  252. package/package.json +12 -13
  253. package/dist/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  254. package/dist/VariantFeatureWidget/AnnotGrid.js +0 -39
  255. package/dist/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  256. package/dist/VariantFeatureWidget/VariantAnnotationTable.js +0 -16
  257. package/dist/configSchema.d.ts +0 -34
  258. package/dist/configSchema.js +0 -44
  259. package/dist/shared/DraggableDialog.d.ts +0 -6
  260. package/dist/shared/DraggableDialog.js +0 -62
  261. package/dist/shared/Tooltip.d.ts +0 -18
  262. package/dist/shared/Tooltip.js +0 -38
  263. package/esm/VariantFeatureWidget/AnnotGrid.d.ts +0 -6
  264. package/esm/VariantFeatureWidget/AnnotGrid.js +0 -13
  265. package/esm/VariantFeatureWidget/VariantAnnotationTable.d.ts +0 -6
  266. package/esm/VariantFeatureWidget/VariantAnnotationTable.js +0 -10
  267. package/esm/configSchema.d.ts +0 -34
  268. package/esm/configSchema.js +0 -42
  269. package/esm/shared/DraggableDialog.d.ts +0 -6
  270. package/esm/shared/DraggableDialog.js +0 -34
  271. package/esm/shared/Tooltip.d.ts +0 -18
  272. package/esm/shared/Tooltip.js +0 -33
@@ -15,68 +15,79 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const react_1 = require("react");
30
41
  const vcf_1 = require("@gmod/vcf");
31
42
  const FeatureDetails_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails"));
32
43
  const material_1 = require("@mui/material");
33
44
  const mobx_react_1 = require("mobx-react");
34
- const VariantAnnotationTable_1 = __importDefault(require("./VariantAnnotationTable"));
35
45
  const VariantSampleGrid_1 = __importDefault(require("./VariantSampleGrid"));
36
46
  const variantFieldDescriptions_1 = require("./variantFieldDescriptions");
37
47
  const LaunchBreakendPanel = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./LaunchBreakendPanel'))));
48
+ const VariantConsequenceDataGrid = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./VariantConsequenceDataGrid'))));
38
49
  function AnnPanel({ descriptions, feature, }) {
39
50
  var _a, _b, _c, _d, _e;
40
51
  const annDesc = (_b = (_a = descriptions === null || descriptions === void 0 ? void 0 : descriptions.INFO) === null || _a === void 0 ? void 0 : _a.ANN) === null || _b === void 0 ? void 0 : _b.Description;
41
52
  const annFields = ((_d = (_c = annDesc === null || annDesc === void 0 ? void 0 : annDesc.match(/.*Functional annotations:'(.*)'$/)) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.split('|')) || [];
42
53
  const ann = ((_e = feature.INFO) === null || _e === void 0 ? void 0 : _e.ANN) || [];
43
- return (react_1.default.createElement(VariantAnnotationTable_1.default, { fields: annFields, data: ann, title: "Variant ANN field" }));
54
+ return ((0, jsx_runtime_1.jsx)(VariantConsequenceDataGrid, { fields: annFields, data: ann, title: "Variant ANN field" }));
44
55
  }
45
56
  function CsqPanel({ descriptions, feature, }) {
46
57
  var _a, _b, _c, _d, _e;
47
58
  const csqDescription = (_b = (_a = descriptions === null || descriptions === void 0 ? void 0 : descriptions.INFO) === null || _a === void 0 ? void 0 : _a.CSQ) === null || _b === void 0 ? void 0 : _b.Description;
48
59
  const csqFields = ((_d = (_c = csqDescription === null || csqDescription === void 0 ? void 0 : csqDescription.match(/.*Format: (.*)/)) === null || _c === void 0 ? void 0 : _c[1]) === null || _d === void 0 ? void 0 : _d.split('|')) || [];
49
60
  const csq = ((_e = feature.INFO) === null || _e === void 0 ? void 0 : _e.CSQ) || [];
50
- return (react_1.default.createElement(VariantAnnotationTable_1.default, { fields: csqFields, data: csq, title: "Variant CSQ field" }));
61
+ return ((0, jsx_runtime_1.jsx)(VariantConsequenceDataGrid, { fields: csqFields, data: csq, title: "Variant CSQ field" }));
62
+ }
63
+ function LaunchBreakendWidgetArea({ model, }) {
64
+ const { featureData } = model;
65
+ const feat = JSON.parse(JSON.stringify(featureData));
66
+ const { type = '' } = feat;
67
+ return type === 'breakend' ? ((0, jsx_runtime_1.jsx)(LaunchBreakendPanel, { feature: feat, locStrings: feat.ALT.map((alt) => { var _a; return ((_a = (0, vcf_1.parseBreakend)(alt)) === null || _a === void 0 ? void 0 : _a.MatePosition) || ''; }), model: model })) : type === 'translocation' ? ((0, jsx_runtime_1.jsx)(LaunchBreakendPanel, { feature: feat, model: model, locStrings: [`${feat.INFO.CHR2[0]}:${feat.INFO.END}`] })) : type === 'paired_feature' ? ((0, jsx_runtime_1.jsx)(LaunchBreakendPanel, { feature: feat, model: model, locStrings: [`${feat.mate.refName}:${feat.mate.start}`] })) : type.includes('inversion') ||
68
+ type.includes('deletion') ||
69
+ type.includes('duplication') ||
70
+ type.includes('cnv') ||
71
+ type.includes('sv') ? ((0, jsx_runtime_1.jsx)(LaunchBreakendPanel, { feature: {
72
+ uniqueId: 'random',
73
+ refName: feat.refName,
74
+ start: feat.start,
75
+ end: feat.start + 1,
76
+ mate: {
77
+ refName: feat.refName,
78
+ start: feat.end,
79
+ end: feat.end + 1,
80
+ },
81
+ }, model: model, locStrings: [`${feat.refName}:${feat.end}`] })) : null;
51
82
  }
52
83
  const VariantFeatureWidget = (0, mobx_react_1.observer)(function (props) {
53
84
  const { model } = props;
54
85
  const { featureData, descriptions } = model;
55
86
  const feat = JSON.parse(JSON.stringify(featureData));
56
- const { samples, ALT, type = '', ...rest } = feat;
57
- return (react_1.default.createElement(material_1.Paper, { "data-testid": "variant-side-drawer" },
58
- react_1.default.createElement(FeatureDetails_1.default, { feature: rest, descriptions: { ...variantFieldDescriptions_1.variantFieldDescriptions, ...descriptions }, ...props }),
59
- react_1.default.createElement(CsqPanel, { feature: rest, descriptions: descriptions }),
60
- react_1.default.createElement(AnnPanel, { feature: rest, descriptions: descriptions }),
61
- react_1.default.createElement(react_1.Suspense, { fallback: null },
62
- type === 'breakend' ? (react_1.default.createElement(LaunchBreakendPanel, { feature: feat, locStrings: feat.ALT.map((alt) => { var _a; return ((_a = (0, vcf_1.parseBreakend)(alt)) === null || _a === void 0 ? void 0 : _a.MatePosition) || ''; }), model: model })) : null,
63
- type === 'translocation' ? (react_1.default.createElement(LaunchBreakendPanel, { feature: feat, model: model, locStrings: [`${feat.INFO.CHR2[0]}:${feat.INFO.END}`] })) : null,
64
- type === 'paired_feature' ? (react_1.default.createElement(LaunchBreakendPanel, { feature: feat, model: model, locStrings: [`${feat.mate.refName}:${feat.mate.start}`] })) : null,
65
- type.includes('inversion') ||
66
- type.includes('deletion') ||
67
- type.includes('duplication') ||
68
- type.includes('cnv') ||
69
- type.includes('sv') ? (react_1.default.createElement(LaunchBreakendPanel, { feature: {
70
- uniqueId: 'random',
71
- refName: feat.refName,
72
- start: feat.start,
73
- end: feat.start + 1,
74
- mate: {
75
- refName: feat.refName,
76
- start: feat.end,
77
- end: feat.end + 1,
78
- },
79
- }, model: model, locStrings: [`${feat.refName}:${feat.end}`] })) : null),
80
- react_1.default.createElement(VariantSampleGrid_1.default, { feature: feat, ...props, descriptions: descriptions })));
87
+ const { samples, ALT, ...rest } = feat;
88
+ return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { "data-testid": "variant-side-drawer", children: [(0, jsx_runtime_1.jsx)(FeatureDetails_1.default, { feature: rest, descriptions: {
89
+ ...variantFieldDescriptions_1.variantFieldDescriptions,
90
+ ...descriptions,
91
+ }, ...props }), (0, jsx_runtime_1.jsxs)(react_1.Suspense, { fallback: null, children: [(0, jsx_runtime_1.jsx)(CsqPanel, { feature: rest, descriptions: descriptions }), (0, jsx_runtime_1.jsx)(AnnPanel, { feature: rest, descriptions: descriptions }), (0, jsx_runtime_1.jsx)(LaunchBreakendWidgetArea, { model: model })] }), (0, jsx_runtime_1.jsx)(VariantSampleGrid_1.default, { feature: feat, ...props, descriptions: descriptions })] }));
81
92
  });
82
93
  exports.default = VariantFeatureWidget;
@@ -0,0 +1,9 @@
1
+ type Filters = Record<string, string>;
2
+ export default function SampleFilters({ columns, filter, setFilter, }: {
3
+ columns: {
4
+ field: string;
5
+ }[];
6
+ filter: Filters;
7
+ setFilter: (arg: Filters) => void;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = SampleFilters;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const material_1 = require("@mui/material");
6
+ function SampleFilters({ columns, filter, setFilter, }) {
7
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33" }), columns.map(({ field }) => ((0, jsx_runtime_1.jsx)(material_1.TextField, { placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => {
8
+ setFilter({ ...filter, [field]: event.target.value });
9
+ } }, `filter-${field}`)))] }));
10
+ }
@@ -1,10 +1,12 @@
1
- import React from 'react';
2
1
  import type { SimpleFeatureSerialized } from '@jbrowse/core/util';
2
+ interface FormatRecord {
3
+ Description?: string;
4
+ }
5
+ interface Descriptions {
6
+ FORMAT?: Record<string, FormatRecord>;
7
+ }
3
8
  export default function VariantSamples(props: {
4
9
  feature: SimpleFeatureSerialized;
5
- descriptions?: {
6
- FORMAT?: Record<string, {
7
- Description?: string;
8
- }>;
9
- } | null;
10
- }): React.JSX.Element | null;
10
+ descriptions?: Descriptions | null;
11
+ }): import("react/jsx-runtime").JSX.Element | null;
12
+ export {};
@@ -1,44 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
28
5
  Object.defineProperty(exports, "__esModule", { value: true });
29
6
  exports.default = VariantSamples;
30
- const react_1 = __importStar(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
31
9
  const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
32
10
  const util_1 = require("@jbrowse/core/util");
33
11
  const material_1 = require("@mui/material");
34
12
  const x_data_grid_1 = require("@mui/x-data-grid");
35
- function SampleFilters({ columns, filter, setFilter, }) {
36
- return (react_1.default.createElement(react_1.default.Fragment, null,
37
- react_1.default.createElement(material_1.Typography, null, "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33"),
38
- columns.map(({ field }) => (react_1.default.createElement(material_1.TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => {
39
- setFilter({ ...filter, [field]: event.target.value });
40
- } })))));
41
- }
13
+ const VariantSampleFilters_1 = __importDefault(require("./VariantSampleFilters"));
42
14
  function VariantSamples(props) {
43
15
  var _a;
44
16
  const { feature, descriptions = {} } = props;
@@ -80,18 +52,16 @@ function VariantSamples(props) {
80
52
  width: widths[index],
81
53
  });
82
54
  });
83
- return !preFilteredRows.length ? null : (react_1.default.createElement(BaseCard_1.default, { ...props, title: "Samples" },
84
- error ? react_1.default.createElement(material_1.Typography, { color: "error" }, `${error}`) : null,
85
- react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: checked, onChange: event => {
86
- setChecked(event.target.checked);
87
- } }), label: react_1.default.createElement(material_1.Typography, { variant: "body2" }, "Show options") }),
88
- checked ? (react_1.default.createElement(SampleFilters, { setFilter: setFilter, columns: columns, filter: filter })) : null,
89
- react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
90
- react_1.default.createElement(x_data_grid_1.DataGrid, { rows: rows, hideFooter: rows.length < 100, columns: columns, disableRowSelectionOnClick: true, rowHeight: 25, columnHeaderHeight: 35, disableColumnMenu: true, slots: { toolbar: checked ? x_data_grid_1.GridToolbar : null }, slotProps: {
91
- toolbar: {
92
- printOptions: {
93
- disableToolbarButton: true,
55
+ return !preFilteredRows.length ? null : ((0, jsx_runtime_1.jsxs)(BaseCard_1.default, { ...props, title: "Samples", children: [error ? (0, jsx_runtime_1.jsx)(material_1.Typography, { color: "error", children: `${error}` }) : null, (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: checked, onChange: event => {
56
+ setChecked(event.target.checked);
57
+ } }), label: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", children: "Show options" }) }), checked ? ((0, jsx_runtime_1.jsx)(VariantSampleFilters_1.default, { setFilter: setFilter, columns: columns, filter: filter })) : null, (0, jsx_runtime_1.jsx)("div", { style: {
58
+ display: 'flex',
59
+ flexDirection: 'column',
60
+ }, children: (0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { rows: rows, hideFooter: rows.length < 100, columns: columns, disableRowSelectionOnClick: true, rowHeight: 25, columnHeaderHeight: 35, disableColumnMenu: true, slots: { toolbar: checked ? x_data_grid_1.GridToolbar : null }, slotProps: {
61
+ toolbar: {
62
+ printOptions: {
63
+ disableToolbarButton: true,
64
+ },
94
65
  },
95
- },
96
- } }))));
66
+ } }) })] }));
97
67
  }
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -7,6 +7,7 @@ exports.MultiVariantGetGenotypeMatrix = void 0;
7
7
  const dataAdapterCache_1 = require("@jbrowse/core/data_adapters/dataAdapterCache");
8
8
  const RpcMethodTypeWithFiltersAndRenameRegions_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions"));
9
9
  const rxjs_1 = require("rxjs");
10
+ const util_1 = require("../util");
10
11
  class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameRegions_1.default {
11
12
  constructor() {
12
13
  super(...arguments);
@@ -15,39 +16,18 @@ class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameReg
15
16
  async execute(args, rpcDriverClassName) {
16
17
  const pm = this.pluginManager;
17
18
  const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
18
- const { sources, mafFilter, regions, adapterConfig, sessionId } = deserializedArgs;
19
+ const { sources, minorAlleleFrequencyFilter, regions, adapterConfig, sessionId, } = deserializedArgs;
19
20
  const adapter = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
20
21
  const dataAdapter = adapter.dataAdapter;
21
22
  const region = regions[0];
22
23
  const feats = await (0, rxjs_1.firstValueFrom)(dataAdapter.getFeatures(region, deserializedArgs).pipe((0, rxjs_1.toArray)()));
23
24
  const genotypeFactor = new Set();
24
- const mafs = [];
25
+ const mafs = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
25
26
  for (const feat of feats) {
26
- let c = 0;
27
- let c2 = 0;
28
27
  const samp = feat.get('genotypes');
29
- if (feat.get('end') - feat.get('start') <= 10) {
30
- for (const { name } of sources) {
31
- const s = samp[name];
32
- genotypeFactor.add(s);
33
- if (s === '0|0' || s === './.') {
34
- c2++;
35
- }
36
- else if (s === '1|0' || s === '0|1') {
37
- c++;
38
- }
39
- else if (s === '1|1') {
40
- c++;
41
- c2++;
42
- }
43
- else {
44
- c++;
45
- }
46
- }
47
- if (c / sources.length > mafFilter &&
48
- c2 / sources.length < 1 - mafFilter) {
49
- mafs.push(feat);
50
- }
28
+ for (const { name } of sources) {
29
+ const s = samp[name];
30
+ genotypeFactor.add(s);
51
31
  }
52
32
  }
53
33
  const genotypeFactorMap = Object.fromEntries([...genotypeFactor].map((type, idx) => [type, idx]));
@@ -56,7 +36,10 @@ class MultiVariantGetGenotypeMatrix extends RpcMethodTypeWithFiltersAndRenameReg
56
36
  const samp = feat.get('genotypes');
57
37
  for (const { name } of sources) {
58
38
  if (!rows[name]) {
59
- rows[name] = { name, genotypes: [] };
39
+ rows[name] = {
40
+ name,
41
+ genotypes: [],
42
+ };
60
43
  }
61
44
  rows[name].genotypes.push(genotypeFactorMap[samp[name]]);
62
45
  }
@@ -1,4 +1,5 @@
1
1
  import RpcMethodTypeWithFiltersAndRenameRegions from '@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions';
2
+ import type { SampleInfo } from '../types';
2
3
  import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
3
4
  import type { Region } from '@jbrowse/core/util';
4
5
  export declare class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions {
@@ -11,11 +12,15 @@ export declare class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWith
11
12
  regions: Region[];
12
13
  bpPerPx: number;
13
14
  }, rpcDriverClassName: string): Promise<{
14
- id: string;
15
- data: {
16
- start: number;
17
- end: number;
18
- refName: string;
19
- };
20
- }[]>;
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
+ }>;
21
26
  }
@@ -7,57 +7,47 @@ exports.MultiVariantGetSimplifiedFeatures = void 0;
7
7
  const dataAdapterCache_1 = require("@jbrowse/core/data_adapters/dataAdapterCache");
8
8
  const RpcMethodTypeWithFiltersAndRenameRegions_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions"));
9
9
  const rxjs_1 = require("rxjs");
10
+ const util_1 = require("../util");
10
11
  class MultiVariantGetSimplifiedFeatures extends RpcMethodTypeWithFiltersAndRenameRegions_1.default {
11
12
  constructor() {
12
13
  super(...arguments);
13
14
  this.name = 'MultiVariantGetSimplifiedFeatures';
14
15
  }
15
16
  async execute(args, rpcDriverClassName) {
17
+ var _a, _b;
16
18
  const pm = this.pluginManager;
17
19
  const deserializedArgs = await this.deserializeArguments(args, rpcDriverClassName);
18
- const { mafFilter, sources, regions, adapterConfig, sessionId } = deserializedArgs;
20
+ const { minorAlleleFrequencyFilter, regions, adapterConfig, sessionId } = deserializedArgs;
19
21
  const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
20
22
  const feats = await (0, rxjs_1.firstValueFrom)(dataAdapter
21
23
  .getFeaturesInMultipleRegions(regions, deserializedArgs)
22
24
  .pipe((0, rxjs_1.toArray)()));
23
- const genotypeFactor = new Set();
24
- const mafs = [];
25
- for (const feat of feats) {
26
- let c = 0;
27
- let c2 = 0;
28
- const samp = feat.get('genotypes');
29
- if (feat.get('end') - feat.get('start') <= 10) {
30
- for (const { name } of sources) {
31
- const s = samp[name];
32
- genotypeFactor.add(s);
33
- if (s === '0|0' || s === './.') {
34
- c2++;
35
- }
36
- else if (s === '1|0' || s === '0|1') {
37
- c++;
38
- }
39
- else if (s === '1|1') {
40
- c++;
41
- c2++;
42
- }
43
- else {
44
- c++;
45
- }
46
- }
47
- if (c / sources.length > mafFilter &&
48
- c2 / sources.length < 1 - mafFilter) {
49
- mafs.push(feat);
50
- }
25
+ const features = (0, util_1.getFeaturesThatPassMinorAlleleFrequencyFilter)(feats, minorAlleleFrequencyFilter);
26
+ const sampleInfo = {};
27
+ let hasPhased = false;
28
+ for (const f of features) {
29
+ const samp = f.get('genotypes');
30
+ for (const [key, val] of Object.entries(samp)) {
31
+ const isPhased = val.includes('|');
32
+ hasPhased || (hasPhased = isPhased);
33
+ sampleInfo[key] = {
34
+ maxPloidy: Math.max(((_a = sampleInfo[key]) === null || _a === void 0 ? void 0 : _a.maxPloidy) || 0, val.split('|').length),
35
+ isPhased: ((_b = sampleInfo[key]) === null || _b === void 0 ? void 0 : _b.isPhased) || isPhased,
36
+ };
51
37
  }
52
38
  }
53
- return mafs.map(f => ({
54
- id: f.id(),
55
- data: {
56
- start: f.get('start'),
57
- end: f.get('end'),
58
- refName: f.get('refName'),
59
- },
60
- }));
39
+ return {
40
+ hasPhased,
41
+ sampleInfo,
42
+ features: features.map(f => ({
43
+ id: f.id(),
44
+ data: {
45
+ start: f.get('start'),
46
+ end: f.get('end'),
47
+ refName: f.get('refName'),
48
+ },
49
+ })),
50
+ };
61
51
  }
62
52
  }
63
53
  exports.MultiVariantGetSimplifiedFeatures = MultiVariantGetSimplifiedFeatures;
@@ -1,4 +1,5 @@
1
1
  import IntervalTree from '@flatten-js/interval-tree';
2
+ import VcfParser from '@gmod/vcf';
2
3
  import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
3
4
  import type { BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
4
5
  import type { Feature, Region } from '@jbrowse/core/util';
@@ -7,6 +8,7 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
7
8
  calculatedIntervalTreeMap: Record<string, IntervalTree>;
8
9
  vcfFeatures?: Promise<{
9
10
  header: string;
11
+ parser: VcfParser;
10
12
  intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
11
13
  }>;
12
14
  static capabilities: string[];
@@ -14,16 +16,21 @@ export default class VcfAdapter extends BaseFeatureDataAdapter {
14
16
  getMetadata(): Promise<any>;
15
17
  setupP(opts?: BaseOptions): Promise<{
16
18
  header: string;
19
+ parser: VcfParser;
17
20
  intervalTreeMap: {
18
21
  [k: string]: (sc?: (arg: string) => void) => IntervalTree<any>;
19
22
  };
20
23
  }>;
21
24
  setup(): Promise<{
22
25
  header: string;
26
+ parser: VcfParser;
23
27
  intervalTreeMap: Record<string, (sc?: StatusCallback) => IntervalTree>;
24
28
  }>;
25
29
  getRefNames(_?: BaseOptions): Promise<string[]>;
26
30
  getFeatures(region: Region, opts?: BaseOptions): import("rxjs").Observable<Feature>;
31
+ getSources(): Promise<{
32
+ name: string;
33
+ }[]>;
27
34
  freeResources(): void;
28
35
  }
29
36
  export {};
@@ -20,8 +20,7 @@ class VcfAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
20
20
  return header;
21
21
  }
22
22
  async getMetadata() {
23
- const { header } = await this.setup();
24
- const parser = new vcf_1.default({ header });
23
+ const { parser } = await this.setup();
25
24
  return parser.getMetadata();
26
25
  }
27
26
  async setupP(opts) {
@@ -34,7 +33,7 @@ class VcfAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
34
33
  const decoder = new TextDecoder('utf8');
35
34
  let i = 0;
36
35
  while (blockStart < buffer.length) {
37
- const n = buffer.indexOf('\n', blockStart);
36
+ const n = buffer.indexOf(10, blockStart);
38
37
  const b = n === -1 ? buffer.subarray(blockStart) : buffer.subarray(blockStart, n);
39
38
  const line = decoder.decode(b).trim();
40
39
  if (line) {
@@ -79,6 +78,7 @@ class VcfAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
79
78
  ]));
80
79
  return {
81
80
  header,
81
+ parser,
82
82
  intervalTreeMap,
83
83
  };
84
84
  }
@@ -111,6 +111,32 @@ class VcfAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
111
111
  }
112
112
  }, opts.stopToken);
113
113
  }
114
+ async getSources() {
115
+ const conf = this.getConf('samplesTsvLocation');
116
+ if (conf.uri === '' || conf.uri === '/path/to/samples.tsv') {
117
+ const { parser } = await this.setup();
118
+ return parser.samples.map(name => ({
119
+ name,
120
+ }));
121
+ }
122
+ else {
123
+ const txt = await (0, io_1.openLocation)(conf).readFile('utf8');
124
+ const lines = txt.split(/\n|\r\n|\r/);
125
+ const header = lines[0].split('\t');
126
+ const { parser } = await this.setup();
127
+ const s = new Set(parser.samples);
128
+ return lines
129
+ .slice(1)
130
+ .map(line => {
131
+ const cols = line.split('\t');
132
+ return {
133
+ name: cols[0],
134
+ ...Object.fromEntries(cols.slice(1).map((c, idx) => [header[idx + 1], c])),
135
+ };
136
+ })
137
+ .filter(f => s.has(f.name));
138
+ }
139
+ }
114
140
  freeResources() { }
115
141
  }
116
142
  VcfAdapter.capabilities = ['getFeatures', 'getRefNames'];
@@ -6,5 +6,13 @@ declare const VcfAdapter: import("@jbrowse/core/configuration/configurationSchem
6
6
  locationType: string;
7
7
  };
8
8
  };
9
+ samplesTsvLocation: {
10
+ type: string;
11
+ defaultValue: {
12
+ uri: string;
13
+ description: string;
14
+ locationType: string;
15
+ };
16
+ };
9
17
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
10
18
  export default VcfAdapter;
@@ -5,7 +5,18 @@ function x() { }
5
5
  const VcfAdapter = (0, configuration_1.ConfigurationSchema)('VcfAdapter', {
6
6
  vcfLocation: {
7
7
  type: 'fileLocation',
8
- defaultValue: { uri: '/path/to/my.vcf', locationType: 'UriLocation' },
8
+ defaultValue: {
9
+ uri: '/path/to/my.vcf',
10
+ locationType: 'UriLocation',
11
+ },
12
+ },
13
+ samplesTsvLocation: {
14
+ type: 'fileLocation',
15
+ defaultValue: {
16
+ uri: '/path/to/samples.tsv',
17
+ description: 'tsv with header like name\tpopulation\tetc. where the first column is required, and is the sample names',
18
+ locationType: 'UriLocation',
19
+ },
9
20
  },
10
21
  }, { explicitlyTyped: true });
11
22
  exports.default = VcfAdapter;
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };