UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

42 lines (41 loc) 2.65 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { observer } from 'mobx-react'; import CDNASequence from "./seqtypes/CDNASequence.js"; import CDSSequence from "./seqtypes/CDSSequence.js"; import GenomicSequence from "./seqtypes/GenomicSequence.js"; import ProteinSequence from "./seqtypes/ProteinSequence.js"; import { useSequenceData } from "./useSequenceData.js"; import { defaultCodonTable, generateCodonTable } from "../../util/index.js"; function RenderedSequenceComponent({ mode, feature, model, sequenceData, }) { const { seq, upstream, downstream, cds, exons, utr } = sequenceData; switch (mode) { case 'genomic': return _jsx(GenomicSequence, { feature: feature, model: model, sequence: seq }); case 'genomic_sequence_updownstream': return (_jsx(GenomicSequence, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })); case 'cds': return _jsx(CDSSequence, { model: model, cds: cds, sequence: seq }); case 'cdna': return (_jsx(CDNASequence, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })); case 'protein': return (_jsx(ProteinSequence, { model: model, cds: cds, codonTable: generateCodonTable(defaultCodonTable), sequence: seq })); case 'gene': return (_jsx(CDNASequence, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })); case 'gene_collapsed_intron': return (_jsx(CDNASequence, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })); case 'gene_updownstream': return (_jsx(CDNASequence, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })); case 'gene_updownstream_collapsed_intron': return (_jsx(CDNASequence, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })); default: return _jsx("div", { children: "Unknown type" }); } } const SequenceContents = observer(function SequenceContents({ mode, feature, sequence, model, }) { const sequenceData = useSequenceData({ feature, sequence, }); return sequenceData ? (_jsx(RenderedSequenceComponent, { mode: mode, feature: feature, model: model, sequenceData: sequenceData })) : null; }); export default SequenceContents;