UNPKG

molstar

Version:

A comprehensive macromolecular library.

72 lines 3.22 kB
"use strict"; /** * Copyright (c) 2019-2020 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.AtomSiteAnisotrop = void 0; var mmcif_1 = require("../../../mol-io/reader/cif/schema/mmcif"); var cif_1 = require("../../../mol-io/writer/cif"); var property_1 = require("../common/property"); var mmcif_2 = require("../mmcif"); var Anisotrop = { U: mmcif_1.mmCIF_Schema.atom_site_anisotrop.U, U_esd: mmcif_1.mmCIF_Schema.atom_site_anisotrop.U_esd }; var AtomSiteAnisotrop; (function (AtomSiteAnisotrop) { AtomSiteAnisotrop.Schema = Anisotrop; AtomSiteAnisotrop.Descriptor = { name: 'atom_site_anisotrop', cifExport: { prefix: '', categories: [{ name: 'atom_site_anisotrop', instance: function (ctx) { var p = AtomSiteAnisotrop.Provider.get(ctx.firstModel); if (!p) return cif_1.CifWriter.Category.Empty; if (!mmcif_2.MmcifFormat.is(ctx.firstModel.sourceData)) return cif_1.CifWriter.Category.Empty; // TODO filter to write only data for elements that exist in model return cif_1.CifWriter.Category.ofTable(ctx.firstModel.sourceData.data.db.atom_site_anisotrop); } }] } }; AtomSiteAnisotrop.Provider = property_1.FormatPropertyProvider.create(AtomSiteAnisotrop.Descriptor); function getElementToAnsiotrop(atomId, ansioId) { var atomIdToElement = new Int32Array(atomId.rowCount); atomIdToElement.fill(-1); for (var i = 0, il = atomId.rowCount; i < il; i++) { atomIdToElement[atomId.value(i)] = i; } var elementToAnsiotrop = new Int32Array(atomId.rowCount); elementToAnsiotrop.fill(-1); for (var i = 0, il = ansioId.rowCount; i < il; ++i) { var ei = atomIdToElement[ansioId.value(i)]; if (ei !== -1) elementToAnsiotrop[ei] = i; } return elementToAnsiotrop; } AtomSiteAnisotrop.getElementToAnsiotrop = getElementToAnsiotrop; function getElementToAnsiotropFromLabel(atomLabel, ansioLabel) { var atomLabelToElement = {}; for (var i = 0, il = atomLabel.rowCount; i < il; i++) { atomLabelToElement[atomLabel.value(i)] = i; } var elementToAnsiotrop = new Int32Array(atomLabel.rowCount); elementToAnsiotrop.fill(-1); for (var i = 0, il = ansioLabel.rowCount; i < il; ++i) { var ei = atomLabelToElement[ansioLabel.value(i)]; if (ei !== undefined) elementToAnsiotrop[ei] = i; } return elementToAnsiotrop; } AtomSiteAnisotrop.getElementToAnsiotropFromLabel = getElementToAnsiotropFromLabel; })(AtomSiteAnisotrop || (AtomSiteAnisotrop = {})); exports.AtomSiteAnisotrop = AtomSiteAnisotrop; //# sourceMappingURL=anisotropic.js.map