jbrowse-plugin-msaview 2.2.2 → 2.2.4

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 (162) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +229 -0
  3. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +23 -18
  4. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  5. package/dist/AddHighlightModel/MsaToGenomeHighlight.js +23 -13
  6. package/dist/AddHighlightModel/MsaToGenomeHighlight.js.map +1 -1
  7. package/dist/AddHighlightModel/index.js +8 -1
  8. package/dist/AddHighlightModel/index.js.map +1 -1
  9. package/dist/AddHighlightModel/util.d.ts +2 -2
  10. package/dist/BgzipFastaMsaAdapter/configSchema.d.ts +2 -2
  11. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js +5 -11
  12. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js.map +1 -1
  13. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js +5 -1
  14. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js.map +1 -1
  15. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +16 -16
  16. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  17. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +38 -46
  18. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -1
  19. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.d.ts +4 -3
  20. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.js +4 -3
  21. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.js.map +1 -1
  22. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.d.ts +9 -0
  23. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js +76 -0
  24. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js.map +1 -0
  25. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +35 -13
  26. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -1
  27. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js +6 -12
  28. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js.map +1 -1
  29. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.d.ts +6 -0
  30. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js +15 -0
  31. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js.map +1 -1
  32. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +12 -34
  33. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  34. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.d.ts +1 -0
  35. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.js +1 -0
  36. package/dist/LaunchMsaView/components/PreLoadedMSA/consts.js.map +1 -1
  37. package/dist/LaunchMsaView/components/TabPanel.d.ts +2 -2
  38. package/dist/LaunchMsaView/components/TranscriptSelector.d.ts +2 -2
  39. package/dist/LaunchMsaView/components/TranscriptSelector.js +3 -6
  40. package/dist/LaunchMsaView/components/TranscriptSelector.js.map +1 -1
  41. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js +6 -4
  42. package/dist/LaunchMsaView/components/useSWRFeatureSequence.js.map +1 -1
  43. package/dist/LaunchMsaView/components/useTranscriptSelection.d.ts +16 -0
  44. package/dist/LaunchMsaView/components/useTranscriptSelection.js +31 -0
  45. package/dist/LaunchMsaView/components/useTranscriptSelection.js.map +1 -0
  46. package/dist/LaunchMsaView/components/util.d.ts +3 -1
  47. package/dist/LaunchMsaView/components/util.js +12 -2
  48. package/dist/LaunchMsaView/components/util.js.map +1 -1
  49. package/dist/LaunchMsaView/util.d.ts +2 -0
  50. package/dist/LaunchMsaView/util.js +16 -4
  51. package/dist/LaunchMsaView/util.js.map +1 -1
  52. package/dist/LaunchMsaViewExtensionPoint/index.d.ts +2 -0
  53. package/dist/LaunchMsaViewExtensionPoint/index.js +31 -0
  54. package/dist/LaunchMsaViewExtensionPoint/index.js.map +1 -0
  55. package/dist/MsaViewPanel/components/ConnectStructureDialog.d.ts +7 -0
  56. package/dist/MsaViewPanel/components/ConnectStructureDialog.js +56 -0
  57. package/dist/MsaViewPanel/components/ConnectStructureDialog.js.map +1 -0
  58. package/dist/MsaViewPanel/components/MsaViewPanel.js +4 -2
  59. package/dist/MsaViewPanel/components/MsaViewPanel.js.map +1 -1
  60. package/dist/MsaViewPanel/doLaunchBlast.d.ts +1 -0
  61. package/dist/MsaViewPanel/doLaunchBlast.js +65 -19
  62. package/dist/MsaViewPanel/doLaunchBlast.js.map +1 -1
  63. package/dist/MsaViewPanel/genomeToMSA.d.ts +6 -0
  64. package/dist/MsaViewPanel/genomeToMSA.js +38 -8
  65. package/dist/MsaViewPanel/genomeToMSA.js.map +1 -1
  66. package/dist/MsaViewPanel/genomeToMSA.test.d.ts +1 -0
  67. package/dist/MsaViewPanel/genomeToMSA.test.js +244 -0
  68. package/dist/MsaViewPanel/genomeToMSA.test.js.map +1 -0
  69. package/dist/MsaViewPanel/model.d.ts +727 -226
  70. package/dist/MsaViewPanel/model.js +496 -52
  71. package/dist/MsaViewPanel/model.js.map +1 -1
  72. package/dist/MsaViewPanel/msaCoordToGenomeCoord.d.ts +10 -2
  73. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js +26 -27
  74. package/dist/MsaViewPanel/msaCoordToGenomeCoord.js.map +1 -1
  75. package/dist/MsaViewPanel/msaCoordToGenomeCoord.test.d.ts +1 -0
  76. package/dist/MsaViewPanel/msaCoordToGenomeCoord.test.js +240 -0
  77. package/dist/MsaViewPanel/msaCoordToGenomeCoord.test.js.map +1 -0
  78. package/dist/MsaViewPanel/msaDataStore.d.ts +14 -0
  79. package/dist/MsaViewPanel/msaDataStore.js +197 -0
  80. package/dist/MsaViewPanel/msaDataStore.js.map +1 -0
  81. package/dist/MsaViewPanel/pairwiseAlignment.d.ts +27 -0
  82. package/dist/MsaViewPanel/pairwiseAlignment.js +776 -0
  83. package/dist/MsaViewPanel/pairwiseAlignment.js.map +1 -0
  84. package/dist/MsaViewPanel/pairwiseAlignment.test.d.ts +1 -0
  85. package/dist/MsaViewPanel/pairwiseAlignment.test.js +112 -0
  86. package/dist/MsaViewPanel/pairwiseAlignment.test.js.map +1 -0
  87. package/dist/MsaViewPanel/structureConnection.d.ts +27 -0
  88. package/dist/MsaViewPanel/structureConnection.js +46 -0
  89. package/dist/MsaViewPanel/structureConnection.js.map +1 -0
  90. package/dist/MsaViewPanel/structureConnection.test.d.ts +1 -0
  91. package/dist/MsaViewPanel/structureConnection.test.js +122 -0
  92. package/dist/MsaViewPanel/structureConnection.test.js.map +1 -0
  93. package/dist/MsaViewPanel/types.d.ts +13 -0
  94. package/dist/MsaViewPanel/types.js +2 -0
  95. package/dist/MsaViewPanel/types.js.map +1 -0
  96. package/dist/MsaViewPanel/util.d.ts +7 -0
  97. package/dist/MsaViewPanel/util.js +10 -0
  98. package/dist/MsaViewPanel/util.js.map +1 -1
  99. package/dist/index.d.ts +5 -5
  100. package/dist/index.js +3 -1
  101. package/dist/index.js.map +1 -1
  102. package/dist/jbrowse-plugin-msaview.umd.production.min.js +39 -90
  103. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  104. package/dist/utils/blastCache.d.ts +34 -0
  105. package/dist/utils/blastCache.js +58 -0
  106. package/dist/utils/blastCache.js.map +1 -0
  107. package/dist/utils/fetch.d.ts +1 -1
  108. package/dist/utils/fetch.js +1 -1
  109. package/dist/utils/fetch.js.map +1 -1
  110. package/dist/utils/ncbiBlast.d.ts +1 -5
  111. package/dist/utils/taxonomyNames.d.ts +5 -0
  112. package/dist/utils/taxonomyNames.js +79 -0
  113. package/dist/utils/taxonomyNames.js.map +1 -0
  114. package/dist/utils/types.d.ts +8 -5
  115. package/package.json +50 -54
  116. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +37 -21
  117. package/src/AddHighlightModel/MsaToGenomeHighlight.tsx +38 -17
  118. package/src/AddHighlightModel/index.tsx +9 -4
  119. package/src/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.tsx +13 -13
  120. package/src/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.ts +6 -0
  121. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +30 -23
  122. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +64 -51
  123. package/src/LaunchMsaView/components/ManualMSALoader/launchView.ts +9 -6
  124. package/src/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.tsx +146 -0
  125. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +53 -22
  126. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.tsx +8 -13
  127. package/src/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.ts +25 -0
  128. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +27 -47
  129. package/src/LaunchMsaView/components/PreLoadedMSA/consts.ts +1 -0
  130. package/src/LaunchMsaView/components/TabPanel.tsx +2 -2
  131. package/src/LaunchMsaView/components/TranscriptSelector.tsx +13 -20
  132. package/src/LaunchMsaView/components/useSWRFeatureSequence.ts +5 -5
  133. package/src/LaunchMsaView/components/useTranscriptSelection.ts +48 -0
  134. package/src/LaunchMsaView/components/util.ts +17 -2
  135. package/src/LaunchMsaView/index.ts +1 -1
  136. package/src/LaunchMsaView/util.ts +25 -6
  137. package/src/LaunchMsaViewExtensionPoint/index.ts +74 -0
  138. package/src/MsaViewPanel/components/ConnectStructureDialog.tsx +156 -0
  139. package/src/MsaViewPanel/components/MsaViewPanel.tsx +6 -1
  140. package/src/MsaViewPanel/doLaunchBlast.ts +83 -23
  141. package/src/MsaViewPanel/genomeToMSA.test.ts +281 -0
  142. package/src/MsaViewPanel/genomeToMSA.ts +43 -10
  143. package/src/MsaViewPanel/model.ts +617 -58
  144. package/src/MsaViewPanel/msaCoordToGenomeCoord.test.ts +256 -0
  145. package/src/MsaViewPanel/msaCoordToGenomeCoord.ts +42 -30
  146. package/src/MsaViewPanel/msaDataStore.ts +236 -0
  147. package/src/MsaViewPanel/pairwiseAlignment.test.ts +140 -0
  148. package/src/MsaViewPanel/pairwiseAlignment.ts +818 -0
  149. package/src/MsaViewPanel/structureConnection.test.ts +143 -0
  150. package/src/MsaViewPanel/structureConnection.ts +72 -0
  151. package/src/MsaViewPanel/types.ts +14 -0
  152. package/src/MsaViewPanel/util.ts +11 -0
  153. package/src/index.ts +3 -1
  154. package/src/utils/blastCache.ts +114 -0
  155. package/src/utils/fetch.ts +1 -1
  156. package/src/utils/taxonomyNames.ts +111 -0
  157. package/src/utils/types.ts +9 -1
  158. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.d.ts +0 -5
  159. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.js +0 -16
  160. package/dist/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.js.map +0 -1
  161. package/dist/out.js +0 -55367
  162. package/src/LaunchMsaView/components/PreLoadedMSA/findValidTranscriptId.ts +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/MsaViewPanel/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/MsaViewPanel/model.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,14 @@
1
- import { JBrowsePluginMsaViewModel } from './model';
1
+ import type { MafRegion } from './types';
2
2
  export declare function msaCoordToGenomeCoord({ model, coord: mouseCol, }: {
3
- model: JBrowsePluginMsaViewModel;
3
+ model: {
4
+ querySeqName: string;
5
+ transcriptToMsaMap: {
6
+ refName: string;
7
+ p2g: Record<number, number>;
8
+ } | undefined;
9
+ mafRegion?: MafRegion;
10
+ rows: string[][];
11
+ };
4
12
  coord: number;
5
13
  }): {
6
14
  refName: string;
@@ -1,35 +1,33 @@
1
- /**
2
- * Convert gapped MSA column coordinate to ungapped sequence coordinate
3
- * This is the inverse of ungappedCoordMap
4
- */
5
- function gappedToUngappedCoord(seq, gappedPos) {
6
- let ungappedPos = 0;
7
- for (let i = 0; i < gappedPos && i < seq.length; i++) {
8
- if (seq[i] !== '-') {
9
- ungappedPos++;
10
- }
11
- }
12
- return ungappedPos;
13
- }
1
+ import { gappedToUngappedPosition } from './structureConnection';
14
2
  export function msaCoordToGenomeCoord({ model, coord: mouseCol, }) {
15
- const { querySeqName, transcriptToMsaMap } = model;
16
- if (transcriptToMsaMap === undefined) {
3
+ const { querySeqName, transcriptToMsaMap, mafRegion } = model;
4
+ // Get the query sequence
5
+ const queryRow = model.rows.find(f => f[0] === querySeqName);
6
+ const querySeq = queryRow?.[1];
7
+ if (!querySeq) {
17
8
  return undefined;
18
9
  }
19
- else {
20
- // Get the query sequence
21
- const queryRow = model.rows.find(f => f[0] === querySeqName);
22
- const querySeq = queryRow?.[1];
23
- if (!querySeq) {
24
- return undefined;
25
- }
26
- // Check if the position in the query sequence is a gap
27
- if (querySeq[mouseCol] === '-') {
10
+ // Convert gapped MSA column to ungapped sequence coordinate
11
+ // Returns undefined if the position is a gap
12
+ const ungappedPos = gappedToUngappedPosition(querySeq, mouseCol);
13
+ if (ungappedPos === undefined) {
14
+ return undefined;
15
+ }
16
+ // Handle MAF region mapping
17
+ if (mafRegion) {
18
+ const genomePos = mafRegion.start + ungappedPos;
19
+ // Check if position is within the region
20
+ if (genomePos >= mafRegion.end) {
28
21
  return undefined;
29
22
  }
30
- // Convert gapped MSA column to ungapped sequence coordinate
31
- const ungappedPos = gappedToUngappedCoord(querySeq, mouseCol);
32
- // Use the ungapped position to look up in the p2g map
23
+ return {
24
+ refName: mafRegion.refName,
25
+ start: genomePos,
26
+ end: genomePos + 1,
27
+ };
28
+ }
29
+ // Handle transcript mapping (original behavior)
30
+ if (transcriptToMsaMap) {
33
31
  const { refName, p2g } = transcriptToMsaMap;
34
32
  const s = p2g[ungappedPos];
35
33
  const e = p2g[ungappedPos + 1];
@@ -41,5 +39,6 @@ export function msaCoordToGenomeCoord({ model, coord: mouseCol, }) {
41
39
  }
42
40
  : undefined;
43
41
  }
42
+ return undefined;
44
43
  }
45
44
  //# sourceMappingURL=msaCoordToGenomeCoord.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"msaCoordToGenomeCoord.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaCoordToGenomeCoord.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,SAAiB;IAC3D,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,WAAW,EAAE,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EAAE,QAAQ,GAIhB;IACC,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,KAAK,CAAA;IAClD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,uDAAuD;QACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,4DAA4D;QAC5D,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAE7D,sDAAsD;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAA;QAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QAC9B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YACvC,CAAC,CAAC;gBACE,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;aACpB;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"msaCoordToGenomeCoord.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaCoordToGenomeCoord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAIhE,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EAAE,QAAQ,GAchB;IACC,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAE7D,yBAAyB;IACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAA;IAC5D,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,4DAA4D;IAC5D,6CAA6C;IAC7C,MAAM,WAAW,GAAG,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAChE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,4BAA4B;IAC5B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,GAAG,WAAW,CAAA;QAC/C,yCAAyC;QACzC,IAAI,SAAS,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS,GAAG,CAAC;SACnB,CAAA;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAA;QAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;QAC9B,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YACvC,CAAC,CAAC;gBACE,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;aACpB;YACH,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,240 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { msaCoordToGenomeCoord } from './msaCoordToGenomeCoord';
3
+ describe('msaCoordToGenomeCoord', () => {
4
+ test('returns undefined when neither transcriptToMsaMap nor mafRegion is defined', () => {
5
+ const model = {
6
+ querySeqName: 'QUERY',
7
+ transcriptToMsaMap: undefined,
8
+ mafRegion: undefined,
9
+ rows: [['QUERY', 'MKAA']],
10
+ };
11
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
12
+ expect(result).toBeUndefined();
13
+ });
14
+ test('returns undefined when query row is not found', () => {
15
+ const model = {
16
+ querySeqName: 'QUERY',
17
+ transcriptToMsaMap: {
18
+ refName: 'chr1',
19
+ p2g: { 0: 100, 1: 103 },
20
+ },
21
+ rows: [['OTHER', 'MKAA']],
22
+ };
23
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
24
+ expect(result).toBeUndefined();
25
+ });
26
+ test('returns undefined when coord is a gap', () => {
27
+ const model = {
28
+ querySeqName: 'QUERY',
29
+ transcriptToMsaMap: {
30
+ refName: 'chr1',
31
+ p2g: { 0: 100, 1: 103 },
32
+ },
33
+ rows: [['QUERY', 'M-KA']],
34
+ };
35
+ // Position 1 is a gap
36
+ const result = msaCoordToGenomeCoord({ model, coord: 1 });
37
+ expect(result).toBeUndefined();
38
+ });
39
+ test('returns genome region for valid non-gap position', () => {
40
+ const model = {
41
+ querySeqName: 'QUERY',
42
+ transcriptToMsaMap: {
43
+ refName: 'chr1',
44
+ p2g: { 0: 100, 1: 103, 2: 106, 3: 109 },
45
+ },
46
+ rows: [['QUERY', 'MKAA']],
47
+ };
48
+ // Position 0 (M) should map to ungapped 0, genome 100-103
49
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
50
+ expect(result).toEqual({
51
+ refName: 'chr1',
52
+ start: 100,
53
+ end: 103,
54
+ });
55
+ });
56
+ test('handles gapped sequence correctly', () => {
57
+ const model = {
58
+ querySeqName: 'QUERY',
59
+ transcriptToMsaMap: {
60
+ refName: 'chr1',
61
+ p2g: { 0: 100, 1: 103, 2: 106, 3: 109 },
62
+ },
63
+ rows: [['QUERY', 'M-K-AA']],
64
+ // 012345 gapped positions
65
+ // 0 1 23 ungapped positions
66
+ };
67
+ // Gapped position 2 (K) = ungapped 1
68
+ const result = msaCoordToGenomeCoord({ model, coord: 2 });
69
+ expect(result).toEqual({
70
+ refName: 'chr1',
71
+ start: 103,
72
+ end: 106,
73
+ });
74
+ // Gapped position 4 (first A) = ungapped 2
75
+ const result2 = msaCoordToGenomeCoord({ model, coord: 4 });
76
+ expect(result2).toEqual({
77
+ refName: 'chr1',
78
+ start: 106,
79
+ end: 109,
80
+ });
81
+ });
82
+ test('returns undefined when p2g mapping is incomplete', () => {
83
+ const model = {
84
+ querySeqName: 'QUERY',
85
+ transcriptToMsaMap: {
86
+ refName: 'chr1',
87
+ p2g: { 0: 100 }, // Missing entry for position 1
88
+ },
89
+ rows: [['QUERY', 'MKAA']],
90
+ };
91
+ // Position 0 needs p2g[0] and p2g[1], but p2g[1] is missing
92
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
93
+ expect(result).toBeUndefined();
94
+ });
95
+ test('handles reverse strand (start > end in p2g)', () => {
96
+ const model = {
97
+ querySeqName: 'QUERY',
98
+ transcriptToMsaMap: {
99
+ refName: 'chr1',
100
+ p2g: { 0: 109, 1: 106, 2: 103, 3: 100 }, // Reverse strand
101
+ },
102
+ rows: [['QUERY', 'MKAA']],
103
+ };
104
+ // Should return min/max correctly
105
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
106
+ expect(result).toEqual({
107
+ refName: 'chr1',
108
+ start: 106, // min(109, 106)
109
+ end: 109, // max(109, 106)
110
+ });
111
+ });
112
+ test('returns undefined for out of bounds coord', () => {
113
+ const model = {
114
+ querySeqName: 'QUERY',
115
+ transcriptToMsaMap: {
116
+ refName: 'chr1',
117
+ p2g: { 0: 100, 1: 103 },
118
+ },
119
+ rows: [['QUERY', 'MK']],
120
+ };
121
+ // Position 10 is out of bounds
122
+ const result = msaCoordToGenomeCoord({ model, coord: 10 });
123
+ expect(result).toBeUndefined();
124
+ });
125
+ test('works with multiple rows, uses querySeqName', () => {
126
+ const model = {
127
+ querySeqName: 'SEQ2',
128
+ transcriptToMsaMap: {
129
+ refName: 'chr1',
130
+ p2g: { 0: 200, 1: 203 },
131
+ },
132
+ rows: [
133
+ ['SEQ1', 'AAAA'],
134
+ ['SEQ2', 'MKAA'],
135
+ ['SEQ3', 'LLLL'],
136
+ ],
137
+ };
138
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
139
+ expect(result).toEqual({
140
+ refName: 'chr1',
141
+ start: 200,
142
+ end: 203,
143
+ });
144
+ });
145
+ // MAF region tests
146
+ describe('mafRegion', () => {
147
+ test('returns genome position for mafRegion mapping', () => {
148
+ const model = {
149
+ querySeqName: 'hg38.chr1',
150
+ transcriptToMsaMap: undefined,
151
+ mafRegion: {
152
+ refName: 'chr1',
153
+ start: 1000,
154
+ end: 1010,
155
+ assemblyName: 'hg38',
156
+ },
157
+ rows: [['hg38.chr1', 'ACGTACGTAC']],
158
+ };
159
+ // Position 0 should map to genome 1000
160
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
161
+ expect(result).toEqual({
162
+ refName: 'chr1',
163
+ start: 1000,
164
+ end: 1001,
165
+ });
166
+ // Position 5 should map to genome 1005
167
+ const result2 = msaCoordToGenomeCoord({ model, coord: 5 });
168
+ expect(result2).toEqual({
169
+ refName: 'chr1',
170
+ start: 1005,
171
+ end: 1006,
172
+ });
173
+ });
174
+ test('handles gaps in mafRegion sequence', () => {
175
+ const model = {
176
+ querySeqName: 'hg38.chr1',
177
+ transcriptToMsaMap: undefined,
178
+ mafRegion: {
179
+ refName: 'chr1',
180
+ start: 1000,
181
+ end: 1008,
182
+ assemblyName: 'hg38',
183
+ },
184
+ rows: [['hg38.chr1', 'AC--GTAC']],
185
+ // Gapped positions: 0 1 2 3 4 5 6 7
186
+ // Ungapped: 0 1 2 3 4 5
187
+ };
188
+ // Position 2 is a gap, should return undefined
189
+ const result = msaCoordToGenomeCoord({ model, coord: 2 });
190
+ expect(result).toBeUndefined();
191
+ // Position 4 (G) = ungapped 2 = genome 1002
192
+ const result2 = msaCoordToGenomeCoord({ model, coord: 4 });
193
+ expect(result2).toEqual({
194
+ refName: 'chr1',
195
+ start: 1002,
196
+ end: 1003,
197
+ });
198
+ });
199
+ test('returns undefined when position exceeds mafRegion end', () => {
200
+ const model = {
201
+ querySeqName: 'hg38.chr1',
202
+ transcriptToMsaMap: undefined,
203
+ mafRegion: {
204
+ refName: 'chr1',
205
+ start: 1000,
206
+ end: 1005,
207
+ assemblyName: 'hg38',
208
+ },
209
+ rows: [['hg38.chr1', 'ACGTACGTAC']], // 10 chars but region is only 5bp
210
+ };
211
+ // Position 8 would be ungapped 8 = genome 1008, but region ends at 1005
212
+ const result = msaCoordToGenomeCoord({ model, coord: 8 });
213
+ expect(result).toBeUndefined();
214
+ });
215
+ test('mafRegion takes precedence over transcriptToMsaMap', () => {
216
+ const model = {
217
+ querySeqName: 'hg38.chr1',
218
+ transcriptToMsaMap: {
219
+ refName: 'chr2',
220
+ p2g: { 0: 5000, 1: 5003 },
221
+ },
222
+ mafRegion: {
223
+ refName: 'chr1',
224
+ start: 1000,
225
+ end: 1010,
226
+ assemblyName: 'hg38',
227
+ },
228
+ rows: [['hg38.chr1', 'ACGTACGTAC']],
229
+ };
230
+ // Should use mafRegion, not transcriptToMsaMap
231
+ const result = msaCoordToGenomeCoord({ model, coord: 0 });
232
+ expect(result).toEqual({
233
+ refName: 'chr1',
234
+ start: 1000,
235
+ end: 1001,
236
+ });
237
+ });
238
+ });
239
+ });
240
+ //# sourceMappingURL=msaCoordToGenomeCoord.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msaCoordToGenomeCoord.test.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaCoordToGenomeCoord.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare function generateDataStoreId(): string;
2
+ export declare function storeMsaData(id: string, data: {
3
+ msa?: string;
4
+ tree?: string;
5
+ treeMetadata?: string;
6
+ }): Promise<boolean>;
7
+ export declare function retrieveMsaData(id: string): Promise<{
8
+ msa?: string;
9
+ tree?: string;
10
+ treeMetadata?: string;
11
+ } | undefined>;
12
+ export declare function deleteMsaData(id: string): Promise<void>;
13
+ export declare function cleanupOldData(maxAgeMs?: number): Promise<number>;
14
+ export declare function isIndexedDBAvailable(): boolean;
@@ -0,0 +1,197 @@
1
+ const DB_NAME = 'jbrowse-msaview-data';
2
+ const DB_VERSION = 1;
3
+ const STORE_NAME = 'msa-data';
4
+ let dbPromise;
5
+ let indexedDBAvailable;
6
+ function checkIndexedDBAvailable() {
7
+ if (indexedDBAvailable !== undefined) {
8
+ return indexedDBAvailable;
9
+ }
10
+ try {
11
+ // Check if indexedDB exists and is accessible
12
+ if (typeof indexedDB === 'undefined') {
13
+ indexedDBAvailable = false;
14
+ return false;
15
+ }
16
+ // Try to open a test database to verify IndexedDB is working
17
+ // This can fail in private browsing mode in some browsers
18
+ indexedDBAvailable = true;
19
+ return true;
20
+ }
21
+ catch {
22
+ indexedDBAvailable = false;
23
+ return false;
24
+ }
25
+ }
26
+ async function openDB() {
27
+ if (!checkIndexedDBAvailable()) {
28
+ return undefined;
29
+ }
30
+ if (dbPromise) {
31
+ return dbPromise;
32
+ }
33
+ dbPromise = new Promise(resolve => {
34
+ try {
35
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
36
+ request.addEventListener('error', () => {
37
+ // IndexedDB may be blocked in private browsing mode
38
+ console.warn('IndexedDB unavailable - MSA data will not persist across page refreshes');
39
+ indexedDBAvailable = false;
40
+ resolve(undefined);
41
+ });
42
+ request.onsuccess = () => {
43
+ resolve(request.result);
44
+ };
45
+ request.onupgradeneeded = event => {
46
+ const db = event.target.result;
47
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
48
+ const store = db.createObjectStore(STORE_NAME, { keyPath: 'id' });
49
+ store.createIndex('timestamp', 'timestamp', { unique: false });
50
+ }
51
+ };
52
+ }
53
+ catch (e) {
54
+ console.warn('Failed to open IndexedDB:', e);
55
+ indexedDBAvailable = false;
56
+ resolve(undefined);
57
+ }
58
+ });
59
+ return dbPromise;
60
+ }
61
+ export function generateDataStoreId() {
62
+ return `msa-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
63
+ }
64
+ export async function storeMsaData(id, data) {
65
+ const db = await openDB();
66
+ if (!db) {
67
+ // IndexedDB not available, silently skip storage
68
+ return false;
69
+ }
70
+ return new Promise(resolve => {
71
+ try {
72
+ const transaction = db.transaction(STORE_NAME, 'readwrite');
73
+ const store = transaction.objectStore(STORE_NAME);
74
+ const storedData = {
75
+ id,
76
+ msa: data.msa,
77
+ tree: data.tree,
78
+ treeMetadata: data.treeMetadata,
79
+ timestamp: Date.now(),
80
+ };
81
+ const request = store.put(storedData);
82
+ request.addEventListener('error', () => {
83
+ // Log but don't fail - storage is best-effort
84
+ console.warn('Failed to store MSA data:', request.error);
85
+ resolve(false);
86
+ });
87
+ request.onsuccess = () => {
88
+ resolve(true);
89
+ };
90
+ }
91
+ catch (e) {
92
+ console.warn('Failed to store MSA data:', e);
93
+ resolve(false);
94
+ }
95
+ });
96
+ }
97
+ export async function retrieveMsaData(id) {
98
+ const db = await openDB();
99
+ if (!db) {
100
+ return undefined;
101
+ }
102
+ return new Promise(resolve => {
103
+ try {
104
+ const transaction = db.transaction(STORE_NAME, 'readonly');
105
+ const store = transaction.objectStore(STORE_NAME);
106
+ const request = store.get(id);
107
+ request.addEventListener('error', () => {
108
+ console.warn('Failed to retrieve MSA data:', request.error);
109
+ resolve(undefined);
110
+ });
111
+ request.onsuccess = () => {
112
+ const result = request.result;
113
+ if (result) {
114
+ resolve({
115
+ msa: result.msa,
116
+ tree: result.tree,
117
+ treeMetadata: result.treeMetadata,
118
+ });
119
+ }
120
+ else {
121
+ resolve(undefined);
122
+ }
123
+ };
124
+ }
125
+ catch (e) {
126
+ console.warn('Failed to retrieve MSA data:', e);
127
+ resolve(undefined);
128
+ }
129
+ });
130
+ }
131
+ export async function deleteMsaData(id) {
132
+ const db = await openDB();
133
+ if (!db) {
134
+ return;
135
+ }
136
+ return new Promise(resolve => {
137
+ try {
138
+ const transaction = db.transaction(STORE_NAME, 'readwrite');
139
+ const store = transaction.objectStore(STORE_NAME);
140
+ const request = store.delete(id);
141
+ request.addEventListener('error', () => {
142
+ console.warn('Failed to delete MSA data:', request.error);
143
+ resolve();
144
+ });
145
+ request.onsuccess = () => {
146
+ resolve();
147
+ };
148
+ }
149
+ catch (e) {
150
+ console.warn('Failed to delete MSA data:', e);
151
+ resolve();
152
+ }
153
+ });
154
+ }
155
+ // Clean up entries older than the specified age (default 7 days)
156
+ export async function cleanupOldData(maxAgeMs = 7 * 24 * 60 * 60 * 1000) {
157
+ const db = await openDB();
158
+ if (!db) {
159
+ return 0;
160
+ }
161
+ const cutoffTime = Date.now() - maxAgeMs;
162
+ return new Promise(resolve => {
163
+ try {
164
+ const transaction = db.transaction(STORE_NAME, 'readwrite');
165
+ const store = transaction.objectStore(STORE_NAME);
166
+ const index = store.index('timestamp');
167
+ const range = IDBKeyRange.upperBound(cutoffTime);
168
+ const request = index.openCursor(range);
169
+ let deletedCount = 0;
170
+ request.addEventListener('error', () => {
171
+ console.warn('Failed to cleanup old MSA data:', request.error);
172
+ resolve(deletedCount);
173
+ });
174
+ request.onsuccess = event => {
175
+ const cursor = event.target
176
+ .result;
177
+ if (cursor) {
178
+ cursor.delete();
179
+ deletedCount++;
180
+ cursor.continue();
181
+ }
182
+ else {
183
+ resolve(deletedCount);
184
+ }
185
+ };
186
+ }
187
+ catch (e) {
188
+ console.warn('Failed to cleanup old MSA data:', e);
189
+ resolve(0);
190
+ }
191
+ });
192
+ }
193
+ // Check if IndexedDB storage is available
194
+ export function isIndexedDBAvailable() {
195
+ return checkIndexedDBAvailable();
196
+ }
197
+ //# sourceMappingURL=msaDataStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msaDataStore.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaDataStore.ts"],"names":[],"mappings":"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"}