UNPKG

@rcsb/rcsb-saguaro-app

Version:
68 lines 2.9 kB
import { FeaturesType } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"; import { buildInstanceSequenceFv } from "../RcsbFvWeb/RcsbFvBuilder"; buildInstanceSequenceFv("pfv", "select", "8PDU", { module: "interface", onChangeCallback: (r) => { console.log(r); }, defaultValue: "A" }, { externalTrackBuilder: externalTrackBuilder() }).then((module) => { console.log(module); }); function externalTrackBuilder() { let myComputedTrack = { trackId: "blockTrack", trackHeight: 20, trackColor: "#F9F9F9", titleFlagColor: "#48a1b3", displayType: "block" /* RcsbFvDisplayTypes.BLOCK */, displayColor: "#56e0f5", rowTitle: "COMPUTED", trackData: [{ begin: 10, end: 100 }] }; return { processAlignmentAndFeatures(data) { return new Promise(resolve => { var _a; myComputedTrack.trackData = []; (_a = data.annotations) === null || _a === void 0 ? void 0 : _a.forEach(a => { var _a; (_a = a.features) === null || _a === void 0 ? void 0 : _a.forEach(f => { var _a, _b; if (f != null && f.type === FeaturesType.RegionOfInterest) { if (f.feature_positions) (_a = myComputedTrack.trackData) === null || _a === void 0 ? void 0 : _a.push(...(_b = f.feature_positions) === null || _b === void 0 ? void 0 : _b.map(p => { var _a, _b; return ({ begin: (_a = p === null || p === void 0 ? void 0 : p.beg_seq_id) !== null && _a !== void 0 ? _a : 0, end: (_b = p === null || p === void 0 ? void 0 : p.end_seq_id) !== null && _b !== void 0 ? _b : undefined }); })); } }); }); resolve(void 0); }); }, addTo(tracks) { return new Promise(resolve => { var _a, _b; if (((_a = tracks.rcsbContext) === null || _a === void 0 ? void 0 : _a.asymId) === "A" && (myComputedTrack === null || myComputedTrack === void 0 ? void 0 : myComputedTrack.trackData) && myComputedTrack.trackData.length > 0) { (_b = tracks.annotationTracks) === null || _b === void 0 ? void 0 : _b.push(myComputedTrack); } resolve(void 0); }); }, filterFeatures(data) { return new Promise(resolve => { resolve(data.annotations); }); } }; } //# sourceMappingURL=InstanceSequenceFv.js.map