UNPKG

pdbe-molstar

Version:
154 lines (153 loc) 8.96 kB
import { Loci } from 'molstar/lib/mol-model/loci'; import { StructureRepresentationBuiltInProps } from 'molstar/lib/mol-plugin-state/helpers/structure-representation-params'; import { PluginUISpec } from 'molstar/lib/mol-plugin-ui/spec'; import { DefaultFocusLociBindings } from 'molstar/lib/mol-plugin/behavior/dynamic/camera'; import { DefaultSelectLociBindings } from 'molstar/lib/mol-plugin/behavior/dynamic/representation'; import { PluginSpec } from 'molstar/lib/mol-plugin/spec'; import { LigandQueryParam, MapParams, QueryParam } from './helpers'; export declare const DefaultPluginSpec: () => PluginSpec; export declare const DefaultPluginUISpec: () => PluginUISpec; /** RGB color (r, g, b values 0-255) */ export interface ColorParams { r: number; g: number; b: number; } /** Color name (e.g. 'yellow') or hexcode (e.g. '#ffff00') or Molstar color encoding (e.g. 16776960) or RGB color object (e.g. { r: 255, g: 255, b: 0 }) */ export type AnyColor = ColorParams | string | number; export declare const Preset: readonly ["default", "unitcell", "all-models", "supercell"]; export type Preset = (typeof Preset)[number]; export declare const Lighting: readonly ["flat", "matte", "glossy", "metallic", "plastic"]; export type Lighting = (typeof Lighting)[number]; /** Structure component type ('het' includes Molstar types 'ligand' and 'ion') */ export declare const ComponentType: readonly ["polymer", "het", "water", "carbs", "nonStandard", "coarse"]; export type ComponentType = (typeof ComponentType)[number]; /** Structure representation type */ export declare const VisualStyle: readonly ["cartoon", "ball-and-stick", "carbohydrate", "ellipsoid", "gaussian-surface", "molecular-surface", "point", "putty", "spacefill"]; export type VisualStyle = (typeof VisualStyle)[number]; /** Specification of visual style for a single component visual, e.g. `'cartoon'` or `{type: 'putty', size: 'uniform'}` */ type ComponentVisualStyleSpec = VisualStyle | StructureRepresentationBuiltInProps; /** Specification of visual styles for individual component types, e.g. `'cartoon'` (all components as cartoon) or `{polymer: {type: 'putty', size: 'uniform'}, ligand: 'ball-and-stick'}` */ export type VisualStylesSpec = ComponentVisualStyleSpec | { [component in ComponentType]?: ComponentVisualStyleSpec; }; /** Normalize a `VisualStylesSpec` to a form {polymer?:{...},het?:{...},...} */ export declare function resolveVisualStyleSpec(spec: VisualStylesSpec): { [component in ComponentType]?: StructureRepresentationBuiltInProps; }; /** Structure file format */ export declare const Encoding: readonly ["cif", "bcif"]; export type Encoding = (typeof Encoding)[number]; /** Options for initializing `PDBeMolstarPlugin` */ export interface InitParams { /** PDB ID (example: '1cbs'), or UniProt ID if `superposition` is `true`. Leave `undefined` only when setting `customData` */ moleculeId?: string; /** Load data from a specific data source. * Example: `{ url: 'https://www.ebi.ac.uk/pdbe/model-server/v1/1cbs/atoms?label_entity_id=1&auth_asym_id=A&encoding=bcif', format: 'cif', binary: true }` */ customData?: { url: string; format: string; binary: boolean; }; /** Leave `undefined` to load deposited model structure. Use assembly identifier to load assembly structure. or 'preferred' to load default assembly (i.e. the first assembly). */ assemblyId?: string; /** Specify type of structure to be loaded */ defaultPreset: Preset; /** Use to display the PDBe ligand page 3D view like here (https://www.ebi.ac.uk/pdbe/entry/pdb/1cbs/bound/REA). * Example: `{ label_comp_id: 'REA' }`. At least one is required of `label_comp_id` and `auth_seq_id` */ ligandView?: LigandQueryParam; /** This applies AlphaFold confidence score colouring theme for AlphaFold model */ alphafoldView: boolean; /** Display the superposed structures view like the one on the PDBe-KB pages. */ superposition: boolean; /** Customize the superposed structures view. Example: `{ matrixAccession: 'P08684', segment: 1, ligandView: true, ligandColor: { r: 255, g: 255, b: 50} }`. */ superpositionParams?: { matrixAccession?: string; segment?: number; cluster?: number[]; superposeCompleteCluster?: boolean; ligandView?: boolean; superposeAll?: boolean; ligandColor?: AnyColor; }; /** Specify parts of the structure to highlight with different colors */ selection?: { data: QueryParam[]; nonSelectedColor?: AnyColor; }; /** Display 3D State Gallery */ galleryView: boolean; /** Set default visual style. * Leave undefined to use default visual styles for each component type (polymer, ligand etc.). * Use a `VisualStylesSpec` object to define more detailed visual styles for individual component types, e.g. `{polymer: {type: 'putty', size: 'uniform'}, ligand: 'ball-and-stick'}` */ visualStyle?: VisualStylesSpec; /** Molstar renders multiple visuals (polymer, ligand, water...) visuals by default. This option is to exclude any of these default visuals */ hideStructure: ('polymer' | 'het' | 'water' | 'carbs' | 'nonStandard' | 'coarse')[]; /** Load electron density (or EM) maps from Volume Server if value is set to true */ loadMaps: boolean; /** Customize map style (opacity and solid/wireframe) */ mapSettings?: MapParams; /** Canvas background color */ bgColor: AnyColor; /** Color appearing on mouse-over */ highlightColor?: AnyColor; /** Color for marking the selected part of structure (when Selection Mode is active) */ selectColor?: AnyColor; /** Default lighting (I don't think it really works) */ lighting?: Lighting; /** Load Validation Report Annotations. Adds 'Annotations' control in the menu */ validationAnnotation: boolean; /** Load Domain Annotations. Adds 'Annotations' control in the menu */ domainAnnotation: boolean; /** Load Assembly Symmetry Annotations. Adds 'Annotations' control in the menu */ symmetryAnnotation: boolean; /** This option is to set the default base URL for the data source. Mostly used internally to test the plugin on different environments */ pdbeUrl: string; /** Preferred encoding of input structural data */ encoding: Encoding; /** Load low precision coordinates from Model Server */ lowPrecisionCoords: boolean; /** Controls the action performed when clicking a residue. `true` (default) will zoom the residue * and show ball-and-stick visual for its surroundings, `false` will only zoom the residue. * If `ligandView` or `superposition` option is set, `selectInteraction` behaves as if `false`. */ selectInteraction: boolean; /** Override mouse selection behavior */ selectBindings?: typeof DefaultSelectLociBindings; /** Override mouse click focus behaviour */ focusBindings?: typeof DefaultFocusLociBindings; /** Structure granularity level for interactions like highlight, focus, select. * (Granularity levels ending with `Instances` treat multiple copies of the same element/residue/chain in an assembly as one object). */ granularity?: Loci.Granularity; /** Subscribe to other PDB Web-components custom events */ subscribeEvents: boolean; /** Hide all control panels by default (can be shown by the Toggle Controls Panel button (wrench icon)) */ hideControls: boolean; /** Hide individual icon buttons in the top-right corner of the canvas */ hideCanvasControls: ('screenshot' | 'expand' | 'controlToggle' | 'controlInfo' | 'selection' | 'animation' | 'trajectory')[]; /** Display Sequence panel */ sequencePanel: boolean; /** Display Left control panel */ leftPanel: boolean; /** Display Right control panel */ rightPanel: boolean; /** Display Log panel */ logPanel: boolean; /** Display PDBe entry link in top right corner of the canvas */ pdbeLink: boolean; /** Show overlay with PDBe logo while the initial structure is being loaded */ loadingOverlay: boolean; /** Display full-screen by default on load */ expanded: boolean; /** Set landscape layout (control panels on the sides instead of above and under the canvas) */ landscape: boolean; /** Set reactive layout (switching between landscape and portrait based on the browser window size). Overrides `landscape`. */ reactive: boolean; /** Specify which tabs should be included in the left control panel * (pdbe = restricted selection of tabs used on PDBe pages, all = all available tabs) */ tabs: 'pdbe' | 'all'; } /** Default values for `InitParams` */ export declare const DefaultParams: InitParams; /** Return `undefined` if `params` are valid, an error message otherwise. */ export declare function validateInitParams(params: Partial<InitParams>): string | undefined; export {};