diff --git a/src/examples/proteopedia-wrapper/index.ts b/src/examples/proteopedia-wrapper/index.ts index d444fed9d4c138a0488ff63cb1d0a8cd19dc1b15..0a5bf878bf5df2496998accfca21030b2edb0503 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); }