molstar
Version:
A comprehensive macromolecular library.
85 lines (84 loc) • 4.57 kB
JavaScript
"use strict";
/**
* Copyright (c) 2023-2024 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Adam Midlik <midlik@gmail.com>
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.MolstarTreeSchema = void 0;
const object_1 = require("../../../../mol-util/object.js");
const field_schema_1 = require("../generic/field-schema.js");
const params_schema_1 = require("../generic/params-schema.js");
const tree_schema_1 = require("../generic/tree-schema.js");
const mvs_tree_1 = require("../mvs/mvs-tree.js");
const param_types_1 = require("../mvs/param-types.js");
/** Schema for `MolstarTree` (intermediate tree representation between `MVSTree` and a real Molstar state) */
exports.MolstarTreeSchema = (0, tree_schema_1.TreeSchema)({
rootKind: 'root',
nodes: {
...mvs_tree_1.FullMVSTreeSchema.nodes,
download: {
...mvs_tree_1.FullMVSTreeSchema.nodes.download,
params: (0, params_schema_1.SimpleParamsSchema)({
...mvs_tree_1.FullMVSTreeSchema.nodes.download.params.fields,
/** Specifies whether file is downloaded as bytes array or string */
is_binary: (0, field_schema_1.RequiredField)(field_schema_1.bool, 'Specifies whether file is downloaded as bytes array or string'),
}),
},
parse: {
...mvs_tree_1.FullMVSTreeSchema.nodes.parse,
params: (0, params_schema_1.SimpleParamsSchema)({
/** File format */
format: (0, field_schema_1.RequiredField)(param_types_1.MolstarParseFormatT, 'File format'),
}),
},
/** Auxiliary node corresponding to Molstar's CoordinatesFrom*. */
coordinates: {
description: "Auxiliary node corresponding to Molstar's CoordinatesFrom*.",
parent: ['parse'],
params: (0, params_schema_1.SimpleParamsSchema)({
/** File format */
format: (0, field_schema_1.RequiredField)(param_types_1.MolstarParseFormatT, 'File format'),
}),
},
/** Auxiliary node corresponding to Molstar's TrajectoryFrom*. */
trajectory: {
description: "Auxiliary node corresponding to Molstar's TrajectoryFrom*.",
parent: ['parse'],
params: (0, params_schema_1.SimpleParamsSchema)({
/** File format */
format: (0, field_schema_1.RequiredField)(param_types_1.MolstarParseFormatT, 'File format'),
...(0, object_1.pickObjectKeys)(mvs_tree_1.FullMVSTreeSchema.nodes.structure.params.fields, ['block_header', 'block_index']),
}),
},
/** Auxiliary node corresponding to Molstar's TrajectoryFrom*. */
trajectory_with_coordinates: {
description: 'Auxiliary node corresponding to assigning a separate coordinates to a trajectory.',
parent: ['model'],
params: (0, params_schema_1.SimpleParamsSchema)({
/** Coordinates reference */
coordinates_ref: (0, field_schema_1.RequiredField)(field_schema_1.str, 'Coordinates reference'),
}),
},
topology_with_coordinates: {
description: 'Auxiliary node corresponding to assigning a separate coordinates to a topology.',
parent: ['parse'],
params: (0, params_schema_1.SimpleParamsSchema)({
format: (0, field_schema_1.RequiredField)(param_types_1.MolstarParseFormatT, 'File format'),
coordinates_ref: (0, field_schema_1.RequiredField)(field_schema_1.str, 'Coordinates reference'),
}),
},
/** Auxiliary node corresponding to Molstar's ModelFromTrajectory. */
model: {
description: "Auxiliary node corresponding to Molstar's ModelFromTrajectory.",
parent: ['trajectory', 'trajectory_with_coordinates', 'topology_with_coordinates'],
params: (0, params_schema_1.SimpleParamsSchema)((0, object_1.pickObjectKeys)(mvs_tree_1.FullMVSTreeSchema.nodes.structure.params.fields, ['model_index'])),
},
/** Auxiliary node corresponding to Molstar's StructureFromModel. */
structure: {
...mvs_tree_1.FullMVSTreeSchema.nodes.structure,
parent: ['model'],
params: (0, params_schema_1.SimpleParamsSchema)((0, object_1.omitObjectKeys)(mvs_tree_1.FullMVSTreeSchema.nodes.structure.params.fields, ['block_header', 'block_index', 'model_index', 'coordinates_ref'])),
},
}
});