UNPKG

molstar

Version:

A comprehensive macromolecular library.

117 lines (116 loc) 6.11 kB
/** * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Adam Midlik <midlik@gmail.com> */ import { BehaviorSubject } from 'rxjs'; import { PluginStateObject } from '../../mol-plugin-state/objects'; import { PluginBehavior } from '../../mol-plugin/behavior'; import { PluginContext } from '../../mol-plugin/context'; import { StateObjectCell, StateSelection, StateTransform } from '../../mol-state'; import { Choice } from '../../mol-util/param-choice'; import { ParamDefinition } from '../../mol-util/param-definition'; import { VolumeApiV2 } from './volseg-api/api'; import { Segment } from './volseg-api/data'; import { MetadataWrapper } from './volseg-api/utils'; import { VolsegVolumeData, SimpleVolumeParamValues } from './entry-volume'; export declare const MAX_VOXELS: number; export declare const BOX: [[number, number, number], [number, number, number]] | null; declare const SourceChoice: Choice<"emdb" | "empiar" | "idr", "emdb">; export type Source = Choice.Values<typeof SourceChoice>; export declare function createLoadVolsegParams(plugin?: PluginContext, entrylists?: { [source: string]: string[]; }): { serverUrl: ParamDefinition.Text<string>; source: ParamDefinition.Mapped<ParamDefinition.NamedParams<unknown, string>>; }; type LoadVolsegParamValues = ParamDefinition.Values<ReturnType<typeof createLoadVolsegParams>>; export declare function createVolsegEntryParams(plugin?: PluginContext): { serverUrl: ParamDefinition.Text<string>; source: ParamDefinition.Select<"emdb" | "empiar" | "idr">; entryId: ParamDefinition.Text<string>; }; type VolsegEntryParamValues = ParamDefinition.Values<ReturnType<typeof createVolsegEntryParams>>; export declare namespace VolsegEntryParamValues { function fromLoadVolsegParamValues(params: LoadVolsegParamValues): VolsegEntryParamValues; } declare const VolsegEntry_base: { new (data: VolsegEntryData, props?: { label: string; description?: string; } | undefined): { id: import("../../mol-util").UUID; type: PluginStateObject.TypeInfo; label: string; description?: string; data: VolsegEntryData; }; type: PluginStateObject.TypeInfo; is(obj?: import("../../mol-state").StateObject): obj is import("../../mol-state").StateObject<VolsegEntryData, PluginStateObject.TypeInfo>; }; export declare class VolsegEntry extends VolsegEntry_base { } export declare class VolsegEntryData extends PluginBehavior.WithSubscribers<VolsegEntryParamValues> { plugin: PluginContext; ref: string; api: VolumeApiV2; source: Source; /** Number part of entry ID; e.g. '1832' */ entryNumber: string; /** Full entry ID; e.g. 'emd-1832' */ entryId: string; metadata: MetadataWrapper; pdbs: string[]; readonly volumeData: VolsegVolumeData; private readonly latticeSegmentationData; private readonly meshSegmentationData; private readonly modelData; private highlightRequest; private getStateNode; currentState: BehaviorSubject<ParamDefinition.Values<{ volumeType: ParamDefinition.Select<"off" | "direct-volume" | "isosurface">; volumeIsovalueKind: ParamDefinition.Select<string>; volumeIsovalueValue: ParamDefinition.Numeric; volumeOpacity: ParamDefinition.Numeric; segmentOpacity: ParamDefinition.Numeric; selectedSegment: ParamDefinition.Numeric; visibleSegments: ParamDefinition.ObjectList<ParamDefinition.Normalize<{ segmentId: number; }>>; visibleModels: ParamDefinition.ObjectList<ParamDefinition.Normalize<{ pdbId: string; }>>; }>>; currentVolume: BehaviorSubject<StateTransform<import("../../mol-state").StateTransformer<PluginStateObject.Volume.Data, PluginStateObject.Volume.Representation3D, ParamDefinition.Normalize<{ type: ParamDefinition.NamedParams<any, string>; colorTheme: ParamDefinition.NamedParams<any, string>; sizeTheme: ParamDefinition.NamedParams<any, string>; }>>> | undefined>; private constructor(); private initialize; static create(plugin: PluginContext, params: VolsegEntryParamValues): Promise<VolsegEntryData>; register(ref: string): Promise<void>; unregister(): Promise<void>; loadVolume(): Promise<void>; loadSegmentations(): Promise<void>; actionHighlightSegment(segment?: Segment): void; actionToggleSegment(segment: number): Promise<void>; actionToggleAllSegments(): Promise<void>; actionSelectSegment(segment?: number): Promise<void>; actionSetOpacity(opacity: number): Promise<void>; actionShowFittedModel(pdbIds: string[]): Promise<void>; actionSetVolumeVisual(type: 'isosurface' | 'direct-volume' | 'off'): Promise<void>; actionUpdateVolumeVisual(params: SimpleVolumeParamValues): Promise<void>; private actionShowSegments; private highlightSegment; private selectSegment; private updateStateNode; /** Find the nodes under this entry root which have all of the given tags. */ findNodesByTags(...tags: string[]): StateSelection.CellSeq<StateObjectCell<import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, StateTransform<import("../../mol-state").StateTransformer<import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, any>>>>; newUpdate(): import("../../mol-state").StateBuilder.To<import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, import("../../mol-state").StateTransformer<import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, import("../../mol-state").StateObject<any, import("../../mol-state").StateObject.Type<any>>, any>>; private readonly labelProvider; private getSegmentIdFromLoci; setTryUseGpu(tryUseGpu: boolean): Promise<void>; setSelectionMode(selectSegments: boolean): Promise<void>; } export {};