diff --git a/src/examples/proteopedia-wrapper/index.html b/src/examples/proteopedia-wrapper/index.html index 5fd7d7bbc083c8f9e1637603fd524e2021e13a8d..632496100c0c3df2f7d6238dbfbd8f84da98f45f 100644 --- a/src/examples/proteopedia-wrapper/index.html +++ b/src/examples/proteopedia-wrapper/index.html @@ -149,7 +149,8 @@ addSeparator(); addHeader('Misc'); - addControl('Apply Evo Cons', () => PluginWrapper.coloring.evolutionaryConservation()); + addControl('Apply Evo Cons Style', () => PluginWrapper.coloring.evolutionaryConservation()); + addControl('Apply Evo Cons Colors', () => PluginWrapper.coloring.evolutionaryConservation({ sequence: true, het: false, keepStyle: true })); addControl('Default Visuals', () => PluginWrapper.updateStyle()); addSeparator(); diff --git a/src/examples/proteopedia-wrapper/index.ts b/src/examples/proteopedia-wrapper/index.ts index 956ae98c1ba12ae93b9f97dd761b020355572bdb..750503e5ecad5a08eaed151f6e5ec3b963c7b1c7 100644 --- a/src/examples/proteopedia-wrapper/index.ts +++ b/src/examples/proteopedia-wrapper/index.ts @@ -253,18 +253,26 @@ class MolStarProteopediaWrapper { } coloring = { - evolutionaryConservation: async () => { - await this.updateStyle({ sequence: { kind: 'spacefill' } }, true); + evolutionaryConservation: async (params?: { sequence?: boolean, het?: boolean, keepStyle?: boolean }) => { + if (!params || !params.keepStyle) { + await this.updateStyle({ sequence: { kind: 'spacefill' } }, true); + } const state = this.state; // const visuals = state.selectQ(q => q.ofType(PluginStateObject.Molecule.Structure.Representation3D).filter(c => c.transform.transformer === StateTransforms.Representation.StructureRepresentation3D)); + // for (const v of visuals) { + // } + const tree = state.build(); const colorTheme = { name: EvolutionaryConservation.Descriptor.name, params: this.plugin.structureRepresentation.themeCtx.colorThemeRegistry.get(EvolutionaryConservation.Descriptor.name).defaultValues }; - tree.to(StateElements.SequenceVisual).update(StateTransforms.Representation.StructureRepresentation3D, old => ({ ...old, colorTheme })); - // for (const v of visuals) { - // } + if (!params || !!params.sequence) { + tree.to(StateElements.SequenceVisual).update(StateTransforms.Representation.StructureRepresentation3D, old => ({ ...old, colorTheme })); + } + if (params && !!params.het) { + tree.to(StateElements.HetVisual).update(StateTransforms.Representation.StructureRepresentation3D, old => ({ ...old, colorTheme })); + } await PluginCommands.State.Update.dispatch(this.plugin, { state, tree }); }