UNPKG

@rcsb/rcsb-saguaro-3d

Version:
53 lines (52 loc) 2.58 kB
"use strict"; /* * Copyright (c) 2021 RCSB PDB and contributors, licensed under MIT, See LICENSE file for more info. * @author Joan Segura Mora <joan.segura@rcsb.org> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MolstarAlignmentLoader = void 0; const tslib_1 = require("tslib"); const MolstarActionManager_1 = require("../MolstarActionManager"); const AlignmentTrajectoryPresetProvider_1 = require("../TrajectoryPresetProvider/AlignmentTrajectoryPresetProvider"); const TagDelimiter_1 = require("@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"); const app_1 = require("@rcsb/rcsb-saguaro-app/lib/app"); class MolstarAlignmentLoader { constructor(loadParamsProvider) { this.structureMap = new Set(); this.loadParamsProvider = loadParamsProvider; } load(structureViewer, pdb, targetAlignment) { return tslib_1.__awaiter(this, void 0, void 0, function* () { var _a; const structureId = `${pdb.entryId}${"entityId" in pdb ? TagDelimiter_1.TagDelimiter.entity : TagDelimiter_1.TagDelimiter.instance}${"entityId" in pdb ? pdb.entityId : pdb.instanceId}`; if (!this.structureMap.has(structureId)) { this.structureMap.add(structureId); const loadParams = 'instanceId' in pdb ? (_a = this.loadParamsProvider) === null || _a === void 0 ? void 0 : _a.get(pdb) : undefined; return loadParams ? yield structureViewer.load(loadParams) : yield structureViewer.load({ loadMethod: MolstarActionManager_1.LoadMethod.loadPdbId, loadParams: { id: structureId, entryId: pdb.entryId, reprProvider: AlignmentTrajectoryPresetProvider_1.AlignmentTrajectoryPresetProvider, params: { modelIndex: ((yield app_1.RcsbRequestContextManager.getEntryProperties(pdb.entryId))[0].representativeModel - 1), pdb, targetAlignment } } }); } else { yield structureViewer.removeStructure({ loadMethod: MolstarActionManager_1.LoadMethod.loadPdbId, loadParams: { id: structureId } }); this.structureMap.delete(structureId); return; } }); } } exports.MolstarAlignmentLoader = MolstarAlignmentLoader;