diff --git a/src/mol-model/structure/model/properties/atomic/conformation.ts b/src/mol-model/structure/model/properties/atomic/conformation.ts index fd99511a40461ec1ff316c5295cabb586382265f..903ac4b72e71d3770db93c11ef4173e6e8653a0d 100644 --- a/src/mol-model/structure/model/properties/atomic/conformation.ts +++ b/src/mol-model/structure/model/properties/atomic/conformation.ts @@ -1,7 +1,8 @@ /** - * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2017-2018 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' @@ -13,14 +14,36 @@ export interface AtomicConformation { // ID is part of conformation because mmCIF is a leaky abstraction // that assigns different atom ids to corresponding atoms in different models // ... go figure. + + /** + * Uniquely identifies an atom, i.e. even accross models in a mmCIF file. + */ atomId: Column<number>, + /** + * The fraction of the atom type present at this site. The sum of the occupancies of all the atom types + * at this site may not significantly exceed 1.0 unless it is a dummy site. + */ occupancy: Column<number>, + /** + * Isotropic atomic displacement parameter, or equivalent isotropic atomic displacement parameter, + * B~eq~, calculated from the anisotropic displacement parameters. + */ B_iso_or_equiv: Column<number> // Coordinates. Generally, not to be accessed directly because the coordinate might be // transformed by an operator. Use Unit.getPosition instead. + + /** + * The x coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ x: ArrayLike<number>, + /** + * The y coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ y: ArrayLike<number>, + /** + * The z coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ z: ArrayLike<number> } \ No newline at end of file diff --git a/src/mol-model/structure/model/properties/atomic/hierarchy.ts b/src/mol-model/structure/model/properties/atomic/hierarchy.ts index 9cb4c2eedf4a97e9e66d1b34e52e3f450b7cd176..e1dce3c6df0b873ed7ed908c77a2c097607c789c 100644 --- a/src/mol-model/structure/model/properties/atomic/hierarchy.ts +++ b/src/mol-model/structure/model/properties/atomic/hierarchy.ts @@ -1,7 +1,8 @@ /** - * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. + * Copyright (c) 2017-2018 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, Table } from 'mol-data/db' @@ -12,10 +13,31 @@ import { ChainIndex, EntityIndex, ResidueIndex, ElementIndex } from '../../index import SortedRanges from 'mol-data/int/sorted-ranges'; export const AtomsSchema = { + /** + * The chemical element of this atom site. + * For mmCIF files, this points to atom_type.symbol in the ATOM_TYPE category. + */ type_symbol: Column.Schema.Aliased<ElementSymbol>(mmCIF.atom_site.type_symbol), + /** + * A component of the identifier for this atom site. + * This is a standardized name for the atom within its residue. + * For mmCIF files, this points to chem_comp_atom.atom_id in the CHEM_COMP_ATOM category. + */ label_atom_id: mmCIF.atom_site.label_atom_id, + /** + * An alternative identifier for label_atom_id that may be provided by an author + * in order to match the identification used in the publication that describes the structure. + */ auth_atom_id: mmCIF.atom_site.auth_atom_id, + /** + * A component of the identifier for this atom site. + * Identifies an alternative conformation for this atom site. + */ label_alt_id: mmCIF.atom_site.label_alt_id, + /** + * The net integer charge assigned to this atom. + * This is the formal charge assignment normally found in chemical diagrams. + */ pdbx_formal_charge: mmCIF.atom_site.pdbx_formal_charge // id, occupancy and B_iso_or_equiv are part of conformation }; @@ -24,19 +46,52 @@ export type AtomsSchema = typeof AtomsSchema export interface Atoms extends Table<AtomsSchema> { } export const ResiduesSchema = { + /** + * The group of atoms to which the atom site belongs. This data item is provided for + * compatibility with the original Protein Data Bank format, and only for that purpose. + */ group_PDB: mmCIF.atom_site.group_PDB, + /** + * A component of the identifier for this atom site. + * For mmCIF files, this points to chem_comp.id in the CHEM_COMP category. + */ label_comp_id: mmCIF.atom_site.label_comp_id, + /** + * An alternative identifier for atom_site.label_comp_id that may be provided by an author + * in order to match the identification used in the publication that describes the structure. + */ auth_comp_id: mmCIF.atom_site.auth_comp_id, + /** + * For mmCIF files, this points to entity_poly_seq.num in the ENTITY_POLY_SEQ category. + */ label_seq_id: mmCIF.atom_site.label_seq_id, + /** + * An alternative identifier for atom_site.label_seq_id that may be provided by an author + * in order to match the identification used in the publication that describes the structure. + */ auth_seq_id: mmCIF.atom_site.auth_seq_id, + /** + * PDB insertion code. + */ pdbx_PDB_ins_code: mmCIF.atom_site.pdbx_PDB_ins_code, }; export type ResiduesSchema = typeof ResiduesSchema export interface Residues extends Table<ResiduesSchema> { } export const ChainsSchema = { + /** + * A component of the identifier for this atom site. + * For mmCIF files, this points to struct_asym.id in the STRUCT_ASYM category. + */ label_asym_id: mmCIF.atom_site.label_asym_id, + /** + * An alternative identifier for atomsite.label_asym_id that may be provided by an author + * in order to match the identification used in the publication that describes the structure. + */ auth_asym_id: mmCIF.atom_site.auth_asym_id, + /** + * For mmCIF files, this points to _entity.id in the ENTITY category. + */ label_entity_id: mmCIF.atom_site.label_entity_id } export type ChainsSchema = typeof ChainsSchema diff --git a/src/mol-model/structure/model/properties/coarse/conformation.ts b/src/mol-model/structure/model/properties/coarse/conformation.ts index 4298b80bdb8fd043149520f2b5b50d56aae59212..dfc396ea65c9ac5fb7e4ef183e6b0100cf792874 100644 --- a/src/mol-model/structure/model/properties/coarse/conformation.ts +++ b/src/mol-model/structure/model/properties/coarse/conformation.ts @@ -2,6 +2,7 @@ * Copyright (c) 2018 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 UUID from 'mol-util/uuid' @@ -14,17 +15,47 @@ export interface CoarseConformation { } export interface CoarseSphereConformation { + /** + * The x coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ x: ArrayLike<number>, + /** + * The y coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ y: ArrayLike<number>, + /** + * The z coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ z: ArrayLike<number>, + /** + * The radius associated with the primitive sphere object at this position. + */ radius: ArrayLike<number>, + /** + * The Root Mean Square Fluctuation (RMSF) observed in the primitive sphere object at this position. + */ rmsf: ArrayLike<number> } export interface CoarseGaussianConformation { + /** + * The x coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ x: ArrayLike<number>, + /** + * The y coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ y: ArrayLike<number>, + /** + * The z coordinate in angstroms specified according to a set of orthogonal Cartesian axes. + */ z: ArrayLike<number>, + /** + * The weight of the gaussian object. + */ weight: ArrayLike<number>, + /** + * Data item of the covariance matrix representing the Gaussian object. + */ covariance_matrix: ArrayLike<Mat3> } \ No newline at end of file diff --git a/src/mol-model/structure/model/properties/coarse/hierarchy.ts b/src/mol-model/structure/model/properties/coarse/hierarchy.ts index 1d19637f84bc2cd01bd7425272a25feecf483be2..5733dd3d4809cd80425dd718cac4f0a92dbb3185 100644 --- a/src/mol-model/structure/model/properties/coarse/hierarchy.ts +++ b/src/mol-model/structure/model/properties/coarse/hierarchy.ts @@ -23,9 +23,25 @@ export interface CoarsedElementKeys { 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>,