molstar
Version:
A comprehensive macromolecular library.
54 lines • 2.12 kB
JavaScript
/**
* Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
* @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
*/
import { DSSPType } from './common';
function isHelixType(f) {
return DSSPType.is(f, 8 /* G */) || DSSPType.is(f, 1 /* H */) || DSSPType.is(f, 16 /* I */);
}
/**
* sheet=: set of one or more ladders connected by shared residues
*
* Type: E
*/
export function assignSheets(ctx) {
var ladders = ctx.ladders, flags = ctx.flags;
for (var ladderIndex = 0; ladderIndex < ladders.length; ladderIndex++) {
var ladder = ladders[ladderIndex];
for (var lcount = ladder.firstStart; lcount <= ladder.firstEnd; lcount++) {
var diff = ladder.firstStart - lcount;
var l2count = ladder.secondStart - diff;
if (ladder.firstStart !== ladder.firstEnd) {
flags[lcount] |= 4 /* E */;
flags[l2count] |= 4 /* E */;
}
else {
if (!isHelixType(flags[lcount]) && DSSPType.is(flags[lcount], 4 /* E */)) {
flags[lcount] |= 2 /* B */;
}
if (!isHelixType(flags[l2count]) && DSSPType.is(flags[l2count], 4 /* E */)) {
flags[l2count] |= 2 /* B */;
}
}
}
if (ladder.nextLadder === 0)
continue;
var conladder = ladders[ladder.nextLadder];
for (var lcount = ladder.firstStart; lcount <= conladder.firstEnd; lcount++) {
flags[lcount] |= 4 /* E */;
}
if (ladder.type === 0 /* PARALLEL */) {
for (var lcount = ladder.secondStart; lcount <= conladder.secondEnd; lcount++) {
flags[lcount] |= 4 /* E */;
}
}
else {
for (var lcount = conladder.secondEnd; lcount <= ladder.secondStart; lcount++) {
flags[lcount] |= 4 /* E */;
}
}
}
}
//# sourceMappingURL=sheets.js.map