@jbrowse/plugin-variants 1.7.9 → 2.0.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/ChordVariantDisplay/index.d.ts +2 -1
- package/dist/ChordVariantDisplay/index.js +19 -31
- package/dist/ChordVariantDisplay/index.js.map +1 -0
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +94 -2
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js +39 -71
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
- package/dist/LinearVariantDisplay/configSchema.js +9 -16
- package/dist/LinearVariantDisplay/configSchema.js.map +1 -0
- package/dist/LinearVariantDisplay/index.js +10 -22
- package/dist/LinearVariantDisplay/index.js.map +1 -0
- package/dist/LinearVariantDisplay/model.d.ts +18 -13
- package/dist/LinearVariantDisplay/model.js +83 -73
- package/dist/LinearVariantDisplay/model.js.map +1 -0
- package/dist/StructuralVariantChordRenderer/ReactComponent.js +193 -214
- package/dist/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
- package/dist/StructuralVariantChordRenderer/index.js +36 -46
- package/dist/StructuralVariantChordRenderer/index.js.map +1 -0
- package/dist/VariantFeatureWidget/BreakendOptionDialog.d.ts +1 -1
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js +95 -119
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
- package/dist/VariantFeatureWidget/VariantFeatureWidget.js +193 -240
- package/dist/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
- package/dist/VariantFeatureWidget/index.d.ts +32 -6
- package/dist/VariantFeatureWidget/index.js +14 -33
- package/dist/VariantFeatureWidget/index.js.map +1 -0
- package/dist/VcfAdapter/VcfAdapter.js +232 -372
- package/dist/VcfAdapter/VcfAdapter.js.map +1 -0
- package/dist/VcfAdapter/configSchema.js +9 -21
- package/dist/VcfAdapter/configSchema.js.map +1 -0
- package/dist/VcfAdapter/index.js +8 -14
- package/dist/VcfAdapter/index.js.map +1 -0
- package/dist/VcfTabixAdapter/VcfFeature.js +203 -246
- package/dist/VcfTabixAdapter/VcfFeature.js.map +1 -0
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js +237 -374
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
- package/dist/VcfTabixAdapter/configSchema.js +23 -36
- package/dist/VcfTabixAdapter/configSchema.js.map +1 -0
- package/dist/VcfTabixAdapter/index.js +8 -14
- package/dist/VcfTabixAdapter/index.js.map +1 -0
- package/dist/index.js +160 -203
- package/dist/index.js.map +1 -0
- package/esm/ChordVariantDisplay/index.d.ts +4 -0
- package/esm/ChordVariantDisplay/index.js +16 -0
- package/esm/ChordVariantDisplay/index.js.map +1 -0
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +97 -0
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js +40 -0
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
- package/esm/LinearVariantDisplay/configSchema.d.ts +5 -0
- package/esm/LinearVariantDisplay/configSchema.js +7 -0
- package/esm/LinearVariantDisplay/configSchema.js.map +1 -0
- package/esm/LinearVariantDisplay/index.d.ts +2 -0
- package/esm/LinearVariantDisplay/index.js +3 -0
- package/esm/LinearVariantDisplay/index.js.map +1 -0
- package/esm/LinearVariantDisplay/model.d.ts +212 -0
- package/esm/LinearVariantDisplay/model.js +34 -0
- package/esm/LinearVariantDisplay/model.js.map +1 -0
- package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +24 -0
- package/esm/StructuralVariantChordRenderer/ReactComponent.js +133 -0
- package/esm/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
- package/esm/StructuralVariantChordRenderer/index.d.ts +3 -0
- package/esm/StructuralVariantChordRenderer/index.js +33 -0
- package/esm/StructuralVariantChordRenderer/index.js.map +1 -0
- package/esm/VariantFeatureWidget/BreakendOptionDialog.d.ts +10 -0
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js +58 -0
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
- package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +4 -0
- package/esm/VariantFeatureWidget/VariantFeatureWidget.js +129 -0
- package/esm/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
- package/esm/VariantFeatureWidget/index.d.ts +37 -0
- package/esm/VariantFeatureWidget/index.js +12 -0
- package/esm/VariantFeatureWidget/index.js.map +1 -0
- package/esm/VcfAdapter/VcfAdapter.d.ts +24 -0
- package/esm/VcfAdapter/VcfAdapter.js +99 -0
- package/esm/VcfAdapter/VcfAdapter.js.map +1 -0
- package/esm/VcfAdapter/configSchema.d.ts +2 -0
- package/esm/VcfAdapter/configSchema.js +8 -0
- package/esm/VcfAdapter/configSchema.js.map +1 -0
- package/esm/VcfAdapter/index.d.ts +1 -0
- package/esm/VcfAdapter/index.js +2 -0
- package/esm/VcfAdapter/index.js.map +1 -0
- package/esm/VcfTabixAdapter/VcfFeature.d.ts +59 -0
- package/esm/VcfTabixAdapter/VcfFeature.js +184 -0
- package/esm/VcfTabixAdapter/VcfFeature.js.map +1 -0
- package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +35 -0
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js +112 -0
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
- package/esm/VcfTabixAdapter/configSchema.d.ts +2 -0
- package/esm/VcfTabixAdapter/configSchema.js +23 -0
- package/esm/VcfTabixAdapter/configSchema.js.map +1 -0
- package/esm/VcfTabixAdapter/index.d.ts +1 -0
- package/esm/VcfTabixAdapter/index.js +2 -0
- package/esm/VcfTabixAdapter/index.js.map +1 -0
- package/esm/index.d.ts +7 -0
- package/esm/index.js +110 -0
- package/esm/index.js.map +1 -0
- package/package.json +20 -11
- package/src/ChordVariantDisplay/index.ts +4 -4
- package/src/ChordVariantDisplay/models/ChordVariantDisplay.js +7 -8
- package/src/VariantFeatureWidget/BreakendOptionDialog.tsx +8 -9
- package/src/VariantFeatureWidget/VariantFeatureWidget.tsx +2 -3
- package/src/VariantFeatureWidget/__snapshots__/VariantFeatureWidget.test.js.snap +52 -57
- package/src/VariantFeatureWidget/index.ts +17 -0
- package/dist/LinearVariantDisplay/configSchema.test.js +0 -92
- package/dist/VariantFeatureWidget/VariantFeatureWidget.test.js +0 -56
- package/dist/VcfAdapter/VcfAdapter.test.js +0 -55
- package/dist/VcfTabixAdapter/VcfFeature.test.js +0 -106
- package/dist/VcfTabixAdapter/VcfTabixAdapter.test.js +0 -99
- package/dist/index.test.js +0 -37
- package/src/VariantFeatureWidget/index.js +0 -26
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter, BaseOptions } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { NoAssemblyRegion, Region } from '@jbrowse/core/util/types';
|
|
3
|
+
import { Feature } from '@jbrowse/core/util/simpleFeature';
|
|
4
|
+
import { TabixIndexedFile } from '@gmod/tabix';
|
|
5
|
+
import VcfParser from '@gmod/vcf';
|
|
6
|
+
import { GenericFilehandle } from 'generic-filehandle';
|
|
7
|
+
export default class extends BaseFeatureDataAdapter {
|
|
8
|
+
private configured?;
|
|
9
|
+
private configurePre;
|
|
10
|
+
protected configure(): Promise<{
|
|
11
|
+
filehandle: GenericFilehandle;
|
|
12
|
+
vcf: TabixIndexedFile;
|
|
13
|
+
parser: VcfParser;
|
|
14
|
+
}>;
|
|
15
|
+
getRefNames(opts?: BaseOptions): Promise<any>;
|
|
16
|
+
getHeader(): Promise<string>;
|
|
17
|
+
getMetadata(): Promise<any>;
|
|
18
|
+
getFeatures(query: NoAssemblyRegion, opts?: BaseOptions): import("rxjs").Observable<Feature>;
|
|
19
|
+
/**
|
|
20
|
+
* Checks if the data source has data for the given reference sequence,
|
|
21
|
+
* and then gets the features in the region if it does
|
|
22
|
+
*
|
|
23
|
+
* Currently this just calls getFeatureInRegion for each region. Adapters that
|
|
24
|
+
* are frequently called on multiple regions simultaneously may want to
|
|
25
|
+
* implement a more efficient custom version of this method.
|
|
26
|
+
*
|
|
27
|
+
* Also includes a bit of extra logging to warn when fetching a large portion
|
|
28
|
+
* of a VCF
|
|
29
|
+
* @param regions - Regions
|
|
30
|
+
* @param opts - Feature adapter options
|
|
31
|
+
* @returns Observable of Feature objects in the regions
|
|
32
|
+
*/
|
|
33
|
+
getFeaturesInMultipleRegions(regions: Region[], opts?: BaseOptions): import("rxjs").Observable<Feature>;
|
|
34
|
+
freeResources(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { BaseFeatureDataAdapter, } from '@jbrowse/core/data_adapters/BaseAdapter';
|
|
2
|
+
import { openLocation } from '@jbrowse/core/util/io';
|
|
3
|
+
import { bytesForRegions } from '@jbrowse/core/util';
|
|
4
|
+
import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
5
|
+
import { TabixIndexedFile } from '@gmod/tabix';
|
|
6
|
+
import VcfParser from '@gmod/vcf';
|
|
7
|
+
import { readConfObject } from '@jbrowse/core/configuration';
|
|
8
|
+
import VcfFeature from './VcfFeature';
|
|
9
|
+
export default class extends BaseFeatureDataAdapter {
|
|
10
|
+
async configurePre() {
|
|
11
|
+
const vcfGzLocation = readConfObject(this.config, 'vcfGzLocation');
|
|
12
|
+
const location = readConfObject(this.config, ['index', 'location']);
|
|
13
|
+
const indexType = readConfObject(this.config, ['index', 'indexType']);
|
|
14
|
+
const filehandle = openLocation(vcfGzLocation, this.pluginManager);
|
|
15
|
+
const isCSI = indexType === 'CSI';
|
|
16
|
+
const vcf = new TabixIndexedFile({
|
|
17
|
+
filehandle,
|
|
18
|
+
csiFilehandle: isCSI
|
|
19
|
+
? openLocation(location, this.pluginManager)
|
|
20
|
+
: undefined,
|
|
21
|
+
tbiFilehandle: !isCSI
|
|
22
|
+
? openLocation(location, this.pluginManager)
|
|
23
|
+
: undefined,
|
|
24
|
+
chunkCacheSize: 50 * 2 ** 20,
|
|
25
|
+
chunkSizeLimit: 1000000000,
|
|
26
|
+
});
|
|
27
|
+
const header = await vcf.getHeader();
|
|
28
|
+
return {
|
|
29
|
+
filehandle,
|
|
30
|
+
vcf,
|
|
31
|
+
parser: new VcfParser({ header }),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async configure() {
|
|
35
|
+
if (!this.configured) {
|
|
36
|
+
this.configured = this.configurePre().catch(e => {
|
|
37
|
+
this.configured = undefined;
|
|
38
|
+
throw e;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return this.configured;
|
|
42
|
+
}
|
|
43
|
+
async getRefNames(opts = {}) {
|
|
44
|
+
const { vcf } = await this.configure();
|
|
45
|
+
return vcf.getReferenceSequenceNames(opts);
|
|
46
|
+
}
|
|
47
|
+
async getHeader() {
|
|
48
|
+
const { vcf } = await this.configure();
|
|
49
|
+
return vcf.getHeader();
|
|
50
|
+
}
|
|
51
|
+
async getMetadata() {
|
|
52
|
+
const { parser } = await this.configure();
|
|
53
|
+
return parser.getMetadata();
|
|
54
|
+
}
|
|
55
|
+
getFeatures(query, opts = {}) {
|
|
56
|
+
return ObservableCreate(async (observer) => {
|
|
57
|
+
const { refName, start, end } = query;
|
|
58
|
+
const { vcf, parser } = await this.configure();
|
|
59
|
+
await vcf.getLines(refName, start, end, {
|
|
60
|
+
lineCallback: (line, fileOffset) => {
|
|
61
|
+
observer.next(new VcfFeature({
|
|
62
|
+
variant: parser.parseLine(line),
|
|
63
|
+
parser,
|
|
64
|
+
id: `${this.id}-vcf-${fileOffset}`,
|
|
65
|
+
}));
|
|
66
|
+
},
|
|
67
|
+
...opts,
|
|
68
|
+
});
|
|
69
|
+
observer.complete();
|
|
70
|
+
}, opts.signal);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Checks if the data source has data for the given reference sequence,
|
|
74
|
+
* and then gets the features in the region if it does
|
|
75
|
+
*
|
|
76
|
+
* Currently this just calls getFeatureInRegion for each region. Adapters that
|
|
77
|
+
* are frequently called on multiple regions simultaneously may want to
|
|
78
|
+
* implement a more efficient custom version of this method.
|
|
79
|
+
*
|
|
80
|
+
* Also includes a bit of extra logging to warn when fetching a large portion
|
|
81
|
+
* of a VCF
|
|
82
|
+
* @param regions - Regions
|
|
83
|
+
* @param opts - Feature adapter options
|
|
84
|
+
* @returns Observable of Feature objects in the regions
|
|
85
|
+
*/
|
|
86
|
+
getFeaturesInMultipleRegions(regions, opts = {}) {
|
|
87
|
+
// TODO: restore commented version below once TSDX supports Rollup v2
|
|
88
|
+
// xref: https://github.com/rollup/rollup/blob/master/CHANGELOG.md#bug-fixes-45
|
|
89
|
+
const superGetFeaturesInMultipleRegions = super.getFeaturesInMultipleRegions;
|
|
90
|
+
return ObservableCreate(async (observer) => {
|
|
91
|
+
const { vcf } = await this.configure();
|
|
92
|
+
// @ts-ignore
|
|
93
|
+
const bytes = await bytesForRegions(regions, vcf.index);
|
|
94
|
+
const { filehandle } = await this.configure();
|
|
95
|
+
const stat = await filehandle.stat();
|
|
96
|
+
let pct = Math.round((bytes / stat.size) * 100);
|
|
97
|
+
if (pct > 100) {
|
|
98
|
+
// this is just a bad estimate, make 100% if it goes over
|
|
99
|
+
pct = 100;
|
|
100
|
+
}
|
|
101
|
+
if (pct > 60) {
|
|
102
|
+
console.warn(`getFeaturesInMultipleRegions fetching ${pct}% of VCF file, but whole-file streaming not yet implemented`);
|
|
103
|
+
}
|
|
104
|
+
superGetFeaturesInMultipleRegions
|
|
105
|
+
.call(this, regions, opts)
|
|
106
|
+
.subscribe(observer);
|
|
107
|
+
// super.getFeaturesInMultipleRegions(regions, opts).subscribe(observer)
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
freeResources( /* { region } */) { }
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=VcfTabixAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { types } from 'mobx-state-tree';
|
|
2
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
3
|
+
export default ConfigurationSchema('VcfTabixAdapter', {
|
|
4
|
+
vcfGzLocation: {
|
|
5
|
+
type: 'fileLocation',
|
|
6
|
+
defaultValue: { uri: '/path/to/my.vcf.gz', locationType: 'UriLocation' },
|
|
7
|
+
},
|
|
8
|
+
index: ConfigurationSchema('VcfIndex', {
|
|
9
|
+
indexType: {
|
|
10
|
+
model: types.enumeration('IndexType', ['TBI', 'CSI']),
|
|
11
|
+
type: 'stringEnum',
|
|
12
|
+
defaultValue: 'TBI',
|
|
13
|
+
},
|
|
14
|
+
location: {
|
|
15
|
+
type: 'fileLocation',
|
|
16
|
+
defaultValue: {
|
|
17
|
+
uri: '/path/to/my.vcf.gz.tbi',
|
|
18
|
+
locationType: 'UriLocation',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
}),
|
|
22
|
+
}, { explicitlyTyped: true });
|
|
23
|
+
//# sourceMappingURL=configSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,iBAAiB,EACjB;IACE,aAAa,EAAE;QACb,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE;KACzE;IACD,KAAK,EAAE,mBAAmB,CAAC,UAAU,EAAE;QACrC,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,QAAQ,EAAE;YACR,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE;gBACZ,GAAG,EAAE,wBAAwB;gBAC7B,YAAY,EAAE,aAAa;aAC5B;SACF;KACF,CAAC;CACH,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as configSchema } from './configSchema';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Plugin from '@jbrowse/core/Plugin';
|
|
2
|
+
import PluginManager from '@jbrowse/core/PluginManager';
|
|
3
|
+
export default class VariantsPlugin extends Plugin {
|
|
4
|
+
name: string;
|
|
5
|
+
install(pluginManager: PluginManager): void;
|
|
6
|
+
}
|
|
7
|
+
export { default as VcfFeature } from './VcfTabixAdapter/VcfFeature';
|
package/esm/index.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { lazy } from 'react';
|
|
2
|
+
import { ConfigurationSchema } from '@jbrowse/core/configuration';
|
|
3
|
+
import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
|
|
4
|
+
import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
|
|
5
|
+
import { createBaseTrackConfig, createBaseTrackModel, } from '@jbrowse/core/pluggableElementTypes/models';
|
|
6
|
+
import TrackType from '@jbrowse/core/pluggableElementTypes/TrackType';
|
|
7
|
+
import WidgetType from '@jbrowse/core/pluggableElementTypes/WidgetType';
|
|
8
|
+
import Plugin from '@jbrowse/core/Plugin';
|
|
9
|
+
import { BaseLinearDisplayComponent } from '@jbrowse/plugin-linear-genome-view';
|
|
10
|
+
import ChordVariantDisplay from './ChordVariantDisplay';
|
|
11
|
+
import { configSchemaFactory as linearVariantDisplayConfigSchemaFactory, modelFactory as linearVariantDisplayModelFactory, } from './LinearVariantDisplay';
|
|
12
|
+
import StructuralVariantChordRendererFactory from './StructuralVariantChordRenderer';
|
|
13
|
+
import { configSchema as variantFeatureWidgetConfigSchema, stateModelFactory as variantFeatureWidgetStateModelFactory, } from './VariantFeatureWidget';
|
|
14
|
+
import { configSchema as vcfTabixAdapterConfigSchema } from './VcfTabixAdapter';
|
|
15
|
+
import { configSchema as vcfAdapterConfigSchema } from './VcfAdapter';
|
|
16
|
+
import { makeIndex, makeIndexType, getFileName, } from '@jbrowse/core/util/tracks';
|
|
17
|
+
export default class VariantsPlugin extends Plugin {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.name = 'VariantsPlugin';
|
|
21
|
+
}
|
|
22
|
+
install(pluginManager) {
|
|
23
|
+
pluginManager.addAdapterType(() => new AdapterType({
|
|
24
|
+
name: 'VcfTabixAdapter',
|
|
25
|
+
configSchema: vcfTabixAdapterConfigSchema,
|
|
26
|
+
getAdapterClass: () => import('./VcfTabixAdapter/VcfTabixAdapter').then(r => r.default),
|
|
27
|
+
}));
|
|
28
|
+
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
29
|
+
return (file, index, adapterHint) => {
|
|
30
|
+
const regexGuess = /\.vcf\.b?gz$/i;
|
|
31
|
+
const adapterName = 'VcfTabixAdapter';
|
|
32
|
+
const fileName = getFileName(file);
|
|
33
|
+
const indexName = index && getFileName(index);
|
|
34
|
+
const obj = {
|
|
35
|
+
type: adapterName,
|
|
36
|
+
vcfGzLocation: file,
|
|
37
|
+
index: {
|
|
38
|
+
location: index || makeIndex(file, '.tbi'),
|
|
39
|
+
indexType: makeIndexType(indexName, 'CSI', 'TBI'),
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
if (regexGuess.test(fileName) && !adapterHint) {
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
else if (adapterHint === adapterName) {
|
|
46
|
+
return obj;
|
|
47
|
+
}
|
|
48
|
+
return adapterGuesser(file, index, adapterHint);
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
pluginManager.addToExtensionPoint('Core-guessTrackTypeForLocation', (trackTypeGuesser) => {
|
|
52
|
+
return (adapterName) => {
|
|
53
|
+
if (adapterName === 'VcfTabixAdapter' ||
|
|
54
|
+
adapterName === 'VcfAdapter') {
|
|
55
|
+
return 'VariantTrack';
|
|
56
|
+
}
|
|
57
|
+
return trackTypeGuesser(adapterName);
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
pluginManager.addAdapterType(() => new AdapterType({
|
|
61
|
+
name: 'VcfAdapter',
|
|
62
|
+
configSchema: vcfAdapterConfigSchema,
|
|
63
|
+
getAdapterClass: () => import('./VcfAdapter/VcfAdapter').then(r => r.default),
|
|
64
|
+
}));
|
|
65
|
+
pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
|
|
66
|
+
return (file, index, adapterHint) => {
|
|
67
|
+
const regexGuess = /\.vcf$/i;
|
|
68
|
+
const adapterName = 'VcfAdapter';
|
|
69
|
+
const fileName = getFileName(file);
|
|
70
|
+
if (regexGuess.test(fileName) || adapterHint === adapterName) {
|
|
71
|
+
return {
|
|
72
|
+
type: adapterName,
|
|
73
|
+
vcfLocation: file,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return adapterGuesser(file, index, adapterHint);
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
pluginManager.addRendererType(() => pluginManager.jbrequire(StructuralVariantChordRendererFactory));
|
|
80
|
+
pluginManager.addTrackType(() => {
|
|
81
|
+
const configSchema = ConfigurationSchema('VariantTrack', {}, { baseConfiguration: createBaseTrackConfig(pluginManager) });
|
|
82
|
+
return new TrackType({
|
|
83
|
+
name: 'VariantTrack',
|
|
84
|
+
configSchema,
|
|
85
|
+
stateModel: createBaseTrackModel(pluginManager, 'VariantTrack', configSchema),
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
pluginManager.addDisplayType(() => pluginManager.jbrequire(ChordVariantDisplay));
|
|
89
|
+
pluginManager.addDisplayType(() => {
|
|
90
|
+
const configSchema = linearVariantDisplayConfigSchemaFactory(pluginManager);
|
|
91
|
+
return new DisplayType({
|
|
92
|
+
name: 'LinearVariantDisplay',
|
|
93
|
+
configSchema,
|
|
94
|
+
stateModel: linearVariantDisplayModelFactory(configSchema),
|
|
95
|
+
trackType: 'VariantTrack',
|
|
96
|
+
viewType: 'LinearGenomeView',
|
|
97
|
+
ReactComponent: BaseLinearDisplayComponent,
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
pluginManager.addWidgetType(() => new WidgetType({
|
|
101
|
+
name: 'VariantFeatureWidget',
|
|
102
|
+
heading: 'Feature details',
|
|
103
|
+
configSchema: variantFeatureWidgetConfigSchema,
|
|
104
|
+
stateModel: variantFeatureWidgetStateModelFactory(pluginManager),
|
|
105
|
+
ReactComponent: lazy(() => import('./VariantFeatureWidget/VariantFeatureWidget')),
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export { default as VcfFeature } from './VcfTabixAdapter/VcfFeature';
|
|
110
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jbrowse/plugin-variants",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "JBrowse 2 variant adapters, tracks, etc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jbrowse",
|
|
@@ -20,17 +20,21 @@
|
|
|
20
20
|
"main": "dist/index.js",
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
23
|
-
"src"
|
|
23
|
+
"src",
|
|
24
|
+
"esm"
|
|
24
25
|
],
|
|
25
26
|
"scripts": {
|
|
26
|
-
"build": "
|
|
27
|
+
"build": "npm-run-all build:*",
|
|
27
28
|
"test": "cd ../..; jest plugins/variants",
|
|
28
29
|
"prepublishOnly": "yarn test",
|
|
29
30
|
"prepack": "yarn build; yarn useDist",
|
|
30
31
|
"postpack": "yarn useSrc",
|
|
31
32
|
"useDist": "node ../../scripts/useDist.js",
|
|
32
33
|
"useSrc": "node ../../scripts/useSrc.js",
|
|
33
|
-
"
|
|
34
|
+
"prebuild": "npm run clean",
|
|
35
|
+
"build:esm": "tsc --build tsconfig.build.esm.json",
|
|
36
|
+
"build:es5": "tsc --build tsconfig.build.es5.json",
|
|
37
|
+
"clean": "rimraf dist esm *.tsbuildinfo"
|
|
34
38
|
},
|
|
35
39
|
"dependencies": {
|
|
36
40
|
"@babel/runtime": "^7.17.9",
|
|
@@ -38,8 +42,8 @@
|
|
|
38
42
|
"@gmod/bgzf-filehandle": "^1.4.3",
|
|
39
43
|
"@gmod/tabix": "^1.5.2",
|
|
40
44
|
"@gmod/vcf": "^5.0.5",
|
|
41
|
-
"@
|
|
42
|
-
"@mui/x-data-grid": "^
|
|
45
|
+
"@mui/icons-material": "^5.0.2",
|
|
46
|
+
"@mui/x-data-grid": "^5.0.1",
|
|
43
47
|
"generic-filehandle": "^2.2.2"
|
|
44
48
|
},
|
|
45
49
|
"peerDependencies": {
|
|
@@ -47,15 +51,20 @@
|
|
|
47
51
|
"@jbrowse/plugin-alignments": "^1.0.0",
|
|
48
52
|
"@jbrowse/plugin-circular-view": "^1.0.0",
|
|
49
53
|
"@jbrowse/plugin-linear-genome-view": "^1.0.0",
|
|
50
|
-
"@material
|
|
51
|
-
"mobx
|
|
52
|
-
"mobx-
|
|
54
|
+
"@mui/material": "^5.0.0",
|
|
55
|
+
"mobx": "^6.0.0",
|
|
56
|
+
"mobx-react": "^7.0.0",
|
|
57
|
+
"mobx-state-tree": "^5.0.0",
|
|
53
58
|
"prop-types": "^15.0.0",
|
|
54
59
|
"react": ">=16.8.0",
|
|
55
|
-
"rxjs": "^6.0.0"
|
|
60
|
+
"rxjs": "^6.0.0",
|
|
61
|
+
"tss-react": "^3.0.0"
|
|
56
62
|
},
|
|
57
63
|
"publishConfig": {
|
|
58
64
|
"access": "public"
|
|
59
65
|
},
|
|
60
|
-
"
|
|
66
|
+
"distModule": "esm/index.js",
|
|
67
|
+
"srcModule": "src/index.ts",
|
|
68
|
+
"module": "esm/index.js",
|
|
69
|
+
"gitHead": "ecc7f5d47351a5ea04bc00f3a6eb6dfb607342e6"
|
|
61
70
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager'
|
|
2
|
-
import {
|
|
2
|
+
import { BaseChordDisplayComponent } from '@jbrowse/plugin-circular-view'
|
|
3
3
|
import ChordVariantDisplay from './models/ChordVariantDisplay'
|
|
4
|
+
import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType'
|
|
4
5
|
|
|
5
6
|
export default (pluginManager: PluginManager) => {
|
|
6
|
-
const {
|
|
7
|
-
const DisplayType = lib['@jbrowse/core/pluggableElementTypes/DisplayType']
|
|
7
|
+
const { load } = pluginManager
|
|
8
8
|
|
|
9
9
|
const { stateModel, configSchema } = load(ChordVariantDisplay)
|
|
10
10
|
|
|
@@ -14,6 +14,6 @@ export default (pluginManager: PluginManager) => {
|
|
|
14
14
|
stateModel,
|
|
15
15
|
trackType: 'VariantTrack',
|
|
16
16
|
viewType: 'CircularView',
|
|
17
|
-
ReactComponent:
|
|
17
|
+
ReactComponent: BaseChordDisplayComponent,
|
|
18
18
|
})
|
|
19
19
|
}
|
|
@@ -2,16 +2,15 @@ import {
|
|
|
2
2
|
baseChordDisplayConfig,
|
|
3
3
|
BaseChordDisplayModel,
|
|
4
4
|
} from '@jbrowse/plugin-circular-view'
|
|
5
|
+
import {
|
|
6
|
+
ConfigurationSchema,
|
|
7
|
+
ConfigurationReference,
|
|
8
|
+
} from '@jbrowse/core/configuration'
|
|
9
|
+
import { types } from 'mobx-state-tree'
|
|
10
|
+
import { getContainingView } from '@jbrowse/core/util'
|
|
11
|
+
import { getParentRenderProps } from '@jbrowse/core/util/tracks'
|
|
5
12
|
|
|
6
13
|
const ChordVariantDisplayF = pluginManager => {
|
|
7
|
-
const { jbrequire } = pluginManager
|
|
8
|
-
|
|
9
|
-
const { types } = jbrequire('mobx-state-tree')
|
|
10
|
-
const { ConfigurationSchema, ConfigurationReference } = jbrequire(
|
|
11
|
-
'@jbrowse/core/configuration',
|
|
12
|
-
)
|
|
13
|
-
const { getContainingView } = jbrequire('@jbrowse/core/util')
|
|
14
|
-
const { getParentRenderProps } = jbrequire('@jbrowse/core/util/tracks')
|
|
15
14
|
const configSchema = ConfigurationSchema(
|
|
16
15
|
'ChordVariantDisplay',
|
|
17
16
|
{
|
|
@@ -3,22 +3,21 @@ import React, { useState } from 'react'
|
|
|
3
3
|
import { observer } from 'mobx-react'
|
|
4
4
|
import {
|
|
5
5
|
Button,
|
|
6
|
+
Checkbox,
|
|
6
7
|
Dialog,
|
|
7
8
|
DialogActions,
|
|
8
9
|
DialogContent,
|
|
9
10
|
DialogTitle,
|
|
10
11
|
Divider,
|
|
11
|
-
IconButton,
|
|
12
12
|
FormControlLabel,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
} from '
|
|
16
|
-
import CloseIcon from '@
|
|
13
|
+
IconButton,
|
|
14
|
+
} from '@mui/material'
|
|
15
|
+
import { makeStyles } from 'tss-react/mui'
|
|
16
|
+
import CloseIcon from '@mui/icons-material/Close'
|
|
17
17
|
import { getSnapshot } from 'mobx-state-tree'
|
|
18
|
-
import { getSession } from '@jbrowse/core/util'
|
|
19
|
-
import { Feature } from '@jbrowse/core/util/simpleFeature'
|
|
18
|
+
import { getSession, Feature } from '@jbrowse/core/util'
|
|
20
19
|
|
|
21
|
-
const useStyles = makeStyles(theme => ({
|
|
20
|
+
const useStyles = makeStyles()(theme => ({
|
|
22
21
|
closeButton: {
|
|
23
22
|
position: 'absolute',
|
|
24
23
|
right: theme.spacing(1),
|
|
@@ -41,7 +40,7 @@ function BreakendOptionDialog({
|
|
|
41
40
|
feature: Feature
|
|
42
41
|
viewType: any
|
|
43
42
|
}) {
|
|
44
|
-
const classes = useStyles()
|
|
43
|
+
const { classes } = useStyles()
|
|
45
44
|
const [copyTracks, setCopyTracks] = useState(true)
|
|
46
45
|
const [mirrorTracks, setMirrorTracks] = useState(true)
|
|
47
46
|
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
Checkbox,
|
|
9
9
|
TextField,
|
|
10
10
|
Typography,
|
|
11
|
-
} from '@material
|
|
11
|
+
} from '@mui/material'
|
|
12
12
|
import SimpleFeature, {
|
|
13
13
|
SimpleFeatureSerialized,
|
|
14
14
|
} from '@jbrowse/core/util/simpleFeature'
|
|
@@ -107,9 +107,8 @@ function VariantSamples(props: any) {
|
|
|
107
107
|
<DataGrid
|
|
108
108
|
rows={rows}
|
|
109
109
|
columns={infoFields}
|
|
110
|
-
rowHeight={20}
|
|
111
|
-
headerHeight={25}
|
|
112
110
|
disableSelectionOnClick
|
|
111
|
+
rowHeight={25}
|
|
113
112
|
disableColumnMenu
|
|
114
113
|
/>
|
|
115
114
|
</div>
|