protvista-uniprot 3.0.0 → 3.0.7

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 (83) hide show
  1. package/dist/protvista-uniprot.mjs +368 -0
  2. package/dist/{protvista-uniprot.js.map → protvista-uniprot.mjs.map} +1 -1
  3. package/dist/types/index.d.ts +7 -0
  4. package/package.json +19 -11
  5. package/src/index.ts +6 -17
  6. package/dist/es/__spec__/filter-config.spec.js +0 -123
  7. package/dist/es/__spec__/filter-config.spec.js.map +0 -1
  8. package/dist/es/adapters/__tests__/__mocks__/uniprotkb-entry-data.js +0 -75
  9. package/dist/es/adapters/__tests__/__mocks__/uniprotkb-entry-data.js.map +0 -1
  10. package/dist/es/adapters/__tests__/structure-adapter.spec.js +0 -14
  11. package/dist/es/adapters/__tests__/structure-adapter.spec.js.map +0 -1
  12. package/dist/es/adapters/alphafold-confidence-adapter.js +0 -26
  13. package/dist/es/adapters/alphafold-confidence-adapter.js.map +0 -1
  14. package/dist/es/adapters/alphamissense-heatmap-adapter.js +0 -36
  15. package/dist/es/adapters/alphamissense-heatmap-adapter.js.map +0 -1
  16. package/dist/es/adapters/alphamissense-pathogenicity-adapter.js +0 -68
  17. package/dist/es/adapters/alphamissense-pathogenicity-adapter.js.map +0 -1
  18. package/dist/es/adapters/config/evidence.js +0 -101
  19. package/dist/es/adapters/config/evidence.js.map +0 -1
  20. package/dist/es/adapters/feature-adapter.js +0 -18
  21. package/dist/es/adapters/feature-adapter.js.map +0 -1
  22. package/dist/es/adapters/interpro-adapter.js +0 -60
  23. package/dist/es/adapters/interpro-adapter.js.map +0 -1
  24. package/dist/es/adapters/proteomics-adapter.js +0 -66
  25. package/dist/es/adapters/proteomics-adapter.js.map +0 -1
  26. package/dist/es/adapters/ptm-exchange-adapter.js +0 -101
  27. package/dist/es/adapters/ptm-exchange-adapter.js.map +0 -1
  28. package/dist/es/adapters/structure-adapter.js +0 -89
  29. package/dist/es/adapters/structure-adapter.js.map +0 -1
  30. package/dist/es/adapters/types/alphafold.js +0 -2
  31. package/dist/es/adapters/types/alphafold.js.map +0 -1
  32. package/dist/es/adapters/variation-adapter.js +0 -31
  33. package/dist/es/adapters/variation-adapter.js.map +0 -1
  34. package/dist/es/adapters/variation-graph-adapter.js +0 -53
  35. package/dist/es/adapters/variation-graph-adapter.js.map +0 -1
  36. package/dist/es/config.json +0 -811
  37. package/dist/es/filter-config.js +0 -157
  38. package/dist/es/filter-config.js.map +0 -1
  39. package/dist/es/index.d.ts +0 -7
  40. package/dist/es/index.js +0 -8
  41. package/dist/es/index.js.map +0 -1
  42. package/dist/es/protvista-uniprot-structure.js +0 -379
  43. package/dist/es/protvista-uniprot-structure.js.map +0 -1
  44. package/dist/es/protvista-uniprot.js +0 -594
  45. package/dist/es/protvista-uniprot.js.map +0 -1
  46. package/dist/es/styles/loader-styles.js +0 -20
  47. package/dist/es/styles/loader-styles.js.map +0 -1
  48. package/dist/es/styles/protvista-styles.js +0 -89
  49. package/dist/es/styles/protvista-styles.js.map +0 -1
  50. package/dist/es/tooltips/featureTooltip.js +0 -160
  51. package/dist/es/tooltips/featureTooltip.js.map +0 -1
  52. package/dist/es/tooltips/structureTooltip.js +0 -15
  53. package/dist/es/tooltips/structureTooltip.js.map +0 -1
  54. package/dist/es/tooltips/variationTooltip.js +0 -82
  55. package/dist/es/tooltips/variationTooltip.js.map +0 -1
  56. package/dist/es/utils.js +0 -28
  57. package/dist/es/utils.js.map +0 -1
  58. package/dist/protvista-uniprot.js +0 -368
  59. /package/dist/{protvista-uniprot.js.LICENSE.txt → protvista-uniprot.mjs.LICENSE.txt} +0 -0
  60. /package/dist/{es → types}/__spec__/filter-config.spec.d.ts +0 -0
  61. /package/dist/{es → types}/adapters/__tests__/__mocks__/uniprotkb-entry-data.d.ts +0 -0
  62. /package/dist/{es → types}/adapters/__tests__/structure-adapter.spec.d.ts +0 -0
  63. /package/dist/{es → types}/adapters/alphafold-confidence-adapter.d.ts +0 -0
  64. /package/dist/{es → types}/adapters/alphamissense-heatmap-adapter.d.ts +0 -0
  65. /package/dist/{es → types}/adapters/alphamissense-pathogenicity-adapter.d.ts +0 -0
  66. /package/dist/{es → types}/adapters/config/evidence.d.ts +0 -0
  67. /package/dist/{es → types}/adapters/feature-adapter.d.ts +0 -0
  68. /package/dist/{es → types}/adapters/interpro-adapter.d.ts +0 -0
  69. /package/dist/{es → types}/adapters/proteomics-adapter.d.ts +0 -0
  70. /package/dist/{es → types}/adapters/ptm-exchange-adapter.d.ts +0 -0
  71. /package/dist/{es → types}/adapters/structure-adapter.d.ts +0 -0
  72. /package/dist/{es → types}/adapters/types/alphafold.d.ts +0 -0
  73. /package/dist/{es → types}/adapters/variation-adapter.d.ts +0 -0
  74. /package/dist/{es → types}/adapters/variation-graph-adapter.d.ts +0 -0
  75. /package/dist/{es → types}/filter-config.d.ts +0 -0
  76. /package/dist/{es → types}/protvista-uniprot-structure.d.ts +0 -0
  77. /package/dist/{es → types}/protvista-uniprot.d.ts +0 -0
  78. /package/dist/{es → types}/styles/loader-styles.d.ts +0 -0
  79. /package/dist/{es → types}/styles/protvista-styles.d.ts +0 -0
  80. /package/dist/{es → types}/tooltips/featureTooltip.d.ts +0 -0
  81. /package/dist/{es → types}/tooltips/structureTooltip.d.ts +0 -0
  82. /package/dist/{es → types}/tooltips/variationTooltip.d.ts +0 -0
  83. /package/dist/{es → types}/utils.d.ts +0 -0
@@ -1,157 +0,0 @@
1
- const scaleColors = {
2
- UPDiseaseColor: '#990000',
3
- UPNonDiseaseColor: '#99cc00',
4
- predictedColor: '#4c8acd',
5
- othersColor: '#009e73',
6
- };
7
- const consequences = {
8
- uncertain: [/uncertain/i, /conflicting/i, /unclassified/i, /risk factor/i],
9
- };
10
- const significanceMatches = (clinicalSignificance, values) => clinicalSignificance.some(({ type }) => {
11
- return values.some((rx) => rx.test(type));
12
- });
13
- export const getFilteredVariants = (variants, callbackFilter) => variants.map((variant) => {
14
- const matchingVariants = variant.variants.filter((variantPos) => callbackFilter(variantPos));
15
- return {
16
- ...variant,
17
- variants: [...matchingVariants],
18
- };
19
- });
20
- const filterPredicates = {
21
- disease: (variantPos) => { var _a; return (_a = variantPos.association) === null || _a === void 0 ? void 0 : _a.some((association) => association.disease); },
22
- predicted: (variantPos) => variantPos.hasPredictions,
23
- nonDisease: (variantPos) => {
24
- var _a;
25
- return (_a = variantPos.association) === null || _a === void 0 ? void 0 : _a.some((association) => association.disease === false);
26
- },
27
- uncertain: (variantPos) => (typeof variantPos.clinicalSignificances === 'undefined' &&
28
- !variantPos.hasPredictions) ||
29
- (variantPos.clinicalSignificances &&
30
- significanceMatches(variantPos.clinicalSignificances, consequences.uncertain)),
31
- UniProt: (variantPos) => variantPos.xrefNames &&
32
- (variantPos.xrefNames.includes('uniprot') ||
33
- variantPos.xrefNames.includes('UniProt')),
34
- ClinVar: (variantPos) => variantPos.xrefNames &&
35
- (variantPos.xrefNames.includes('ClinVar') ||
36
- variantPos.xrefNames.includes('clinvar')),
37
- LSS: (variantPos) => variantPos.sourceType === 'large_scale_study' ||
38
- variantPos.sourceType === 'mixed',
39
- };
40
- const filterConfig = [
41
- {
42
- name: 'disease',
43
- type: {
44
- name: 'consequence',
45
- text: 'Filter Consequence',
46
- },
47
- options: {
48
- label: 'Likely pathogenic or pathogenic',
49
- color: scaleColors.UPDiseaseColor,
50
- },
51
- filterPredicate: filterPredicates['disease'],
52
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['disease']),
53
- },
54
- {
55
- name: 'predicted',
56
- type: {
57
- name: 'consequence',
58
- text: 'Filter Consequence',
59
- },
60
- options: {
61
- label: 'Predicted consequence',
62
- color: scaleColors.predictedColor,
63
- },
64
- filterPredicate: filterPredicates['predicted'],
65
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['predicted']),
66
- },
67
- {
68
- name: 'nonDisease',
69
- type: {
70
- name: 'consequence',
71
- text: 'Filter Consequence',
72
- },
73
- options: {
74
- label: 'Likely benign or benign',
75
- color: scaleColors.UPNonDiseaseColor,
76
- },
77
- filterPredicate: filterPredicates['nonDisease'],
78
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['nonDisease']),
79
- },
80
- {
81
- name: 'uncertain',
82
- type: {
83
- name: 'consequence',
84
- text: 'Filter Consequence',
85
- },
86
- options: {
87
- label: 'Uncertain significance',
88
- color: scaleColors.othersColor,
89
- },
90
- filterPredicate: filterPredicates['uncertain'],
91
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['uncertain']),
92
- },
93
- {
94
- name: 'UniProt',
95
- type: {
96
- name: 'provenance',
97
- text: 'Filter Provenance',
98
- },
99
- options: {
100
- label: 'UniProt reviewed',
101
- color: '#9f9f9f',
102
- },
103
- filterPredicate: filterPredicates['UniProt'],
104
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['UniProt']),
105
- },
106
- {
107
- name: 'ClinVar',
108
- type: {
109
- name: 'provenance',
110
- text: 'Filter Provenance',
111
- },
112
- options: {
113
- label: 'ClinVar',
114
- color: '#9f9f9f',
115
- },
116
- filterPredicate: filterPredicates['ClinVar'],
117
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['ClinVar']),
118
- },
119
- {
120
- name: 'LSS',
121
- type: {
122
- name: 'provenance',
123
- text: 'Filter Provenance',
124
- },
125
- options: {
126
- label: 'Large scale studies',
127
- color: '#9f9f9f',
128
- },
129
- filterPredicate: filterPredicates['LSS'],
130
- filterData: (variants) => getFilteredVariants(variants, filterPredicates['LSS']),
131
- },
132
- ];
133
- const countVariantsForFilter = (filterName, variant) => {
134
- const variantWrapper = [{ variants: [variant] }];
135
- const filter = filterConfig.find((filter) => filter.name === filterName);
136
- if (filter) {
137
- return filter.filterData(variantWrapper)[0].variants.length > 0;
138
- }
139
- return false;
140
- };
141
- export const colorConfig = (variant) => {
142
- if (countVariantsForFilter('disease', variant)) {
143
- return scaleColors.UPDiseaseColor;
144
- }
145
- else if (countVariantsForFilter('nonDisease', variant)) {
146
- return scaleColors.UPNonDiseaseColor;
147
- }
148
- else if (countVariantsForFilter('uncertain', variant)) {
149
- return scaleColors.othersColor;
150
- }
151
- else if (countVariantsForFilter('predicted', variant)) {
152
- return scaleColors.predictedColor;
153
- }
154
- return scaleColors.othersColor;
155
- };
156
- export default filterConfig;
157
- //# sourceMappingURL=filter-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"filter-config.js","sourceRoot":"","sources":["../../src/filter-config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import ProtvistaUniprot from './protvista-uniprot';
2
- import ProtvistaUniprotStructure from './protvista-uniprot-structure';
3
- import filterConfig, { colorConfig } from './filter-config';
4
- import getFeatureTooltip from './tooltips/featureTooltip';
5
- import getStructureTooltip from './tooltips/structureTooltip';
6
- import getVariationTooltip from './tooltips/variationTooltip';
7
- export { ProtvistaUniprot as default, ProtvistaUniprotStructure, filterConfig, colorConfig, getFeatureTooltip, getStructureTooltip, getVariationTooltip, };
package/dist/es/index.js DELETED
@@ -1,8 +0,0 @@
1
- import ProtvistaUniprot from './protvista-uniprot';
2
- import ProtvistaUniprotStructure from './protvista-uniprot-structure';
3
- import filterConfig, { colorConfig } from './filter-config';
4
- import getFeatureTooltip from './tooltips/featureTooltip';
5
- import getStructureTooltip from './tooltips/structureTooltip';
6
- import getVariationTooltip from './tooltips/variationTooltip';
7
- export { ProtvistaUniprot as default, ProtvistaUniprotStructure, filterConfig, colorConfig, getFeatureTooltip, getStructureTooltip, getVariationTooltip, };
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,yBAAyB,MAAM,+BAA+B,CAAC;AAEtE,OAAO,YAAY,EAAE,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,iBAAiB,MAAM,2BAA2B,CAAC;AAC1D,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAC9D,OAAO,mBAAmB,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACL,gBAAgB,IAAI,OAAO,EAC3B,yBAAyB,EACzB,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,CAAC"}
@@ -1,379 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { LitElement, html, svg, css } from 'lit';
8
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
- import { customElement } from 'lit/decorators.js';
10
- import { unsafeHTML } from 'lit/directives/unsafe-html.js';
11
- import NightingaleStructure from '@nightingale-elements/nightingale-structure';
12
- import ProtvistaDatatable from 'protvista-datatable';
13
- import { fetchAll, loadComponent } from './utils';
14
- import loaderIcon from './icons/spinner.svg';
15
- import downloadIcon from './icons/download.svg';
16
- import loaderStyles from './styles/loader-styles';
17
- const PDBLinks = [
18
- { name: 'PDBe', link: 'https://www.ebi.ac.uk/pdbe-srv/view/entry/' },
19
- { name: 'RCSB-PDB', link: 'https://www.rcsb.org/structure/' },
20
- { name: 'PDBj', link: 'https://pdbj.org/mine/summary/' },
21
- { name: 'PDBsum', link: 'https://www.ebi.ac.uk/pdbsum/' },
22
- ];
23
- const alphaFoldLink = 'https://alphafold.ebi.ac.uk/entry/';
24
- const foldseekLink = `https://search.foldseek.com/search`;
25
- const processPDBData = (data) => data.dbReferences
26
- .filter((xref) => xref.type === 'PDB')
27
- .sort((refA, refB) => refA.id.localeCompare(refB.id))
28
- .map(({ id, properties }) => {
29
- if (!properties) {
30
- return;
31
- }
32
- const { chains, resolution, method } = properties;
33
- let chain;
34
- let positions;
35
- if (chains) {
36
- const tokens = chains.split('=');
37
- if (tokens.length === 2) {
38
- [chain, positions] = tokens;
39
- }
40
- }
41
- const output = {
42
- id,
43
- source: 'PDB',
44
- method,
45
- resolution: !resolution || resolution === '-' ? undefined : resolution,
46
- downloadLink: `https://www.ebi.ac.uk/pdbe/entry-files/download/pdb${id.toLowerCase()}.ent`,
47
- chain,
48
- positions,
49
- protvistaFeatureId: id,
50
- };
51
- return output;
52
- })
53
- .filter((transformedItem) => transformedItem !== undefined);
54
- const processAFData = (data) => data.map((d) => ({
55
- id: d.entryId,
56
- source: 'AlphaFold',
57
- method: 'Predicted',
58
- positions: `${d.uniprotStart}-${d.uniprotEnd}`,
59
- protvistaFeatureId: d.entryId,
60
- downloadLink: d.pdbUrl,
61
- }));
62
- const AFMetaInfo = html `
63
- <strong>Model Confidence:</strong>
64
- <ul class="no-bullet">
65
- <li>
66
- <span class="af-legend" style="background-color: rgb(0, 83, 214)"></span>
67
- Very high (pLDDT > 90)
68
- </li>
69
- <li>
70
- <span
71
- class="af-legend"
72
- style="background-color: rgb(101, 203, 243)"
73
- ></span>
74
- Confident (90 > pLDDT > 70)
75
- </li>
76
- <li>
77
- <span class="af-legend" style="background-color:rgb(255, 219, 19)"></span>
78
- Low (70 > pLDDT > 50)
79
- </li>
80
- <li>
81
- <span class="af-legend" style="background-color:rgb(255, 125, 69)"></span>
82
- Very low (pLDDT < 50)
83
- </li>
84
- </ul>
85
- <p class="small">
86
- AlphaFold produces a per-residue confidence score (pLDDT) between 0 and 100.
87
- Some regions with low pLDDT may be unstructured in isolation.
88
- </p>
89
- `;
90
- const AMMetaInfo = html `<strong>Model Pathogenicity:</strong>
91
- <ul class="no-bullet">
92
- <li>
93
- <span class="af-legend" style="background-color: rgb(154, 19, 26)"></span>
94
- Likely pathogenic (score > 0.564)
95
- </li>
96
- <li>
97
- <span
98
- class="af-legend"
99
- style="background-color: rgb(168, 169, 173)"
100
- ></span>
101
- Uncertain (0.564 >= score >= 0.34)
102
- </li>
103
- <li>
104
- <span class="af-legend" style="background-color: rgb(61, 84, 147)"></span>
105
- Likely benign (score < 0.34)
106
- </li>
107
- </ul>
108
- <p class="small">
109
- The displayed colour for each residue is the average AlphaMissense
110
- pathogenicity score across all possible amino acid substitutions at that
111
- position.
112
- </p>`;
113
- const foldseekURL = (accession, sourceDB) => {
114
- return html `<a
115
- href="${foldseekLink}?accession=${accession}&source=${sourceDB}"
116
- >Foldseek</a
117
- >`;
118
- };
119
- const styleId = 'protvista-styles';
120
- let ProtvistaUniprotStructure = class ProtvistaUniprotStructure extends LitElement {
121
- constructor() {
122
- super();
123
- loadComponent('nightingale-structure', NightingaleStructure);
124
- loadComponent('protvista-datatable', ProtvistaDatatable);
125
- this.loading = true;
126
- this.onTableRowClick = this.onTableRowClick.bind(this);
127
- this.addStyles();
128
- this.colorTheme = 'alphafold';
129
- }
130
- static get properties() {
131
- return {
132
- accession: { type: String },
133
- structureId: { type: String },
134
- data: { type: Object },
135
- loading: { type: Boolean },
136
- colorTheme: { type: String },
137
- };
138
- }
139
- async connectedCallback() {
140
- super.connectedCallback();
141
- if (!this.accession)
142
- return;
143
- // https://www.ebi.ac.uk/pdbe/api/mappings/best_structures/${this.accession}
144
- const pdbUrl = `https://www.ebi.ac.uk/proteins/api/proteins/${this.accession}`;
145
- const alphaFoldURl = `https://alphafold.ebi.ac.uk/api/prediction/${this.accession}`;
146
- const rawData = await fetchAll([pdbUrl, alphaFoldURl]);
147
- this.loading = false;
148
- // TODO: return if no data at all
149
- // if (!payload) return;
150
- const pdbData = processPDBData(rawData[pdbUrl] || []);
151
- const afData = processAFData(rawData[alphaFoldURl] || []);
152
- const data = [...pdbData, ...afData];
153
- if (!data || !data.length)
154
- return;
155
- this.data = data;
156
- }
157
- disconnectedCallback() {
158
- this.removeStyles();
159
- }
160
- updated() {
161
- var _a;
162
- const protvistaDatatableElt = this.querySelector('protvista-datatable');
163
- if (!(protvistaDatatableElt === null || protvistaDatatableElt === void 0 ? void 0 : protvistaDatatableElt.selectedid) && ((_a = this.data) === null || _a === void 0 ? void 0 : _a[0])) {
164
- // Select the first element in the table
165
- this.onTableRowClick({ id: this.data[0].id });
166
- protvistaDatatableElt.selectedid = this.structureId;
167
- }
168
- }
169
- addStyles() {
170
- var _a;
171
- // We are not using static get styles()
172
- // as we are not using the shadowDOM
173
- // because of Mol*
174
- if (!document.getElementById(styleId)) {
175
- const styleTag = document.createElement('style');
176
- styleTag.id = styleId;
177
- styleTag.innerHTML = `
178
- ${loaderStyles.toString()}
179
- ${this.cssStyle}
180
- `;
181
- (_a = document.querySelector('head')) === null || _a === void 0 ? void 0 : _a.append(styleTag);
182
- }
183
- }
184
- removeStyles() {
185
- const styleTag = document.getElementById(styleId);
186
- if (styleTag) {
187
- styleTag.remove();
188
- }
189
- }
190
- onTableRowClick({ id }) {
191
- this.structureId = id;
192
- if (this.structureId.startsWith('AF-')) {
193
- this.metaInfo = AFMetaInfo;
194
- }
195
- else {
196
- this.metaInfo = undefined;
197
- }
198
- }
199
- get cssStyle() {
200
- return css `
201
- .protvista-uniprot-structure {
202
- line-height: normal;
203
- }
204
- .theme-selection {
205
- padding-bottom: 1rem;
206
- }
207
- .protvista-uniprot-structure__structure {
208
- display: flex;
209
- }
210
- .protvista-uniprot-structure__meta {
211
- flex: 1;
212
- padding: 1rem;
213
- }
214
- .protvista-uniprot-structure__structure nightingale-structure {
215
- z-index: 40000;
216
- width: 100%;
217
- flex: 4;
218
- }
219
- .protvista-uniprot-structure__meta .small {
220
- font-size: 0.75rem;
221
- }
222
- .protvista-uniprot-structure__meta .no-bullet {
223
- list-style: none;
224
- padding: 0;
225
- margin: 0;
226
- }
227
- .protvista-uniprot-structure__meta .no-bullet li {
228
- padding: 0;
229
- margin: 0.5rem 0;
230
- }
231
- .protvista-uniprot-structure__meta .af-legend::before {
232
- content: '';
233
- margin: 0;
234
- display: inline-block;
235
- width: 20px;
236
- height: 16px;
237
- }
238
- .download-link svg {
239
- width: 1rem;
240
- }
241
- `;
242
- }
243
- /**
244
- * we need to use the light DOM.
245
- * */
246
- createRenderRoot() {
247
- return this;
248
- }
249
- toggleColorTheme(e) {
250
- this.colorTheme = e.target.value;
251
- if (e.target.value === 'alphafold') {
252
- this.metaInfo = AFMetaInfo;
253
- }
254
- else {
255
- this.metaInfo = AMMetaInfo;
256
- }
257
- }
258
- render() {
259
- var _a;
260
- return html `
261
- <div class="protvista-uniprot-structure">
262
- <div class="protvista-uniprot-structure__structure">
263
- ${this.metaInfo
264
- ? html ` <div class="protvista-uniprot-structure__meta">
265
- <div class="theme-selection">
266
- Select color scale <br />
267
- <input
268
- type="radio"
269
- id="alphafold"
270
- name="colorScheme"
271
- value="alphafold"
272
- @click=${(e) => this.toggleColorTheme(e)}
273
- checked
274
- />
275
- <label for="alphafold">Confidence</label><br />
276
- <input
277
- type="radio"
278
- id="alphamissense"
279
- name="colorScheme"
280
- value="alphamissense"
281
- @click=${(e) => this.toggleColorTheme(e)}
282
- />
283
- <label for="alphamissense">Pathogenecity</label><br />
284
- </div>
285
- ${this.metaInfo}
286
- </div>`
287
- : html ``}
288
- ${this.structureId
289
- ? html `<nightingale-structure
290
- structure-id=${this.structureId}
291
- protein-accession=${this.accession}
292
- color-theme=${this.colorTheme}
293
- ></nightingale-structure>`
294
- : html ``}
295
- </div>
296
- <div class="protvista-uniprot-structure__table">
297
- ${this.data && this.data.length
298
- ? html `<protvista-datatable noScrollToRow noDeselect filter-scroll>
299
- <table>
300
- <thead>
301
- <tr>
302
- <th data-filter="source">Source</th>
303
- <th>Identifier</th>
304
- <th data-filter="method">Method</th>
305
- <th>Resolution</th>
306
- <th>Chain</th>
307
- <th>Positions</th>
308
- <th>Links</th>
309
- <th><!--Download--></th>
310
- </tr>
311
- </thead>
312
- <tbody>
313
- ${(_a = this.data) === null || _a === void 0 ? void 0 : _a.map(({ source, id, method, resolution, chain, positions, downloadLink, }) => html `<tr
314
- data-id="${id}"
315
- @click="${() => this.onTableRowClick({ id })}"
316
- >
317
- <td data-filter="source" data-filter-value="${source}">
318
- <strong>${source}</strong>
319
- </td>
320
- <td>${id}</td>
321
- <td data-filter="method" data-filter-value="${method}">
322
- ${method}
323
- </td>
324
- <td>
325
- ${resolution ? resolution.replace('A', 'Å') : ''}
326
- </td>
327
- <td>${chain || ''}</td>
328
- <td>${positions || ''}</td>
329
- <td>
330
- ${source === 'PDB'
331
- ? html `
332
- ${PDBLinks.map((pdbLink) => {
333
- return html `
334
- <a href="${pdbLink.link}${id}"
335
- >${pdbLink.name}</a
336
- >
337
- `;
338
- }).reduce((prev, curr) => html ` ${prev} · ${curr} `)}
339
- `
340
- : html `<a href="${alphaFoldLink}${this.accession}"
341
- >AlphaFold</a
342
- >`}
343
- </td>
344
- <td>
345
- ${downloadLink
346
- ? html `<a
347
- href="${downloadLink}"
348
- class="download-link"
349
- >${svg `${unsafeHTML(downloadIcon)}`}</a
350
- >
351
- ·
352
- ${foldseekURL(source === 'PDB' ? id : this.accession, source === 'PDB' ? 'PDB' : 'AlphaFoldDB')}`
353
- : ''}
354
- </td>
355
- </tr>`)}
356
- </tbody>
357
- </table>
358
- </protvista-datatable>`
359
- : html ``}
360
- ${this.loading
361
- ? html `<div class="protvista-loader">
362
- ${svg `${unsafeHTML(loaderIcon)}`}
363
- </div>`
364
- : html ``}
365
- ${!this.data && !this.loading
366
- ? html `<div class="protvista-no-results">
367
- No structure information available for ${this.accession}
368
- </div>`
369
- : html ``}
370
- </div>
371
- </div>
372
- `;
373
- }
374
- };
375
- ProtvistaUniprotStructure = __decorate([
376
- customElement('protvista-uniprot-structure')
377
- ], ProtvistaUniprotStructure);
378
- export default ProtvistaUniprotStructure;
379
- //# sourceMappingURL=protvista-uniprot-structure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protvista-uniprot-structure.js","sourceRoot":"","sources":["../../src/protvista-uniprot-structure.ts"],"names":[],"mappings":"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"}