UNPKG

molstar

Version:

A comprehensive macromolecular library.

59 lines (58 loc) 2.45 kB
/** * Copyright (c) 2018-2022 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { Column } from '../../../../../mol-data/db'; import { Segmentation } from '../../../../../mol-data/int'; import { ElementIndex, ChainIndex, EntityIndex } from '../../indexing'; import { SortedRanges } from '../../../../../mol-data/int/sorted-ranges'; export interface CoarsedElementKeys { /** Assign a key to each element */ chainKey: ArrayLike<ChainIndex>; /** Assign a key to each element, index to the Model.entities.data table */ entityKey: ArrayLike<EntityIndex>; /** Find index of the residue/feature element where seq_id is included */ findSequenceKey(entityId: string, asym_id: string, seq_id: number): ElementIndex; findChainKey(entityId: string, asym_id: string): ChainIndex; /** Returns index or -1 if not present. */ getEntityFromChain(cI: ChainIndex): EntityIndex; } export interface CoarseElementData { count: number; /** * The entity identifier corresponding to this coarse object. * In mmCIF files, this points to entity_poly_seq.entity_id in the ENTITY_POLY category. */ entity_id: Column<string>; /** * An asym/strand identifier corresponding to this coarse object. * In mmCIF files, this points to struct_asym.id in the STRUCT_ASYM category */ asym_id: Column<string>; /** * The leading sequence index corresponding to this coarse object. * In mmCIF files, this points to entity_poly_seq.num in the ENTITY_POLY category. */ seq_id_begin: Column<number>; /** * The trailing sequence index corresponding to this coarse object. * In mmCIF files, this points to entity_poly_seq.num in the ENTITY_POLY category. */ seq_id_end: Column<number>; chainElementSegments: Segmentation<ElementIndex, ChainIndex>; } export interface CoarseRanges { polymerRanges: SortedRanges<ElementIndex>; gapRanges: SortedRanges<ElementIndex>; } export declare type CoarseElements = CoarsedElementKeys & CoarseElementData & CoarseRanges; export interface CoarseHierarchy { isDefined: boolean; spheres: CoarseElements; gaussians: CoarseElements; } export declare namespace CoarseHierarchy { const Empty: CoarseHierarchy; }