UNPKG

@rcsb/rcsb-saguaro-app

Version:
74 lines (73 loc) 4.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RcsbFvEntity = void 0; const tslib_1 = require("tslib"); const GqlTypes_1 = require("@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"); const RcsbFvAbstractModule_1 = require("./RcsbFvAbstractModule"); const Assertions_1 = require("../../RcsbUtils/Helpers/Assertions"); var assertDefined = Assertions_1.Assertions.assertDefined; const TagDelimiter_1 = require("@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"); const UnmodeledTrackBuilder_1 = require("../../RcsbUtils/TrackGenerators/UnmodeledTrackBuilder"); class RcsbFvEntity extends RcsbFvAbstractModule_1.RcsbFvAbstractModule { constructor() { super(...arguments); this.unmodeledTrackBuilder = new UnmodeledTrackBuilder_1.UnmodeledTrackBuilder(); } protectedBuild() { return tslib_1.__awaiter(this, void 0, void 0, function* () { var _a, _b, _c, _d, _e, _f, _g; const buildConfig = this.buildConfig; assertDefined(buildConfig.entityId); const alignmentRequestContext = { queryId: buildConfig.entityId, from: GqlTypes_1.SequenceReference.PdbEntity, to: GqlTypes_1.SequenceReference.Uniprot, externalTrackBuilder: (_a = buildConfig.additionalConfig) === null || _a === void 0 ? void 0 : _a.externalTrackBuilder }; const alignmentResponse = yield this.alignmentCollector.collect(alignmentRequestContext, (_b = buildConfig.additionalConfig) === null || _b === void 0 ? void 0 : _b.alignmentFilter); yield this.buildAlignmentTracks(alignmentRequestContext, alignmentResponse); const annotationsRequestContext = { queryId: buildConfig.entityId, reference: GqlTypes_1.SequenceReference.PdbEntity, sources: (_d = (_c = buildConfig.additionalConfig) === null || _c === void 0 ? void 0 : _c.sources) !== null && _d !== void 0 ? _d : [GqlTypes_1.AnnotationReference.PdbEntity, GqlTypes_1.AnnotationReference.Uniprot], titleSuffix: this.titleSuffix.bind(this), filters: (_e = buildConfig.additionalConfig) === null || _e === void 0 ? void 0 : _e.filters, annotationProcessing: (_f = buildConfig.additionalConfig) === null || _f === void 0 ? void 0 : _f.annotationProcessing, rcsbContext: { entityId: buildConfig.entityId }, externalTrackBuilder: (0, UnmodeledTrackBuilder_1.addUnmodeledTrackBuilder)(this.unmodeledTrackBuilder, (_g = buildConfig.additionalConfig) === null || _g === void 0 ? void 0 : _g.externalTrackBuilder) }; const annotationsFeatures = yield this.annotationCollector.collect(annotationsRequestContext); yield this.buildAnnotationsTrack(annotationsRequestContext, annotationsFeatures); this.boardConfigData.length = yield this.alignmentCollector.getAlignmentLength(); this.boardConfigData.includeAxis = true; return void 0; }); } getBoardConfig() { return tslib_1.__awaiter(this, void 0, void 0, function* () { return Object.assign(Object.assign({}, this.boardConfigData), { tooltipGenerator: this.unmodeledTrackBuilder.getTooltip() }); }); } concatAlignmentAndAnnotationTracks() { var _a; const buildConfig = this.buildConfig; this.rowConfigData = !((_a = buildConfig.additionalConfig) === null || _a === void 0 ? void 0 : _a.hideAlignments) ? [this.referenceTrack].concat(this.alignmentTracks).concat(this.annotationTracks) : [this.referenceTrack].concat(this.alignmentTracks).concat(this.annotationTracks); } titleSuffix(ann, d) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!ann.target_id) return; if (this.polymerEntityInstance != null && ann.source === GqlTypes_1.AnnotationReference.PdbInstance) { const labelAsymId = ann.target_id.split(TagDelimiter_1.TagDelimiter.instance)[1]; const authAsymId = this.polymerEntityInstance.translateAsymToAuth(labelAsymId); return labelAsymId === authAsymId ? labelAsymId : labelAsymId + "[auth " + authAsymId + "]"; } }); } } exports.RcsbFvEntity = RcsbFvEntity;