Skip to content
Snippets Groups Projects
Commit 1acdfdf2 authored by David Sehnal's avatar David Sehnal
Browse files

Proteopedia wrapper fixes

parent c2d1b3de
Branches
Tags
No related merge requests found
......@@ -8,27 +8,6 @@ import { CustomElementProperty } from 'mol-model-props/common/custom-element-pro
import { Model, ElementIndex, ResidueIndex } from 'mol-model/structure';
import { Color } from 'mol-util/color';
// export const StripedResidues = CustomElementProperty.create<number>({
// isStatic: true,
// name: 'basic-wrapper-residue-striping',
// display: 'Residue Stripes',
// getData(model: Model) {
// const map = new Map<ElementIndex, number>();
// const residueIndex = model.atomicHierarchy.residueAtomSegments.index;
// for (let i = 0, _i = model.atomicHierarchy.atoms._rowCount; i < _i; i++) {
// map.set(i as ElementIndex, residueIndex[i] % 2);
// }
// return map;
// },
// coloring: {
// getColor(e) { return e === 0 ? Color(0xff0000) : Color(0x0000ff) },
// defaultColor: Color(0x777777)
// },
// format(e) {
// return e === 0 ? 'Odd stripe' : 'Even stripe'
// }
// });
const EvolutionaryConservationPalette: Color[] = [
[255, 255, 150], // 9
[160, 37, 96],
......@@ -41,6 +20,8 @@ const EvolutionaryConservationPalette: Color[] = [
[140, 255, 255],
[16, 200, 209] // 1
].reverse().map(([r, g, b]) => Color.fromRgb(r, g, b));
// const EvolutionaryConservationInsufficientColor = Color(0xcccc00);
const EvolutionaryConservationDefaultColor = Color(0x999999);
export const EvolutionaryConservation = CustomElementProperty.create<number>({
isStatic: true,
......@@ -71,7 +52,7 @@ export const EvolutionaryConservation = CustomElementProperty.create<number>({
const key = `${model.atomicHierarchy.chains.auth_asym_id.value(cI)} ${model.atomicHierarchy.residues.auth_seq_id.value(rI)}`;
if (!conservationMap.has(key)) continue;
const ann = conservationMap.get(key)!;
for (let aI = residueOffsets[rI]; aI < residueOffsets[aI + 1]; aI++) {
for (let aI = residueOffsets[rI]; aI < residueOffsets[rI + 1]; aI++) {
map.set(aI, ann);
}
}
......@@ -79,10 +60,16 @@ export const EvolutionaryConservation = CustomElementProperty.create<number>({
return map;
},
coloring: {
getColor(e) { return EvolutionaryConservationPalette[(e - 1) || 0]; },
defaultColor: Color(0x999999)
getColor(e: number) {
// TODO
// if (e === 10) return EvolutionaryConservationInsufficientColor;
if (e < 0 || e > 9) return EvolutionaryConservationDefaultColor;
return EvolutionaryConservationPalette[e];
},
defaultColor: EvolutionaryConservationDefaultColor
},
format(e) {
return e ? `Evolutionary Conservation ${e}` : void 0;
if (e === 0) return `Evolutionary Conservation: InsufficientData`;
return e ? `Evolutionary Conservation: ${e}` : void 0;
}
});
\ No newline at end of file
......@@ -61,7 +61,7 @@
function $(id) { return document.getElementById(id); }
var pdbId = '2c1z', assemblyId= 'preferred';
var pdbId = '1eve', assemblyId= 'preferred';
var url = 'https://www.ebi.ac.uk/pdbe/static/entry/' + pdbId + '_updated.cif';
var format = 'cif';
......
......@@ -178,17 +178,17 @@ class MolStarProteopediaWrapper {
coloring = {
evolutionaryConservation: async () => {
await this.updateStyle({ sequence: { kind: 'molecular-surface' } });
await this.updateStyle({ sequence: { kind: 'spacefill' } });
const state = this.state;
//const visuals = state.selectQ(q => q.ofType(PluginStateObject.Molecule.Representation3D).filter(c => c.transform.transformer === StateTransforms.Representation.StructureRepresentation3D));
// const visuals = state.selectQ(q => q.ofType(PluginStateObject.Molecule.Representation3D).filter(c => c.transform.transformer === StateTransforms.Representation.StructureRepresentation3D));
const tree = state.build();
const colorTheme = { name: EvolutionaryConservation.Descriptor.name, params: this.plugin.structureRepresentation.themeCtx.colorThemeRegistry.get(EvolutionaryConservation.Descriptor.name).defaultValues };
tree.to('sequence-visual').update(StateTransforms.Representation.StructureRepresentation3D, old => ({ ...old, colorTheme }));
//for (const v of visuals) {
//}
// for (const v of visuals) {
// }
await PluginCommands.State.Update.dispatch(this.plugin, { state, tree });
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment