UNPKG

molstar

Version:

A comprehensive macromolecular library.

54 lines 2.12 kB
/** * 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