Browse Source

Renamed Conformation to AtomSiteConformation

David Sehnal 7 years ago
parent
commit
3babfb55c3

+ 4 - 4
src/mol-model/structure/model/formats/gro.ts

@@ -11,7 +11,7 @@ import { Atoms } from 'mol-io/reader/gro/schema'
 import Format from '../format'
 import Model from '../model'
 import * as Hierarchy from '../properties/hierarchy'
-import Conformation from '../properties/conformation'
+import AtomSiteConformation from '../properties/atom-site-conformation'
 import CoarseGrained from '../properties/coarse-grained'
 import findHierarchyKeys from '../utils/hierarchy-keys'
 import { guessElement } from '../utils/guess-element'
@@ -77,7 +77,7 @@ function createHierarchyData(atomsData: Atoms, offsets: HierarchyOffsets): Hiera
     return { atoms, residues, chains };
 }
 
-function getConformation(atoms: Atoms): Conformation {
+function getConformation(atoms: Atoms): AtomSiteConformation {
     return {
         id: UUID.create(),
         atomId: atoms.atomNumber,
@@ -105,7 +105,7 @@ function createModel(format: gro_Format, modelNum: number, previous?: Model): Mo
     if (previous && isHierarchyDataEqual(previous.hierarchy, hierarchyData)) {
         return {
             ...previous,
-            conformation: getConformation(structure.atoms)
+            atomSiteConformation: getConformation(structure.atoms)
         };
     }
 
@@ -133,7 +133,7 @@ function createModel(format: gro_Format, modelNum: number, previous?: Model): Mo
         hierarchy,
         entities,
         sequence: Sequence.fromHierarchy(hierarchy),
-        conformation: getConformation(structure.atoms),
+        atomSiteConformation: getConformation(structure.atoms),
         coarseGrained: CoarseGrained.Empty,
         symmetry: { assemblies: [] },
         atomCount: structure.atoms.count

+ 4 - 4
src/mol-model/structure/model/formats/mmcif.ts

@@ -10,7 +10,7 @@ import { Interval, Segmentation } from 'mol-data/int'
 import Format from '../format'
 import Model from '../model'
 import * as Hierarchy from '../properties/hierarchy'
-import Conformation from '../properties/conformation'
+import AtomSiteConformation from '../properties/atom-site-conformation'
 import CoarseGrained from '../properties/coarse-grained'
 import Symmetry from '../properties/symmetry'
 import findHierarchyKeys from '../utils/hierarchy-keys'
@@ -67,7 +67,7 @@ function createHierarchyData({ data }: mmCIF_Format, bounds: Interval, offsets:
     return { atoms, residues, chains };
 }
 
-function getConformation({ data }: mmCIF_Format, bounds: Interval): Conformation {
+function getConformation({ data }: mmCIF_Format, bounds: Interval): AtomSiteConformation {
     const start = Interval.start(bounds), end = Interval.end(bounds);
     const { atom_site } = data;
     return {
@@ -99,7 +99,7 @@ function createModel(format: mmCIF_Format, bounds: Interval, previous?: Model):
     if (previous && isHierarchyDataEqual(previous.hierarchy, hierarchyData)) {
         return {
             ...previous,
-            conformation: getConformation(format, bounds)
+            atomSiteConformation: getConformation(format, bounds)
         };
     }
 
@@ -121,7 +121,7 @@ function createModel(format: mmCIF_Format, bounds: Interval, previous?: Model):
         entities,
         hierarchy,
         sequence: getSequence(format.data, entities, hierarchy),
-        conformation: getConformation(format, bounds),
+        atomSiteConformation: getConformation(format, bounds),
         coarseGrained: CoarseGrained.Empty,
         symmetry: getSymmetry(format),
         atomCount: Interval.size(bounds)

+ 2 - 2
src/mol-model/structure/model/model.ts

@@ -8,7 +8,7 @@ import UUID from 'mol-util/uuid'
 import Format from './format'
 import Sequence from './properties/sequence'
 import Hierarchy from './properties/hierarchy'
-import Conformation from './properties/conformation'
+import AtomSiteConformation from './properties/atom-site-conformation'
 import Symmetry from './properties/symmetry'
 import CoarseGrained from './properties/coarse-grained'
 import { Entities } from './properties/common';
@@ -32,7 +32,7 @@ interface Model extends Readonly<{
     sequence: Sequence,
 
     hierarchy: Hierarchy,
-    conformation: Conformation,
+    atomSiteConformation: AtomSiteConformation,
     symmetry: Symmetry,
     coarseGrained: CoarseGrained,
 

+ 0 - 0
src/mol-model/structure/model/properties/conformation.ts → src/mol-model/structure/model/properties/atom-site-conformation.ts


+ 7 - 3
src/mol-model/structure/model/properties/coarse-grained.ts

@@ -9,13 +9,14 @@ import { Tensor } from 'mol-math/linear-algebra';
 import { Column } from 'mol-data/db';
 
 interface CoarseGrained {
+    isDefined: boolean,
     modelList: mmCIF['ihm_model_list'],
-    spheres: { [P in keyof CoarseGrained.Sphere]: Column<CoarseGrained.Sphere[P]> },
-    gaussians: { [P in keyof CoarseGrained.Gaussian]: Column<CoarseGrained.Gaussian[P]> }
+    spheres: CoarseGrained.Spheres,
+    gaussians: CoarseGrained.Gaussians
 }
 
 namespace CoarseGrained {
-    export const Empty: CoarseGrained = { } as any;
+    export const Empty: CoarseGrained = { isDefined: false } as any;
 
     interface Site {
         // index to the Model.hierarchy.entities table
@@ -40,6 +41,9 @@ namespace CoarseGrained {
         weight: number,
         covarianceMatrix: Tensor.Data
     }
+
+    export type Spheres = { count: number} & { [P in keyof Sphere]: Column<Sphere[P]> }
+    export type Gaussians = { count: number} & { [P in keyof Gaussian]: Column<Gaussian[P]> }
 }
 
 export default CoarseGrained;

+ 1 - 6
src/mol-model/structure/model/properties/hierarchy.ts

@@ -40,15 +40,10 @@ export const ChainsSchema = {
 export type ChainsSchema = typeof ChainsSchema
 export interface Chains extends Table<ChainsSchema> { }
 
-// export const EntitySchema = mmCIF['entity']
-// export type EntitySchema = typeof EntitySchema
-// export interface Entities extends Table<EntitySchema> { }
-
 export interface Data {
     atoms: Atoms,
     residues: Residues,
-    chains: Chains,
-    //entities: Entities
+    chains: Chains
 }
 
 export interface Segments {

+ 1 - 1
src/mol-model/structure/structure/element/properties/bonds/group-compute.ts

@@ -110,7 +110,7 @@ function computePerAtomBonds(atomA: number[], atomB: number[], _order: number[],
 function _computeBonds(unit: Unit.Atomic, atoms: ElementGroup, params: BondComputationParameters): GroupBonds {
     const MAX_RADIUS = 3;
 
-    const { x, y, z } = unit.model.conformation;
+    const { x, y, z } = unit.model.atomSiteConformation;
     const atomCount = ElementGroup.size(atoms);
     const { residueIndex } = unit;
     const { type_symbol, label_atom_id, label_alt_id } = unit.model.hierarchy.atoms;

+ 4 - 4
src/mol-model/structure/structure/unit.ts

@@ -47,7 +47,7 @@ namespace Unit {
         // Reference some commonly accessed things for faster access.
         readonly residueIndex: ArrayLike<number>,
         readonly chainIndex: ArrayLike<number>,
-        readonly conformation: Model['conformation']
+        readonly conformation: Model['atomSiteConformation']
     }
 
     // Coarse grained representations.
@@ -58,7 +58,7 @@ namespace Unit {
 
     export function createAtomic(model: Model, operator: SymmetryOperator, fullGroup: ElementGroup): Unit {
         const h = model.hierarchy;
-        const { invariantPosition, position, x, y, z } = SymmetryOperator.createMapping(operator, model.conformation);
+        const { invariantPosition, position, x, y, z } = SymmetryOperator.createMapping(operator, model.atomSiteConformation);
 
         return {
             model,
@@ -68,7 +68,7 @@ namespace Unit {
             residueIndex: h.residueSegments.segmentMap,
             chainIndex: h.chainSegments.segmentMap,
             hierarchy: model.hierarchy,
-            conformation: model.conformation,
+            conformation: model.atomSiteConformation,
             invariantPosition,
             position,
             x, y, z
@@ -89,7 +89,7 @@ namespace Unit {
     export function getLookup3d(unit: Unit, group: ElementGroup) {
         if (group.__lookup3d__)  return group.__lookup3d__;
         if (Unit.isAtomic(unit)) {
-            const { x, y, z } = unit.model.conformation;
+            const { x, y, z } = unit.model.atomSiteConformation;
             group.__lookup3d__ = GridLookup3D({ x, y, z, indices: group.elements });
             return group.__lookup3d__;
         }

+ 3 - 3
src/perf-tests/structure.ts

@@ -356,11 +356,11 @@ export namespace PropertyAccess {
         // return;
 
         console.log('bs', baseline(models[0]));
-        console.log('sp', sumProperty(structures[0], l => l.unit.model.conformation.atomId.value(l.element)));
-        console.log(sumPropertySegmented(structures[0], l => l.unit.model.conformation.atomId.value(l.element)));
+        console.log('sp', sumProperty(structures[0], l => l.unit.model.atomSiteConformation.atomId.value(l.element)));
+        console.log(sumPropertySegmented(structures[0], l => l.unit.model.atomSiteConformation.atomId.value(l.element)));
 
         //console.log(sumPropertySegmentedMutable(structures[0], l => l.unit.model.conformation.atomId.value(l.element));
-        console.log(sumPropertyAtomSetIt(structures[0], l => l.unit.model.conformation.atomId.value(l.element)));
+        console.log(sumPropertyAtomSetIt(structures[0], l => l.unit.model.atomSiteConformation.atomId.value(l.element)));
         //console.log(sumProperty(structures[0], Property.cachedAtomColumn(m => m.conformation.atomId)));
         //console.log(sumDirect(structures[0]));
         //console.log('r', sumPropertyResidue(structures[0], l => l.unit.hierarchy.residues.auth_seq_id.value(l.unit.residueIndex[l.atom])));