molstar
Version:
A comprehensive macromolecular library.
34 lines (33 loc) • 1.49 kB
JavaScript
/**
* 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);
}
;