UNPKG

@rcsb/rcsb-saguaro-3d

Version:
68 lines (67 loc) 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AssemblyTrajectoryPresetProvider = void 0; const tslib_1 = require("tslib"); const param_definition_1 = require("molstar/lib/mol-util/param-definition"); const hierarchy_preset_1 = require("molstar/lib/mol-plugin-state/builder/structure/hierarchy-preset"); const AssemblyRepresentationPresetProvider_1 = require("./AssemblyRepresentationPresetProvider"); const structure_1 = require("molstar/lib/mol-model/structure"); const FocusColoring_1 = require("./FocusTheme/FocusColoring"); exports.AssemblyTrajectoryPresetProvider = (0, hierarchy_preset_1.TrajectoryHierarchyPresetProvider)({ id: "rcsb-saguaro-3d", display: { name: 'Feature View 3D' }, params: (trajectory, plugin) => ({ assemblyId: param_definition_1.ParamDefinition.Value("1"), asymId: param_definition_1.ParamDefinition.Value(undefined), modelIndex: param_definition_1.ParamDefinition.Value(0) }), apply(trajectory, params, plugin) { return tslib_1.__awaiter(this, void 0, void 0, function* () { var _a, _b; const builder = plugin.builders.structure; const model = yield builder.createModel(trajectory, { modelIndex: params.modelIndex }); const modelProperties = yield builder.insertModelProperties(model); let assemblyId = params.assemblyId; let structure = yield builder.createStructure(modelProperties, (assemblyId != "" && assemblyId != "0") ? { name: 'assembly', params: { id: assemblyId } } : { name: "model", params: {} }); if (params.asymId) { let asymCheck = false; let assemblyId = 1; do { plugin.managers.structure.hierarchy.remove([ plugin.managers.structure.hierarchy.current.structures[plugin.managers.structure.hierarchy.current.structures.length - 1] ]); structure = yield builder.createStructure(modelProperties, { name: 'assembly', params: { id: (assemblyId++).toString() } }); const cell = structure.cell; if (cell) { const units = (_b = (_a = structure.cell) === null || _a === void 0 ? void 0 : _a.obj) === null || _b === void 0 ? void 0 : _b.data.units; const strData = cell.obj.data; if (units) { const l = structure_1.StructureElement.Location.create(strData); for (const unit of units) { structure_1.StructureElement.Location.set(l, strData, unit, unit.elements[0]); asymCheck = (structure_1.StructureProperties.chain.label_asym_id(l) == params.asymId); if (asymCheck) break; } } } } while (!asymCheck); } const structureProperties = yield builder.insertStructureProperties(structure); if (!plugin.representation.structure.themes.colorThemeRegistry.has(FocusColoring_1.FocusResidueColorThemeProvider)) plugin.representation.structure.themes.colorThemeRegistry.add(FocusColoring_1.FocusResidueColorThemeProvider); const unitcell = yield builder.tryCreateUnitcell(modelProperties, undefined, { isHidden: true }); const representation = yield plugin.builders.structure.representation.applyPreset(structureProperties, AssemblyRepresentationPresetProvider_1.AssemblyRepresentationPresetProvider); return { model, modelProperties, unitcell, structure, structureProperties, representation }; }); } });