@jbrowse/plugin-variants 1.7.10 → 2.0.1

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 (107) hide show
  1. package/dist/ChordVariantDisplay/index.d.ts +2 -1
  2. package/dist/ChordVariantDisplay/index.js +19 -31
  3. package/dist/ChordVariantDisplay/index.js.map +1 -0
  4. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +94 -2
  5. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js +39 -71
  6. package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
  7. package/dist/LinearVariantDisplay/configSchema.js +9 -16
  8. package/dist/LinearVariantDisplay/configSchema.js.map +1 -0
  9. package/dist/LinearVariantDisplay/index.js +10 -22
  10. package/dist/LinearVariantDisplay/index.js.map +1 -0
  11. package/dist/LinearVariantDisplay/model.d.ts +18 -13
  12. package/dist/LinearVariantDisplay/model.js +83 -73
  13. package/dist/LinearVariantDisplay/model.js.map +1 -0
  14. package/dist/StructuralVariantChordRenderer/ReactComponent.js +193 -214
  15. package/dist/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
  16. package/dist/StructuralVariantChordRenderer/index.js +36 -46
  17. package/dist/StructuralVariantChordRenderer/index.js.map +1 -0
  18. package/dist/VariantFeatureWidget/BreakendOptionDialog.d.ts +1 -1
  19. package/dist/VariantFeatureWidget/BreakendOptionDialog.js +95 -119
  20. package/dist/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
  21. package/dist/VariantFeatureWidget/VariantFeatureWidget.js +193 -240
  22. package/dist/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
  23. package/dist/VariantFeatureWidget/index.d.ts +3 -3
  24. package/dist/VariantFeatureWidget/index.js +14 -22
  25. package/dist/VariantFeatureWidget/index.js.map +1 -0
  26. package/dist/VcfAdapter/VcfAdapter.js +232 -372
  27. package/dist/VcfAdapter/VcfAdapter.js.map +1 -0
  28. package/dist/VcfAdapter/configSchema.js +9 -21
  29. package/dist/VcfAdapter/configSchema.js.map +1 -0
  30. package/dist/VcfAdapter/index.js +8 -14
  31. package/dist/VcfAdapter/index.js.map +1 -0
  32. package/dist/VcfTabixAdapter/VcfFeature.js +203 -246
  33. package/dist/VcfTabixAdapter/VcfFeature.js.map +1 -0
  34. package/dist/VcfTabixAdapter/VcfTabixAdapter.js +237 -374
  35. package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
  36. package/dist/VcfTabixAdapter/configSchema.js +23 -36
  37. package/dist/VcfTabixAdapter/configSchema.js.map +1 -0
  38. package/dist/VcfTabixAdapter/index.js +8 -14
  39. package/dist/VcfTabixAdapter/index.js.map +1 -0
  40. package/dist/index.js +160 -203
  41. package/dist/index.js.map +1 -0
  42. package/esm/ChordVariantDisplay/index.d.ts +4 -0
  43. package/esm/ChordVariantDisplay/index.js +16 -0
  44. package/esm/ChordVariantDisplay/index.js.map +1 -0
  45. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +97 -0
  46. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js +40 -0
  47. package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js.map +1 -0
  48. package/esm/LinearVariantDisplay/configSchema.d.ts +5 -0
  49. package/esm/LinearVariantDisplay/configSchema.js +7 -0
  50. package/esm/LinearVariantDisplay/configSchema.js.map +1 -0
  51. package/esm/LinearVariantDisplay/index.d.ts +2 -0
  52. package/esm/LinearVariantDisplay/index.js +3 -0
  53. package/esm/LinearVariantDisplay/index.js.map +1 -0
  54. package/esm/LinearVariantDisplay/model.d.ts +212 -0
  55. package/esm/LinearVariantDisplay/model.js +34 -0
  56. package/esm/LinearVariantDisplay/model.js.map +1 -0
  57. package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +24 -0
  58. package/esm/StructuralVariantChordRenderer/ReactComponent.js +133 -0
  59. package/esm/StructuralVariantChordRenderer/ReactComponent.js.map +1 -0
  60. package/esm/StructuralVariantChordRenderer/index.d.ts +3 -0
  61. package/esm/StructuralVariantChordRenderer/index.js +33 -0
  62. package/esm/StructuralVariantChordRenderer/index.js.map +1 -0
  63. package/esm/VariantFeatureWidget/BreakendOptionDialog.d.ts +10 -0
  64. package/esm/VariantFeatureWidget/BreakendOptionDialog.js +58 -0
  65. package/esm/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -0
  66. package/esm/VariantFeatureWidget/VariantFeatureWidget.d.ts +4 -0
  67. package/esm/VariantFeatureWidget/VariantFeatureWidget.js +129 -0
  68. package/esm/VariantFeatureWidget/VariantFeatureWidget.js.map +1 -0
  69. package/esm/VariantFeatureWidget/index.d.ts +37 -0
  70. package/esm/VariantFeatureWidget/index.js +12 -0
  71. package/esm/VariantFeatureWidget/index.js.map +1 -0
  72. package/esm/VcfAdapter/VcfAdapter.d.ts +24 -0
  73. package/esm/VcfAdapter/VcfAdapter.js +99 -0
  74. package/esm/VcfAdapter/VcfAdapter.js.map +1 -0
  75. package/esm/VcfAdapter/configSchema.d.ts +2 -0
  76. package/esm/VcfAdapter/configSchema.js +8 -0
  77. package/esm/VcfAdapter/configSchema.js.map +1 -0
  78. package/esm/VcfAdapter/index.d.ts +1 -0
  79. package/esm/VcfAdapter/index.js +2 -0
  80. package/esm/VcfAdapter/index.js.map +1 -0
  81. package/esm/VcfTabixAdapter/VcfFeature.d.ts +59 -0
  82. package/esm/VcfTabixAdapter/VcfFeature.js +184 -0
  83. package/esm/VcfTabixAdapter/VcfFeature.js.map +1 -0
  84. package/esm/VcfTabixAdapter/VcfTabixAdapter.d.ts +35 -0
  85. package/esm/VcfTabixAdapter/VcfTabixAdapter.js +112 -0
  86. package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -0
  87. package/esm/VcfTabixAdapter/configSchema.d.ts +2 -0
  88. package/esm/VcfTabixAdapter/configSchema.js +23 -0
  89. package/esm/VcfTabixAdapter/configSchema.js.map +1 -0
  90. package/esm/VcfTabixAdapter/index.d.ts +1 -0
  91. package/esm/VcfTabixAdapter/index.js +2 -0
  92. package/esm/VcfTabixAdapter/index.js.map +1 -0
  93. package/esm/index.d.ts +7 -0
  94. package/esm/index.js +110 -0
  95. package/esm/index.js.map +1 -0
  96. package/package.json +24 -15
  97. package/src/ChordVariantDisplay/index.ts +4 -4
  98. package/src/ChordVariantDisplay/models/ChordVariantDisplay.js +7 -8
  99. package/src/VariantFeatureWidget/BreakendOptionDialog.tsx +8 -9
  100. package/src/VariantFeatureWidget/VariantFeatureWidget.tsx +2 -3
  101. package/src/VariantFeatureWidget/__snapshots__/VariantFeatureWidget.test.js.snap +52 -57
  102. package/dist/LinearVariantDisplay/configSchema.test.js +0 -92
  103. package/dist/VariantFeatureWidget/VariantFeatureWidget.test.js +0 -56
  104. package/dist/VcfAdapter/VcfAdapter.test.js +0 -55
  105. package/dist/VcfTabixAdapter/VcfFeature.test.js +0 -106
  106. package/dist/VcfTabixAdapter/VcfTabixAdapter.test.js +0 -99
  107. package/dist/index.test.js +0 -37
@@ -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,2 @@
1
+ declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default _default;
@@ -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,2 @@
1
+ export { default as configSchema } from './configSchema';
2
+ //# sourceMappingURL=index.js.map
@@ -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
@@ -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": "1.7.10",
3
+ "version": "2.0.1",
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": "babel src --root-mode upward --out-dir dist --extensions .ts,.js,.tsx,.jsx",
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
- "postbuild": "tsc --build tsconfig.build.json"
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,24 +42,29 @@
38
42
  "@gmod/bgzf-filehandle": "^1.4.3",
39
43
  "@gmod/tabix": "^1.5.2",
40
44
  "@gmod/vcf": "^5.0.5",
41
- "@material-ui/icons": "^4.11.2",
42
- "@mui/x-data-grid": "^4.0.1",
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": {
46
- "@jbrowse/core": "^1.0.0",
47
- "@jbrowse/plugin-alignments": "^1.0.0",
48
- "@jbrowse/plugin-circular-view": "^1.0.0",
49
- "@jbrowse/plugin-linear-genome-view": "^1.0.0",
50
- "@material-ui/core": "^4.12.2",
51
- "mobx-react": "^6.0.0",
52
- "mobx-state-tree": "3.14.1",
50
+ "@jbrowse/core": "^2.0.0",
51
+ "@jbrowse/plugin-alignments": "^2.0.0",
52
+ "@jbrowse/plugin-circular-view": "^2.0.0",
53
+ "@jbrowse/plugin-linear-genome-view": "^2.0.0",
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
- "gitHead": "02d8c1e88e5603ea5855faed4ccb814e28071b32"
66
+ "distModule": "esm/index.js",
67
+ "srcModule": "src/index.ts",
68
+ "module": "esm/index.js",
69
+ "gitHead": "ed935bf5612af3818abdc8ef52d100d5d81d33a2"
61
70
  }
@@ -1,10 +1,10 @@
1
1
  import PluginManager from '@jbrowse/core/PluginManager'
2
- import { BaseChordDisplayComponentFactory } from '@jbrowse/plugin-circular-view'
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 { lib, load } = pluginManager
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: BaseChordDisplayComponentFactory(pluginManager),
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
- Checkbox,
14
- makeStyles,
15
- } from '@material-ui/core'
16
- import CloseIcon from '@material-ui/icons/Close'
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-ui/core'
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>