jbrowse-plugin-msaview 2.2.8 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/dist/AddHighlightModel/index.d.ts +1 -1
  2. package/dist/AddHighlightModel/index.js.map +1 -1
  3. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.d.ts +2 -1
  4. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js +1 -1
  5. package/dist/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.js.map +1 -1
  6. package/dist/BgzipFastaMsaAdapter/configSchema.d.ts +3 -3
  7. package/dist/BgzipFastaMsaAdapter/configSchema.js.map +1 -1
  8. package/dist/BgzipFastaMsaAdapter/index.d.ts +1 -1
  9. package/dist/BgzipFastaMsaAdapter/index.js.map +1 -1
  10. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.d.ts +1 -1
  11. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js +1 -1
  12. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js.map +1 -1
  13. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.js.map +1 -1
  14. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.d.ts +1 -1
  15. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  16. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.d.ts +1 -1
  17. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +1 -1
  18. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -1
  19. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.d.ts +1 -1
  20. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.js.map +1 -1
  21. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.d.ts +1 -2
  22. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js +21 -14
  23. package/dist/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.js.map +1 -1
  24. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.d.ts +1 -1
  25. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +32 -35
  26. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -1
  27. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.d.ts +1 -1
  28. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.js +2 -2
  29. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.js.map +1 -1
  30. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.d.ts +1 -1
  31. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js.map +1 -1
  32. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.d.ts +2 -0
  33. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js +1 -0
  34. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js.map +1 -1
  35. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.d.ts +1 -1
  36. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +6 -8
  37. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  38. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.d.ts +2 -2
  39. package/dist/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.js.map +1 -1
  40. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.d.ts +1 -1
  41. package/dist/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.js.map +1 -1
  42. package/dist/LaunchMsaView/components/TranscriptSelector.d.ts +3 -3
  43. package/dist/LaunchMsaView/components/TranscriptSelector.js +4 -4
  44. package/dist/LaunchMsaView/components/TranscriptSelector.js.map +1 -1
  45. package/dist/LaunchMsaView/components/useTranscriptSelection.d.ts +1 -1
  46. package/dist/LaunchMsaView/components/useTranscriptSelection.js +1 -2
  47. package/dist/LaunchMsaView/components/useTranscriptSelection.js.map +1 -1
  48. package/dist/LaunchMsaView/components/util.js +1 -1
  49. package/dist/LaunchMsaView/components/util.js.map +1 -1
  50. package/dist/LaunchMsaView/index.d.ts +1 -1
  51. package/dist/LaunchMsaView/index.js.map +1 -1
  52. package/dist/LaunchMsaView/util.d.ts +1 -0
  53. package/dist/LaunchMsaView/util.js +10 -0
  54. package/dist/LaunchMsaView/util.js.map +1 -1
  55. package/dist/MsaViewPanel/afterCreateAutoruns.d.ts +10 -0
  56. package/dist/MsaViewPanel/afterCreateAutoruns.js +258 -0
  57. package/dist/MsaViewPanel/afterCreateAutoruns.js.map +1 -0
  58. package/dist/MsaViewPanel/blosum62.d.ts +2 -0
  59. package/dist/MsaViewPanel/blosum62.js +628 -0
  60. package/dist/MsaViewPanel/blosum62.js.map +1 -0
  61. package/dist/MsaViewPanel/components/LoadingBLAST.d.ts +1 -1
  62. package/dist/MsaViewPanel/components/LoadingBLAST.js.map +1 -1
  63. package/dist/MsaViewPanel/components/MsaViewPanel.d.ts +1 -1
  64. package/dist/MsaViewPanel/components/MsaViewPanel.js.map +1 -1
  65. package/dist/MsaViewPanel/doLaunchBlast.d.ts +1 -1
  66. package/dist/MsaViewPanel/doLaunchBlast.js.map +1 -1
  67. package/dist/MsaViewPanel/genomeToMSA.d.ts +1 -1
  68. package/dist/MsaViewPanel/genomeToMSA.js.map +1 -1
  69. package/dist/MsaViewPanel/index.d.ts +1 -1
  70. package/dist/MsaViewPanel/index.js.map +1 -1
  71. package/dist/MsaViewPanel/model.d.ts +31 -39
  72. package/dist/MsaViewPanel/model.js +17 -309
  73. package/dist/MsaViewPanel/model.js.map +1 -1
  74. package/dist/MsaViewPanel/msaDataStore.d.ts +3 -4
  75. package/dist/MsaViewPanel/msaDataStore.js +59 -173
  76. package/dist/MsaViewPanel/msaDataStore.js.map +1 -1
  77. package/dist/MsaViewPanel/pairwiseAlignment.d.ts +0 -7
  78. package/dist/MsaViewPanel/pairwiseAlignment.js +1 -636
  79. package/dist/MsaViewPanel/pairwiseAlignment.js.map +1 -1
  80. package/dist/MsaViewPanel/structureConnection.js +1 -5
  81. package/dist/MsaViewPanel/structureConnection.js.map +1 -1
  82. package/dist/MsaViewPanel/util.d.ts +1 -1
  83. package/dist/index.d.ts +6 -6
  84. package/dist/index.js +21 -22
  85. package/dist/index.js.map +1 -1
  86. package/dist/jbrowse-plugin-msaview.umd.production.min.js +29 -29
  87. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  88. package/dist/utils/msa.js +35 -77
  89. package/dist/utils/msa.js.map +1 -1
  90. package/dist/utils/ncbiBlast.js +1 -10
  91. package/dist/utils/ncbiBlast.js.map +1 -1
  92. package/dist/version.d.ts +1 -1
  93. package/dist/version.js +1 -1
  94. package/dist/version.js.map +1 -1
  95. package/package.json +33 -30
  96. package/src/AddHighlightModel/index.tsx +1 -1
  97. package/src/BgzipFastaMsaAdapter/BgzipFastaMsaAdapter.ts +3 -4
  98. package/src/BgzipFastaMsaAdapter/configSchema.ts +2 -1
  99. package/src/BgzipFastaMsaAdapter/index.ts +2 -1
  100. package/src/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.tsx +2 -6
  101. package/src/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.ts +2 -1
  102. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +2 -1
  103. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +6 -7
  104. package/src/LaunchMsaView/components/ManualMSALoader/launchView.ts +5 -2
  105. package/src/LaunchMsaView/components/NCBIBlastQuery/CachedBlastResults.tsx +22 -17
  106. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +40 -52
  107. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastRIDPanel.tsx +6 -13
  108. package/src/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.ts +2 -1
  109. package/src/LaunchMsaView/components/NCBIBlastQuery/consts.ts +2 -0
  110. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +7 -19
  111. package/src/LaunchMsaView/components/PreLoadedMSA/fetchMSAData.ts +2 -2
  112. package/src/LaunchMsaView/components/PreLoadedMSA/preCalculatedLaunchView.ts +1 -2
  113. package/src/LaunchMsaView/components/TranscriptSelector.tsx +7 -6
  114. package/src/LaunchMsaView/components/useTranscriptSelection.ts +1 -6
  115. package/src/LaunchMsaView/components/util.ts +1 -1
  116. package/src/LaunchMsaView/index.ts +6 -5
  117. package/src/LaunchMsaView/util.ts +11 -0
  118. package/src/MsaViewPanel/afterCreateAutoruns.ts +299 -0
  119. package/src/MsaViewPanel/blosum62.ts +628 -0
  120. package/src/MsaViewPanel/components/LoadingBLAST.tsx +2 -1
  121. package/src/MsaViewPanel/components/MsaViewPanel.tsx +2 -1
  122. package/src/MsaViewPanel/doLaunchBlast.ts +1 -1
  123. package/src/MsaViewPanel/genomeToMSA.ts +2 -1
  124. package/src/MsaViewPanel/index.ts +2 -1
  125. package/src/MsaViewPanel/model.ts +30 -392
  126. package/src/MsaViewPanel/msaDataStore.ts +56 -196
  127. package/src/MsaViewPanel/pairwiseAlignment.ts +1 -637
  128. package/src/MsaViewPanel/structureConnection.ts +1 -5
  129. package/src/MsaViewPanel/util.ts +1 -1
  130. package/src/index.ts +5 -4
  131. package/src/utils/msa.ts +45 -100
  132. package/src/utils/ncbiBlast.ts +3 -13
  133. package/src/version.ts +1 -1
  134. package/CHANGELOG.md +0 -101
@@ -1,197 +1,83 @@
1
+ import { openDB } from 'idb';
1
2
  const DB_NAME = 'jbrowse-msaview-data';
2
3
  const DB_VERSION = 1;
3
4
  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
- }
5
+ async function getDB() {
6
+ return openDB(DB_NAME, DB_VERSION, {
7
+ upgrade(db) {
8
+ if (!db.objectStoreNames.contains(STORE_NAME)) {
9
+ const store = db.createObjectStore(STORE_NAME, { keyPath: 'id' });
10
+ store.createIndex('timestamp', 'timestamp', { unique: false });
11
+ }
12
+ },
58
13
  });
59
- return dbPromise;
60
14
  }
61
15
  export function generateDataStoreId() {
62
16
  return `msa-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
63
17
  }
64
18
  export async function storeMsaData(id, data) {
65
- const db = await openDB();
66
- if (!db) {
67
- // IndexedDB not available, silently skip storage
19
+ try {
20
+ const db = await getDB();
21
+ const storedData = {
22
+ id,
23
+ msa: data.msa,
24
+ tree: data.tree,
25
+ treeMetadata: data.treeMetadata,
26
+ timestamp: Date.now(),
27
+ };
28
+ await db.put(STORE_NAME, storedData);
29
+ return true;
30
+ }
31
+ catch (e) {
32
+ console.warn('Failed to store MSA data:', e);
68
33
  return false;
69
34
  }
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
35
  }
97
36
  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
- }
37
+ try {
38
+ const db = await getDB();
39
+ const result = (await db.get(STORE_NAME, id));
40
+ if (result) {
41
+ return {
42
+ msa: result.msa,
43
+ tree: result.tree,
44
+ treeMetadata: result.treeMetadata,
123
45
  };
124
46
  }
125
- catch (e) {
126
- console.warn('Failed to retrieve MSA data:', e);
127
- resolve(undefined);
128
- }
129
- });
47
+ return undefined;
48
+ }
49
+ catch (e) {
50
+ console.warn('Failed to retrieve MSA data:', e);
51
+ return undefined;
52
+ }
130
53
  }
131
54
  export async function deleteMsaData(id) {
132
- const db = await openDB();
133
- if (!db) {
134
- return;
55
+ try {
56
+ const db = await getDB();
57
+ await db.delete(STORE_NAME, id);
58
+ }
59
+ catch (e) {
60
+ console.warn('Failed to delete MSA data:', e);
135
61
  }
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
62
  }
155
- // Clean up entries older than the specified age (default 7 days)
156
63
  export async function cleanupOldData(maxAgeMs = 7 * 24 * 60 * 60 * 1000) {
157
- const db = await openDB();
158
- if (!db) {
64
+ try {
65
+ const db = await getDB();
66
+ const cutoffTime = Date.now() - maxAgeMs;
67
+ const tx = db.transaction(STORE_NAME, 'readwrite');
68
+ const index = tx.store.index('timestamp');
69
+ let cursor = await index.openCursor(IDBKeyRange.upperBound(cutoffTime));
70
+ let deletedCount = 0;
71
+ while (cursor) {
72
+ await cursor.delete();
73
+ deletedCount++;
74
+ cursor = await cursor.continue();
75
+ }
76
+ return deletedCount;
77
+ }
78
+ catch (e) {
79
+ console.warn('Failed to cleanup old MSA data:', e);
159
80
  return 0;
160
81
  }
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
82
  }
197
83
  //# sourceMappingURL=msaDataStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"msaDataStore.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaDataStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"msaDataStore.js","sourceRoot":"","sources":["../../src/MsaViewPanel/msaDataStore.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,8 @@ export interface PairwiseAlignment {
11
11
  consensus: string;
12
12
  alns: readonly [AlignmentRow, AlignmentRow];
13
13
  }
14
- /**
15
- * Needleman-Wunsch global alignment algorithm
16
- */
17
14
  export declare function needlemanWunsch(seq1: string, seq2: string, gapOpen?: number, gapExtend?: number): AlignmentResult;
18
15
  export declare function runPairwiseAlignment(seq1: string, seq2: string): PairwiseAlignment;
19
- /**
20
- * Build coordinate mappings from a pairwise alignment
21
- * Maps between ungapped positions in seq1 and seq2
22
- */
23
16
  export declare function buildAlignmentMaps(pairwiseAlignment: PairwiseAlignment): {
24
17
  seq1ToSeq2: Map<number, number>;
25
18
  seq2ToSeq1: Map<number, number>;