@jbrowse/plugin-alignments 2.1.0 → 2.1.2

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.
Files changed (115) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +61 -90
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsFeatureDetail/index.js +14 -16
  4. package/dist/AlignmentsFeatureDetail/index.js.map +1 -1
  5. package/dist/AlignmentsTrack/index.js +8 -8
  6. package/dist/AlignmentsTrack/index.js.map +1 -1
  7. package/dist/BamAdapter/BamAdapter.js +157 -336
  8. package/dist/BamAdapter/BamAdapter.js.map +1 -1
  9. package/dist/BamAdapter/BamSlightlyLazyFeature.js +68 -103
  10. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  11. package/dist/BamAdapter/MismatchParser.js +96 -162
  12. package/dist/BamAdapter/MismatchParser.js.map +1 -1
  13. package/dist/BamAdapter/configSchema.js +27 -29
  14. package/dist/BamAdapter/configSchema.js.map +1 -1
  15. package/dist/BamAdapter/index.js +9 -11
  16. package/dist/BamAdapter/index.js.map +1 -1
  17. package/dist/CramAdapter/CramAdapter.js +193 -351
  18. package/dist/CramAdapter/CramAdapter.js.map +1 -1
  19. package/dist/CramAdapter/CramSlightlyLazyFeature.js +119 -154
  20. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  21. package/dist/CramAdapter/CramTestAdapters.js +51 -148
  22. package/dist/CramAdapter/CramTestAdapters.js.map +1 -1
  23. package/dist/CramAdapter/configSchema.js +23 -25
  24. package/dist/CramAdapter/configSchema.js.map +1 -1
  25. package/dist/CramAdapter/index.js +9 -11
  26. package/dist/CramAdapter/index.js.map +1 -1
  27. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +25 -87
  28. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
  29. package/dist/HtsgetBamAdapter/configSchema.js +16 -18
  30. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -1
  31. package/dist/HtsgetBamAdapter/index.js +15 -19
  32. package/dist/HtsgetBamAdapter/index.js.map +1 -1
  33. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +14 -15
  34. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  35. package/dist/LinearAlignmentsDisplay/index.js +7 -7
  36. package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
  37. package/dist/LinearAlignmentsDisplay/models/configSchema.js +5 -5
  38. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  39. package/dist/LinearAlignmentsDisplay/models/model.js +64 -140
  40. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  41. package/dist/LinearPileupDisplay/components/ColorByModifications.js +24 -53
  42. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -1
  43. package/dist/LinearPileupDisplay/components/ColorByTag.js +14 -30
  44. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -1
  45. package/dist/LinearPileupDisplay/components/FilterByTag.js +33 -49
  46. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -1
  47. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +7 -7
  48. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -1
  49. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +17 -33
  50. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  51. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +14 -30
  52. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -1
  53. package/dist/LinearPileupDisplay/components/SortByTag.js +14 -30
  54. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -1
  55. package/dist/LinearPileupDisplay/configSchema.js +4 -4
  56. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  57. package/dist/LinearPileupDisplay/index.js +7 -7
  58. package/dist/LinearPileupDisplay/index.js.map +1 -1
  59. package/dist/LinearPileupDisplay/model.d.ts +2 -2
  60. package/dist/LinearPileupDisplay/model.js +534 -644
  61. package/dist/LinearPileupDisplay/model.js.map +1 -1
  62. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  63. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +30 -78
  64. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -1
  65. package/dist/LinearSNPCoverageDisplay/index.js +7 -7
  66. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
  67. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +4 -4
  68. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
  69. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +1 -1
  70. package/dist/LinearSNPCoverageDisplay/models/model.js +170 -244
  71. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  72. package/dist/NestedFrequencyTable.js +27 -40
  73. package/dist/NestedFrequencyTable.js.map +1 -1
  74. package/dist/PileupRPC/rpcMethods.js +63 -191
  75. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  76. package/dist/PileupRenderer/PileupLayoutSession.js +25 -47
  77. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -1
  78. package/dist/PileupRenderer/PileupRenderer.js +395 -529
  79. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  80. package/dist/PileupRenderer/components/PileupRendering.js +41 -68
  81. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -1
  82. package/dist/PileupRenderer/configSchema.js +2 -2
  83. package/dist/PileupRenderer/configSchema.js.map +1 -1
  84. package/dist/PileupRenderer/index.js +9 -11
  85. package/dist/PileupRenderer/index.js.map +1 -1
  86. package/dist/PileupRenderer/sortUtil.js +36 -40
  87. package/dist/PileupRenderer/sortUtil.js.map +1 -1
  88. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +229 -415
  89. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -1
  90. package/dist/SNPCoverageAdapter/configSchema.js +5 -9
  91. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -1
  92. package/dist/SNPCoverageAdapter/index.js +17 -21
  93. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  94. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +175 -259
  95. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  96. package/dist/SNPCoverageRenderer/configSchema.js +1 -1
  97. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -1
  98. package/dist/SNPCoverageRenderer/index.js +10 -12
  99. package/dist/SNPCoverageRenderer/index.js.map +1 -1
  100. package/dist/index.js +40 -58
  101. package/dist/index.js.map +1 -1
  102. package/dist/shared.js +23 -78
  103. package/dist/shared.js.map +1 -1
  104. package/dist/util.js +13 -66
  105. package/dist/util.js.map +1 -1
  106. package/esm/LinearPileupDisplay/model.d.ts +2 -2
  107. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +1 -1
  108. package/esm/PileupRenderer/PileupRenderer.js +0 -2
  109. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  110. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +0 -1
  111. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -1
  112. package/package.json +2 -3
  113. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +12 -12
  114. package/src/PileupRenderer/PileupRenderer.tsx +0 -2
  115. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +0 -1
@@ -1,358 +1,179 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
- function verb(n) { return function (v) { return step([n, v]); }; }
30
- function step(op) {
31
- if (f) throw new TypeError("Generator is already executing.");
32
- while (_) try {
33
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
- if (y = 0, t) op = [op[0] & 2, t.value];
35
- switch (op[0]) {
36
- case 0: case 1: t = op; break;
37
- case 4: _.label++; return { value: op[1], done: false };
38
- case 5: _.label++; y = op[1]; op = [0]; continue;
39
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
- default:
41
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
- if (t[2]) _.ops.pop();
46
- _.trys.pop(); continue;
47
- }
48
- op = body.call(thisArg, _);
49
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
- }
52
- };
53
- var __values = (this && this.__values) || function(o) {
54
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
- if (m) return m.call(o);
56
- if (o && typeof o.length === "number") return {
57
- next: function () {
58
- if (o && i >= o.length) o = void 0;
59
- return { value: o && o[i++], done: !o };
60
- }
61
- };
62
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
63
- };
64
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
65
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
66
4
  };
67
5
  Object.defineProperty(exports, "__esModule", { value: true });
68
- var bam_1 = require("@gmod/bam");
69
- var BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
70
- var util_1 = require("@jbrowse/core/util");
71
- var io_1 = require("@jbrowse/core/util/io");
72
- var rxjs_1 = require("@jbrowse/core/util/rxjs");
73
- var operators_1 = require("rxjs/operators");
74
- var configuration_1 = require("@jbrowse/core/configuration");
75
- var BamSlightlyLazyFeature_1 = __importDefault(require("./BamSlightlyLazyFeature"));
76
- var BamAdapter = /** @class */ (function (_super) {
77
- __extends(BamAdapter, _super);
78
- function BamAdapter() {
79
- return _super !== null && _super.apply(this, arguments) || this;
80
- }
6
+ const bam_1 = require("@gmod/bam");
7
+ const BaseAdapter_1 = require("@jbrowse/core/data_adapters/BaseAdapter");
8
+ const util_1 = require("@jbrowse/core/util");
9
+ const io_1 = require("@jbrowse/core/util/io");
10
+ const rxjs_1 = require("@jbrowse/core/util/rxjs");
11
+ const operators_1 = require("rxjs/operators");
12
+ const configuration_1 = require("@jbrowse/core/configuration");
13
+ const BamSlightlyLazyFeature_1 = __importDefault(require("./BamSlightlyLazyFeature"));
14
+ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
81
15
  // derived classes may not use the same configuration so a custom
82
16
  // configure method allows derived classes to override this behavior
83
- BamAdapter.prototype.configure = function () {
84
- return __awaiter(this, void 0, void 0, function () {
85
- var bamLocation, location_1, indexType, bam_2, adapterConfig;
86
- return __generator(this, function (_a) {
87
- if (!this.configured) {
88
- bamLocation = (0, configuration_1.readConfObject)(this.config, 'bamLocation');
89
- location_1 = (0, configuration_1.readConfObject)(this.config, ['index', 'location']);
90
- indexType = (0, configuration_1.readConfObject)(this.config, ['index', 'indexType']);
91
- bam_2 = new bam_1.BamFile({
92
- bamFilehandle: (0, io_1.openLocation)(bamLocation, this.pluginManager),
93
- csiFilehandle: indexType === 'CSI'
94
- ? (0, io_1.openLocation)(location_1, this.pluginManager)
95
- : undefined,
96
- baiFilehandle: indexType !== 'CSI'
97
- ? (0, io_1.openLocation)(location_1, this.pluginManager)
98
- : undefined,
99
- // chunkSizeLimit and fetchSizeLimit are more troublesome than
100
- // helpful, and have given overly large values on the ultra long
101
- // nanopore reads even with 500MB limits, so disabled with infinity
102
- chunkSizeLimit: Infinity,
103
- fetchSizeLimit: Infinity,
104
- yieldThreadTime: Infinity,
105
- });
106
- adapterConfig = (0, configuration_1.readConfObject)(this.config, 'sequenceAdapter');
107
- if (adapterConfig && this.getSubAdapter) {
108
- this.configured = this.getSubAdapter(adapterConfig).then(function (_a) {
109
- var dataAdapter = _a.dataAdapter;
110
- return ({
111
- bam: bam_2,
112
- sequenceAdapter: dataAdapter,
113
- });
114
- });
115
- }
116
- else {
117
- this.configured = Promise.resolve({ bam: bam_2 });
118
- }
119
- }
120
- return [2 /*return*/, this.configured];
17
+ async configure() {
18
+ if (!this.configured) {
19
+ const bamLocation = (0, configuration_1.readConfObject)(this.config, 'bamLocation');
20
+ const location = (0, configuration_1.readConfObject)(this.config, ['index', 'location']);
21
+ const indexType = (0, configuration_1.readConfObject)(this.config, ['index', 'indexType']);
22
+ const bam = new bam_1.BamFile({
23
+ bamFilehandle: (0, io_1.openLocation)(bamLocation, this.pluginManager),
24
+ csiFilehandle: indexType === 'CSI'
25
+ ? (0, io_1.openLocation)(location, this.pluginManager)
26
+ : undefined,
27
+ baiFilehandle: indexType !== 'CSI'
28
+ ? (0, io_1.openLocation)(location, this.pluginManager)
29
+ : undefined,
30
+ // chunkSizeLimit and fetchSizeLimit are more troublesome than
31
+ // helpful, and have given overly large values on the ultra long
32
+ // nanopore reads even with 500MB limits, so disabled with infinity
33
+ chunkSizeLimit: Infinity,
34
+ fetchSizeLimit: Infinity,
35
+ yieldThreadTime: Infinity,
121
36
  });
122
- });
123
- };
124
- BamAdapter.prototype.getHeader = function (opts) {
125
- return __awaiter(this, void 0, void 0, function () {
126
- var bam;
127
- return __generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0: return [4 /*yield*/, this.configure()];
130
- case 1:
131
- bam = (_a.sent()).bam;
132
- return [2 /*return*/, bam.getHeaderText(opts)];
133
- }
37
+ const adapterConfig = (0, configuration_1.readConfObject)(this.config, 'sequenceAdapter');
38
+ if (adapterConfig && this.getSubAdapter) {
39
+ this.configured = this.getSubAdapter(adapterConfig).then(({ dataAdapter }) => ({
40
+ bam,
41
+ sequenceAdapter: dataAdapter,
42
+ }));
43
+ }
44
+ else {
45
+ this.configured = Promise.resolve({ bam });
46
+ }
47
+ }
48
+ return this.configured;
49
+ }
50
+ async getHeader(opts) {
51
+ const { bam } = await this.configure();
52
+ return bam.getHeaderText(opts);
53
+ }
54
+ async setupPre(opts) {
55
+ const { statusCallback = () => { } } = opts || {};
56
+ const { bam } = await this.configure();
57
+ this.samHeader = await (0, util_1.updateStatus)('Downloading index', statusCallback, async () => {
58
+ const samHeader = await bam.getHeader(opts);
59
+ // use the @SQ lines in the header to figure out the
60
+ // mapping between ref ref ID numbers and names
61
+ const idToName = [];
62
+ const nameToId = {};
63
+ samHeader
64
+ .filter(l => l.tag === 'SQ')
65
+ .forEach((sqLine, refId) => {
66
+ sqLine.data.forEach(item => {
67
+ if (item.tag === 'SN') {
68
+ // this is the ref name
69
+ const refName = item.value;
70
+ nameToId[refName] = refId;
71
+ idToName[refId] = refName;
72
+ }
73
+ });
134
74
  });
75
+ return { idToName, nameToId };
135
76
  });
136
- };
137
- BamAdapter.prototype.setupPre = function (opts) {
138
- return __awaiter(this, void 0, void 0, function () {
139
- var _a, statusCallback, bam, _b;
140
- var _this = this;
141
- return __generator(this, function (_c) {
142
- switch (_c.label) {
143
- case 0:
144
- _a = (opts || {}).statusCallback, statusCallback = _a === void 0 ? function () { } : _a;
145
- return [4 /*yield*/, this.configure()];
146
- case 1:
147
- bam = (_c.sent()).bam;
148
- _b = this;
149
- return [4 /*yield*/, (0, util_1.updateStatus)('Downloading index', statusCallback, function () { return __awaiter(_this, void 0, void 0, function () {
150
- var samHeader, idToName, nameToId;
151
- return __generator(this, function (_a) {
152
- switch (_a.label) {
153
- case 0: return [4 /*yield*/, bam.getHeader(opts)
154
- // use the @SQ lines in the header to figure out the
155
- // mapping between ref ref ID numbers and names
156
- ];
157
- case 1:
158
- samHeader = _a.sent();
159
- idToName = [];
160
- nameToId = {};
161
- samHeader
162
- .filter(function (l) { return l.tag === 'SQ'; })
163
- .forEach(function (sqLine, refId) {
164
- sqLine.data.forEach(function (item) {
165
- if (item.tag === 'SN') {
166
- // this is the ref name
167
- var refName = item.value;
168
- nameToId[refName] = refId;
169
- idToName[refId] = refName;
170
- }
171
- });
172
- });
173
- return [2 /*return*/, { idToName: idToName, nameToId: nameToId }];
174
- }
175
- });
176
- }); })];
177
- case 2:
178
- _b.samHeader = _c.sent();
179
- return [2 /*return*/, this.samHeader];
180
- }
77
+ return this.samHeader;
78
+ }
79
+ async setup(opts) {
80
+ if (!this.setupP) {
81
+ this.setupP = this.setupPre(opts).catch(e => {
82
+ this.setupP = undefined;
83
+ throw e;
181
84
  });
85
+ }
86
+ return this.setupP;
87
+ }
88
+ async getRefNames(opts) {
89
+ const { idToName } = await this.setup(opts);
90
+ return idToName;
91
+ }
92
+ async seqFetch(refName, start, end) {
93
+ const { sequenceAdapter } = await this.configure();
94
+ const refSeqStore = sequenceAdapter;
95
+ if (!refSeqStore) {
96
+ return undefined;
97
+ }
98
+ if (!refName) {
99
+ return undefined;
100
+ }
101
+ const features = refSeqStore.getFeatures({
102
+ refName,
103
+ start,
104
+ end,
105
+ assemblyName: '',
182
106
  });
183
- };
184
- BamAdapter.prototype.setup = function (opts) {
185
- return __awaiter(this, void 0, void 0, function () {
186
- var _this = this;
187
- return __generator(this, function (_a) {
188
- if (!this.setupP) {
189
- this.setupP = this.setupPre(opts).catch(function (e) {
190
- _this.setupP = undefined;
191
- throw e;
192
- });
193
- }
194
- return [2 /*return*/, this.setupP];
195
- });
107
+ const seqChunks = await features.pipe((0, operators_1.toArray)()).toPromise();
108
+ let sequence = '';
109
+ seqChunks
110
+ .sort((a, b) => a.get('start') - b.get('start'))
111
+ .forEach(chunk => {
112
+ const chunkStart = chunk.get('start');
113
+ const chunkEnd = chunk.get('end');
114
+ const trimStart = Math.max(start - chunkStart, 0);
115
+ const trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
116
+ const trimLength = trimEnd - trimStart;
117
+ const chunkSeq = chunk.get('seq') || chunk.get('residues');
118
+ sequence += chunkSeq.substr(trimStart, trimLength);
196
119
  });
197
- };
198
- BamAdapter.prototype.getRefNames = function (opts) {
199
- return __awaiter(this, void 0, void 0, function () {
200
- var idToName;
201
- return __generator(this, function (_a) {
202
- switch (_a.label) {
203
- case 0: return [4 /*yield*/, this.setup(opts)];
204
- case 1:
205
- idToName = (_a.sent()).idToName;
206
- return [2 /*return*/, idToName];
120
+ if (sequence.length !== end - start) {
121
+ throw new Error(`sequence fetch failed: fetching ${refName}:${(start - 1).toLocaleString()}-${end.toLocaleString()} returned ${sequence.length.toLocaleString()} bases, but should have returned ${(end - start).toLocaleString()}`);
122
+ }
123
+ return sequence;
124
+ }
125
+ getFeatures(region, opts) {
126
+ const { refName, start, end, originalRefName } = region;
127
+ const { signal, filterBy, statusCallback = () => { } } = opts || {};
128
+ return (0, rxjs_1.ObservableCreate)(async (observer) => {
129
+ const { bam } = await this.configure();
130
+ await this.setup(opts);
131
+ statusCallback('Downloading alignments');
132
+ const records = await bam.getRecordsForRange(refName, start, end, opts);
133
+ const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
134
+ for (const record of records) {
135
+ let ref;
136
+ if (!record.get('MD')) {
137
+ ref = await this.seqFetch(originalRefName || refName, record.get('start'), record.get('end'));
207
138
  }
208
- });
209
- });
210
- };
211
- BamAdapter.prototype.seqFetch = function (refName, start, end) {
212
- return __awaiter(this, void 0, void 0, function () {
213
- var sequenceAdapter, refSeqStore, features, seqChunks, sequence;
214
- return __generator(this, function (_a) {
215
- switch (_a.label) {
216
- case 0: return [4 /*yield*/, this.configure()];
217
- case 1:
218
- sequenceAdapter = (_a.sent()).sequenceAdapter;
219
- refSeqStore = sequenceAdapter;
220
- if (!refSeqStore) {
221
- return [2 /*return*/, undefined];
222
- }
223
- if (!refName) {
224
- return [2 /*return*/, undefined];
225
- }
226
- features = refSeqStore.getFeatures({
227
- refName: refName,
228
- start: start,
229
- end: end,
230
- assemblyName: '',
231
- });
232
- return [4 /*yield*/, features.pipe((0, operators_1.toArray)()).toPromise()];
233
- case 2:
234
- seqChunks = _a.sent();
235
- sequence = '';
236
- seqChunks
237
- .sort(function (a, b) { return a.get('start') - b.get('start'); })
238
- .forEach(function (chunk) {
239
- var chunkStart = chunk.get('start');
240
- var chunkEnd = chunk.get('end');
241
- var trimStart = Math.max(start - chunkStart, 0);
242
- var trimEnd = Math.min(end - chunkStart, chunkEnd - chunkStart);
243
- var trimLength = trimEnd - trimStart;
244
- var chunkSeq = chunk.get('seq') || chunk.get('residues');
245
- sequence += chunkSeq.substr(trimStart, trimLength);
246
- });
247
- if (sequence.length !== end - start) {
248
- throw new Error("sequence fetch failed: fetching ".concat(refName, ":").concat((start - 1).toLocaleString(), "-").concat(end.toLocaleString(), " returned ").concat(sequence.length.toLocaleString(), " bases, but should have returned ").concat((end - start).toLocaleString()));
249
- }
250
- return [2 /*return*/, sequence];
139
+ const flags = record.flags;
140
+ if (!((flags & flagInclude) === flagInclude && !(flags & flagExclude))) {
141
+ continue;
251
142
  }
252
- });
253
- });
254
- };
255
- BamAdapter.prototype.getFeatures = function (region, opts) {
256
- var _this = this;
257
- var refName = region.refName, start = region.start, end = region.end, originalRefName = region.originalRefName;
258
- var _a = opts || {}, signal = _a.signal, filterBy = _a.filterBy, _b = _a.statusCallback, statusCallback = _b === void 0 ? function () { } : _b;
259
- return (0, rxjs_1.ObservableCreate)(function (observer) { return __awaiter(_this, void 0, void 0, function () {
260
- var bam, records, _a, _b, flagInclude, _c, flagExclude, tagFilter, readName, records_1, records_1_1, record, ref, flags, val, e_1_1;
261
- var e_1, _d;
262
- return __generator(this, function (_e) {
263
- switch (_e.label) {
264
- case 0: return [4 /*yield*/, this.configure()];
265
- case 1:
266
- bam = (_e.sent()).bam;
267
- return [4 /*yield*/, this.setup(opts)];
268
- case 2:
269
- _e.sent();
270
- statusCallback('Downloading alignments');
271
- return [4 /*yield*/, bam.getRecordsForRange(refName, start, end, opts)];
272
- case 3:
273
- records = _e.sent();
274
- _a = filterBy || {}, _b = _a.flagInclude, flagInclude = _b === void 0 ? 0 : _b, _c = _a.flagExclude, flagExclude = _c === void 0 ? 0 : _c, tagFilter = _a.tagFilter, readName = _a.readName;
275
- _e.label = 4;
276
- case 4:
277
- _e.trys.push([4, 10, 11, 12]);
278
- records_1 = __values(records), records_1_1 = records_1.next();
279
- _e.label = 5;
280
- case 5:
281
- if (!!records_1_1.done) return [3 /*break*/, 9];
282
- record = records_1_1.value;
283
- ref = void 0;
284
- if (!!record.get('MD')) return [3 /*break*/, 7];
285
- return [4 /*yield*/, this.seqFetch(originalRefName || refName, record.get('start'), record.get('end'))];
286
- case 6:
287
- ref = _e.sent();
288
- _e.label = 7;
289
- case 7:
290
- flags = record.flags;
291
- if (!((flags & flagInclude) === flagInclude && !(flags & flagExclude))) {
292
- return [3 /*break*/, 8];
293
- }
294
- if (tagFilter) {
295
- val = record.get(tagFilter.tag);
296
- if (!(val === '*' ? val !== undefined : val === tagFilter.value)) {
297
- return [3 /*break*/, 8];
298
- }
299
- }
300
- if (readName && record.get('name') !== readName) {
301
- return [3 /*break*/, 8];
302
- }
303
- observer.next(new BamSlightlyLazyFeature_1.default(record, this, ref));
304
- _e.label = 8;
305
- case 8:
306
- records_1_1 = records_1.next();
307
- return [3 /*break*/, 5];
308
- case 9: return [3 /*break*/, 12];
309
- case 10:
310
- e_1_1 = _e.sent();
311
- e_1 = { error: e_1_1 };
312
- return [3 /*break*/, 12];
313
- case 11:
314
- try {
315
- if (records_1_1 && !records_1_1.done && (_d = records_1.return)) _d.call(records_1);
316
- }
317
- finally { if (e_1) throw e_1.error; }
318
- return [7 /*endfinally*/];
319
- case 12:
320
- statusCallback('');
321
- observer.complete();
322
- return [2 /*return*/];
143
+ if (tagFilter) {
144
+ const val = record.get(tagFilter.tag);
145
+ if (!(val === '*' ? val !== undefined : val === tagFilter.value)) {
146
+ continue;
147
+ }
323
148
  }
324
- });
325
- }); }, signal);
326
- };
327
- BamAdapter.prototype.estimateRegionsStats = function (regions, opts) {
328
- return __awaiter(this, void 0, void 0, function () {
329
- var bam, bytes, fetchSizeLimit;
330
- return __generator(this, function (_a) {
331
- switch (_a.label) {
332
- case 0: return [4 /*yield*/, this.configure()
333
- // this is a method to avoid calling on htsget adapters
334
- // @ts-ignore
335
- ];
336
- case 1:
337
- bam = (_a.sent()).bam;
338
- if (!(bam.index.filehandle !== '?')) return [3 /*break*/, 3];
339
- return [4 /*yield*/, (0, util_1.bytesForRegions)(regions, bam)];
340
- case 2:
341
- bytes = _a.sent();
342
- fetchSizeLimit = (0, configuration_1.readConfObject)(this.config, 'fetchSizeLimit');
343
- return [2 /*return*/, { bytes: bytes, fetchSizeLimit: fetchSizeLimit }];
344
- case 3: return [2 /*return*/, _super.prototype.estimateRegionsStats.call(this, regions, opts)];
149
+ if (readName && record.get('name') !== readName) {
150
+ continue;
345
151
  }
346
- });
347
- });
348
- };
349
- BamAdapter.prototype.freeResources = function ( /* { region } */) { };
152
+ observer.next(new BamSlightlyLazyFeature_1.default(record, this, ref));
153
+ }
154
+ statusCallback('');
155
+ observer.complete();
156
+ }, signal);
157
+ }
158
+ async estimateRegionsStats(regions, opts) {
159
+ const { bam } = await this.configure();
160
+ // this is a method to avoid calling on htsget adapters
161
+ // @ts-ignore
162
+ if (bam.index.filehandle !== '?') {
163
+ const bytes = await (0, util_1.bytesForRegions)(regions, bam);
164
+ const fetchSizeLimit = (0, configuration_1.readConfObject)(this.config, 'fetchSizeLimit');
165
+ return { bytes, fetchSizeLimit };
166
+ }
167
+ else {
168
+ return super.estimateRegionsStats(regions, opts);
169
+ }
170
+ }
171
+ freeResources( /* { region } */) { }
350
172
  // depends on setup being called before the BAM constructor
351
- BamAdapter.prototype.refIdToName = function (refId) {
173
+ refIdToName(refId) {
352
174
  var _a;
353
175
  return (_a = this.samHeader) === null || _a === void 0 ? void 0 : _a.idToName[refId];
354
- };
355
- return BamAdapter;
356
- }(BaseAdapter_1.BaseFeatureDataAdapter));
176
+ }
177
+ }
357
178
  exports.default = BamAdapter;
358
179
  //# sourceMappingURL=BamAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BamAdapter.js","sourceRoot":"","sources":["../../src/BamAdapter/BamAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BamAdapter.js","sourceRoot":"","sources":["../../src/BamAdapter/BamAdapter.ts"],"names":[],"mappings":"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"}