UNPKG

molstar

Version:

A comprehensive macromolecular library.

160 lines 9.11 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> * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.atomIdFields = exports.entityIdFields = exports.chainIdFields = exports.residueIdFields = exports._atom_site = void 0; var cif_1 = require("../../../../mol-io/writer/cif"); var structure_1 = require("../../structure"); var CifField = cif_1.CifWriter.Field; var E = cif_1.CifWriter.Encodings; function atom_site_label_asym_id(e) { var l = structure_1.StructureProperties.chain.label_asym_id(e); var suffix = e.unit.conformation.operator.suffix; if (!suffix) return l; return l + suffix; } function atom_site_auth_asym_id(e) { var l = structure_1.StructureProperties.chain.auth_asym_id(e); var suffix = e.unit.conformation.operator.suffix; if (!suffix) return l; return l + suffix; } var atom_site_fields = function () { return cif_1.CifWriter.fields() .str('group_PDB', structure_1.StructureProperties.residue.group_PDB) .index('id') .str('type_symbol', structure_1.StructureProperties.atom.type_symbol) .str('label_atom_id', structure_1.StructureProperties.atom.label_atom_id) .str('label_comp_id', structure_1.StructureProperties.atom.label_comp_id) .int('label_seq_id', structure_1.StructureProperties.residue.label_seq_id, { encoder: E.deltaRLE, valueKind: function (k, d) { var m = k.unit.model; return m.atomicHierarchy.residues.label_seq_id.valueKind(m.atomicHierarchy.residueAtomSegments.index[k.element]); } }) .str('label_alt_id', structure_1.StructureProperties.atom.label_alt_id) .str('pdbx_PDB_ins_code', structure_1.StructureProperties.residue.pdbx_PDB_ins_code) .str('label_asym_id', atom_site_label_asym_id) .str('label_entity_id', structure_1.StructureProperties.chain.label_entity_id) .float('Cartn_x', structure_1.StructureProperties.atom.x, { digitCount: 3, encoder: E.fixedPoint3 }) .float('Cartn_y', structure_1.StructureProperties.atom.y, { digitCount: 3, encoder: E.fixedPoint3 }) .float('Cartn_z', structure_1.StructureProperties.atom.z, { digitCount: 3, encoder: E.fixedPoint3 }) .float('occupancy', structure_1.StructureProperties.atom.occupancy, { digitCount: 2, encoder: E.fixedPoint2 }) .float('B_iso_or_equiv', structure_1.StructureProperties.atom.B_iso_or_equiv, { digitCount: 2, encoder: E.fixedPoint2 }) .int('pdbx_formal_charge', structure_1.StructureProperties.atom.pdbx_formal_charge, { encoder: E.deltaRLE, valueKind: function (k, d) { return k.unit.model.atomicHierarchy.atoms.pdbx_formal_charge.valueKind(k.element); } }) .str('auth_atom_id', structure_1.StructureProperties.atom.auth_atom_id) .str('auth_comp_id', structure_1.StructureProperties.atom.auth_comp_id) .int('auth_seq_id', structure_1.StructureProperties.residue.auth_seq_id, { encoder: E.deltaRLE }) .str('auth_asym_id', atom_site_auth_asym_id) .int('pdbx_PDB_model_num', structure_1.StructureProperties.unit.model_num, { encoder: E.deltaRLE }) // .str('operator_name', P.unit.operator_name, { // shouldInclude: structure => structure.units.some(u => !u.conformation.operator.isIdentity) // }) .getFields(); }; exports._atom_site = { name: 'atom_site', instance: function (_a) { var structures = _a.structures; return { fields: atom_site_fields(), source: structures.map(function (s) { return ({ data: s, rowCount: s.elementCount, keys: function () { return s.elementLocations(); } }); }) }; } }; function prepostfixed(prefix, name) { if (prefix) return prefix + "_" + name; return name; } function prefixedInsCode(prefix) { if (!prefix) return 'pdbx_PDB_ins_code'; return "pdbx_" + prefix + "_PDB_ins_code"; } function mappedProp(loc, prop) { return function (k, d) { return prop(loc(k, d)); }; } function addModelNum(fields, getLocation, options) { if (options && options.includeModelNum) { fields.int('pdbx_PDB_model_num', mappedProp(getLocation, structure_1.StructureProperties.unit.model_num)); } } function residueIdFields(getLocation, options) { var prefix = options && options.prefix; var ret = cif_1.CifWriter.fields() .str(prepostfixed(prefix, "label_comp_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.label_comp_id)) .int(prepostfixed(prefix, "label_seq_id"), mappedProp(getLocation, structure_1.StructureProperties.residue.label_seq_id), { encoder: E.deltaRLE, valueKind: function (k, d) { var e = getLocation(k, d); var m = e.unit.model; return m.atomicHierarchy.residues.label_seq_id.valueKind(m.atomicHierarchy.residueAtomSegments.index[e.element]); } }) .str(prefixedInsCode(prefix), mappedProp(getLocation, structure_1.StructureProperties.residue.pdbx_PDB_ins_code)) .str(prepostfixed(prefix, "label_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_asym_id)) .str(prepostfixed(prefix, "label_entity_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_entity_id)) .str(prepostfixed(prefix, "auth_comp_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.auth_comp_id)) .int(prepostfixed(prefix, "auth_seq_id"), mappedProp(getLocation, structure_1.StructureProperties.residue.auth_seq_id), { encoder: E.deltaRLE }) .str(prepostfixed(prefix, "auth_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.auth_asym_id)); addModelNum(ret, getLocation, options); return ret.getFields(); } exports.residueIdFields = residueIdFields; function chainIdFields(getLocation, options) { var prefix = options && options.prefix; var ret = CifField.build() .str(prepostfixed(prefix, "label_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_asym_id)) .str(prepostfixed(prefix, "label_entity_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_entity_id)) .str(prepostfixed(prefix, "auth_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.auth_asym_id)); addModelNum(ret, getLocation, options); return ret.getFields(); } exports.chainIdFields = chainIdFields; function entityIdFields(getLocation, options) { var prefix = options && options.prefix; var ret = CifField.build() .str(prepostfixed(prefix, "label_entity_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_entity_id)); addModelNum(ret, getLocation, options); return ret.getFields(); } exports.entityIdFields = entityIdFields; function atomIdFields(getLocation, options) { var prefix = options && options.prefix; var ret = cif_1.CifWriter.fields() .str(prepostfixed(prefix, "label_atom_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.label_atom_id)) .str(prepostfixed(prefix, "label_comp_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.label_comp_id)) .int(prepostfixed(prefix, "label_seq_id"), mappedProp(getLocation, structure_1.StructureProperties.residue.label_seq_id), { encoder: E.deltaRLE, valueKind: function (k, d) { var e = getLocation(k, d); var m = e.unit.model; return m.atomicHierarchy.residues.label_seq_id.valueKind(m.atomicHierarchy.residueAtomSegments.index[e.element]); } }) .str(prepostfixed(prefix, "label_alt_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.label_alt_id)) .str(prefixedInsCode(prefix), mappedProp(getLocation, structure_1.StructureProperties.residue.pdbx_PDB_ins_code)) .str(prepostfixed(prefix, "label_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_asym_id)) .str(prepostfixed(prefix, "label_entity_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.label_entity_id)) .str(prepostfixed(prefix, "auth_atom_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.auth_atom_id)) .str(prepostfixed(prefix, "auth_comp_id"), mappedProp(getLocation, structure_1.StructureProperties.atom.auth_comp_id)) .int(prepostfixed(prefix, "auth_seq_id"), mappedProp(getLocation, structure_1.StructureProperties.residue.auth_seq_id), { encoder: E.deltaRLE }) .str(prepostfixed(prefix, "auth_asym_id"), mappedProp(getLocation, structure_1.StructureProperties.chain.auth_asym_id)); addModelNum(ret, getLocation, options); return ret.getFields(); } exports.atomIdFields = atomIdFields; //# sourceMappingURL=atom_site.js.map