Skip to content
Snippets Groups Projects
Commit 88fecd34 authored by David Sehnal's avatar David Sehnal
Browse files

started symmetry

parent d517c873
No related branches found
No related tags found
No related merge requests found
......@@ -7,5 +7,6 @@
import Model from './model/model'
import * as Types from './model/types'
import Format from './model/format'
import Symmetry from './model/properties/symmetry'
export { Model, Types, Format }
\ No newline at end of file
export { Model, Types, Format, Symmetry }
\ No newline at end of file
......@@ -11,6 +11,7 @@ import Format from '../format'
import Model from '../model'
import * as Hierarchy from '../properties/hierarchy'
import Conformation from '../properties/conformation'
import Symmetry from '../properties/symmetry'
import findHierarchyKeys from '../utils/hierarchy-keys'
import { ElementSymbol} from '../types'
......@@ -76,6 +77,10 @@ function getConformation({ data }: mmCIF_Format, bounds: Interval): Conformation
}
}
function getSymmetry({ data }: mmCIF_Format): Symmetry {
return Symmetry.Empty;
}
function isHierarchyDataEqual(a: Hierarchy.Hierarchy, b: Hierarchy.Data) {
// need to cast because of how TS handles type resolution for interfaces https://github.com/Microsoft/TypeScript/issues/15300
return Table.areEqual(a.chains as Table<Hierarchy.ChainsSchema>, b.chains as Table<Hierarchy.ChainsSchema>)
......@@ -105,6 +110,7 @@ function createModel(format: mmCIF_Format, bounds: Interval, previous?: Model):
modelNum: format.data.atom_site.pdbx_PDB_model_num.value(Interval.start(bounds)),
hierarchy: { ...hierarchyData, ...hierarchyKeys, ...hierarchySegments },
conformation: getConformation(format, bounds),
symmetry: getSymmetry(format),
atomCount: Interval.size(bounds)
};
}
......
......@@ -6,8 +6,9 @@
import UUID from 'mol-util/uuid'
import Format from './format'
import HierarchyProperties from './properties/hierarchy'
import ConformationProperties from './properties/conformation'
import Hierarchy from './properties/hierarchy'
import Conformation from './properties/conformation'
import Symmetry from './properties/symmetry'
import from_mmCIF from './formats/mmcif'
......@@ -23,8 +24,9 @@ interface Model extends Readonly<{
sourceData: Format,
hierarchy: HierarchyProperties,
conformation: ConformationProperties,
hierarchy: Hierarchy,
conformation: Conformation,
symmetry: Symmetry,
atomCount: number
}> { }
......
/**
* Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
import SymmetryOperator from 'mol-math/geometry/symmetry-operator'
import { Query } from '../../query'
import { Model } from '../../model'
export interface OperatorGroup {
readonly query: Query,
readonly operators: ReadonlyArray<SymmetryOperator>
}
export type OperatorGroups = ReadonlyArray<ReadonlyArray<OperatorGroup>>
export class Assembly {
readonly id: string;
readonly details: string;
private _operators: OperatorGroups;
get operators(): OperatorGroups {
if (this._operators) return this._operators;
this._operators = this.operatorsProvider();
return this._operators;
}
constructor(id: string, details: string, private operatorsProvider: () => OperatorGroups) {
this.id = id;
this.details = details;
}
}
export namespace Assembly {
export function create(id: string, details: string, operatorsProvider: () => OperatorGroups) {
return new Assembly(id, details, operatorsProvider);
}
}
interface Symmetry {
readonly assemblies: ReadonlyArray<Assembly>,
}
namespace Symmetry {
export const Empty: Symmetry = { assemblies: [] };
export function findAssembly(model: Model): Assembly | undefined {
return void 0;
}
}
export default Symmetry
\ No newline at end of file
/**
* Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author David Sehnal <david.sehnal@gmail.com>
*/
// TODO: symmetry and assebmlies descriptors
//import Column from 'mol-base/collections/column'
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment