Skip to content
Snippets Groups Projects
Commit fe853077 authored by Alexander Rose's avatar Alexander Rose
Browse files

added more helper methods

parent a68a1886
No related branches found
No related tags found
No related merge requests found
...@@ -31,6 +31,14 @@ namespace Database { ...@@ -31,6 +31,14 @@ namespace Database {
} }
return ret; return ret;
} }
export function getTablesAsRows<S extends Schema>(database: Database<S>) {
const ret: { [k: string]: Table.Row<any>[] } = {};
for (const k of database._tableNames) {
ret[k] = Table.getRows(database[k]);
}
return ret;
}
} }
export default Database export default Database
\ No newline at end of file
...@@ -8,18 +8,21 @@ ...@@ -8,18 +8,21 @@
import parseText from './cif/text/parser' import parseText from './cif/text/parser'
import parseBinary from './cif/binary/parser' import parseBinary from './cif/binary/parser'
import { Frame } from './cif/data-model' import { Frame } from './cif/data-model'
import { toDatabase } from './cif/schema' import { toDatabaseCollection, toDatabase } from './cif/schema'
import { mmCIF_Schema, mmCIF_Database } from './cif/schema/mmcif' import { mmCIF_Schema, mmCIF_Database } from './cif/schema/mmcif'
import { CCD_Schema, CCD_Database } from './cif/schema/ccd' import { CCD_Schema, CCD_Database } from './cif/schema/ccd'
import { BIRD_Schema, BIRD_Database } from './cif/schema/bird'
export default { export default {
parse: (data: string|Uint8Array) => typeof data === 'string' ? parseText(data) : parseBinary(data), parse: (data: string|Uint8Array) => typeof data === 'string' ? parseText(data) : parseBinary(data),
parseText, parseText,
parseBinary, parseBinary,
toDatabaseCollection,
toDatabase, toDatabase,
schema: { schema: {
mmCIF: (frame: Frame) => toDatabase<mmCIF_Schema, mmCIF_Database>(mmCIF_Schema, frame), mmCIF: (frame: Frame) => toDatabase<mmCIF_Schema, mmCIF_Database>(mmCIF_Schema, frame),
CCD: (frame: Frame) => toDatabase<CCD_Schema, CCD_Database>(CCD_Schema, frame) CCD: (frame: Frame) => toDatabase<CCD_Schema, CCD_Database>(CCD_Schema, frame),
BIRD: (frame: Frame) => toDatabase<BIRD_Schema, BIRD_Database>(BIRD_Schema, frame)
} }
} }
......
...@@ -5,11 +5,19 @@ ...@@ -5,11 +5,19 @@
* @author Alexander Rose <alexander.rose@weirdbyte.de> * @author Alexander Rose <alexander.rose@weirdbyte.de>
*/ */
import { Database, Table, Column, ColumnHelpers } from 'mol-data/db' import { DatabaseCollection, Database, Table, Column, ColumnHelpers } from 'mol-data/db'
import { Tensor } from 'mol-math/linear-algebra' import { Tensor } from 'mol-math/linear-algebra'
import { arrayEqual } from 'mol-util' import { arrayEqual } from 'mol-util'
import * as Data from './data-model' import * as Data from './data-model'
export function toDatabaseCollection<Schema extends Database.Schema>(schema: Schema, file: Data.File): DatabaseCollection<Schema> {
const dbc: DatabaseCollection<Schema> = {}
for (const data of file.blocks) {
dbc[data.header] = toDatabase(schema, data)
}
return dbc;
}
export function toDatabase<Schema extends Database.Schema, Frame extends Database<Schema> = Database<Schema>>(schema: Schema, frame: Data.Frame): Frame { export function toDatabase<Schema extends Database.Schema, Frame extends Database<Schema> = Database<Schema>>(schema: Schema, frame: Data.Frame): Frame {
return createDatabase(schema, frame) as Frame; return createDatabase(schema, frame) as Frame;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment