UNPKG

molstar

Version:

A comprehensive macromolecular library.

128 lines 5.81 kB
"use strict"; /** * Copyright (c) 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.PDBeStructRefDomain = void 0; var tslib_1 = require("tslib"); var db_1 = require("../../mol-data/db"); var schema_1 = require("../../mol-io/reader/cif/schema"); var cif_1 = require("../../mol-io/writer/cif"); var wrapper_1 = require("../../mol-model-props/common/wrapper"); var mmcif_1 = require("../../mol-model-formats/structure/mmcif"); var custom_property_1 = require("../../mol-model/custom-property"); var PDBeStructRefDomain; (function (PDBeStructRefDomain) { function get(model) { return model._staticPropertyData.__PDBeStructRefSeq__; } PDBeStructRefDomain.get = get; function set(model, prop) { model._staticPropertyData.__PDBeStructRefSeq__ = prop; } PDBeStructRefDomain.Schema = { pdbe_struct_ref_domain: { id: db_1.Column.Schema.int, db_name: db_1.Column.Schema.str, db_code: db_1.Column.Schema.str, identifier: db_1.Column.Schema.str, name: db_1.Column.Schema.str, label_entity_id: db_1.Column.Schema.str, label_asym_id: db_1.Column.Schema.str, beg_label_seq_id: db_1.Column.Schema.int, beg_pdbx_PDB_ins_code: db_1.Column.Schema.str, end_label_seq_id: db_1.Column.Schema.int, end_pdbx_PDB_ins_code: db_1.Column.Schema.str } }; PDBeStructRefDomain.Descriptor = (0, custom_property_1.CustomPropertyDescriptor)({ name: 'pdbe_struct_ref_domain', cifExport: { prefix: 'pdbe', context: function (ctx) { return get(ctx.firstModel); }, categories: [ wrapper_1.PropertyWrapper.defaultInfoCategory('pdbe_struct_ref_domain_info', function (ctx) { return ctx.info; }), { name: 'pdbe_struct_ref_domain', instance: function (ctx) { if (!ctx || !ctx.data) return cif_1.CifWriter.Category.Empty; return cif_1.CifWriter.Category.ofTable(ctx.data); } } ] } }); function fromCifData(model) { if (!mmcif_1.MmcifFormat.is(model.sourceData)) return void 0; var cat = model.sourceData.data.frame.categories.pdbe_struct_ref_domain; if (!cat) return void 0; return (0, schema_1.toTable)(PDBeStructRefDomain.Schema.pdbe_struct_ref_domain, cat); } function attachFromCifOrApi(model, params) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { var table, info, data; return (0, tslib_1.__generator)(this, function (_a) { switch (_a.label) { case 0: if (model.customProperties.has(PDBeStructRefDomain.Descriptor)) return [2 /*return*/, true]; info = wrapper_1.PropertyWrapper.tryGetInfoFromCif('pdbe_struct_ref_domain_info', model); if (!info) return [3 /*break*/, 1]; table = fromCifData(model); return [3 /*break*/, 4]; case 1: if (!params.PDBe_apiSourceJson) return [3 /*break*/, 3]; return [4 /*yield*/, params.PDBe_apiSourceJson(model)]; case 2: data = _a.sent(); if (!data) return [2 /*return*/, false]; info = wrapper_1.PropertyWrapper.createInfo(); table = fromPDBeJson(model, data); return [3 /*break*/, 4]; case 3: return [2 /*return*/, false]; case 4: model.customProperties.add(PDBeStructRefDomain.Descriptor); set(model, { info: info, data: table }); return [2 /*return*/, true]; } }); }); } PDBeStructRefDomain.attachFromCifOrApi = attachFromCifOrApi; })(PDBeStructRefDomain = exports.PDBeStructRefDomain || (exports.PDBeStructRefDomain = {})); function fromPDBeJson(modelData, data) { var rows = []; var id = 1; for (var _i = 0, _a = Object.keys(data); _i < _a.length; _i++) { var db_name = _a[_i]; var db = data[db_name]; for (var _b = 0, _c = Object.keys(db); _b < _c.length; _b++) { var db_code = _c[_b]; var domain = db[db_code]; for (var _d = 0, _e = domain.mappings; _d < _e.length; _d++) { var map = _e[_d]; rows.push({ id: id++, db_name: db_name, db_code: db_code, identifier: domain.identifier, name: domain.name, label_entity_id: '' + map.entity_id, label_asym_id: map.struct_asym_id, beg_label_seq_id: map.start.residue_number, beg_pdbx_PDB_ins_code: map.start.author_insertion_code, end_label_seq_id: map.end.residue_number, end_pdbx_PDB_ins_code: map.end.author_insertion_code, }); } } } return db_1.Table.ofRows(PDBeStructRefDomain.Schema.pdbe_struct_ref_domain, rows); } //# sourceMappingURL=struct-ref-domain.js.map