From 801e1ef035ff0de5c86640a23f896e7f25cbaf52 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Thu, 2 Nov 2017 15:42:19 +0100 Subject: [PATCH] more refactoring --- src/mol-data/sequence/TODO | 0 src/mol-data/structure.ts | 13 ----- .../{ => structure}/_spec/atom-set.spec.ts | 2 +- src/mol-data/{ => structure}/model.ts | 0 .../{ => structure}/model/builders/mmcif.ts | 9 ++- .../{ => structure}/model/constants.ts | 2 +- .../{ => structure}/model/data-format.ts | 2 +- src/mol-data/{ => structure}/model/model.ts | 2 +- .../model/properties/computed.ts | 0 .../model/properties/conformation.ts | 4 +- .../model/properties/format-specific.ts | 0 .../model/properties/hierarchy.ts | 8 +-- .../model/properties/transforms.ts | 0 .../model/utils/hierarchy-keys.ts | 4 +- src/mol-data/{ => structure}/query.ts | 0 .../{ => structure}/query/generators.ts | 2 +- .../{ => structure}/query/properties.ts | 0 src/mol-data/{ => structure}/query/query.ts | 0 .../{ => structure}/query/selection.ts | 4 +- src/mol-data/structure/structure.ts | 57 ++---------------- .../structure/{ => structure}/atom.ts | 2 +- .../structure/{ => structure}/atom/set.ts | 2 +- .../{ => structure}/atom/set/builder.ts | 4 +- .../{ => structure}/atom/set/impl.ts | 6 +- .../{ => structure}/atom/set/properties.ts | 0 .../structure/{ => structure}/operator.ts | 2 +- src/mol-data/structure/structure/structure.ts | 58 +++++++++++++++++++ .../structure/{ => structure}/unit.ts | 0 src/mol-data/volume/TODO | 0 src/perf-tests/sets.ts | 2 +- src/perf-tests/structure.ts | 6 +- src/script.ts | 2 +- 32 files changed, 96 insertions(+), 97 deletions(-) create mode 100644 src/mol-data/sequence/TODO delete mode 100644 src/mol-data/structure.ts rename src/mol-data/{ => structure}/_spec/atom-set.spec.ts (99%) rename src/mol-data/{ => structure}/model.ts (100%) rename src/mol-data/{ => structure}/model/builders/mmcif.ts (94%) rename src/mol-data/{ => structure}/model/constants.ts (99%) rename src/mol-data/{ => structure}/model/data-format.ts (77%) rename src/mol-data/{ => structure}/model/model.ts (94%) rename src/mol-data/{ => structure}/model/properties/computed.ts (100%) rename src/mol-data/{ => structure}/model/properties/conformation.ts (86%) rename src/mol-data/{ => structure}/model/properties/format-specific.ts (100%) rename src/mol-data/{ => structure}/model/properties/hierarchy.ts (91%) rename src/mol-data/{ => structure}/model/properties/transforms.ts (100%) rename src/mol-data/{ => structure}/model/utils/hierarchy-keys.ts (96%) rename src/mol-data/{ => structure}/query.ts (100%) rename src/mol-data/{ => structure}/query/generators.ts (97%) rename src/mol-data/{ => structure}/query/properties.ts (100%) rename src/mol-data/{ => structure}/query/query.ts (100%) rename src/mol-data/{ => structure}/query/selection.ts (96%) rename src/mol-data/structure/{ => structure}/atom.ts (95%) rename src/mol-data/structure/{ => structure}/atom/set.ts (96%) rename src/mol-data/structure/{ => structure}/atom/set/builder.ts (93%) rename src/mol-data/structure/{ => structure}/atom/set/impl.ts (98%) rename src/mol-data/structure/{ => structure}/atom/set/properties.ts (100%) rename src/mol-data/structure/{ => structure}/operator.ts (91%) create mode 100644 src/mol-data/structure/structure/structure.ts rename src/mol-data/structure/{ => structure}/unit.ts (100%) create mode 100644 src/mol-data/volume/TODO diff --git a/src/mol-data/sequence/TODO b/src/mol-data/sequence/TODO new file mode 100644 index 000000000..e69de29bb diff --git a/src/mol-data/structure.ts b/src/mol-data/structure.ts deleted file mode 100644 index cc8bf49f3..000000000 --- a/src/mol-data/structure.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. - * - * @author David Sehnal <david.sehnal@gmail.com> - */ - -import Atom from './structure/atom' -import AtomSet from './structure/atom/set' -import Structure from './structure/structure' -import Operator from './structure/operator' -import Unit from './structure/unit' - -export { Atom, AtomSet, Structure, Operator, Unit } \ No newline at end of file diff --git a/src/mol-data/_spec/atom-set.spec.ts b/src/mol-data/structure/_spec/atom-set.spec.ts similarity index 99% rename from src/mol-data/_spec/atom-set.spec.ts rename to src/mol-data/structure/_spec/atom-set.spec.ts index 62e5ea804..2ca79d8f9 100644 --- a/src/mol-data/_spec/atom-set.spec.ts +++ b/src/mol-data/structure/_spec/atom-set.spec.ts @@ -4,7 +4,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { OrderedSet } from '../../mol-base/collections/integer' +import { OrderedSet } from '../../../mol-base/collections/integer' import AtomSet from '../structure/atom/set' import Atom from '../structure/atom' diff --git a/src/mol-data/model.ts b/src/mol-data/structure/model.ts similarity index 100% rename from src/mol-data/model.ts rename to src/mol-data/structure/model.ts diff --git a/src/mol-data/model/builders/mmcif.ts b/src/mol-data/structure/model/builders/mmcif.ts similarity index 94% rename from src/mol-data/model/builders/mmcif.ts rename to src/mol-data/structure/model/builders/mmcif.ts index 4d92bbc56..3fa96b038 100644 --- a/src/mol-data/model/builders/mmcif.ts +++ b/src/mol-data/structure/model/builders/mmcif.ts @@ -5,12 +5,11 @@ */ import { mmCIF } from '../data-format' -//import { Frame as mmCIF } from '../../../mol-io/reader/cif/schema/mmcif' import Model from '../model' -import Column from '../../../mol-base/collections/column' -import Table from '../../../mol-base/collections/table' -import { Interval, Segmentation } from '../../../mol-base/collections/integer' -import { newUUID } from '../../../mol-base/utils/uuid' +import Column from '../../../../mol-base/collections/column' +import Table from '../../../../mol-base/collections/table' +import { Interval, Segmentation } from '../../../../mol-base/collections/integer' +import { newUUID } from '../../../../mol-base/utils/uuid' import * as Hierarchy from '../properties/hierarchy' import Conformation from '../properties/conformation' import findHierarchyKeys from '../utils/hierarchy-keys' diff --git a/src/mol-data/model/constants.ts b/src/mol-data/structure/model/constants.ts similarity index 99% rename from src/mol-data/model/constants.ts rename to src/mol-data/structure/model/constants.ts index 5db57c733..48c863c7f 100644 --- a/src/mol-data/model/constants.ts +++ b/src/mol-data/structure/model/constants.ts @@ -5,7 +5,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import BitFlags from '../../mol-base/utils/bit-flags' +import BitFlags from '../../../mol-base/utils/bit-flags' export const enum EntityType { Unknown = 'unknown', diff --git a/src/mol-data/model/data-format.ts b/src/mol-data/structure/model/data-format.ts similarity index 77% rename from src/mol-data/model/data-format.ts rename to src/mol-data/structure/model/data-format.ts index 128136b86..c5c4aa2e7 100644 --- a/src/mol-data/model/data-format.ts +++ b/src/mol-data/structure/model/data-format.ts @@ -4,7 +4,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { Frame as mmCIF_Frame } from '../../mol-io/reader/cif/schema/mmcif' +import { Frame as mmCIF_Frame } from '../../../mol-io/reader/cif/schema/mmcif' export interface mmCIF { kind: 'mmCIF', data: mmCIF_Frame } diff --git a/src/mol-data/model/model.ts b/src/mol-data/structure/model/model.ts similarity index 94% rename from src/mol-data/model/model.ts rename to src/mol-data/structure/model/model.ts index 12c5fe73a..b2dbf68fc 100644 --- a/src/mol-data/model/model.ts +++ b/src/mol-data/structure/model/model.ts @@ -7,7 +7,7 @@ import DataFormat from './data-format' import HierarchyProperties from './properties/hierarchy' import ConformationProperties from './properties/conformation' -import UUID from '../../mol-base/utils/uuid' +import UUID from '../../../mol-base/utils/uuid' import buildMmCIF from './builders/mmcif' diff --git a/src/mol-data/model/properties/computed.ts b/src/mol-data/structure/model/properties/computed.ts similarity index 100% rename from src/mol-data/model/properties/computed.ts rename to src/mol-data/structure/model/properties/computed.ts diff --git a/src/mol-data/model/properties/conformation.ts b/src/mol-data/structure/model/properties/conformation.ts similarity index 86% rename from src/mol-data/model/properties/conformation.ts rename to src/mol-data/structure/model/properties/conformation.ts index 7ea3c5243..a80739667 100644 --- a/src/mol-data/model/properties/conformation.ts +++ b/src/mol-data/structure/model/properties/conformation.ts @@ -4,8 +4,8 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import Column from '../../../mol-base/collections/column' -import UUID from '../../../mol-base/utils/uuid' +import Column from '../../../../mol-base/collections/column' +import UUID from '../../../../mol-base/utils/uuid' interface Conformation { id: UUID, diff --git a/src/mol-data/model/properties/format-specific.ts b/src/mol-data/structure/model/properties/format-specific.ts similarity index 100% rename from src/mol-data/model/properties/format-specific.ts rename to src/mol-data/structure/model/properties/format-specific.ts diff --git a/src/mol-data/model/properties/hierarchy.ts b/src/mol-data/structure/model/properties/hierarchy.ts similarity index 91% rename from src/mol-data/model/properties/hierarchy.ts rename to src/mol-data/structure/model/properties/hierarchy.ts index e86fc8983..dceb055c4 100644 --- a/src/mol-data/model/properties/hierarchy.ts +++ b/src/mol-data/structure/model/properties/hierarchy.ts @@ -4,10 +4,10 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import Column from '../../../mol-base/collections/column' -import Table from '../../../mol-base/collections/table' -import { Segmentation } from '../../../mol-base/collections/integer' -import { Schema as mmCIF } from '../../../mol-io/reader/cif/schema/mmcif' +import Column from '../../../../mol-base/collections/column' +import Table from '../../../../mol-base/collections/table' +import { Segmentation } from '../../../../mol-base/collections/integer' +import { Schema as mmCIF } from '../../../../mol-io/reader/cif/schema/mmcif' const _esCache = Object.create(null); export interface ElementSymbol extends String { '@type': 'element-symbol' } diff --git a/src/mol-data/model/properties/transforms.ts b/src/mol-data/structure/model/properties/transforms.ts similarity index 100% rename from src/mol-data/model/properties/transforms.ts rename to src/mol-data/structure/model/properties/transforms.ts diff --git a/src/mol-data/model/utils/hierarchy-keys.ts b/src/mol-data/structure/model/utils/hierarchy-keys.ts similarity index 96% rename from src/mol-data/model/utils/hierarchy-keys.ts rename to src/mol-data/structure/model/utils/hierarchy-keys.ts index 6bc5a4a8c..b99cec069 100644 --- a/src/mol-data/model/utils/hierarchy-keys.ts +++ b/src/mol-data/structure/model/utils/hierarchy-keys.ts @@ -4,9 +4,9 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import Column from '../../../mol-base/collections/column' +import Column from '../../../../mol-base/collections/column' import { Data, Segments, Keys } from '../properties/hierarchy' -import { Interval, Segmentation } from '../../../mol-base/collections/integer' +import { Interval, Segmentation } from '../../../../mol-base/collections/integer' function getResidueId(comp_id: string, seq_id: number, ins_code: string) { return `${comp_id} ${seq_id} ${ins_code}`; diff --git a/src/mol-data/query.ts b/src/mol-data/structure/query.ts similarity index 100% rename from src/mol-data/query.ts rename to src/mol-data/structure/query.ts diff --git a/src/mol-data/query/generators.ts b/src/mol-data/structure/query/generators.ts similarity index 97% rename from src/mol-data/query/generators.ts rename to src/mol-data/structure/query/generators.ts index d90d9c3b9..a647260f6 100644 --- a/src/mol-data/query/generators.ts +++ b/src/mol-data/structure/query/generators.ts @@ -8,7 +8,7 @@ import Query from './query' //import Selection from './selection' import * as P from './properties' import { AtomSet, Atom } from '../structure' -import { OrderedSet } from '../../mol-base/collections/integer' +import { OrderedSet } from '../../../mol-base/collections/integer' export interface AtomGroupsSpec { entityTest: Atom.Predicate, diff --git a/src/mol-data/query/properties.ts b/src/mol-data/structure/query/properties.ts similarity index 100% rename from src/mol-data/query/properties.ts rename to src/mol-data/structure/query/properties.ts diff --git a/src/mol-data/query/query.ts b/src/mol-data/structure/query/query.ts similarity index 100% rename from src/mol-data/query/query.ts rename to src/mol-data/structure/query/query.ts diff --git a/src/mol-data/query/selection.ts b/src/mol-data/structure/query/selection.ts similarity index 96% rename from src/mol-data/query/selection.ts rename to src/mol-data/structure/query/selection.ts index d2ef57dff..8e46f0f36 100644 --- a/src/mol-data/query/selection.ts +++ b/src/mol-data/structure/query/selection.ts @@ -4,8 +4,8 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import Iterator from '../../mol-base/collections/iterator' -import HashSet from '../../mol-base/collections/hash-set' +import Iterator from '../../../mol-base/collections/iterator' +import HashSet from '../../../mol-base/collections/hash-set' import { Structure, Atom, AtomSet } from '../structure' type Selection = diff --git a/src/mol-data/structure/structure.ts b/src/mol-data/structure/structure.ts index cc995ad2c..cc8bf49f3 100644 --- a/src/mol-data/structure/structure.ts +++ b/src/mol-data/structure/structure.ts @@ -4,55 +4,10 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { Model } from '../model' -import Unit from './unit' -import Operator from './operator' -import AtomSet from './atom/set' -import { OrderedSet } from '../../mol-base/collections/integer' +import Atom from './structure/atom' +import AtomSet from './structure/atom/set' +import Structure from './structure/structure' +import Operator from './structure/operator' +import Unit from './structure/unit' -interface Structure extends Readonly<{ - units: { readonly [id: number]: Unit }, - atoms: AtomSet -}> { } - -namespace Structure { - export const Empty = { units: {}, atoms: AtomSet.Empty }; - - export function ofModel(model: Model): Structure { - const chains = model.hierarchy.chainSegments; - const builder = Builder(); - - for (let c = 0; c < chains.count; c++) { - const unit = Unit.create(model, Operator.Identity); - builder.addUnit(unit); - builder.addAtoms(unit.id, OrderedSet.ofBounds(chains.segments[c], chains.segments[c + 1])); - } - - return builder.getStructure(); - } - - export interface Builder { - addUnit(unit: Unit): void, - addAtoms(unitId: number, atoms: OrderedSet): void, - getStructure(): Structure, - readonly atomCount: number - } - - class BuilderImpl implements Builder { - private units = Object.create(null); - private atoms = Object.create(null); - atomCount = 0; - - addUnit(unit: Unit) { this.units[unit.id] = unit; } - addAtoms(unitId: number, atoms: OrderedSet) { this.atoms[unitId] = atoms; this.atomCount += OrderedSet.size(atoms); } - getStructure(): Structure { return this.atomCount > 0 ? { units: this.units, atoms: AtomSet.create(this.atoms) } : Empty; } - } - - export function Builder(): Builder { return new BuilderImpl(); } - - - // TODO: "lift" atom set operators? - // TODO: "diff" -} - -export default Structure \ No newline at end of file +export { Atom, AtomSet, Structure, Operator, Unit } \ No newline at end of file diff --git a/src/mol-data/structure/atom.ts b/src/mol-data/structure/structure/atom.ts similarity index 95% rename from src/mol-data/structure/atom.ts rename to src/mol-data/structure/structure/atom.ts index 34a38d169..ddce507fd 100644 --- a/src/mol-data/structure/atom.ts +++ b/src/mol-data/structure/structure/atom.ts @@ -4,7 +4,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { Tuple } from '../../mol-base/collections/integer' +import { Tuple } from '../../../mol-base/collections/integer' import Unit from './unit' import Structure from './structure' diff --git a/src/mol-data/structure/atom/set.ts b/src/mol-data/structure/structure/atom/set.ts similarity index 96% rename from src/mol-data/structure/atom/set.ts rename to src/mol-data/structure/structure/atom/set.ts index 92a04dc70..25a77f423 100644 --- a/src/mol-data/structure/atom/set.ts +++ b/src/mol-data/structure/structure/atom/set.ts @@ -4,7 +4,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { OrderedSet, SortedArray, Iterator } from '../../../mol-base/collections/integer' +import { OrderedSet, SortedArray, Iterator } from '../../../../mol-base/collections/integer' import Atom from '../atom' import * as Impl from './set/impl' import createBuilder from './set/builder' diff --git a/src/mol-data/structure/atom/set/builder.ts b/src/mol-data/structure/structure/atom/set/builder.ts similarity index 93% rename from src/mol-data/structure/atom/set/builder.ts rename to src/mol-data/structure/structure/atom/set/builder.ts index a1940c367..1e6c4beda 100644 --- a/src/mol-data/structure/atom/set/builder.ts +++ b/src/mol-data/structure/structure/atom/set/builder.ts @@ -5,8 +5,8 @@ */ import AtomSet from '../set' -import { OrderedSet } from '../../../../mol-base/collections/integer' -import { sortArray } from '../../../../mol-base/collections/sort' +import { OrderedSet } from '../../../../../mol-base/collections/integer' +import { sortArray } from '../../../../../mol-base/collections/sort' class Builder { private keys: number[] = []; diff --git a/src/mol-data/structure/atom/set/impl.ts b/src/mol-data/structure/structure/atom/set/impl.ts similarity index 98% rename from src/mol-data/structure/atom/set/impl.ts rename to src/mol-data/structure/structure/atom/set/impl.ts index fab4133aa..7f2f2d15f 100644 --- a/src/mol-data/structure/atom/set/impl.ts +++ b/src/mol-data/structure/structure/atom/set/impl.ts @@ -4,9 +4,9 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../mol-base/collections/integer' -import { sortArray } from '../../../../mol-base/collections/sort' -import { hash1 } from '../../../../mol-base/collections/hash-functions' +import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../../mol-base/collections/integer' +import { sortArray } from '../../../../../mol-base/collections/sort' +import { hash1 } from '../../../../../mol-base/collections/hash-functions' import Atom from '../../atom' /** Long and painful implementation starts here */ diff --git a/src/mol-data/structure/atom/set/properties.ts b/src/mol-data/structure/structure/atom/set/properties.ts similarity index 100% rename from src/mol-data/structure/atom/set/properties.ts rename to src/mol-data/structure/structure/atom/set/properties.ts diff --git a/src/mol-data/structure/operator.ts b/src/mol-data/structure/structure/operator.ts similarity index 91% rename from src/mol-data/structure/operator.ts rename to src/mol-data/structure/structure/operator.ts index 484dd7590..363331f27 100644 --- a/src/mol-data/structure/operator.ts +++ b/src/mol-data/structure/structure/operator.ts @@ -4,7 +4,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import { Mat4 } from '../../mol-base/math/linear-algebra' +import { Mat4 } from '../../../mol-base/math/linear-algebra' interface Operator extends Readonly<{ name: string, diff --git a/src/mol-data/structure/structure/structure.ts b/src/mol-data/structure/structure/structure.ts new file mode 100644 index 000000000..31e001a27 --- /dev/null +++ b/src/mol-data/structure/structure/structure.ts @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. + * + * @author David Sehnal <david.sehnal@gmail.com> + */ + +import { Model } from '../model' +import Unit from './unit' +import Operator from './operator' +import AtomSet from './atom/set' +import { OrderedSet } from '../../../mol-base/collections/integer' + +interface Structure extends Readonly<{ + units: { readonly [id: number]: Unit }, + atoms: AtomSet +}> { } + +namespace Structure { + export const Empty = { units: {}, atoms: AtomSet.Empty }; + + export function ofModel(model: Model): Structure { + const chains = model.hierarchy.chainSegments; + const builder = Builder(); + + for (let c = 0; c < chains.count; c++) { + const unit = Unit.create(model, Operator.Identity); + builder.addUnit(unit); + builder.addAtoms(unit.id, OrderedSet.ofBounds(chains.segments[c], chains.segments[c + 1])); + } + + return builder.getStructure(); + } + + export interface Builder { + addUnit(unit: Unit): void, + addAtoms(unitId: number, atoms: OrderedSet): void, + getStructure(): Structure, + readonly atomCount: number + } + + class BuilderImpl implements Builder { + private units = Object.create(null); + private atoms = Object.create(null); + atomCount = 0; + + addUnit(unit: Unit) { this.units[unit.id] = unit; } + addAtoms(unitId: number, atoms: OrderedSet) { this.atoms[unitId] = atoms; this.atomCount += OrderedSet.size(atoms); } + getStructure(): Structure { return this.atomCount > 0 ? { units: this.units, atoms: AtomSet.create(this.atoms) } : Empty; } + } + + export function Builder(): Builder { return new BuilderImpl(); } + + + // TODO: "lift" atom set operators? + // TODO: "diff" +} + +export default Structure \ No newline at end of file diff --git a/src/mol-data/structure/unit.ts b/src/mol-data/structure/structure/unit.ts similarity index 100% rename from src/mol-data/structure/unit.ts rename to src/mol-data/structure/structure/unit.ts diff --git a/src/mol-data/volume/TODO b/src/mol-data/volume/TODO new file mode 100644 index 000000000..e69de29bb diff --git a/src/perf-tests/sets.ts b/src/perf-tests/sets.ts index e4f067085..b499ae2a3 100644 --- a/src/perf-tests/sets.ts +++ b/src/perf-tests/sets.ts @@ -1,6 +1,6 @@ import * as B from 'benchmark' import { Tuple, Segmentation, OrderedSet as OrdSet } from '../mol-base/collections/integer' -import { AtomSet } from '../mol-data/structure' +import { AtomSet } from '../mol-data/structure/structure' export namespace Iteration { const U = 1000, V = 2500; diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts index b066edf91..7da905f45 100644 --- a/src/perf-tests/structure.ts +++ b/src/perf-tests/structure.ts @@ -10,9 +10,9 @@ import * as util from 'util' import * as fs from 'fs' import CIF from '../mol-io/reader/cif' -import { Model } from '../mol-data/Model' -import { Structure, Atom, AtomSet } from '../mol-data/structure' -import * as Q from '../mol-data/query' +import { Model } from '../mol-data/structure/model' +import { Structure, Atom, AtomSet } from '../mol-data/structure/structure' +import * as Q from '../mol-data/structure/query' import { OrderedSet as OrdSet, Segmentation } from '../mol-base/collections/integer' require('util.promisify').shim(); diff --git a/src/script.ts b/src/script.ts index e42be6c0b..7408e72ea 100644 --- a/src/script.ts +++ b/src/script.ts @@ -17,7 +17,7 @@ import CIF from './mol-io/reader/cif' import Computation from './mol-base/computation' -import buildModels from './mol-data/model/builders/mmcif' +import buildModels from './mol-data/structure/model/builders/mmcif' // import { toTypedFrame as applySchema } from './reader/cif/schema' import { generateSchema } from './mol-io/reader/cif/schema/utils' -- GitLab