jbrowse-plugin-protein3d 0.0.3 → 0.0.5

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 (196) hide show
  1. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js +3 -9
  2. package/dist/AddHighlightModel/GenomeMouseoverHighlight.js.map +1 -1
  3. package/dist/AddHighlightModel/HighlightComponents.d.ts +1 -2
  4. package/dist/AddHighlightModel/HighlightComponents.js.map +1 -1
  5. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js +4 -3
  6. package/dist/AddHighlightModel/ProteinToGenomeClickHighlight.js.map +1 -1
  7. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.d.ts +1 -2
  8. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js +4 -3
  9. package/dist/AddHighlightModel/ProteinToGenomeHoverHighlight.js.map +1 -1
  10. package/dist/AddHighlightModel/util.js +1 -1
  11. package/dist/AddHighlightModel/util.js.map +1 -1
  12. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.d.ts +16 -0
  13. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js +43 -0
  14. package/dist/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.js.map +1 -0
  15. package/dist/AlphaFoldConfidenceAdapter/configSchema.d.ts +13 -0
  16. package/dist/AlphaFoldConfidenceAdapter/configSchema.js +16 -0
  17. package/dist/AlphaFoldConfidenceAdapter/configSchema.js.map +1 -0
  18. package/dist/AlphaFoldConfidenceAdapter/index.d.ts +2 -0
  19. package/dist/AlphaFoldConfidenceAdapter/index.js +11 -0
  20. package/dist/AlphaFoldConfidenceAdapter/index.js.map +1 -0
  21. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.d.ts +30 -0
  22. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js +78 -0
  23. package/dist/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.js.map +1 -0
  24. package/dist/AlphaMissensePathogenicityAdapter/configSchema.d.ts +13 -0
  25. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js +16 -0
  26. package/dist/AlphaMissensePathogenicityAdapter/configSchema.js.map +1 -0
  27. package/dist/AlphaMissensePathogenicityAdapter/index.d.ts +2 -0
  28. package/dist/AlphaMissensePathogenicityAdapter/index.js +11 -0
  29. package/dist/AlphaMissensePathogenicityAdapter/index.js.map +1 -0
  30. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js +162 -13
  31. package/dist/LaunchProteinView/components/AlphaFoldDBSearch.js.map +1 -1
  32. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js +8 -6
  33. package/dist/LaunchProteinView/components/AlphaFoldDBSearchStatus.js.map +1 -1
  34. package/dist/LaunchProteinView/components/HelpButton.js +6 -2
  35. package/dist/LaunchProteinView/components/HelpButton.js.map +1 -1
  36. package/dist/LaunchProteinView/components/HelpDialog.js +3 -1
  37. package/dist/LaunchProteinView/components/HelpDialog.js.map +1 -1
  38. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js +12 -4
  39. package/dist/LaunchProteinView/components/LaunchProteinViewDialog.js.map +1 -1
  40. package/dist/LaunchProteinView/components/MSATable.js +3 -1
  41. package/dist/LaunchProteinView/components/MSATable.js.map +1 -1
  42. package/dist/LaunchProteinView/components/ManualUniProtIDEntry.d.ts +8 -0
  43. package/dist/LaunchProteinView/components/ManualUniProtIDEntry.js +225 -0
  44. package/dist/LaunchProteinView/components/ManualUniProtIDEntry.js.map +1 -0
  45. package/dist/LaunchProteinView/components/TranscriptSelector.js +3 -1
  46. package/dist/LaunchProteinView/components/TranscriptSelector.js.map +1 -1
  47. package/dist/LaunchProteinView/components/UserProvidedStructure.js +19 -12
  48. package/dist/LaunchProteinView/components/UserProvidedStructure.js.map +1 -1
  49. package/dist/LaunchProteinView/components/calculateProteinSequence.js +5 -3
  50. package/dist/LaunchProteinView/components/calculateProteinSequence.js.map +1 -1
  51. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.d.ts +1 -1
  52. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js +29 -9
  53. package/dist/LaunchProteinView/components/useLocalStructureFileSequence.js.map +1 -1
  54. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.d.ts +1 -1
  55. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js +25 -8
  56. package/dist/LaunchProteinView/components/useRemoteStructureFileSequence.js.map +1 -1
  57. package/dist/LaunchProteinView/components/util.js +1 -1
  58. package/dist/LaunchProteinView/index.js +7 -3
  59. package/dist/LaunchProteinView/index.js.map +1 -1
  60. package/dist/ProteinView/{loadStructureFromData.d.ts → addStructureFromData.d.ts} +2 -2
  61. package/dist/ProteinView/{loadStructureFromData.js → addStructureFromData.js} +3 -8
  62. package/dist/ProteinView/addStructureFromData.js.map +1 -0
  63. package/dist/ProteinView/{loadStructureFromURL.d.ts → addStructureFromURL.d.ts} +2 -2
  64. package/dist/ProteinView/{loadStructureFromURL.js → addStructureFromURL.js} +11 -9
  65. package/dist/ProteinView/addStructureFromURL.js.map +1 -0
  66. package/dist/ProteinView/clearSelection.js +1 -1
  67. package/dist/ProteinView/clearSelection.js.map +1 -1
  68. package/dist/ProteinView/components/ProteinAlignment.d.ts +2 -2
  69. package/dist/ProteinView/components/ProteinAlignment.js +37 -26
  70. package/dist/ProteinView/components/ProteinAlignment.js.map +1 -1
  71. package/dist/ProteinView/components/ProteinAlignmentHelpButton.d.ts +2 -2
  72. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js +6 -4
  73. package/dist/ProteinView/components/ProteinAlignmentHelpButton.js.map +1 -1
  74. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js +6 -5
  75. package/dist/ProteinView/components/ProteinAlignmentHelpDialog.js.map +1 -1
  76. package/dist/ProteinView/components/ProteinView.js +18 -60
  77. package/dist/ProteinView/components/ProteinView.js.map +1 -1
  78. package/dist/ProteinView/components/{Header.js → ProteinViewHeader.js} +29 -12
  79. package/dist/ProteinView/components/ProteinViewHeader.js.map +1 -0
  80. package/dist/ProteinView/components/SplitString.d.ts +4 -4
  81. package/dist/ProteinView/components/SplitString.js +3 -3
  82. package/dist/ProteinView/components/SplitString.js.map +1 -1
  83. package/dist/ProteinView/genomeToProtein.d.ts +2 -2
  84. package/dist/ProteinView/genomeToProtein.js +4 -5
  85. package/dist/ProteinView/genomeToProtein.js.map +1 -1
  86. package/dist/ProteinView/highlightResidue.js +2 -2
  87. package/dist/ProteinView/highlightResidue.js.map +1 -1
  88. package/dist/ProteinView/launchRemotePairwiseAlignment.d.ts +2 -5
  89. package/dist/ProteinView/launchRemotePairwiseAlignment.js +7 -3
  90. package/dist/ProteinView/launchRemotePairwiseAlignment.js.map +1 -1
  91. package/dist/ProteinView/model.d.ts +492 -160
  92. package/dist/ProteinView/model.js +62 -246
  93. package/dist/ProteinView/model.js.map +1 -1
  94. package/dist/ProteinView/proteinToGenomeMapping.d.ts +6 -6
  95. package/dist/ProteinView/proteinToGenomeMapping.js +29 -28
  96. package/dist/ProteinView/proteinToGenomeMapping.js.map +1 -1
  97. package/dist/ProteinView/selectResidue.js +1 -1
  98. package/dist/ProteinView/selectResidue.js.map +1 -1
  99. package/dist/ProteinView/structureModel.d.ts +183 -0
  100. package/dist/ProteinView/structureModel.js +407 -0
  101. package/dist/ProteinView/structureModel.js.map +1 -0
  102. package/dist/ProteinView/useProteinView.d.ts +1 -4
  103. package/dist/ProteinView/useProteinView.js +3 -15
  104. package/dist/ProteinView/useProteinView.js.map +1 -1
  105. package/dist/ProteinView/util.d.ts +3 -3
  106. package/dist/ProteinView/util.js +8 -6
  107. package/dist/ProteinView/util.js.map +1 -1
  108. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.d.ts +15 -0
  109. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js +55 -0
  110. package/dist/UniProtVariationAdapter/UniProtVariationAdapter.js.map +1 -0
  111. package/dist/UniProtVariationAdapter/configSchema.d.ts +17 -0
  112. package/dist/UniProtVariationAdapter/configSchema.js +20 -0
  113. package/dist/UniProtVariationAdapter/configSchema.js.map +1 -0
  114. package/dist/UniProtVariationAdapter/index.d.ts +2 -0
  115. package/dist/UniProtVariationAdapter/index.js +11 -0
  116. package/dist/UniProtVariationAdapter/index.js.map +1 -0
  117. package/dist/genomeToTranscriptMapping.d.ts +2 -2
  118. package/dist/genomeToTranscriptMapping.js +3 -3
  119. package/dist/genomeToTranscriptMapping.js.map +1 -1
  120. package/dist/index.js +6 -0
  121. package/dist/index.js.map +1 -1
  122. package/dist/jbrowse-plugin-protein3d.umd.production.min.js +2506 -1658
  123. package/dist/jbrowse-plugin-protein3d.umd.production.min.js.map +4 -4
  124. package/dist/mappings.d.ts +12 -10
  125. package/dist/mappings.js +7 -7
  126. package/dist/mappings.js.map +1 -1
  127. package/dist/mappings.test.js +7 -5
  128. package/dist/mappings.test.js.map +1 -1
  129. package/dist/test_data/gene.d.ts +577 -64
  130. package/dist/test_data/gene.js +1 -1
  131. package/dist/test_data/gene.js.map +1 -1
  132. package/package.json +20 -19
  133. package/src/AddHighlightModel/GenomeMouseoverHighlight.tsx +4 -17
  134. package/src/AddHighlightModel/HighlightComponents.tsx +1 -3
  135. package/src/AddHighlightModel/ProteinToGenomeClickHighlight.tsx +17 -14
  136. package/src/AddHighlightModel/ProteinToGenomeHoverHighlight.tsx +18 -17
  137. package/src/AddHighlightModel/util.ts +1 -1
  138. package/src/AlphaFoldConfidenceAdapter/AlphaFoldConfidenceAdapter.ts +63 -0
  139. package/src/AlphaFoldConfidenceAdapter/configSchema.ts +21 -0
  140. package/src/AlphaFoldConfidenceAdapter/index.ts +19 -0
  141. package/src/AlphaMissensePathogenicityAdapter/AlphaMissensePathogenicityAdapter.ts +109 -0
  142. package/src/AlphaMissensePathogenicityAdapter/configSchema.ts +21 -0
  143. package/src/AlphaMissensePathogenicityAdapter/index.ts +19 -0
  144. package/src/LaunchProteinView/components/AlphaFoldDBSearch.tsx +173 -12
  145. package/src/LaunchProteinView/components/AlphaFoldDBSearchStatus.tsx +8 -6
  146. package/src/LaunchProteinView/components/HelpButton.tsx +10 -2
  147. package/src/LaunchProteinView/components/HelpDialog.tsx +6 -1
  148. package/src/LaunchProteinView/components/LaunchProteinViewDialog.tsx +20 -4
  149. package/src/LaunchProteinView/components/MSATable.tsx +3 -1
  150. package/src/LaunchProteinView/components/ManualUniProtIDEntry.tsx +332 -0
  151. package/src/LaunchProteinView/components/TranscriptSelector.tsx +9 -7
  152. package/src/LaunchProteinView/components/UserProvidedStructure.tsx +18 -13
  153. package/src/LaunchProteinView/components/calculateProteinSequence.ts +6 -4
  154. package/src/LaunchProteinView/components/useLocalStructureFileSequence.ts +28 -9
  155. package/src/LaunchProteinView/components/useRemoteStructureFileSequence.ts +23 -8
  156. package/src/LaunchProteinView/components/util.ts +1 -1
  157. package/src/LaunchProteinView/index.ts +36 -26
  158. package/src/ProteinView/{loadStructureFromData.ts → addStructureFromData.ts} +2 -8
  159. package/src/ProteinView/{loadStructureFromURL.ts → addStructureFromURL.ts} +11 -11
  160. package/src/ProteinView/clearSelection.ts +1 -1
  161. package/src/ProteinView/components/ProteinAlignment.tsx +51 -35
  162. package/src/ProteinView/components/ProteinAlignmentHelpButton.tsx +4 -4
  163. package/src/ProteinView/components/ProteinAlignmentHelpDialog.tsx +15 -11
  164. package/src/ProteinView/components/ProteinView.tsx +22 -82
  165. package/src/ProteinView/components/{Header.tsx → ProteinViewHeader.tsx} +44 -23
  166. package/src/ProteinView/components/SplitString.tsx +8 -8
  167. package/src/ProteinView/genomeToProtein.ts +5 -9
  168. package/src/ProteinView/highlightResidue.ts +2 -2
  169. package/src/ProteinView/launchRemotePairwiseAlignment.ts +6 -3
  170. package/src/ProteinView/model.ts +75 -287
  171. package/src/ProteinView/proteinToGenomeMapping.ts +40 -38
  172. package/src/ProteinView/selectResidue.ts +1 -1
  173. package/src/ProteinView/structureModel.ts +512 -0
  174. package/src/ProteinView/useProteinView.ts +2 -19
  175. package/src/ProteinView/util.ts +20 -9
  176. package/src/UniProtVariationAdapter/UniProtVariationAdapter.ts +99 -0
  177. package/src/UniProtVariationAdapter/configSchema.ts +25 -0
  178. package/src/UniProtVariationAdapter/index.ts +17 -0
  179. package/src/__snapshots__/mappings.test.ts.snap +224 -224
  180. package/src/genomeToTranscriptMapping.ts +9 -9
  181. package/src/index.ts +6 -0
  182. package/src/mappings.test.ts +7 -5
  183. package/src/mappings.ts +25 -23
  184. package/src/test_data/gene.ts +3 -3
  185. package/dist/ProteinView/components/Header.js.map +0 -1
  186. package/dist/ProteinView/loadStructureFromData.js.map +0 -1
  187. package/dist/ProteinView/loadStructureFromURL.js.map +0 -1
  188. package/dist/ProteinView/useProteinViewClickBehavior.d.ts +0 -8
  189. package/dist/ProteinView/useProteinViewClickBehavior.js +0 -34
  190. package/dist/ProteinView/useProteinViewClickBehavior.js.map +0 -1
  191. package/dist/ProteinView/useProteinViewHoverBehavior.d.ts +0 -6
  192. package/dist/ProteinView/useProteinViewHoverBehavior.js +0 -31
  193. package/dist/ProteinView/useProteinViewHoverBehavior.js.map +0 -1
  194. package/src/ProteinView/useProteinViewClickBehavior.ts +0 -48
  195. package/src/ProteinView/useProteinViewHoverBehavior.ts +0 -44
  196. /package/dist/ProteinView/components/{Header.d.ts → ProteinViewHeader.d.ts} +0 -0
@@ -0,0 +1,183 @@
1
+ import { Region as IRegion } from '@jbrowse/core/util/types';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { SimpleFeatureSerialized } from '@jbrowse/core/util';
4
+ import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
5
+ import { PairwiseAlignment } from '../mappings';
6
+ import { PluginContext } from 'molstar/lib/mol-plugin/context';
7
+ type LGV = LinearGenomeViewModel;
8
+ type MaybeLGV = LGV | undefined;
9
+ type MaybePairwiseAlignment = PairwiseAlignment | undefined;
10
+ type StructureModel = Awaited<ReturnType<PluginContext['builders']['structure']['createModel']>>;
11
+ declare const Structure: import("mobx-state-tree").IModelType<{
12
+ /**
13
+ * #property
14
+ */
15
+ url: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
16
+ /**
17
+ * #property
18
+ */
19
+ data: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
20
+ /**
21
+ * #property
22
+ */
23
+ connectedViewId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
24
+ /**
25
+ * #property
26
+ */
27
+ pairwiseAlignment: import("mobx-state-tree").IType<MaybePairwiseAlignment, MaybePairwiseAlignment, MaybePairwiseAlignment>;
28
+ /**
29
+ * #property
30
+ */
31
+ feature: import("mobx-state-tree").IType<SimpleFeatureSerialized | undefined, SimpleFeatureSerialized | undefined, SimpleFeatureSerialized | undefined>;
32
+ /**
33
+ * #property
34
+ */
35
+ userProvidedTranscriptSequence: import("mobx-state-tree").ISimpleType<string>;
36
+ }, {
37
+ /**
38
+ * #volatile
39
+ */
40
+ model: StructureModel | undefined;
41
+ /**
42
+ * #volatile
43
+ */
44
+ clickGenomeHighlights: IRegion[];
45
+ /**
46
+ * #volatile
47
+ */
48
+ hoverGenomeHighlights: IRegion[];
49
+ /**
50
+ * #volatile
51
+ */
52
+ clickPosition: {
53
+ structureSeqPos: number;
54
+ code: string;
55
+ chain: string;
56
+ } | undefined;
57
+ /**
58
+ * #volatile
59
+ */
60
+ hoverPosition: {
61
+ structureSeqPos?: number;
62
+ code?: string;
63
+ chain?: string;
64
+ } | undefined;
65
+ /**
66
+ * #volatile
67
+ */
68
+ pairwiseAlignmentStatus: string;
69
+ /**
70
+ * #volatile
71
+ */
72
+ structureSequences: string[] | undefined;
73
+ } & {
74
+ /**
75
+ * #action
76
+ */
77
+ setModel(model: StructureModel): void;
78
+ setSequences(str?: string[]): void;
79
+ } & {
80
+ /**
81
+ * #getter
82
+ */
83
+ readonly connectedView: MaybeLGV;
84
+ } & {
85
+ /**
86
+ * #action
87
+ */
88
+ setClickedPosition(arg?: {
89
+ structureSeqPos: number;
90
+ code: string;
91
+ chain: string;
92
+ }): void;
93
+ /**
94
+ * #action
95
+ */
96
+ setClickGenomeHighlights(r: IRegion[]): void;
97
+ /**
98
+ * #action
99
+ */
100
+ clearClickGenomeHighlights(): void;
101
+ /**
102
+ * #action
103
+ */
104
+ setHoverGenomeHighlights(r: IRegion[]): void;
105
+ /**
106
+ * #action
107
+ */
108
+ clearHoverGenomeHighlights(): void;
109
+ /**
110
+ * #action
111
+ */
112
+ setHoveredPosition(arg?: {
113
+ structureSeqPos?: number;
114
+ chain?: string;
115
+ code?: string;
116
+ }): void;
117
+ /**
118
+ * #action
119
+ */
120
+ setAlignment(r?: PairwiseAlignment): void;
121
+ /**
122
+ * #action
123
+ */
124
+ setAlignmentStatus(str: string): void;
125
+ } & {
126
+ /**
127
+ * #getter
128
+ */
129
+ readonly structureSeqToTranscriptSeqPosition: Record<string, number> | undefined;
130
+ /**
131
+ * #getter
132
+ */
133
+ readonly transcriptSeqToStructureSeqPosition: Record<string, number> | undefined;
134
+ /**
135
+ * #getter
136
+ */
137
+ readonly structurePositionToAlignmentMap: Record<string, number> | undefined;
138
+ /**
139
+ * #getter
140
+ */
141
+ readonly transcriptPositionToAlignmentMap: Record<string, number> | undefined;
142
+ /**
143
+ * #getter
144
+ */
145
+ readonly pairwiseAlignmentToTranscriptPosition: Record<number, number> | undefined;
146
+ /**
147
+ * #getter
148
+ */
149
+ readonly pairwiseAlignmentToStructurePosition: Record<number, number> | undefined;
150
+ /**
151
+ * #getter
152
+ */
153
+ readonly clickString: string;
154
+ /**
155
+ * #getter
156
+ */
157
+ readonly hoverString: string;
158
+ /**
159
+ * #getter
160
+ */
161
+ readonly genomeToTranscriptSeqMapping: {
162
+ g2p: Record<number, number | undefined>;
163
+ p2g: Record<number, number | undefined>;
164
+ refName: string;
165
+ strand: number;
166
+ } | undefined;
167
+ /**
168
+ * #getter
169
+ */
170
+ readonly structureSeqHoverPos: number | undefined;
171
+ /**
172
+ * #getter
173
+ */
174
+ readonly exactMatch: boolean;
175
+ readonly zoomToBaseLevel: boolean;
176
+ readonly showHighlight: boolean;
177
+ readonly molstarPluginContext: PluginContext | undefined;
178
+ } & {
179
+ afterAttach(): void;
180
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
181
+ export default Structure;
182
+ export type JBrowsePluginProteinStructureStateModel = typeof Structure;
183
+ export type JBrowsePluginProteinStructureModel = Instance<JBrowsePluginProteinStructureStateModel>;
@@ -0,0 +1,407 @@
1
+ import { autorun } from 'mobx';
2
+ import { addDisposer, getParent, types } from 'mobx-state-tree';
3
+ import { SimpleFeature, getSession, } from '@jbrowse/core/util';
4
+ // locals
5
+ import { checkHovered, invertMap, toStr } from './util';
6
+ import { launchPairwiseAlignment } from './launchRemotePairwiseAlignment';
7
+ import { genomeToTranscriptSeqMapping, structureSeqVsTranscriptSeqMap, structurePositionToAlignmentMap, transcriptPositionToAlignmentMap, } from '../mappings';
8
+ import { StructureElement, StructureProperties, } from 'molstar/lib/mol-model/structure';
9
+ import { clickProteinToGenome, hoverProteinToGenome, } from './proteinToGenomeMapping';
10
+ import selectResidue from './selectResidue';
11
+ import clearSelection from './clearSelection';
12
+ import highlightResidue from './highlightResidue';
13
+ const Structure = types
14
+ .model({
15
+ /**
16
+ * #property
17
+ */
18
+ url: types.maybe(types.string),
19
+ /**
20
+ * #property
21
+ */
22
+ data: types.maybe(types.string),
23
+ /**
24
+ * #property
25
+ */
26
+ connectedViewId: types.maybe(types.string),
27
+ /**
28
+ * #property
29
+ */
30
+ pairwiseAlignment: types.frozen(),
31
+ /**
32
+ * #property
33
+ */
34
+ feature: types.frozen(),
35
+ /**
36
+ * #property
37
+ */
38
+ userProvidedTranscriptSequence: types.string,
39
+ })
40
+ .volatile(() => ({
41
+ /**
42
+ * #volatile
43
+ */
44
+ model: undefined,
45
+ /**
46
+ * #volatile
47
+ */
48
+ clickGenomeHighlights: [],
49
+ /**
50
+ * #volatile
51
+ */
52
+ hoverGenomeHighlights: [],
53
+ /**
54
+ * #volatile
55
+ */
56
+ clickPosition: undefined,
57
+ /**
58
+ * #volatile
59
+ */
60
+ hoverPosition: undefined,
61
+ /**
62
+ * #volatile
63
+ */
64
+ pairwiseAlignmentStatus: '',
65
+ /**
66
+ * #volatile
67
+ */
68
+ structureSequences: undefined,
69
+ }))
70
+ .actions(self => ({
71
+ /**
72
+ * #action
73
+ */
74
+ setModel(model) {
75
+ self.model = model;
76
+ },
77
+ setSequences(str) {
78
+ self.structureSequences = str;
79
+ },
80
+ }))
81
+ .views(self => ({
82
+ /**
83
+ * #getter
84
+ */
85
+ get connectedView() {
86
+ const { views } = getSession(self);
87
+ return views.find(f => f.id === self.connectedViewId);
88
+ },
89
+ }))
90
+ .actions(self => ({
91
+ /**
92
+ * #action
93
+ */
94
+ setClickedPosition(arg) {
95
+ self.clickPosition = arg;
96
+ },
97
+ /**
98
+ * #action
99
+ */
100
+ setClickGenomeHighlights(r) {
101
+ self.clickGenomeHighlights = r;
102
+ },
103
+ /**
104
+ * #action
105
+ */
106
+ clearClickGenomeHighlights() {
107
+ self.clickGenomeHighlights = [];
108
+ },
109
+ /**
110
+ * #action
111
+ */
112
+ setHoverGenomeHighlights(r) {
113
+ self.hoverGenomeHighlights = r;
114
+ },
115
+ /**
116
+ * #action
117
+ */
118
+ clearHoverGenomeHighlights() {
119
+ self.hoverGenomeHighlights = [];
120
+ },
121
+ /**
122
+ * #action
123
+ */
124
+ setHoveredPosition(arg) {
125
+ self.hoverPosition = arg;
126
+ },
127
+ /**
128
+ * #action
129
+ */
130
+ setAlignment(r) {
131
+ self.pairwiseAlignment = r;
132
+ },
133
+ /**
134
+ * #action
135
+ */
136
+ setAlignmentStatus(str) {
137
+ self.pairwiseAlignmentStatus = str;
138
+ },
139
+ }))
140
+ .views(self => ({
141
+ /**
142
+ * #getter
143
+ */
144
+ get structureSeqToTranscriptSeqPosition() {
145
+ return self.pairwiseAlignment
146
+ ? structureSeqVsTranscriptSeqMap(self.pairwiseAlignment)
147
+ .structureSeqToTranscriptSeqPosition
148
+ : undefined;
149
+ },
150
+ /**
151
+ * #getter
152
+ */
153
+ get transcriptSeqToStructureSeqPosition() {
154
+ return self.pairwiseAlignment
155
+ ? structureSeqVsTranscriptSeqMap(self.pairwiseAlignment)
156
+ .transcriptSeqToStructureSeqPosition
157
+ : undefined;
158
+ },
159
+ /**
160
+ * #getter
161
+ */
162
+ get structurePositionToAlignmentMap() {
163
+ return self.pairwiseAlignment
164
+ ? structurePositionToAlignmentMap(self.pairwiseAlignment)
165
+ : undefined;
166
+ },
167
+ /**
168
+ * #getter
169
+ */
170
+ get transcriptPositionToAlignmentMap() {
171
+ return self.pairwiseAlignment
172
+ ? transcriptPositionToAlignmentMap(self.pairwiseAlignment)
173
+ : undefined;
174
+ },
175
+ /**
176
+ * #getter
177
+ */
178
+ get pairwiseAlignmentToTranscriptPosition() {
179
+ return this.transcriptPositionToAlignmentMap
180
+ ? invertMap(this.transcriptPositionToAlignmentMap)
181
+ : undefined;
182
+ },
183
+ /**
184
+ * #getter
185
+ */
186
+ get pairwiseAlignmentToStructurePosition() {
187
+ return this.structurePositionToAlignmentMap
188
+ ? invertMap(this.structurePositionToAlignmentMap)
189
+ : undefined;
190
+ },
191
+ /**
192
+ * #getter
193
+ */
194
+ get clickString() {
195
+ const r = self.clickPosition;
196
+ return r === undefined ? '' : toStr(r);
197
+ },
198
+ /**
199
+ * #getter
200
+ */
201
+ get hoverString() {
202
+ const r = self.hoverPosition;
203
+ return r === undefined ? '' : toStr(r);
204
+ },
205
+ /**
206
+ * #getter
207
+ */
208
+ get genomeToTranscriptSeqMapping() {
209
+ return self.feature
210
+ ? genomeToTranscriptSeqMapping(new SimpleFeature(self.feature))
211
+ : undefined;
212
+ },
213
+ /**
214
+ * #getter
215
+ */
216
+ get structureSeqHoverPos() {
217
+ return self.hoverPosition?.structureSeqPos;
218
+ },
219
+ /**
220
+ * #getter
221
+ */
222
+ get exactMatch() {
223
+ const r1 = self.userProvidedTranscriptSequence.replaceAll('*', '');
224
+ const r2 = self.structureSequences?.[0]?.replaceAll('*', '');
225
+ return r1 === r2;
226
+ },
227
+ get zoomToBaseLevel() {
228
+ // @ts-expect-error
229
+ return getParent(self, 2).zoomToBaseLevel;
230
+ },
231
+ get showHighlight() {
232
+ // @ts-expect-error
233
+ return getParent(self, 2).showHighlight;
234
+ },
235
+ get molstarPluginContext() {
236
+ // @ts-expect-error
237
+ return getParent(self, 2).molstarPluginContext;
238
+ },
239
+ }))
240
+ .actions(self => ({
241
+ afterAttach() {
242
+ // pairwise align transcript sequence to structure residues
243
+ addDisposer(self, autorun(async () => {
244
+ try {
245
+ const { userProvidedTranscriptSequence, structureSequences, exactMatch, } = self;
246
+ const seq1 = userProvidedTranscriptSequence;
247
+ const seq2 = structureSequences?.[0];
248
+ if (!!self.pairwiseAlignment || !seq1 || !seq2) {
249
+ return;
250
+ }
251
+ const r1 = seq1.replaceAll('*', '');
252
+ const r2 = seq2.replaceAll('*', '');
253
+ if (exactMatch) {
254
+ let consensus = '';
255
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
256
+ for (let i = 0; i < r1.length; i++) {
257
+ consensus += '|';
258
+ }
259
+ self.setAlignment({
260
+ consensus,
261
+ alns: [
262
+ { id: 'seq1', seq: r1 },
263
+ { id: 'seq2', seq: r2 },
264
+ ],
265
+ });
266
+ }
267
+ else {
268
+ const pairwiseAlignment = await launchPairwiseAlignment({
269
+ seq1: r1,
270
+ seq2: r2,
271
+ algorithm: 'emboss_needle',
272
+ onProgress: arg => {
273
+ self.setAlignmentStatus(arg);
274
+ },
275
+ });
276
+ self.setAlignment(pairwiseAlignment.pairwiseAlignment);
277
+ // showHighlight when we are
278
+ // @ts-expect-error
279
+ getParent(self, 2).setShowHighlight(true);
280
+ // @ts-expect-error
281
+ getParent(self, 2).setShowAlignment(true);
282
+ }
283
+ }
284
+ catch (e) {
285
+ console.error(e);
286
+ // @ts-expect-error
287
+ getParent(self, 2).setError(e);
288
+ }
289
+ }));
290
+ // convert hover over the genome to structure position
291
+ addDisposer(self, autorun(() => {
292
+ const { hovered } = getSession(self);
293
+ const { transcriptSeqToStructureSeqPosition, genomeToTranscriptSeqMapping, connectedView, } = self;
294
+ if (connectedView?.initialized &&
295
+ genomeToTranscriptSeqMapping &&
296
+ checkHovered(hovered)) {
297
+ const { hoverPosition } = hovered;
298
+ const pos = genomeToTranscriptSeqMapping.g2p[hoverPosition.coord];
299
+ const c0 = pos === undefined
300
+ ? undefined
301
+ : transcriptSeqToStructureSeqPosition?.[pos];
302
+ if (c0 !== undefined) {
303
+ self.setHoveredPosition({
304
+ structureSeqPos: c0,
305
+ });
306
+ }
307
+ }
308
+ }));
309
+ addDisposer(self, autorun(() => {
310
+ const { molstarPluginContext } = self;
311
+ if (molstarPluginContext) {
312
+ const ret = molstarPluginContext.behaviors.interaction.click.subscribe(e => {
313
+ if (StructureElement.Loci.is(e.current.loci)) {
314
+ const loc = StructureElement.Loci.getFirstLocation(e.current.loci);
315
+ if (loc) {
316
+ const pos = StructureProperties.residue.auth_seq_id(loc);
317
+ const code = StructureProperties.atom.label_comp_id(loc);
318
+ const chain = StructureProperties.chain.auth_asym_id(loc);
319
+ self.setHoveredPosition({
320
+ structureSeqPos: pos - 1,
321
+ code,
322
+ chain,
323
+ });
324
+ clickProteinToGenome({
325
+ model: self,
326
+ structureSeqPos: pos - 1,
327
+ }).catch((e) => {
328
+ console.error(e);
329
+ // @ts-expect-error
330
+ getParent(self, 2).setError(e);
331
+ });
332
+ }
333
+ }
334
+ });
335
+ return () => {
336
+ ret.unsubscribe();
337
+ };
338
+ }
339
+ return () => { };
340
+ }));
341
+ addDisposer(self, autorun(() => {
342
+ const { molstarPluginContext } = self;
343
+ if (molstarPluginContext) {
344
+ const ret = molstarPluginContext.behaviors.interaction.hover.subscribe(e => {
345
+ if (StructureElement.Loci.is(e.current.loci)) {
346
+ const loc = StructureElement.Loci.getFirstLocation(e.current.loci);
347
+ if (loc) {
348
+ // example code for this label
349
+ // https://github.com/molstar/molstar/blob/60550cfea1f62a50a764d5714307d6d1049be71d/src/mol-theme/label.ts#L255-L264
350
+ const pos = StructureProperties.residue.auth_seq_id(loc);
351
+ const code = StructureProperties.atom.label_comp_id(loc);
352
+ const chain = StructureProperties.chain.auth_asym_id(loc);
353
+ self.setHoveredPosition({
354
+ structureSeqPos: pos - 1,
355
+ code,
356
+ chain,
357
+ });
358
+ hoverProteinToGenome({
359
+ model: self,
360
+ structureSeqPos: pos - 1,
361
+ });
362
+ }
363
+ }
364
+ });
365
+ return () => {
366
+ ret.unsubscribe();
367
+ };
368
+ }
369
+ return () => { };
370
+ }));
371
+ addDisposer(self, autorun(() => {
372
+ const { showHighlight, structureSeqToTranscriptSeqPosition, molstarPluginContext, } = self;
373
+ const structure = molstarPluginContext?.managers.structure.hierarchy.current
374
+ .structures[0]?.cell.obj?.data;
375
+ if (structure && structureSeqToTranscriptSeqPosition) {
376
+ if (showHighlight) {
377
+ for (const coord of Object.keys(structureSeqToTranscriptSeqPosition)) {
378
+ selectResidue({
379
+ structure,
380
+ plugin: molstarPluginContext,
381
+ selectedResidue: +coord + 1,
382
+ });
383
+ }
384
+ }
385
+ else {
386
+ clearSelection({
387
+ plugin: molstarPluginContext,
388
+ });
389
+ }
390
+ }
391
+ }));
392
+ addDisposer(self, autorun(() => {
393
+ const { structureSeqHoverPos, molstarPluginContext } = self;
394
+ const structure = molstarPluginContext?.managers.structure.hierarchy.current
395
+ .structures[0]?.cell.obj?.data;
396
+ if (structure && structureSeqHoverPos !== undefined) {
397
+ highlightResidue({
398
+ structure,
399
+ plugin: molstarPluginContext,
400
+ selectedResidue: structureSeqHoverPos,
401
+ });
402
+ }
403
+ }));
404
+ },
405
+ }));
406
+ export default Structure;
407
+ //# sourceMappingURL=structureModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureModel.js","sourceRoot":"","sources":["../../src/ProteinView/structureModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,OAAO,EAAY,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,aAAa,EAEb,UAAU,GACX,MAAM,oBAAoB,CAAA;AAG3B,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,GAEjC,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AASjD,MAAM,SAAS,GAAG,KAAK;KACpB,KAAK,CAAC;IACL;;OAEG;IACH,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC9B;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC/B;;OAEG;IACH,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1C;;OAEG;IACH,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAA0B;IACzD;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,MAAM,EAAuC;IAC5D;;OAEG;IACH,8BAA8B,EAAE,KAAK,CAAC,MAAM;CAC7C,CAAC;KACD,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,SAAuC;IAC9C;;OAEG;IACH,qBAAqB,EAAE,EAAe;IACtC;;OAEG;IACH,qBAAqB,EAAE,EAAe;IAEtC;;OAEG;IACH,aAAa,EAAE,SAMF;IACb;;OAEG;IACH,aAAa,EAAE,SAMF;IACb;;OAEG;IACH,uBAAuB,EAAE,EAAE;IAC3B;;OAEG;IACH,kBAAkB,EAAE,SAAiC;CACtD,CAAC,CAAC;KACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,KAAqB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,YAAY,CAAC,GAAc;QACzB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAA;IAC/B,CAAC;CACF,CAAC,CAAC;KACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd;;OAEG;IACH,IAAI,aAAa;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAClC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAa,CAAA;IACnE,CAAC;CACF,CAAC,CAAC;KACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB;;OAEG;IACH,kBAAkB,CAAC,GAIlB;QACC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAA;IAC1B,CAAC;IACD;;OAEG;IACH,wBAAwB,CAAC,CAAY;QACnC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,CAAC;IACD;;OAEG;IACH,0BAA0B;QACxB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAA;IACjC,CAAC;IACD;;OAEG;IACH,wBAAwB,CAAC,CAAY;QACnC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,CAAC;IACD;;OAEG;IACH,0BAA0B;QACxB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAA;IACjC,CAAC;IACD;;OAEG;IACH,kBAAkB,CAAC,GAIlB;QACC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAA;IAC1B,CAAC;IACD;;OAEG;IACH,YAAY,CAAC,CAAqB;QAChC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD;;OAEG;IACH,kBAAkB,CAAC,GAAW;QAC5B,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAA;IACpC,CAAC;CACF,CAAC,CAAC;KACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd;;OAEG;IACH,IAAI,mCAAmC;QACrC,OAAO,IAAI,CAAC,iBAAiB;YAC3B,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACnD,mCAAmC;YACxC,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,mCAAmC;QACrC,OAAO,IAAI,CAAC,iBAAiB;YAC3B,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACnD,mCAAmC;YACxC,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,+BAA+B;QACjC,OAAO,IAAI,CAAC,iBAAiB;YAC3B,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,iBAAiB,CAAC;YACzD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,gCAAgC;QAClC,OAAO,IAAI,CAAC,iBAAiB;YAC3B,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC1D,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,qCAAqC;QACvC,OAAO,IAAI,CAAC,gCAAgC;YAC1C,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,gCAAgC,CAAC;YAClD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,oCAAoC;QACtC,OAAO,IAAI,CAAC,+BAA+B;YACzC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,+BAA+B,CAAC;YACjD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;QAC5B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD;;OAEG;IACH,IAAI,WAAW;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA;QAC5B,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IACD;;OAEG;IACH,IAAI,4BAA4B;QAC9B,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,4BAA4B,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IACD;;OAEG;IACH,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,aAAa,EAAE,eAAe,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC5D,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,eAAe;QACjB,mBAAmB;QACnB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAA;IAC3C,CAAC;IACD,IAAI,aAAa;QACf,mBAAmB;QACnB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IACzC,CAAC;IACD,IAAI,oBAAoB;QACtB,mBAAmB;QACnB,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAA;IAChD,CAAC;CACF,CAAC,CAAC;KACF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,WAAW;QACT,2DAA2D;QAC3D,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC;gBACH,MAAM,EACJ,8BAA8B,EAC9B,kBAAkB,EAClB,UAAU,GACX,GAAG,IAAI,CAAA;gBACR,MAAM,IAAI,GAAG,8BAA8B,CAAA;gBAC3C,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAA;gBAEpC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC/C,OAAM;gBACR,CAAC;gBACD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;gBACnC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;gBACnC,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,SAAS,GAAG,EAAE,CAAA;oBAClB,4DAA4D;oBAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACnC,SAAS,IAAI,GAAG,CAAA;oBAClB,CAAC;oBACD,IAAI,CAAC,YAAY,CAAC;wBAChB,SAAS;wBACT,IAAI,EAAE;4BACJ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;4BACvB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;yBACxB;qBACF,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,iBAAiB,GAAG,MAAM,uBAAuB,CAAC;wBACtD,IAAI,EAAE,EAAE;wBACR,IAAI,EAAE,EAAE;wBACR,SAAS,EAAE,eAAe;wBAC1B,UAAU,EAAE,GAAG,CAAC,EAAE;4BAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;wBAC9B,CAAC;qBACF,CAAC,CAAA;oBACF,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;oBAEtD,4BAA4B;oBAC5B,mBAAmB;oBACnB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBACzC,mBAAmB;oBACnB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,mBAAmB;gBACnB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,sDAAsD;QACtD,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YACpC,MAAM,EACJ,mCAAmC,EACnC,4BAA4B,EAC5B,aAAa,GACd,GAAG,IAAI,CAAA;YACR,IACE,aAAa,EAAE,WAAW;gBAC1B,4BAA4B;gBAC5B,YAAY,CAAC,OAAO,CAAC,EACrB,CAAC;gBACD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;gBACjC,MAAM,GAAG,GAAG,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACjE,MAAM,EAAE,GACN,GAAG,KAAK,SAAS;oBACf,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,mCAAmC,EAAE,CAAC,GAAG,CAAC,CAAA;gBAEhD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,IAAI,CAAC,kBAAkB,CAAC;wBACtB,eAAe,EAAE,EAAE;qBACpB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;YACrC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,MAAM,GAAG,GACP,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC7D,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAChD,CAAC,CAAC,OAAO,CAAC,IAAI,CACf,CAAA;wBACD,IAAI,GAAG,EAAE,CAAC;4BACR,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;4BACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;4BACzD,IAAI,CAAC,kBAAkB,CAAC;gCACtB,eAAe,EAAE,GAAG,GAAG,CAAC;gCACxB,IAAI;gCACJ,KAAK;6BACN,CAAC,CAAA;4BAEF,oBAAoB,CAAC;gCACnB,KAAK,EAAE,IAA0C;gCACjD,eAAe,EAAE,GAAG,GAAG,CAAC;6BACzB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gCACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gCAChB,mBAAmB;gCACnB,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;4BAChC,CAAC,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;gBACJ,OAAO,GAAG,EAAE;oBACV,GAAG,CAAC,WAAW,EAAE,CAAA;gBACnB,CAAC,CAAA;YACH,CAAC;YACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC,CAAC,CACH,CAAA;QAED,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;YACrC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,MAAM,GAAG,GACP,oBAAoB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAC7D,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7C,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,CAChD,CAAC,CAAC,OAAO,CAAC,IAAI,CACf,CAAA;wBACD,IAAI,GAAG,EAAE,CAAC;4BACR,8BAA8B;4BAC9B,oHAAoH;4BACpH,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;4BACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;4BACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;4BACzD,IAAI,CAAC,kBAAkB,CAAC;gCACtB,eAAe,EAAE,GAAG,GAAG,CAAC;gCACxB,IAAI;gCACJ,KAAK;6BACN,CAAC,CAAA;4BACF,oBAAoB,CAAC;gCACnB,KAAK,EAAE,IAA0C;gCACjD,eAAe,EAAE,GAAG,GAAG,CAAC;6BACzB,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC,CAAC,CAAA;gBACJ,OAAO,GAAG,EAAE;oBACV,GAAG,CAAC,WAAW,EAAE,CAAA;gBACnB,CAAC,CAAA;YACH,CAAC;YACD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC,CAAC,CACH,CAAA;QAED,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,EACJ,aAAa,EACb,mCAAmC,EACnC,oBAAoB,GACrB,GAAG,IAAI,CAAA;YACR,MAAM,SAAS,GACb,oBAAoB,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO;iBACvD,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAA;YAClC,IAAI,SAAS,IAAI,mCAAmC,EAAE,CAAC;gBACrD,IAAI,aAAa,EAAE,CAAC;oBAClB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAC7B,mCAAmC,CACpC,EAAE,CAAC;wBACF,aAAa,CAAC;4BACZ,SAAS;4BACT,MAAM,EAAE,oBAAoB;4BAC5B,eAAe,EAAE,CAAC,KAAK,GAAG,CAAC;yBAC5B,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC;wBACb,MAAM,EAAE,oBAAoB;qBAC7B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QAED,WAAW,CACT,IAAI,EACJ,OAAO,CAAC,GAAG,EAAE;YACX,MAAM,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;YAC3D,MAAM,SAAS,GACb,oBAAoB,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO;iBACvD,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAA;YAClC,IAAI,SAAS,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACpD,gBAAgB,CAAC;oBACf,SAAS;oBACT,MAAM,EAAE,oBAAoB;oBAC5B,eAAe,EAAE,oBAAoB;iBACtC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAC,CAAC,CAAA;AAEL,eAAe,SAAS,CAAA"}
@@ -1,11 +1,8 @@
1
1
  import { PluginContext } from 'molstar/lib/mol-plugin/context';
2
- export default function useProteinView({ url, data, showControls, }: {
3
- url?: string;
4
- data?: string;
2
+ export default function useProteinView({ showControls, }: {
5
3
  showControls: boolean;
6
4
  }): {
7
5
  parentRef: import("react").RefObject<HTMLDivElement>;
8
6
  error: unknown;
9
7
  plugin: PluginContext | undefined;
10
- seq: string;
11
8
  };
@@ -2,14 +2,10 @@ import { useState, useEffect, useRef } from 'react';
2
2
  import { createPluginUI } from 'molstar/lib/mol-plugin-ui';
3
3
  import { renderReact18 } from 'molstar/lib/mol-plugin-ui/react18';
4
4
  import { DefaultPluginUISpec } from 'molstar/lib/mol-plugin-ui/spec';
5
- // locals
6
- import { loadStructureFromURL } from './loadStructureFromURL';
7
- import { loadStructureFromData } from './loadStructureFromData';
8
- export default function useProteinView({ url, data, showControls, }) {
5
+ export default function useProteinView({ showControls, }) {
9
6
  const parentRef = useRef(null);
10
7
  const [plugin, setPlugin] = useState();
11
8
  const [error, setError] = useState();
12
- const [seq, setSeq] = useState('');
13
9
  useEffect(() => {
14
10
  let p;
15
11
  (async () => {
@@ -34,14 +30,6 @@ export default function useProteinView({ url, data, showControls, }) {
34
30
  });
35
31
  await p.initialized;
36
32
  setPlugin(p);
37
- if (url) {
38
- const { seq } = await loadStructureFromURL({ url, plugin: p });
39
- setSeq(seq);
40
- }
41
- else if (data) {
42
- const { seq } = await loadStructureFromData({ data, plugin: p });
43
- setSeq(seq);
44
- }
45
33
  }
46
34
  catch (e) {
47
35
  console.error(e);
@@ -51,7 +39,7 @@ export default function useProteinView({ url, data, showControls, }) {
51
39
  return () => {
52
40
  p?.unmount();
53
41
  };
54
- }, [url, data, showControls]);
55
- return { parentRef, error, plugin, seq };
42
+ }, [showControls]);
43
+ return { parentRef, error, plugin };
56
44
  }
57
45
  //# sourceMappingURL=useProteinView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProteinView.js","sourceRoot":"","sources":["../../src/ProteinView/useProteinView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,SAAS;AACT,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,GAAG,EACH,IAAI,EACJ,YAAY,GAKb;IACC,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAiB,CAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAA;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAA4B,CAE/B;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACvC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC,GAAG,MAAM,cAAc,CAAC;oBACvB,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE;wBACJ,GAAG,mBAAmB,EAAE;wBACxB,MAAM,EAAE;4BACN,OAAO,EAAE;gCACP,eAAe,EAAE,UAAU;gCAC3B,YAAY;6BACb;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,MAAM,CAAC,CAAC,WAAW,CAAA;gBACnB,SAAS,CAAC,CAAC,CAAC,CAAA;gBAEZ,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,oBAAoB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;oBAC9D,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBAChB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,qBAAqB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;oBAChE,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,QAAQ,CAAC,CAAC,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,CAAC,EAAE,OAAO,EAAE,CAAA;QACd,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;IAE7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AAC1C,CAAC"}
1
+ {"version":3,"file":"useProteinView.js","sourceRoot":"","sources":["../../src/ProteinView/useProteinView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAEpE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,YAAY,GAGb;IACC,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC9C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAAiB,CAAA;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAW,CAAA;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAA4B,CAE/B;QAAA,CAAC,KAAK,IAAI,EAAE;YACX,IAAI,CAAC;gBACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBACvC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;gBAC3B,CAAC,GAAG,MAAM,cAAc,CAAC;oBACvB,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,aAAa;oBACrB,IAAI,EAAE;wBACJ,GAAG,mBAAmB,EAAE;wBACxB,MAAM,EAAE;4BACN,OAAO,EAAE;gCACP,eAAe,EAAE,UAAU;gCAC3B,YAAY;6BACb;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,MAAM,CAAC,CAAC,WAAW,CAAA;gBACnB,SAAS,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChB,QAAQ,CAAC,CAAC,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,CAAC,EAAE,OAAO,EAAE,CAAA;QACd,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AACrC,CAAC"}
@@ -11,9 +11,9 @@ export declare function getMolstarStructureSelection({ structure, selectedResidu
11
11
  structure: Structure;
12
12
  selectedResidue: number;
13
13
  }): import("molstar/lib/mol-model/structure").StructureSelection;
14
- export declare function toStr(r: {
15
- structureSeqPos: number;
14
+ export declare function toStr({ chain, code, structureSeqPos, }: {
15
+ structureSeqPos?: number;
16
16
  code?: string;
17
17
  chain?: string;
18
18
  }): string;
19
- export declare function invertMap(arg: Record<number, number | undefined>): any;
19
+ export declare function invertMap(arg: Record<number, number>): Record<number, number>;