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