jbrowse-plugin-mafviewer 1.4.3 → 1.4.6

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 (204) hide show
  1. package/README.md +1 -1
  2. package/dist/BigMafAdapter/BigMafAdapter.js +4 -5
  3. package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -1
  4. package/dist/BigMafAdapter/configSchema.d.ts +2 -2
  5. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js +39 -109
  6. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js.map +1 -1
  7. package/dist/LinearMafDisplay/components/MAFTooltip.d.ts +0 -3
  8. package/dist/LinearMafDisplay/components/MAFTooltip.js.map +1 -1
  9. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.d.ts +9 -0
  10. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.js +34 -0
  11. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.js.map +1 -0
  12. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js +2 -2
  13. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js.map +1 -1
  14. package/dist/LinearMafDisplay/components/Sidebar/RectBg.d.ts +1 -1
  15. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js +2 -3
  16. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js.map +1 -1
  17. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js +81 -11
  18. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js.map +1 -1
  19. package/dist/LinearMafDisplay/components/Sidebar/Tree.js +30 -9
  20. package/dist/LinearMafDisplay/components/Sidebar/Tree.js.map +1 -1
  21. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.d.ts +0 -1
  22. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.js.map +1 -1
  23. package/dist/LinearMafDisplay/components/useDragSelection.d.ts +25 -0
  24. package/dist/LinearMafDisplay/components/useDragSelection.js +103 -0
  25. package/dist/LinearMafDisplay/components/useDragSelection.js.map +1 -0
  26. package/dist/LinearMafDisplay/configSchema.d.ts +3 -30
  27. package/dist/LinearMafDisplay/renderSvg.js +1 -1
  28. package/dist/LinearMafDisplay/renderSvg.js.map +1 -1
  29. package/dist/LinearMafDisplay/stateModel.d.ts +1090 -102
  30. package/dist/LinearMafDisplay/stateModel.js +156 -17
  31. package/dist/LinearMafDisplay/stateModel.js.map +1 -1
  32. package/dist/LinearMafDisplay/types.d.ts +2 -2
  33. package/dist/LinearMafDisplay/util.d.ts +6 -0
  34. package/dist/LinearMafDisplay/util.js +28 -6
  35. package/dist/LinearMafDisplay/util.js.map +1 -1
  36. package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +43 -10
  37. package/dist/LinearMafRenderer/LinearMafRenderer.js +1 -1
  38. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
  39. package/dist/LinearMafRenderer/components/LinearMafRendering.d.ts +14 -5
  40. package/dist/LinearMafRenderer/components/LinearMafRendering.js +40 -20
  41. package/dist/LinearMafRenderer/components/LinearMafRendering.js.map +1 -1
  42. package/dist/LinearMafRenderer/configSchema.d.ts +1 -6
  43. package/dist/LinearMafRenderer/configSchema.js +1 -6
  44. package/dist/LinearMafRenderer/configSchema.js.map +1 -1
  45. package/dist/LinearMafRenderer/makeImageData.js +6 -7
  46. package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
  47. package/dist/LinearMafRenderer/rendering/features.d.ts +0 -1
  48. package/dist/LinearMafRenderer/rendering/features.js +1 -14
  49. package/dist/LinearMafRenderer/rendering/features.js.map +1 -1
  50. package/dist/LinearMafRenderer/rendering/insertions.d.ts +1 -1
  51. package/dist/LinearMafRenderer/rendering/insertions.js +10 -8
  52. package/dist/LinearMafRenderer/rendering/insertions.js.map +1 -1
  53. package/dist/LinearMafRenderer/rendering/matches.d.ts +1 -1
  54. package/dist/LinearMafRenderer/rendering/matches.js +3 -15
  55. package/dist/LinearMafRenderer/rendering/matches.js.map +1 -1
  56. package/dist/LinearMafRenderer/rendering/mismatches.d.ts +1 -1
  57. package/dist/LinearMafRenderer/rendering/mismatches.js +3 -3
  58. package/dist/LinearMafRenderer/rendering/spatialIndex.js +8 -2
  59. package/dist/LinearMafRenderer/rendering/spatialIndex.js.map +1 -1
  60. package/dist/LinearMafRenderer/rendering/text.js +1 -3
  61. package/dist/LinearMafRenderer/rendering/text.js.map +1 -1
  62. package/dist/LinearMafRenderer/rendering/types.d.ts +6 -5
  63. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +1 -1
  64. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -1
  65. package/dist/MafAddTrackWorkflow/index.js +1 -1
  66. package/dist/MafAddTrackWorkflow/index.js.map +1 -1
  67. package/dist/MafGetSequences/MafGetSequences.d.ts +1 -0
  68. package/dist/MafGetSequences/MafGetSequences.js +2 -1
  69. package/dist/MafGetSequences/MafGetSequences.js.map +1 -1
  70. package/dist/MafSequenceWidget/LabelsCanvas.d.ts +8 -0
  71. package/dist/MafSequenceWidget/LabelsCanvas.js +37 -0
  72. package/dist/MafSequenceWidget/LabelsCanvas.js.map +1 -0
  73. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.d.ts +6 -0
  74. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.js +52 -0
  75. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.js.map +1 -0
  76. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.d.ts +2 -0
  77. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.js +12 -0
  78. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.js.map +1 -0
  79. package/dist/MafSequenceWidget/MafSequenceWidget.d.ts +6 -0
  80. package/dist/MafSequenceWidget/MafSequenceWidget.js +189 -0
  81. package/dist/MafSequenceWidget/MafSequenceWidget.js.map +1 -0
  82. package/dist/MafSequenceWidget/SequenceCanvas.d.ts +12 -0
  83. package/dist/MafSequenceWidget/SequenceCanvas.js +86 -0
  84. package/dist/MafSequenceWidget/SequenceCanvas.js.map +1 -0
  85. package/dist/MafSequenceWidget/SequenceDisplay.d.ts +12 -0
  86. package/dist/MafSequenceWidget/SequenceDisplay.js +117 -0
  87. package/dist/MafSequenceWidget/SequenceDisplay.js.map +1 -0
  88. package/dist/MafSequenceWidget/SequenceTooltip.d.ts +11 -0
  89. package/dist/MafSequenceWidget/SequenceTooltip.js +39 -0
  90. package/dist/MafSequenceWidget/SequenceTooltip.js.map +1 -0
  91. package/dist/MafSequenceWidget/baseColors.d.ts +3 -0
  92. package/dist/MafSequenceWidget/baseColors.js +64 -0
  93. package/dist/MafSequenceWidget/baseColors.js.map +1 -0
  94. package/dist/MafSequenceWidget/colToGenomePos.d.ts +13 -0
  95. package/dist/MafSequenceWidget/colToGenomePos.js +32 -0
  96. package/dist/MafSequenceWidget/colToGenomePos.js.map +1 -0
  97. package/dist/MafSequenceWidget/colToGenomePos.test.d.ts +1 -0
  98. package/dist/MafSequenceWidget/colToGenomePos.test.js +136 -0
  99. package/dist/MafSequenceWidget/colToGenomePos.test.js.map +1 -0
  100. package/dist/MafSequenceWidget/configSchema.d.ts +1 -0
  101. package/dist/MafSequenceWidget/configSchema.js +3 -0
  102. package/dist/MafSequenceWidget/configSchema.js.map +1 -0
  103. package/dist/MafSequenceWidget/constants.d.ts +4 -0
  104. package/dist/MafSequenceWidget/constants.js +5 -0
  105. package/dist/MafSequenceWidget/constants.js.map +1 -0
  106. package/dist/MafSequenceWidget/index.d.ts +2 -0
  107. package/dist/MafSequenceWidget/index.js +16 -0
  108. package/dist/MafSequenceWidget/index.js.map +1 -0
  109. package/dist/MafSequenceWidget/stateModelFactory.d.ts +67 -0
  110. package/dist/MafSequenceWidget/stateModelFactory.js +21 -0
  111. package/dist/MafSequenceWidget/stateModelFactory.js.map +1 -0
  112. package/dist/MafTabixAdapter/MafTabixAdapter.js +4 -35
  113. package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -1
  114. package/dist/MafTabixAdapter/configSchema.d.ts +4 -4
  115. package/dist/MafTrack/configSchema.d.ts +16 -11
  116. package/dist/index.js +2 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +12 -24
  119. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
  120. package/dist/util/clipboard.d.ts +2 -0
  121. package/dist/util/clipboard.js +28 -0
  122. package/dist/util/clipboard.js.map +1 -0
  123. package/dist/util/fastaUtils.d.ts +2 -1
  124. package/dist/util/fastaUtils.js +93 -50
  125. package/dist/util/fastaUtils.js.map +1 -1
  126. package/dist/util/fastaUtils.test.js +190 -0
  127. package/dist/util/fastaUtils.test.js.map +1 -1
  128. package/dist/util/parseAssemblyName.d.ts +32 -0
  129. package/dist/util/parseAssemblyName.js +87 -0
  130. package/dist/util/parseAssemblyName.js.map +1 -0
  131. package/dist/util/parseAssemblyName.test.d.ts +1 -0
  132. package/dist/util/parseAssemblyName.test.js +269 -0
  133. package/dist/util/parseAssemblyName.test.js.map +1 -0
  134. package/package.json +12 -12
  135. package/src/BigMafAdapter/BigMafAdapter.ts +5 -5
  136. package/src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx +63 -145
  137. package/src/LinearMafDisplay/components/MAFTooltip.tsx +0 -3
  138. package/src/LinearMafDisplay/components/MsaHighlightOverlay.tsx +62 -0
  139. package/src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx +2 -6
  140. package/src/LinearMafDisplay/components/Sidebar/RectBg.tsx +8 -3
  141. package/src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx +117 -15
  142. package/src/LinearMafDisplay/components/Sidebar/Tree.tsx +53 -8
  143. package/src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx +0 -1
  144. package/src/LinearMafDisplay/components/useDragSelection.ts +159 -0
  145. package/src/LinearMafDisplay/renderSvg.tsx +1 -1
  146. package/src/LinearMafDisplay/stateModel.ts +215 -20
  147. package/src/LinearMafDisplay/types.ts +2 -2
  148. package/src/LinearMafDisplay/util.ts +35 -7
  149. package/src/LinearMafRenderer/LinearMafRenderer.ts +3 -5
  150. package/src/LinearMafRenderer/components/LinearMafRendering.tsx +67 -33
  151. package/src/LinearMafRenderer/configSchema.ts +1 -6
  152. package/src/LinearMafRenderer/makeImageData.ts +5 -14
  153. package/src/LinearMafRenderer/rendering/features.ts +2 -36
  154. package/src/LinearMafRenderer/rendering/insertions.ts +13 -8
  155. package/src/LinearMafRenderer/rendering/matches.ts +2 -27
  156. package/src/LinearMafRenderer/rendering/mismatches.ts +3 -3
  157. package/src/LinearMafRenderer/rendering/spatialIndex.ts +9 -2
  158. package/src/LinearMafRenderer/rendering/text.ts +1 -2
  159. package/src/LinearMafRenderer/rendering/types.ts +8 -5
  160. package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +1 -1
  161. package/src/MafAddTrackWorkflow/index.ts +1 -1
  162. package/src/MafGetSequences/MafGetSequences.ts +10 -2
  163. package/src/MafSequenceWidget/LabelsCanvas.tsx +58 -0
  164. package/src/MafSequenceWidget/MafSequenceHoverHighlight.tsx +83 -0
  165. package/src/MafSequenceWidget/MafSequenceHoverHighlightExtension.tsx +24 -0
  166. package/src/MafSequenceWidget/MafSequenceWidget.tsx +294 -0
  167. package/src/MafSequenceWidget/SequenceCanvas.tsx +136 -0
  168. package/src/MafSequenceWidget/SequenceDisplay.tsx +188 -0
  169. package/src/MafSequenceWidget/SequenceTooltip.tsx +70 -0
  170. package/src/MafSequenceWidget/baseColors.ts +76 -0
  171. package/src/MafSequenceWidget/colToGenomePos.test.ts +166 -0
  172. package/src/MafSequenceWidget/colToGenomePos.ts +40 -0
  173. package/src/MafSequenceWidget/configSchema.ts +3 -0
  174. package/src/MafSequenceWidget/constants.ts +4 -0
  175. package/src/MafSequenceWidget/index.ts +24 -0
  176. package/src/MafSequenceWidget/stateModelFactory.ts +43 -0
  177. package/src/MafTabixAdapter/MafTabixAdapter.ts +12 -51
  178. package/src/index.ts +2 -0
  179. package/src/util/__snapshots__/fastaUtils.test.ts.snap +35 -0
  180. package/src/util/clipboard.ts +35 -0
  181. package/src/util/fastaUtils.test.ts +199 -0
  182. package/src/util/fastaUtils.ts +118 -51
  183. package/src/util/parseAssemblyName.test.ts +350 -0
  184. package/src/util/parseAssemblyName.ts +106 -0
  185. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.d.ts +0 -11
  186. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.js +0 -97
  187. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.js.map +0 -1
  188. package/dist/LinearMafDisplay/components/util.d.ts +0 -1
  189. package/dist/LinearMafDisplay/components/util.js +0 -8
  190. package/dist/LinearMafDisplay/components/util.js.map +0 -1
  191. package/dist/LinearMafRenderer/components/util.d.ts +0 -1
  192. package/dist/LinearMafRenderer/components/util.js +0 -13
  193. package/dist/LinearMafRenderer/components/util.js.map +0 -1
  194. package/dist/util/fetchSequences.d.ts +0 -18
  195. package/dist/util/fetchSequences.js +0 -39
  196. package/dist/util/fetchSequences.js.map +0 -1
  197. package/dist/util/useSequences.d.ts +0 -21
  198. package/dist/util/useSequences.js +0 -64
  199. package/dist/util/useSequences.js.map +0 -1
  200. package/src/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.tsx +0 -175
  201. package/src/LinearMafDisplay/components/util.ts +0 -7
  202. package/src/LinearMafRenderer/components/util.ts +0 -13
  203. package/src/util/fetchSequences.ts +0 -57
  204. package/src/util/useSequences.ts +0 -90
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Find the index of the reference sample (matching the assembly name from the region)
3
+ * Falls back to 0 if no match is found
4
+ */
5
+ export function findRefSampleIndex(samples, assemblyName) {
6
+ if (!samples || !assemblyName) {
7
+ return 0;
8
+ }
9
+ const idx = samples.findIndex(s => s.id === assemblyName);
10
+ return idx === -1 ? 0 : idx;
11
+ }
12
+ /**
13
+ * Build a mapping from display column index to genomic position.
14
+ * Only the reference sequence determines genomic positions - gaps in the
15
+ * reference map to undefined (no genomic position), while gaps in other
16
+ * samples don't affect the mapping.
17
+ */
18
+ export function buildColToGenomePos(refSequence, regionStart) {
19
+ const mapping = [];
20
+ let genomePos = regionStart;
21
+ for (const char of refSequence) {
22
+ if (char === '-') {
23
+ mapping.push(undefined);
24
+ }
25
+ else {
26
+ mapping.push(genomePos);
27
+ genomePos++;
28
+ }
29
+ }
30
+ return mapping;
31
+ }
32
+ //# sourceMappingURL=colToGenomePos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colToGenomePos.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/colToGenomePos.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6B,EAC7B,YAAgC;IAEhC,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAA;IACzD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAC7B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,WAAmB;IAEnB,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,IAAI,SAAS,GAAG,WAAW,CAAA;IAE3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,SAAS,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,136 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { buildColToGenomePos, findRefSampleIndex } from './colToGenomePos';
3
+ describe('findRefSampleIndex', () => {
4
+ const samples = [
5
+ { id: 'mm10', label: 'Mouse' },
6
+ { id: 'hg38', label: 'Human' },
7
+ { id: 'panTro6', label: 'Chimp' },
8
+ ];
9
+ test('returns index of sample matching assemblyName', () => {
10
+ expect(findRefSampleIndex(samples, 'hg38')).toBe(1);
11
+ expect(findRefSampleIndex(samples, 'mm10')).toBe(0);
12
+ expect(findRefSampleIndex(samples, 'panTro6')).toBe(2);
13
+ });
14
+ test('returns 0 when no match found', () => {
15
+ expect(findRefSampleIndex(samples, 'galGal6')).toBe(0);
16
+ });
17
+ test('returns 0 when samples is undefined', () => {
18
+ expect(findRefSampleIndex(undefined, 'hg38')).toBe(0);
19
+ });
20
+ test('returns 0 when assemblyName is undefined', () => {
21
+ expect(findRefSampleIndex(samples, undefined)).toBe(0);
22
+ });
23
+ test('returns 0 when both are undefined', () => {
24
+ expect(findRefSampleIndex(undefined, undefined)).toBe(0);
25
+ });
26
+ test('returns 0 for empty samples array', () => {
27
+ expect(findRefSampleIndex([], 'hg38')).toBe(0);
28
+ });
29
+ });
30
+ describe('buildColToGenomePos', () => {
31
+ test('maps non-gap characters to sequential genomic positions', () => {
32
+ const result = buildColToGenomePos('ACGT', 100);
33
+ expect(result).toEqual([100, 101, 102, 103]);
34
+ });
35
+ test('maps gaps to undefined', () => {
36
+ const result = buildColToGenomePos('AC-GT', 100);
37
+ expect(result).toEqual([100, 101, undefined, 102, 103]);
38
+ });
39
+ test('handles multiple consecutive gaps', () => {
40
+ const result = buildColToGenomePos('A--G', 100);
41
+ expect(result).toEqual([100, undefined, undefined, 101]);
42
+ });
43
+ test('handles gaps at start', () => {
44
+ const result = buildColToGenomePos('--ACG', 100);
45
+ expect(result).toEqual([undefined, undefined, 100, 101, 102]);
46
+ });
47
+ test('handles gaps at end', () => {
48
+ const result = buildColToGenomePos('ACG--', 100);
49
+ expect(result).toEqual([100, 101, 102, undefined, undefined]);
50
+ });
51
+ test('handles all gaps', () => {
52
+ const result = buildColToGenomePos('----', 100);
53
+ expect(result).toEqual([undefined, undefined, undefined, undefined]);
54
+ });
55
+ test('handles empty sequence', () => {
56
+ const result = buildColToGenomePos('', 100);
57
+ expect(result).toEqual([]);
58
+ });
59
+ test('works with different start positions', () => {
60
+ const result = buildColToGenomePos('AC-T', 50000);
61
+ expect(result).toEqual([50000, 50001, undefined, 50002]);
62
+ });
63
+ });
64
+ describe('integration: hover highlight with gaps', () => {
65
+ const samples = [
66
+ { id: 'mm10', label: 'Mouse' },
67
+ { id: 'hg38', label: 'Human' },
68
+ { id: 'panTro6', label: 'Chimp' },
69
+ ];
70
+ test('gap in non-reference sample does not affect mapping', () => {
71
+ // Reference is hg38 (index 1)
72
+ // mm10 (index 0) has a gap, but hg38 does not
73
+ const sequences = [
74
+ 'A-GT', // mm10 - has gap at position 1
75
+ 'ACGT', // hg38 - no gap (this is the reference)
76
+ 'ACGT', // panTro6
77
+ ];
78
+ const refIdx = findRefSampleIndex(samples, 'hg38');
79
+ expect(refIdx).toBe(1);
80
+ const mapping = buildColToGenomePos(sequences[refIdx], 100);
81
+ // All positions should map to genomic coordinates since reference has no gaps
82
+ expect(mapping).toEqual([100, 101, 102, 103]);
83
+ });
84
+ test('gap in reference sample maps to undefined', () => {
85
+ // Reference is hg38 (index 1)
86
+ // hg38 has a gap (insertion in other species)
87
+ const sequences = [
88
+ 'ACGT', // mm10
89
+ 'A-GT', // hg38 - has gap (this is the reference)
90
+ 'ATGT', // panTro6 - has T where hg38 has gap
91
+ ];
92
+ const refIdx = findRefSampleIndex(samples, 'hg38');
93
+ const mapping = buildColToGenomePos(sequences[refIdx], 100);
94
+ // Position 1 should be undefined because reference has gap there
95
+ expect(mapping).toEqual([100, undefined, 101, 102]);
96
+ });
97
+ test('correctly handles reference as first sample', () => {
98
+ // Reference is mm10 (index 0)
99
+ const sequences = [
100
+ 'ACGT', // mm10 - reference
101
+ 'A-GT', // hg38 - has gap
102
+ 'ACGT', // panTro6
103
+ ];
104
+ const refIdx = findRefSampleIndex(samples, 'mm10');
105
+ expect(refIdx).toBe(0);
106
+ const mapping = buildColToGenomePos(sequences[refIdx], 100);
107
+ // All positions map because reference (mm10) has no gaps
108
+ expect(mapping).toEqual([100, 101, 102, 103]);
109
+ });
110
+ test('correctly handles reference as last sample', () => {
111
+ // Reference is panTro6 (index 2)
112
+ const sequences = [
113
+ 'A-GT', // mm10 - has gap
114
+ 'A-GT', // hg38 - has gap
115
+ 'ACGT', // panTro6 - no gap (this is the reference)
116
+ ];
117
+ const refIdx = findRefSampleIndex(samples, 'panTro6');
118
+ expect(refIdx).toBe(2);
119
+ const mapping = buildColToGenomePos(sequences[refIdx], 100);
120
+ // All positions map because reference (panTro6) has no gaps
121
+ expect(mapping).toEqual([100, 101, 102, 103]);
122
+ });
123
+ test('falls back to first sample when assembly not found', () => {
124
+ // Reference is galGal6 which doesn't exist in samples
125
+ const sequences = [
126
+ 'ACGT', // mm10
127
+ 'A-GT', // hg38
128
+ 'ACGT', // panTro6
129
+ ];
130
+ const refIdx = findRefSampleIndex(samples, 'galGal6');
131
+ expect(refIdx).toBe(0); // Falls back to first sample
132
+ const mapping = buildColToGenomePos(sequences[refIdx], 100);
133
+ expect(mapping).toEqual([100, 101, 102, 103]);
134
+ });
135
+ });
136
+ //# sourceMappingURL=colToGenomePos.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colToGenomePos.test.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/colToGenomePos.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const configSchema: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
@@ -0,0 +1,3 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export const configSchema = ConfigurationSchema('MafSequenceWidget', {});
3
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const CHAR_WIDTH = 12;
2
+ export declare const ROW_HEIGHT = 16;
3
+ export declare const FONT = "bold 12px monospace";
4
+ export declare const LABEL_PADDING = 10;
@@ -0,0 +1,5 @@
1
+ export const CHAR_WIDTH = 12;
2
+ export const ROW_HEIGHT = 16;
3
+ export const FONT = 'bold 12px monospace';
4
+ export const LABEL_PADDING = 10;
5
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAA;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAA;AAC5B,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAA;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function MafSequenceWidgetF(pluginManager: PluginManager): void;
@@ -0,0 +1,16 @@
1
+ import { lazy } from 'react';
2
+ import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType';
3
+ import MafSequenceHoverHighlightExtensionF from './MafSequenceHoverHighlightExtension';
4
+ import { configSchema } from './configSchema';
5
+ import { stateModelFactory } from './stateModelFactory';
6
+ export default function MafSequenceWidgetF(pluginManager) {
7
+ pluginManager.addWidgetType(() => new WidgetType({
8
+ name: 'MafSequenceWidget',
9
+ heading: 'MAF Sequence',
10
+ configSchema: configSchema,
11
+ stateModel: stateModelFactory(),
12
+ ReactComponent: lazy(() => import('./MafSequenceWidget')),
13
+ }));
14
+ MafSequenceHoverHighlightExtensionF(pluginManager);
15
+ }
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAE5B,OAAO,UAAU,MAAM,gDAAgD,CAAA;AAEvE,OAAO,mCAAmC,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAIvD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,aAA4B;IACrE,aAAa,CAAC,aAAa,CACzB,GAAG,EAAE,CACH,IAAI,UAAU,CAAC;QACb,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,cAAc;QACvB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,iBAAiB,EAAE;QAC/B,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;KAC1D,CAAC,CACL,CAAA;IAED,mCAAmC,CAAC,aAAa,CAAC,CAAA;AACpD,CAAC"}
@@ -0,0 +1,67 @@
1
+ import type { Sample } from '../LinearMafDisplay/types';
2
+ import type { Instance } from '@jbrowse/mobx-state-tree';
3
+ export interface HoverHighlight {
4
+ refName: string;
5
+ start: number;
6
+ end: number;
7
+ assemblyName: string;
8
+ }
9
+ export declare function stateModelFactory(): import("@jbrowse/mobx-state-tree").IModelType<{
10
+ id: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
11
+ type: import("@jbrowse/mobx-state-tree").ISimpleType<"MafSequenceWidget">;
12
+ adapterConfig: import("@jbrowse/mobx-state-tree").IType<({
13
+ [x: string]: any;
14
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
15
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
16
+ [x: string]: any;
17
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
18
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
19
+ [x: string]: any;
20
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & any & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
21
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
22
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>) | null | undefined, ({
23
+ [x: string]: any;
24
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
25
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
26
+ [x: string]: any;
27
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
28
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
29
+ [x: string]: any;
30
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & any & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
31
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
32
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>) | undefined, ({
33
+ [x: string]: any;
34
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
35
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
36
+ [x: string]: any;
37
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & {
38
+ setSubschema(slotName: string, data: Record<string, unknown>): Record<string, unknown> | ({
39
+ [x: string]: any;
40
+ } & import("@jbrowse/mobx-state-tree/dist/internal").NonEmptyObject & any & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
41
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>);
42
+ } & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/configuration").AnyConfigurationSchemaType>) | undefined>;
43
+ samples: import("@jbrowse/mobx-state-tree").IType<Sample[] | null | undefined, Sample[] | undefined, Sample[] | undefined>;
44
+ regions: import("@jbrowse/mobx-state-tree").IType<{
45
+ refName: string;
46
+ start: number;
47
+ end: number;
48
+ assemblyName: string;
49
+ }[] | null | undefined, {
50
+ refName: string;
51
+ start: number;
52
+ end: number;
53
+ assemblyName: string;
54
+ }[] | undefined, {
55
+ refName: string;
56
+ start: number;
57
+ end: number;
58
+ assemblyName: string;
59
+ }[] | undefined>;
60
+ connectedViewId: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
61
+ }, {
62
+ hoverHighlight: HoverHighlight | undefined;
63
+ } & {
64
+ setHoverHighlight(highlight: HoverHighlight | undefined): void;
65
+ }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
66
+ export type MafSequenceWidgetStateModel = ReturnType<typeof stateModelFactory>;
67
+ export type MafSequenceWidgetModel = Instance<MafSequenceWidgetStateModel>;
@@ -0,0 +1,21 @@
1
+ import { types } from '@jbrowse/mobx-state-tree';
2
+ export function stateModelFactory() {
3
+ return types
4
+ .model('MafSequenceWidget', {
5
+ id: types.identifier,
6
+ type: types.literal('MafSequenceWidget'),
7
+ adapterConfig: types.frozen(undefined),
8
+ samples: types.frozen(undefined),
9
+ regions: types.frozen(undefined),
10
+ connectedViewId: types.maybe(types.string),
11
+ })
12
+ .volatile(() => ({
13
+ hoverHighlight: undefined,
14
+ }))
15
+ .actions(self => ({
16
+ setHoverHighlight(highlight) {
17
+ self.hoverHighlight = highlight;
18
+ },
19
+ }));
20
+ }
21
+ //# sourceMappingURL=stateModelFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateModelFactory.js","sourceRoot":"","sources":["../../src/MafSequenceWidget/stateModelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAahD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK;SACT,KAAK,CAAC,mBAAmB,EAAE;QAC1B,EAAE,EAAE,KAAK,CAAC,UAAU;QACpB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAoC,SAAS,CAAC;QACzE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAuB,SAAS,CAAC;QACtD,OAAO,EAAE,KAAK,CAAC,MAAM,CAQnB,SAAS,CAAC;QACZ,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;KAC3C,CAAC;SACD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACf,cAAc,EAAE,SAAuC;KACxD,CAAC,CAAC;SACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,iBAAiB,CAAC,SAAqC;YACrD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QACjC,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC"}
@@ -2,10 +2,11 @@ import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter
2
2
  import { SimpleFeature, updateStatus, } from '@jbrowse/core/util';
3
3
  import { openLocation } from '@jbrowse/core/util/io';
4
4
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
5
- import { getSnapshot } from 'mobx-state-tree';
5
+ import { getSnapshot } from '@jbrowse/mobx-state-tree';
6
6
  import { firstValueFrom, toArray } from 'rxjs';
7
7
  import parseNewick from '../parseNewick';
8
8
  import { normalize } from '../util';
9
+ import { parseAssemblyAndChr, selectReferenceSequence, } from '../util/parseAssemblyName';
9
10
  export default class MafTabixAdapter extends BaseFeatureDataAdapter {
10
11
  setupP;
11
12
  async setupPre() {
@@ -62,38 +63,7 @@ export default class MafTabixAdapter extends BaseFeatureDataAdapter {
62
63
  if (!assemblyAndChr || !seq) {
63
64
  continue;
64
65
  }
65
- // Optimized assembly name parsing with simplified logic
66
- let assemblyName;
67
- let chr;
68
- const firstDotIndex = assemblyAndChr.indexOf('.');
69
- if (firstDotIndex === -1) {
70
- // No dot found, entire string is assembly name
71
- assemblyName = assemblyAndChr;
72
- chr = '';
73
- }
74
- else {
75
- const secondDotIndex = assemblyAndChr.indexOf('.', firstDotIndex + 1);
76
- if (secondDotIndex === -1) {
77
- // Only one dot: assembly.chr
78
- assemblyName = assemblyAndChr.slice(0, Math.max(0, firstDotIndex));
79
- chr = assemblyAndChr.slice(Math.max(0, firstDotIndex + 1));
80
- }
81
- else {
82
- // Multiple dots: check if second part is numeric (version number)
83
- const secondPart = assemblyAndChr.slice(firstDotIndex + 1, secondDotIndex);
84
- const isNumeric = secondPart.length > 0 && !Number.isNaN(+secondPart);
85
- if (isNumeric) {
86
- // assembly.version.chr format
87
- assemblyName = assemblyAndChr.slice(0, Math.max(0, secondDotIndex));
88
- chr = assemblyAndChr.slice(Math.max(0, secondDotIndex + 1));
89
- }
90
- else {
91
- // assembly.chr.more format
92
- assemblyName = assemblyAndChr.slice(0, Math.max(0, firstDotIndex));
93
- chr = assemblyAndChr.slice(Math.max(0, firstDotIndex + 1));
94
- }
95
- }
96
- }
66
+ const { assemblyName, chr } = parseAssemblyAndChr(assemblyAndChr);
97
67
  if (assemblyName) {
98
68
  // Set first assembly name found (only once)
99
69
  if (!firstAssemblyNameFound) {
@@ -119,8 +89,7 @@ export default class MafTabixAdapter extends BaseFeatureDataAdapter {
119
89
  name: feature.get('name'),
120
90
  score: feature.get('score'),
121
91
  alignments,
122
- seq: alignments[refAssemblyName || query.assemblyName]?.seq ||
123
- alignments[firstAssemblyNameFound]?.seq,
92
+ seq: selectReferenceSequence(alignments, refAssemblyName, query.assemblyName, firstAssemblyNameFound),
124
93
  },
125
94
  }));
126
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MafTabixAdapter.js","sourceRoot":"","sources":["../../src/MafTabixAdapter/MafTabixAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAGL,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9C,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAWnC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,sBAAsB;IAC1D,MAAM,CAA+C;IAE5D,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CACP,MAAM,IAAI,CAAC,aAAa,CAAC;gBACvB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,EAAE,iBAAiB;aACxB,CAAC,CACH,CAAC,WAAqC;SACxC,CAAA;IACH,CAAC;IACD,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBACjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;gBACvB,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAkB;QAC5B,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,OAAO,YAAY,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,EAAE,CAC5D,IAAI,CAAC,SAAS,EAAE,CACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAkB;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAkB;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,OAAO,OAAO,CAAC,SAAS,EAAE,CAAA;IAC5B,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,IAAkB;QAC3C,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,OAAO,gBAAgB,CAAU,KAAK,EAAC,QAAQ,EAAC,EAAE;YAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1C,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,wBAAwB,EACxB,cAAc,EACd,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACjE,CAAA;YAED,MAAM,YAAY,CAAC,uBAAuB,EAAE,cAAc,EAAE,GAAG,EAAE;gBAC/D,IAAI,sBAAsB,GAAG,EAAE,CAAA;gBAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;gBAEvD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACzD,MAAM,UAAU,GAAG,EAAoC,CAAA;oBACvD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;oBAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;wBACpC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;wBACpB,mDAAmD;wBACnD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAE5B,sEAAsE;wBACtE,MAAM,CACJ,cAAc,EACd,QAAQ,EACR,UAAU,EACV,SAAS,EACT,UAAU,EACV,GAAG,EACJ,GAAG,KAAK,CAAA;wBAET,2CAA2C;wBAC3C,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC;4BAC5B,SAAQ;wBACV,CAAC;wBAED,wDAAwD;wBACxD,IAAI,YAAoB,CAAA;wBACxB,IAAI,GAAW,CAAA;wBAEf,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;wBACjD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;4BACzB,+CAA+C;4BAC/C,YAAY,GAAG,cAAc,CAAA;4BAC7B,GAAG,GAAG,EAAE,CAAA;wBACV,CAAC;6BAAM,CAAC;4BACN,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAC3C,GAAG,EACH,aAAa,GAAG,CAAC,CAClB,CAAA;4BACD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;gCAC1B,6BAA6B;gCAC7B,YAAY,GAAG,cAAc,CAAC,KAAK,CACjC,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAC3B,CAAA;gCACD,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAA;4BAC5D,CAAC;iCAAM,CAAC;gCACN,kEAAkE;gCAClE,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CACrC,aAAa,GAAG,CAAC,EACjB,cAAc,CACf,CAAA;gCACD,MAAM,SAAS,GACb,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAA;gCAErD,IAAI,SAAS,EAAE,CAAC;oCACd,8BAA8B;oCAC9B,YAAY,GAAG,cAAc,CAAC,KAAK,CACjC,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAC5B,CAAA;oCACD,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAA;gCAC7D,CAAC;qCAAM,CAAC;oCACN,2BAA2B;oCAC3B,YAAY,GAAG,cAAc,CAAC,KAAK,CACjC,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAC3B,CAAA;oCACD,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC,CAAA;gCAC5D,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,YAAY,EAAE,CAAC;4BACjB,4CAA4C;4BAC5C,IAAI,CAAC,sBAAsB,EAAE,CAAC;gCAC5B,sBAAsB,GAAG,YAAY,CAAA;4BACvC,CAAC;4BAED,2DAA2D;4BAC3D,UAAU,CAAC,YAAY,CAAC,GAAG;gCACzB,GAAG;gCACH,KAAK,EAAE,CAAC,QAAS;gCACjB,OAAO,EAAE,CAAC,UAAW;gCACrB,MAAM,EAAE,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCAClC,OAAO,EAAE,CAAC,UAAW;gCACrB,GAAG;6BACJ,CAAA;wBACH,CAAC;oBACH,CAAC;oBAED,QAAQ,CAAC,IAAI,CACX,IAAI,aAAa,CAAC;wBAChB,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;wBAChB,IAAI,EAAE;4BACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;4BAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;4BACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;4BAC/B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;4BACzB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;4BAC3B,UAAU;4BACV,GAAG,EACD,UAAU,CAAC,eAAe,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG;gCACtD,UAAU,CAAC,sBAAsB,CAAC,EAAE,GAAG;yBAC1C;qBACF,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,EAAE,GACN,KAAK,CAAC,GAAG,KAAK,gBAAgB;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhD,2EAA2E;QAC3E,OAAO;QACP,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACvC,CAAA;IACH,CAAC;IAED,aAAa,KAAU,CAAC;CACzB"}
1
+ {"version":3,"file":"MafTabixAdapter.js","sourceRoot":"","sources":["../../src/MafTabixAdapter/MafTabixAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
1
+ declare const configSchema: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
2
2
  /**
3
3
  * #slot
4
4
  */
@@ -24,7 +24,7 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
24
24
  type: string;
25
25
  defaultValue: string;
26
26
  };
27
- index: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
27
+ index: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
28
28
  /**
29
29
  * #slot index.location
30
30
  */
@@ -41,7 +41,7 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
41
41
  type: string;
42
42
  defaultValue: string;
43
43
  };
44
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
44
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
45
45
  /**
46
46
  * #slot
47
47
  */
@@ -53,5 +53,5 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
53
53
  locationType: string;
54
54
  };
55
55
  };
56
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
56
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
57
57
  export default configSchema;
@@ -1,5 +1,5 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager';
2
- export default function configSchemaF(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
2
+ export default function configSchemaF(pluginManager: PluginManager): import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{}, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
3
3
  name: {
4
4
  description: string;
5
5
  type: string;
@@ -25,8 +25,13 @@ export default function configSchemaF(pluginManager: PluginManager): import("@jb
25
25
  description: string;
26
26
  defaultValue: {};
27
27
  };
28
- adapter: import("mobx-state-tree").IAnyModelType;
29
- textSearching: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
28
+ rpcDriverName: {
29
+ type: string;
30
+ description: string;
31
+ defaultValue: string;
32
+ };
33
+ adapter: import("@jbrowse/mobx-state-tree").IAnyModelType;
34
+ textSearching: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
30
35
  indexingAttributes: {
31
36
  type: string;
32
37
  description: string;
@@ -37,10 +42,10 @@ export default function configSchemaF(pluginManager: PluginManager): import("@jb
37
42
  description: string;
38
43
  defaultValue: string[];
39
44
  };
40
- textSearchAdapter: import("mobx-state-tree").IAnyModelType;
41
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
42
- displays: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IAnyModelType>;
43
- formatDetails: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
45
+ textSearchAdapter: import("@jbrowse/mobx-state-tree").IAnyModelType;
46
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
47
+ displays: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyModelType>;
48
+ formatDetails: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
44
49
  feature: {
45
50
  type: string;
46
51
  description: string;
@@ -63,8 +68,8 @@ export default function configSchemaF(pluginManager: PluginManager): import("@jb
63
68
  defaultValue: number;
64
69
  description: string;
65
70
  };
66
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
67
- formatAbout: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
71
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
72
+ formatAbout: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
68
73
  config: {
69
74
  type: string;
70
75
  description: string;
@@ -75,5 +80,5 @@ export default function configSchemaF(pluginManager: PluginManager): import("@jb
75
80
  type: string;
76
81
  defaultValue: boolean;
77
82
  };
78
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
79
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "trackId">>, "trackId">>;
83
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
84
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, "trackId">>, "trackId">>;
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import LinearMafRendererF from './LinearMafRenderer';
6
6
  import MafAddTrackWorkflowF from './MafAddTrackWorkflow';
7
7
  import MafGetSamplesF from './MafGetSamples';
8
8
  import MafGetSequencesF from './MafGetSequences';
9
+ import MafSequenceWidgetF from './MafSequenceWidget';
9
10
  import MafTabixAdapterF from './MafTabixAdapter';
10
11
  import MafTrackF from './MafTrack';
11
12
  export default class MafViewerPlugin extends Plugin {
@@ -20,6 +21,7 @@ export default class MafViewerPlugin extends Plugin {
20
21
  MafAddTrackWorkflowF(pluginManager);
21
22
  MafGetSequencesF(pluginManager);
22
23
  MafGetSamplesF(pluginManager);
24
+ MafSequenceWidgetF(pluginManager);
23
25
  }
24
26
  configure(_pluginManager) { }
25
27
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,oBAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IACjD,IAAI,GAAG,iBAAiB,CAAA;IACxB,OAAO,GAAG,OAAO,CAAA;IAEjB,OAAO,CAAC,aAA4B;QAClC,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,SAAS,CAAC,aAAa,CAAC,CAAA;QACxB,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAChC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC/B,oBAAoB,CAAC,aAAa,CAAC,CAAA;QACnC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC/B,cAAc,CAAC,aAAa,CAAC,CAAA;IAC/B,CAAC;IAED,SAAS,CAAC,cAA6B,IAAG,CAAC;CAC5C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,oBAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAC5C,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,kBAAkB,MAAM,qBAAqB,CAAA;AACpD,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,MAAM;IACjD,IAAI,GAAG,iBAAiB,CAAA;IACxB,OAAO,GAAG,OAAO,CAAA;IAEjB,OAAO,CAAC,aAA4B;QAClC,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,SAAS,CAAC,aAAa,CAAC,CAAA;QACxB,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAChC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC/B,oBAAoB,CAAC,aAAa,CAAC,CAAA;QACnC,gBAAgB,CAAC,aAAa,CAAC,CAAA;QAC/B,cAAc,CAAC,aAAa,CAAC,CAAA;QAC7B,kBAAkB,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,cAA6B,IAAG,CAAC;CAC5C"}