@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
68 lines (67 loc) • 4.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RcsbFvUniprotInstance = 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 BuriedResidues_1 = require("../../RcsbUtils/TrackGenerators/BuriedResidues");
const Assertions_1 = require("../../RcsbUtils/Helpers/Assertions");
var assertDefined = Assertions_1.Assertions.assertDefined;
class RcsbFvUniprotInstance extends RcsbFvAbstractModule_1.RcsbFvAbstractModule {
protectedBuild() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
var _a, _b, _c;
const buildConfig = this.buildConfig;
const upAcc = buildConfig.upAcc;
const entityId = buildConfig.entityId;
const instanceId = buildConfig.instanceId;
const additionalConfig = buildConfig.additionalConfig;
assertDefined(entityId), assertDefined(instanceId), assertDefined(upAcc);
let sources = [GqlTypes_1.AnnotationReference.Uniprot, GqlTypes_1.AnnotationReference.PdbEntity, GqlTypes_1.AnnotationReference.PdbInstance];
if (additionalConfig != null && additionalConfig.sources != null && additionalConfig.sources.length > 0)
sources = additionalConfig.sources;
let filters = [{
field: GqlTypes_1.FieldName.TargetId,
operation: GqlTypes_1.OperationType.Equals,
source: GqlTypes_1.AnnotationReference.PdbEntity,
values: [entityId]
}, {
field: GqlTypes_1.FieldName.TargetId,
operation: GqlTypes_1.OperationType.Contains,
source: GqlTypes_1.AnnotationReference.PdbInstance,
values: [instanceId]
}];
if (additionalConfig != null && additionalConfig.filters != null && additionalConfig.filters.length > 0)
filters = additionalConfig.filters;
const alignmentRequestContext = {
queryId: upAcc,
from: GqlTypes_1.SequenceReference.Uniprot,
to: GqlTypes_1.SequenceReference.PdbInstance,
filterByTargetContains: instanceId,
excludeFirstRowLink: true,
externalTrackBuilder: (_a = buildConfig.additionalConfig) === null || _a === void 0 ? void 0 : _a.externalTrackBuilder
};
const alignmentResponse = yield this.alignmentCollector.collect(alignmentRequestContext, [instanceId]);
yield this.buildAlignmentTracks(alignmentRequestContext, alignmentResponse);
const annotationsRequestContext = {
queryId: upAcc,
reference: GqlTypes_1.SequenceReference.Uniprot,
sources: sources,
filters: filters,
annotationGenerator: (ann) => (new Promise((r) => (r((0, BuriedResidues_1.buriedResidues)(ann))))),
annotationFilter: (ann) => (new Promise((r) => (r((0, BuriedResidues_1.buriedResiduesFilter)(ann))))),
annotationProcessing: (_b = buildConfig.additionalConfig) === null || _b === void 0 ? void 0 : _b.annotationProcessing,
externalTrackBuilder: (_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;
});
}
concatAlignmentAndAnnotationTracks() {
this.rowConfigData = [this.referenceTrack].concat(this.alignmentTracks).concat(this.annotationTracks);
}
}
exports.RcsbFvUniprotInstance = RcsbFvUniprotInstance;