@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
77 lines • 4.52 kB
JavaScript
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