@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
74 lines (73 loc) • 4.46 kB
JavaScript
"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;