UNPKG

molstar

Version:

A comprehensive macromolecular library.

34 lines (33 loc) 1.49 kB
"use strict"; /** * Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> */ Object.defineProperty(exports, "__esModule", { value: true }); exports._entity_poly_seq = exports._entity_poly = exports._struct_asym = void 0; var db_1 = require("../../../../mol-data/db"); var cif_1 = require("../../../../mol-io/writer/cif"); var utils_1 = require("./utils"); var CifCategory = cif_1.CifWriter.Category; exports._struct_asym = createCategory('struct_asym'); exports._entity_poly = createCategory('entity_poly'); exports._entity_poly_seq = createCategory('entity_poly_seq'); function createCategory(categoryName) { return { name: categoryName, instance: function (_a) { var structures = _a.structures, cache = _a.cache; return getCategoryInstance(structures, categoryName, cache); } }; } function getCategoryInstance(structures, categoryName, cache) { var category = (0, utils_1.getModelMmCifCategory)(structures[0].model, categoryName); if (!category) return CifCategory.Empty; var entity_id = category.entity_id; var names = cache.uniqueEntityIds || (cache.uniqueEntityIds = (0, utils_1.getUniqueEntityIdsFromStructures)(structures)); var indices = db_1.Column.indicesOf(entity_id, function (id) { return names.has(id); }); return CifCategory.ofTable(category, indices); }