jbrowse-plugin-msaview 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +3 -3
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  3. package/dist/AddHighlightModel/MsaToGenomeHighlight.js +3 -1
  4. package/dist/AddHighlightModel/MsaToGenomeHighlight.js.map +1 -1
  5. package/dist/ExternalLink.d.ts +3 -0
  6. package/dist/ExternalLink.js +11 -0
  7. package/dist/ExternalLink.js.map +1 -0
  8. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js +28 -33
  9. package/dist/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.js.map +1 -1
  10. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.js +0 -6
  11. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.js.map +1 -1
  12. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.d.ts +1 -0
  13. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.js +12 -22
  14. package/dist/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.js.map +1 -1
  15. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.d.ts +2 -0
  16. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.js +20 -0
  17. package/dist/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.js.map +1 -0
  18. package/dist/LaunchMsaView/components/EnsemblGeneTree/types.d.ts +24 -0
  19. package/dist/LaunchMsaView/components/EnsemblGeneTree/types.js.map +1 -0
  20. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.d.ts +10 -0
  21. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js +27 -0
  22. package/dist/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.js.map +1 -0
  23. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js +5 -5
  24. package/dist/LaunchMsaView/components/LaunchMsaViewDialog.js.map +1 -1
  25. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/NcbiBlastPanel.d.ts → ManualMSALoader/ManualMSALoader.d.ts} +2 -2
  26. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js +103 -0
  27. package/dist/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.js.map +1 -0
  28. package/dist/LaunchMsaView/components/{EnsemblGeneTree → ManualMSALoader}/fetchGeneList.js.map +1 -1
  29. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.d.ts +14 -0
  30. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.js +12 -0
  31. package/dist/LaunchMsaView/components/ManualMSALoader/launchView.js.map +1 -0
  32. package/dist/LaunchMsaView/components/{MSALoader/MSALoader.d.ts → NCBIBlastQuery/NCBIBlastAutomaticPanel.d.ts} +4 -2
  33. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js +89 -0
  34. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.js.map +1 -0
  35. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.d.ts +10 -0
  36. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js +55 -0
  37. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.js.map +1 -0
  38. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.d.ts +5 -0
  39. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.js +11 -0
  40. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.js.map +1 -0
  41. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.d.ts +7 -0
  42. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.js +30 -0
  43. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.js.map +1 -0
  44. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.d.ts +5 -0
  45. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.js +26 -0
  46. package/dist/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.js.map +1 -0
  47. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/ncbiBlastLaunchView.d.ts → NCBIBlastQuery/blastLaunchView.d.ts} +2 -1
  48. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/ncbiBlastLaunchView.js → NCBIBlastQuery/blastLaunchView.js} +3 -6
  49. package/dist/LaunchMsaView/components/NCBIBlastQuery/blastLaunchView.js.map +1 -0
  50. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.d.ts +1 -0
  51. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js +2 -0
  52. package/dist/LaunchMsaView/components/NCBIBlastQuery/consts.js.map +1 -0
  53. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js +17 -16
  54. package/dist/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.js.map +1 -1
  55. package/dist/LaunchMsaView/components/TranscriptSelector.d.ts +10 -0
  56. package/dist/LaunchMsaView/components/TranscriptSelector.js +45 -0
  57. package/dist/LaunchMsaView/components/TranscriptSelector.js.map +1 -0
  58. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/calculateProteinSequence.d.ts → calculateProteinSequence.d.ts} +1 -2
  59. package/dist/LaunchMsaView/components/calculateProteinSequence.js +39 -0
  60. package/dist/LaunchMsaView/components/calculateProteinSequence.js.map +1 -0
  61. package/dist/LaunchMsaView/components/fetchSeq.js.map +1 -0
  62. package/dist/LaunchMsaView/components/types.js +2 -0
  63. package/dist/LaunchMsaView/components/types.js.map +1 -0
  64. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/useFeatureSequence.d.ts → useFeatureSequence.d.ts} +2 -1
  65. package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/useFeatureSequence.js → useFeatureSequence.js} +12 -1
  66. package/dist/LaunchMsaView/components/useFeatureSequence.js.map +1 -0
  67. package/dist/LaunchMsaView/components/util.js.map +1 -0
  68. package/dist/LaunchMsaView/util.d.ts +5 -1
  69. package/dist/LaunchMsaView/util.js +15 -1
  70. package/dist/LaunchMsaView/util.js.map +1 -1
  71. package/dist/MsaViewPanel/components/LoadingBLAST.d.ts +2 -1
  72. package/dist/MsaViewPanel/components/LoadingBLAST.js +6 -6
  73. package/dist/MsaViewPanel/components/LoadingBLAST.js.map +1 -1
  74. package/dist/MsaViewPanel/components/MsaViewPanel.js +1 -1
  75. package/dist/MsaViewPanel/components/MsaViewPanel.js.map +1 -1
  76. package/dist/MsaViewPanel/components/RIDLink.d.ts +2 -1
  77. package/dist/MsaViewPanel/components/RIDLink.js +6 -9
  78. package/dist/MsaViewPanel/components/RIDLink.js.map +1 -1
  79. package/dist/MsaViewPanel/doLaunchBlast.js +18 -20
  80. package/dist/MsaViewPanel/doLaunchBlast.js.map +1 -1
  81. package/dist/MsaViewPanel/model.d.ts +3 -4
  82. package/dist/MsaViewPanel/model.js.map +1 -1
  83. package/dist/ReadOnlyTextField2.d.ts +4 -0
  84. package/dist/ReadOnlyTextField2.js +20 -0
  85. package/dist/ReadOnlyTextField2.js.map +1 -0
  86. package/dist/index.d.ts +15 -0
  87. package/dist/index.js +17 -0
  88. package/dist/index.js.map +1 -1
  89. package/dist/jbrowse-plugin-msaview.umd.production.min.js +41 -51
  90. package/dist/jbrowse-plugin-msaview.umd.production.min.js.map +4 -4
  91. package/dist/utils/fetch.d.ts +1 -1
  92. package/dist/utils/fetch.js.map +1 -1
  93. package/dist/utils/ncbiBlast.d.ts +2 -2
  94. package/dist/utils/ncbiBlast.js +29 -15
  95. package/dist/utils/ncbiBlast.js.map +1 -1
  96. package/dist/utils/types.d.ts +20 -0
  97. package/dist/utils/types.js +2 -0
  98. package/dist/utils/types.js.map +1 -0
  99. package/package.json +3 -3
  100. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +3 -3
  101. package/src/AddHighlightModel/MsaToGenomeHighlight.tsx +2 -1
  102. package/src/ExternalLink.tsx +15 -0
  103. package/src/LaunchMsaView/components/EnsemblGeneTree/EnsemblGeneTree.tsx +39 -55
  104. package/src/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeLaunchView.ts +0 -6
  105. package/src/LaunchMsaView/components/EnsemblGeneTree/ensemblGeneTreeUtils.ts +19 -54
  106. package/src/LaunchMsaView/components/EnsemblGeneTree/gatherSequencesFromTree.ts +22 -0
  107. package/src/LaunchMsaView/components/EnsemblGeneTree/types.ts +28 -0
  108. package/src/LaunchMsaView/components/EnsemblGeneTree/useGeneTree.ts +29 -0
  109. package/src/LaunchMsaView/components/LaunchMsaViewDialog.tsx +9 -5
  110. package/src/LaunchMsaView/components/ManualMSALoader/ManualMSALoader.tsx +219 -0
  111. package/src/LaunchMsaView/components/ManualMSALoader/launchView.ts +34 -0
  112. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastAutomaticPanel.tsx +226 -0
  113. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastManualPanel.tsx +111 -0
  114. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastMethodSelector.tsx +34 -0
  115. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBIBlastPanel.tsx +82 -0
  116. package/src/LaunchMsaView/components/NCBIBlastQuery/NCBISettingsDialog.tsx +75 -0
  117. package/src/LaunchMsaView/components/{NewNCBIBlastQuery/ncbiBlastLaunchView.ts → NCBIBlastQuery/blastLaunchView.ts} +4 -5
  118. package/src/LaunchMsaView/components/NCBIBlastQuery/consts.ts +1 -0
  119. package/src/LaunchMsaView/components/PreLoadedMSA/PreLoadedMSADataPanel.tsx +27 -37
  120. package/src/LaunchMsaView/components/TranscriptSelector.tsx +99 -0
  121. package/src/LaunchMsaView/components/{NewNCBIBlastQuery/calculateProteinSequence.ts → calculateProteinSequence.ts} +12 -22
  122. package/src/LaunchMsaView/components/{NewNCBIBlastQuery/useFeatureSequence.ts → useFeatureSequence.ts} +16 -2
  123. package/src/LaunchMsaView/util.ts +22 -2
  124. package/src/MsaViewPanel/components/LoadingBLAST.tsx +26 -8
  125. package/src/MsaViewPanel/components/MsaViewPanel.tsx +5 -1
  126. package/src/MsaViewPanel/components/RIDLink.tsx +8 -8
  127. package/src/MsaViewPanel/doLaunchBlast.ts +29 -30
  128. package/src/MsaViewPanel/model.ts +1 -0
  129. package/src/ReadOnlyTextField2.tsx +33 -0
  130. package/src/index.ts +23 -0
  131. package/src/utils/fetch.ts +2 -2
  132. package/src/utils/ncbiBlast.ts +40 -30
  133. package/src/utils/types.ts +14 -0
  134. package/dist/LaunchMsaView/components/MSALoader/MSALoader.js +0 -94
  135. package/dist/LaunchMsaView/components/MSALoader/MSALoader.js.map +0 -1
  136. package/dist/LaunchMsaView/components/MSALoader/fetchGeneList.d.ts +0 -1
  137. package/dist/LaunchMsaView/components/MSALoader/fetchGeneList.js +0 -12
  138. package/dist/LaunchMsaView/components/MSALoader/fetchGeneList.js.map +0 -1
  139. package/dist/LaunchMsaView/components/MSALoader/preCalculatedLaunchView.d.ts +0 -9
  140. package/dist/LaunchMsaView/components/MSALoader/preCalculatedLaunchView.js +0 -36
  141. package/dist/LaunchMsaView/components/MSALoader/preCalculatedLaunchView.js.map +0 -1
  142. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.js +0 -85
  143. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.js.map +0 -1
  144. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.js +0 -47
  145. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.js.map +0 -1
  146. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/fetchSeq.js.map +0 -1
  147. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.d.ts +0 -1
  148. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.js +0 -2
  149. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/index.js.map +0 -1
  150. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.js.map +0 -1
  151. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/types.js.map +0 -1
  152. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.js.map +0 -1
  153. package/dist/LaunchMsaView/components/NewNCBIBlastQuery/util.js.map +0 -1
  154. package/dist/OpenInNewIcon.d.ts +0 -3
  155. package/dist/OpenInNewIcon.js +0 -8
  156. package/dist/OpenInNewIcon.js.map +0 -1
  157. package/src/LaunchMsaView/components/MSALoader/MSALoader.tsx +0 -130
  158. package/src/LaunchMsaView/components/MSALoader/fetchGeneList.ts +0 -13
  159. package/src/LaunchMsaView/components/MSALoader/preCalculatedLaunchView.ts +0 -55
  160. package/src/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.tsx +0 -171
  161. package/src/LaunchMsaView/components/NewNCBIBlastQuery/index.tsx +0 -1
  162. package/src/OpenInNewIcon.tsx +0 -14
  163. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery → EnsemblGeneTree}/types.js +0 -0
  164. /package/dist/LaunchMsaView/components/{EnsemblGeneTree → ManualMSALoader}/fetchGeneList.d.ts +0 -0
  165. /package/dist/LaunchMsaView/components/{EnsemblGeneTree → ManualMSALoader}/fetchGeneList.js +0 -0
  166. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/fetchSeq.d.ts → fetchSeq.d.ts} +0 -0
  167. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/fetchSeq.js → fetchSeq.js} +0 -0
  168. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/types.d.ts → types.d.ts} +0 -0
  169. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/util.d.ts → util.d.ts} +0 -0
  170. /package/dist/LaunchMsaView/components/{NewNCBIBlastQuery/util.js → util.js} +0 -0
  171. /package/src/LaunchMsaView/components/{EnsemblGeneTree → ManualMSALoader}/fetchGeneList.ts +0 -0
  172. /package/src/LaunchMsaView/components/{NewNCBIBlastQuery/fetchSeq.ts → fetchSeq.ts} +0 -0
  173. /package/src/LaunchMsaView/components/{NewNCBIBlastQuery/types.ts → types.ts} +0 -0
  174. /package/src/LaunchMsaView/components/{NewNCBIBlastQuery/util.ts → util.ts} +0 -0
package/src/index.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import Plugin from '@jbrowse/core/Plugin'
2
2
  import PluginManager from '@jbrowse/core/PluginManager'
3
+ import { ConfigurationSchema } from '@jbrowse/core/configuration'
3
4
  import { AbstractSessionModel, isAbstractMenuManager } from '@jbrowse/core/util'
4
5
  import GridOn from '@mui/icons-material/GridOn'
6
+ import { types } from 'mobx-state-tree'
5
7
 
6
8
  import { version } from '../package.json'
7
9
  import AddHighlightModelF from './AddHighlightModel'
@@ -29,4 +31,25 @@ export default class MsaViewPlugin extends Plugin {
29
31
  })
30
32
  }
31
33
  }
34
+
35
+ rootConfigurationSchema = {
36
+ msa: ConfigurationSchema('MSA', {
37
+ datasets: types.maybe(
38
+ types.array(
39
+ ConfigurationSchema('MSAEntry', {
40
+ name: {
41
+ type: 'string',
42
+ defaultValue: '',
43
+ },
44
+ adapter: {
45
+ type: 'frozen',
46
+ description:
47
+ 'This can be a data adapter config for a IndexedFasta for example, which has a special way of being interpreted',
48
+ defaultValue: {},
49
+ },
50
+ }),
51
+ ),
52
+ ),
53
+ }),
54
+ }
32
55
  }
@@ -15,9 +15,9 @@ export async function textfetch(url: string, args?: RequestInit) {
15
15
  return response.text()
16
16
  }
17
17
 
18
- export async function jsonfetch(url: string, args?: RequestInit) {
18
+ export async function jsonfetch<T>(url: string, args?: RequestInit) {
19
19
  const response = await myfetch(url, args)
20
- return response.json()
20
+ return response.json() as Promise<T>
21
21
  }
22
22
 
23
23
  export function timeout(time: number) {
@@ -1,17 +1,18 @@
1
1
  import { jsonfetch, textfetch, timeout } from './fetch'
2
-
3
- export const BLAST_URL = `https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi`
2
+ import { BlastResults } from './types'
4
3
 
5
4
  export async function queryBlast({
6
5
  query,
7
6
  blastDatabase,
8
7
  blastProgram,
8
+ baseUrl,
9
9
  onProgress,
10
10
  onRid,
11
11
  }: {
12
12
  query: string
13
13
  blastDatabase: string
14
14
  blastProgram: string
15
+ baseUrl: string
15
16
  onProgress: (arg: string) => void
16
17
  onRid: (arg: string) => void
17
18
  }) {
@@ -20,25 +21,17 @@ export async function queryBlast({
20
21
  query,
21
22
  blastDatabase,
22
23
  blastProgram,
24
+ baseUrl,
23
25
  })
24
26
  onRid(rid)
25
- await waitForRid({ rid, onProgress })
26
- const ret = (await jsonfetch(
27
- `${BLAST_URL}?CMD=Get&RID=${rid}&FORMAT_TYPE=JSON2_S&FORMAT_OBJECT=Alignment`,
28
- )) as {
29
- BlastOutput2: {
30
- report: {
31
- results: {
32
- search: {
33
- hits: {
34
- description: { accession: string; id: string; sciname: string }[]
35
- hsps: { hseq: string }[]
36
- }[]
37
- }
38
- }
39
- }
40
- }[]
41
- }
27
+ await waitForRid({
28
+ rid,
29
+ onProgress,
30
+ baseUrl,
31
+ })
32
+ const ret = await jsonfetch<BlastResults>(
33
+ `${baseUrl}?CMD=Get&RID=${rid}&FORMAT_TYPE=JSON2_S&FORMAT_OBJECT=Alignment`,
34
+ )
42
35
  return {
43
36
  rid,
44
37
  hits: ret.BlastOutput2[0]?.report.results.search.hits ?? [],
@@ -49,16 +42,18 @@ async function initialQuery({
49
42
  query,
50
43
  blastProgram,
51
44
  blastDatabase,
45
+ baseUrl,
52
46
  }: {
53
47
  query: string
54
48
  blastProgram: string
55
49
  blastDatabase: string
50
+ baseUrl: string
56
51
  }) {
57
- const res = await textfetch(BLAST_URL, {
52
+ const res = await textfetch(baseUrl, {
58
53
  method: 'POST',
59
54
  body: new URLSearchParams({
60
55
  CMD: 'Put',
61
- PROGRAM: blastProgram,
56
+ PROGRAM: blastProgram === 'quick-blastp' ? 'blastp' : blastProgram,
62
57
  DATABASE: blastDatabase,
63
58
  QUERY: query,
64
59
  ...(blastDatabase === 'nr_clustered_seq'
@@ -67,6 +62,9 @@ async function initialQuery({
67
62
  DB_TYPE: 'Experimental Databases',
68
63
  }
69
64
  : {}),
65
+ ...(blastProgram === 'quick-blastp'
66
+ ? { BLAST_PROGRAMS: 'kmerBlastp' }
67
+ : {}),
70
68
  }),
71
69
  })
72
70
 
@@ -79,15 +77,20 @@ async function initialQuery({
79
77
  if (!rid) {
80
78
  throw new Error('Failed to get RID from BLAST request')
81
79
  }
82
- return { rid, rtoe }
80
+ return {
81
+ rid,
82
+ rtoe,
83
+ }
83
84
  }
84
85
 
85
86
  async function waitForRid({
86
87
  rid,
87
88
  onProgress,
89
+ baseUrl,
88
90
  }: {
89
91
  rid: string
90
92
  onProgress: (arg: string) => void
93
+ baseUrl: string
91
94
  }) {
92
95
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
93
96
  while (true) {
@@ -98,16 +101,23 @@ async function waitForRid({
98
101
  }
99
102
 
100
103
  const res = await textfetch(
101
- `${BLAST_URL}?CMD=Get&FORMAT_OBJECT=SearchInfo&RID=${rid}`,
104
+ `${baseUrl}?CMD=Get&FORMAT_OBJECT=SearchInfo&RID=${rid}`,
102
105
  )
103
- if (/\s+Status=WAITING/m.test(res)) {
106
+ const isWaiting = /\s+Status=WAITING/m.test(res)
107
+ const isFailed = /\s+Status=FAILED/m.test(res)
108
+ const isReady = /\s+Status=READY/m.test(res)
109
+ const hasHits = /\s+ThereAreHits=yes/m.test(res)
110
+
111
+ if (isWaiting) {
104
112
  continue
105
- } else if (/\s+Status=FAILED/m.test(res)) {
106
- throw new Error(
107
- `BLAST ${rid} failed; please report to blast-help@ncbi.nlm.nih.gov`,
108
- )
109
- } else if (/\s+Status=READY/m.test(res)) {
110
- if (/\s+ThereAreHits=yes/m.test(res)) {
113
+ }
114
+
115
+ if (isFailed) {
116
+ throw new Error(`BLAST ${rid} failed`)
117
+ }
118
+
119
+ if (isReady) {
120
+ if (hasHits) {
111
121
  return true
112
122
  } else {
113
123
  throw new Error('No hits found')
@@ -0,0 +1,14 @@
1
+ export interface BlastResults {
2
+ BlastOutput2: {
3
+ report: {
4
+ results: {
5
+ search: {
6
+ hits: {
7
+ description: { accession: string; id: string; sciname: string }[]
8
+ hsps: { hseq: string }[]
9
+ }[]
10
+ }
11
+ }
12
+ }
13
+ }[]
14
+ }
@@ -1,94 +0,0 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { FileSelector } from '@jbrowse/core/ui';
3
- import { getContainingView, getSession, } from '@jbrowse/core/util';
4
- import { openLocation } from '@jbrowse/core/util/io';
5
- import { Button, DialogActions, DialogContent } from '@mui/material';
6
- import { observer } from 'mobx-react';
7
- import { makeStyles } from 'tss-react/mui';
8
- import { fetchGeneList } from './fetchGeneList';
9
- import { preCalculatedLaunchView } from './preCalculatedLaunchView';
10
- import { getGeneDisplayName, getId, getTranscriptFeatures } from '../../util';
11
- const useStyles = makeStyles()({
12
- dialogContent: {
13
- width: '80em',
14
- },
15
- });
16
- const PreLoadedMSA = observer(function PreLoadedMSA2({ model, feature, handleClose, }) {
17
- const session = getSession(model);
18
- const view = getContainingView(model);
19
- const { classes } = useStyles();
20
- const [, setError] = useState();
21
- const [geneNameList, setGeneNameList] = useState();
22
- const [fileLocation, setFileLocation] = useState();
23
- useEffect(() => {
24
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
25
- ;
26
- (async () => {
27
- try {
28
- const data = await fetchGeneList();
29
- setGeneNameList(data);
30
- const set = new Set(data);
31
- const options = getTranscriptFeatures(feature);
32
- const ret = options.find(val => set.has(getId(val)));
33
- if (ret) {
34
- setUserSelection(getId(ret));
35
- }
36
- }
37
- catch (e) {
38
- console.error(e);
39
- setError(e);
40
- }
41
- })();
42
- }, [feature]);
43
- useEffect(() => {
44
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
45
- ;
46
- (async () => {
47
- try {
48
- if (fileLocation) {
49
- await openLocation(fileLocation).readFile();
50
- }
51
- }
52
- catch (e) {
53
- console.error(e);
54
- setError(e);
55
- }
56
- })();
57
- }, [fileLocation, feature]);
58
- const set = new Set(geneNameList);
59
- const options = getTranscriptFeatures(feature);
60
- const ret = options.find(val => set.has(getId(val)));
61
- const [userSelection, setUserSelection] = useState(getId(options[0]));
62
- return (React.createElement(React.Fragment, null,
63
- React.createElement(DialogContent, { className: classes.dialogContent },
64
- React.createElement(FileSelector, { location: fileLocation, setLocation: setFileLocation })),
65
- React.createElement(DialogActions, null,
66
- React.createElement(Button, { color: "primary", variant: "contained", onClick: () => {
67
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
68
- ;
69
- (async () => {
70
- try {
71
- if (!ret) {
72
- return;
73
- }
74
- await preCalculatedLaunchView({
75
- userSelection,
76
- session,
77
- newViewTitle: getGeneDisplayName(ret),
78
- view,
79
- feature: ret,
80
- });
81
- handleClose();
82
- }
83
- catch (e) {
84
- console.error(e);
85
- setError(e);
86
- }
87
- })();
88
- } }, "Submit"),
89
- React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => {
90
- handleClose();
91
- } }, "Cancel"))));
92
- });
93
- export default PreLoadedMSA;
94
- //# sourceMappingURL=MSALoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MSALoader.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/MSALoader/MSALoader.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export declare function fetchGeneList(): Promise<string[]>;
@@ -1,12 +0,0 @@
1
- export async function fetchGeneList() {
2
- const res = await fetch('https://jbrowse.org/demos/msaview/knownCanonical/list.txt');
3
- if (!res.ok) {
4
- throw new Error(`HTTP ${res.status} fetching list ${await res.text()}`);
5
- }
6
- const result = await res.text();
7
- return result
8
- .split('\n')
9
- .map(f => f.trim())
10
- .filter(f => !!f);
11
- }
12
- //# sourceMappingURL=fetchGeneList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchGeneList.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/MSALoader/fetchGeneList.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,2DAA2D,CAC5D,CAAA;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,kBAAkB,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAC/B,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACrB,CAAC"}
@@ -1,9 +0,0 @@
1
- import { AbstractSessionModel, Feature } from '@jbrowse/core/util';
2
- import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
3
- export declare function preCalculatedLaunchView({ userSelection, session, newViewTitle, view, feature, }: {
4
- session: AbstractSessionModel;
5
- userSelection: string;
6
- newViewTitle: string;
7
- view: LinearGenomeViewModel;
8
- feature: Feature;
9
- }): Promise<void>;
@@ -1,36 +0,0 @@
1
- import { ungzip } from 'pako';
2
- async function myfetch(url) {
3
- const res = await fetch(url);
4
- if (!res.ok) {
5
- throw new Error(`HTTP ${res.status} fetching ${await res.text()}`);
6
- }
7
- const data = await res.arrayBuffer();
8
- return new TextDecoder().decode(ungzip(data));
9
- }
10
- export async function preCalculatedLaunchView({ userSelection, session, newViewTitle, view, feature, }) {
11
- const d = await myfetch(`https://jbrowse.org/demos/msaview/knownCanonical/${userSelection}.mfa.gz`);
12
- session.addView('MsaView', {
13
- type: 'MsaView',
14
- displayName: newViewTitle,
15
- treeAreaWidth: 200,
16
- treeWidth: 100,
17
- drawNodeBubbles: false,
18
- labelsAlignRight: true,
19
- showBranchLen: false,
20
- colWidth: 10,
21
- rowHeight: 12,
22
- colorSchemeName: 'percent_identity_dynamic',
23
- treeFilehandle: {
24
- uri: 'https://hgdownload.soe.ucsc.edu/goldenPath/hg38/multiz100way/hg38.100way.nh',
25
- },
26
- treeMetadataFilehandle: {
27
- uri: 'https://s3.amazonaws.com/jbrowse.org/demos/app/species.json',
28
- },
29
- data: {
30
- msa: d,
31
- },
32
- connectedViewId: view.id,
33
- connectedFeature: feature.toJSON(),
34
- });
35
- }
36
- //# sourceMappingURL=preCalculatedLaunchView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preCalculatedLaunchView.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/MSALoader/preCalculatedLaunchView.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAI7B,KAAK,UAAU,OAAO,CAAC,GAAW;IAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,aAAa,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAA;IACpC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,aAAa,EACb,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,OAAO,GAOR;IACC,MAAM,CAAC,GAAG,MAAM,OAAO,CACrB,oDAAoD,aAAa,SAAS,CAC3E,CAAA;IAED,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,GAAG;QACd,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,0BAA0B;QAC3C,cAAc,EAAE;YACd,GAAG,EAAE,6EAA6E;SACnF;QACD,sBAAsB,EAAE;YACtB,GAAG,EAAE,6DAA6D;SACnE;QACD,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC;SACP;QACD,eAAe,EAAE,IAAI,CAAC,EAAE;QACxB,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE;KACnC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,85 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { ErrorMessage } from '@jbrowse/core/ui';
3
- import { getContainingView, } from '@jbrowse/core/util';
4
- import { Button, DialogActions, DialogContent, MenuItem } from '@mui/material';
5
- import { observer } from 'mobx-react';
6
- import { makeStyles } from 'tss-react/mui';
7
- import { getProteinSequence } from './calculateProteinSequence';
8
- import { ncbiBlastLaunchView } from './ncbiBlastLaunchView';
9
- import { useFeatureSequence } from './useFeatureSequence';
10
- import TextField2 from '../../../TextField2';
11
- import { getGeneDisplayName, getId, getTranscriptDisplayName, getTranscriptFeatures, } from '../../util';
12
- const useStyles = makeStyles()({
13
- dialogContent: {
14
- width: '80em',
15
- },
16
- textAreaFont: {
17
- fontFamily: 'Courier New',
18
- },
19
- });
20
- const NcbiBlastPanel = observer(function NcbiBlastPanel2({ handleClose, feature, model, }) {
21
- const { classes } = useStyles();
22
- const view = getContainingView(model);
23
- const [blastDatabase, setBlastDatabase] = useState('nr');
24
- const [msaAlgorithm, setMsaAlgorithm] = useState('clustalo');
25
- const options = getTranscriptFeatures(feature);
26
- const [userSelection, setUserSelection] = useState(getId(options[0]));
27
- const selectedTranscript = options.find(val => getId(val) === userSelection);
28
- const { sequence, error } = useFeatureSequence({
29
- view,
30
- feature: selectedTranscript,
31
- });
32
- const proteinSequence = sequence && !('error' in sequence)
33
- ? getProteinSequence({
34
- seq: sequence.seq,
35
- selectedTranscript,
36
- })
37
- : '';
38
- const blastDatabaseOptions = ['nr', 'nr_cluster_seq'];
39
- const msaAlgorithms = ['clustalo', 'muscle', 'kalign', 'mafft'];
40
- return (React.createElement(DialogContent, { className: classes.dialogContent },
41
- error ? React.createElement(ErrorMessage, { error: error }) : null,
42
- React.createElement(TextField2, { value: blastDatabase, onChange: event => {
43
- setBlastDatabase(event.target.value);
44
- }, label: "BLAST blastDatabase", select: true }, blastDatabaseOptions.map(val => (React.createElement(MenuItem, { value: val, key: val }, val)))),
45
- React.createElement(TextField2, { value: msaAlgorithm, onChange: event => {
46
- setMsaAlgorithm(event.target.value);
47
- }, label: "MSA Algorithm", select: true }, msaAlgorithms.map(val => (React.createElement(MenuItem, { value: val, key: val }, val)))),
48
- React.createElement(TextField2, { value: userSelection, onChange: event => {
49
- setUserSelection(event.target.value);
50
- }, label: "Choose isoform to BLAST", select: true }, options.map(val => (React.createElement(MenuItem, { value: getId(val), key: val.id() },
51
- getGeneDisplayName(feature),
52
- " - ",
53
- getTranscriptDisplayName(val))))),
54
- React.createElement(TextField2, { variant: "outlined", multiline: true, minRows: 5, maxRows: 10, fullWidth: true, value: proteinSequence
55
- ? `>${getTranscriptDisplayName(selectedTranscript)}\n${proteinSequence}`
56
- : 'Loading...', slotProps: {
57
- input: {
58
- readOnly: true,
59
- classes: {
60
- input: classes.textAreaFont,
61
- },
62
- },
63
- } }),
64
- React.createElement(DialogActions, null,
65
- React.createElement(Button, { color: "primary", variant: "contained", onClick: () => {
66
- const newView = ncbiBlastLaunchView({
67
- feature: selectedTranscript,
68
- view,
69
- newViewTitle: `NCBI BLAST - ${getGeneDisplayName(feature)} - ${getTranscriptDisplayName(selectedTranscript)} - ${msaAlgorithm}`,
70
- });
71
- newView.setBlastParams({
72
- blastProgram: 'blastp',
73
- blastDatabase,
74
- msaAlgorithm,
75
- selectedTranscript,
76
- proteinSequence,
77
- });
78
- handleClose();
79
- }, disabled: !proteinSequence }, "Submit"),
80
- React.createElement(Button, { color: "secondary", variant: "contained", onClick: () => {
81
- handleClose();
82
- } }, "Cancel"))));
83
- });
84
- export default NcbiBlastPanel;
85
- //# sourceMappingURL=NcbiBlastPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcbiBlastPanel.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/NcbiBlastPanel.tsx"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- import { defaultCodonTable, generateCodonTable, revcom, } from '@jbrowse/core/util';
2
- export function stitch(subfeats, sequence) {
3
- return subfeats.map(sub => sequence.slice(sub.start, sub.end)).join('');
4
- }
5
- export function calculateProteinSequence({ cds, sequence, codonTable, }) {
6
- const str = stitch(cds, sequence);
7
- let protein = '';
8
- for (let i = 0; i < str.length; i += 3) {
9
- // use & symbol for undefined codon, or partial slice
10
- protein += codonTable[str.slice(i, i + 3)] ?? '&';
11
- }
12
- return protein;
13
- }
14
- export function revlist(list, seqlen) {
15
- return list
16
- .map(sub => ({
17
- ...sub,
18
- start: seqlen - sub.end,
19
- end: seqlen - sub.start,
20
- }))
21
- .sort((a, b) => a.start - b.start);
22
- }
23
- // filter items if they have the same "ID" or location
24
- function getItemId(feat) {
25
- return `${feat.start}-${feat.end}`;
26
- }
27
- // filters if successive elements share same start/end
28
- export function dedupe(list) {
29
- return list.filter((item, pos, ary) => !pos || getItemId(item) !== getItemId(ary[pos - 1]));
30
- }
31
- export function getProteinSequence({ selectedTranscript, seq, }) {
32
- const f = selectedTranscript.toJSON();
33
- const cds = dedupe(f.subfeatures
34
- ?.sort((a, b) => a.start - b.start)
35
- .map(sub => ({
36
- ...sub,
37
- start: sub.start - f.start,
38
- end: sub.end - f.start,
39
- }))
40
- .filter(f => f.type === 'CDS') || []);
41
- return calculateProteinSequence({
42
- cds: f.strand === -1 ? revlist(cds, seq.length) : cds,
43
- sequence: f.strand === -1 ? revcom(seq) : seq,
44
- codonTable: generateCodonTable(defaultCodonTable),
45
- });
46
- }
47
- //# sourceMappingURL=calculateProteinSequence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calculateProteinSequence.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/calculateProteinSequence.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetchSeq.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/fetchSeq.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAIrD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,YAAY,GAOb;IACC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAC/C,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE;QACjE,aAAa,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACzD,SAAS;QACT,OAAO,EAAE;YACP;gBACE,KAAK;gBACL,GAAG;gBACH,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC;gBAC9C,YAAY;aACb;SACF;KACF,CAAC,CAAc,CAAA;IAChB,OAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAwB,IAAI,EAAE,CAAA;AAC3D,CAAC"}
@@ -1 +0,0 @@
1
- export { default } from './NcbiBlastPanel';
@@ -1,2 +0,0 @@
1
- export { default } from './NcbiBlastPanel';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ncbiBlastLaunchView.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/ncbiBlastLaunchView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAKxD,MAAM,UAAU,mBAAmB,CAAC,EAClC,YAAY,EACZ,IAAI,EACJ,OAAO,GAKR;IACC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE;QACzC,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,YAAY;QACzB,eAAe,EAAE,IAAI,CAAC,EAAE;QACxB,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE;QAClC,aAAa,EAAE,GAAG;QAClB,SAAS,EAAE,GAAG;QACd,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;QACtB,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,0BAA0B;KAC5C,CAA8B,CAAA;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFeatureSequence.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/useFeatureSequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAQrC,MAAM,OAAO,GAAG,OAAO,CAAA;AAEvB,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,QAAQ,GAAG,CAAC,EACZ,SAAS,GAAG,IAAI,GAMjB;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAyB,CAAA;IACjE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC7C,MAAM,YAAY,GAAG,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,CAAC;YACT,mEAAmE;YACnE,CAAC;YAAA,CAAC,KAAK,IAAI,EAAE;gBACX,IAAI,CAAC;oBACH,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,WAAW,CAAC,SAAS,CAAC,CAAA;oBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;oBAChC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAI7C,CAAA;oBACD,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;oBACtC,CAAC;oBACD,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;wBACxC,WAAW,CAAC;4BACV,KAAK,EAAE,gCAAgC,OAAO,wCAAwC;yBACvF,CAAC,CAAA;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAA;wBAC1B,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAA;wBACxB,WAAW,CAAC;4BACV,GAAG,EAAE,MAAM,QAAQ,CAAC;gCAClB,KAAK;gCACL,GAAG;gCACH,OAAO;gCACP,YAAY;gCACZ,OAAO;6BACR,CAAC;4BACF,QAAQ,EAAE,MAAM,QAAQ,CAAC;gCACvB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gCACrB,GAAG,EAAE,KAAK;gCACV,OAAO;gCACP,YAAY;gCACZ,OAAO;6BACR,CAAC;4BACF,UAAU,EAAE,MAAM,QAAQ,CAAC;gCACzB,KAAK,EAAE,GAAG;gCACV,GAAG,EAAE,CAAC;gCACN,OAAO;gCACP,YAAY;gCACZ,OAAO;6BACR,CAAC;yBACH,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;oBAChB,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;QACN,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IACtD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAC5B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/LaunchMsaView/components/NewNCBIBlastQuery/util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,CAAyC;IAC9D,OAAO,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC3B,CAAC"}
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import type { SvgIconProps } from '@mui/material';
3
- export default function OpenInNewIcon(props: SvgIconProps): React.JSX.Element;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { SvgIcon } from '@mui/material';
3
- export default function OpenInNewIcon(props) {
4
- return (React.createElement(SvgIcon, { ...props },
5
- React.createElement("path", { d: "M0 0h24v24H0z", fill: "none" }),
6
- React.createElement("path", { d: "M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z" })));
7
- }
8
- //# sourceMappingURL=OpenInNewIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OpenInNewIcon.js","sourceRoot":"","sources":["../src/OpenInNewIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,KAAmB;IACvD,OAAO,CACL,oBAAC,OAAO,OAAK,KAAK;QAChB,8BAAM,CAAC,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,GAAG;QACtC,8BAAM,CAAC,EAAC,oIAAoI,GAAG,CACvI,CACX,CAAA;AACH,CAAC"}