UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

49 lines (48 loc) 3.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const mobx_react_1 = require("mobx-react"); const util_1 = require("../../util"); const util_2 = require("../util"); const CDNASequence_1 = __importDefault(require("./seqtypes/CDNASequence")); const CDSSequence_1 = __importDefault(require("./seqtypes/CDSSequence")); const GenomicSequence_1 = __importDefault(require("./seqtypes/GenomicSequence")); const ProteinSequence_1 = __importDefault(require("./seqtypes/ProteinSequence")); const SequenceContents = (0, mobx_react_1.observer)(function ({ mode, feature, sequence, model, }) { var _a; let { seq, upstream = '', downstream = '' } = sequence; const children = ((_a = feature.subfeatures) === null || _a === void 0 ? void 0 : _a.sort((a, b) => a.start - b.start).map(sub => ({ ...sub, start: sub.start - feature.start, end: sub.end - feature.start, }))) || []; let cds = (0, util_2.dedupe)(children.filter(sub => sub.type === 'CDS')); let utr = (0, util_2.dedupe)(children.filter(sub => { var _a; return (_a = sub.type) === null || _a === void 0 ? void 0 : _a.match(/utr/i); })); let exons = (0, util_2.dedupe)(children.filter(sub => sub.type === 'exon')); if (!utr.length && cds.length && exons.length) { utr = (0, util_2.calculateUTRs)(cds, exons); } if (!utr.length && cds.length && !exons.length) { utr = (0, util_2.calculateUTRs2)(cds, { start: 0, end: feature.end - feature.start, type: 'gene', }); } if (feature.strand === -1) { ; [seq, upstream, downstream] = [ (0, util_1.revcom)(seq), (0, util_1.revcom)(downstream), (0, util_1.revcom)(upstream), ]; cds = (0, util_2.revlist)(cds, seq.length); exons = (0, util_2.revlist)(exons, seq.length); utr = (0, util_2.revlist)(utr, seq.length); } return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: mode === 'genomic' ? ((0, jsx_runtime_1.jsx)(GenomicSequence_1.default, { feature: feature, model: model, sequence: seq })) : mode === 'genomic_sequence_updownstream' ? ((0, jsx_runtime_1.jsx)(GenomicSequence_1.default, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })) : mode === 'cds' ? ((0, jsx_runtime_1.jsx)(CDSSequence_1.default, { model: model, cds: cds, sequence: seq })) : mode === 'cdna' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })) : mode === 'protein' ? ((0, jsx_runtime_1.jsx)(ProteinSequence_1.default, { model: model, cds: cds, codonTable: (0, util_1.generateCodonTable)(util_1.defaultCodonTable), sequence: seq })) : mode === 'gene' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })) : mode === 'gene_collapsed_intron' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })) : mode === 'gene_updownstream' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })) : mode === 'gene_updownstream_collapsed_intron' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })) : ((0, jsx_runtime_1.jsx)("div", { children: "Unknown type" })) })); }); exports.default = SequenceContents;