@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
78 lines • 4.25 kB
JavaScript
import { __awaiter } from "tslib";
import { SequenceReference } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes";
import resource from "../../../../RcsbServerConfig/web.resources.json";
import { RcsbAnnotationConstants } from "../../../../RcsbAnnotationConfig/RcsbAnnotationConstants";
import { Assertions } from "../../../../RcsbUtils/Helpers/Assertions";
var assertDefined = Assertions.assertDefined;
import { TagDelimiter } from "@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter";
export class ExperimentalAlignmentTrackTitleFactory {
constructor(entityInstanceTranslator) {
this.entityInstanceTranslator = undefined;
this.entityInstanceTranslator = entityInstanceTranslator;
}
getTrackTitle(alignmentQueryContext, targetAlignment) {
return __awaiter(this, void 0, void 0, function* () {
let rowTitle;
assertDefined(targetAlignment.target_id);
if (alignmentQueryContext.excludeAlignmentLinks) {
rowTitle = targetAlignment.target_id;
}
else if (alignmentQueryContext.to === SequenceReference.PdbInstance && this.entityInstanceTranslator != null) {
const entityId = this.entityInstanceTranslator.translateAsymToEntity(TagDelimiter.parseInstance(targetAlignment.target_id).instanceId);
assertDefined(entityId);
rowTitle = {
visibleTex: this.buildInstanceId(targetAlignment.target_id),
url: resource.rcsb_entry.url + TagDelimiter.parseInstance(targetAlignment.target_id).entryId + "#entity-" + entityId,
style: {
fontWeight: "bold",
color: RcsbAnnotationConstants.provenanceColorCode.rcsbLink
}
};
}
else if (alignmentQueryContext.to === SequenceReference.PdbEntity) {
const entityId = TagDelimiter.parseEntity(targetAlignment.target_id).entityId;
rowTitle = {
visibleTex: targetAlignment.target_id,
url: resource.rcsb_entry.url + TagDelimiter.parseEntity(targetAlignment.target_id).entryId + "#entity-" + entityId,
style: {
fontWeight: "bold",
color: RcsbAnnotationConstants.provenanceColorCode.rcsbLink
}
};
}
else if (alignmentQueryContext.to === SequenceReference.Uniprot) {
rowTitle = {
visibleTex: targetAlignment.target_id,
url: resource.rcsb_uniprot.url + targetAlignment.target_id,
style: {
fontWeight: "bold",
color: RcsbAnnotationConstants.provenanceColorCode.rcsbLink
}
};
}
else {
rowTitle = targetAlignment.target_id;
}
return rowTitle;
});
}
getTrackTitlePrefix(alignmentQueryContext, targetAlignment) {
return __awaiter(this, void 0, void 0, function* () {
return alignmentQueryContext.to && !alignmentQueryContext.to.includes("PDB") ? alignmentQueryContext.to.replace("_", " ") + " " + TagDelimiter.alignmentTitle : "";
});
}
getTrackTitleFlagColor(alignmentQueryContext, targetAlignment) {
return __awaiter(this, void 0, void 0, function* () {
if (alignmentQueryContext.to === SequenceReference.Uniprot)
return RcsbAnnotationConstants.provenanceColorCode.external;
return RcsbAnnotationConstants.provenanceColorCode.rcsbPdb;
});
}
buildInstanceId(targetId) {
var _a;
const labelAsymId = TagDelimiter.parseInstance(targetId).instanceId;
const authAsymId = (_a = this.entityInstanceTranslator) === null || _a === void 0 ? void 0 : _a.translateAsymToAuth(labelAsymId);
return TagDelimiter.parseInstance(targetId).entryId + TagDelimiter.instance + (labelAsymId === authAsymId || !authAsymId ? labelAsymId : labelAsymId + "[auth " + authAsymId + "]");
}
}
//# sourceMappingURL=ExperimentalAlignmentTrackTitleFactory.js.map