UNPKG

molstar

Version:

A comprehensive macromolecular library.

170 lines 6.9 kB
/** * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { __awaiter, __generator } from "tslib"; import { StateTransforms } from '../transforms'; import { guessCifVariant } from './provider'; export var TrajectoryFormatCategory = 'Trajectory'; function defaultVisuals(plugin, data) { return plugin.builders.structure.hierarchy.applyPreset(data.trajectory, 'default'); } export var MmcifProvider = { label: 'mmCIF', description: 'mmCIF', category: TrajectoryFormatCategory, stringExtensions: ['cif', 'mmcif', 'mcif'], binaryExtensions: ['bcif'], isApplicable: function (info, data) { if (info.ext === 'mmcif' || info.ext === 'mcif') return true; // assume undetermined cif/bcif files are mmCIF if (info.ext === 'cif' || info.ext === 'bcif') return guessCifVariant(info, data) === -1; return false; }, parse: function (plugin, data, params) { return __awaiter(void 0, void 0, void 0, function () { var state, cif, trajectory; var _a, _b; return __generator(this, function (_c) { switch (_c.label) { case 0: state = plugin.state.data; cif = state.build().to(data) .apply(StateTransforms.Data.ParseCif, void 0, { state: { isGhost: true } }); return [4 /*yield*/, cif .apply(StateTransforms.Model.TrajectoryFromMmCif, void 0, { tags: params === null || params === void 0 ? void 0 : params.trajectoryTags }) .commit({ revertOnError: true })]; case 1: trajectory = _c.sent(); if ((((_b = (_a = cif.selector.cell) === null || _a === void 0 ? void 0 : _a.obj) === null || _b === void 0 ? void 0 : _b.data.blocks.length) || 0) > 1) { plugin.state.data.updateCellState(cif.ref, { isGhost: false }); } return [2 /*return*/, { trajectory: trajectory }]; } }); }); }, visuals: defaultVisuals }; export var CifCoreProvider = { label: 'cifCore', description: 'CIF Core', category: TrajectoryFormatCategory, stringExtensions: ['cif'], isApplicable: function (info, data) { if (info.ext === 'cif') return guessCifVariant(info, data) === 'coreCif'; return false; }, parse: function (plugin, data, params) { return __awaiter(void 0, void 0, void 0, function () { var state, cif, trajectory; var _a, _b; return __generator(this, function (_c) { switch (_c.label) { case 0: state = plugin.state.data; cif = state.build().to(data) .apply(StateTransforms.Data.ParseCif, void 0, { state: { isGhost: true } }); return [4 /*yield*/, cif .apply(StateTransforms.Model.TrajectoryFromCifCore, void 0, { tags: params === null || params === void 0 ? void 0 : params.trajectoryTags }) .commit({ revertOnError: true })]; case 1: trajectory = _c.sent(); if ((((_b = (_a = cif.selector.cell) === null || _a === void 0 ? void 0 : _a.obj) === null || _b === void 0 ? void 0 : _b.data.blocks.length) || 0) > 1) { plugin.state.data.updateCellState(cif.ref, { isGhost: false }); } return [2 /*return*/, { trajectory: trajectory }]; } }); }); }, visuals: defaultVisuals }; function directTrajectory(transformer, transformerParams) { var _this = this; return function (plugin, data, params) { return __awaiter(_this, void 0, void 0, function () { var state, trajectory; return __generator(this, function (_a) { switch (_a.label) { case 0: state = plugin.state.data; return [4 /*yield*/, state.build().to(data) .apply(transformer, transformerParams, { tags: params === null || params === void 0 ? void 0 : params.trajectoryTags }) .commit({ revertOnError: true })]; case 1: trajectory = _a.sent(); return [2 /*return*/, { trajectory: trajectory }]; } }); }); }; } export var PdbProvider = { label: 'PDB', description: 'PDB', category: TrajectoryFormatCategory, stringExtensions: ['pdb', 'ent'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromPDB), visuals: defaultVisuals }; export var PdbqtProvider = { label: 'PDBQT', description: 'PDBQT', category: TrajectoryFormatCategory, stringExtensions: ['pdbqt'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromPDB, { isPdbqt: true }), visuals: defaultVisuals }; export var XyzProvider = { label: 'XYZ', description: 'XYZ', category: TrajectoryFormatCategory, stringExtensions: ['xyz'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromXYZ), visuals: defaultVisuals }; export var GroProvider = { label: 'GRO', description: 'GRO', category: TrajectoryFormatCategory, stringExtensions: ['gro'], binaryExtensions: [], parse: directTrajectory(StateTransforms.Model.TrajectoryFromGRO), visuals: defaultVisuals }; export var MolProvider = { label: 'MOL', description: 'MOL', category: TrajectoryFormatCategory, stringExtensions: ['mol'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromMOL), visuals: defaultVisuals }; export var SdfProvider = { label: 'SDF', description: 'SDF', category: TrajectoryFormatCategory, stringExtensions: ['sdf', 'sd'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromSDF), visuals: defaultVisuals }; export var Mol2Provider = { label: 'MOL2', description: 'MOL2', category: TrajectoryFormatCategory, stringExtensions: ['mol2'], parse: directTrajectory(StateTransforms.Model.TrajectoryFromMOL2), visuals: defaultVisuals }; export var BuiltInTrajectoryFormats = [ ['mmcif', MmcifProvider], ['cifCore', CifCoreProvider], ['pdb', PdbProvider], ['pdbqt', PdbqtProvider], ['gro', GroProvider], ['xyz', XyzProvider], ['mol', MolProvider], ['sdf', SdfProvider], ['mol2', Mol2Provider], ]; //# sourceMappingURL=trajectory.js.map