jbrowse-plugin-protein3d 0.0.3 → 0.0.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 (189) hide show
  1. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +3 -9
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  3. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js +4 -3
  4. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js.map +1 -1
  5. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.d.ts +1 -2
  6. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js +4 -3
  7. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js.map +1 -1
  8. package/dist/AddHighlightModel/util.js +1 -1
  9. package/dist/AddHighlightModel/util.js.map +1 -1
  10. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.d.ts +16 -0
  11. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js +43 -0
  12. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js.map +1 -0
  13. package/dist/AlphaFoldConfidenceAdapter/configSchema.d.ts +13 -0
  14. package/dist/AlphaFoldConfidenceAdapter/configSchema.js +16 -0
  15. package/dist/AlphaFoldConfidenceAdapter/configSchema.js.map +1 -0
  16. package/dist/AlphaFoldConfidenceAdapter/index.d.ts +2 -0
  17. package/dist/AlphaFoldConfidenceAdapter/index.js +11 -0
  18. package/dist/AlphaFoldConfidenceAdapter/index.js.map +1 -0
  19. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.d.ts +30 -0
  20. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js +78 -0
  21. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js.map +1 -0
  22. package/dist/AlphaMissensePathogenicityAdapter/configSchema.d.ts +13 -0
  23. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js +16 -0
  24. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js.map +1 -0
  25. package/dist/AlphaMissensePathogenicityAdapter/index.d.ts +2 -0
  26. package/dist/AlphaMissensePathogenicityAdapter/index.js +11 -0
  27. package/dist/AlphaMissensePathogenicityAdapter/index.js.map +1 -0
  28. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js +161 -11
  29. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js.map +1 -1
  30. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js +8 -6
  31. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js.map +1 -1
  32. package/dist/LaunchProteinView/components/HelpButton.js +6 -2
  33. package/dist/LaunchProteinView/components/HelpButton.js.map +1 -1
  34. package/dist/LaunchProteinView/components/HelpDialog.js +3 -1
  35. package/dist/LaunchProteinView/components/HelpDialog.js.map +1 -1
  36. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js +6 -2
  37. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js.map +1 -1
  38. package/dist/LaunchProteinView/components/MSATable.js +3 -1
  39. package/dist/LaunchProteinView/components/MSATable.js.map +1 -1
  40. package/dist/LaunchProteinView/components/TranscriptSelector.js +3 -1
  41. package/dist/LaunchProteinView/components/TranscriptSelector.js.map +1 -1
  42. package/dist/LaunchProteinView/components/UserProvidedStructure.js +18 -11
  43. package/dist/LaunchProteinView/components/UserProvidedStructure.js.map +1 -1
  44. package/dist/LaunchProteinView/components/calculateProteinSequence.js +5 -3
  45. package/dist/LaunchProteinView/components/calculateProteinSequence.js.map +1 -1
  46. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.d.ts +1 -1
  47. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js +29 -9
  48. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js.map +1 -1
  49. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.d.ts +1 -1
  50. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js +25 -8
  51. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js.map +1 -1
  52. package/dist/LaunchProteinView/components/util.js +1 -1
  53. package/dist/LaunchProteinView/index.js +7 -3
  54. package/dist/LaunchProteinView/index.js.map +1 -1
  55. package/dist/ProteinView/{loadStructureFromData.d.ts → addStructureFromData.d.ts} +2 -2
  56. package/dist/ProteinView/{loadStructureFromData.js → addStructureFromData.js} +3 -8
  57. package/dist/ProteinView/addStructureFromData.js.map +1 -0
  58. package/dist/ProteinView/{loadStructureFromURL.d.ts → addStructureFromURL.d.ts} +2 -2
  59. package/dist/ProteinView/{loadStructureFromURL.js → addStructureFromURL.js} +11 -9
  60. package/dist/ProteinView/addStructureFromURL.js.map +1 -0
  61. package/dist/ProteinView/clearSelection.js +1 -1
  62. package/dist/ProteinView/clearSelection.js.map +1 -1
  63. package/dist/ProteinView/components/ProteinAlignment.d.ts +2 -2
  64. package/dist/ProteinView/components/ProteinAlignment.js +37 -26
  65. package/dist/ProteinView/components/ProteinAlignment.js.map +1 -1
  66. package/dist/ProteinView/components/ProteinAlignmentHelpButton.d.ts +2 -2
  67. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js +6 -4
  68. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js.map +1 -1
  69. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js +6 -5
  70. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js.map +1 -1
  71. package/dist/ProteinView/components/ProteinView.js +18 -60
  72. package/dist/ProteinView/components/ProteinView.js.map +1 -1
  73. package/dist/ProteinView/components/{Header.js → ProteinViewHeader.js} +29 -12
  74. package/dist/ProteinView/components/ProteinViewHeader.js.map +1 -0
  75. package/dist/ProteinView/components/SplitString.d.ts +4 -4
  76. package/dist/ProteinView/components/SplitString.js +3 -3
  77. package/dist/ProteinView/components/SplitString.js.map +1 -1
  78. package/dist/ProteinView/genomeToProtein.d.ts +2 -2
  79. package/dist/ProteinView/genomeToProtein.js +4 -5
  80. package/dist/ProteinView/genomeToProtein.js.map +1 -1
  81. package/dist/ProteinView/highlightResidue.js +2 -2
  82. package/dist/ProteinView/highlightResidue.js.map +1 -1
  83. package/dist/ProteinView/launchRemotePairwiseAlignment.d.ts +2 -5
  84. package/dist/ProteinView/launchRemotePairwiseAlignment.js +7 -3
  85. package/dist/ProteinView/launchRemotePairwiseAlignment.js.map +1 -1
  86. package/dist/ProteinView/model.d.ts +496 -160
  87. package/dist/ProteinView/model.js +61 -246
  88. package/dist/ProteinView/model.js.map +1 -1
  89. package/dist/ProteinView/proteinToGenomeMapping.d.ts +6 -6
  90. package/dist/ProteinView/proteinToGenomeMapping.js +29 -28
  91. package/dist/ProteinView/proteinToGenomeMapping.js.map +1 -1
  92. package/dist/ProteinView/selectResidue.js +1 -1
  93. package/dist/ProteinView/selectResidue.js.map +1 -1
  94. package/dist/ProteinView/structureModel.d.ts +183 -0
  95. package/dist/ProteinView/structureModel.js +407 -0
  96. package/dist/ProteinView/structureModel.js.map +1 -0
  97. package/dist/ProteinView/useProteinView.d.ts +1 -4
  98. package/dist/ProteinView/useProteinView.js +3 -15
  99. package/dist/ProteinView/useProteinView.js.map +1 -1
  100. package/dist/ProteinView/util.d.ts +3 -3
  101. package/dist/ProteinView/util.js +8 -6
  102. package/dist/ProteinView/util.js.map +1 -1
  103. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.d.ts +15 -0
  104. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js +55 -0
  105. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js.map +1 -0
  106. package/dist/UniProtVariationAdapter/configSchema.d.ts +17 -0
  107. package/dist/UniProtVariationAdapter/configSchema.js +20 -0
  108. package/dist/UniProtVariationAdapter/configSchema.js.map +1 -0
  109. package/dist/UniProtVariationAdapter/index.d.ts +2 -0
  110. package/dist/UniProtVariationAdapter/index.js +11 -0
  111. package/dist/UniProtVariationAdapter/index.js.map +1 -0
  112. package/dist/genomeToTranscriptMapping.d.ts +2 -2
  113. package/dist/genomeToTranscriptMapping.js +3 -3
  114. package/dist/genomeToTranscriptMapping.js.map +1 -1
  115. package/dist/index.js +6 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/jbrowse-plugin-protein3d.umd.production.min.js +1467 -1482
  118. package/dist/jbrowse-plugin-protein3d.umd.production.min.js.map +4 -4
  119. package/dist/mappings.d.ts +12 -10
  120. package/dist/mappings.js +7 -7
  121. package/dist/mappings.js.map +1 -1
  122. package/dist/mappings.test.js +7 -5
  123. package/dist/mappings.test.js.map +1 -1
  124. package/dist/test_data/gene.d.ts +577 -64
  125. package/dist/test_data/gene.js +1 -1
  126. package/dist/test_data/gene.js.map +1 -1
  127. package/package.json +16 -15
  128. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +4 -17
  129. package/src/AddHighlightModel/ProteinToGenomeClickHighlight.tsx +17 -14
  130. package/src/AddHighlightModel/ProteinToGenomeHoverHighlight.tsx +18 -17
  131. package/src/AddHighlightModel/util.ts +1 -1
  132. package/src/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.ts +63 -0
  133. package/src/AlphaFoldConfidenceAdapter/configSchema.ts +21 -0
  134. package/src/AlphaFoldConfidenceAdapter/index.ts +19 -0
  135. package/src/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.ts +109 -0
  136. package/src/AlphaMissensePathogenicityAdapter/configSchema.ts +21 -0
  137. package/src/AlphaMissensePathogenicityAdapter/index.ts +19 -0
  138. package/src/LaunchProteinView/components/AlphaFoldDBSearch.tsx +172 -10
  139. package/src/LaunchProteinView/components/AlphaFoldDBSearchStatus.tsx +8 -6
  140. package/src/LaunchProteinView/components/HelpButton.tsx +10 -2
  141. package/src/LaunchProteinView/components/HelpDialog.tsx +6 -1
  142. package/src/LaunchProteinView/components/LaunchProteinViewDialog.tsx +9 -2
  143. package/src/LaunchProteinView/components/MSATable.tsx +3 -1
  144. package/src/LaunchProteinView/components/TranscriptSelector.tsx +9 -7
  145. package/src/LaunchProteinView/components/UserProvidedStructure.tsx +17 -12
  146. package/src/LaunchProteinView/components/calculateProteinSequence.ts +6 -4
  147. package/src/LaunchProteinView/components/useLocalStructureFileSequence.ts +28 -9
  148. package/src/LaunchProteinView/components/useRemoteStructureFileSequence.ts +23 -8
  149. package/src/LaunchProteinView/components/util.ts +1 -1
  150. package/src/LaunchProteinView/index.ts +36 -26
  151. package/src/ProteinView/{loadStructureFromData.ts → addStructureFromData.ts} +2 -8
  152. package/src/ProteinView/{loadStructureFromURL.ts → addStructureFromURL.ts} +11 -11
  153. package/src/ProteinView/clearSelection.ts +1 -1
  154. package/src/ProteinView/components/ProteinAlignment.tsx +51 -35
  155. package/src/ProteinView/components/ProteinAlignmentHelpButton.tsx +4 -4
  156. package/src/ProteinView/components/ProteinAlignmentHelpDialog.tsx +15 -11
  157. package/src/ProteinView/components/ProteinView.tsx +22 -82
  158. package/src/ProteinView/components/{Header.tsx → ProteinViewHeader.tsx} +44 -23
  159. package/src/ProteinView/components/SplitString.tsx +8 -8
  160. package/src/ProteinView/genomeToProtein.ts +5 -9
  161. package/src/ProteinView/highlightResidue.ts +2 -2
  162. package/src/ProteinView/launchRemotePairwiseAlignment.ts +6 -3
  163. package/src/ProteinView/model.ts +74 -287
  164. package/src/ProteinView/proteinToGenomeMapping.ts +40 -38
  165. package/src/ProteinView/selectResidue.ts +1 -1
  166. package/src/ProteinView/structureModel.ts +512 -0
  167. package/src/ProteinView/useProteinView.ts +2 -19
  168. package/src/ProteinView/util.ts +20 -9
  169. package/src/UniProtVariationAdapter/UniProtVariationAdapter.ts +99 -0
  170. package/src/UniProtVariationAdapter/configSchema.ts +25 -0
  171. package/src/UniProtVariationAdapter/index.ts +17 -0
  172. package/src/__snapshots__/mappings.test.ts.snap +224 -224
  173. package/src/genomeToTranscriptMapping.ts +9 -9
  174. package/src/index.ts +6 -0
  175. package/src/mappings.test.ts +7 -5
  176. package/src/mappings.ts +25 -23
  177. package/src/test_data/gene.ts +3 -3
  178. package/dist/ProteinView/components/Header.js.map +0 -1
  179. package/dist/ProteinView/loadStructureFromData.js.map +0 -1
  180. package/dist/ProteinView/loadStructureFromURL.js.map +0 -1
  181. package/dist/ProteinView/useProteinViewClickBehavior.d.ts +0 -8
  182. package/dist/ProteinView/useProteinViewClickBehavior.js +0 -34
  183. package/dist/ProteinView/useProteinViewClickBehavior.js.map +0 -1
  184. package/dist/ProteinView/useProteinViewHoverBehavior.d.ts +0 -6
  185. package/dist/ProteinView/useProteinViewHoverBehavior.js +0 -31
  186. package/dist/ProteinView/useProteinViewHoverBehavior.js.map +0 -1
  187. package/src/ProteinView/useProteinViewClickBehavior.ts +0 -48
  188. package/src/ProteinView/useProteinViewHoverBehavior.ts +0 -44
  189. /package/dist/ProteinView/components/{Header.d.ts → ProteinViewHeader.d.ts} +0 -0
@@ -1,12 +1,11 @@
1
1
  import { autorun } from 'mobx';
2
2
  import { BaseViewModel } from '@jbrowse/core/pluggableElementTypes';
3
- import { ElementId, Region } from '@jbrowse/core/util/types/mst';
4
- import { addDisposer, cast, types } from 'mobx-state-tree';
5
- import { SimpleFeature, getSession, } from '@jbrowse/core/util';
6
- // locals
7
- import { checkHovered, invertMap, toStr } from './util';
8
- import { launchPairwiseAlignment } from './launchRemotePairwiseAlignment';
9
- import { structureSeqVsTranscriptSeqMap, genomeToTranscriptSeqMapping, structurePositionToAlignmentMap, transcriptPositionToAlignmentMap, } from '../mappings';
3
+ import { ElementId } from '@jbrowse/core/util/types/mst';
4
+ import { addDisposer, types } from 'mobx-state-tree';
5
+ import { addStructureFromData } from './addStructureFromData';
6
+ import { addStructureFromURL } from './addStructureFromURL';
7
+ import Structure from './structureModel';
8
+ import highlightResidue from './highlightResidue';
10
9
  /**
11
10
  * #stateModel Protein3dViewPlugin
12
11
  * extends
@@ -25,50 +24,16 @@ function stateModelFactory() {
25
24
  type: types.literal('ProteinView'),
26
25
  /**
27
26
  * #property
28
- * url to structure file
29
27
  */
30
- url: types.maybe(types.string),
28
+ structures: types.array(Structure),
31
29
  /**
32
30
  * #property
33
- * full string for structure data
34
31
  */
35
- data: types.maybe(types.string),
36
- /**
37
- * #property
38
- */
39
- clickGenomeHighlights: types.array(Region),
40
- /**
41
- * #property
42
- */
43
- hoverGenomeHighlights: types.array(Region),
44
- /**
45
- * #property
46
- */
47
- showControls: true,
32
+ showControls: false,
48
33
  /**
49
34
  * #property
50
35
  */
51
36
  height: types.optional(types.number, 650),
52
- /**
53
- * #property
54
- */
55
- feature: types.frozen(),
56
- /**
57
- * #property
58
- */
59
- seq1: types.maybe(types.string),
60
- /**
61
- * #property
62
- */
63
- seq2: types.maybe(types.string),
64
- /**
65
- * #property
66
- */
67
- alignment: types.frozen(),
68
- /**
69
- * #property
70
- */
71
- connectedViewId: types.maybe(types.string),
72
37
  /**
73
38
  * #property
74
39
  */
@@ -86,48 +51,28 @@ function stateModelFactory() {
86
51
  /**
87
52
  * #volatile
88
53
  */
89
- error: undefined,
90
- /**
91
- * #volatile
92
- */
93
- clickPosition: undefined,
54
+ progress: '',
94
55
  /**
95
56
  * #volatile
96
57
  */
97
- hoverPosition: undefined,
58
+ error: undefined,
98
59
  /**
99
60
  * #volatile
100
61
  */
101
- progress: '',
102
- }))
103
- .views(self => ({
104
- /**
105
- * #getter
106
- */
107
- get connectedView() {
108
- const { views } = getSession(self);
109
- return views.find(f => f.id === self.connectedViewId);
110
- },
62
+ molstarPluginContext: undefined,
111
63
  }))
112
64
  .actions(self => ({
113
65
  /**
114
66
  * #action
115
67
  */
116
- setShowAlignment(f) {
117
- self.showAlignment = f;
118
- },
119
- /**
120
- * #action
121
- */
122
- setHoveredPosition(arg) {
123
- self.hoverPosition = arg;
68
+ setHeight(n) {
69
+ self.height = n;
124
70
  },
125
71
  /**
126
72
  * #action
127
73
  */
128
- setSeqs(str1, str2) {
129
- self.seq1 = str1;
130
- self.seq2 = str2;
74
+ setShowAlignment(f) {
75
+ self.showAlignment = f;
131
76
  },
132
77
  /**
133
78
  * #action
@@ -135,54 +80,12 @@ function stateModelFactory() {
135
80
  setShowControls(arg) {
136
81
  self.showControls = arg;
137
82
  },
138
- /**
139
- * #action
140
- */
141
- setProgress(str) {
142
- self.progress = str;
143
- },
144
- /**
145
- * #action
146
- */
147
- setClickedPosition(arg) {
148
- self.clickPosition = arg;
149
- },
150
- /**
151
- * #action
152
- */
153
- setClickGenomeHighlights(r) {
154
- self.clickGenomeHighlights = cast(r);
155
- },
156
- /**
157
- * #action
158
- */
159
- clearClickGenomeHighlights() {
160
- self.clickGenomeHighlights = cast([]);
161
- },
162
- /**
163
- * #action
164
- */
165
- setHoverGenomeHighlights(r) {
166
- self.hoverGenomeHighlights = cast(r);
167
- },
168
- /**
169
- * #action
170
- */
171
- clearHoverGenomeHighlights() {
172
- self.hoverGenomeHighlights = cast([]);
173
- },
174
83
  /**
175
84
  * #action
176
85
  */
177
86
  setError(e) {
178
87
  self.error = e;
179
88
  },
180
- /**
181
- * #action
182
- */
183
- setAlignment(r) {
184
- self.alignment = r;
185
- },
186
89
  /**
187
90
  * #action
188
91
  */
@@ -195,152 +98,64 @@ function stateModelFactory() {
195
98
  setZoomToBaseLevel(arg) {
196
99
  self.zoomToBaseLevel = arg;
197
100
  },
198
- }))
199
- .views(self => ({
200
- /**
201
- * #getter
202
- */
203
- get structureSeqToTranscriptSeqPosition() {
204
- return self.alignment
205
- ? structureSeqVsTranscriptSeqMap(self.alignment)
206
- .structureSeqToTranscriptSeqPosition
207
- : undefined;
208
- },
209
- /**
210
- * #getter
211
- */
212
- get transcriptSeqToStructureSeqPosition() {
213
- return self.alignment
214
- ? structureSeqVsTranscriptSeqMap(self.alignment)
215
- .transcriptSeqToStructureSeqPosition
216
- : undefined;
217
- },
218
- /**
219
- * #getter
220
- */
221
- get structurePositionToAlignmentMap() {
222
- return self.alignment
223
- ? structurePositionToAlignmentMap(self.alignment)
224
- : undefined;
225
- },
226
101
  /**
227
- * #getter
228
- */
229
- get transcriptPositionToAlignmentMap() {
230
- return self.alignment
231
- ? transcriptPositionToAlignmentMap(self.alignment)
232
- : undefined;
233
- },
234
- /**
235
- * #getter
236
- */
237
- get alignmentToTranscriptPosition() {
238
- return this.transcriptPositionToAlignmentMap
239
- ? invertMap(this.transcriptPositionToAlignmentMap)
240
- : undefined;
241
- },
242
- /**
243
- * #getter
244
- */
245
- get alignmentToStructurePosition() {
246
- return this.structurePositionToAlignmentMap
247
- ? invertMap(this.structurePositionToAlignmentMap)
248
- : undefined;
249
- },
250
- /**
251
- * #getter
252
- */
253
- get clickString() {
254
- const r = self.clickPosition;
255
- return r ? toStr(r) : '';
256
- },
257
- /**
258
- * #getter
259
- */
260
- get hoverString() {
261
- const r = self.hoverPosition;
262
- return r ? toStr(r) : '';
263
- },
264
- /**
265
- * #getter
266
- */
267
- get genomeToTranscriptSeqMapping() {
268
- return self.feature
269
- ? genomeToTranscriptSeqMapping(new SimpleFeature(self.feature))
270
- : undefined;
271
- },
272
- /**
273
- * #getter
102
+ * #action
274
103
  */
275
- get structureSeqHoverPos() {
276
- return self.hoverPosition?.structureSeqPos;
277
- },
278
- get exactMatch() {
279
- const r1 = self.seq1?.replaceAll('*', '');
280
- const r2 = self.seq2?.replaceAll('*', '');
281
- return r1 === r2;
104
+ setMolstarPluginContext(p) {
105
+ self.molstarPluginContext = p;
282
106
  },
283
107
  }))
284
108
  .actions(self => ({
285
109
  afterAttach() {
286
- // pairwise align transcript sequence to structure residues
287
110
  addDisposer(self, autorun(async () => {
288
- try {
289
- const { seq1, seq2, exactMatch } = self;
290
- if (!!self.alignment || !seq1 || !seq2) {
291
- return;
292
- }
293
- const r1 = seq1.replaceAll('*', '');
294
- const r2 = seq2.replaceAll('*', '');
295
- if (!exactMatch) {
296
- const alignment = await launchPairwiseAlignment({
297
- seq1: r1,
298
- seq2: r2,
299
- algorithm: 'emboss_needle',
300
- onProgress: arg => self.setProgress(arg),
301
- });
302
- self.setAlignment(alignment.alignment);
303
- // showHighlight when we are
304
- self.setShowHighlight(true);
305
- self.setShowAlignment(true);
306
- }
307
- else {
308
- let consensus = '';
309
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
310
- for (let i = 0; i < r1.length; i++) {
311
- consensus += '|';
111
+ const { structures, molstarPluginContext } = self;
112
+ if (molstarPluginContext) {
113
+ for (const structure of structures) {
114
+ try {
115
+ const { model } = structure.data
116
+ ? await addStructureFromData({
117
+ data: structure.data,
118
+ plugin: molstarPluginContext,
119
+ })
120
+ : structure.url
121
+ ? await addStructureFromURL({
122
+ url: structure.url,
123
+ plugin: molstarPluginContext,
124
+ })
125
+ : { model: undefined };
126
+ const sequences = model?.obj?.data.sequence.sequences.map(s => {
127
+ let seq = '';
128
+ const arr = s.sequence.label.toArray();
129
+ // eslint-disable-next-line unicorn/no-for-loop,@typescript-eslint/prefer-for-of
130
+ for (let i = 0; i < arr.length; i++) {
131
+ seq += arr[i];
132
+ }
133
+ return seq;
134
+ });
135
+ structure.setSequences(sequences);
136
+ }
137
+ catch (e) {
138
+ self.setError(e);
139
+ console.error(e);
312
140
  }
313
- self.setAlignment({
314
- consensus,
315
- alns: [
316
- { id: 'seq1', seq: r1 },
317
- { id: 'seq2', seq: r2 },
318
- ],
319
- });
320
141
  }
321
142
  }
322
- catch (e) {
323
- console.error(e);
324
- self.setError(e);
325
- }
326
143
  }));
327
- // convert hover over the genome to structure position
328
144
  addDisposer(self, autorun(() => {
329
- const { hovered } = getSession(self);
330
- const { transcriptSeqToStructureSeqPosition, genomeToTranscriptSeqMapping, connectedView, } = self;
331
- if (!connectedView?.initialized ||
332
- !genomeToTranscriptSeqMapping ||
333
- !checkHovered(hovered)) {
334
- return undefined;
335
- }
336
- const pos = genomeToTranscriptSeqMapping.g2p[hovered.hoverPosition.coord];
337
- const c0 = pos
338
- ? transcriptSeqToStructureSeqPosition?.[pos]
339
- : undefined;
340
- if (c0 !== undefined) {
341
- self.setHoveredPosition({
342
- structureSeqPos: c0,
343
- });
145
+ const { structures, molstarPluginContext } = self;
146
+ if (molstarPluginContext) {
147
+ for (const [i, s0] of structures.entries()) {
148
+ const structure = molstarPluginContext.managers.structure.hierarchy.current
149
+ .structures[i]?.cell.obj?.data;
150
+ const pos = s0.structureSeqHoverPos;
151
+ if (structure && pos !== undefined) {
152
+ highlightResidue({
153
+ structure,
154
+ plugin: molstarPluginContext,
155
+ selectedResidue: pos,
156
+ });
157
+ }
158
+ }
344
159
  }
345
160
  }));
346
161
  },
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ProteinView/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ProteinView/model.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { JBrowsePluginProteinViewModel } from './model';
1
+ import { JBrowsePluginProteinStructureModel } from './model';
2
2
  export declare function proteinToGenomeMapping({ model, structureSeqPos, }: {
3
3
  structureSeqPos: number;
4
- model: JBrowsePluginProteinViewModel;
5
- }): number[] | undefined;
4
+ model: JBrowsePluginProteinStructureModel;
5
+ }): readonly [number, number] | undefined;
6
6
  export declare function clickProteinToGenome({ model, structureSeqPos, }: {
7
7
  structureSeqPos: number;
8
- model: JBrowsePluginProteinViewModel;
8
+ model: JBrowsePluginProteinStructureModel;
9
9
  }): Promise<undefined>;
10
10
  export declare function hoverProteinToGenome({ model, structureSeqPos, }: {
11
- structureSeqPos: number;
12
- model: JBrowsePluginProteinViewModel;
11
+ structureSeqPos?: number;
12
+ model: JBrowsePluginProteinStructureModel;
13
13
  }): void;
@@ -1,7 +1,7 @@
1
1
  import { getSession } from '@jbrowse/core/util';
2
2
  export function proteinToGenomeMapping({ model, structureSeqPos, }) {
3
- const { genomeToTranscriptSeqMapping, alignment, structureSeqToTranscriptSeqPosition, } = model;
4
- if (!genomeToTranscriptSeqMapping || !alignment) {
3
+ const { genomeToTranscriptSeqMapping, pairwiseAlignment, structureSeqToTranscriptSeqPosition, } = model;
4
+ if (!genomeToTranscriptSeqMapping || !pairwiseAlignment) {
5
5
  return undefined;
6
6
  }
7
7
  const { p2g, strand } = genomeToTranscriptSeqMapping;
@@ -20,13 +20,12 @@ export function proteinToGenomeMapping({ model, structureSeqPos, }) {
20
20
  export async function clickProteinToGenome({ model, structureSeqPos, }) {
21
21
  const session = getSession(model);
22
22
  const result = proteinToGenomeMapping({ structureSeqPos, model });
23
- const { genomeToTranscriptSeqMapping, zoomToBaseLevel } = model;
23
+ const { connectedView, genomeToTranscriptSeqMapping, zoomToBaseLevel } = model;
24
24
  const { assemblyManager } = session;
25
25
  if (!genomeToTranscriptSeqMapping || result === undefined) {
26
26
  return undefined;
27
27
  }
28
28
  const [s1, s2] = result;
29
- const lgv = session.views[0];
30
29
  const { strand, refName } = genomeToTranscriptSeqMapping;
31
30
  model.setClickGenomeHighlights([
32
31
  {
@@ -36,34 +35,36 @@ export async function clickProteinToGenome({ model, structureSeqPos, }) {
36
35
  end: s2,
37
36
  },
38
37
  ]);
39
- if (!zoomToBaseLevel) {
40
- const assembly = assemblyManager.get(lgv.assemblyNames[0]);
41
- const r = assembly?.getCanonicalRefName(refName) ?? refName;
42
- lgv.centerAt(s1, r);
43
- }
44
- else {
45
- await lgv.navToLocString(`${refName}:${s1}-${s2}${strand === -1 ? '[rev]' : ''}`);
38
+ if (connectedView) {
39
+ if (zoomToBaseLevel) {
40
+ await connectedView.navToLocString(`${refName}:${s1}-${s2}${strand === -1 ? '[rev]' : ''}`);
41
+ }
42
+ else {
43
+ const assembly = assemblyManager.get(connectedView.assemblyNames[0]);
44
+ connectedView.centerAt(s1, assembly?.getCanonicalRefName(refName) ?? refName);
45
+ }
46
46
  }
47
47
  }
48
48
  export function hoverProteinToGenome({ model, structureSeqPos, }) {
49
- const session = getSession(model);
50
- const result = proteinToGenomeMapping({ structureSeqPos, model });
51
- const { genomeToTranscriptSeqMapping } = model;
52
- if (!genomeToTranscriptSeqMapping || !result) {
53
- return;
49
+ if (structureSeqPos === undefined) {
50
+ model.setHoverGenomeHighlights([]);
54
51
  }
55
- if (!result) {
56
- session.notify('Genome position not found');
52
+ else {
53
+ const mappedGenomeCoordinate = proteinToGenomeMapping({
54
+ structureSeqPos,
55
+ model,
56
+ });
57
+ const { genomeToTranscriptSeqMapping } = model;
58
+ if (genomeToTranscriptSeqMapping && mappedGenomeCoordinate) {
59
+ model.setHoverGenomeHighlights([
60
+ {
61
+ assemblyName: 'hg38',
62
+ refName: genomeToTranscriptSeqMapping.refName,
63
+ start: mappedGenomeCoordinate[0],
64
+ end: mappedGenomeCoordinate[1],
65
+ },
66
+ ]);
67
+ }
57
68
  }
58
- const [s1, s2] = result;
59
- const { refName } = genomeToTranscriptSeqMapping;
60
- model.setHoverGenomeHighlights([
61
- {
62
- assemblyName: 'hg38',
63
- refName,
64
- start: s1,
65
- end: s2,
66
- },
67
- ]);
68
69
  }
69
70
  //# sourceMappingURL=proteinToGenomeMapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proteinToGenomeMapping.js","sourceRoot":"","sources":["../../src/ProteinView/proteinToGenomeMapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proteinToGenomeMapping.js","sourceRoot":"","sources":["../../src/ProteinView/proteinToGenomeMapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAK/C,MAAM,UAAU,sBAAsB,CAAC,EACrC,KAAK,EACL,eAAe,GAIhB;IACC,MAAM,EACJ,4BAA4B,EAC5B,iBAAiB,EACjB,mCAAmC,GACpC,GAAG,KAAK,CAAA;IACT,IAAI,CAAC,4BAA4B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,4BAA4B,CAAA;IACpD,MAAM,EAAE,GAAG,mCAAmC,EAAE,CAAC,eAAe,CAAC,CAAA;IACjE,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IAClB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,CAAA;IAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAU,CAAA;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,KAAK,EACL,eAAe,GAIhB;IACC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,sBAAsB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAA;IACjE,MAAM,EAAE,aAAa,EAAE,4BAA4B,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;IAC9E,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IACnC,IAAI,CAAC,4BAA4B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAA;IACxD,KAAK,CAAC,wBAAwB,CAAC;QAC7B;YACE,YAAY,EAAE,MAAM;YACpB,OAAO;YACP,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;SACR;KACF,CAAC,CAAA;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,aAAa,CAAC,cAAc,CAChC,GAAG,OAAO,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACxD,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,CAAA;YACrE,aAAa,CAAC,QAAQ,CACpB,EAAE,EACF,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,OAAO,CAClD,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,eAAe,GAIhB;IACC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAA;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;YACpD,eAAe;YACf,KAAK;SACN,CAAC,CAAA;QACF,MAAM,EAAE,4BAA4B,EAAE,GAAG,KAAK,CAAA;QAC9C,IAAI,4BAA4B,IAAI,sBAAsB,EAAE,CAAC;YAC3D,KAAK,CAAC,wBAAwB,CAAC;gBAC7B;oBACE,YAAY,EAAE,MAAM;oBACpB,OAAO,EAAE,4BAA4B,CAAC,OAAO;oBAC7C,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAC;oBAChC,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC;iBAC/B;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -3,7 +3,7 @@ import { getMolstarStructureSelection } from './util';
3
3
  export default function selectResidue({ structure, selectedResidue, plugin, }) {
4
4
  const sel = getMolstarStructureSelection({ structure, selectedResidue });
5
5
  const loci = StructureSelection.toLociWithSourceUnits(sel);
6
- plugin?.managers.interactivity.lociSelects.select({
6
+ plugin.managers.interactivity.lociSelects.select({
7
7
  loci,
8
8
  });
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selectResidue.js","sourceRoot":"","sources":["../../src/ProteinView/selectResidue.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAA;AAErD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,eAAe,EACf,MAAM,GAKP;IACC,MAAM,GAAG,GAAG,4BAA4B,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;QAChD,IAAI;KACL,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"selectResidue.js","sourceRoot":"","sources":["../../src/ProteinView/selectResidue.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,QAAQ,CAAA;AAErD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,SAAS,EACT,eAAe,EACf,MAAM,GAKP;IACC,MAAM,GAAG,GAAG,4BAA4B,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/C,IAAI;KACL,CAAC,CAAA;AACJ,CAAC"}