@jbrowse/plugin-alignments 2.16.0 → 2.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +2 -3
- package/dist/AlignmentsFeatureDetail/Flags.js +2 -2
- package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +2 -2
- package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +2 -2
- package/dist/AlignmentsFeatureDetail/getSAFeatures.js +2 -2
- package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +1 -1
- package/dist/BamAdapter/BamAdapter.d.ts +3 -2
- package/dist/BamAdapter/BamAdapter.js +34 -11
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -17
- package/dist/BamAdapter/BamSlightlyLazyFeature.js +42 -72
- package/dist/CramAdapter/CramAdapter.d.ts +4 -3
- package/dist/CramAdapter/CramAdapter.js +24 -7
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +21 -27
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +74 -73
- package/dist/CramAdapter/util.d.ts +1 -10
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
- package/dist/LinearAlignmentsDisplay/index.js +2 -2
- package/dist/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +6 -3
- package/dist/LinearAlignmentsDisplay/{models/model.js → model.js} +11 -7
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +6 -27
- package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +43 -21
- package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
- package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +3 -1
- package/dist/LinearPileupDisplay/components/GroupByDialog.js +8 -6
- package/dist/LinearPileupDisplay/components/SortByTagDialog.js +6 -4
- package/dist/LinearPileupDisplay/model.d.ts +41 -45
- package/dist/LinearPileupDisplay/model.js +118 -41
- package/dist/LinearReadArcsDisplay/components/ReactComponent.js +1 -1
- package/dist/LinearReadArcsDisplay/model.d.ts +22 -21
- package/dist/LinearReadArcsDisplay/model.js +13 -14
- package/dist/LinearReadCloudDisplay/components/ReactComponent.js +1 -1
- package/dist/LinearReadCloudDisplay/model.d.ts +14 -22
- package/dist/LinearReadCloudDisplay/model.js +12 -13
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +49 -19
- package/dist/LinearSNPCoverageDisplay/index.js +3 -2
- package/dist/LinearSNPCoverageDisplay/{models/model.d.ts → model.d.ts} +3 -13
- package/dist/LinearSNPCoverageDisplay/{models/model.js → model.js} +71 -45
- package/dist/MismatchParser/cigarToMismatches.d.ts +3 -0
- package/dist/MismatchParser/cigarToMismatches.js +94 -0
- package/dist/MismatchParser/getNextRefPos.d.ts +4 -0
- package/dist/MismatchParser/getNextRefPos.js +40 -0
- package/dist/MismatchParser/index.d.ts +4 -29
- package/dist/MismatchParser/index.js +10 -321
- package/dist/MismatchParser/mdToMismatches.d.ts +3 -0
- package/dist/MismatchParser/mdToMismatches.js +80 -0
- package/dist/ModificationParser/index.d.ts +19 -0
- package/dist/ModificationParser/index.js +144 -0
- package/dist/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
- package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +1 -1
- package/dist/PileupRPC/methods/GetReducedFeatures.js +19 -16
- package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +2 -1
- package/dist/PileupRPC/methods/GetVisibleModifications.js +9 -6
- package/dist/PileupRenderer/PileupLayoutSession.d.ts +8 -7
- package/dist/PileupRenderer/PileupRenderer.d.ts +6 -14
- package/dist/PileupRenderer/PileupRenderer.js +7 -5
- package/dist/PileupRenderer/renderAlignment.js +17 -4
- package/dist/PileupRenderer/renderAlignmentShape.js +102 -21
- package/dist/PileupRenderer/renderMethylation.d.ts +2 -1
- package/dist/PileupRenderer/renderMethylation.js +17 -9
- package/dist/PileupRenderer/renderMismatches.js +19 -19
- package/dist/PileupRenderer/renderModifications.d.ts +3 -2
- package/dist/PileupRenderer/renderModifications.js +31 -34
- package/dist/PileupRenderer/renderPerBaseLettering.d.ts +2 -1
- package/dist/PileupRenderer/renderPerBaseLettering.js +1 -3
- package/dist/PileupRenderer/renderPerBaseQuality.d.ts +2 -1
- package/dist/PileupRenderer/renderPerBaseQuality.js +1 -3
- package/dist/PileupRenderer/renderSoftClipping.js +6 -6
- package/dist/PileupRenderer/sortUtil.d.ts +2 -7
- package/dist/PileupRenderer/sortUtil.js +13 -13
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +10 -5
- package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +13 -9
- package/dist/SNPCoverageAdapter/generateCoverageBins.js +269 -166
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -1
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +171 -54
- package/dist/shared/color.d.ts +0 -10
- package/dist/shared/color.js +1 -7
- package/{esm/shared → dist/shared/components}/BaseDisplayComponent.d.ts +2 -2
- package/{esm/shared → dist/shared/components}/FilterByTagDialog.d.ts +3 -3
- package/dist/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +5 -1
- package/dist/shared/fetchChains.js +1 -2
- package/dist/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
- package/dist/shared/getMaximumModificationAtEachPosition.js +42 -0
- package/dist/shared/getUniqueModifications.d.ts +14 -0
- package/dist/shared/getUniqueModifications.js +16 -0
- package/dist/shared/getUniqueTags.d.ts +15 -0
- package/dist/shared/getUniqueTags.js +18 -0
- package/dist/shared/types.d.ts +94 -0
- package/dist/shared/util.d.ts +8 -0
- package/dist/shared/util.js +26 -0
- package/dist/util.d.ts +7 -4
- package/dist/util.js +30 -30
- package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +2 -3
- package/esm/AlignmentsFeatureDetail/Flags.js +1 -1
- package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +1 -1
- package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +1 -1
- package/esm/AlignmentsFeatureDetail/getSAFeatures.js +2 -2
- package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +1 -1
- package/esm/BamAdapter/BamAdapter.d.ts +3 -2
- package/esm/BamAdapter/BamAdapter.js +31 -8
- package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -17
- package/esm/BamAdapter/BamSlightlyLazyFeature.js +43 -73
- package/esm/CramAdapter/CramAdapter.d.ts +4 -3
- package/esm/CramAdapter/CramAdapter.js +22 -5
- package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +21 -27
- package/esm/CramAdapter/CramSlightlyLazyFeature.js +74 -73
- package/esm/CramAdapter/util.d.ts +1 -10
- package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
- package/esm/LinearAlignmentsDisplay/index.js +2 -2
- package/esm/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +6 -3
- package/esm/LinearAlignmentsDisplay/{models/model.js → model.js} +11 -7
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +6 -27
- package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +45 -23
- package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
- package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +3 -1
- package/esm/LinearPileupDisplay/components/GroupByDialog.js +8 -6
- package/esm/LinearPileupDisplay/components/SortByTagDialog.js +6 -4
- package/esm/LinearPileupDisplay/model.d.ts +41 -45
- package/esm/LinearPileupDisplay/model.js +119 -42
- package/esm/LinearReadArcsDisplay/components/ReactComponent.js +1 -1
- package/esm/LinearReadArcsDisplay/model.d.ts +22 -21
- package/esm/LinearReadArcsDisplay/model.js +14 -15
- package/esm/LinearReadCloudDisplay/components/ReactComponent.js +1 -1
- package/esm/LinearReadCloudDisplay/model.d.ts +14 -22
- package/esm/LinearReadCloudDisplay/model.js +13 -14
- package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +49 -19
- package/esm/LinearSNPCoverageDisplay/index.js +3 -2
- package/esm/LinearSNPCoverageDisplay/{models/model.d.ts → model.d.ts} +3 -13
- package/esm/LinearSNPCoverageDisplay/{models/model.js → model.js} +72 -46
- package/esm/MismatchParser/cigarToMismatches.d.ts +3 -0
- package/esm/MismatchParser/cigarToMismatches.js +91 -0
- package/esm/MismatchParser/getNextRefPos.d.ts +4 -0
- package/esm/MismatchParser/getNextRefPos.js +37 -0
- package/esm/MismatchParser/index.d.ts +4 -29
- package/esm/MismatchParser/index.js +5 -311
- package/esm/MismatchParser/mdToMismatches.d.ts +3 -0
- package/esm/MismatchParser/mdToMismatches.js +77 -0
- package/esm/ModificationParser/index.d.ts +19 -0
- package/esm/ModificationParser/index.js +138 -0
- package/esm/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
- package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +1 -1
- package/esm/PileupRPC/methods/GetReducedFeatures.js +19 -16
- package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +2 -1
- package/esm/PileupRPC/methods/GetVisibleModifications.js +9 -6
- package/esm/PileupRenderer/PileupLayoutSession.d.ts +8 -7
- package/esm/PileupRenderer/PileupRenderer.d.ts +6 -14
- package/esm/PileupRenderer/PileupRenderer.js +8 -6
- package/esm/PileupRenderer/renderAlignment.js +17 -4
- package/esm/PileupRenderer/renderAlignmentShape.js +102 -21
- package/esm/PileupRenderer/renderMethylation.d.ts +2 -1
- package/esm/PileupRenderer/renderMethylation.js +17 -9
- package/esm/PileupRenderer/renderMismatches.js +19 -19
- package/esm/PileupRenderer/renderModifications.d.ts +3 -2
- package/esm/PileupRenderer/renderModifications.js +30 -33
- package/esm/PileupRenderer/renderPerBaseLettering.d.ts +2 -1
- package/esm/PileupRenderer/renderPerBaseLettering.js +1 -3
- package/esm/PileupRenderer/renderPerBaseQuality.d.ts +2 -1
- package/esm/PileupRenderer/renderPerBaseQuality.js +1 -3
- package/esm/PileupRenderer/renderSoftClipping.js +6 -6
- package/esm/PileupRenderer/sortUtil.d.ts +2 -7
- package/esm/PileupRenderer/sortUtil.js +13 -13
- package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +10 -5
- package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +13 -9
- package/esm/SNPCoverageAdapter/generateCoverageBins.js +269 -166
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -1
- package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +171 -54
- package/esm/shared/color.d.ts +0 -10
- package/esm/shared/color.js +0 -6
- package/{dist/shared → esm/shared/components}/BaseDisplayComponent.d.ts +2 -2
- package/{dist/shared → esm/shared/components}/FilterByTagDialog.d.ts +3 -3
- package/esm/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +5 -1
- package/esm/shared/fetchChains.js +1 -2
- package/esm/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
- package/esm/shared/getMaximumModificationAtEachPosition.js +39 -0
- package/esm/shared/getUniqueModifications.d.ts +14 -0
- package/esm/shared/getUniqueModifications.js +13 -0
- package/esm/shared/getUniqueTags.d.ts +15 -0
- package/esm/shared/getUniqueTags.js +15 -0
- package/esm/shared/types.d.ts +94 -0
- package/esm/shared/util.d.ts +8 -0
- package/esm/shared/util.js +23 -0
- package/esm/util.d.ts +7 -4
- package/esm/util.js +28 -27
- package/package.json +4 -4
- package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
- package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -41
- package/dist/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
- package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -28
- package/dist/SNPCoverageAdapter/util.d.ts +0 -25
- package/dist/shared/index.d.ts +0 -49
- package/dist/shared/index.js +0 -41
- package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
- package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -36
- package/esm/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
- package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -22
- package/esm/SNPCoverageAdapter/util.d.ts +0 -25
- package/esm/shared/index.d.ts +0 -49
- package/esm/shared/index.js +0 -36
- /package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +0 -0
- /package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +0 -0
- /package/dist/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
- /package/dist/LinearAlignmentsDisplay/{models/configSchema.js → configSchema.js} +0 -0
- /package/dist/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +0 -0
- /package/dist/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
- /package/dist/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
- /package/dist/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +0 -0
- /package/dist/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +0 -0
- /package/dist/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
- /package/dist/shared/{renderSvg.js → renderSvgUtil.js} +0 -0
- /package/dist/{SNPCoverageAdapter/util.js → shared/types.js} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/configSchema.js → configSchema.js} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +0 -0
- /package/esm/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
- /package/esm/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +0 -0
- /package/esm/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +0 -0
- /package/esm/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +0 -0
- /package/esm/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
- /package/esm/shared/{renderSvg.js → renderSvgUtil.js} +0 -0
- /package/esm/{SNPCoverageAdapter/util.js → shared/types.js} +0 -0
|
@@ -30,7 +30,7 @@ const react_1 = __importStar(require("react"));
|
|
|
30
30
|
const material_1 = require("@mui/material");
|
|
31
31
|
const mobx_react_1 = require("mobx-react");
|
|
32
32
|
const clone_1 = __importDefault(require("clone"));
|
|
33
|
-
const
|
|
33
|
+
const FeatureDetails_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails"));
|
|
34
34
|
// locals
|
|
35
35
|
const util_1 = require("./util");
|
|
36
36
|
const tagInfo_1 = require("./tagInfo");
|
|
@@ -41,7 +41,6 @@ const Formatter_1 = __importDefault(require("./Formatter"));
|
|
|
41
41
|
// lazies
|
|
42
42
|
const SupplementaryAlignments = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SupplementaryAlignments'))));
|
|
43
43
|
const LinkedPairedAlignments = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./LinkedPairedAlignments'))));
|
|
44
|
-
const omit = ['clipPos', 'flags'];
|
|
45
44
|
const AlignmentsFeatureDetails = (0, mobx_react_1.observer)(function (props) {
|
|
46
45
|
const { model } = props;
|
|
47
46
|
const { featureData } = model;
|
|
@@ -49,7 +48,7 @@ const AlignmentsFeatureDetails = (0, mobx_react_1.observer)(function (props) {
|
|
|
49
48
|
const SA = (0, util_1.getTag)('SA', feat);
|
|
50
49
|
const { flags } = feat;
|
|
51
50
|
return (react_1.default.createElement(material_1.Paper, { "data-testid": "alignment-side-drawer" },
|
|
52
|
-
react_1.default.createElement(
|
|
51
|
+
react_1.default.createElement(FeatureDetails_1.default, { ...props,
|
|
53
52
|
// @ts-expect-error
|
|
54
53
|
descriptions: { ...tagInfo_1.tags, tags: tagInfo_1.tags }, feature: feat, formatter: (value, key) => key === 'next_segment_position' ? (react_1.default.createElement(PairLink_1.default, { model: model, locString: value })) : (react_1.default.createElement(Formatter_1.default, { value: value })) }),
|
|
55
54
|
SA !== undefined ? (react_1.default.createElement(SupplementaryAlignments, { model: model, tag: SA, feature: feat })) : null,
|
|
@@ -7,7 +7,7 @@ exports.default = AlignmentFlags;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const material_1 = require("@mui/material");
|
|
9
9
|
const mui_1 = require("tss-react/mui");
|
|
10
|
-
const
|
|
10
|
+
const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
|
|
11
11
|
const SimpleField_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/SimpleField"));
|
|
12
12
|
const useStyles = (0, mui_1.makeStyles)()({
|
|
13
13
|
compact: {
|
|
@@ -34,7 +34,7 @@ function AlignmentFlags(props) {
|
|
|
34
34
|
const { classes } = useStyles();
|
|
35
35
|
const { feature } = props;
|
|
36
36
|
const { flags } = feature;
|
|
37
|
-
return (react_1.default.createElement(
|
|
37
|
+
return (react_1.default.createElement(BaseCard_1.default, { ...props, title: "Flags" },
|
|
38
38
|
react_1.default.createElement(SimpleField_1.default, { name: "Flag", value: flags }),
|
|
39
39
|
react_1.default.createElement(material_1.FormGroup, null, flagNames.map((name, idx) => {
|
|
40
40
|
const val = flags & (1 << idx);
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = SuppAlignments;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const
|
|
8
|
+
const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
|
|
9
9
|
const util_1 = require("@jbrowse/core/util");
|
|
10
10
|
const LaunchPairedEndBreakpointSplitViewPanel_1 = __importDefault(require("./LaunchPairedEndBreakpointSplitViewPanel"));
|
|
11
11
|
function SuppAlignments(props) {
|
|
@@ -19,5 +19,5 @@ function SuppAlignments(props) {
|
|
|
19
19
|
catch (e) {
|
|
20
20
|
// ignore
|
|
21
21
|
}
|
|
22
|
-
return (react_1.default.createElement(
|
|
22
|
+
return (react_1.default.createElement(BaseCard_1.default, { ...props, title: "Supplementary alignments" }, viewType ? (react_1.default.createElement(LaunchPairedEndBreakpointSplitViewPanel_1.default, { viewType: viewType, model: model, feature: feature })) : null));
|
|
23
23
|
}
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.default = SupplementaryAlignments;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const BaseFeatureDetail_1 = require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");
|
|
9
8
|
const util_1 = require("@jbrowse/core/util");
|
|
9
|
+
const BaseCard_1 = __importDefault(require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/BaseCard"));
|
|
10
10
|
const SupplementaryAlignmentsLocStrings_1 = __importDefault(require("./SupplementaryAlignmentsLocStrings"));
|
|
11
11
|
const LaunchSupplementaryAlignmentBreakpointSplitViewPanel_1 = __importDefault(require("./LaunchSupplementaryAlignmentBreakpointSplitViewPanel"));
|
|
12
12
|
function SupplementaryAlignments(props) {
|
|
@@ -20,7 +20,7 @@ function SupplementaryAlignments(props) {
|
|
|
20
20
|
catch (e) {
|
|
21
21
|
// ignore
|
|
22
22
|
}
|
|
23
|
-
return (react_1.default.createElement(
|
|
23
|
+
return (react_1.default.createElement(BaseCard_1.default, { ...props, title: "Supplementary alignments" },
|
|
24
24
|
react_1.default.createElement(SupplementaryAlignmentsLocStrings_1.default, { model: model, tag: tag }),
|
|
25
25
|
viewType ? (react_1.default.createElement(LaunchSupplementaryAlignmentBreakpointSplitViewPanel_1.default, { viewType: viewType, model: model, feature: feature })) : null));
|
|
26
26
|
}
|
|
@@ -4,12 +4,12 @@ exports.getSAFeatures = getSAFeatures;
|
|
|
4
4
|
const util_1 = require("@jbrowse/core/util");
|
|
5
5
|
// locals
|
|
6
6
|
const MismatchParser_1 = require("../MismatchParser");
|
|
7
|
-
const util_2 = require("../util");
|
|
8
7
|
async function getSAFeatures({ view, feature, }) {
|
|
8
|
+
var _a;
|
|
9
9
|
const { assemblyManager } = (0, util_1.getSession)(view);
|
|
10
10
|
const cigar = feature.get('CIGAR');
|
|
11
11
|
const origStrand = feature.get('strand');
|
|
12
|
-
const SA = (
|
|
12
|
+
const SA = ((_a = feature.get('tags')) === null || _a === void 0 ? void 0 : _a.SA) || '';
|
|
13
13
|
const readName = feature.get('name');
|
|
14
14
|
const clipPos = (0, MismatchParser_1.getClip)(cigar, 1);
|
|
15
15
|
// get the canonical refname for the read because if the read.get('refName')
|
|
@@ -92,8 +92,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
92
92
|
trackId: string | undefined;
|
|
93
93
|
trackType: string | undefined;
|
|
94
94
|
maxDepth: number | undefined;
|
|
95
|
-
formattedFields: any;
|
|
96
95
|
sequenceFeatureDetails: import("mobx-state-tree").ModelSnapshotType<{}>;
|
|
96
|
+
formattedFields: any;
|
|
97
97
|
finalizedFeatureData: any;
|
|
98
98
|
} & import("mobx-state-tree")._NotCustomized>;
|
|
99
99
|
export type AlignmentFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
@@ -2,7 +2,7 @@ import { BamFile } from '@gmod/bam';
|
|
|
2
2
|
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
3
|
import { Region } from '@jbrowse/core/util/types';
|
|
4
4
|
import { Feature } from '@jbrowse/core/util';
|
|
5
|
-
import {
|
|
5
|
+
import { FilterBy } from '../shared/types';
|
|
6
6
|
interface Header {
|
|
7
7
|
idToName: string[];
|
|
8
8
|
nameToId: Record<string, number>;
|
|
@@ -10,6 +10,7 @@ interface Header {
|
|
|
10
10
|
export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
11
11
|
private samHeader?;
|
|
12
12
|
private setupP?;
|
|
13
|
+
private ultraLongFeatureCache;
|
|
13
14
|
private configureP?;
|
|
14
15
|
protected configurePre(): Promise<{
|
|
15
16
|
bam: BamFile;
|
|
@@ -30,7 +31,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
|
30
31
|
getFeatures(region: Region & {
|
|
31
32
|
originalRefName?: string;
|
|
32
33
|
}, opts?: BaseOptions & {
|
|
33
|
-
filterBy:
|
|
34
|
+
filterBy: FilterBy;
|
|
34
35
|
}): import("rxjs").Observable<Feature>;
|
|
35
36
|
getMultiRegionFeatureDensityStats(regions: Region[], opts?: BaseOptions): Promise<import("@jbrowse/core/data_adapters/BaseAdapter").FeatureDensityStats | {
|
|
36
37
|
bytes: number;
|
|
@@ -4,15 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const bam_1 = require("@gmod/bam");
|
|
7
|
+
const operators_1 = require("rxjs/operators");
|
|
8
|
+
const rxjs_1 = require("rxjs");
|
|
9
|
+
// jbrowse
|
|
7
10
|
const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
8
11
|
const util_1 = require("@jbrowse/core/util");
|
|
9
12
|
const io_1 = require("@jbrowse/core/util/io");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const rxjs_2 = require("rxjs");
|
|
13
|
+
const rxjs_2 = require("@jbrowse/core/util/rxjs");
|
|
14
|
+
const QuickLRU_1 = __importDefault(require("@jbrowse/core/util/QuickLRU"));
|
|
13
15
|
// locals
|
|
14
16
|
const BamSlightlyLazyFeature_1 = __importDefault(require("./BamSlightlyLazyFeature"));
|
|
15
17
|
class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
// used for avoiding re-creation new BamSlightlyLazyFeatures, keeping
|
|
21
|
+
// mismatches in cache. at an average of 100kb-300kb, keeping even just 500
|
|
22
|
+
// of these in memory is memory intensive but can reduce recomputation on
|
|
23
|
+
// these objects
|
|
24
|
+
this.ultraLongFeatureCache = new QuickLRU_1.default({
|
|
25
|
+
maxSize: 500,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
16
28
|
// derived classes may not use the same configuration so a custom configure
|
|
17
29
|
// method allows derived classes to override this behavior
|
|
18
30
|
async configurePre() {
|
|
@@ -100,7 +112,7 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
100
112
|
end,
|
|
101
113
|
assemblyName: '',
|
|
102
114
|
});
|
|
103
|
-
const seqChunks = await (0,
|
|
115
|
+
const seqChunks = await (0, rxjs_1.firstValueFrom)(features.pipe((0, operators_1.toArray)()));
|
|
104
116
|
let sequence = '';
|
|
105
117
|
seqChunks
|
|
106
118
|
.sort((a, b) => a.get('start') - b.get('start'))
|
|
@@ -121,7 +133,7 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
121
133
|
getFeatures(region, opts) {
|
|
122
134
|
const { refName, start, end, originalRefName } = region;
|
|
123
135
|
const { signal, filterBy, statusCallback = () => { } } = opts || {};
|
|
124
|
-
return (0,
|
|
136
|
+
return (0, rxjs_2.ObservableCreate)(async (observer) => {
|
|
125
137
|
const { bam } = await this.configure();
|
|
126
138
|
await this.setup(opts);
|
|
127
139
|
const records = await (0, util_1.updateStatus)('Downloading alignments', statusCallback, () => bam.getRecordsForRange(refName, start, end, opts));
|
|
@@ -129,26 +141,37 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
129
141
|
const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
|
|
130
142
|
for (const record of records) {
|
|
131
143
|
let ref;
|
|
132
|
-
if (!record.
|
|
133
|
-
ref = await this.seqFetch(originalRefName || refName, record.
|
|
144
|
+
if (!record.tags.MD) {
|
|
145
|
+
ref = await this.seqFetch(originalRefName || refName, record.start, record.end);
|
|
134
146
|
}
|
|
135
147
|
const flags = record.flags;
|
|
136
148
|
if ((flags & flagInclude) !== flagInclude && !(flags & flagExclude)) {
|
|
137
149
|
continue;
|
|
138
150
|
}
|
|
139
151
|
if (tagFilter) {
|
|
140
|
-
const readVal = record.
|
|
152
|
+
const readVal = record.tags[tagFilter.tag];
|
|
141
153
|
const filterVal = tagFilter.value;
|
|
142
154
|
if (filterVal === '*'
|
|
143
|
-
? readVal
|
|
155
|
+
? readVal === undefined
|
|
144
156
|
: `${readVal}` !== `${filterVal}`) {
|
|
145
157
|
continue;
|
|
146
158
|
}
|
|
147
159
|
}
|
|
148
|
-
if (readName && record.
|
|
160
|
+
if (readName && record.name !== readName) {
|
|
149
161
|
continue;
|
|
150
162
|
}
|
|
151
|
-
|
|
163
|
+
// retrieve a feature from our feature cache if it is available, the
|
|
164
|
+
// features in the cache have pre-computed mismatches objects that
|
|
165
|
+
// can be re-used across blocks
|
|
166
|
+
const ret = this.ultraLongFeatureCache.get(`${record.id}`);
|
|
167
|
+
if (!ret) {
|
|
168
|
+
const elt = new BamSlightlyLazyFeature_1.default(record, this, ref);
|
|
169
|
+
this.ultraLongFeatureCache.set(`${record.id}`, elt);
|
|
170
|
+
observer.next(elt);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
observer.next(ret);
|
|
174
|
+
}
|
|
152
175
|
}
|
|
153
176
|
observer.complete();
|
|
154
177
|
});
|
|
@@ -6,26 +6,12 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
6
6
|
private adapter;
|
|
7
7
|
private ref?;
|
|
8
8
|
constructor(record: BamRecord, adapter: BamAdapter, ref?: string | undefined);
|
|
9
|
-
_get_name(): any;
|
|
10
|
-
_get_type(): string;
|
|
11
|
-
_get_score(): number;
|
|
12
|
-
_get_flags(): string;
|
|
13
|
-
_get_strand(): number;
|
|
14
|
-
_get_pair_orientation(): string | undefined;
|
|
15
|
-
_get_next_ref(): string | undefined;
|
|
16
|
-
_get_next_pos(): number | undefined;
|
|
17
|
-
_get_next_segment_position(): string | undefined;
|
|
18
|
-
_get_seq(): string;
|
|
19
|
-
qualRaw(): Buffer | undefined;
|
|
20
|
-
set(): void;
|
|
21
|
-
tags(): string[];
|
|
22
9
|
id(): string;
|
|
10
|
+
get mismatches(): import("../shared/types").Mismatch[];
|
|
11
|
+
get qual(): string | undefined;
|
|
23
12
|
get(field: string): any;
|
|
24
|
-
_get_refName(): string | undefined;
|
|
25
13
|
parent(): undefined;
|
|
26
14
|
children(): undefined;
|
|
27
|
-
|
|
15
|
+
get fields(): SimpleFeatureSerialized;
|
|
28
16
|
toJSON(): SimpleFeatureSerialized;
|
|
29
|
-
_get_mismatches(): import("../MismatchParser").Mismatch[];
|
|
30
|
-
_get_clipPos(): number;
|
|
31
17
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
// locals
|
|
4
4
|
const MismatchParser_1 = require("../MismatchParser");
|
|
5
|
+
const util_1 = require("../shared/util");
|
|
5
6
|
class BamSlightlyLazyFeature {
|
|
6
7
|
// uses parameter properties to automatically create fields on the class
|
|
7
8
|
// https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
|
|
@@ -10,69 +11,22 @@ class BamSlightlyLazyFeature {
|
|
|
10
11
|
this.adapter = adapter;
|
|
11
12
|
this.ref = ref;
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
return this.record.
|
|
15
|
-
}
|
|
16
|
-
_get_type() {
|
|
17
|
-
return 'match';
|
|
18
|
-
}
|
|
19
|
-
_get_score() {
|
|
20
|
-
return this.record.get('mq');
|
|
21
|
-
}
|
|
22
|
-
_get_flags() {
|
|
23
|
-
return this.record.flags;
|
|
24
|
-
}
|
|
25
|
-
_get_strand() {
|
|
26
|
-
return this.record.isReverseComplemented() ? -1 : 1;
|
|
27
|
-
}
|
|
28
|
-
_get_pair_orientation() {
|
|
29
|
-
return this.record.isPaired() ? this.record.getPairOrientation() : undefined;
|
|
30
|
-
}
|
|
31
|
-
_get_next_ref() {
|
|
32
|
-
return this.record.isPaired()
|
|
33
|
-
? this.adapter.refIdToName(this.record._next_refid())
|
|
34
|
-
: undefined;
|
|
35
|
-
}
|
|
36
|
-
_get_next_pos() {
|
|
37
|
-
return this.record.isPaired() ? this.record._next_pos() : undefined;
|
|
38
|
-
}
|
|
39
|
-
_get_next_segment_position() {
|
|
40
|
-
return this.record.isPaired()
|
|
41
|
-
? `${this.adapter.refIdToName(this.record._next_refid())}:${this.record._next_pos() + 1}`
|
|
42
|
-
: undefined;
|
|
43
|
-
}
|
|
44
|
-
_get_seq() {
|
|
45
|
-
return this.record.getReadBases();
|
|
46
|
-
}
|
|
47
|
-
qualRaw() {
|
|
48
|
-
return this.record.qualRaw();
|
|
14
|
+
id() {
|
|
15
|
+
return `${this.adapter.id}-${this.record.id}`;
|
|
49
16
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const properties = Object.getOwnPropertyNames(BamSlightlyLazyFeature.prototype);
|
|
53
|
-
return [
|
|
54
|
-
...new Set(properties
|
|
55
|
-
.filter(prop => prop.startsWith('_get_') &&
|
|
56
|
-
prop !== '_get_mismatches' &&
|
|
57
|
-
prop !== '_get_tags')
|
|
58
|
-
.map(methodName => methodName.replace('_get_', ''))
|
|
59
|
-
.concat(this.record._tags())),
|
|
60
|
-
];
|
|
17
|
+
get mismatches() {
|
|
18
|
+
return (0, MismatchParser_1.getMismatches)(this.record.CIGAR, this.record.tags.MD, this.record.seq, this.ref, this.record.qual);
|
|
61
19
|
}
|
|
62
|
-
|
|
63
|
-
|
|
20
|
+
get qual() {
|
|
21
|
+
var _a;
|
|
22
|
+
return (_a = this.record.qual) === null || _a === void 0 ? void 0 : _a.join(' ');
|
|
64
23
|
}
|
|
65
24
|
get(field) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
return this.record.get(field);
|
|
73
|
-
}
|
|
74
|
-
_get_refName() {
|
|
75
|
-
return this.adapter.refIdToName(this.record.seq_id());
|
|
25
|
+
return field === 'mismatches'
|
|
26
|
+
? this.mismatches
|
|
27
|
+
: field === 'qual'
|
|
28
|
+
? this.qual
|
|
29
|
+
: this.fields[field];
|
|
76
30
|
}
|
|
77
31
|
parent() {
|
|
78
32
|
return undefined;
|
|
@@ -80,23 +34,39 @@ class BamSlightlyLazyFeature {
|
|
|
80
34
|
children() {
|
|
81
35
|
return undefined;
|
|
82
36
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
37
|
+
get fields() {
|
|
38
|
+
const r = this.record;
|
|
39
|
+
const a = this.adapter;
|
|
40
|
+
const p = r.isPaired();
|
|
87
41
|
return {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
42
|
+
start: r.start,
|
|
43
|
+
name: r.name,
|
|
44
|
+
end: r.end,
|
|
45
|
+
score: r.score,
|
|
46
|
+
strand: r.strand,
|
|
47
|
+
template_length: r.template_length,
|
|
48
|
+
flags: r.flags,
|
|
49
|
+
tags: r.tags,
|
|
50
|
+
refName: a.refIdToName(r.ref_id),
|
|
51
|
+
CIGAR: r.CIGAR,
|
|
52
|
+
seq: r.seq,
|
|
53
|
+
type: 'match',
|
|
54
|
+
pair_orientation: r.pair_orientation,
|
|
55
|
+
next_ref: p ? a.refIdToName(r.next_refid) : undefined,
|
|
56
|
+
next_pos: p ? r.next_pos : undefined,
|
|
57
|
+
next_segment_position: p
|
|
58
|
+
? `${a.refIdToName(r.next_refid)}:${r.next_pos + 1}`
|
|
59
|
+
: undefined,
|
|
91
60
|
uniqueId: this.id(),
|
|
92
61
|
};
|
|
93
62
|
}
|
|
94
|
-
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return (0, MismatchParser_1.getClip)(cigar, this.get('strand'));
|
|
63
|
+
toJSON() {
|
|
64
|
+
return {
|
|
65
|
+
...this.fields,
|
|
66
|
+
qual: this.qual,
|
|
67
|
+
};
|
|
100
68
|
}
|
|
101
69
|
}
|
|
102
70
|
exports.default = BamSlightlyLazyFeature;
|
|
71
|
+
(0, util_1.cacheGetter)(BamSlightlyLazyFeature, 'fields');
|
|
72
|
+
(0, util_1.cacheGetter)(BamSlightlyLazyFeature, 'mismatches');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IndexedCramFile, CramRecord } from '@gmod/cram';
|
|
2
2
|
import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
3
|
-
import { Region, Feature } from '@jbrowse/core/util';
|
|
3
|
+
import type { Region, Feature } from '@jbrowse/core/util';
|
|
4
4
|
import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
|
|
5
|
-
import {
|
|
5
|
+
import { FilterBy } from '../shared/types';
|
|
6
6
|
interface Header {
|
|
7
7
|
idToName?: string[];
|
|
8
8
|
nameToId?: Record<string, number>;
|
|
@@ -12,6 +12,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
12
12
|
samHeader: Header;
|
|
13
13
|
private setupP?;
|
|
14
14
|
private configureP?;
|
|
15
|
+
private ultraLongFeatureCache;
|
|
15
16
|
private seqIdToRefName;
|
|
16
17
|
private seqIdToOriginalRefName;
|
|
17
18
|
configurePre(): Promise<{
|
|
@@ -33,7 +34,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
33
34
|
getFeatures(region: Region & {
|
|
34
35
|
originalRefName?: string;
|
|
35
36
|
}, opts?: BaseOptions & {
|
|
36
|
-
filterBy:
|
|
37
|
+
filterBy: FilterBy;
|
|
37
38
|
}): import("rxjs").Observable<Feature>;
|
|
38
39
|
freeResources(): void;
|
|
39
40
|
cramRecordToFeature(record: CramRecord): CramSlightlyLazyFeature;
|
|
@@ -4,18 +4,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const cram_1 = require("@gmod/cram");
|
|
7
|
+
const operators_1 = require("rxjs/operators");
|
|
8
|
+
const rxjs_1 = require("rxjs");
|
|
9
|
+
// jbrowse
|
|
7
10
|
const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
|
|
8
11
|
const util_1 = require("@jbrowse/core/util");
|
|
9
12
|
const io_1 = require("@jbrowse/core/util/io");
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const rxjs_2 = require("rxjs");
|
|
13
|
+
const rxjs_2 = require("@jbrowse/core/util/rxjs");
|
|
14
|
+
const QuickLRU_1 = __importDefault(require("@jbrowse/core/util/QuickLRU"));
|
|
13
15
|
// locals
|
|
14
16
|
const CramSlightlyLazyFeature_1 = __importDefault(require("./CramSlightlyLazyFeature"));
|
|
15
17
|
class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
16
18
|
constructor() {
|
|
17
19
|
super(...arguments);
|
|
18
20
|
this.samHeader = {};
|
|
21
|
+
// used for avoiding re-creation new BamSlightlyLazyFeatures, keeping
|
|
22
|
+
// mismatches in cache. at an average of 100kb-300kb, keeping even just 500
|
|
23
|
+
// of these in memory is fairly intensive but can reduce recomputation on
|
|
24
|
+
// these objects
|
|
25
|
+
this.ultraLongFeatureCache = new QuickLRU_1.default({
|
|
26
|
+
maxSize: 500,
|
|
27
|
+
});
|
|
19
28
|
// maps a seqId to original refname, passed specially to render args, to a seqid
|
|
20
29
|
this.seqIdToOriginalRefName = [];
|
|
21
30
|
}
|
|
@@ -62,7 +71,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
62
71
|
if (!refName) {
|
|
63
72
|
throw new Error('unknown');
|
|
64
73
|
}
|
|
65
|
-
const seqChunks = await (0,
|
|
74
|
+
const seqChunks = await (0, rxjs_1.firstValueFrom)(sequenceAdapter
|
|
66
75
|
.getFeatures({
|
|
67
76
|
refName,
|
|
68
77
|
start,
|
|
@@ -155,7 +164,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
155
164
|
getFeatures(region, opts) {
|
|
156
165
|
const { signal, filterBy, statusCallback = () => { } } = opts || {};
|
|
157
166
|
const { refName, start, end, originalRefName } = region;
|
|
158
|
-
return (0,
|
|
167
|
+
return (0, rxjs_2.ObservableCreate)(async (observer) => {
|
|
159
168
|
const { cram, samHeader } = await this.setup(opts);
|
|
160
169
|
const refId = this.refNameToId(refName);
|
|
161
170
|
if (refId === undefined) {
|
|
@@ -182,7 +191,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
182
191
|
: record.tags[tagFilter.tag];
|
|
183
192
|
const filterVal = tagFilter.value;
|
|
184
193
|
if (filterVal === '*'
|
|
185
|
-
? readVal
|
|
194
|
+
? readVal === undefined
|
|
186
195
|
: `${readVal}` !== `${filterVal}`) {
|
|
187
196
|
continue;
|
|
188
197
|
}
|
|
@@ -190,7 +199,15 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
190
199
|
if (readName && record.readName !== readName) {
|
|
191
200
|
continue;
|
|
192
201
|
}
|
|
193
|
-
|
|
202
|
+
const ret = this.ultraLongFeatureCache.get(`${record.uniqueId}`);
|
|
203
|
+
if (!ret) {
|
|
204
|
+
const elt = this.cramRecordToFeature(record);
|
|
205
|
+
this.ultraLongFeatureCache.set(`${record.uniqueId}`, elt);
|
|
206
|
+
observer.next(elt);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
observer.next(ret);
|
|
210
|
+
}
|
|
194
211
|
}
|
|
195
212
|
observer.complete();
|
|
196
213
|
});
|
|
@@ -1,39 +1,33 @@
|
|
|
1
|
-
import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util
|
|
1
|
+
import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util';
|
|
2
2
|
import { CramRecord } from '@gmod/cram';
|
|
3
3
|
import CramAdapter from './CramAdapter';
|
|
4
4
|
export default class CramSlightlyLazyFeature implements Feature {
|
|
5
5
|
private record;
|
|
6
6
|
private _store;
|
|
7
7
|
constructor(record: CramRecord, _store: CramAdapter);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
_get_tags(): Record<string, string>;
|
|
27
|
-
_get_seq(): string | null | undefined;
|
|
28
|
-
_get_CIGAR(): string;
|
|
29
|
-
tags(): string[];
|
|
8
|
+
get name(): string | undefined;
|
|
9
|
+
get start(): number;
|
|
10
|
+
get end(): number;
|
|
11
|
+
get score(): number | undefined;
|
|
12
|
+
get flags(): number;
|
|
13
|
+
get strand(): 1 | -1;
|
|
14
|
+
get qual(): string;
|
|
15
|
+
get qualRaw(): number[] | null | undefined;
|
|
16
|
+
get refName(): string;
|
|
17
|
+
get pair_orientation(): string | null | undefined;
|
|
18
|
+
get template_length(): number | undefined;
|
|
19
|
+
get next_ref(): string | undefined;
|
|
20
|
+
get next_segment_position(): string | undefined;
|
|
21
|
+
get is_paired(): boolean;
|
|
22
|
+
get next_pos(): number | undefined;
|
|
23
|
+
get tags(): Record<string, string>;
|
|
24
|
+
get seq(): string | null | undefined;
|
|
25
|
+
get CIGAR(): string;
|
|
30
26
|
id(): string;
|
|
31
27
|
get(field: string): any;
|
|
32
28
|
parent(): undefined;
|
|
33
29
|
children(): undefined;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
_get_clipPos(): any;
|
|
30
|
+
get mismatches(): import("../shared/types").Mismatch[];
|
|
31
|
+
get fields(): SimpleFeatureSerialized;
|
|
37
32
|
toJSON(): SimpleFeatureSerialized;
|
|
38
|
-
_get_mismatches(): import("./util").Mismatch[];
|
|
39
33
|
}
|