@rcsb/rcsb-saguaro-app 3.4.0 → 4.0.0-interfaces.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [4.0.0-interfaces] - 2021-12-15
6
+ ### Annotation collector improvements
7
+ - Added interface `CollectAnnotationsInterface` for generating new annotations internally (not exposed)
8
+ - `annotationGenerator?(annotations: Array<AnnotationFeatures>)` generates new annotations from the collected ones
9
+ - `annotationFilter?(annotations: Array<AnnotationFeatures>)` filter the collected annotations
10
+ - Both methods are called before annotations processing and thus, they should be configured in `RcsbAnnotationConfig.ac.json` or equivalent config file
11
+ - Checking content before adding generated features
12
+
13
+ ## [4.0.0-master] - 2021-12-07
14
+ ### Breaking change
15
+ - `ExternalTrackBuilderInterface` methods return a promise and are executed asynchronous
16
+
5
17
  ## [3.4.0] - 2021-12-07
6
18
  ### UI improvements
7
19
  - Exposed methods for creating dropdown menus. Class `RcsbFvUI` static methods
@@ -14,6 +26,10 @@
14
26
  - Removed interface `CollectAnnotationsInterface` attribute `addTargetInTitle`
15
27
  - Added `titleSuffix` and `trackTitle` attributes to `CollectAnnotationsInterface`
16
28
  - These new attributes are defined as async functions (ann: AnnotationFeatures, d: Feature) => Promise<string|undefined> to provide or modify track titles based on the features content
29
+ - New `RcsbFvInterface` module
30
+ - Interface `InstanceSequenceConfig` provides a new attribute `module` to choose between the `RcsbFvInstance` or RcsbFvInterface` modules
31
+ - New classes to collect and translate instance/interface ids relationships from data api
32
+ - `RcsbQueryInterfaceInstances`, `InterfaceInstanceCollector` and `InterfaceInstanceTranslate`
17
33
 
18
34
  ## [3.2.1] - 2021-11-10
19
35
  ### Minor configuration
@@ -21,7 +21,7 @@ export declare class RcsbAnnotationConfig {
21
21
  uniprotOrder(): Array<string>;
22
22
  instanceOrder(): Array<string>;
23
23
  entityOrder(): Array<string>;
24
- buildAndAddType(d: Feature, mainTitle?: string, titleSuffix?: string): string;
24
+ buildAndAddType(d: Feature, mainTitle?: string, titleSuffix?: string, typeSuffix?: string): string;
25
25
  private addNewType;
26
26
  sortAndIncludeNewTypes(): void;
27
27
  private checkAndIncludeNewType;
@@ -3,6 +3,7 @@ import { RcsbFvRowConfigInterface } from "@rcsb/rcsb-saguaro";
3
3
  import { AnnotationFeatures, Feature, QueryAnnotationsArgs } 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
+ import { PolymerEntityInstanceInterface } from "../Translators/PolymerEntityInstancesCollector";
6
7
  export declare type IncreaseAnnotationValueType = (feature: {
7
8
  type: string;
8
9
  targetId: string;
@@ -15,14 +16,16 @@ export interface AnnotationProcessingInterface {
15
16
  computeAnnotationValue?: (annotationTracks: Map<string, AnnotationTrack>) => void;
16
17
  addTrackElementCallback?: IncreaseAnnotationValueType;
17
18
  }
18
- interface CommonAnnotationInterface {
19
+ export interface CollectAnnotationsInterface extends QueryAnnotationsArgs {
20
+ collectSwissModel?: boolean;
21
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
19
22
  annotationProcessing?: AnnotationProcessingInterface;
20
23
  externalAnnotationTrackBuilder?: ExternalTrackBuilderInterface;
21
- }
22
- export interface CollectAnnotationsInterface extends QueryAnnotationsArgs, CommonAnnotationInterface {
23
- collectSwissModel?: boolean;
24
+ annotationGenerator?(annotations: Array<AnnotationFeatures>): Promise<Array<AnnotationFeatures>>;
25
+ annotationFilter?(annotations: Array<AnnotationFeatures>): Promise<Array<AnnotationFeatures>>;
24
26
  titleSuffix?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
25
27
  trackTitle?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
28
+ typeSuffix?(ann: AnnotationFeatures, d: Feature): Promise<string | undefined>;
26
29
  }
27
30
  export declare type AnnotationCollectConfig = Partial<CollectAnnotationsInterface>;
28
31
  export interface AnnotationCollectorInterface extends CoreCollectorInterface {
@@ -31,4 +34,3 @@ export interface AnnotationCollectorInterface extends CoreCollectorInterface {
31
34
  getAnnotationFeatures(): Promise<Array<AnnotationFeatures>>;
32
35
  getFeatures(): Promise<Array<Feature>>;
33
36
  }
34
- export {};
@@ -7,12 +7,18 @@ 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?(data: {
12
+ alignments: AlignmentResponse;
13
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
14
+ }): Promise<AlignmentResponse>;
15
+ filterFeatures?(data: {
16
+ annotations: Array<AnnotationFeatures>;
17
+ rcsbContext?: Partial<PolymerEntityInstanceInterface>;
18
+ }): Promise<Array<AnnotationFeatures>>;
13
19
  addTo?(tracks: {
14
20
  alignmentTracks?: SequenceCollectorDataInterface;
15
21
  annotationTracks?: Array<RcsbFvRowConfigInterface>;
16
22
  rcsbContext?: Partial<PolymerEntityInstanceInterface>;
17
- }): void;
23
+ }): Promise<void>;
18
24
  }
@@ -0,0 +1,12 @@
1
+ import { QueryInterfacesArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
2
+ export interface InterfaceInstanceInterface {
3
+ rcsbId: string;
4
+ assemblyId: string;
5
+ interfaceId: string;
6
+ asymIds: [string, string];
7
+ operatorIds: [Array<Array<string>>, Array<Array<string>>];
8
+ }
9
+ export declare class InterfaceInstanceCollector {
10
+ private readonly rcsbFvQuery;
11
+ collect(requestConfig: QueryInterfacesArgs): Promise<Array<InterfaceInstanceInterface>>;
12
+ }
@@ -2,11 +2,13 @@ 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 { InterfaceInstanceTranslate } from "../../RcsbUtils/InterfaceInstanceTranslate";
5
6
  declare class RcsbFvContextManager {
6
7
  private rcsbFvManager;
7
8
  private rcsbButtonManager;
8
9
  private polymerEntityToInstanceMap;
9
10
  private entryToAssemblyMap;
11
+ private interfaceToInstanceMap;
10
12
  getFv(elementFvId: string, boardConfig?: Partial<RcsbFvBoardConfigInterface>): RcsbFv;
11
13
  hasFv(elementFvId: string): boolean;
12
14
  private setFv;
@@ -18,6 +20,7 @@ declare class RcsbFvContextManager {
18
20
  getEntityToInstance(entryId: string): Promise<PolymerEntityInstanceTranslate>;
19
21
  getEntryToAssembly(entryId: string): Promise<EntryAssemblyTranslate>;
20
22
  getEntityToChromosome(entityIds: Array<string>): Promise<PolymerEntityChromosomeTranslate>;
23
+ getInterfaceToInstance(interfaceId: string): Promise<InterfaceInstanceTranslate>;
21
24
  }
22
25
  export declare const rcsbFvCtxManager: RcsbFvContextManager;
23
26
  export {};
@@ -9,17 +9,21 @@ export interface InstanceSequenceOnchangeInterface {
9
9
  authId: string;
10
10
  asymId: string;
11
11
  }
12
+ declare type instanceModule = "interface" | "instance";
12
13
  export interface InstanceSequenceConfig {
13
14
  dropdownTitle?: string;
14
15
  defaultValue?: string | undefined | null;
16
+ beforeRenderCallback?: (x: InstanceSequenceOnchangeInterface) => void;
15
17
  onChangeCallback?: (x: InstanceSequenceOnchangeInterface) => void;
16
18
  filterInstances?: Set<string>;
17
19
  displayAuthId?: boolean;
18
20
  selectButtonOptionProps?: (props: OptionProps<OptionPropsInterface>) => JSX.Element;
21
+ module?: instanceModule;
19
22
  }
20
23
  export declare class RcsbFvInstanceBuilder {
21
24
  static buildMultipleInstanceSequenceFv(elementFvId: string, elementEntrySelectId: string, elementInstanceSelectId: string, entryIdList: Array<string>, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
22
25
  static buildInstanceSequenceFv(elementFvId: string, elementSelectId: string, entryId: string, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
23
26
  static buildSelectorInstanceFv(instanceList: Array<PolymerEntityInstanceInterface>, elementFvId: string, elementSelectId: string, entryId: string, config: InstanceSequenceConfig, additionalConfig?: RcsbFvAdditionalConfig): Promise<RcsbFvModulePublicInterface>;
24
- static buildInstanceFv(elementId: string, instanceId: string, additionalConfig?: RcsbFvAdditionalConfig, rcsbContext?: PolymerEntityInstanceInterface): Promise<RcsbFvModulePublicInterface>;
27
+ static buildInstanceFv(elementId: string, instanceId: string, additionalConfig?: RcsbFvAdditionalConfig, rcsbContext?: PolymerEntityInstanceInterface, module?: instanceModule): Promise<RcsbFvModulePublicInterface>;
25
28
  }
29
+ export {};
@@ -0,0 +1,12 @@
1
+ import { RcsbFvAbstractModule } from "./RcsbFvAbstractModule";
2
+ import { RcsbFvModuleBuildInterface } from "./RcsbFvModuleInterface";
3
+ import { AnnotationCollectorInterface } from "../../RcsbCollectTools/AnnotationCollector/AnnotationCollectorInterface";
4
+ export declare class RcsbFvInterface extends RcsbFvAbstractModule {
5
+ protected readonly annotationCollector: AnnotationCollectorInterface;
6
+ private instanceId;
7
+ protected protectedBuild(buildConfig: RcsbFvModuleBuildInterface): Promise<void>;
8
+ protected concatAlignmentAndAnnotationTracks(buildConfig: RcsbFvModuleBuildInterface): void;
9
+ private typeSuffix;
10
+ private titleSuffix;
11
+ private trackTitle;
12
+ }
@@ -1,14 +1,16 @@
1
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";
2
+ import { CoreEntry, CoreInterface, CorePolymerEntity, QueryEntriesArgs, QueryEntryArgs, QueryInterfacesArgs, QueryPolymer_EntitiesArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
3
3
  export declare class RcsbClient {
4
4
  private rcsbQueryAnnotations;
5
5
  private rcsbQueryAlignment;
6
6
  private rcsbQueryEntityInstances;
7
7
  private rcsbQueryMutipleEntityInstances;
8
8
  private rcsbQueryEntryProperties;
9
+ private rcsbQueryInterfaceInstances;
9
10
  requestRcsbPdbAnnotations(requestConfig: QueryAnnotationsArgs): Promise<Array<AnnotationFeatures>>;
10
11
  requestAlignment(requestConfig: QueryAlignmentArgs): Promise<AlignmentResponse>;
11
12
  requestEntityInstances(requestConfig: QueryEntryArgs): Promise<CoreEntry>;
12
13
  requestMultipleEntityInstances(requestConfig: QueryPolymer_EntitiesArgs): Promise<Array<CorePolymerEntity>>;
13
14
  requestMultipleEntriesProperties(requestConfig: QueryEntriesArgs): Promise<Array<CoreEntry>>;
15
+ requestInterfaceInstances(requestConfig: QueryInterfacesArgs): Promise<Array<CoreInterface>>;
14
16
  }
@@ -0,0 +1,7 @@
1
+ import { RcsbCoreQueryInterface } from "./RcsbCoreQueryInterface";
2
+ import { CoreInterface, QueryInterfacesArgs } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/Types/Yosemite/GqlTypes";
3
+ import { GraphQLRequest } from "@rcsb/rcsb-api-tools/build/RcsbGraphQL/GraphQLRequest";
4
+ export declare class RcsbQueryInterfaceInstances implements RcsbCoreQueryInterface<QueryInterfacesArgs, Array<CoreInterface>> {
5
+ readonly client: GraphQLRequest;
6
+ request(requestConfig: QueryInterfacesArgs): Promise<Array<CoreInterface>>;
7
+ }
@@ -0,0 +1,9 @@
1
+ import { InterfaceInstanceInterface } from "../RcsbCollectTools/Translators/InterfaceInstanceCollector";
2
+ export declare class InterfaceInstanceTranslate {
3
+ private readonly rawData;
4
+ private readonly instances;
5
+ private readonly operatorsIds;
6
+ constructor(data: Array<InterfaceInstanceInterface>);
7
+ getInstances(rcsbId: string): [string, string];
8
+ getOperatorIds(rcsbId: string): [Array<Array<string>>, Array<Array<string>>];
9
+ }
@@ -1,8 +1,12 @@
1
1
  import { GroupedOptionsInterface, SelectOptionInterface } from "./RcsbFvWeb/WebTools/SelectButton";
2
2
  export { buildEntryChromosome, buildFullChromosome, buildEntityChromosome, buildChromosome, buildEntityFv, buildEntitySummaryFv, buildSingleEntitySummaryFv, buildInstanceFv, buildInstanceSequenceFv, buildMultipleInstanceSequenceFv, buildAssemblySequenceFv, buildPairwiseAlignment, buildPfv, buildMultipleAlignmentSequenceFv, buildUniprotEntityFv, buildUniprotEntityInstanceFv, buildUniprotFv, unmount } from "./RcsbFvWeb/RcsbFvBuilder";
3
3
  import { SelectButtonConfigInterface } from "./RcsbFvWeb/WebTools/WebToolsManager";
4
+ import { InterfaceInstanceTranslate } from "./RcsbUtils/InterfaceInstanceTranslate";
4
5
  export declare class RcsbFvUI {
5
6
  static clearSelectButton(elementFvId: string, selectButtonId: string): void;
6
7
  static createSelectButton(elementFvId: string, selectButtonId: string, options: Array<SelectOptionInterface> | Array<GroupedOptionsInterface>, config?: SelectButtonConfigInterface): void;
7
8
  static addSelectButton(elementFvId: string, selectButtonId: string, options: Array<SelectOptionInterface>, config?: SelectButtonConfigInterface): void;
8
9
  }
10
+ export declare class RcsbFvContextManager {
11
+ static getInterfaceToInstance(interfaceId: string): Promise<InterfaceInstanceTranslate>;
12
+ }