@rcsb/rcsb-saguaro-app 3.3.0 → 4.0.0-groups.13

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 (52) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/README.md +2 -2
  3. package/build/dist/RcsbChartWeb/RcsbChartTools/ChartTools.d.ts +32 -0
  4. package/build/dist/RcsbChartWeb/RcsbChartView/BarChartView.d.ts +9 -0
  5. package/build/dist/RcsbChartWeb/RcsbChartView/ChartViewInterface.d.ts +26 -0
  6. package/build/dist/RcsbChartWeb/RcsbChartView/HistogramChartView.d.ts +11 -0
  7. package/build/dist/RcsbChartWeb/RcsbChartView/PieChartView.d.ts +9 -0
  8. package/build/dist/RcsbChartWeb/RcsbChartView/RcsbChartLayout.d.ts +13 -0
  9. package/build/dist/RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface.d.ts +5 -3
  10. package/build/dist/RcsbCollectTools/FeatureTools/ExternalTrackBuilderInterface.d.ts +4 -4
  11. package/build/dist/RcsbCollectTools/PropertyCollector/GroupPropertyCollector.d.ts +9 -0
  12. package/build/dist/RcsbCollectTools/SequenceCollector/SequenceCollectorHelper.d.ts +1 -1
  13. package/build/dist/RcsbCollectTools/SequenceCollector/SequenceCollectorInterface.d.ts +6 -2
  14. package/build/dist/RcsbCollectTools/Translators/GroupMemberCollector.d.ts +6 -0
  15. package/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvContextManager.d.ts +12 -0
  16. package/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvCoreBuilder.d.ts +3 -0
  17. package/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvGroupBuilder.d.ts +6 -0
  18. package/build/dist/RcsbFvWeb/RcsbFvBuilder.d.ts +4 -2
  19. package/build/dist/RcsbFvWeb/RcsbFvGroup/GroupSequenceTabs.d.ts +20 -0
  20. package/build/dist/RcsbFvWeb/RcsbFvGroup/Logo.d.ts +15 -0
  21. package/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvGroupAlignment.d.ts +12 -0
  22. package/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvGroupAnnotation.d.ts +12 -0
  23. package/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface.d.ts +7 -1
  24. package/build/dist/RcsbFvWeb/WebTools/RcsbTabs.d.ts +16 -0
  25. package/build/dist/RcsbFvWeb/WebTools/SelectButton.d.ts +4 -0
  26. package/build/dist/RcsbFvWeb/WebTools/WebToolsManager.d.ts +4 -0
  27. package/build/dist/RcsbGraphQL/RcsbClient.d.ts +8 -2
  28. package/build/dist/RcsbGraphQL/RcsbQueryAlignment.d.ts +11 -1
  29. package/build/dist/RcsbGraphQL/RcsbQueryAnnotations.d.ts +5 -1
  30. package/build/dist/RcsbGraphQL/RcsbQueryGroup.d.ts +7 -0
  31. package/build/dist/RcsbGroupWeb/RcsbGroupBuilder.d.ts +7 -0
  32. package/build/dist/RcsbGroupWeb/RcsbGroupView/RcsbGroupDisplay.d.ts +9 -0
  33. package/build/dist/RcsbGroupWeb/RcsbGroupView/RcsbGroupHeader.d.ts +9 -0
  34. package/build/dist/RcsbGroupWeb/RcsbGroupView/RcsbGroupMembers/GroupMembersGrid.d.ts +30 -0
  35. package/build/dist/RcsbGroupWeb/RcsbGroupView/RcsbGroupMembers.d.ts +28 -0
  36. package/build/dist/RcsbSeacrh/FacetStore/EntityGranularitySearchFacetStore.d.ts +15 -0
  37. package/build/dist/RcsbSeacrh/FacetStore/EntityGroupFacetStore.d.ts +15 -0
  38. package/build/dist/RcsbSeacrh/FacetStore/EntryGroupFacetStore.d.ts +15 -0
  39. package/build/dist/RcsbSeacrh/FacetStore/FacetMemberInterface.d.ts +11 -0
  40. package/build/dist/RcsbSeacrh/FacetStore/FacetStoreInterface.d.ts +8 -0
  41. package/build/dist/RcsbSeacrh/FacetTools.d.ts +20 -0
  42. package/build/dist/RcsbSeacrh/QueryStore/SearchGroupQuery.d.ts +13 -0
  43. package/build/dist/RcsbSeacrh/SearchRequestProperty.d.ts +11 -0
  44. package/build/dist/app.d.ts +8 -1
  45. package/build/dist/app.js +19 -14
  46. package/build/dist/app.js.map +1 -1
  47. package/build/dist/plot.d.ts +1 -0
  48. package/build/dist/plot.js +95 -0
  49. package/build/dist/plot.js.map +1 -0
  50. package/build/dist/worker.js +1 -1
  51. package/build/dist/worker.js.map +1 -1
  52. package/package.json +12 -8
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [4.0.0-master] - 2021-12-07
6
+ ### Breaking change
7
+ - `ExternalTrackBuilderInterface` methods return a promise and are executed asynchronous
8
+
9
+ ## [3.4.0] - 2021-12-07
10
+ ### UI improvements
11
+ - Exposed methods for creating dropdown menus. Class `RcsbFvUI` static methods
12
+ - `createSelectButton` creates a select dropdown menu
13
+ - `addSelectButton` adds a second menu. Only an additional button can be created (replaced if a new one is created)
14
+ - `clearSelectButton` clear all menus
15
+
5
16
  ## [3.3.0] - 2021-11-30
6
17
  ### Annotations configuration improvements
7
18
  - Removed interface `CollectAnnotationsInterface` attribute `addTargetInTitle`
@@ -18,8 +29,8 @@
18
29
 
19
30
  ## [3.1.0] - 2021-10-27
20
31
  ### External track builder improvements
21
- - `ExternalTrackBuilderInterface` available through `RcsbFvAdditionalConfig` for all `RcsbFvBuilder` types.
22
- In addition, it includes the query context as additional parameter for processing and addition methods.
32
+ - `ExternalTrackBuilderInterface` available through `RcsbFvAdditionalConfig` for all `RcsbFvBuilder` types
33
+ In addition, it includes the query context as additional parameter for processing and addition methods
23
34
  - `processAlignmentAndFeatures` includes the query context as part of the input parameters
24
35
  - `addTo` includes the query context as part of the input parameters
25
36
  - `filterFeatures` new method for filtering positional features
package/README.md CHANGED
@@ -8,7 +8,7 @@ Feature Summaries. The package allows access to RCSB Saguaro methods to add or c
8
8
  <!---
9
9
  <div id="pfvSelect" ></div>
10
10
  <div id="pfv" ></div>
11
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.2.1/build/dist/app.js"></script>
11
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.4.0/build/dist/app.js"></script>
12
12
  <script type="text/javascript">
13
13
  RcsbFvWebApp.buildInstanceFv("pfv", "4Z35.A", {
14
14
  boardConfig:{
@@ -23,7 +23,7 @@ RcsbFvWebApp.buildInstanceFv("pfv", "4Z35.A", {
23
23
  `npm install @rcsb/rcsb-saguaro-app`
24
24
 
25
25
  ### CDN JavaScript
26
- `<script src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.2.1/build/dist/app.js" type="text/javascript"></script>`
26
+ `<script src="https://cdn.jsdelivr.net/npm/@rcsb/rcsb-saguaro-app@3.4.0/build/dist/app.js" type="text/javascript"></script>`
27
27
 
28
28
  ### JavaScript Examples
29
29
  * [PDB Instance Chain View](https://rcsb.github.io/rcsb-saguaro-app/examples/instance.html)
@@ -0,0 +1,32 @@
1
+ import { ChartObjectInterface } from "../RcsbChartView/ChartViewInterface";
2
+ export declare class ChartTools {
3
+ static readonly paddingLeft: number;
4
+ static readonly paddingBottom: number;
5
+ static readonly paddingTop: number;
6
+ static readonly paddingRight: number;
7
+ static readonly constWidth: number;
8
+ static readonly constHeight: number;
9
+ static readonly xIncrement: number;
10
+ static readonly xDomainPadding: number;
11
+ static readonly barWidth: number;
12
+ static mergeGroupSize(data: ChartObjectInterface[], size: number, mergeName?: string): {
13
+ x: string;
14
+ y: number;
15
+ }[];
16
+ static mostPopulatedGroups(data: ChartObjectInterface[], maxGroups: number, mergeName?: string): {
17
+ x: string;
18
+ y: number;
19
+ }[];
20
+ static mergeDomainMaxValue(data: ChartObjectInterface[], maxValue: number): {
21
+ x: number;
22
+ y: number;
23
+ }[];
24
+ static labelsAsString(data: ChartObjectInterface[]): {
25
+ x: string;
26
+ y: number;
27
+ }[];
28
+ static labelsAsNumber(data: ChartObjectInterface[]): {
29
+ x: number;
30
+ y: number;
31
+ }[];
32
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { ReactNode } from "react";
3
+ import { ChartViewInterface } from "./ChartViewInterface";
4
+ export declare class BarChartView extends React.Component<ChartViewInterface, ChartViewInterface> {
5
+ readonly state: ChartViewInterface;
6
+ constructor(props: ChartViewInterface);
7
+ private dataByCategory;
8
+ render(): ReactNode;
9
+ }
@@ -0,0 +1,26 @@
1
+ export interface ChartObjectInterface {
2
+ label: string | number;
3
+ population: number;
4
+ }
5
+ export interface ChartConfigInterface {
6
+ mergeGroupSize?: number;
7
+ mergeDomainMaxValue?: number;
8
+ mostPopulatedGroups?: number;
9
+ mergeName?: string;
10
+ domainMinValue?: number;
11
+ histogramBinIncrement?: number;
12
+ tickIncrement?: {
13
+ origin: number;
14
+ increment: number;
15
+ };
16
+ }
17
+ export interface ChartViewInterface {
18
+ data: ChartObjectInterface[];
19
+ subData?: ChartObjectInterface[];
20
+ config?: ChartConfigInterface;
21
+ }
22
+ export declare enum ChartType {
23
+ pie = "pie",
24
+ histogram = "histogram",
25
+ barplot = "barplot"
26
+ }
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { ReactNode } from "react";
3
+ import { ChartViewInterface } from "./ChartViewInterface";
4
+ export declare class HistogramChartView extends React.Component<ChartViewInterface, ChartViewInterface> {
5
+ readonly state: ChartViewInterface;
6
+ constructor(props: ChartViewInterface);
7
+ private data;
8
+ private xDomain;
9
+ private tickValues;
10
+ render(): ReactNode;
11
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { ReactNode } from "react";
3
+ import { ChartViewInterface } from "./ChartViewInterface";
4
+ export declare class PieChartView extends React.Component<ChartViewInterface, ChartViewInterface> {
5
+ readonly state: ChartViewInterface;
6
+ constructor(props: ChartViewInterface);
7
+ private dataByCategory;
8
+ render(): ReactNode;
9
+ }
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { RcsbChartInterface } from "../../RcsbSeacrh/FacetTools";
3
+ export interface RcsbChartLayoutInterface {
4
+ layout: [string, string?][];
5
+ charts: RcsbChartInterface[];
6
+ subCharts?: RcsbChartInterface[];
7
+ }
8
+ export declare class RcsbChartLayout extends React.Component<RcsbChartLayoutInterface, RcsbChartLayoutInterface> {
9
+ readonly state: RcsbChartLayoutInterface;
10
+ constructor(props: RcsbChartLayoutInterface);
11
+ render(): JSX.Element;
12
+ private renderRow;
13
+ }
@@ -1,6 +1,6 @@
1
1
  import { CoreCollectorInterface } from "../CoreCollectorInterface";
2
2
  import { RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro";
3
- import { AnnotationFeatures, Feature, QueryAnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
3
+ import { AnnotationFeatures, Feature, QueryAnnotationsArgs, QueryGroup_AnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
4
4
  import { AnnotationTrack, FeaturePositionGaps } from "./AnnotationTrack";
5
5
  import { ExternalTrackBuilderInterface } from "../FeatureTools/ExternalTrackBuilderInterface";
6
6
  export declare type IncreaseAnnotationValueType = (feature: {
@@ -24,9 +24,11 @@ export interface CollectAnnotationsInterface extends QueryAnnotationsArgs, Commo
24
24
  titleSuffix?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
25
25
  trackTitle?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
26
26
  }
27
- export declare type AnnotationCollectConfig = Partial<CollectAnnotationsInterface>;
27
+ export interface CollectGroupAnnotationsInterface extends QueryGroup_AnnotationsArgs, CommonAnnotationInterface {
28
+ }
29
+ export declare type AnnotationCollectConfig = Partial<CollectAnnotationsInterface & CollectGroupAnnotationsInterface>;
28
30
  export interface AnnotationCollectorInterface extends CoreCollectorInterface {
29
- collect(requestConfig: CollectAnnotationsInterface): Promise<Array<RcsbFvRowConfigInterface>>;
31
+ collect(requestConfig: CollectAnnotationsInterface | CollectGroupAnnotationsInterface): Promise<Array<RcsbFvRowConfigInterface>>;
30
32
  getAnnotationConfigData(): Promise<Array<RcsbFvRowConfigInterface>>;
31
33
  getAnnotationFeatures(): Promise<Array<AnnotationFeatures>>;
32
34
  getFeatures(): Promise<Array<Feature>>;
@@ -7,12 +7,12 @@ export interface ExternalTrackBuilderInterface {
7
7
  annotations?: Array<AnnotationFeatures>;
8
8
  alignments?: AlignmentResponse;
9
9
  rcsbContext?: Partial<PolymerEntityInstanceInterface>;
10
- }): void;
11
- filterAlignments?(alignments: AlignmentResponse): AlignmentResponse;
12
- filterFeatures?(annotations: Array<AnnotationFeatures>): Array<AnnotationFeatures>;
10
+ }): Promise<void>;
11
+ filterAlignments?(alignments: AlignmentResponse): Promise<AlignmentResponse>;
12
+ filterFeatures?(annotations: Array<AnnotationFeatures>): Promise<Array<AnnotationFeatures>>;
13
13
  addTo?(tracks: {
14
14
  alignmentTracks?: SequenceCollectorDataInterface;
15
15
  annotationTracks?: Array<RcsbFvRowConfigInterface>;
16
16
  rcsbContext?: Partial<PolymerEntityInstanceInterface>;
17
- }): void;
17
+ }): Promise<void>;
18
18
  }
@@ -0,0 +1,9 @@
1
+ import { QueryPolymer_Entity_GroupArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
2
+ export interface GroupPropertyInterface {
3
+ groupName: string;
4
+ groupDescription: string;
5
+ }
6
+ export declare class GroupPropertyCollector {
7
+ private readonly rcsbFvQuery;
8
+ collect(requestConfig: QueryPolymer_Entity_GroupArgs): Promise<GroupPropertyInterface>;
9
+ }
@@ -21,7 +21,7 @@ interface BuildSequenceDataInterface extends TranslateContextInterface {
21
21
  }
22
22
  export declare class SequenceCollectorHelper {
23
23
  private entityInstanceTranslator;
24
- buildAlignments(alignmentData: BuildAlignementsInterface, dynamicDisplayFlag: boolean, tagObservedRegions: (region: AlignedRegion, commonContext: TranslateContextInterface) => Array<AlignedObservedRegion>): {
24
+ buildAlignments(alignmentData: BuildAlignementsInterface, dynamicDisplayFlag: boolean, tagObservedRegions: (region: AlignedRegion, commonContext: TranslateContextInterface, noQuerySequenceFlag?: boolean) => Array<AlignedObservedRegion>): {
25
25
  alignments: Array<RcsbFvRowConfigInterface>;
26
26
  targets: Array<string>;
27
27
  };
@@ -1,6 +1,7 @@
1
1
  import { CoreCollectorInterface } from "../CoreCollectorInterface";
2
2
  import { SequenceCollectorDataInterface } from "./SequenceCollector";
3
3
  import { AlignmentResponse, QueryAlignmentArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
4
+ import { RcsbQueryGroupAlignmentArguments } from "../../RcsbGraphQL/RcsbQueryAlignment";
4
5
  interface CommonAlignmentInterface {
5
6
  filterByTargetContains?: string;
6
7
  dynamicDisplay?: boolean;
@@ -10,11 +11,14 @@ interface CommonAlignmentInterface {
10
11
  }
11
12
  export interface CollectAlignmentInterface extends QueryAlignmentArgs, CommonAlignmentInterface {
12
13
  }
13
- export declare type AlignmentCollectConfig = Partial<CollectAlignmentInterface>;
14
+ export interface CollectGroupAlignmentInterface extends RcsbQueryGroupAlignmentArguments, CommonAlignmentInterface {
15
+ sequencePrefix: string;
16
+ }
17
+ export declare type AlignmentCollectConfig = Partial<CollectAlignmentInterface & CollectGroupAlignmentInterface>;
14
18
  export interface SequenceCollectorInterface extends CoreCollectorInterface {
15
19
  getTargets(): Promise<Array<string>>;
16
20
  getAlignmentResponse(): Promise<AlignmentResponse>;
17
21
  getSequenceLength(): number;
18
- collect(requestConfig: CollectAlignmentInterface, filter?: Array<string>, entityInstanceMapCollector?: (instanceIds: Array<string>) => Promise<void>): Promise<SequenceCollectorDataInterface>;
22
+ collect(requestConfig: CollectAlignmentInterface | CollectGroupAlignmentInterface, filter?: Array<string>, entityInstanceMapCollector?: (instanceIds: Array<string>) => Promise<void>): Promise<SequenceCollectorDataInterface>;
19
23
  }
20
24
  export {};
@@ -0,0 +1,6 @@
1
+ import { QueryPolymer_Entity_GroupArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
2
+ import { PolymerEntityInstanceInterface } from "./PolymerEntityInstancesCollector";
3
+ export declare class GroupMemberCollector {
4
+ private readonly rcsbFvQuery;
5
+ collect(requestConfig: QueryPolymer_Entity_GroupArgs): Promise<Array<PolymerEntityInstanceInterface>>;
6
+ }
@@ -2,11 +2,19 @@ import { RcsbFv, RcsbFvBoardConfigInterface } from "@rcsb/rcsb-saguaro";
2
2
  import { PolymerEntityInstanceTranslate } from "../../RcsbUtils/PolymerEntityInstanceTranslate";
3
3
  import { EntryAssemblyTranslate } from "../../RcsbUtils/EntryAssemblyTranslate";
4
4
  import { PolymerEntityChromosomeTranslate } from "../../RcsbUtils/PolymerEntityChromosomeTranslate";
5
+ import { GroupPropertiesProvider } from "../../RcsbUtils/GroupPropertiesProvider";
6
+ import { QueryResult } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchResultInterface";
7
+ import { SearchQueryType } from "../../RcsbSeacrh/SearchRequestProperty";
8
+ import { GroupPropertyInterface } from "../../RcsbCollectTools/PropertyCollector/GroupPropertyCollector";
9
+ import { QueryPolymer_Entity_GroupArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
10
+ import { FacetType } from "../../RcsbSeacrh/FacetStore/FacetMemberInterface";
11
+ import { ReturnType } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchEnums";
5
12
  declare class RcsbFvContextManager {
6
13
  private rcsbFvManager;
7
14
  private rcsbButtonManager;
8
15
  private polymerEntityToInstanceMap;
9
16
  private entryToAssemblyMap;
17
+ private groupPropertyMap;
10
18
  getFv(elementFvId: string, boardConfig?: Partial<RcsbFvBoardConfigInterface>): RcsbFv;
11
19
  hasFv(elementFvId: string): boolean;
12
20
  private setFv;
@@ -15,9 +23,13 @@ declare class RcsbFvContextManager {
15
23
  removeFv(elementFvId: string): void;
16
24
  private setEntityToInstance;
17
25
  private setEntryToAssembly;
26
+ private setGroupProperties;
18
27
  getEntityToInstance(entryId: string): Promise<PolymerEntityInstanceTranslate>;
19
28
  getEntryToAssembly(entryId: string): Promise<EntryAssemblyTranslate>;
20
29
  getEntityToChromosome(entityIds: Array<string>): Promise<PolymerEntityChromosomeTranslate>;
30
+ getGroupMemberProperties(groupQuery: QueryPolymer_Entity_GroupArgs): Promise<GroupPropertiesProvider>;
31
+ getSearchQueryResult(query: SearchQueryType, facets: FacetType[], returnType: ReturnType): Promise<QueryResult | null>;
32
+ getGroupProperties(groupQuery: QueryPolymer_Entity_GroupArgs): Promise<GroupPropertyInterface>;
21
33
  }
22
34
  export declare const rcsbFvCtxManager: RcsbFvContextManager;
23
35
  export {};
@@ -3,6 +3,8 @@ import { RcsbFv } from "@rcsb/rcsb-saguaro";
3
3
  import { RcsbFvModuleBuildInterface, RcsbFvModuleInterface, RcsbFvModulePublicInterface } from "../RcsbFvModule/RcsbFvModuleInterface";
4
4
  import { SelectButtonConfigInterface } from "../WebTools/WebToolsManager";
5
5
  import { GroupedOptionsInterface, SelectOptionInterface } from "../WebTools/SelectButton";
6
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
7
+ import { GroupReference } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
6
8
  export interface CreateFvInterface {
7
9
  elementId: string;
8
10
  fvModuleI: new (elementId: string, rcsbFv: RcsbFv) => RcsbFvModuleInterface;
@@ -32,4 +34,5 @@ export declare class RcsbFvCoreBuilder {
32
34
  static clearAdditionalSelectButton(elementFvId: string, selectButtonId: string): void;
33
35
  static addSelectButton(elementFvId: string, selectButtonId: string, options: Array<SelectOptionInterface>, config?: SelectButtonConfigInterface): void;
34
36
  static showMessage(elementId: string, message: string): void;
37
+ static buildGroupTabs(elementId: string, group: GroupReference, groupId: string, query?: SearchQuery): void;
35
38
  }
@@ -0,0 +1,6 @@
1
+ import { RcsbFvAdditionalConfig, RcsbFvModulePublicInterface } from "../RcsbFvModule/RcsbFvModuleInterface";
2
+ import { GroupReference, SequenceReference } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
3
+ export declare class RcsbFvGroupBuilder {
4
+ static buildGroupAnnotationFv(elementId: string, group: GroupReference, groupId: string, to: SequenceReference, from?: SequenceReference, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
5
+ static buildGroupAlignmentFv(elementId: string, group: GroupReference, groupId: string, to: SequenceReference, from?: SequenceReference, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
6
+ }
@@ -1,8 +1,9 @@
1
- import { RcsbFvAdditionalConfig } from "./RcsbFvModule/RcsbFvModuleInterface";
1
+ import { RcsbFvAdditionalConfig, RcsbFvModulePublicInterface } from "./RcsbFvModule/RcsbFvModuleInterface";
2
2
  import { PairwiseAlignmentInterface } from "./PairwiseAlignmentTools/PairwiseAlignmentBuilder";
3
3
  import { InstanceSequenceConfig, InstanceSequenceOnchangeInterface } from "./RcsbFvBuilder/RcsbFvInstanceBuilder";
4
4
  import { PfvBuilderInterface } from "./RcsbFvBuilder/RcsbFvProteinSequenceBuilder";
5
- import { RcsbFvModulePublicInterface } from "./RcsbFvModule/RcsbFvModuleInterface";
5
+ import { GroupReference } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
6
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
6
7
  export declare function unmount(elementId: string): void;
7
8
  export declare function buildMultipleAlignmentSequenceFv(elementFvId: string, elementSelectId: string, upAcc: string): Promise<RcsbFvModulePublicInterface>;
8
9
  export declare function buildEntitySummaryFv(elementFvId: string, elementSelectId: string, entityId: string): Promise<RcsbFvModulePublicInterface>;
@@ -21,3 +22,4 @@ export declare function buildFullChromosome(elementFvId: string, chrId: string):
21
22
  export declare function buildEntryChromosome(elementFvId: string, entitySelectId: string, chromosomeSelectId: string, entryId: string): Promise<RcsbFvModulePublicInterface>;
22
23
  export declare function buildEntityChromosome(elementFvId: string, elementSelectId: string, entityId: string): Promise<RcsbFvModulePublicInterface>;
23
24
  export declare function buildChromosome(elementFvId: string, entityId: string, chrId: string, elementSelectId?: string): Promise<RcsbFvModulePublicInterface>;
25
+ export declare function buildGroupFv(elementId: string, group: GroupReference, groupId: string, query?: SearchQuery, additionalConfig?: RcsbFvAdditionalConfig): void;
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
3
+ import { GroupGranularityType } from "../../RcsbSeacrh/QueryStore/SearchGroupQuery";
4
+ export declare class GroupSequenceTabs extends React.Component<{
5
+ groupGranularity: GroupGranularityType;
6
+ groupId: string;
7
+ searchQuery?: SearchQuery;
8
+ }, {}> {
9
+ private readonly rendered;
10
+ private filterInstances;
11
+ private filterEntities;
12
+ constructor(props: {
13
+ groupGranularity: GroupGranularityType;
14
+ groupId: string;
15
+ searchQuery: SearchQuery;
16
+ });
17
+ render(): JSX.Element;
18
+ private onMount;
19
+ private onSelect;
20
+ }
@@ -0,0 +1,15 @@
1
+ import { AlignmentLogo } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
2
+ export declare class Logo<T extends string> {
3
+ private readonly symbols;
4
+ private n;
5
+ constructor(logo: AlignmentLogo[]);
6
+ private aaTypes;
7
+ get(aa: T): number;
8
+ forEach(callback: (aa: T, n: number) => void): void;
9
+ mode(): T;
10
+ frequency(): {
11
+ symbol: T;
12
+ value: number;
13
+ }[];
14
+ entropy(): number;
15
+ }
@@ -0,0 +1,12 @@
1
+ import { RcsbFvAbstractModule } from "./RcsbFvAbstractModule";
2
+ import { RcsbFvAdditionalConfig, RcsbFvModuleBuildInterface } from "./RcsbFvModuleInterface";
3
+ import { RcsbFv } from "@rcsb/rcsb-saguaro";
4
+ import { AnnotationCollectorInterface } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface";
5
+ import { SequenceCollectorInterface } from "../../RcsbCollectTools/SequenceCollector/SequenceCollectorInterface";
6
+ export declare class RcsbFvGroupAlignment extends RcsbFvAbstractModule {
7
+ protected readonly annotationCollector: AnnotationCollectorInterface;
8
+ protected readonly sequenceCollector: SequenceCollectorInterface;
9
+ constructor(elementId: string, rcsbFv: RcsbFv, additionalConfig?: RcsbFvAdditionalConfig);
10
+ protected protectedBuild(buildConfig: RcsbFvModuleBuildInterface): Promise<void>;
11
+ protected concatAlignmentAndAnnotationTracks(buildConfig: RcsbFvModuleBuildInterface): void;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { RcsbFvAbstractModule } from "./RcsbFvAbstractModule";
2
+ import { RcsbFvAdditionalConfig, RcsbFvModuleBuildInterface } from "./RcsbFvModuleInterface";
3
+ import { RcsbFv } from "@rcsb/rcsb-saguaro";
4
+ import { AnnotationCollectorInterface } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface";
5
+ import { SequenceCollectorInterface } from "../../RcsbCollectTools/SequenceCollector/SequenceCollectorInterface";
6
+ export declare class RcsbFvGroupAnnotation extends RcsbFvAbstractModule {
7
+ protected readonly annotationCollector: AnnotationCollectorInterface;
8
+ protected readonly sequenceCollector: SequenceCollectorInterface;
9
+ constructor(elementId: string, rcsbFv: RcsbFv, additionalConfig?: RcsbFvAdditionalConfig);
10
+ protectedBuild(buildConfig: RcsbFvModuleBuildInterface): Promise<void>;
11
+ protected concatAlignmentAndAnnotationTracks(buildConfig: RcsbFvModuleBuildInterface): void;
12
+ }
@@ -1,4 +1,4 @@
1
- import { Feature, FilterInput, SequenceReference, Source } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
1
+ import { Feature, FilterInput, GroupReference, SequenceReference, Source } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
2
2
  import { PolymerEntityInstanceTranslate } from "../../RcsbUtils/PolymerEntityInstanceTranslate";
3
3
  import { RcsbFv, RcsbFvBoardConfigInterface, RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro";
4
4
  import { PairwiseAlignmentInterface } from "../PairwiseAlignmentTools/PairwiseAlignmentBuilder";
@@ -16,6 +16,10 @@ export interface RcsbFvAdditionalConfig {
16
16
  annotationProcessing?: AnnotationProcessingInterface;
17
17
  sequenceCollector?: SequenceCollectorInterface;
18
18
  externalTrackBuilder?: ExternalTrackBuilderInterface;
19
+ page?: {
20
+ first: number;
21
+ after: string;
22
+ };
19
23
  rcsbContext?: Partial<{
20
24
  entryId: string;
21
25
  entityId: string;
@@ -28,6 +32,8 @@ export interface RcsbFvAdditionalConfig {
28
32
  }>;
29
33
  }
30
34
  export interface RcsbFvModuleBuildInterface {
35
+ group?: GroupReference;
36
+ groupId?: string;
31
37
  queryId?: string;
32
38
  from?: SequenceReference;
33
39
  to?: SequenceReference;
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ export interface RcsbTabsInterface<T extends string> {
3
+ tabList: Array<{
4
+ key: T;
5
+ title: string;
6
+ }>;
7
+ default: T;
8
+ id: string;
9
+ onSelect(t: T): void;
10
+ onMount(t: T): void;
11
+ }
12
+ export declare class RcsbTabs<T extends string> extends React.Component<RcsbTabsInterface<T>, {}> {
13
+ constructor(props: RcsbTabsInterface<T>);
14
+ render(): JSX.Element;
15
+ componentDidMount(): void;
16
+ }
@@ -13,6 +13,7 @@ export interface SelectOptionInterface {
13
13
  onChange: () => void;
14
14
  }
15
15
  interface SelectButtonInterface {
16
+ elementId: string;
16
17
  options?: Array<SelectOptionInterface> | Array<GroupedOptionsInterface>;
17
18
  additionalOptions?: Array<SelectOptionInterface>;
18
19
  addTitle: boolean;
@@ -20,6 +21,7 @@ interface SelectButtonInterface {
20
21
  width?: number;
21
22
  dropdownTitle?: string;
22
23
  optionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
24
+ isAdditionalButton?: boolean;
23
25
  }
24
26
  export interface OptionPropsInterface extends SelectOptionInterface {
25
27
  value: number;
@@ -28,6 +30,7 @@ interface SelectButtonState {
28
30
  selectedOption: OptionPropsInterface;
29
31
  }
30
32
  export declare class SelectButton extends React.Component<SelectButtonInterface, SelectButtonState> {
33
+ static readonly BUTTON_CONTAINER_DIV_SUFFIX = "_buttonContainerDiv";
31
34
  private defaultValue;
32
35
  readonly state: SelectButtonState;
33
36
  constructor(props: SelectButtonInterface);
@@ -38,6 +41,7 @@ export declare class SelectButton extends React.Component<SelectButtonInterface,
38
41
  private selectRender;
39
42
  private titleRender;
40
43
  private selectButtonRender;
44
+ private innerSelectButtonRender;
41
45
  private configStyle;
42
46
  private getSelectOpt;
43
47
  }
@@ -1,12 +1,15 @@
1
1
  /// <reference types="react" />
2
2
  import { GroupedOptionsInterface, OptionPropsInterface, SelectOptionInterface } from "./SelectButton";
3
3
  import { OptionProps } from "react-select/src/components/Option";
4
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
5
+ import { GroupGranularityType } from "../../RcsbSeacrh/QueryStore/SearchGroupQuery";
4
6
  export interface SelectButtonConfigInterface {
5
7
  addTitle?: boolean;
6
8
  defaultValue?: string | undefined | null;
7
9
  width?: number;
8
10
  dropdownTitle?: string;
9
11
  optionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
12
+ isAdditionalButton?: boolean;
10
13
  }
11
14
  export declare class WebToolsManager {
12
15
  private static suffix;
@@ -19,6 +22,7 @@ export declare class WebToolsManager {
19
22
  static clearSelectButton(elementId: string): void;
20
23
  static clearAdditionalSelectButton(elementId: string): void;
21
24
  static innerClearSelectButton(elementId: string, suffix: string): void;
25
+ static buildGroupTabs(elementId: string, groupGranularity: GroupGranularityType, groupId: string, query?: SearchQuery): void;
22
26
  static buildLoaderSpinner(elementId: string): void;
23
27
  static unmountLoaderSpinner(elementId: string): void;
24
28
  private static hideElement;
@@ -1,14 +1,20 @@
1
- import { AlignmentResponse, AnnotationFeatures, QueryAlignmentArgs, QueryAnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
2
- import { CoreEntry, CorePolymerEntity, QueryEntriesArgs, QueryEntryArgs, QueryPolymer_EntitiesArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
1
+ import { RcsbQueryGroupAlignmentArguments } from "./RcsbQueryAlignment";
2
+ import { AlignmentResponse, AnnotationFeatures, QueryAlignmentArgs, QueryAnnotationsArgs, QueryGroup_AnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
3
+ import { CoreEntry, GroupPolymerEntity, CorePolymerEntity, QueryEntriesArgs, QueryEntryArgs, QueryPolymer_EntitiesArgs, QueryPolymer_Entity_GroupArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
3
4
  export declare class RcsbClient {
4
5
  private rcsbQueryAnnotations;
6
+ private rcsbQueryGroupAnnotations;
5
7
  private rcsbQueryAlignment;
8
+ private rcsbQueryGroupAlignment;
6
9
  private rcsbQueryEntityInstances;
7
10
  private rcsbQueryMutipleEntityInstances;
8
11
  private rcsbQueryEntryProperties;
9
12
  requestRcsbPdbAnnotations(requestConfig: QueryAnnotationsArgs): Promise<Array<AnnotationFeatures>>;
13
+ requestRcsbPdbGroupAnnotations(requestConfig: QueryGroup_AnnotationsArgs): Promise<Array<AnnotationFeatures>>;
10
14
  requestAlignment(requestConfig: QueryAlignmentArgs): Promise<AlignmentResponse>;
15
+ requestGroupAlignment(requestConfig: RcsbQueryGroupAlignmentArguments): Promise<AlignmentResponse>;
11
16
  requestEntityInstances(requestConfig: QueryEntryArgs): Promise<CoreEntry>;
12
17
  requestMultipleEntityInstances(requestConfig: QueryPolymer_EntitiesArgs): Promise<Array<CorePolymerEntity>>;
18
+ requestGroupInfo(requestConfig: QueryPolymer_Entity_GroupArgs): Promise<GroupPolymerEntity>;
13
19
  requestMultipleEntriesProperties(requestConfig: QueryEntriesArgs): Promise<Array<CoreEntry>>;
14
20
  }
@@ -1,7 +1,17 @@
1
- import { AlignmentResponse, QueryAlignmentArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
1
+ import { AlignmentResponse, QueryAlignmentArgs, QueryGroup_AlignmentArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
2
2
  import { RcsbCoreQueryInterface } from "./RcsbCoreQueryInterface";
3
3
  import { GraphQLRequest } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/GraphQLRequest";
4
4
  export declare class RcsbQueryAlignment implements RcsbCoreQueryInterface<QueryAlignmentArgs, AlignmentResponse> {
5
5
  readonly client: GraphQLRequest;
6
6
  request(requestConfig: QueryAlignmentArgs): Promise<AlignmentResponse>;
7
7
  }
8
+ export declare type RcsbQueryGroupAlignmentArguments = QueryGroup_AlignmentArgs & {
9
+ page: {
10
+ first: number;
11
+ after: string;
12
+ };
13
+ };
14
+ export declare class RcsbQueryGroupAlignment implements RcsbCoreQueryInterface<RcsbQueryGroupAlignmentArguments, AlignmentResponse> {
15
+ readonly client: GraphQLRequest;
16
+ request(requestConfig: RcsbQueryGroupAlignmentArguments): Promise<AlignmentResponse>;
17
+ }
@@ -1,7 +1,11 @@
1
- import { AnnotationFeatures, QueryAnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
1
+ import { AnnotationFeatures, QueryAnnotationsArgs, QueryGroup_AnnotationsArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Borrego/GqlTypes";
2
2
  import { RcsbCoreQueryInterface } from "./RcsbCoreQueryInterface";
3
3
  import { GraphQLRequest } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/GraphQLRequest";
4
4
  export declare class RcsbQueryAnnotations implements RcsbCoreQueryInterface<QueryAnnotationsArgs, Array<AnnotationFeatures>> {
5
5
  readonly client: GraphQLRequest;
6
6
  request(requestConfig: QueryAnnotationsArgs): Promise<Array<AnnotationFeatures>>;
7
7
  }
8
+ export declare class RcsbQueryGroupAnnotations implements RcsbCoreQueryInterface<QueryGroup_AnnotationsArgs, Array<AnnotationFeatures>> {
9
+ readonly client: GraphQLRequest;
10
+ request(requestConfig: QueryGroup_AnnotationsArgs): Promise<Array<AnnotationFeatures>>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { GroupPolymerEntity, QueryPolymer_Entity_GroupArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
2
+ import { RcsbCoreQueryInterface } from "./RcsbCoreQueryInterface";
3
+ import { GraphQLRequest } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/GraphQLRequest";
4
+ export declare class RcsbQueryGroup implements RcsbCoreQueryInterface<QueryPolymer_Entity_GroupArgs, GroupPolymerEntity> {
5
+ readonly client: GraphQLRequest;
6
+ request(requestConfig: QueryPolymer_Entity_GroupArgs): Promise<GroupPolymerEntity>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
2
+ import { RcsbFvAdditionalConfig } from "../RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
3
+ import { SearchQueryType } from "../RcsbSeacrh/SearchRequestProperty";
4
+ import { GroupGranularityType } from "../RcsbSeacrh/QueryStore/SearchGroupQuery";
5
+ export declare function buildSearchRequest(elementId: string, searchQuery: SearchQueryType): Promise<void>;
6
+ export declare function buildGroup(elementId: string, groupGranularity: GroupGranularityType, groupId: string, query?: SearchQuery): Promise<void>;
7
+ export declare function buildGroupMembers(elementId: string, groupGranularity: GroupGranularityType, groupId: string, nMembers: number, additionalConfig?: RcsbFvAdditionalConfig, query?: SearchQuery): void;
@@ -0,0 +1,9 @@
1
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
2
+ import { FacetStoreInterface } from "../../RcsbSeacrh/FacetStore/FacetStoreInterface";
3
+ import { GroupGranularityType } from "../../RcsbSeacrh/QueryStore/SearchGroupQuery";
4
+ import { SearchQueryType } from "../../RcsbSeacrh/SearchRequestProperty";
5
+ export declare class RcsbGroupDisplay {
6
+ static displayRcsbSearchStats(elementId: string, facetStore: FacetStoreInterface, searchQuery: SearchQueryType): Promise<void>;
7
+ static displaySearchAttributes(elementId: string, groupGranularity: GroupGranularityType, searchQuery?: SearchQuery, groupId?: string): Promise<void>;
8
+ static displayGroupMembers(elementId: string, groupGranularity: GroupGranularityType, groupId: string, nMembers: number, query?: SearchQuery): void;
9
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { GroupPropertyInterface } from "../../RcsbCollectTools/PropertyCollector/GroupPropertyCollector";
3
+ export declare class RcsbGroupHeader extends React.Component<{
4
+ group: GroupPropertyInterface;
5
+ }, {
6
+ group: GroupPropertyInterface;
7
+ }> {
8
+ render(): JSX.Element;
9
+ }
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ import { SearchQuery } from "@rcsb/rcsb-api-tools/build/RcsbSearch/Types/SearchQueryInterface";
3
+ import { GroupGranularityType } from "../../../RcsbSeacrh/QueryStore/SearchGroupQuery";
4
+ import { PolymerEntityInstanceInterface } from "../../../RcsbCollectTools/Translators/PolymerEntityInstancesCollector";
5
+ export declare class GroupMembersGrid extends React.Component<{
6
+ groupGranularity: GroupGranularityType;
7
+ groupId: string;
8
+ searchQuery?: SearchQuery;
9
+ start: number;
10
+ rows: number;
11
+ display: boolean;
12
+ }, {
13
+ entityList: Array<PolymerEntityInstanceInterface>;
14
+ }> {
15
+ readonly state: {
16
+ entityList: Array<PolymerEntityInstanceInterface>;
17
+ };
18
+ render(): JSX.Element;
19
+ componentDidMount(): void;
20
+ componentDidUpdate(prevProps: Readonly<{
21
+ groupId: string;
22
+ searchQuery?: SearchQuery;
23
+ start: number;
24
+ rows: number;
25
+ display: boolean;
26
+ }>, prevState: Readonly<{
27
+ entityList: Array<PolymerEntityInstanceInterface>;
28
+ }>, snapshot?: any): void;
29
+ private getMembersImgUrl;
30
+ }