@jbrowse/plugin-variants 2.1.2 → 2.1.4

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.
@@ -8,7 +8,7 @@ declare namespace _default {
8
8
  const radius: PropTypes.Validator<number>;
9
9
  const bezierRadius: PropTypes.Validator<number>;
10
10
  const selectedFeatureId: PropTypes.Requireable<string>;
11
- const onChordClick: PropTypes.Requireable<string | ((...args: any[]) => any)>;
11
+ const onChordClick: PropTypes.Requireable<NonNullable<string | ((...args: any[]) => any) | null | undefined>>;
12
12
  }
13
13
  namespace defaultProps {
14
14
  const displayModel_1: undefined;
@@ -37,7 +37,7 @@ function VariantFeatureDetails(props) {
37
37
  react_1.default.createElement(material_1.Divider, null),
38
38
  feat.type === 'breakend' ? (react_1.default.createElement(BreakendPanel_1.default, { feature: feat, locStrings: feat.ALT.map((alt) => { var _a; return ((_a = (0, vcf_1.parseBreakend)(alt)) === null || _a === void 0 ? void 0 : _a.MatePosition) || ''; }), model: model })) : null,
39
39
  feat.type === 'translocation' ? (react_1.default.createElement(BreakendPanel_1.default, { feature: feat, model: model, locStrings: [`${feat.INFO.CHR2[0]}:${feat.INFO.END}`] })) : null,
40
- react_1.default.createElement(VariantSampleGrid_1.default, { feature: feat, ...props })));
40
+ react_1.default.createElement(VariantSampleGrid_1.default, { feature: feat, ...props, descriptions: descriptions })));
41
41
  }
42
42
  exports.default = (0, mobx_react_1.observer)(VariantFeatureDetails);
43
43
  //# sourceMappingURL=VariantFeatureWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VariantFeatureWidget.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantFeatureWidget.tsx"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,kDAAyB;AACzB,2CAAqC;AACrC,4CAA8C;AAC9C,yFAAkF;AAClF,mCAAyC;AAEzC,SAAS;AACT,4EAAmD;AACnD,wEAA+C;AAC/C,wEAA+C;AAC/C,oEAA2C;AAE3C,SAAS,qBAAqB,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IACjC,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,qDAAqD;QAC5D,GAAG,EAAE,uEAAuE;QAC5E,EAAE,EAAE,6EAA6E;QACjF,GAAG,EAAE,2EAA2E;QAChF,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,mEAAmE;QACzE,MAAM,EACJ,kIAAkI;KACrI,CAAA;IAED,OAAO,CACL,8BAAC,gBAAK,mBAAa,qBAAqB;QACtC,8BAAC,kCAAc,IACb,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,EAAE,KACnD,KAAK,GACT;QACF,8BAAC,kBAAO,OAAG;QACX,8BAAC,yBAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,8BAAC,kBAAO,OAAG;QACX,8BAAC,yBAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,8BAAC,kBAAO,OAAG;QACV,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,8BAAC,uBAAa,IACZ,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CACtB,CAAC,GAAW,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAA,mBAAa,EAAC,GAAG,CAAC,0CAAE,YAAY,KAAI,EAAE,CAAA,EAAA,CACxD,EACD,KAAK,EAAE,KAAK,GACZ,CACH,CAAC,CAAC,CAAC,IAAI;QACP,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAC/B,8BAAC,uBAAa,IACZ,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GACrD,CACH,CAAC,CAAC,CAAC,IAAI;QACR,8BAAC,2BAAiB,IAAC,OAAO,EAAE,IAAI,KAAM,KAAK,GAAI,CACzC,CACT,CAAA;AACH,CAAC;AAED,kBAAe,IAAA,qBAAQ,EAAC,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"VariantFeatureWidget.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantFeatureWidget.tsx"],"names":[],"mappings":";;;;;AAAA,uDAAuD;AACvD,kDAAyB;AACzB,2CAAqC;AACrC,4CAA8C;AAC9C,yFAAkF;AAClF,mCAAyC;AAEzC,SAAS;AACT,4EAAmD;AACnD,wEAA+C;AAC/C,wEAA+C;AAC/C,oEAA2C;AAE3C,SAAS,qBAAqB,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IACjC,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,qDAAqD;QAC5D,GAAG,EAAE,uEAAuE;QAC5E,EAAE,EAAE,6EAA6E;QACjF,GAAG,EAAE,2EAA2E;QAChF,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,mEAAmE;QACzE,MAAM,EACJ,kIAAkI;KACrI,CAAA;IAED,OAAO,CACL,8BAAC,gBAAK,mBAAa,qBAAqB;QACtC,8BAAC,kCAAc,IACb,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,EAAE,KACnD,KAAK,GACT;QACF,8BAAC,kBAAO,OAAG;QACX,8BAAC,yBAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,8BAAC,kBAAO,OAAG;QACX,8BAAC,yBAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,8BAAC,kBAAO,OAAG;QACV,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,8BAAC,uBAAa,IACZ,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CACtB,CAAC,GAAW,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,IAAA,mBAAa,EAAC,GAAG,CAAC,0CAAE,YAAY,KAAI,EAAE,CAAA,EAAA,CACxD,EACD,KAAK,EAAE,KAAK,GACZ,CACH,CAAC,CAAC,CAAC,IAAI;QACP,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAC/B,8BAAC,uBAAa,IACZ,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GACrD,CACH,CAAC,CAAC,CAAC,IAAI;QACR,8BAAC,2BAAiB,IAChB,OAAO,EAAE,IAAI,KACT,KAAK,EACT,YAAY,EAAE,YAAY,GAC1B,CACI,CACT,CAAA;AACH,CAAC;AAED,kBAAe,IAAA,qBAAQ,EAAC,qBAAqB,CAAC,CAAA"}
@@ -1,2 +1,6 @@
1
1
  /// <reference types="react" />
2
- export default function VariantSamples(props: any): JSX.Element | null;
2
+ import { SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
3
+ export default function VariantSamples(props: {
4
+ feature: SimpleFeatureSerialized;
5
+ descriptions: any;
6
+ }): JSX.Element | null;
@@ -29,17 +29,21 @@ const material_1 = require("@mui/material");
29
29
  const x_data_grid_1 = require("@mui/x-data-grid");
30
30
  const BaseFeatureDetail_1 = require("@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail");
31
31
  function VariantSamples(props) {
32
+ const { feature, descriptions } = props;
32
33
  const [filter, setFilter] = (0, react_1.useState)({});
33
34
  const [showFilters, setShowFilters] = (0, react_1.useState)(false);
34
- const { feature } = props;
35
35
  const { samples = {} } = feature;
36
36
  const preFilteredRows = Object.entries(samples);
37
37
  if (!preFilteredRows.length) {
38
38
  return null;
39
39
  }
40
- const infoFields = ['sample', ...Object.keys(preFilteredRows[0][1])].map(field => ({
41
- field,
42
- }));
40
+ const infoFields = ['sample', ...Object.keys(preFilteredRows[0][1])].map(field => {
41
+ var _a, _b;
42
+ return ({
43
+ field,
44
+ description: (_b = (_a = descriptions.FORMAT) === null || _a === void 0 ? void 0 : _a[field]) === null || _b === void 0 ? void 0 : _b.Description,
45
+ });
46
+ });
43
47
  let error;
44
48
  let rows = [];
45
49
  const filters = Object.keys(filter);
@@ -48,20 +52,18 @@ function VariantSamples(props) {
48
52
  // sortable by the data-grid
49
53
  try {
50
54
  rows = preFilteredRows
51
- .map((row) => ({
55
+ .map(row => ({
52
56
  ...Object.fromEntries(Object.entries(row[1]).map(entry => [entry[0], String(entry[1])])),
53
57
  sample: row[0],
54
58
  id: row[0],
55
59
  }))
56
- .filter((row) => {
57
- return filters.length
58
- ? filters.every(key => {
59
- const val = row[key];
60
- const currFilter = filter[key];
61
- return currFilter ? val.match(new RegExp(currFilter, 'i')) : true;
62
- })
63
- : true;
64
- });
60
+ .filter(row => filters.length
61
+ ? filters.every(key => {
62
+ const val = row[key];
63
+ const currFilter = filter[key];
64
+ return currFilter ? val.match(new RegExp(currFilter, 'i')) : true;
65
+ })
66
+ : true);
65
67
  }
66
68
  catch (e) {
67
69
  error = e;
@@ -73,9 +75,7 @@ function VariantSamples(props) {
73
75
  react_1.default.createElement(material_1.FormControlLabel, { control: react_1.default.createElement(material_1.Checkbox, { checked: showFilters, onChange: () => setShowFilters(f => !f) }), label: "Show sample filters" }),
74
76
  showFilters ? (react_1.default.createElement(react_1.default.Fragment, null,
75
77
  react_1.default.createElement(material_1.Typography, null, "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33"),
76
- infoFields.map(({ field }) => {
77
- return (react_1.default.createElement(material_1.TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }));
78
- }))) : null,
78
+ infoFields.map(({ field }) => (react_1.default.createElement(material_1.TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }))))) : null,
79
79
  react_1.default.createElement("div", { style: { height: 600, width: '100%', overflow: 'auto' } },
80
80
  react_1.default.createElement(x_data_grid_1.DataGrid, { rows: rows, columns: infoFields, disableSelectionOnClick: true, rowHeight: 25, disableColumnMenu: true }))));
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+CAAuC;AAEvC,4CAKsB;AAEtB,kDAA2C;AAC3C,yFAA4E;AAE5E,SAAwB,cAAc,CAAC,KAAU;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAM,EAAE,CAAC,CAAA;IAC7C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACrD,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IAEzB,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAA;IAChC,MAAM,eAAe,GAAQ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,OAAO,IAAI,CAAA;KACZ;IACD,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACtE,KAAK,CAAC,EAAE,CAAC,CAAC;QACR,KAAK;KACN,CAAC,CACH,CAAA;IACD,IAAI,KAAK,CAAA;IACT,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEnC,qCAAqC;IACrC,wEAAwE;IACxE,4BAA4B;IAC5B,IAAI;QACF,IAAI,GAAG,eAAe;aACnB,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;YAClB,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE;YACD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACd,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;SACX,CAAC,CAAC;aACF,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAE;YACnB,OAAO,OAAO,CAAC,MAAM;gBACnB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAClB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;oBACpB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC9B,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACnE,CAAC,CAAC;gBACJ,CAAC,CAAC,IAAI,CAAA;QACV,CAAC,CAAC,CAAA;KACL;IAAC,OAAO,CAAC,EAAE;QACV,KAAK,GAAG,CAAC,CAAA;KACV;IACD,sCAAsC;IACtC,uDAAuD;IACvD,OAAO,CACL,8BAAC,4BAAQ,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS;QACjC,KAAK,CAAC,CAAC,CAAC,8BAAC,qBAAU,IAAC,KAAK,EAAC,OAAO,IAAE,GAAG,KAAK,EAAE,CAAc,CAAC,CAAC,CAAC,IAAI;QAEnE,8BAAC,2BAAgB,IACf,OAAO,EACL,8BAAC,mBAAQ,IACP,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACvC,EAEJ,KAAK,EAAC,qBAAqB,GAC3B;QACD,WAAW,CAAC,CAAC,CAAC,CACb;YACE,8BAAC,qBAAU,yQAKE;YACZ,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5B,OAAO,CACL,8BAAC,oBAAS,IACR,GAAG,EAAE,UAAU,KAAK,EAAE,EACtB,WAAW,EAAE,UAAU,KAAK,EAAE,EAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAC1B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAChB,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAEvD,CACH,CAAA;YACH,CAAC,CAAC,CACD,CACJ,CAAC,CAAC,CAAC,IAAI;QACR,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC1D,8BAAC,sBAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EACnB,uBAAuB,QACvB,SAAS,EAAE,EAAE,EACb,iBAAiB,SACjB,CACE,CACG,CACZ,CAAA;AACH,CAAC;AA3FD,iCA2FC"}
1
+ {"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,+CAAuC;AAEvC,4CAKsB;AAEtB,kDAA2C;AAC3C,yFAA4E;AAS5E,SAAwB,cAAc,CAAC,KAGtC;IACC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IACvC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAyB,EAAE,CAAC,CAAA;IAChE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACrD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAGxB,CAAA;IACD,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CACtE,KAAK,CAAC,EAAE;;QAAC,OAAA,CAAC;YACR,KAAK;YACL,WAAW,EAAE,MAAA,MAAA,YAAY,CAAC,MAAM,0CAAG,KAAK,CAAC,0CAAE,WAAW;SACvD,CAAC,CAAA;KAAA,CACH,CAAA;IAED,IAAI,KAAK,CAAA;IACT,IAAI,IAAI,GAAG,EAAa,CAAA;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEnC,qCAAqC;IACrC,wEAAwE;IACxE,4BAA4B;IAC5B,IAAI;QACF,IAAI,GAAG,eAAe;aACnB,GAAG,CACF,GAAG,CAAC,EAAE,CACJ,CAAC;YACC,GAAG,MAAM,CAAC,WAAW,CACnB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClE;YACD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACd,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;SACD,CAAA,CACd;aACA,MAAM,CAAC,GAAG,CAAC,EAAE,CACZ,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAClB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;gBACpB,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC9B,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACnE,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CACT,CAAA;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,KAAK,GAAG,CAAC,CAAA;KACV;IACD,sCAAsC;IACtC,uDAAuD;IACvD,OAAO,CACL,8BAAC,4BAAQ,OAAK,KAAK,EAAE,KAAK,EAAC,SAAS;QACjC,KAAK,CAAC,CAAC,CAAC,8BAAC,qBAAU,IAAC,KAAK,EAAC,OAAO,IAAE,GAAG,KAAK,EAAE,CAAc,CAAC,CAAC,CAAC,IAAI;QAEnE,8BAAC,2BAAgB,IACf,OAAO,EACL,8BAAC,mBAAQ,IACP,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GACvC,EAEJ,KAAK,EAAC,qBAAqB,GAC3B;QACD,WAAW,CAAC,CAAC,CAAC,CACb;YACE,8BAAC,qBAAU,yQAKE;YACZ,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC7B,8BAAC,oBAAS,IACR,GAAG,EAAE,UAAU,KAAK,EAAE,EACtB,WAAW,EAAE,UAAU,KAAK,EAAE,EAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAC1B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAChB,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAEvD,CACH,CAAC,CACD,CACJ,CAAC,CAAC,CAAC,IAAI;QACR,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YAC1D,8BAAC,sBAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EACnB,uBAAuB,QACvB,SAAS,EAAE,EAAE,EACb,iBAAiB,SACjB,CACE,CACG,CACZ,CAAA;AACH,CAAC;AApGD,iCAoGC"}
@@ -8,7 +8,7 @@ declare namespace _default {
8
8
  const radius: PropTypes.Validator<number>;
9
9
  const bezierRadius: PropTypes.Validator<number>;
10
10
  const selectedFeatureId: PropTypes.Requireable<string>;
11
- const onChordClick: PropTypes.Requireable<string | ((...args: any[]) => any)>;
11
+ const onChordClick: PropTypes.Requireable<NonNullable<string | ((...args: any[]) => any) | null | undefined>>;
12
12
  }
13
13
  namespace defaultProps {
14
14
  const displayModel_1: undefined;
@@ -32,7 +32,7 @@ function VariantFeatureDetails(props) {
32
32
  React.createElement(Divider, null),
33
33
  feat.type === 'breakend' ? (React.createElement(BreakendPanel, { feature: feat, locStrings: feat.ALT.map((alt) => { var _a; return ((_a = parseBreakend(alt)) === null || _a === void 0 ? void 0 : _a.MatePosition) || ''; }), model: model })) : null,
34
34
  feat.type === 'translocation' ? (React.createElement(BreakendPanel, { feature: feat, model: model, locStrings: [`${feat.INFO.CHR2[0]}:${feat.INFO.END}`] })) : null,
35
- React.createElement(VariantSampleGrid, { feature: feat, ...props })));
35
+ React.createElement(VariantSampleGrid, { feature: feat, ...props, descriptions: descriptions })));
36
36
  }
37
37
  export default observer(VariantFeatureDetails);
38
38
  //# sourceMappingURL=VariantFeatureWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VariantFeatureWidget.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantFeatureWidget.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAA;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,SAAS;AACT,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,SAAS,qBAAqB,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IACjC,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,qDAAqD;QAC5D,GAAG,EAAE,uEAAuE;QAC5E,EAAE,EAAE,6EAA6E;QACjF,GAAG,EAAE,2EAA2E;QAChF,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,mEAAmE;QACzE,MAAM,EACJ,kIAAkI;KACrI,CAAA;IAED,OAAO,CACL,oBAAC,KAAK,mBAAa,qBAAqB;QACtC,oBAAC,cAAc,IACb,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,EAAE,KACnD,KAAK,GACT;QACF,oBAAC,OAAO,OAAG;QACX,oBAAC,eAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,oBAAC,OAAO,OAAG;QACX,oBAAC,eAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,oBAAC,OAAO,OAAG;QACV,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,oBAAC,aAAa,IACZ,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CACtB,CAAC,GAAW,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,aAAa,CAAC,GAAG,CAAC,0CAAE,YAAY,KAAI,EAAE,CAAA,EAAA,CACxD,EACD,KAAK,EAAE,KAAK,GACZ,CACH,CAAC,CAAC,CAAC,IAAI;QACP,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAC/B,oBAAC,aAAa,IACZ,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GACrD,CACH,CAAC,CAAC,CAAC,IAAI;QACR,oBAAC,iBAAiB,IAAC,OAAO,EAAE,IAAI,KAAM,KAAK,GAAI,CACzC,CACT,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,qBAAqB,CAAC,CAAA"}
1
+ {"version":3,"file":"VariantFeatureWidget.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantFeatureWidget.tsx"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAA;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,SAAS;AACT,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAE3C,SAAS,qBAAqB,CAAC,KAAU;IACvC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IACjC,MAAM,iBAAiB,GAAG;QACxB,KAAK,EAAE,qDAAqD;QAC5D,GAAG,EAAE,uEAAuE;QAC5E,EAAE,EAAE,6EAA6E;QACjF,GAAG,EAAE,2EAA2E;QAChF,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,mEAAmE;QACzE,MAAM,EACJ,kIAAkI;KACrI,CAAA;IAED,OAAO,CACL,oBAAC,KAAK,mBAAa,qBAAqB;QACtC,oBAAC,cAAc,IACb,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,EAAE,KACnD,KAAK,GACT;QACF,oBAAC,OAAO,OAAG;QACX,oBAAC,eAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,oBAAC,OAAO,OAAG;QACX,oBAAC,eAAe,IAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QAC9D,oBAAC,OAAO,OAAG;QACV,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC1B,oBAAC,aAAa,IACZ,OAAO,EAAE,IAAI,EACb,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CACtB,CAAC,GAAW,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,aAAa,CAAC,GAAG,CAAC,0CAAE,YAAY,KAAI,EAAE,CAAA,EAAA,CACxD,EACD,KAAK,EAAE,KAAK,GACZ,CACH,CAAC,CAAC,CAAC,IAAI;QACP,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAC/B,oBAAC,aAAa,IACZ,OAAO,EAAE,IAAI,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GACrD,CACH,CAAC,CAAC,CAAC,IAAI;QACR,oBAAC,iBAAiB,IAChB,OAAO,EAAE,IAAI,KACT,KAAK,EACT,YAAY,EAAE,YAAY,GAC1B,CACI,CACT,CAAA;AACH,CAAC;AAED,eAAe,QAAQ,CAAC,qBAAqB,CAAC,CAAA"}
@@ -1,2 +1,6 @@
1
1
  /// <reference types="react" />
2
- export default function VariantSamples(props: any): JSX.Element | null;
2
+ import { SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
3
+ export default function VariantSamples(props: {
4
+ feature: SimpleFeatureSerialized;
5
+ descriptions: any;
6
+ }): JSX.Element | null;
@@ -4,17 +4,21 @@ import { FormControlLabel, Checkbox, TextField, Typography, } from '@mui/materia
4
4
  import { DataGrid } from '@mui/x-data-grid';
5
5
  import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail';
6
6
  export default function VariantSamples(props) {
7
+ const { feature, descriptions } = props;
7
8
  const [filter, setFilter] = useState({});
8
9
  const [showFilters, setShowFilters] = useState(false);
9
- const { feature } = props;
10
10
  const { samples = {} } = feature;
11
11
  const preFilteredRows = Object.entries(samples);
12
12
  if (!preFilteredRows.length) {
13
13
  return null;
14
14
  }
15
- const infoFields = ['sample', ...Object.keys(preFilteredRows[0][1])].map(field => ({
16
- field,
17
- }));
15
+ const infoFields = ['sample', ...Object.keys(preFilteredRows[0][1])].map(field => {
16
+ var _a, _b;
17
+ return ({
18
+ field,
19
+ description: (_b = (_a = descriptions.FORMAT) === null || _a === void 0 ? void 0 : _a[field]) === null || _b === void 0 ? void 0 : _b.Description,
20
+ });
21
+ });
18
22
  let error;
19
23
  let rows = [];
20
24
  const filters = Object.keys(filter);
@@ -23,20 +27,18 @@ export default function VariantSamples(props) {
23
27
  // sortable by the data-grid
24
28
  try {
25
29
  rows = preFilteredRows
26
- .map((row) => ({
30
+ .map(row => ({
27
31
  ...Object.fromEntries(Object.entries(row[1]).map(entry => [entry[0], String(entry[1])])),
28
32
  sample: row[0],
29
33
  id: row[0],
30
34
  }))
31
- .filter((row) => {
32
- return filters.length
33
- ? filters.every(key => {
34
- const val = row[key];
35
- const currFilter = filter[key];
36
- return currFilter ? val.match(new RegExp(currFilter, 'i')) : true;
37
- })
38
- : true;
39
- });
35
+ .filter(row => filters.length
36
+ ? filters.every(key => {
37
+ const val = row[key];
38
+ const currFilter = filter[key];
39
+ return currFilter ? val.match(new RegExp(currFilter, 'i')) : true;
40
+ })
41
+ : true);
40
42
  }
41
43
  catch (e) {
42
44
  error = e;
@@ -48,9 +50,7 @@ export default function VariantSamples(props) {
48
50
  React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: showFilters, onChange: () => setShowFilters(f => !f) }), label: "Show sample filters" }),
49
51
  showFilters ? (React.createElement(React.Fragment, null,
50
52
  React.createElement(Typography, null, "These filters can use a plain text search or regex style query, e.g. in the genotype field, entering 1 will query for all genotypes that include the first alternate allele e.g. 0|1 or 1|1, entering [1-9]\\d* will find any non-zero allele e.g. 0|2 or 2/33"),
51
- infoFields.map(({ field }) => {
52
- return (React.createElement(TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }));
53
- }))) : null,
53
+ infoFields.map(({ field }) => (React.createElement(TextField, { key: `filter-${field}`, placeholder: `Filter ${field}`, value: filter[field] || '', onChange: event => setFilter({ ...filter, [field]: event.target.value }) }))))) : null,
54
54
  React.createElement("div", { style: { height: 600, width: '100%', overflow: 'auto' } },
55
55
  React.createElement(DataGrid, { rows: rows, columns: infoFields, disableSelectionOnClick: true, rowHeight: 25, disableColumnMenu: true }))));
56
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VariantSampleGrid.js","sourceRoot":"","sources":["../../src/VariantFeatureWidget/VariantSampleGrid.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-variants",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "JBrowse 2 variant adapters, tracks, etc.",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -65,5 +65,5 @@
65
65
  "distModule": "esm/index.js",
66
66
  "srcModule": "src/index.ts",
67
67
  "module": "esm/index.js",
68
- "gitHead": "449b17325c9a4a97181f7ddddf48e80219f03b8d"
68
+ "gitHead": "8f53e016dd83b01a1beea0fc61c33964f5b6c809"
69
69
  }
@@ -55,7 +55,11 @@ function VariantFeatureDetails(props: any) {
55
55
  locStrings={[`${feat.INFO.CHR2[0]}:${feat.INFO.END}`]}
56
56
  />
57
57
  ) : null}
58
- <VariantSampleGrid feature={feat} {...props} />
58
+ <VariantSampleGrid
59
+ feature={feat}
60
+ {...props}
61
+ descriptions={descriptions}
62
+ />
59
63
  </Paper>
60
64
  )
61
65
  }
@@ -10,24 +10,39 @@ import {
10
10
 
11
11
  import { DataGrid } from '@mui/x-data-grid'
12
12
  import { BaseCard } from '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail'
13
+ import { SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature'
13
14
 
14
- export default function VariantSamples(props: any) {
15
- const [filter, setFilter] = useState<any>({})
16
- const [showFilters, setShowFilters] = useState(false)
17
- const { feature } = props
15
+ interface Entry {
16
+ sample: string
17
+ id: string
18
+ [key: string]: string
19
+ }
18
20
 
19
- const { samples = {} } = feature
20
- const preFilteredRows: any = Object.entries(samples)
21
+ export default function VariantSamples(props: {
22
+ feature: SimpleFeatureSerialized
23
+ descriptions: any
24
+ }) {
25
+ const { feature, descriptions } = props
26
+ const [filter, setFilter] = useState<Record<string, string>>({})
27
+ const [showFilters, setShowFilters] = useState(false)
28
+ const { samples = {} } = feature as Record<
29
+ string,
30
+ Record<string, Record<string, unknown>>
31
+ >
32
+ const preFilteredRows = Object.entries(samples)
21
33
  if (!preFilteredRows.length) {
22
34
  return null
23
35
  }
36
+
24
37
  const infoFields = ['sample', ...Object.keys(preFilteredRows[0][1])].map(
25
38
  field => ({
26
39
  field,
40
+ description: descriptions.FORMAT?.[field]?.Description,
27
41
  }),
28
42
  )
43
+
29
44
  let error
30
- let rows = []
45
+ let rows = [] as Entry[]
31
46
  const filters = Object.keys(filter)
32
47
 
33
48
  // catch some error thrown from regex
@@ -35,22 +50,25 @@ export default function VariantSamples(props: any) {
35
50
  // sortable by the data-grid
36
51
  try {
37
52
  rows = preFilteredRows
38
- .map((row: any) => ({
39
- ...Object.fromEntries(
40
- Object.entries(row[1]).map(entry => [entry[0], String(entry[1])]),
41
- ),
42
- sample: row[0],
43
- id: row[0],
44
- }))
45
- .filter((row: any) => {
46
- return filters.length
53
+ .map(
54
+ row =>
55
+ ({
56
+ ...Object.fromEntries(
57
+ Object.entries(row[1]).map(entry => [entry[0], String(entry[1])]),
58
+ ),
59
+ sample: row[0],
60
+ id: row[0],
61
+ } as Entry),
62
+ )
63
+ .filter(row =>
64
+ filters.length
47
65
  ? filters.every(key => {
48
66
  const val = row[key]
49
67
  const currFilter = filter[key]
50
68
  return currFilter ? val.match(new RegExp(currFilter, 'i')) : true
51
69
  })
52
- : true
53
- })
70
+ : true,
71
+ )
54
72
  } catch (e) {
55
73
  error = e
56
74
  }
@@ -77,18 +95,16 @@ export default function VariantSamples(props: any) {
77
95
  include the first alternate allele e.g. 0|1 or 1|1, entering
78
96
  [1-9]\d* will find any non-zero allele e.g. 0|2 or 2/33
79
97
  </Typography>
80
- {infoFields.map(({ field }) => {
81
- return (
82
- <TextField
83
- key={`filter-${field}`}
84
- placeholder={`Filter ${field}`}
85
- value={filter[field] || ''}
86
- onChange={event =>
87
- setFilter({ ...filter, [field]: event.target.value })
88
- }
89
- />
90
- )
91
- })}
98
+ {infoFields.map(({ field }) => (
99
+ <TextField
100
+ key={`filter-${field}`}
101
+ placeholder={`Filter ${field}`}
102
+ value={filter[field] || ''}
103
+ onChange={event =>
104
+ setFilter({ ...filter, [field]: event.target.value })
105
+ }
106
+ />
107
+ ))}
92
108
  </>
93
109
  ) : null}
94
110
  <div style={{ height: 600, width: '100%', overflow: 'auto' }}>