@jbrowse/plugin-variants 2.2.1 → 2.3.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.js +1 -0
- package/dist/ChordVariantDisplay/index.js.map +1 -1
- package/dist/ChordVariantDisplay/models/stateModelFactory.d.ts +4 -2
- package/dist/ChordVariantDisplay/models/stateModelFactory.js +1 -2
- package/dist/ChordVariantDisplay/models/stateModelFactory.js.map +1 -1
- package/dist/LinearVariantDisplay/index.js +1 -0
- package/dist/LinearVariantDisplay/index.js.map +1 -1
- package/dist/LinearVariantDisplay/model.d.ts +3 -7
- package/dist/StructuralVariantChordRenderer/Chord.d.ts +32 -0
- package/dist/StructuralVariantChordRenderer/Chord.js +88 -0
- package/dist/StructuralVariantChordRenderer/Chord.js.map +1 -0
- package/dist/StructuralVariantChordRenderer/ReactComponent.d.ts +1 -17
- package/dist/StructuralVariantChordRenderer/ReactComponent.js +11 -93
- package/dist/StructuralVariantChordRenderer/ReactComponent.js.map +1 -1
- package/dist/StructuralVariantChordRenderer/index.d.ts +2 -2
- package/dist/StructuralVariantChordRenderer/index.js +2 -2
- package/dist/StructuralVariantChordRenderer/index.js.map +1 -1
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js +13 -22
- package/dist/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -1
- package/dist/VariantTrack/index.js +1 -0
- package/dist/VariantTrack/index.js.map +1 -1
- package/dist/VcfAdapter/VcfAdapter.js +1 -0
- package/dist/VcfAdapter/VcfAdapter.js.map +1 -1
- package/dist/VcfAdapter/index.js +1 -0
- package/dist/VcfAdapter/index.js.map +1 -1
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js +8 -11
- package/dist/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
- package/dist/VcfTabixAdapter/index.js +1 -0
- package/dist/VcfTabixAdapter/index.js.map +1 -1
- package/esm/ChordVariantDisplay/index.js +1 -0
- package/esm/ChordVariantDisplay/index.js.map +1 -1
- package/esm/ChordVariantDisplay/models/stateModelFactory.d.ts +4 -2
- package/esm/ChordVariantDisplay/models/stateModelFactory.js +1 -2
- package/esm/ChordVariantDisplay/models/stateModelFactory.js.map +1 -1
- package/esm/LinearVariantDisplay/index.js +1 -0
- package/esm/LinearVariantDisplay/index.js.map +1 -1
- package/esm/LinearVariantDisplay/model.d.ts +3 -7
- package/esm/StructuralVariantChordRenderer/Chord.d.ts +32 -0
- package/esm/StructuralVariantChordRenderer/Chord.js +83 -0
- package/esm/StructuralVariantChordRenderer/Chord.js.map +1 -0
- package/esm/StructuralVariantChordRenderer/ReactComponent.d.ts +1 -17
- package/esm/StructuralVariantChordRenderer/ReactComponent.js +7 -92
- package/esm/StructuralVariantChordRenderer/ReactComponent.js.map +1 -1
- package/esm/StructuralVariantChordRenderer/index.d.ts +2 -2
- package/esm/StructuralVariantChordRenderer/index.js +2 -2
- package/esm/StructuralVariantChordRenderer/index.js.map +1 -1
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js +14 -20
- package/esm/VariantFeatureWidget/BreakendOptionDialog.js.map +1 -1
- package/esm/VariantTrack/index.js +1 -0
- package/esm/VariantTrack/index.js.map +1 -1
- package/esm/VcfAdapter/VcfAdapter.js +1 -0
- package/esm/VcfAdapter/VcfAdapter.js.map +1 -1
- package/esm/VcfAdapter/index.js +1 -0
- package/esm/VcfAdapter/index.js.map +1 -1
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js +8 -11
- package/esm/VcfTabixAdapter/VcfTabixAdapter.js.map +1 -1
- package/esm/VcfTabixAdapter/index.js +1 -0
- package/esm/VcfTabixAdapter/index.js.map +1 -1
- package/package.json +5 -6
- package/src/ChordVariantDisplay/index.ts +1 -0
- package/src/ChordVariantDisplay/models/stateModelFactory.ts +1 -3
- package/src/LinearVariantDisplay/configSchema.test.js +1 -1
- package/src/LinearVariantDisplay/index.ts +1 -0
- package/src/StructuralVariantChordRenderer/Chord.tsx +141 -0
- package/src/StructuralVariantChordRenderer/ReactComponent.tsx +10 -149
- package/src/StructuralVariantChordRenderer/index.ts +2 -3
- package/src/VariantFeatureWidget/BreakendOptionDialog.tsx +16 -32
- package/src/VariantTrack/index.ts +1 -0
- package/src/VcfAdapter/VcfAdapter.ts +2 -0
- package/src/VcfAdapter/index.ts +1 -0
- package/src/VcfTabixAdapter/VcfTabixAdapter.ts +10 -15
- package/src/VcfTabixAdapter/index.ts +1 -0
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +0 -117
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js +0 -62
- package/dist/ChordVariantDisplay/models/ChordVariantDisplay.js.map +0 -1
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.d.ts +0 -117
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js +0 -57
- package/esm/ChordVariantDisplay/models/ChordVariantDisplay.js.map +0 -1
- package/src/ChordVariantDisplay/models/ChordVariantDisplay.ts +0 -69
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":";;;;;AAAA,yEAGgD;AAMhD,8CAAoD;AACpD,6CAAoD;AACpD,kDAA0D;AAE1D,uCAA8C;AAC9C,oDAAiC;
|
|
1
|
+
{"version":3,"file":"VcfTabixAdapter.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/VcfTabixAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ Object.defineProperty(exports, "configSchema", { enumerable: true, get: function
|
|
|
34
34
|
exports.default = (pluginManager) => {
|
|
35
35
|
pluginManager.addAdapterType(() => new AdapterType_1.default({
|
|
36
36
|
name: 'VcfTabixAdapter',
|
|
37
|
+
displayName: 'VCF tabix adapter',
|
|
37
38
|
configSchema: configSchema_1.default,
|
|
38
39
|
getAdapterClass: () => Promise.resolve().then(() => __importStar(require('./VcfTabixAdapter'))).then(r => r.default),
|
|
39
40
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kGAAyE;AACzE,kEAAyC;AAEzC,+CAAwD;AAA/C,6HAAA,OAAO,OAAgB;AAEhC,kBAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,qBAAW,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,YAAY,EAAZ,sBAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,kDAAO,mBAAmB,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACxE,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfTabixAdapter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kGAAyE;AACzE,kEAAyC;AAEzC,+CAAwD;AAA/C,6HAAA,OAAO,OAAgB;AAEhC,kBAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,qBAAW,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,mBAAmB;QAChC,YAAY,EAAZ,sBAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,kDAAO,mBAAmB,IAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACxE,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ChordVariantDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,aAAa,MAAM,uBAAuB,CAAA;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AAEpD,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;QAC5C,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,qBAAqB;YAC3B,YAAY;YACZ,UAAU;YACV,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,cAAc;YACxB,cAAc,EAAE,yBAAyB;SAC1C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ChordVariantDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,aAAa,MAAM,uBAAuB,CAAA;AACjD,OAAO,WAAW,MAAM,4BAA4B,CAAA;AAEpD,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,CAAA;QAC5C,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,uBAAuB;YACpC,YAAY;YACZ,UAAU;YACV,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,cAAc;YACxB,cAAc,EAAE,yBAAyB;SAC1C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -76,22 +76,24 @@ declare const stateModelFactory: (configSchema: AnyConfigurationSchemaType) => i
|
|
|
76
76
|
filled: boolean;
|
|
77
77
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
78
78
|
data: undefined;
|
|
79
|
+
html: string | undefined;
|
|
79
80
|
message: string;
|
|
80
81
|
renderingComponent: import("@jbrowse/core/util").AnyReactComponentType | undefined;
|
|
81
82
|
refNameMap: Record<string, string> | undefined;
|
|
82
83
|
} & {
|
|
83
84
|
onChordClick(feature: import("@jbrowse/core/util").Feature): void;
|
|
84
85
|
} & {
|
|
85
|
-
readonly blockDefinitions:
|
|
86
|
+
readonly blockDefinitions: import("@jbrowse/plugin-circular-view/src/CircularView/models/slices").Slice[];
|
|
86
87
|
renderProps(): any;
|
|
87
88
|
readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
|
|
88
89
|
isCompatibleWithRenderer(renderer: import("@jbrowse/core/pluggableElementTypes").RendererType): boolean;
|
|
89
90
|
readonly selectedFeatureId: string | undefined;
|
|
90
91
|
} & {
|
|
91
92
|
renderStarted(): void;
|
|
92
|
-
renderSuccess({ message, data, reactElement, renderingComponent, }: {
|
|
93
|
+
renderSuccess({ message, data, reactElement, html, renderingComponent, }: {
|
|
93
94
|
message: string;
|
|
94
95
|
data: any;
|
|
96
|
+
html: string;
|
|
95
97
|
reactElement: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
|
96
98
|
renderingComponent: import("@jbrowse/core/util").AnyReactComponentType;
|
|
97
99
|
}): void;
|
|
@@ -37,8 +37,7 @@ const stateModelFactory = (configSchema) => {
|
|
|
37
37
|
displayModel: self,
|
|
38
38
|
bezierRadius: view.radiusPx * self.bezierRadiusRatio,
|
|
39
39
|
radius: view.radiusPx,
|
|
40
|
-
|
|
41
|
-
blockDefinitions: this.blockDefinitions,
|
|
40
|
+
blockDefinitions: self.blockDefinitions,
|
|
42
41
|
config: self.configuration.renderer,
|
|
43
42
|
onChordClick: self.onChordClick,
|
|
44
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateModelFactory.js","sourceRoot":"","sources":["../../../src/ChordVariantDisplay/models/stateModelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAEL,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,YAAwC,EAAE,EAAE;IACrE,OAAO,KAAK;SACT,OAAO,CACN,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,CAAC,KAAK,CAAC;QACV;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC1C;;WAEG;QACH,aAAa,EAAE,sBAAsB,CAAC,YAAY,CAAC;KACpD,CAAC,CACH;SACA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,gBAAgB;YAClB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAA;QACzC,CAAC;QAED;;WAEG;QACH,WAAW;YACT,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO;gBACL,GAAG,oBAAoB,CAAC,IAAI,CAAC;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;gBACpD,MAAM,EAAE,IAAI,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"stateModelFactory.js","sourceRoot":"","sources":["../../../src/ChordVariantDisplay/models/stateModelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAEL,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,YAAwC,EAAE,EAAE;IACrE,OAAO,KAAK;SACT,OAAO,CACN,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,CAAC,KAAK,CAAC;QACV;;WAEG;QACH,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAC1C;;WAEG;QACH,aAAa,EAAE,sBAAsB,CAAC,YAAY,CAAC;KACpD,CAAC,CACH;SACA,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACd;;WAEG;QACH,IAAI,gBAAgB;YAClB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAA;QACzC,CAAC;QAED;;WAEG;QACH,WAAW;YACT,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO;gBACL,GAAG,oBAAoB,CAAC,IAAI,CAAC;gBAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;gBACpD,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACrB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;gBACnC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAA;QACH,CAAC;KACF,CAAC,CAAC,CAAA;AACP,CAAC,CAAA;AAED,0EAA0E;AAE1E,wDAAwD;AAExD,2BAA2B;AAC3B,EAAE;AACF,eAAe,iBAAiB,CAAA"}
|
|
@@ -7,6 +7,7 @@ export default (pluginManager) => {
|
|
|
7
7
|
const configSchema = configSchemaF(pluginManager);
|
|
8
8
|
return new DisplayType({
|
|
9
9
|
name: 'LinearVariantDisplay',
|
|
10
|
+
displayName: 'Variant display',
|
|
10
11
|
configSchema,
|
|
11
12
|
stateModel: stateModelFactory(configSchema),
|
|
12
13
|
trackType: 'VariantTrack',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearVariantDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,iBAAiB,MAAM,SAAS,CAAA;AACvC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,YAAY;YACZ,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;YAC3C,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,0BAA0B;SAC3C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearVariantDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAA;AAC/E,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,iBAAiB,MAAM,SAAS,CAAA;AACvC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,iBAAiB;YAC9B,YAAY;YACZ,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC;YAC3C,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,0BAA0B;SAC3C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -61,12 +61,8 @@ export default function stateModelFactory(configSchema: LinearVariantDisplayConf
|
|
|
61
61
|
userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
62
62
|
userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
63
63
|
} & {
|
|
64
|
-
type: import("mobx-state-tree").ISimpleType<"LinearBasicDisplay">;
|
|
65
|
-
|
|
66
|
-
*/
|
|
67
|
-
trackShowLabels: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>; /**
|
|
68
|
-
* #property
|
|
69
|
-
*/
|
|
64
|
+
type: import("mobx-state-tree").ISimpleType<"LinearBasicDisplay">;
|
|
65
|
+
trackShowLabels: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
70
66
|
trackShowDescriptions: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
71
67
|
trackDisplayMode: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
72
68
|
trackMaxHeight: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
@@ -134,10 +130,10 @@ export default function stateModelFactory(configSchema: LinearVariantDisplayConf
|
|
|
134
130
|
reload(): void;
|
|
135
131
|
} & {
|
|
136
132
|
currBpPerPx: number;
|
|
133
|
+
scrollTop: number;
|
|
137
134
|
message: string;
|
|
138
135
|
featureIdUnderMouse: string | undefined;
|
|
139
136
|
contextMenuFeature: Feature | undefined;
|
|
140
|
-
scrollTop: number;
|
|
141
137
|
estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
|
|
142
138
|
estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
|
|
143
139
|
} & {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Feature } from '@jbrowse/core/util';
|
|
3
|
+
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
4
|
+
export interface Region {
|
|
5
|
+
end: number;
|
|
6
|
+
start: number;
|
|
7
|
+
refName: string;
|
|
8
|
+
elided?: false;
|
|
9
|
+
}
|
|
10
|
+
export interface ElidedRegion {
|
|
11
|
+
elided: true;
|
|
12
|
+
regions: Region[];
|
|
13
|
+
}
|
|
14
|
+
export type AnyRegion = Region | ElidedRegion;
|
|
15
|
+
export interface Block {
|
|
16
|
+
flipped: boolean;
|
|
17
|
+
bpPerRadian: number;
|
|
18
|
+
startRadians: number;
|
|
19
|
+
region: AnyRegion;
|
|
20
|
+
}
|
|
21
|
+
declare const Chord: ({ feature, blocksForRefs, radius, config, bezierRadius, selected, onClick, }: {
|
|
22
|
+
feature: Feature;
|
|
23
|
+
blocksForRefs: {
|
|
24
|
+
[key: string]: Block;
|
|
25
|
+
};
|
|
26
|
+
radius: number;
|
|
27
|
+
config: AnyConfigurationModel;
|
|
28
|
+
bezierRadius: number;
|
|
29
|
+
selected: boolean;
|
|
30
|
+
onClick: (feature: Feature, reg: AnyRegion, endBlock: AnyRegion, evt: unknown) => void;
|
|
31
|
+
}) => JSX.Element | null;
|
|
32
|
+
export default Chord;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { polarToCartesian } from '@jbrowse/core/util';
|
|
4
|
+
import { readConfObject, } from '@jbrowse/core/configuration';
|
|
5
|
+
import { parseBreakend } from '@gmod/vcf';
|
|
6
|
+
function bpToRadians(block, pos) {
|
|
7
|
+
const blockStart = block.region.elided ? 0 : block.region.start;
|
|
8
|
+
const blockEnd = block.region.elided ? 0 : block.region.end;
|
|
9
|
+
const bpOffset = block.flipped ? blockEnd - pos : pos - blockStart;
|
|
10
|
+
return bpOffset / block.bpPerRadian + block.startRadians;
|
|
11
|
+
}
|
|
12
|
+
const Chord = observer(function Chord({ feature, blocksForRefs, radius, config, bezierRadius, selected, onClick, }) {
|
|
13
|
+
var _a, _b, _c, _d, _e;
|
|
14
|
+
// find the blocks that our start and end points belong to
|
|
15
|
+
const startBlock = blocksForRefs[feature.get('refName')];
|
|
16
|
+
if (!startBlock) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
let svType;
|
|
20
|
+
if (feature.get('INFO')) {
|
|
21
|
+
;
|
|
22
|
+
[svType] = feature.get('INFO').SVTYPE || [];
|
|
23
|
+
}
|
|
24
|
+
else if (feature.get('mate')) {
|
|
25
|
+
svType = 'mate';
|
|
26
|
+
}
|
|
27
|
+
let endPosition;
|
|
28
|
+
let endBlock;
|
|
29
|
+
const alt = (_a = feature.get('ALT')) === null || _a === void 0 ? void 0 : _a[0];
|
|
30
|
+
const bnd = alt && parseBreakend(alt);
|
|
31
|
+
if (bnd) {
|
|
32
|
+
// VCF BND
|
|
33
|
+
const matePosition = bnd.MatePosition.split(':');
|
|
34
|
+
endPosition = +matePosition[1];
|
|
35
|
+
endBlock = blocksForRefs[matePosition[0]];
|
|
36
|
+
}
|
|
37
|
+
else if (alt === '<TRA>') {
|
|
38
|
+
// VCF TRA
|
|
39
|
+
const chr2 = (_c = (_b = feature.get('INFO')) === null || _b === void 0 ? void 0 : _b.CHR2) === null || _c === void 0 ? void 0 : _c[0];
|
|
40
|
+
const end = (_e = (_d = feature.get('INFO')) === null || _d === void 0 ? void 0 : _d.END) === null || _e === void 0 ? void 0 : _e[0];
|
|
41
|
+
endPosition = parseInt(end, 10);
|
|
42
|
+
endBlock = blocksForRefs[chr2];
|
|
43
|
+
}
|
|
44
|
+
else if (svType === 'mate') {
|
|
45
|
+
// generic simplefeatures arcs
|
|
46
|
+
const mate = feature.get('mate');
|
|
47
|
+
const chr2 = mate.refName;
|
|
48
|
+
endPosition = mate.start;
|
|
49
|
+
endBlock = blocksForRefs[chr2];
|
|
50
|
+
}
|
|
51
|
+
if (endBlock) {
|
|
52
|
+
const startPos = feature.get('start');
|
|
53
|
+
const startRadians = bpToRadians(startBlock, startPos);
|
|
54
|
+
const endRadians = bpToRadians(endBlock, endPosition);
|
|
55
|
+
const startXY = polarToCartesian(radius, startRadians);
|
|
56
|
+
const endXY = polarToCartesian(radius, endRadians);
|
|
57
|
+
const controlXY = polarToCartesian(bezierRadius, (endRadians + startRadians) / 2);
|
|
58
|
+
const strokeColor = selected
|
|
59
|
+
? readConfObject(config, 'strokeColorSelected', { feature })
|
|
60
|
+
: readConfObject(config, 'strokeColor', { feature });
|
|
61
|
+
const hoverStrokeColor = readConfObject(config, 'strokeColorHover', {
|
|
62
|
+
feature,
|
|
63
|
+
});
|
|
64
|
+
return (React.createElement("path", { "data-testid": `chord-${feature.id()}`, d: ['M', ...startXY, 'Q', ...controlXY, ...endXY].join(' '), style: { stroke: strokeColor }, onClick: evt => {
|
|
65
|
+
if (endBlock && startBlock) {
|
|
66
|
+
onClick(feature, startBlock.region, endBlock.region, evt);
|
|
67
|
+
}
|
|
68
|
+
}, onMouseOver: evt => {
|
|
69
|
+
if (!selected) {
|
|
70
|
+
evt.currentTarget.style.stroke = hoverStrokeColor;
|
|
71
|
+
evt.currentTarget.style.strokeWidth = '3px';
|
|
72
|
+
}
|
|
73
|
+
}, onMouseOut: evt => {
|
|
74
|
+
if (!selected) {
|
|
75
|
+
evt.currentTarget.style.stroke = strokeColor;
|
|
76
|
+
evt.currentTarget.style.strokeWidth = '1px';
|
|
77
|
+
}
|
|
78
|
+
} }));
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
});
|
|
82
|
+
export default Chord;
|
|
83
|
+
//# sourceMappingURL=Chord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chord.js","sourceRoot":"","sources":["../../src/StructuralVariantChordRenderer/Chord.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { Feature } from '@jbrowse/core/util';
|
|
3
3
|
import { AnyConfigurationModel } from '@jbrowse/core/configuration';
|
|
4
|
-
|
|
5
|
-
end: number;
|
|
6
|
-
start: number;
|
|
7
|
-
refName: string;
|
|
8
|
-
elided?: false;
|
|
9
|
-
}
|
|
10
|
-
interface ElidedRegion {
|
|
11
|
-
elided: true;
|
|
12
|
-
regions: Region[];
|
|
13
|
-
}
|
|
14
|
-
type AnyRegion = Region | ElidedRegion;
|
|
15
|
-
interface Block {
|
|
16
|
-
flipped: boolean;
|
|
17
|
-
bpPerRadian: number;
|
|
18
|
-
startRadians: number;
|
|
19
|
-
region: AnyRegion;
|
|
20
|
-
}
|
|
4
|
+
import { Block, AnyRegion } from './Chord';
|
|
21
5
|
declare function StructuralVariantChords(props: {
|
|
22
6
|
features: Map<string, Feature>;
|
|
23
7
|
radius: number;
|
|
@@ -1,107 +1,22 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import { parseBreakend } from '@gmod/vcf';
|
|
6
|
-
function bpToRadians(block, pos) {
|
|
7
|
-
const blockStart = block.region.elided ? 0 : block.region.start;
|
|
8
|
-
const blockEnd = block.region.elided ? 0 : block.region.end;
|
|
9
|
-
const bpOffset = block.flipped ? blockEnd - pos : pos - blockStart;
|
|
10
|
-
return bpOffset / block.bpPerRadian + block.startRadians;
|
|
11
|
-
}
|
|
12
|
-
const Chord = observer(function Chord({ feature, blocksForRefs, radius, config, bezierRadius, selected, onClick, }) {
|
|
13
|
-
var _a, _b, _c, _d, _e;
|
|
14
|
-
// find the blocks that our start and end points belong to
|
|
15
|
-
const startBlock = blocksForRefs[feature.get('refName')];
|
|
16
|
-
if (!startBlock) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
let svType;
|
|
20
|
-
if (feature.get('INFO')) {
|
|
21
|
-
;
|
|
22
|
-
[svType] = feature.get('INFO').SVTYPE || [];
|
|
23
|
-
}
|
|
24
|
-
else if (feature.get('mate')) {
|
|
25
|
-
svType = 'mate';
|
|
26
|
-
}
|
|
27
|
-
let endPosition;
|
|
28
|
-
let endBlock;
|
|
29
|
-
const alt = (_a = feature.get('ALT')) === null || _a === void 0 ? void 0 : _a[0];
|
|
30
|
-
const bnd = alt && parseBreakend(alt);
|
|
31
|
-
if (bnd) {
|
|
32
|
-
// VCF BND
|
|
33
|
-
const matePosition = bnd.MatePosition.split(':');
|
|
34
|
-
endPosition = +matePosition[1];
|
|
35
|
-
endBlock = blocksForRefs[matePosition[0]];
|
|
36
|
-
}
|
|
37
|
-
else if (alt === '<TRA>') {
|
|
38
|
-
// VCF TRA
|
|
39
|
-
const chr2 = (_c = (_b = feature.get('INFO')) === null || _b === void 0 ? void 0 : _b.CHR2) === null || _c === void 0 ? void 0 : _c[0];
|
|
40
|
-
const end = (_e = (_d = feature.get('INFO')) === null || _d === void 0 ? void 0 : _d.END) === null || _e === void 0 ? void 0 : _e[0];
|
|
41
|
-
endPosition = parseInt(end, 10);
|
|
42
|
-
endBlock = blocksForRefs[chr2];
|
|
43
|
-
}
|
|
44
|
-
else if (svType === 'mate') {
|
|
45
|
-
// generic simplefeatures arcs
|
|
46
|
-
const mate = feature.get('mate');
|
|
47
|
-
const chr2 = mate.refName;
|
|
48
|
-
endPosition = mate.start;
|
|
49
|
-
endBlock = blocksForRefs[chr2];
|
|
50
|
-
}
|
|
51
|
-
if (endBlock) {
|
|
52
|
-
const startPos = feature.get('start');
|
|
53
|
-
const startRadians = bpToRadians(startBlock, startPos);
|
|
54
|
-
const endRadians = bpToRadians(endBlock, endPosition);
|
|
55
|
-
const startXY = polarToCartesian(radius, startRadians);
|
|
56
|
-
const endXY = polarToCartesian(radius, endRadians);
|
|
57
|
-
const controlXY = polarToCartesian(bezierRadius, (endRadians + startRadians) / 2);
|
|
58
|
-
const strokeColor = selected
|
|
59
|
-
? readConfObject(config, 'strokeColorSelected', { feature })
|
|
60
|
-
: readConfObject(config, 'strokeColor', { feature });
|
|
61
|
-
const hoverStrokeColor = readConfObject(config, 'strokeColorHover', {
|
|
62
|
-
feature,
|
|
63
|
-
});
|
|
64
|
-
return (React.createElement("path", { "data-testid": `chord-${feature.id()}`, d: ['M', ...startXY, 'Q', ...controlXY, ...endXY].join(' '), style: { stroke: strokeColor }, onClick: evt => {
|
|
65
|
-
if (endBlock && startBlock) {
|
|
66
|
-
onClick(feature, startBlock.region, endBlock.region, evt);
|
|
67
|
-
}
|
|
68
|
-
}, onMouseOver: evt => {
|
|
69
|
-
if (!selected) {
|
|
70
|
-
// @ts-ignore
|
|
71
|
-
evt.target.style.stroke = hoverStrokeColor;
|
|
72
|
-
// @ts-ignore
|
|
73
|
-
evt.target.style.strokeWidth = 3;
|
|
74
|
-
}
|
|
75
|
-
}, onMouseOut: evt => {
|
|
76
|
-
if (!selected) {
|
|
77
|
-
// @ts-ignore
|
|
78
|
-
evt.target.style.stroke = strokeColor;
|
|
79
|
-
// @ts-ignore
|
|
80
|
-
evt.target.style.strokeWidth = 1;
|
|
81
|
-
}
|
|
82
|
-
} }));
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
});
|
|
3
|
+
// locals
|
|
4
|
+
import Chord from './Chord';
|
|
86
5
|
function StructuralVariantChords(props) {
|
|
87
6
|
const { features, config, displayModel, blockDefinitions, radius, bezierRadius, displayModel: { selectedFeatureId }, onChordClick, } = props;
|
|
88
7
|
// make a map of refName -> blockDefinition
|
|
89
8
|
const blocksForRefsMemo = useMemo(() => {
|
|
90
9
|
const blocksForRefs = {};
|
|
91
10
|
blockDefinitions.forEach(block => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
: [block.region];
|
|
95
|
-
regions.forEach(region => {
|
|
96
|
-
blocksForRefs[region.refName] = block;
|
|
97
|
-
});
|
|
11
|
+
;
|
|
12
|
+
(block.region.elided ? block.region.regions : [block.region]).forEach(r => (blocksForRefs[r.refName] = block));
|
|
98
13
|
});
|
|
99
14
|
return blocksForRefs;
|
|
100
15
|
}, [blockDefinitions]);
|
|
101
|
-
// console.log(blocksForRefs)
|
|
102
16
|
const chords = [];
|
|
103
|
-
for (const
|
|
104
|
-
const
|
|
17
|
+
for (const feature of features.values()) {
|
|
18
|
+
const id = feature.id();
|
|
19
|
+
const selected = String(selectedFeatureId) === String(id);
|
|
105
20
|
chords.push(React.createElement(Chord, { key: id, feature: feature, config: config, radius: radius, bezierRadius: bezierRadius, blocksForRefs: blocksForRefsMemo, selected: selected, onClick: onChordClick }));
|
|
106
21
|
}
|
|
107
22
|
const trackStyleId = `chords-${displayModel.id}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactComponent.js","sourceRoot":"","sources":["../../src/StructuralVariantChordRenderer/ReactComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"ReactComponent.js","sourceRoot":"","sources":["../../src/StructuralVariantChordRenderer/ReactComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,SAAS;AACT,OAAO,KAA2B,MAAM,SAAS,CAAA;AAEjD,SAAS,uBAAuB,CAAC,KAahC;IACC,MAAM,EACJ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EAAE,EAAE,iBAAiB,EAAE,EACnC,YAAY,GACb,GAAG,KAAK,CAAA;IACT,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;QACrC,MAAM,aAAa,GAAG,EAA8B,CAAA;QACpD,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,CAAC;YAAA,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACpE,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CACxC,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,aAAa,CAAA;IACtB,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACtB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;QACvC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAA;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;QACzD,MAAM,CAAC,IAAI,CACT,oBAAC,KAAK,IACJ,GAAG,EAAE,EAAE,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,iBAAiB,EAChC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,GACrB,CACH,CAAA;KACF;IACD,MAAM,YAAY,GAAG,UAAU,YAAY,CAAC,EAAE,EAAE,CAAA;IAChD,OAAO,CACL,2BAAG,EAAE,EAAE,YAAY,iBAAc,gCAAgC;QAC/D;YACE,2CAA2C;YAC3C,uBAAuB,EAAE;gBACvB,MAAM,EAAE;aACL,YAAY;;;;CAIxB;aACQ,GACD;QACD,MAAM,CACL,CACL,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,uBAAuB,CAAC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import PluginManager from '@jbrowse/core/PluginManager';
|
|
2
|
-
declare const
|
|
3
|
-
export default
|
|
2
|
+
declare const _default: (pluginManager: PluginManager) => void;
|
|
3
|
+
export default _default;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import ChordRendererType from '@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType';
|
|
2
2
|
import configSchema from './configSchema';
|
|
3
3
|
import ReactComponent from './ReactComponent';
|
|
4
|
-
|
|
4
|
+
export default (pluginManager) => {
|
|
5
5
|
pluginManager.addRendererType(() => new ChordRendererType({
|
|
6
6
|
name: 'StructuralVariantChordRenderer',
|
|
7
|
+
displayName: 'SV chord renderer',
|
|
7
8
|
ReactComponent,
|
|
8
9
|
configSchema,
|
|
9
10
|
pluginManager,
|
|
10
11
|
}));
|
|
11
12
|
};
|
|
12
|
-
export default ChordRendererConfigF;
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/StructuralVariantChordRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yEAAyE,CAAA;AAEvG,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/StructuralVariantChordRenderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yEAAyE,CAAA;AAEvG,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,eAAe,CAC3B,GAAG,EAAE,CACH,IAAI,iBAAiB,CAAC;QACpB,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,mBAAmB;QAChC,cAAc;QACd,YAAY;QACZ,aAAa;KACd,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
|
-
import { Button, Checkbox,
|
|
4
|
+
import { Button, Checkbox, DialogActions, DialogContent, FormControlLabel, } from '@mui/material';
|
|
5
5
|
import { makeStyles } from 'tss-react/mui';
|
|
6
|
-
import CloseIcon from '@mui/icons-material/Close';
|
|
7
6
|
import { getSnapshot } from 'mobx-state-tree';
|
|
7
|
+
// jbrowse
|
|
8
|
+
import { Dialog } from '@jbrowse/core/ui';
|
|
8
9
|
import { getSession } from '@jbrowse/core/util';
|
|
9
|
-
const useStyles = makeStyles()(
|
|
10
|
-
closeButton: {
|
|
11
|
-
position: 'absolute',
|
|
12
|
-
right: theme.spacing(1),
|
|
13
|
-
top: theme.spacing(1),
|
|
14
|
-
color: theme.palette.grey[500],
|
|
15
|
-
},
|
|
10
|
+
const useStyles = makeStyles()({
|
|
16
11
|
block: {
|
|
17
12
|
display: 'block',
|
|
18
13
|
},
|
|
19
|
-
})
|
|
14
|
+
});
|
|
20
15
|
function BreakendOptionDialog({ model, handleClose, feature, viewType, }) {
|
|
21
16
|
const { classes } = useStyles();
|
|
22
17
|
const [copyTracks, setCopyTracks] = useState(true);
|
|
23
18
|
const [mirrorTracks, setMirrorTracks] = useState(true);
|
|
24
|
-
return (React.createElement(Dialog, { open: true, onClose: handleClose },
|
|
25
|
-
React.createElement(DialogTitle, null,
|
|
26
|
-
"Breakpoint split view options",
|
|
27
|
-
handleClose ? (React.createElement(IconButton, { className: classes.closeButton, onClick: () => handleClose() },
|
|
28
|
-
React.createElement(CloseIcon, null))) : null),
|
|
29
|
-
React.createElement(Divider, null),
|
|
19
|
+
return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Breakpoint split view options" },
|
|
30
20
|
React.createElement(DialogContent, null,
|
|
31
21
|
React.createElement(FormControlLabel, { className: classes.block, control: React.createElement(Checkbox, { checked: copyTracks, onChange: () => setCopyTracks(val => !val) }), label: "Copy tracks into the new view" }),
|
|
32
22
|
React.createElement(FormControlLabel, { className: classes.block, control: React.createElement(Checkbox, { checked: mirrorTracks, onChange: () => setMirrorTracks(val => !val) }), label: "Mirror tracks vertically in vertically stacked view" })),
|
|
@@ -36,14 +26,18 @@ function BreakendOptionDialog({ model, handleClose, feature, viewType, }) {
|
|
|
36
26
|
const session = getSession(model);
|
|
37
27
|
try {
|
|
38
28
|
const viewSnapshot = viewType.snapshotFromBreakendFeature(feature, view);
|
|
29
|
+
function remapIds(arr) {
|
|
30
|
+
return arr.map((v) => ({
|
|
31
|
+
...v,
|
|
32
|
+
id: v.trackId + '-' + Math.random(),
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
39
35
|
viewSnapshot.views[0].offsetPx -= view.width / 2 + 100;
|
|
40
36
|
viewSnapshot.views[1].offsetPx -= view.width / 2 + 100;
|
|
41
37
|
viewSnapshot.featureData = feature;
|
|
42
38
|
const viewTracks = getSnapshot(view.tracks);
|
|
43
|
-
viewSnapshot.views[0].tracks = viewTracks;
|
|
44
|
-
viewSnapshot.views[1].tracks = mirrorTracks
|
|
45
|
-
? viewTracks.slice().reverse()
|
|
46
|
-
: viewTracks;
|
|
39
|
+
viewSnapshot.views[0].tracks = remapIds(viewTracks);
|
|
40
|
+
viewSnapshot.views[1].tracks = remapIds(mirrorTracks ? viewTracks.slice().reverse() : viewTracks);
|
|
47
41
|
session.addView('BreakpointSplitView', viewSnapshot);
|
|
48
42
|
}
|
|
49
43
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BreakendOptionDialog.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/BreakendOptionDialog.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"BreakendOptionDialog.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/BreakendOptionDialog.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,UAAU;AACV,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAW,MAAM,oBAAoB,CAAA;AAExD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,KAAK,EAAE;QACL,OAAO,EAAE,OAAO;KACjB;CACF,CAAC,CAAA;AAEF,SAAS,oBAAoB,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,GAMT;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEtD,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,QAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,+BAA+B;QACtE,oBAAC,aAAa;YACZ,oBAAC,gBAAgB,IACf,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,OAAO,EACL,oBAAC,QAAQ,IACP,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAC1C,EAEJ,KAAK,EAAC,+BAA+B,GACrC;YAEF,oBAAC,gBAAgB,IACf,SAAS,EAAE,OAAO,CAAC,KAAK,EACxB,OAAO,EACL,oBAAC,QAAQ,IACP,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAC5C,EAEJ,KAAK,EAAC,qDAAqD,GAC3D,CACY;QAChB,oBAAC,aAAa;YACZ,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;oBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;oBACjC,IAAI;wBACF,MAAM,YAAY,GAAG,QAAQ,CAAC,2BAA2B,CACvD,OAAO,EACP,IAAI,CACL,CAAA;wBACD,SAAS,QAAQ,CAAC,GAAU;4BAC1B,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gCAC1B,GAAG,CAAC;gCACJ,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;6BACpC,CAAC,CAAC,CAAA;wBACL,CAAC;wBACD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAA;wBACtD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAA;wBACtD,YAAY,CAAC,WAAW,GAAG,OAAO,CAAA;wBAClC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAQ,CAAA;wBAClD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;wBACnD,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CACrC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CACzD,CAAA;wBAED,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAA;qBACrD;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAChB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;qBACvB;oBACD,WAAW,EAAE,CAAA;gBACf,CAAC,EACD,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,SAAS,EACf,SAAS,eAGF;YACT,oBAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAC5B,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,WAAW,aAGZ,CACK,CACT,CACV,CAAA;AACH,CAAC;AACD,eAAe,QAAQ,CAAC,oBAAoB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VariantTrack/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,+CAA+C,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACjF,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,eAAe,CAAC,EAAiB,EAAE,EAAE;IACnC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE;QACnB,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,CAAC,CAAA;QACtC,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI,EAAE,cAAc;YACpB,YAAY;YACZ,UAAU,EAAE,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VariantTrack/index.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,+CAA+C,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACjF,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,eAAe,CAAC,EAAiB,EAAE,EAAE;IACnC,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE;QACnB,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,CAAC,CAAA;QACtC,OAAO,IAAI,SAAS,CAAC;YACnB,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe;YAC5B,YAAY;YACZ,UAAU,EAAE,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC;SACnE,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -4,6 +4,7 @@ import { ObservableCreate } from '@jbrowse/core/util/rxjs';
|
|
|
4
4
|
import IntervalTree from '@flatten-js/interval-tree';
|
|
5
5
|
import { unzip } from '@gmod/bgzf-filehandle';
|
|
6
6
|
import VCF from '@gmod/vcf';
|
|
7
|
+
// local
|
|
7
8
|
import VcfFeature from '../VcfTabixAdapter/VcfFeature';
|
|
8
9
|
const readVcf = (f) => {
|
|
9
10
|
const header = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAEvB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,YAAY,MAAM,2BAA2B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,GAAG,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"VcfAdapter.js","sourceRoot":"","sources":["../../src/VcfAdapter/VcfAdapter.ts"],"names":[],"mappings":"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"}
|
package/esm/VcfAdapter/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import configSchema from './configSchema';
|
|
|
3
3
|
export default (pluginManager) => {
|
|
4
4
|
pluginManager.addAdapterType(() => new AdapterType({
|
|
5
5
|
name: 'VcfAdapter',
|
|
6
|
+
displayName: 'VCF adapter',
|
|
6
7
|
configSchema,
|
|
7
8
|
getAdapterClass: () => import('./VcfAdapter').then(r => r.default),
|
|
8
9
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACnE,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VcfAdapter/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAe,CAAC,aAA4B,EAAE,EAAE;IAC9C,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,aAAa;QAC1B,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACnE,CAAC,CACL,CAAA;AACH,CAAC,CAAA"}
|