diff --git a/src/components/ProteinStructureView.vue b/src/components/ProteinStructureView.vue index 1c7c883a..8d1b9106 100644 --- a/src/components/ProteinStructureView.vue +++ b/src/components/ProteinStructureView.vue @@ -37,6 +37,7 @@ import 'pdbe-molstar/build/pdbe-molstar-light.css' import _ from 'lodash' import {watch, ref} from 'vue' +import config from '@/config' import useScopedId from '@/composables/scoped-id' export default { @@ -242,12 +243,34 @@ export default { this.$emit('hoveredOverResidue', e.eventData) }, - render: function () { + render: async function () { if (this.selectedAlphaFold) { + let alphafoldCifUrl + try { + const response = await axios.get(`${config.apiBaseUrl}/alphafold-files/version`) + const alphafoldFilesVersion = response.data.version + alphafoldCifUrl = `https://alphafold.ebi.ac.uk/files/AF-${this.selectedAlphaFold.id}-F1-model_${alphafoldFilesVersion}.cif` + } catch (error) { + this.$toast.add({severity: 'error', summary: 'Error', detail: 'Failed to fetch AlphaFold version'}) + return + } + + // verify that the alphafoldCifUrl exists by verifying 200 or 304 status + try { + const response = await fetch(alphafoldCifUrl, { method: 'HEAD' }) + if (response.status !== 200 && response.status !== 304) { + this.$toast.add({severity: 'error', summary: 'Error', detail: 'Failed to fetch AlphaFold structure'}) + return + } + } catch (error) { + this.$toast.add({severity: 'error', summary: 'Error', detail: 'Failed to fetch AlphaFold structure'}) + return + } + const viewerInstance = new PDBeMolstarPlugin() const options = { customData: { - url: `https://alphafold.ebi.ac.uk/files/AF-${this.selectedAlphaFold.id}-F1-model_v6.cif`, + url: alphafoldCifUrl, format: 'cif' }, /** This applies AlphaFold confidence score colouring theme for AlphaFold model */ diff --git a/src/components/screens/DashboardView.vue b/src/components/screens/DashboardView.vue index 779626d9..b8ab57b8 100644 --- a/src/components/screens/DashboardView.vue +++ b/src/components/screens/DashboardView.vue @@ -100,7 +100,7 @@ export default { } } ) - this.scoreSets = response.data || [] + this.scoreSets = response.data?.scoreSets || [] // reset published score sets search results when using search bar this.publishedScoreSets = [] this.unpublishedScoreSets = [] diff --git a/src/components/screens/PublicationIdentifierView.vue b/src/components/screens/PublicationIdentifierView.vue index d3c3f456..e0b307cf 100644 --- a/src/components/screens/PublicationIdentifierView.vue +++ b/src/components/screens/PublicationIdentifierView.vue @@ -131,7 +131,7 @@ export default { } ) // TODO (#130) catch errors in response - this.scoreSets = response.data || [] + this.scoreSets = response.data?.scoreSets || [] // reset published score sets search results when using search bar this.publishedScoresets = [] diff --git a/src/components/screens/ScoreSetCreator.vue b/src/components/screens/ScoreSetCreator.vue index 64ce08f3..527463aa 100644 --- a/src/components/screens/ScoreSetCreator.vue +++ b/src/components/screens/ScoreSetCreator.vue @@ -2539,7 +2539,7 @@ export default { } ) // TODO (#130) catch errors in response - return response.data || [] + return response.data?.scoreSets || [] } catch (err) { console.log(`Error while loading search results")`, err) return [] diff --git a/src/components/screens/ScoreSetEditor.vue b/src/components/screens/ScoreSetEditor.vue index ce93dcec..2fd3f527 100644 --- a/src/components/screens/ScoreSetEditor.vue +++ b/src/components/screens/ScoreSetEditor.vue @@ -1753,7 +1753,7 @@ export default { } ) // TODO (#130) catch errors in response - return response.data || [] + return response.data?.scoreSets || [] } catch (err) { console.log(`Error while loading search results")`, err) return [] diff --git a/src/components/screens/SearchVariantsScreen.vue b/src/components/screens/SearchVariantsScreen.vue index a2894579..a4e34788 100644 --- a/src/components/screens/SearchVariantsScreen.vue +++ b/src/components/screens/SearchVariantsScreen.vue @@ -19,22 +19,30 @@ with ACMG/AMP variant classification guidelines. MaveMD currently contains 438,318 variant effect measurements mapped to the human genome from 74 MAVE datasets spanning 32 disease-associated genes. -
+
Search MaveDB for human gene variants
+ - +
+
+ +
+
+

+ Examples of supported searches: +

    +
  • + {{ option.name }} + + +
  • +
+

+
Search MaveDB for human gene variants
@@ -91,8 +119,8 @@
- Click here to return to HGVS search: - + Click here to return to standard search: +
@@ -106,16 +134,6 @@ v-if="!searchResultsVisible" :class="['mavedb-expander', ...(guideExpanded ? ['mavedb-expander-expanded'] : [])]" > -

- Try searching for variants using HGVS strings like - ENST00000473961.6:c.-19-2A>T - and - NP_000242.1:p.Asn566Thr. MaveDB supports a variety of HGVS formats for searching. Or browse these curated data sets: -

@@ -152,7 +170,7 @@
Gene
-
+