UNPKG

@rcsb/rcsb-saguaro-app

Version:
77 lines 4.52 kB
import { __awaiter } from "tslib"; import { FieldName, OperationType, SequenceReference, AnnotationReference } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"; import { RcsbFvAbstractModule } from "./RcsbFvAbstractModule"; import { Assertions } from "../../RcsbUtils/Helpers/Assertions"; var assertDefined = Assertions.assertDefined; import { TagDelimiter } from "@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"; import { addUnmodeledTrackBuilder, UnmodeledTrackBuilder } from "../../RcsbUtils/TrackGenerators/UnmodeledTrackBuilder"; export class RcsbFvUniprotEntity extends RcsbFvAbstractModule { constructor() { super(...arguments); this.unmodeledTrackBuilder = new UnmodeledTrackBuilder(); } protectedBuild() { return __awaiter(this, void 0, void 0, function* () { var _a, _b, _c; const buildConfig = this.buildConfig; const upAcc = buildConfig.upAcc; const entityId = buildConfig.entityId; const additionalConfig = buildConfig.additionalConfig; assertDefined(upAcc), assertDefined(entityId); const filters = [{ field: FieldName.TargetId, operation: OperationType.Equals, source: AnnotationReference.PdbEntity, values: [entityId] }]; const alignmentRequestContext = { queryId: upAcc, from: SequenceReference.Uniprot, to: SequenceReference.PdbEntity, filterByTargetContains: entityId, excludeAlignmentLinks: true, externalTrackBuilder: (_a = buildConfig.additionalConfig) === null || _a === void 0 ? void 0 : _a.externalTrackBuilder }; const alignmentResponse = yield this.alignmentCollector.collect(alignmentRequestContext, [entityId]); yield this.buildAlignmentTracks(alignmentRequestContext, alignmentResponse); const annotationsRequestContext = { queryId: upAcc, reference: SequenceReference.Uniprot, sources: (additionalConfig === null || additionalConfig === void 0 ? void 0 : additionalConfig.sources) ? additionalConfig.sources : [AnnotationReference.PdbEntity, AnnotationReference.Uniprot], filters: (additionalConfig === null || additionalConfig === void 0 ? void 0 : additionalConfig.filters) instanceof Array ? additionalConfig.filters.concat(filters) : filters, titleSuffix: this.titleSuffix.bind(this), annotationProcessing: (_b = buildConfig.additionalConfig) === null || _b === void 0 ? void 0 : _b.annotationProcessing, rcsbContext: { entityId: buildConfig.entityId }, externalTrackBuilder: addUnmodeledTrackBuilder(this.unmodeledTrackBuilder, (_c = buildConfig.additionalConfig) === null || _c === void 0 ? void 0 : _c.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 __awaiter(this, void 0, void 0, function* () { return Object.assign(Object.assign({}, this.boardConfigData), { tooltipGenerator: this.unmodeledTrackBuilder.getTooltip() }); }); } concatAlignmentAndAnnotationTracks() { this.rowConfigData = [this.referenceTrack].concat(this.alignmentTracks).concat(this.annotationTracks); } titleSuffix(ann, d) { return __awaiter(this, void 0, void 0, function* () { var _a; if (this.polymerEntityInstance != null && ann.source === AnnotationReference.PdbInstance) { const labelAsymId = (_a = ann.target_id) === null || _a === void 0 ? void 0 : _a.split(TagDelimiter.instance)[1]; if (!labelAsymId) return; const authAsymId = this.polymerEntityInstance.translateAsymToAuth(labelAsymId); return labelAsymId === authAsymId ? labelAsymId : labelAsymId + "[auth " + authAsymId + "]"; } }); } } //# sourceMappingURL=RcsbFvUniprotEntity.js.map