@jbrowse/plugin-alignments 1.6.7 → 1.7.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 +216 -0
- package/dist/AlignmentsFeatureDetail/index.js +63 -0
- package/dist/AlignmentsFeatureDetail/index.test.js +60 -0
- package/dist/AlignmentsTrack/index.js +37 -0
- package/dist/BamAdapter/BamAdapter.js +598 -0
- package/dist/BamAdapter/BamAdapter.test.js +177 -0
- package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +1 -10
- package/dist/BamAdapter/BamSlightlyLazyFeature.js +176 -0
- package/dist/BamAdapter/MismatchParser.d.ts +3 -5
- package/dist/BamAdapter/MismatchParser.js +384 -0
- package/dist/BamAdapter/MismatchParser.test.js +259 -0
- package/dist/BamAdapter/configSchema.js +48 -0
- package/dist/BamAdapter/index.js +36 -0
- package/dist/CramAdapter/CramAdapter.js +660 -0
- package/dist/CramAdapter/CramAdapter.test.js +138 -0
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +1 -2
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +447 -0
- package/dist/CramAdapter/CramTestAdapters.js +234 -0
- package/dist/CramAdapter/configSchema.js +40 -0
- package/dist/CramAdapter/index.js +36 -0
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +97 -0
- package/dist/HtsgetBamAdapter/configSchema.js +31 -0
- package/dist/HtsgetBamAdapter/index.js +42 -0
- package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +69 -0
- package/dist/LinearAlignmentsDisplay/index.js +31 -0
- package/dist/LinearAlignmentsDisplay/models/configSchema.js +25 -0
- package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +83 -0
- package/dist/LinearAlignmentsDisplay/models/model.js +250 -0
- package/dist/LinearPileupDisplay/components/ColorByModifications.js +123 -0
- package/dist/LinearPileupDisplay/components/ColorByTag.js +98 -0
- package/dist/LinearPileupDisplay/components/FilterByTag.js +203 -0
- package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +32 -0
- package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +99 -0
- package/dist/LinearPileupDisplay/components/SetMaxHeight.js +90 -0
- package/dist/LinearPileupDisplay/components/SortByTag.js +95 -0
- package/dist/LinearPileupDisplay/configSchema.js +47 -0
- package/dist/LinearPileupDisplay/configSchema.test.js +92 -0
- package/dist/LinearPileupDisplay/index.js +30 -0
- package/dist/LinearPileupDisplay/model.js +602 -0
- package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +63 -0
- package/dist/LinearSNPCoverageDisplay/index.js +30 -0
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js +57 -0
- package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +62 -0
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +2 -2
- package/dist/LinearSNPCoverageDisplay/models/model.js +237 -0
- package/dist/NestedFrequencyTable.js +152 -0
- package/dist/PileupRPC/rpcMethods.js +285 -0
- package/dist/PileupRenderer/PileupLayoutSession.js +79 -0
- package/dist/PileupRenderer/PileupRenderer.d.ts +20 -6
- package/dist/PileupRenderer/PileupRenderer.js +1220 -0
- package/dist/PileupRenderer/components/PileupRendering.js +270 -0
- package/dist/PileupRenderer/components/PileupRendering.test.js +36 -0
- package/dist/PileupRenderer/configSchema.js +72 -0
- package/dist/PileupRenderer/index.js +25 -0
- package/dist/PileupRenderer/sortUtil.js +112 -0
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +3 -11
- package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +606 -0
- package/dist/SNPCoverageAdapter/configSchema.js +22 -0
- package/dist/SNPCoverageAdapter/index.js +45 -0
- package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +296 -0
- package/dist/SNPCoverageRenderer/configSchema.js +40 -0
- package/dist/SNPCoverageRenderer/index.js +34 -0
- package/dist/declare.d.js +1 -0
- package/dist/index.js +154 -6
- package/dist/index.test.js +26 -0
- package/dist/plugin-alignments.cjs.development.js +591 -552
- package/dist/plugin-alignments.cjs.development.js.map +1 -1
- package/dist/plugin-alignments.cjs.production.min.js +1 -1
- package/dist/plugin-alignments.cjs.production.min.js.map +1 -1
- package/dist/plugin-alignments.esm.js +594 -555
- package/dist/plugin-alignments.esm.js.map +1 -1
- package/dist/shared.js +96 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.js +135 -0
- package/package.json +5 -9
- package/src/BamAdapter/BamAdapter.ts +45 -15
- package/src/BamAdapter/BamSlightlyLazyFeature.ts +11 -79
- package/src/BamAdapter/MismatchParser.test.ts +53 -297
- package/src/BamAdapter/MismatchParser.ts +54 -116
- package/src/BamAdapter/configSchema.ts +0 -4
- package/src/CramAdapter/CramAdapter.ts +42 -15
- package/src/CramAdapter/CramSlightlyLazyFeature.ts +3 -10
- package/src/LinearPileupDisplay/components/ColorByModifications.tsx +76 -80
- package/src/LinearPileupDisplay/components/ColorByTag.tsx +24 -23
- package/src/LinearPileupDisplay/components/FilterByTag.tsx +73 -68
- package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +28 -26
- package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +24 -13
- package/src/LinearPileupDisplay/components/SortByTag.tsx +29 -21
- package/src/LinearPileupDisplay/model.ts +8 -22
- package/src/LinearSNPCoverageDisplay/models/model.ts +6 -36
- package/src/PileupRenderer/PileupRenderer.tsx +178 -60
- package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +189 -244
- package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +12 -11
- package/src/util.ts +25 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _operators = require("rxjs/operators");
|
|
10
|
+
|
|
11
|
+
var _BamAdapter = _interopRequireDefault(require("./BamAdapter"));
|
|
12
|
+
|
|
13
|
+
var _configSchema = _interopRequireDefault(require("./configSchema"));
|
|
14
|
+
|
|
15
|
+
test('adapter can fetch features from volvox.bam', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
16
|
+
var adapter, features, featuresArray, featuresJsonArray, adapterCSI, featuresCSI, featuresArrayCSI, featuresJsonArrayCSI;
|
|
17
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
18
|
+
while (1) {
|
|
19
|
+
switch (_context.prev = _context.next) {
|
|
20
|
+
case 0:
|
|
21
|
+
adapter = new _BamAdapter["default"](_configSchema["default"].create({
|
|
22
|
+
bamLocation: {
|
|
23
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
24
|
+
locationType: 'LocalPathLocation'
|
|
25
|
+
},
|
|
26
|
+
index: {
|
|
27
|
+
location: {
|
|
28
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
|
|
29
|
+
locationType: 'LocalPathLocation'
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
features = adapter.getFeatures({
|
|
34
|
+
assemblyName: 'volvox',
|
|
35
|
+
refName: 'ctgA',
|
|
36
|
+
start: 0,
|
|
37
|
+
end: 20000
|
|
38
|
+
});
|
|
39
|
+
_context.next = 4;
|
|
40
|
+
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
41
|
+
|
|
42
|
+
case 4:
|
|
43
|
+
featuresArray = _context.sent;
|
|
44
|
+
expect(featuresArray[0].get('refName')).toBe('ctgA');
|
|
45
|
+
featuresJsonArray = featuresArray.map(function (f) {
|
|
46
|
+
return f.toJSON();
|
|
47
|
+
});
|
|
48
|
+
expect(featuresJsonArray.length).toEqual(3809);
|
|
49
|
+
expect(featuresJsonArray.slice(1000, 1010)).toMatchSnapshot();
|
|
50
|
+
expect(adapter.refIdToName(0)).toBe('ctgA');
|
|
51
|
+
expect(adapter.refIdToName(1)).toBe(undefined);
|
|
52
|
+
_context.t0 = expect;
|
|
53
|
+
_context.next = 14;
|
|
54
|
+
return adapter.hasDataForRefName('ctgA');
|
|
55
|
+
|
|
56
|
+
case 14:
|
|
57
|
+
_context.t1 = _context.sent;
|
|
58
|
+
(0, _context.t0)(_context.t1).toBe(true);
|
|
59
|
+
adapterCSI = new _BamAdapter["default"](_configSchema["default"].create({
|
|
60
|
+
bamLocation: {
|
|
61
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
62
|
+
locationType: 'LocalPathLocation'
|
|
63
|
+
},
|
|
64
|
+
index: {
|
|
65
|
+
indexType: 'CSI',
|
|
66
|
+
location: {
|
|
67
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam.csi'),
|
|
68
|
+
locationType: 'LocalPathLocation'
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
featuresCSI = adapterCSI.getFeatures({
|
|
73
|
+
assemblyName: 'volvox',
|
|
74
|
+
refName: 'ctgA',
|
|
75
|
+
start: 0,
|
|
76
|
+
end: 20000
|
|
77
|
+
});
|
|
78
|
+
_context.next = 20;
|
|
79
|
+
return featuresCSI.pipe((0, _operators.toArray)()).toPromise();
|
|
80
|
+
|
|
81
|
+
case 20:
|
|
82
|
+
featuresArrayCSI = _context.sent;
|
|
83
|
+
featuresJsonArrayCSI = featuresArrayCSI.map(function (f) {
|
|
84
|
+
return f.toJSON();
|
|
85
|
+
});
|
|
86
|
+
expect(featuresJsonArrayCSI).toEqual(featuresJsonArray);
|
|
87
|
+
|
|
88
|
+
case 23:
|
|
89
|
+
case "end":
|
|
90
|
+
return _context.stop();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}, _callee);
|
|
94
|
+
})));
|
|
95
|
+
test('test usage of BamSlightlyLazyFeature toJSON (used in the widget)', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
96
|
+
var adapter, features, featuresArray, f;
|
|
97
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
98
|
+
while (1) {
|
|
99
|
+
switch (_context2.prev = _context2.next) {
|
|
100
|
+
case 0:
|
|
101
|
+
adapter = new _BamAdapter["default"](_configSchema["default"].create({
|
|
102
|
+
bamLocation: {
|
|
103
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam'),
|
|
104
|
+
locationType: 'LocalPathLocation'
|
|
105
|
+
},
|
|
106
|
+
index: {
|
|
107
|
+
location: {
|
|
108
|
+
localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
|
|
109
|
+
locationType: 'LocalPathLocation'
|
|
110
|
+
},
|
|
111
|
+
indexType: 'BAI'
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
features = adapter.getFeatures({
|
|
115
|
+
assemblyName: 'volvox',
|
|
116
|
+
refName: 'ctgA',
|
|
117
|
+
start: 0,
|
|
118
|
+
end: 100
|
|
119
|
+
});
|
|
120
|
+
_context2.next = 4;
|
|
121
|
+
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
122
|
+
|
|
123
|
+
case 4:
|
|
124
|
+
featuresArray = _context2.sent;
|
|
125
|
+
f = featuresArray[0].toJSON();
|
|
126
|
+
expect(f.refName).toBe('ctgA');
|
|
127
|
+
expect(f.start).toBe(2);
|
|
128
|
+
expect(f.end).toBe(102);
|
|
129
|
+
expect(f.mismatches).not.toBeTruthy();
|
|
130
|
+
|
|
131
|
+
case 10:
|
|
132
|
+
case "end":
|
|
133
|
+
return _context2.stop();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}, _callee2);
|
|
137
|
+
})));
|
|
138
|
+
test('test usage of BamSlightlyLazyFeature for extended CIGAR', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
139
|
+
var adapter, features, featuresArray, f;
|
|
140
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
141
|
+
while (1) {
|
|
142
|
+
switch (_context3.prev = _context3.next) {
|
|
143
|
+
case 0:
|
|
144
|
+
adapter = new _BamAdapter["default"](_configSchema["default"].create({
|
|
145
|
+
bamLocation: {
|
|
146
|
+
localPath: require.resolve('../../test_data/extended_cigar.bam'),
|
|
147
|
+
locationType: 'LocalPathLocation'
|
|
148
|
+
},
|
|
149
|
+
index: {
|
|
150
|
+
location: {
|
|
151
|
+
localPath: require.resolve('../../test_data/extended_cigar.bam.bai'),
|
|
152
|
+
locationType: 'LocalPathLocation'
|
|
153
|
+
},
|
|
154
|
+
indexType: 'BAI'
|
|
155
|
+
}
|
|
156
|
+
}));
|
|
157
|
+
features = adapter.getFeatures({
|
|
158
|
+
assemblyName: 'hg19',
|
|
159
|
+
refName: '1',
|
|
160
|
+
start: 13260,
|
|
161
|
+
end: 13340
|
|
162
|
+
});
|
|
163
|
+
_context3.next = 4;
|
|
164
|
+
return features.pipe((0, _operators.toArray)()).toPromise();
|
|
165
|
+
|
|
166
|
+
case 4:
|
|
167
|
+
featuresArray = _context3.sent;
|
|
168
|
+
f = featuresArray[0];
|
|
169
|
+
expect(f.get('mismatches')).toMatchSnapshot();
|
|
170
|
+
|
|
171
|
+
case 7:
|
|
172
|
+
case "end":
|
|
173
|
+
return _context3.stop();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}, _callee3);
|
|
177
|
+
})));
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
|
|
3
3
|
import { BamRecord } from '@gmod/bam';
|
|
4
|
-
import { Mismatch } from './MismatchParser';
|
|
5
4
|
import BamAdapter from './BamAdapter';
|
|
6
5
|
export default class BamSlightlyLazyFeature implements Feature {
|
|
7
6
|
private record;
|
|
8
7
|
private adapter;
|
|
9
8
|
private ref?;
|
|
10
|
-
private cachedMD;
|
|
11
9
|
constructor(record: BamRecord, adapter: BamAdapter, ref?: string | undefined);
|
|
12
10
|
_get_name(): any;
|
|
13
11
|
_get_type(): string;
|
|
@@ -20,7 +18,6 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
20
18
|
_get_next_refName(): string | undefined;
|
|
21
19
|
_get_next_segment_position(): string | undefined;
|
|
22
20
|
_get_seq(): string;
|
|
23
|
-
_get_MD(): any;
|
|
24
21
|
qualRaw(): Buffer | undefined;
|
|
25
22
|
set(): void;
|
|
26
23
|
tags(): string[];
|
|
@@ -31,12 +28,6 @@ export default class BamSlightlyLazyFeature implements Feature {
|
|
|
31
28
|
children(): undefined;
|
|
32
29
|
pairedFeature(): boolean;
|
|
33
30
|
toJSON(): SimpleFeatureSerialized;
|
|
34
|
-
|
|
35
|
-
cigarAttributeName: string;
|
|
36
|
-
}): Mismatch[];
|
|
37
|
-
_get_mismatches({ cigarAttributeName, mdAttributeName, }?: {
|
|
38
|
-
cigarAttributeName?: string;
|
|
39
|
-
mdAttributeName?: string;
|
|
40
|
-
}): Mismatch[];
|
|
31
|
+
_get_mismatches(): import("./MismatchParser").Mismatch[];
|
|
41
32
|
_get_clipPos(): number;
|
|
42
33
|
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _MismatchParser = require("./MismatchParser");
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
+
|
|
24
|
+
var BamSlightlyLazyFeature = /*#__PURE__*/function () {
|
|
25
|
+
// uses parameter properties to automatically create fields on the class
|
|
26
|
+
// https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
|
|
27
|
+
function BamSlightlyLazyFeature(record, adapter, ref) {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, BamSlightlyLazyFeature);
|
|
29
|
+
this.record = record;
|
|
30
|
+
this.adapter = adapter;
|
|
31
|
+
this.ref = ref;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
(0, _createClass2["default"])(BamSlightlyLazyFeature, [{
|
|
35
|
+
key: "_get_name",
|
|
36
|
+
value: function _get_name() {
|
|
37
|
+
return this.record.get('name');
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "_get_type",
|
|
41
|
+
value: function _get_type() {
|
|
42
|
+
return 'match';
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "_get_score",
|
|
46
|
+
value: function _get_score() {
|
|
47
|
+
return this.record.get('mq');
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "_get_flags",
|
|
51
|
+
value: function _get_flags() {
|
|
52
|
+
return this.record.flags;
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
key: "_get_strand",
|
|
56
|
+
value: function _get_strand() {
|
|
57
|
+
return this.record.isReverseComplemented() ? -1 : 1;
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "_get_pair_orientation",
|
|
61
|
+
value: function _get_pair_orientation() {
|
|
62
|
+
return this.record.isPaired() ? this.record.getPairOrientation() : undefined;
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
key: "_get_next_seq_id",
|
|
66
|
+
value: function _get_next_seq_id() {
|
|
67
|
+
return this.record._next_refid();
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "_get_seq_id",
|
|
71
|
+
value: function _get_seq_id() {
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
return this.record._refID;
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "_get_next_refName",
|
|
77
|
+
value: function _get_next_refName() {
|
|
78
|
+
return this.adapter.refIdToName(this.record._next_refid());
|
|
79
|
+
}
|
|
80
|
+
}, {
|
|
81
|
+
key: "_get_next_segment_position",
|
|
82
|
+
value: function _get_next_segment_position() {
|
|
83
|
+
var record = this.record,
|
|
84
|
+
adapter = this.adapter;
|
|
85
|
+
return record.isPaired() ? "".concat(adapter.refIdToName(record._next_refid()), ":").concat(record._next_pos() + 1) : undefined;
|
|
86
|
+
}
|
|
87
|
+
}, {
|
|
88
|
+
key: "_get_seq",
|
|
89
|
+
value: function _get_seq() {
|
|
90
|
+
return this.record.getReadBases();
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "qualRaw",
|
|
94
|
+
value: function qualRaw() {
|
|
95
|
+
return this.record.qualRaw();
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
key: "set",
|
|
99
|
+
value: function set() {}
|
|
100
|
+
}, {
|
|
101
|
+
key: "tags",
|
|
102
|
+
value: function tags() {
|
|
103
|
+
var properties = Object.getOwnPropertyNames(BamSlightlyLazyFeature.prototype);
|
|
104
|
+
return (0, _toConsumableArray2["default"])(new Set(properties.filter(function (prop) {
|
|
105
|
+
return prop.startsWith('_get_') && prop !== '_get_mismatches' && prop !== '_get_tags' && prop !== '_get_next_seq_id' && prop !== '_get_seq_id';
|
|
106
|
+
}).map(function (methodName) {
|
|
107
|
+
return methodName.replace('_get_', '');
|
|
108
|
+
}).concat(this.record._tags())));
|
|
109
|
+
}
|
|
110
|
+
}, {
|
|
111
|
+
key: "id",
|
|
112
|
+
value: function id() {
|
|
113
|
+
return "".concat(this.adapter.id, "-").concat(this.record.id());
|
|
114
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
+
|
|
116
|
+
}, {
|
|
117
|
+
key: "get",
|
|
118
|
+
value: function get(field) {
|
|
119
|
+
var methodName = "_get_".concat(field); // @ts-ignore
|
|
120
|
+
|
|
121
|
+
if (this[methodName]) {
|
|
122
|
+
// @ts-ignore
|
|
123
|
+
return this[methodName]();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return this.record.get(field);
|
|
127
|
+
}
|
|
128
|
+
}, {
|
|
129
|
+
key: "_get_refName",
|
|
130
|
+
value: function _get_refName() {
|
|
131
|
+
return this.adapter.refIdToName(this.record.seq_id());
|
|
132
|
+
}
|
|
133
|
+
}, {
|
|
134
|
+
key: "parent",
|
|
135
|
+
value: function parent() {
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
}, {
|
|
139
|
+
key: "children",
|
|
140
|
+
value: function children() {
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
}, {
|
|
144
|
+
key: "pairedFeature",
|
|
145
|
+
value: function pairedFeature() {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
}, {
|
|
149
|
+
key: "toJSON",
|
|
150
|
+
value: function toJSON() {
|
|
151
|
+
var _this = this;
|
|
152
|
+
|
|
153
|
+
return _objectSpread(_objectSpread({}, Object.fromEntries(this.tags().map(function (t) {
|
|
154
|
+
return [t, _this.get(t)];
|
|
155
|
+
}).filter(function (elt) {
|
|
156
|
+
return elt[1] !== undefined;
|
|
157
|
+
}))), {}, {
|
|
158
|
+
uniqueId: this.id()
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}, {
|
|
162
|
+
key: "_get_mismatches",
|
|
163
|
+
value: function _get_mismatches() {
|
|
164
|
+
return (0, _MismatchParser.getMismatches)(this.get('CIGAR'), this.get('MD'), this.get('seq'), this.ref, this.qualRaw());
|
|
165
|
+
}
|
|
166
|
+
}, {
|
|
167
|
+
key: "_get_clipPos",
|
|
168
|
+
value: function _get_clipPos() {
|
|
169
|
+
var cigar = this.get('CIGAR') || '';
|
|
170
|
+
return this.get('strand') === -1 ? +(cigar.match(/(\d+)[SH]$/) || [])[1] || 0 : +(cigar.match(/^(\d+)([SH])/) || [])[1] || 0;
|
|
171
|
+
}
|
|
172
|
+
}]);
|
|
173
|
+
return BamSlightlyLazyFeature;
|
|
174
|
+
}();
|
|
175
|
+
|
|
176
|
+
exports["default"] = BamSlightlyLazyFeature;
|
|
@@ -10,15 +10,13 @@ export interface Mismatch {
|
|
|
10
10
|
cliplen?: number;
|
|
11
11
|
}
|
|
12
12
|
export declare function parseCigar(cigar: string): string[];
|
|
13
|
-
export declare function cigarToMismatches(ops: string[], seq: string, qual?: Buffer): Mismatch[];
|
|
13
|
+
export declare function cigarToMismatches(ops: string[], seq: string, ref?: string, qual?: Buffer): Mismatch[];
|
|
14
14
|
/**
|
|
15
15
|
* parse a SAM MD tag to find mismatching bases of the template versus the reference
|
|
16
16
|
* @returns array of mismatches and their positions
|
|
17
17
|
*/
|
|
18
|
-
export declare function mdToMismatches(mdstring: string,
|
|
19
|
-
export declare function
|
|
20
|
-
export declare function getMismatches(cigarString: string, mdString: string, seq: string, qual?: Buffer): Mismatch[];
|
|
21
|
-
export declare function generateMD(target: string, query: string, cigar: string): string;
|
|
18
|
+
export declare function mdToMismatches(mdstring: string, ops: string[], cigarMismatches: Mismatch[], seq: string, qual?: Buffer): Mismatch[];
|
|
19
|
+
export declare function getMismatches(cigar: string, md: string, seq: string, ref?: string, qual?: Buffer): Mismatch[];
|
|
22
20
|
export declare function getNextRefPos(cigarOps: string[], positions: number[]): Generator<number, void, unknown>;
|
|
23
21
|
export declare function getModificationPositions(mm: string, fseq: string, fstrand: number): ({
|
|
24
22
|
type: string;
|