From ce2544b9f38af458a619ed2d20d826c16889d7e2 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alexander.rose@weirdbyte.de> Date: Sat, 18 Dec 2021 14:40:45 -0800 Subject: [PATCH] add model-archive viewer helpers --- CHANGELOG.md | 7 +++++-- src/apps/viewer/index.html | 3 +++ src/apps/viewer/index.ts | 13 +++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ad20a0e6..1f834fc28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,11 @@ Note that since we don't clearly distinguish between a public and private interf - Fix flickering during marking with camera at rest - Enable ``aromaticBonds`` in structure representations by default - Add ``PluginConfig.Structure.DefaultRepresentationPreset`` -- Add ModelArchive schema extensions (e.g., AlphaFold uses it for the pLDDT score) -- Add ModelArchive option in DownloadStructure action +- Add ModelArchive support + - schema extensions (e.g., AlphaFold uses it for the pLDDT score) + - ModelArchive option in DownloadStructure action + - ``model-archive`` GET parameter for Viewer app + - ``Viewer.loadModelArchive`` method - Improve support for loading AlphaFold structures - Automatic coloring by pLDDT - AlphaFold DB option in DownloadStructure action diff --git a/src/apps/viewer/index.html b/src/apps/viewer/index.html index 57bd5d873..6de419c98 100644 --- a/src/apps/viewer/index.html +++ b/src/apps/viewer/index.html @@ -93,6 +93,9 @@ var afdb = getParam('afdb', '[^&]+').trim(); if (afdb) viewer.loadAfdb(afdb); + + var modelArchive = getParam('model-archive', '[^&]+').trim(); + if (modelArchive) viewer.loadModelArchive(modelArchive); </script> <!-- __MOLSTAR_ANALYTICS__ --> </body> diff --git a/src/apps/viewer/index.ts b/src/apps/viewer/index.ts index bac1aa6b2..0ec98c510 100644 --- a/src/apps/viewer/index.ts +++ b/src/apps/viewer/index.ts @@ -274,6 +274,19 @@ export class Viewer { })); } + loadModelArchive(id: string) { + const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin); + return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, { + source: { + name: 'modelarchive' as const, + params: { + id, + options: params.source.params.options, + } + } + })); + } + /** * @example Load X-ray density from volume server viewer.loadVolumeFromUrl({ -- GitLab