@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
39 lines (38 loc) • 2.36 kB
TypeScript
import { SequenceAnnotations, Features, QueryAnnotationsArgs, QueryGroup_AnnotationsArgs } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes";
import { FeaturePositionGaps } from "../../RcsbFvWeb/RcsbFvFactories/RcsbFvBlockFactory/BlockManager/AnnotationTrackManager";
import { ExternalTrackBuilderInterface } from "../FeatureTools/ExternalTrackBuilderInterface";
import { PolymerEntityInstanceInterface } from "../DataCollectors/PolymerEntityInstancesCollector";
import { TrackManagerInterface } from "../../RcsbFvWeb/RcsbFvFactories/RcsbFvBlockFactory/BlockManager/TrackManagerInterface";
export type IncreaseAnnotationValueType = (feature: {
type: string;
targetId: string;
positionKey: string;
d: Features;
p: FeaturePositionGaps;
}) => number;
export interface AnnotationProcessingInterface {
getAnnotationValue?: IncreaseAnnotationValueType;
computeAnnotationValue?: (annotationTracks: Map<string, TrackManagerInterface>) => void;
addTrackElementCallback?: IncreaseAnnotationValueType;
}
export interface CommonAnnotationInterface {
rcsbContext?: Partial<PolymerEntityInstanceInterface>;
annotationProcessing?: AnnotationProcessingInterface;
externalTrackBuilder?: ExternalTrackBuilderInterface;
annotationGenerator?(annotations: Array<SequenceAnnotations>): Promise<Array<SequenceAnnotations>>;
annotationFilter?(annotations: Array<SequenceAnnotations>): Promise<Array<SequenceAnnotations>>;
titleSuffix?(ann: SequenceAnnotations, d: Features): Promise<string | undefined>;
trackTitle?(ann: SequenceAnnotations, d: Features): Promise<string | undefined>;
typeSuffix?(ann: SequenceAnnotations, d: Features): Promise<string | undefined>;
}
export interface AnnotationsCollectConfig extends QueryAnnotationsArgs, CommonAnnotationInterface {
}
export interface CollectGroupAnnotationsInterface extends QueryGroup_AnnotationsArgs, CommonAnnotationInterface {
isSummary: boolean;
}
export type AnnotationRequestContext = Partial<AnnotationsCollectConfig & CollectGroupAnnotationsInterface>;
export interface AnnotationCollectorInterface {
collect(requestConfig: AnnotationsCollectConfig | CollectGroupAnnotationsInterface): Promise<Array<SequenceAnnotations>>;
getAnnotationFeatures(): Promise<Array<SequenceAnnotations>>;
getFeatures(): Promise<Array<Features>>;
}