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

Proteopedia wrapper fixes

parent c2d1b3de
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment