molstar
Version:
A comprehensive macromolecular library.
46 lines (45 loc) • 1.96 kB
JavaScript
/**
* Copyright (c) 2017-2022 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.getNormalizedAtomSite = exports.getModelGroupName = void 0;
var db_1 = require("../../../mol-data/db");
function getModelGroupName(model_id, data) {
var ihm_model_group = data.ihm_model_group, ihm_model_group_link = data.ihm_model_group_link;
var link = db_1.Table.pickRow(ihm_model_group_link, function (i) { return ihm_model_group_link.model_id.value(i) === model_id; });
if (link) {
var group = db_1.Table.pickRow(ihm_model_group, function (i) { return ihm_model_group.id.value(i) === link.group_id; });
if (group)
return group.name;
}
return '';
}
exports.getModelGroupName = getModelGroupName;
//
function hasPresentValues(column) {
for (var i = 0, il = column.rowCount; i < il; i++) {
if (column.valueKind(i) === 0 /* Column.ValueKind.Present */)
return true;
}
return false;
}
function substUndefinedColumn(table, a, b) {
if (!table[a].isDefined || !hasPresentValues(table[a]))
table[a] = table[b];
if (!table[b].isDefined || !hasPresentValues(table[b]))
table[b] = table[a];
}
/** Fix possibly missing auth_/label_ columns */
function getNormalizedAtomSite(atom_site) {
var normalized = db_1.Table.ofColumns(atom_site._schema, atom_site);
substUndefinedColumn(normalized, 'label_atom_id', 'auth_atom_id');
substUndefinedColumn(normalized, 'label_comp_id', 'auth_comp_id');
substUndefinedColumn(normalized, 'label_seq_id', 'auth_seq_id');
substUndefinedColumn(normalized, 'label_asym_id', 'auth_asym_id');
return normalized;
}
exports.getNormalizedAtomSite = getNormalizedAtomSite;
;