pdbe-molstar
Version:
Molstar implementation for PDBe
154 lines (153 loc) • 8.96 kB
TypeScript
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 {};