@rcsb/rcsb-saguaro-app 6.0.0 → 6.0.2

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 (35) hide show
  1. package/README.md +2 -2
  2. package/build/app.js +1 -1
  3. package/build/constants.js +2 -1
  4. package/build/constants.js.LICENSE.txt +8 -0
  5. package/build/plot.js +1 -1
  6. package/build/worker.js +1 -1
  7. package/lib/RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector.d.ts +3 -2
  8. package/lib/RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector.js +3 -2
  9. package/lib/RcsbFvExamples/GroupHistogram.js +2 -2
  10. package/lib/RcsbGroupWeb/RcsbGroupView/RcsbGroupChart/GroupChartEvents.js +20 -9
  11. package/lib/RcsbQueries/Yosemite/QueryMultipleEntriesProperties.graphql +3 -0
  12. package/lib/RcsbRequest/RcsbRequestContextManager.d.ts +2 -2
  13. package/lib/RcsbSeacrh/FacetStore/FacetMemberInterface.d.ts +11 -4
  14. package/lib/RcsbSeacrh/FacetStore/SequenceGroupFacetStore.js +3 -2
  15. package/lib/RcsbSeacrh/FacetStore/SingleFacets.d.ts +2 -0
  16. package/lib/RcsbSeacrh/FacetStore/SingleFacets.js +53 -3
  17. package/lib/RcsbSeacrh/FacetStore/UniprotGroupFacetStore.js +3 -2
  18. package/lib/RcsbSeacrh/FacetTools.d.ts +7 -13
  19. package/lib/RcsbSeacrh/FacetTools.js +7 -15
  20. package/lib/RcsbUtils/Groups/GroupPropertiesProvider.d.ts +2 -2
  21. package/lib/commonjs/RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector.d.ts +3 -2
  22. package/lib/commonjs/RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector.js +3 -2
  23. package/lib/commonjs/RcsbFvExamples/GroupHistogram.js +2 -2
  24. package/lib/commonjs/RcsbGroupWeb/RcsbGroupView/RcsbGroupChart/GroupChartEvents.js +20 -9
  25. package/lib/commonjs/RcsbQueries/Yosemite/QueryMultipleEntriesProperties.graphql +3 -0
  26. package/lib/commonjs/RcsbRequest/RcsbRequestContextManager.d.ts +2 -2
  27. package/lib/commonjs/RcsbSeacrh/FacetStore/FacetMemberInterface.d.ts +11 -4
  28. package/lib/commonjs/RcsbSeacrh/FacetStore/SequenceGroupFacetStore.js +2 -1
  29. package/lib/commonjs/RcsbSeacrh/FacetStore/SingleFacets.d.ts +2 -0
  30. package/lib/commonjs/RcsbSeacrh/FacetStore/SingleFacets.js +53 -3
  31. package/lib/commonjs/RcsbSeacrh/FacetStore/UniprotGroupFacetStore.js +2 -1
  32. package/lib/commonjs/RcsbSeacrh/FacetTools.d.ts +7 -13
  33. package/lib/commonjs/RcsbSeacrh/FacetTools.js +7 -15
  34. package/lib/commonjs/RcsbUtils/Groups/GroupPropertiesProvider.d.ts +2 -2
  35. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SearchFacets = exports.GO_COMPONENT_FACET = exports.GO_PROCESS_FACET = exports.GO_FUNCTION_FACET = exports.ENZYME_CLASS_FACET = exports.CHEM_COMP_FACET = exports.ENTITY_NAME_FACET = exports.PFAM_FACET = exports.TAXONOMY_FACET = exports.ORGANISM_FACET = exports.LIGAND_OF_INTEREST_FACET = exports.LIGAND_FACET = exports.ECOD_FACET = exports.CATH_FACET = exports.SCOP_FACET = exports.RELEASE_DATE_FACET = exports.METHODOLOGY_FACET = exports.RESOLUTION_FACET = exports.EXPERIMENTAL_METHOD_FACET = void 0;
3
+ exports.SearchFacets = exports.GO_COMPONENT_FACET = exports.GO_PROCESS_FACET = exports.GO_FUNCTION_FACET = exports.ENZYME_CLASS_FACET = exports.CHEM_COMP_FACET = exports.ENTITY_NAME_FACET = exports.PFAM_FACET = exports.TAXONOMY_FACET = exports.ORGANISM_FACET = exports.LIGAND_OF_INTEREST_FACET = exports.LIGAND_FACET = exports.ECOD_FACET = exports.CATH_FACET = exports.SCOP_FACET = exports.RELEASE_DATE_FACET = exports.CHIMERIC_FACET = exports.METHODOLOGY_FACET = exports.RESOLUTION_FACET = exports.EXPERIMENTAL_METHOD_FACET = void 0;
4
4
  const SearchMetadata_1 = require("@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchMetadata");
5
5
  const SearchEnums_1 = require("@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums");
6
6
  const ChartConfigInterface_1 = require("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface");
7
+ const SearchQueryTools_1 = require("../SearchQueryTools");
7
8
  exports.EXPERIMENTAL_METHOD_FACET = {
8
9
  id: "method",
9
10
  title: "Experimental Method",
@@ -46,7 +47,6 @@ exports.RESOLUTION_FACET = {
46
47
  constHeight: 225
47
48
  },
48
49
  histogramBinIncrement: 0.5,
49
- mergeDomainMaxValue: 5,
50
50
  domainMinValue: 0,
51
51
  domainMaxValue: 6,
52
52
  axisLabel: "Angstroms",
@@ -56,6 +56,9 @@ exports.RESOLUTION_FACET = {
56
56
  return `Resolution ${d.x - 0.25} - ${d.x + 0.25}`;
57
57
  }
58
58
  },
59
+ facetConfig: {
60
+ mergeDomainMaxValue: 5
61
+ },
59
62
  facet: {
60
63
  name: "RESOLUTION_FACET",
61
64
  aggregation_type: SearchEnums_1.AggregationType.Histogram,
@@ -81,6 +84,52 @@ exports.METHODOLOGY_FACET = {
81
84
  min_interval_population: 1
82
85
  }
83
86
  };
87
+ exports.CHIMERIC_FACET = {
88
+ id: "chimeric",
89
+ title: "Protein Sequence Composition",
90
+ attributeName: "CHIMERIC_FACET",
91
+ attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path,
92
+ chartType: ChartConfigInterface_1.ChartType.barplot,
93
+ contentType: "string",
94
+ facetConfig: {
95
+ facetTransform: (buckets) => {
96
+ const out = [];
97
+ const wt = buckets.find(b => b.label == 1);
98
+ if (wt)
99
+ out.push({
100
+ label: "Wild Type",
101
+ population: wt.population
102
+ });
103
+ const synthetic = buckets.find(b => b.label == 0);
104
+ if (synthetic)
105
+ out.push({
106
+ label: "Synthetic",
107
+ population: synthetic.population
108
+ });
109
+ const chimeric = buckets.filter(b => parseInt(b.label.toString()) > 1);
110
+ if ((chimeric === null || chimeric === void 0 ? void 0 : chimeric.length) > 0)
111
+ out.push({
112
+ label: "Chimeric",
113
+ population: chimeric.reduce((c, p) => c + p.population, 0)
114
+ });
115
+ return out;
116
+ },
117
+ bucketClickSearchQuery: (datum, data, e) => {
118
+ if (datum.x == "Wild Type")
119
+ return SearchQueryTools_1.SearchQueryTools.searchAttributeQuery(exports.CHIMERIC_FACET.attribute, 1, SearchEnums_1.Operator.Equals, SearchEnums_1.Service.Text);
120
+ else if (datum.x == "Synthetic")
121
+ return SearchQueryTools_1.SearchQueryTools.searchAttributeQuery(exports.CHIMERIC_FACET.attribute, 0, SearchEnums_1.Operator.Equals, SearchEnums_1.Service.Text);
122
+ else
123
+ return SearchQueryTools_1.SearchQueryTools.searchAttributeQuery(exports.CHIMERIC_FACET.attribute, 1, SearchEnums_1.Operator.Greater, SearchEnums_1.Service.Text);
124
+ }
125
+ },
126
+ facet: {
127
+ name: "CHIMERIC_FACET",
128
+ aggregation_type: SearchEnums_1.AggregationType.Terms,
129
+ attribute: SearchMetadata_1.RcsbSearchMetadata.RcsbPolymerEntity.RcsbSourcePartCount.path,
130
+ min_interval_population: 1
131
+ }
132
+ };
84
133
  exports.RELEASE_DATE_FACET = {
85
134
  id: "release_date",
86
135
  title: undefined,
@@ -559,5 +608,6 @@ exports.SearchFacets = {
559
608
  GO_PROCESS_FACET: exports.GO_PROCESS_FACET,
560
609
  GO_COMPONENT_FACET: exports.GO_COMPONENT_FACET,
561
610
  LIGAND_OF_INTEREST_FACET: exports.LIGAND_OF_INTEREST_FACET,
562
- METHODOLOGY_FACET: exports.METHODOLOGY_FACET
611
+ METHODOLOGY_FACET: exports.METHODOLOGY_FACET,
612
+ CHIMERIC_FACET: exports.CHIMERIC_FACET
563
613
  };
@@ -27,7 +27,8 @@ class UniprotGroupFacetStore {
27
27
  (0, lodash_1.cloneDeep)(SingleFacets_1.ENTITY_NAME_FACET),
28
28
  (0, lodash_1.cloneDeep)(SingleFacets_1.GO_FUNCTION_FACET),
29
29
  (0, lodash_1.cloneDeep)(SingleFacets_1.GO_PROCESS_FACET),
30
- (0, lodash_1.cloneDeep)(SingleFacets_1.GO_COMPONENT_FACET)
30
+ (0, lodash_1.cloneDeep)(SingleFacets_1.GO_COMPONENT_FACET),
31
+ (0, lodash_1.cloneDeep)(SingleFacets_1.CHIMERIC_FACET)
31
32
  ];
32
33
  this.nonPolymerFacet = [
33
34
  (0, lodash_1.cloneDeep)(SingleFacets_1.CHEM_COMP_FACET)
@@ -2,7 +2,7 @@ import { BucketFacet } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchR
2
2
  import { FacetMemberInterface } from "./FacetStore/FacetMemberInterface";
3
3
  import { AttributeTextQueryParameters } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
4
4
  import { Service } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums";
5
- import { ChartDisplayConfigInterface, ChartObjectInterface, ChartType } from "@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface";
5
+ import { ChartDisplayConfigInterface, ChartObjectInterface } from "@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface";
6
6
  import { RcsbSearchAttributeType } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchMetadata";
7
7
  export type SearchFilter = {
8
8
  attribute: RcsbSearchAttributeType;
@@ -10,16 +10,10 @@ export type SearchFilter = {
10
10
  operator: AttributeTextQueryParameters["operator"];
11
11
  service: Service.Text | Service.TextChem;
12
12
  };
13
- export interface RcsbChartInterface<T = any> {
14
- chartType: ChartType;
13
+ export interface RcsbChartInterface<T = any> extends Omit<FacetMemberInterface, "id" | "facet"> {
15
14
  labelList?: string[];
16
- attribute: RcsbSearchAttributeType;
17
- attributeName: string;
18
- chartConfig?: FacetMemberInterface["chartConfig"];
19
- title?: string;
20
15
  data: ChartObjectInterface<T>[];
21
16
  filters?: SearchFilter[];
22
- contentType: FacetMemberInterface['contentType'];
23
17
  }
24
18
  export declare class FacetTools {
25
19
  static getResultDrilldowns(facetMembers: FacetMemberInterface[], searchResultFacets: Array<BucketFacet>): Array<RcsbChartInterface>;
@@ -45,15 +39,15 @@ export declare class FacetTools {
45
39
  barClickCallback?: import("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface").BarClickCallbackType | undefined;
46
40
  sort?: ((b: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataColumnInterface<any>, a: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataColumnInterface<any>) => number) | undefined;
47
41
  tooltipText?: ((a: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataValueInterface<any>) => string | string[] | undefined) | undefined;
48
- mergeDomainMaxValue?: number | undefined;
49
42
  };
50
- chartType: ChartType;
51
43
  labelList?: string[] | undefined;
52
- attribute: RcsbSearchAttributeType;
53
- attributeName: string;
54
- title?: string | undefined;
55
44
  data: ChartObjectInterface<any>[];
56
45
  filters?: SearchFilter[] | undefined;
46
+ title?: string | undefined;
47
+ attribute: RcsbSearchAttributeType;
48
+ attributeName: string;
49
+ chartType: import("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface").ChartType;
50
+ facetConfig?: import("./FacetStore/FacetMemberInterface").FacetConfigInterface | undefined;
57
51
  contentType: "string" | "number" | "date";
58
52
  };
59
53
  private static includeMissingFacets;
@@ -12,17 +12,7 @@ class FacetTools {
12
12
  if (!facet)
13
13
  return;
14
14
  const chart = FacetTools.getFacetChartTypeFromAttribute(facetMembers, bucket.name);
15
- out.push({
16
- chartType: chart.chartType,
17
- chartConfig: chart.chartConfig,
18
- labelList: [],
19
- attributeName: bucket.name,
20
- attribute: facet.attribute,
21
- title: chart.title,
22
- data: applyChartConfigToData(bucket.data, facet === null || facet === void 0 ? void 0 : facet.chartConfig),
23
- filters: FacetTools.getFacetFiltersFromName(facetMembers, bucket.name),
24
- contentType: facet.contentType
25
- });
15
+ out.push(Object.assign(Object.assign({}, chart), { labelList: [], attributeName: bucket.name, attribute: facet.attribute, data: applyChartConfigToData(bucket.data, facet === null || facet === void 0 ? void 0 : facet.facetConfig), filters: FacetTools.getFacetFiltersFromName(facetMembers, bucket.name), contentType: facet.contentType }));
26
16
  });
27
17
  return out;
28
18
  }
@@ -66,7 +56,7 @@ class FacetTools {
66
56
  const facet = facetMembers.find((facet) => (facet.attributeName === attribute));
67
57
  if (!facet)
68
58
  throw `Unknown facet attribute ${attribute}`;
69
- return { chartType: facet.chartType, chartConfig: facet.chartConfig, title: facet.title };
59
+ return facet;
70
60
  }
71
61
  static getFacetFiltersFromName(facetMembers, attribute) {
72
62
  const facet = facetMembers.find((facet) => (facet.attributeName === attribute));
@@ -94,9 +84,11 @@ class FacetTools {
94
84
  }
95
85
  }
96
86
  exports.FacetTools = FacetTools;
97
- function applyChartConfigToData(data, chartConfig) {
98
- if (chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.mergeDomainMaxValue)
99
- return mergeDomainMaxValue(data, chartConfig.mergeDomainMaxValue);
87
+ function applyChartConfigToData(data, facetConfig) {
88
+ if (facetConfig === null || facetConfig === void 0 ? void 0 : facetConfig.mergeDomainMaxValue)
89
+ return mergeDomainMaxValue(data, facetConfig.mergeDomainMaxValue);
90
+ if (facetConfig === null || facetConfig === void 0 ? void 0 : facetConfig.facetTransform)
91
+ return facetConfig.facetTransform(data);
100
92
  return data;
101
93
  }
102
94
  function mergeDomainMaxValue(data, domMaxValue) {
@@ -1,6 +1,6 @@
1
- import { EntryPropertyIntreface } from "../../RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector";
1
+ import { EntryPropertyInterface } from "../../RcsbCollectTools/DataCollectors/MultipleEntryPropertyCollector";
2
2
  export interface GroupPropertiesProviderInterface {
3
- entryProperties: Array<EntryPropertyIntreface>;
3
+ entryProperties: Array<EntryPropertyInterface>;
4
4
  }
5
5
  interface ItemPropertyInterface {
6
6
  objectId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rcsb/rcsb-saguaro-app",
3
- "version": "6.0.0",
3
+ "version": "6.0.2",
4
4
  "description": "RCSB 1D Saguaro Web App",
5
5
  "main": "build/app.js",
6
6
  "files": [