@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,16 +1,30 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
2
|
import { types } from 'mobx-state-tree';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* #config BamAdapter
|
|
5
|
+
* used to configure BAM adapter
|
|
6
|
+
*/
|
|
7
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8
|
+
const configSchema = ConfigurationSchema('BamAdapter', {
|
|
9
|
+
/**
|
|
10
|
+
* #slot
|
|
11
|
+
*/
|
|
4
12
|
bamLocation: {
|
|
5
13
|
type: 'fileLocation',
|
|
6
14
|
defaultValue: { uri: '/path/to/my.bam', locationType: 'UriLocation' },
|
|
7
15
|
},
|
|
8
16
|
index: ConfigurationSchema('BamIndex', {
|
|
17
|
+
/**
|
|
18
|
+
* #slot index.indexType
|
|
19
|
+
*/
|
|
9
20
|
indexType: {
|
|
10
21
|
model: types.enumeration('IndexType', ['BAI', 'CSI']),
|
|
11
22
|
type: 'stringEnum',
|
|
12
23
|
defaultValue: 'BAI',
|
|
13
24
|
},
|
|
25
|
+
/**
|
|
26
|
+
* #slot index.location
|
|
27
|
+
*/
|
|
14
28
|
location: {
|
|
15
29
|
type: 'fileLocation',
|
|
16
30
|
defaultValue: {
|
|
@@ -19,13 +33,24 @@ export default types.late(() => ConfigurationSchema('BamAdapter', {
|
|
|
19
33
|
},
|
|
20
34
|
},
|
|
21
35
|
}),
|
|
36
|
+
/**
|
|
37
|
+
* #slot
|
|
38
|
+
*/
|
|
22
39
|
fetchSizeLimit: {
|
|
23
40
|
type: 'number',
|
|
41
|
+
description: 'used to determine when to display a warning to the user that too much data will be fetched',
|
|
24
42
|
defaultValue: 5000000,
|
|
25
43
|
},
|
|
44
|
+
/**
|
|
45
|
+
* #slot
|
|
46
|
+
* generally refers to the reference genome assembly's sequence adapter
|
|
47
|
+
* currently needs to be manually added
|
|
48
|
+
*/
|
|
26
49
|
sequenceAdapter: {
|
|
27
50
|
type: 'frozen',
|
|
51
|
+
description: 'sequence data adapter, used to calculate SNPs when BAM reads lacking MD tags',
|
|
28
52
|
defaultValue: null,
|
|
29
53
|
},
|
|
30
|
-
}, { explicitlyTyped: true })
|
|
54
|
+
}, { explicitlyTyped: true });
|
|
55
|
+
export default configSchema;
|
|
31
56
|
//# sourceMappingURL=configSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BamAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/BamAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;;GAGG;AACH,SAAS,CAAC,KAAI,CAAC,CAAC,wDAAwD;AAExE,MAAM,YAAY,GAAG,mBAAmB,CACtC,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,mBAAmB,CAAC,UAAU,EAAE;QACrC;;WAEG;QACH,SAAS,EAAE;YACT,KAAK,EAAE,KAAK,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,eAAe,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
|
/**
|
|
@@ -12,7 +12,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
12
12
|
// maps a seqId to original refname, passed specially to render args, to a seqid
|
|
13
13
|
this.seqIdToOriginalRefName = [];
|
|
14
14
|
}
|
|
15
|
-
async
|
|
15
|
+
async configurePre() {
|
|
16
16
|
const cramLocation = this.getConf('cramLocation');
|
|
17
17
|
const craiLocation = this.getConf('craiLocation');
|
|
18
18
|
if (!cramLocation) {
|
|
@@ -21,38 +21,43 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
21
21
|
if (!craiLocation) {
|
|
22
22
|
throw new Error('missing craiLocation argument');
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
const pm = this.pluginManager;
|
|
25
25
|
const cram = new IndexedCramFile({
|
|
26
|
-
cramFilehandle: openLocation(cramLocation,
|
|
27
|
-
index: new CraiIndex({
|
|
28
|
-
|
|
29
|
-
}),
|
|
30
|
-
seqFetch: this.seqFetch.bind(this),
|
|
26
|
+
cramFilehandle: openLocation(cramLocation, pm),
|
|
27
|
+
index: new CraiIndex({ filehandle: openLocation(craiLocation, pm) }),
|
|
28
|
+
seqFetch: (...args) => this.seqFetch(...args),
|
|
31
29
|
checkSequenceMD5: false,
|
|
32
30
|
fetchSizeLimit: 200000000, // just make this a large size to avoid hitting it
|
|
33
31
|
});
|
|
34
|
-
// instantiate the sequence adapter
|
|
35
|
-
const sequenceAdapterType = this.getConf(['sequenceAdapter', 'type']);
|
|
36
32
|
if (!this.getSubAdapter) {
|
|
37
33
|
throw new Error('Error getting subadapter');
|
|
38
34
|
}
|
|
39
35
|
const seqConf = this.getConf('sequenceAdapter');
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const subadapter = await this.getSubAdapter(seqConf);
|
|
37
|
+
return {
|
|
38
|
+
cram,
|
|
39
|
+
sequenceAdapter: subadapter.dataAdapter,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async configure() {
|
|
43
|
+
if (!this.configureP) {
|
|
44
|
+
this.configureP = this.configurePre().catch(e => {
|
|
45
|
+
this.configureP = undefined;
|
|
46
|
+
throw e;
|
|
47
|
+
});
|
|
43
48
|
}
|
|
44
|
-
return
|
|
49
|
+
return this.configureP;
|
|
45
50
|
}
|
|
46
51
|
async getHeader(opts) {
|
|
47
52
|
const { cram } = await this.configure();
|
|
48
|
-
return cram.cram.getHeaderText(
|
|
53
|
+
return cram.cram.getHeaderText();
|
|
49
54
|
}
|
|
50
55
|
async seqFetch(seqId, start, end) {
|
|
51
56
|
start -= 1; // convert from 1-based closed to interbase
|
|
52
57
|
const { sequenceAdapter } = await this.configure();
|
|
53
58
|
const refName = this.refIdToOriginalName(seqId) || this.refIdToName(seqId);
|
|
54
59
|
if (!refName) {
|
|
55
|
-
|
|
60
|
+
throw new Error('unknown');
|
|
56
61
|
}
|
|
57
62
|
const seqChunks = await sequenceAdapter
|
|
58
63
|
.getFeatures({
|
|
@@ -82,10 +87,10 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
82
87
|
}
|
|
83
88
|
async setupPre(opts) {
|
|
84
89
|
const { statusCallback = () => { } } = opts || {};
|
|
85
|
-
const
|
|
90
|
+
const conf = await this.configure();
|
|
86
91
|
statusCallback('Downloading index');
|
|
87
|
-
const { cram } =
|
|
88
|
-
const samHeader = await cram.cram.getSamHeader(
|
|
92
|
+
const { cram } = conf;
|
|
93
|
+
const samHeader = await cram.cram.getSamHeader();
|
|
89
94
|
// use the @SQ lines in the header to figure out the
|
|
90
95
|
// mapping between ref ID numbers and names
|
|
91
96
|
const idToName = [];
|
|
@@ -108,7 +113,7 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
108
113
|
const data = { idToName, nameToId, readGroups };
|
|
109
114
|
statusCallback('');
|
|
110
115
|
this.samHeader = data;
|
|
111
|
-
return { samHeader: data, ...
|
|
116
|
+
return { samHeader: data, ...conf };
|
|
112
117
|
}
|
|
113
118
|
async setup(opts) {
|
|
114
119
|
if (!this.setupP) {
|
|
@@ -140,13 +145,8 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
140
145
|
// use info from the SAM header if possible, but fall back to using
|
|
141
146
|
// the ref seq order from when the browser's refseqs were loaded
|
|
142
147
|
refIdToName(refId) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
if (this.seqIdToRefName) {
|
|
147
|
-
return this.seqIdToRefName[refId];
|
|
148
|
-
}
|
|
149
|
-
return undefined;
|
|
148
|
+
var _a, _b;
|
|
149
|
+
return ((_a = this.samHeader.idToName) === null || _a === void 0 ? void 0 : _a[refId]) || ((_b = this.seqIdToRefName) === null || _b === void 0 ? void 0 : _b[refId]);
|
|
150
150
|
}
|
|
151
151
|
refIdToOriginalName(refId) {
|
|
152
152
|
return this.seqIdToOriginalRefName[refId];
|
|
@@ -155,44 +155,37 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
155
155
|
const { signal, filterBy, statusCallback = () => { } } = opts || {};
|
|
156
156
|
const { refName, start, end, originalRefName } = region;
|
|
157
157
|
return ObservableCreate(async (observer) => {
|
|
158
|
-
const { cram
|
|
159
|
-
statusCallback('Downloading alignments');
|
|
160
|
-
if (!this.seqIdToRefName) {
|
|
161
|
-
this.seqIdToRefName = await sequenceAdapter.getRefNames(opts);
|
|
162
|
-
}
|
|
158
|
+
const { cram } = await this.setup(opts);
|
|
163
159
|
const refId = this.refNameToId(refName);
|
|
164
|
-
if (refId
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
-
(record) => record.readName === readName);
|
|
187
|
-
}
|
|
188
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
189
|
-
filtered.forEach((record) => {
|
|
190
|
-
observer.next(this.cramRecordToFeature(record));
|
|
160
|
+
if (refId === undefined) {
|
|
161
|
+
console.warn('Unknown refName', refName);
|
|
162
|
+
observer.complete();
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (originalRefName) {
|
|
166
|
+
this.seqIdToOriginalRefName[refId] = originalRefName;
|
|
167
|
+
}
|
|
168
|
+
statusCallback('Downloading alignments');
|
|
169
|
+
const records = await cram.getRecordsForRange(refId, start, end);
|
|
170
|
+
checkAbortSignal(signal);
|
|
171
|
+
const { flagInclude = 0, flagExclude = 0, tagFilter, readName, } = filterBy || {};
|
|
172
|
+
let filtered = records.filter(record => {
|
|
173
|
+
const flags = record.flags;
|
|
174
|
+
return (flags & flagInclude) === flagInclude && !(flags & flagExclude);
|
|
175
|
+
});
|
|
176
|
+
if (tagFilter) {
|
|
177
|
+
filtered = filtered.filter(record => {
|
|
178
|
+
// @ts-ignore
|
|
179
|
+
const val = record[tagFilter.tag];
|
|
180
|
+
return val === '*' ? val !== undefined : val === tagFilter.value;
|
|
191
181
|
});
|
|
192
182
|
}
|
|
193
|
-
|
|
194
|
-
|
|
183
|
+
if (readName) {
|
|
184
|
+
filtered = filtered.filter(record => record.readName === readName);
|
|
195
185
|
}
|
|
186
|
+
filtered.forEach(record => {
|
|
187
|
+
observer.next(this.cramRecordToFeature(record));
|
|
188
|
+
});
|
|
196
189
|
statusCallback('');
|
|
197
190
|
observer.complete();
|
|
198
191
|
}, signal);
|
|
@@ -220,7 +213,9 @@ export default class CramAdapter extends BaseFeatureDataAdapter {
|
|
|
220
213
|
const blockResults = await Promise.all(regions.map(region => {
|
|
221
214
|
const { refName, start, end } = region;
|
|
222
215
|
const chrId = this.refNameToId(refName);
|
|
223
|
-
return
|
|
216
|
+
return chrId !== undefined
|
|
217
|
+
? cram.index.getEntriesForRange(chrId, start, end)
|
|
218
|
+
: [{ sliceBytes: 0 }];
|
|
224
219
|
}));
|
|
225
220
|
return blockResults.flat().reduce((a, b) => a + b.sliceBytes, 0);
|
|
226
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CramAdapter.js","sourceRoot":"","sources":["../../src/CramAdapter/CramAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,
|
|
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;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export default class CramSlightlyLazyFeature {
|
|
2
2
|
// uses parameter properties to automatically create fields on the class
|
|
3
3
|
// https://www.typescriptlang.org/docs/handbook/classes.html#parameter-properties
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
4
|
constructor(record, _store) {
|
|
6
5
|
this.record = record;
|
|
7
6
|
this._store = _store;
|
|
@@ -13,7 +12,8 @@ export default class CramSlightlyLazyFeature {
|
|
|
13
12
|
return this.record.alignmentStart - 1;
|
|
14
13
|
}
|
|
15
14
|
_get_end() {
|
|
16
|
-
|
|
15
|
+
var _a;
|
|
16
|
+
return this.record.alignmentStart + ((_a = this.record.lengthOnRef) !== null && _a !== void 0 ? _a : 1) - 1;
|
|
17
17
|
}
|
|
18
18
|
_get_cram_read_features() {
|
|
19
19
|
return this.record.readFeatures;
|
|
@@ -83,12 +83,16 @@ export default class CramSlightlyLazyFeature {
|
|
|
83
83
|
let cigar = '';
|
|
84
84
|
let op = 'M';
|
|
85
85
|
let oplen = 0;
|
|
86
|
+
if (!this.record._refRegion) {
|
|
87
|
+
return '';
|
|
88
|
+
}
|
|
86
89
|
// not sure I should access these, but...
|
|
87
90
|
const ref = this.record._refRegion.seq;
|
|
88
91
|
const refStart = this.record._refRegion.start;
|
|
89
92
|
let last_pos = this.record.alignmentStart;
|
|
90
93
|
let sublen = 0;
|
|
91
94
|
if (typeof this.record.readFeatures !== 'undefined') {
|
|
95
|
+
let insLen = 0;
|
|
92
96
|
// @ts-ignore
|
|
93
97
|
for (let i = 0; i < this.record.readFeatures.length; i++) {
|
|
94
98
|
const { code, refPos, sub, data } = this.record.readFeatures[i];
|
|
@@ -103,6 +107,10 @@ export default class CramSlightlyLazyFeature {
|
|
|
103
107
|
op = 'M';
|
|
104
108
|
oplen += sublen;
|
|
105
109
|
}
|
|
110
|
+
if (insLen > 0 && code !== 'i') {
|
|
111
|
+
cigar += `${insLen}I`;
|
|
112
|
+
insLen = 0;
|
|
113
|
+
}
|
|
106
114
|
if (code === 'b') {
|
|
107
115
|
// An array of bases stored verbatim
|
|
108
116
|
const ret = data.split(',');
|
|
@@ -143,11 +151,11 @@ export default class CramSlightlyLazyFeature {
|
|
|
143
151
|
}
|
|
144
152
|
else if (code === 'i') {
|
|
145
153
|
// Single base insertion
|
|
146
|
-
seq += data
|
|
154
|
+
// seq += data
|
|
147
155
|
if (oplen) {
|
|
148
156
|
cigar += oplen + op;
|
|
149
157
|
}
|
|
150
|
-
|
|
158
|
+
insLen++;
|
|
151
159
|
oplen = 0;
|
|
152
160
|
}
|
|
153
161
|
else if (code === 'P') {
|
|
@@ -229,18 +237,10 @@ export default class CramSlightlyLazyFeature {
|
|
|
229
237
|
return 0;
|
|
230
238
|
}
|
|
231
239
|
toJSON() {
|
|
232
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
233
|
-
const tags = {};
|
|
234
|
-
this.tags().forEach((t) => {
|
|
235
|
-
const val = this.get(t);
|
|
236
|
-
if (val !== undefined) {
|
|
237
|
-
tags[t] = val;
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
240
|
return {
|
|
241
|
-
...tags
|
|
242
|
-
|
|
243
|
-
|
|
241
|
+
...Object.fromEntries(this.tags()
|
|
242
|
+
.map(t => [t, this.get(t)])
|
|
243
|
+
.filter(elt => elt[1] !== undefined)),
|
|
244
244
|
uniqueId: this.id(),
|
|
245
245
|
};
|
|
246
246
|
}
|
|
@@ -253,10 +253,21 @@ export default class CramSlightlyLazyFeature {
|
|
|
253
253
|
const start = this.get('start');
|
|
254
254
|
const mismatches = new Array(readFeatures.length);
|
|
255
255
|
let j = 0;
|
|
256
|
+
let insLen = 0;
|
|
257
|
+
let refPos = 0;
|
|
256
258
|
for (let i = 0; i < readFeatures.length; i++) {
|
|
257
259
|
const f = readFeatures[i];
|
|
258
260
|
const { code, pos, data, sub, ref } = f;
|
|
259
|
-
|
|
261
|
+
if (insLen > 0 && code !== 'i') {
|
|
262
|
+
mismatches[j++] = {
|
|
263
|
+
start: refPos,
|
|
264
|
+
type: 'insertion',
|
|
265
|
+
base: `${insLen}`,
|
|
266
|
+
length: 0,
|
|
267
|
+
};
|
|
268
|
+
insLen = 0;
|
|
269
|
+
}
|
|
270
|
+
refPos = f.refPos - 1 - start;
|
|
260
271
|
if (code === 'X') {
|
|
261
272
|
// substitution
|
|
262
273
|
mismatches[j++] = {
|
|
@@ -332,12 +343,7 @@ export default class CramSlightlyLazyFeature {
|
|
|
332
343
|
else if (code === 'i') {
|
|
333
344
|
// single-base insertion
|
|
334
345
|
// insertion
|
|
335
|
-
|
|
336
|
-
start: refPos,
|
|
337
|
-
type: 'insertion',
|
|
338
|
-
base: data,
|
|
339
|
-
length: 1,
|
|
340
|
-
};
|
|
346
|
+
insLen++;
|
|
341
347
|
}
|
|
342
348
|
else if (code === 'Q') {
|
|
343
349
|
// single quality value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CramSlightlyLazyFeature.js","sourceRoot":"","sources":["../../src/CramAdapter/CramSlightlyLazyFeature.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C,wEAAwE;IACxE,iFAAiF;
|
|
1
|
+
{"version":3,"file":"CramSlightlyLazyFeature.js","sourceRoot":"","sources":["../../src/CramAdapter/CramSlightlyLazyFeature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default _default;
|
|
1
|
+
declare const configSchema: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
|
|
2
|
+
export default configSchema;
|
|
@@ -1,26 +1,48 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
/**
|
|
3
|
+
* #config CramAdapter
|
|
4
|
+
* used to configure CRAM adapter
|
|
5
|
+
*/
|
|
6
|
+
function x() { } // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
7
|
+
const configSchema = ConfigurationSchema('CramAdapter', {
|
|
8
|
+
/**
|
|
9
|
+
* #slot fetchSizeLimit
|
|
10
|
+
*/
|
|
11
|
+
fetchSizeLimit: {
|
|
12
|
+
type: 'number',
|
|
13
|
+
description: 'used to determine when to display a warning to the user that too much data will be fetched',
|
|
14
|
+
defaultValue: 3000000,
|
|
15
|
+
},
|
|
16
|
+
/**
|
|
17
|
+
* #slot cramLocation
|
|
18
|
+
*/
|
|
19
|
+
cramLocation: {
|
|
20
|
+
type: 'fileLocation',
|
|
21
|
+
defaultValue: {
|
|
22
|
+
uri: '/path/to/my.cram',
|
|
23
|
+
locationType: 'UriLocation',
|
|
8
24
|
},
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* #slot craiLocation
|
|
28
|
+
*/
|
|
29
|
+
craiLocation: {
|
|
30
|
+
type: 'fileLocation',
|
|
31
|
+
defaultValue: {
|
|
32
|
+
uri: '/path/to/my.cram.crai',
|
|
33
|
+
locationType: 'UriLocation',
|
|
15
34
|
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
},
|
|
36
|
+
/**
|
|
37
|
+
* #slot sequenceAdapter
|
|
38
|
+
* generally refers to the reference genome assembly's sequence adapter
|
|
39
|
+
* currently needs to be manually added
|
|
40
|
+
*/
|
|
41
|
+
sequenceAdapter: {
|
|
42
|
+
type: 'frozen',
|
|
43
|
+
description: 'sequence data adapter, used to calculate SNPs when BAM reads lacking MD tags',
|
|
44
|
+
defaultValue: null,
|
|
45
|
+
},
|
|
46
|
+
}, { explicitlyTyped: true });
|
|
47
|
+
export default configSchema;
|
|
26
48
|
//# sourceMappingURL=configSchema.js.map
|