@jbrowse/plugin-alignments 2.1.7 → 2.2.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/AlignmentsTrack/index.d.ts +1 -1
- package/dist/AlignmentsTrack/index.js +16 -6
- package/dist/AlignmentsTrack/index.js.map +1 -1
- package/dist/BamAdapter/BamAdapter.d.ts +6 -2
- package/dist/BamAdapter/BamAdapter.js +35 -31
- package/dist/BamAdapter/BamAdapter.js.map +1 -1
- package/dist/BamAdapter/configSchema.d.ts +2 -2
- package/dist/BamAdapter/configSchema.js +27 -2
- package/dist/BamAdapter/configSchema.js.map +1 -1
- package/dist/CramAdapter/CramAdapter.d.ts +13 -7
- package/dist/CramAdapter/CramAdapter.js +56 -61
- package/dist/CramAdapter/CramAdapter.js.map +1 -1
- package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +14 -13
- package/dist/CramAdapter/CramSlightlyLazyFeature.js +28 -22
- package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/dist/CramAdapter/configSchema.d.ts +2 -3
- package/dist/CramAdapter/configSchema.js +44 -22
- package/dist/CramAdapter/configSchema.js.map +1 -1
- package/dist/CramAdapter/index.js +1 -1
- package/dist/CramAdapter/index.js.map +1 -1
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +5 -2
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +15 -20
- package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
- package/dist/HtsgetBamAdapter/configSchema.d.ts +2 -2
- package/dist/HtsgetBamAdapter/configSchema.js +20 -3
- package/dist/HtsgetBamAdapter/configSchema.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +1 -1
- package/dist/LinearAlignmentsDisplay/models/configSchema.js +23 -6
- package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
- package/dist/LinearAlignmentsDisplay/models/model.d.ts +72 -5
- package/dist/LinearAlignmentsDisplay/models/model.js +95 -2
- package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/dist/LinearPileupDisplay/configSchema.js +20 -3
- package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
- package/dist/LinearPileupDisplay/model.d.ts +87 -3
- package/dist/LinearPileupDisplay/model.js +616 -503
- package/dist/LinearPileupDisplay/model.js.map +1 -1
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js +33 -4
- package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
- package/dist/LinearSNPCoverageDisplay/models/model.d.ts +86 -3
- package/dist/LinearSNPCoverageDisplay/models/model.js +240 -159
- package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
- package/dist/PileupRenderer/PileupRenderer.js +5 -6
- package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
- package/dist/PileupRenderer/configSchema.d.ts +2 -2
- package/dist/PileupRenderer/configSchema.js +37 -2
- package/dist/PileupRenderer/configSchema.js.map +1 -1
- package/dist/SNPCoverageAdapter/configSchema.d.ts +2 -2
- package/dist/SNPCoverageAdapter/configSchema.js +11 -3
- package/dist/SNPCoverageAdapter/configSchema.js.map +1 -1
- package/dist/SNPCoverageRenderer/configSchema.d.ts +2 -2
- package/dist/SNPCoverageRenderer/configSchema.js +21 -1
- package/dist/SNPCoverageRenderer/configSchema.js.map +1 -1
- package/dist/SNPCoverageRenderer/index.d.ts +0 -1
- package/dist/SNPCoverageRenderer/index.js +1 -4
- package/dist/SNPCoverageRenderer/index.js.map +1 -1
- package/esm/AlignmentsTrack/index.d.ts +1 -1
- package/esm/AlignmentsTrack/index.js +16 -6
- package/esm/AlignmentsTrack/index.js.map +1 -1
- package/esm/BamAdapter/BamAdapter.d.ts +6 -2
- package/esm/BamAdapter/BamAdapter.js +35 -31
- package/esm/BamAdapter/BamAdapter.js.map +1 -1
- package/esm/BamAdapter/configSchema.d.ts +2 -2
- package/esm/BamAdapter/configSchema.js +27 -2
- package/esm/BamAdapter/configSchema.js.map +1 -1
- package/esm/CramAdapter/CramAdapter.d.ts +13 -7
- package/esm/CramAdapter/CramAdapter.js +56 -61
- package/esm/CramAdapter/CramAdapter.js.map +1 -1
- package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +14 -13
- package/esm/CramAdapter/CramSlightlyLazyFeature.js +28 -22
- package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
- package/esm/CramAdapter/configSchema.d.ts +2 -3
- package/esm/CramAdapter/configSchema.js +44 -22
- package/esm/CramAdapter/configSchema.js.map +1 -1
- package/esm/CramAdapter/index.js +2 -2
- package/esm/CramAdapter/index.js.map +1 -1
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +5 -2
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +15 -20
- package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -1
- package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -2
- package/esm/HtsgetBamAdapter/configSchema.js +20 -3
- package/esm/HtsgetBamAdapter/configSchema.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +1 -1
- package/esm/LinearAlignmentsDisplay/models/configSchema.js +23 -6
- package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
- package/esm/LinearAlignmentsDisplay/models/model.d.ts +72 -5
- package/esm/LinearAlignmentsDisplay/models/model.js +95 -2
- package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
- package/esm/LinearPileupDisplay/configSchema.js +20 -3
- package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
- package/esm/LinearPileupDisplay/model.d.ts +87 -3
- package/esm/LinearPileupDisplay/model.js +616 -503
- package/esm/LinearPileupDisplay/model.js.map +1 -1
- package/esm/LinearSNPCoverageDisplay/models/configSchema.js +33 -4
- package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -1
- package/esm/LinearSNPCoverageDisplay/models/model.d.ts +86 -3
- package/esm/LinearSNPCoverageDisplay/models/model.js +240 -159
- package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
- package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
- package/esm/PileupRenderer/PileupRenderer.js +5 -6
- package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
- package/esm/PileupRenderer/configSchema.d.ts +2 -2
- package/esm/PileupRenderer/configSchema.js +37 -2
- package/esm/PileupRenderer/configSchema.js.map +1 -1
- package/esm/SNPCoverageAdapter/configSchema.d.ts +2 -2
- package/esm/SNPCoverageAdapter/configSchema.js +11 -3
- package/esm/SNPCoverageAdapter/configSchema.js.map +1 -1
- package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -2
- package/esm/SNPCoverageRenderer/configSchema.js +21 -1
- package/esm/SNPCoverageRenderer/configSchema.js.map +1 -1
- package/esm/SNPCoverageRenderer/index.d.ts +0 -1
- package/esm/SNPCoverageRenderer/index.js +1 -3
- package/esm/SNPCoverageRenderer/index.js.map +1 -1
- package/package.json +3 -3
- package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +54 -54
- package/src/AlignmentsTrack/index.ts +18 -12
- package/src/BamAdapter/BamAdapter.ts +39 -39
- package/src/BamAdapter/configSchema.ts +57 -29
- package/src/CramAdapter/CramAdapter.test.ts +1 -2
- package/src/CramAdapter/CramAdapter.ts +83 -84
- package/src/CramAdapter/CramSlightlyLazyFeature.ts +34 -25
- package/src/CramAdapter/configSchema.ts +55 -30
- package/src/CramAdapter/index.ts +2 -2
- package/src/HtsgetBamAdapter/HtsgetBamAdapter.ts +14 -21
- package/src/HtsgetBamAdapter/configSchema.ts +36 -19
- package/src/LinearAlignmentsDisplay/models/configSchema.ts +23 -10
- package/src/LinearAlignmentsDisplay/models/model.tsx +99 -4
- package/src/LinearPileupDisplay/configSchema.ts +23 -5
- package/src/LinearPileupDisplay/model.ts +120 -4
- package/src/LinearSNPCoverageDisplay/models/configSchema.ts +36 -9
- package/src/LinearSNPCoverageDisplay/models/model.ts +83 -4
- package/src/PileupRenderer/PileupRenderer.tsx +5 -9
- package/src/PileupRenderer/configSchema.ts +39 -2
- package/src/SNPCoverageAdapter/configSchema.ts +18 -10
- package/src/SNPCoverageRenderer/configSchema.ts +23 -1
- package/src/SNPCoverageRenderer/index.ts +1 -8
- package/src/declare.d.ts +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
export default function register(
|
|
2
|
+
export default function register(pm: PluginManager): void;
|
|
@@ -6,18 +6,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const TrackType_1 = __importDefault(require("@jbrowse/core/pluggableElementTypes/TrackType"));
|
|
7
7
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
8
8
|
const models_1 = require("@jbrowse/core/pluggableElementTypes/models");
|
|
9
|
+
/**
|
|
10
|
+
* #config AlignmentsTrack
|
|
11
|
+
* has very little config; most config and state logic is on the display
|
|
12
|
+
*/
|
|
13
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
9
14
|
function configSchemaFactory(pluginManager) {
|
|
10
|
-
return (0, configuration_1.ConfigurationSchema)('AlignmentsTrack', {}, {
|
|
15
|
+
return (0, configuration_1.ConfigurationSchema)('AlignmentsTrack', {}, {
|
|
16
|
+
/**
|
|
17
|
+
* #baseConfiguration
|
|
18
|
+
*/
|
|
19
|
+
baseConfiguration: (0, models_1.createBaseTrackConfig)(pluginManager),
|
|
20
|
+
});
|
|
11
21
|
}
|
|
12
|
-
function register(
|
|
13
|
-
|
|
14
|
-
const configSchema = configSchemaFactory(
|
|
22
|
+
function register(pm) {
|
|
23
|
+
pm.addTrackType(() => {
|
|
24
|
+
const configSchema = configSchemaFactory(pm);
|
|
15
25
|
const track = new TrackType_1.default({
|
|
16
26
|
name: 'AlignmentsTrack',
|
|
17
27
|
configSchema,
|
|
18
|
-
stateModel: (0, models_1.createBaseTrackModel)(
|
|
28
|
+
stateModel: (0, models_1.createBaseTrackModel)(pm, 'AlignmentsTrack', configSchema),
|
|
19
29
|
});
|
|
20
|
-
const linearAlignmentsDisplay =
|
|
30
|
+
const linearAlignmentsDisplay = pm.getDisplayType('LinearAlignmentsDisplay');
|
|
21
31
|
// Add LinearAlignmentsDisplay here so that it has priority over the other
|
|
22
32
|
// linear displays (defaults to order the displays are added, but we have
|
|
23
33
|
// to add the Pileup and SNPCoverage displays first).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AlignmentsTrack/index.ts"],"names":[],"mappings":";;;;;AACA,8FAAqE;AACrE,+DAAiE;AACjE,uEAGmD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AlignmentsTrack/index.ts"],"names":[],"mappings":";;;;;AACA,8FAAqE;AACrE,+DAAiE;AACjE,uEAGmD;AAEnD;;;GAGG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,SAAS,mBAAmB,CAAC,aAA4B;IACvD,OAAO,IAAA,mCAAmB,EACxB,iBAAiB,EACjB,EAAE,EACF;QACE;;WAEG;QACH,iBAAiB,EAAE,IAAA,8BAAqB,EAAC,aAAa,CAAC;KACxD,CACF,CAAA;AACH,CAAC;AACD,SAAwB,QAAQ,CAAC,EAAiB;IAChD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE;QACnB,MAAM,YAAY,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,mBAAS,CAAC;YAC1B,IAAI,EAAE,iBAAiB;YACvB,YAAY;YACZ,UAAU,EAAE,IAAA,6BAAoB,EAAC,EAAE,EAAE,iBAAiB,EAAE,YAAY,CAAC;SACtE,CAAC,CAAA;QACF,MAAM,uBAAuB,GAAG,EAAE,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAA;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,qDAAqD;QACrD,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAA;QAC7C,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAfD,2BAeC"}
|
|
@@ -9,9 +9,13 @@ interface Header {
|
|
|
9
9
|
export default class BamAdapter extends BaseFeatureDataAdapter {
|
|
10
10
|
private samHeader?;
|
|
11
11
|
private setupP?;
|
|
12
|
-
|
|
12
|
+
private configureP?;
|
|
13
|
+
protected configurePre(): Promise<{
|
|
13
14
|
bam: BamFile;
|
|
14
|
-
sequenceAdapter
|
|
15
|
+
sequenceAdapter: BaseFeatureDataAdapter;
|
|
16
|
+
} | {
|
|
17
|
+
bam: BamFile;
|
|
18
|
+
sequenceAdapter?: undefined;
|
|
15
19
|
}>;
|
|
16
20
|
protected configure(): Promise<{
|
|
17
21
|
bam: BamFile;
|
|
@@ -9,43 +9,47 @@ const util_1 = require("@jbrowse/core/util");
|
|
|
9
9
|
const io_1 = require("@jbrowse/core/util/io");
|
|
10
10
|
const rxjs_1 = require("@jbrowse/core/util/rxjs");
|
|
11
11
|
const operators_1 = require("rxjs/operators");
|
|
12
|
-
const configuration_1 = require("@jbrowse/core/configuration");
|
|
13
12
|
const BamSlightlyLazyFeature_1 = __importDefault(require("./BamSlightlyLazyFeature"));
|
|
14
13
|
class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
15
14
|
// derived classes may not use the same configuration so a custom
|
|
16
15
|
// configure method allows derived classes to override this behavior
|
|
16
|
+
async configurePre() {
|
|
17
|
+
const bamLocation = this.getConf('bamLocation');
|
|
18
|
+
const location = this.getConf(['index', 'location']);
|
|
19
|
+
const indexType = this.getConf(['index', 'indexType']);
|
|
20
|
+
const pm = this.pluginManager;
|
|
21
|
+
const csi = indexType === 'CSI';
|
|
22
|
+
const bam = new bam_1.BamFile({
|
|
23
|
+
bamFilehandle: (0, io_1.openLocation)(bamLocation, pm),
|
|
24
|
+
csiFilehandle: csi ? (0, io_1.openLocation)(location, pm) : undefined,
|
|
25
|
+
baiFilehandle: !csi ? (0, io_1.openLocation)(location, pm) : undefined,
|
|
26
|
+
// chunkSizeLimit and fetchSizeLimit are more troublesome than
|
|
27
|
+
// helpful, and have given overly large values on the ultra long
|
|
28
|
+
// nanopore reads even with 500MB limits, so disabled with infinity
|
|
29
|
+
chunkSizeLimit: Infinity,
|
|
30
|
+
fetchSizeLimit: Infinity,
|
|
31
|
+
yieldThreadTime: Infinity,
|
|
32
|
+
});
|
|
33
|
+
const adapterConfig = this.getConf('sequenceAdapter');
|
|
34
|
+
if (adapterConfig && this.getSubAdapter) {
|
|
35
|
+
const { dataAdapter } = await this.getSubAdapter(adapterConfig);
|
|
36
|
+
return {
|
|
37
|
+
bam,
|
|
38
|
+
sequenceAdapter: dataAdapter,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return { bam };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
17
45
|
async configure() {
|
|
18
|
-
if (!this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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,
|
|
46
|
+
if (!this.configureP) {
|
|
47
|
+
this.configureP = this.configurePre().catch(e => {
|
|
48
|
+
this.configureP = undefined;
|
|
49
|
+
throw e;
|
|
36
50
|
});
|
|
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
51
|
}
|
|
48
|
-
return this.
|
|
52
|
+
return this.configureP;
|
|
49
53
|
}
|
|
50
54
|
async getHeader(opts) {
|
|
51
55
|
const { bam } = await this.configure();
|
|
@@ -161,7 +165,7 @@ class BamAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
161
165
|
// @ts-ignore
|
|
162
166
|
if (bam.index.filehandle !== '?') {
|
|
163
167
|
const bytes = await (0, util_1.bytesForRegions)(regions, bam);
|
|
164
|
-
const fetchSizeLimit =
|
|
168
|
+
const fetchSizeLimit = this.getConf('fetchSizeLimit');
|
|
165
169
|
return { bytes, fetchSizeLimit };
|
|
166
170
|
}
|
|
167
171
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BamAdapter.js","sourceRoot":"","sources":["../../src/BamAdapter/BamAdapter.ts"],"names":[],"mappings":";;;;;AAAA,mCAAmC;AACnC,yEAGgD;AAEhD,6CAAkE;AAClE,8CAAoD;AACpD,kDAA0D;AAE1D,8CAAwC;AACxC
|
|
1
|
+
{"version":3,"file":"BamAdapter.js","sourceRoot":"","sources":["../../src/BamAdapter/BamAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const
|
|
2
|
-
export default
|
|
1
|
+
declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
2
|
+
export default configSchema;
|
|
@@ -2,17 +2,31 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const configuration_1 = require("@jbrowse/core/configuration");
|
|
4
4
|
const mobx_state_tree_1 = require("mobx-state-tree");
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* #config BamAdapter
|
|
7
|
+
* used to configure BAM adapter
|
|
8
|
+
*/
|
|
9
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
10
|
+
const configSchema = (0, configuration_1.ConfigurationSchema)('BamAdapter', {
|
|
11
|
+
/**
|
|
12
|
+
* #slot
|
|
13
|
+
*/
|
|
6
14
|
bamLocation: {
|
|
7
15
|
type: 'fileLocation',
|
|
8
16
|
defaultValue: { uri: '/path/to/my.bam', locationType: 'UriLocation' },
|
|
9
17
|
},
|
|
10
18
|
index: (0, configuration_1.ConfigurationSchema)('BamIndex', {
|
|
19
|
+
/**
|
|
20
|
+
* #slot index.indexType
|
|
21
|
+
*/
|
|
11
22
|
indexType: {
|
|
12
23
|
model: mobx_state_tree_1.types.enumeration('IndexType', ['BAI', 'CSI']),
|
|
13
24
|
type: 'stringEnum',
|
|
14
25
|
defaultValue: 'BAI',
|
|
15
26
|
},
|
|
27
|
+
/**
|
|
28
|
+
* #slot index.location
|
|
29
|
+
*/
|
|
16
30
|
location: {
|
|
17
31
|
type: 'fileLocation',
|
|
18
32
|
defaultValue: {
|
|
@@ -21,13 +35,24 @@ exports.default = mobx_state_tree_1.types.late(() => (0, configuration_1.Configu
|
|
|
21
35
|
},
|
|
22
36
|
},
|
|
23
37
|
}),
|
|
38
|
+
/**
|
|
39
|
+
* #slot
|
|
40
|
+
*/
|
|
24
41
|
fetchSizeLimit: {
|
|
25
42
|
type: 'number',
|
|
43
|
+
description: 'used to determine when to display a warning to the user that too much data will be fetched',
|
|
26
44
|
defaultValue: 5000000,
|
|
27
45
|
},
|
|
46
|
+
/**
|
|
47
|
+
* #slot
|
|
48
|
+
* generally refers to the reference genome assembly's sequence adapter
|
|
49
|
+
* currently needs to be manually added
|
|
50
|
+
*/
|
|
28
51
|
sequenceAdapter: {
|
|
29
52
|
type: 'frozen',
|
|
53
|
+
description: 'sequence data adapter, used to calculate SNPs when BAM reads lacking MD tags',
|
|
30
54
|
defaultValue: null,
|
|
31
55
|
},
|
|
32
|
-
}, { explicitlyTyped: true })
|
|
56
|
+
}, { explicitlyTyped: true });
|
|
57
|
+
exports.default = configSchema;
|
|
33
58
|
//# sourceMappingURL=configSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BamAdapter/configSchema.ts"],"names":[],"mappings":";;AAAA,+DAAiE;AACjE,qDAAuC;AAEvC,
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BamAdapter/configSchema.ts"],"names":[],"mappings":";;AAAA,+DAAiE;AACjE,qDAAuC;AAEvC;;;GAGG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,YAAY,GAAG,IAAA,mCAAmB,EACtC,YAAY,EACZ;IACE;;OAEG;IACH,WAAW,EAAE;QACX,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE;KACtE;IAED,KAAK,EAAE,IAAA,mCAAmB,EAAC,UAAU,EAAE;QACrC;;WAEG;QACH,SAAS,EAAE;YACT,KAAK,EAAE,uBAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,KAAK;SACpB;QACD;;WAEG;QACH,QAAQ,EAAE;YACR,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,GAAG,EAAE,qBAAqB;gBAC1B,YAAY,EAAE,aAAa;aAC5B;SACF;KACF,CAAC;IACF;;OAEG;IACH,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,4FAA4F;QAC9F,YAAY,EAAE,OAAS;KACxB;IACD;;;;OAIG;IACH,eAAe,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,8EAA8E;QAChF,YAAY,EAAE,IAAI;KACnB;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA;AAED,kBAAe,YAAY,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IndexedCramFile, CramRecord } from '@gmod/cram';
|
|
2
|
+
import { BaseFeatureDataAdapter, BaseOptions, BaseSequenceAdapter } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
3
|
import { Region, Feature } from '@jbrowse/core/util';
|
|
3
4
|
import CramSlightlyLazyFeature from './CramSlightlyLazyFeature';
|
|
4
5
|
interface Header {
|
|
5
6
|
idToName?: string[];
|
|
6
7
|
nameToId?: Record<string, number>;
|
|
7
|
-
readGroups?:
|
|
8
|
+
readGroups?: (string | undefined)[];
|
|
8
9
|
}
|
|
9
10
|
interface FilterBy {
|
|
10
11
|
flagInclude: number;
|
|
@@ -18,13 +19,18 @@ interface FilterBy {
|
|
|
18
19
|
export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
19
20
|
samHeader: Header;
|
|
20
21
|
private setupP?;
|
|
22
|
+
private configureP?;
|
|
21
23
|
private seqIdToRefName;
|
|
22
24
|
private seqIdToOriginalRefName;
|
|
25
|
+
configurePre(): Promise<{
|
|
26
|
+
cram: IndexedCramFile;
|
|
27
|
+
sequenceAdapter: BaseSequenceAdapter;
|
|
28
|
+
}>;
|
|
23
29
|
configure(): Promise<{
|
|
24
|
-
cram:
|
|
25
|
-
sequenceAdapter:
|
|
30
|
+
cram: IndexedCramFile;
|
|
31
|
+
sequenceAdapter: BaseSequenceAdapter;
|
|
26
32
|
}>;
|
|
27
|
-
getHeader(opts?: BaseOptions): Promise<
|
|
33
|
+
getHeader(opts?: BaseOptions): Promise<string | undefined>;
|
|
28
34
|
private seqFetch;
|
|
29
35
|
private setupPre;
|
|
30
36
|
private setup;
|
|
@@ -38,9 +44,9 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
38
44
|
filterBy: FilterBy;
|
|
39
45
|
}): import("rxjs").Observable<Feature>;
|
|
40
46
|
freeResources(): void;
|
|
41
|
-
cramRecordToFeature(record:
|
|
47
|
+
cramRecordToFeature(record: CramRecord): CramSlightlyLazyFeature;
|
|
42
48
|
estimateRegionsStats(regions: Region[], opts?: BaseOptions): Promise<{
|
|
43
|
-
bytes:
|
|
49
|
+
bytes: number;
|
|
44
50
|
fetchSizeLimit: any;
|
|
45
51
|
}>;
|
|
46
52
|
/**
|
|
@@ -17,7 +17,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
17
17
|
// maps a seqId to original refname, passed specially to render args, to a seqid
|
|
18
18
|
this.seqIdToOriginalRefName = [];
|
|
19
19
|
}
|
|
20
|
-
async
|
|
20
|
+
async configurePre() {
|
|
21
21
|
const cramLocation = this.getConf('cramLocation');
|
|
22
22
|
const craiLocation = this.getConf('craiLocation');
|
|
23
23
|
if (!cramLocation) {
|
|
@@ -26,38 +26,43 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
26
26
|
if (!craiLocation) {
|
|
27
27
|
throw new Error('missing craiLocation argument');
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
const pm = this.pluginManager;
|
|
30
30
|
const cram = new cram_1.IndexedCramFile({
|
|
31
|
-
cramFilehandle: (0, io_1.openLocation)(cramLocation,
|
|
32
|
-
index: new cram_1.CraiIndex({
|
|
33
|
-
|
|
34
|
-
}),
|
|
35
|
-
seqFetch: this.seqFetch.bind(this),
|
|
31
|
+
cramFilehandle: (0, io_1.openLocation)(cramLocation, pm),
|
|
32
|
+
index: new cram_1.CraiIndex({ filehandle: (0, io_1.openLocation)(craiLocation, pm) }),
|
|
33
|
+
seqFetch: (...args) => this.seqFetch(...args),
|
|
36
34
|
checkSequenceMD5: false,
|
|
37
35
|
fetchSizeLimit: 200000000, // just make this a large size to avoid hitting it
|
|
38
36
|
});
|
|
39
|
-
// instantiate the sequence adapter
|
|
40
|
-
const sequenceAdapterType = this.getConf(['sequenceAdapter', 'type']);
|
|
41
37
|
if (!this.getSubAdapter) {
|
|
42
38
|
throw new Error('Error getting subadapter');
|
|
43
39
|
}
|
|
44
40
|
const seqConf = this.getConf('sequenceAdapter');
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const subadapter = await this.getSubAdapter(seqConf);
|
|
42
|
+
return {
|
|
43
|
+
cram,
|
|
44
|
+
sequenceAdapter: subadapter.dataAdapter,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async configure() {
|
|
48
|
+
if (!this.configureP) {
|
|
49
|
+
this.configureP = this.configurePre().catch(e => {
|
|
50
|
+
this.configureP = undefined;
|
|
51
|
+
throw e;
|
|
52
|
+
});
|
|
48
53
|
}
|
|
49
|
-
return
|
|
54
|
+
return this.configureP;
|
|
50
55
|
}
|
|
51
56
|
async getHeader(opts) {
|
|
52
57
|
const { cram } = await this.configure();
|
|
53
|
-
return cram.cram.getHeaderText(
|
|
58
|
+
return cram.cram.getHeaderText();
|
|
54
59
|
}
|
|
55
60
|
async seqFetch(seqId, start, end) {
|
|
56
61
|
start -= 1; // convert from 1-based closed to interbase
|
|
57
62
|
const { sequenceAdapter } = await this.configure();
|
|
58
63
|
const refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
|
|
59
64
|
if (!refName) {
|
|
60
|
-
|
|
65
|
+
throw new Error('unknown');
|
|
61
66
|
}
|
|
62
67
|
const seqChunks = await sequenceAdapter
|
|
63
68
|
.getFeatures({
|
|
@@ -87,10 +92,10 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
87
92
|
}
|
|
88
93
|
async setupPre(opts) {
|
|
89
94
|
const { statusCallback = () => { } } = opts || {};
|
|
90
|
-
const
|
|
95
|
+
const conf = await this.configure();
|
|
91
96
|
statusCallback('Downloading index');
|
|
92
|
-
const { cram } =
|
|
93
|
-
const samHeader = await cram.cram.getSamHeader(
|
|
97
|
+
const { cram } = conf;
|
|
98
|
+
const samHeader = await cram.cram.getSamHeader();
|
|
94
99
|
// use the @SQ lines in the header to figure out the
|
|
95
100
|
// mapping between ref ID numbers and names
|
|
96
101
|
const idToName = [];
|
|
@@ -113,7 +118,7 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
113
118
|
const data = { idToName, nameToId, readGroups };
|
|
114
119
|
statusCallback('');
|
|
115
120
|
this.samHeader = data;
|
|
116
|
-
return { samHeader: data, ...
|
|
121
|
+
return { samHeader: data, ...conf };
|
|
117
122
|
}
|
|
118
123
|
async setup(opts) {
|
|
119
124
|
if (!this.setupP) {
|
|
@@ -145,13 +150,8 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
145
150
|
// use info from the SAM header if possible, but fall back to using
|
|
146
151
|
// the ref seq order from when the browser's refseqs were loaded
|
|
147
152
|
refIdToName(refId) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
if (this.seqIdToRefName) {
|
|
152
|
-
return this.seqIdToRefName[refId];
|
|
153
|
-
}
|
|
154
|
-
return undefined;
|
|
153
|
+
var _a, _b;
|
|
154
|
+
return ((_a = this.samHeader.idToName) === null || _a === void 0 ? void 0 : _a[refId]) || ((_b = this.seqIdToRefName) === null || _b === void 0 ? void 0 : _b[refId]);
|
|
155
155
|
}
|
|
156
156
|
refIdToOriginalName(refId) {
|
|
157
157
|
return this.seqIdToOriginalRefName[refId];
|
|
@@ -160,44 +160,37 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
160
160
|
const { signal, filterBy, statusCallback = () => { } } = opts || {};
|
|
161
161
|
const { refName, start, end, originalRefName } = region;
|
|
162
162
|
return (0, rxjs_1.ObservableCreate)(async (observer) => {
|
|
163
|
-
const { cram
|
|
164
|
-
statusCallback('Downloading alignments');
|
|
165
|
-
if (!this.seqIdToRefName) {
|
|
166
|
-
this.seqIdToRefName = await sequenceAdapter.getRefNames(opts);
|
|
167
|
-
}
|
|
163
|
+
const { cram } = await this.setup(opts);
|
|
168
164
|
const refId = this.refNameToId(refName);
|
|
169
|
-
if (refId
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
191
|
-
(record) => record.readName === readName);
|
|
192
|
-
}
|
|
193
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
194
|
-
filtered.forEach((record) => {
|
|
195
|
-
observer.next(this.cramRecordToFeature(record));
|
|
165
|
+
if (refId === undefined) {
|
|
166
|
+
console.warn('Unknown refName', refName);
|
|
167
|
+
observer.complete();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (originalRefName) {
|
|
171
|
+
this.seqIdToOriginalRefName[refId] = originalRefName;
|
|
172
|
+
}
|
|
173
|
+
statusCallback('Downloading alignments');
|
|
174
|
+
const records = await cram.getRecordsForRange(refId, start, end);
|
|
175
|
+
(0, util_1.checkAbortSignal)(signal);
|
|
176
|
+
const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
|
|
177
|
+
let filtered = records.filter(record => {
|
|
178
|
+
const flags = record.flags;
|
|
179
|
+
return (flags & flagInclude) === flagInclude && !(flags & flagExclude);
|
|
180
|
+
});
|
|
181
|
+
if (tagFilter) {
|
|
182
|
+
filtered = filtered.filter(record => {
|
|
183
|
+
// @ts-ignore
|
|
184
|
+
const val = record[tagFilter.tag];
|
|
185
|
+
return val === '*' ? val !== undefined : val === tagFilter.value;
|
|
196
186
|
});
|
|
197
187
|
}
|
|
198
|
-
|
|
199
|
-
|
|
188
|
+
if (readName) {
|
|
189
|
+
filtered = filtered.filter(record => record.readName === readName);
|
|
200
190
|
}
|
|
191
|
+
filtered.forEach(record => {
|
|
192
|
+
observer.next(this.cramRecordToFeature(record));
|
|
193
|
+
});
|
|
201
194
|
statusCallback('');
|
|
202
195
|
observer.complete();
|
|
203
196
|
}, signal);
|
|
@@ -225,7 +218,9 @@ class CramAdapter extends BaseAdapter_1.BaseFeatureDataAdapter {
|
|
|
225
218
|
const blockResults = await Promise.all(regions.map(region => {
|
|
226
219
|
const { refName, start, end } = region;
|
|
227
220
|
const chrId = this.refNameToId(refName);
|
|
228
|
-
return
|
|
221
|
+
return chrId !== undefined
|
|
222
|
+
? cram.index.getEntriesForRange(chrId, start, end)
|
|
223
|
+
: [{ sliceBytes: 0 }];
|
|
229
224
|
}));
|
|
230
225
|
return blockResults.flat().reduce((a, b) => a + b.sliceBytes, 0);
|
|
231
226
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CramAdapter.js","sourceRoot":"","sources":["../../src/CramAdapter/CramAdapter.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CramAdapter.js","sourceRoot":"","sources":["../../src/CramAdapter/CramAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
|
|
2
|
+
import { CramRecord } from '@gmod/cram';
|
|
2
3
|
import CramAdapter from './CramAdapter';
|
|
3
4
|
export interface Mismatch {
|
|
4
5
|
qual?: number;
|
|
@@ -13,28 +14,28 @@ export interface Mismatch {
|
|
|
13
14
|
export default class CramSlightlyLazyFeature implements Feature {
|
|
14
15
|
private record;
|
|
15
16
|
private _store;
|
|
16
|
-
constructor(record:
|
|
17
|
-
_get_name():
|
|
17
|
+
constructor(record: CramRecord, _store: CramAdapter);
|
|
18
|
+
_get_name(): string | undefined;
|
|
18
19
|
_get_start(): number;
|
|
19
20
|
_get_end(): number;
|
|
20
|
-
_get_cram_read_features():
|
|
21
|
+
_get_cram_read_features(): import("@gmod/cram/dist/cramFile/record").ReadFeature[] | undefined;
|
|
21
22
|
_get_type(): string;
|
|
22
|
-
_get_score():
|
|
23
|
-
_get_flags():
|
|
23
|
+
_get_score(): number | undefined;
|
|
24
|
+
_get_flags(): number;
|
|
24
25
|
_get_strand(): 1 | -1;
|
|
25
|
-
_read_group_id():
|
|
26
|
-
_get_qual():
|
|
27
|
-
qualRaw():
|
|
26
|
+
_read_group_id(): string | undefined;
|
|
27
|
+
_get_qual(): string;
|
|
28
|
+
qualRaw(): number[] | null | undefined;
|
|
28
29
|
_get_seq_id(): string | undefined;
|
|
29
30
|
_get_refName(): string | undefined;
|
|
30
31
|
_get_is_paired(): boolean;
|
|
31
|
-
_get_pair_orientation():
|
|
32
|
-
_get_template_length():
|
|
32
|
+
_get_pair_orientation(): string | null | undefined;
|
|
33
|
+
_get_template_length(): number | undefined;
|
|
33
34
|
_get_next_seq_id(): string | undefined;
|
|
34
|
-
_get_next_pos():
|
|
35
|
+
_get_next_pos(): number | undefined;
|
|
35
36
|
_get_next_segment_position(): string | undefined;
|
|
36
|
-
_get_tags():
|
|
37
|
-
_get_seq():
|
|
37
|
+
_get_tags(): Record<string, string>;
|
|
38
|
+
_get_seq(): string | null | undefined;
|
|
38
39
|
_get_CIGAR(): string;
|
|
39
40
|
tags(): string[];
|
|
40
41
|
id(): string;
|