From 175e0091523a9f4ae3e953badef91d2e88d6a1f9 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Tue, 18 Jun 2019 13:01:38 +0200 Subject: [PATCH] proteopedia-wrapper: fix assembly loading --- src/examples/proteopedia-wrapper/index.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/examples/proteopedia-wrapper/index.ts b/src/examples/proteopedia-wrapper/index.ts index d444fed9d..0a5bf878b 100644 --- a/src/examples/proteopedia-wrapper/index.ts +++ b/src/examples/proteopedia-wrapper/index.ts @@ -81,7 +81,7 @@ class MolStarProteopediaWrapper { return b.apply(StateTransforms.Data.Download, { url, isBinary: false }) } - private model(b: StateBuilder.To<PSO.Data.Binary | PSO.Data.String>, format: SupportedFormats, assemblyId: string) { + private model(b: StateBuilder.To<PSO.Data.Binary | PSO.Data.String>, format: SupportedFormats) { const parsed = format === 'cif' ? b.apply(StateTransforms.Data.ParseCif).apply(StateTransforms.Model.TrajectoryFromMmCif) : b.apply(StateTransforms.Model.TrajectoryFromPDB); @@ -203,14 +203,17 @@ class MolStarProteopediaWrapper { if (loadType === 'full') { await PluginCommands.State.RemoveObject.dispatch(this.plugin, { state, ref: state.tree.root.ref }); - const modelTree = this.model(this.download(state.build().toRoot(), url), format, assemblyId); + const modelTree = this.model(this.download(state.build().toRoot(), url), format); await this.applyState(modelTree); const info = await this.doInfo(true); - const structureTree = this.structure((assemblyId === 'preferred' && info && info.preferredAssemblyId) || assemblyId); + const asmId = (assemblyId === 'preferred' && info && info.preferredAssemblyId) || assemblyId; + const structureTree = this.structure(asmId); await this.applyState(structureTree); } else { const tree = state.build(); - tree.to(StateElements.Assembly).update(StateTransforms.Model.StructureAssemblyFromModel, p => ({ ...p, id: assemblyId || 'deposited' })); + const info = await this.doInfo(true); + const asmId = (assemblyId === 'preferred' && info && info.preferredAssemblyId) || assemblyId; + tree.to(StateElements.Assembly).update(StateTransforms.Model.StructureAssemblyFromModel, p => ({ ...p, id: asmId })); await this.applyState(tree); } -- GitLab