@datagrok-libraries/bio 5.64.1 → 5.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "access": "public"
9
9
  },
10
10
  "friendlyName": "Datagrok bio library",
11
- "version": "5.64.1",
11
+ "version": "5.65.0",
12
12
  "description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
13
13
  "dependencies": {
14
14
  "@datagrok-libraries/chem-meta": "^1.2.7",
@@ -1 +1 @@
1
- {"version":3,"file":"to-atomic-level-utils.d.ts","sourceRoot":"","sources":["to-atomic-level-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4C,cAAc,EAAwB,kBAAkB,EACzG,cAAc,EAAC,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAC,QAAQ,EAAa,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAC,eAAe,EAAU,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAIvD;;;;iHAIiH;AACjH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GACxE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAuBlB;AAED;;;;;;;+EAO+E;AAC/E,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAC3D,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAC5C,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,cAAc,CA2HhB;AA6YD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
1
+ {"version":3,"file":"to-atomic-level-utils.d.ts","sourceRoot":"","sources":["to-atomic-level-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4C,cAAc,EAAwB,kBAAkB,EACzG,cAAc,EAAC,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAC,QAAQ,EAAa,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAC,eAAe,EAAU,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAIvD;;;;iHAIiH;AACjH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GACxE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAqBlB;AAED;;;;;;;+EAO+E;AAC/E,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAC3D,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAC5C,KAAK,CAAC,EAAE,cAAc,EAAE,GACvB,cAAc,CA6HhB;AAsZD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable max-len */
2
2
  import { monomerWorksConsts as C } from './consts';
3
- import { getMolGraph, MolfileWithMap, MonomerMap } from './types';
3
+ import { getMolGraph, MolfileWithMap, MonomerMap, NucleotideRole } from './types';
4
4
  import { HELM_CORE_FIELDS, } from '../utils/const';
5
5
  import { ALPHABET, GAP_SYMBOL } from '../utils/macromolecule/consts';
6
6
  import { helmTypeToPolymerType } from './monomer-works';
@@ -17,11 +17,8 @@ export function getFormattedMonomerLib(monomerLib, polymerType, alphabet) {
17
17
  // RNA: all branch monomers (bases) and all backbone monomers (sugars +
18
18
  // phosphates, including modified ones). Modifications are looked up by
19
19
  // symbol at assembly time, so they MUST be present in the formatted lib.
20
- polymerType === "RNA" /* HELM_POLYMER_TYPE.RNA */ &&
21
- (it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] === "Branch" /* HELM_MONOMER_TYPE.BRANCH */ ||
22
- it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] === "Backbone" /* HELM_MONOMER_TYPE.BACKBONE */) ||
23
- polymerType === "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */ &&
24
- it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] !== "Branch" /* HELM_MONOMER_TYPE.BRANCH */) {
20
+ polymerType === "RNA" /* HELM_POLYMER_TYPE.RNA */ || (polymerType === "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */ &&
21
+ it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] !== "Branch" /* HELM_MONOMER_TYPE.BRANCH */)) {
25
22
  const monomerObject = {};
26
23
  HELM_CORE_FIELDS.forEach((field) => {
27
24
  //@ts-ignore
@@ -45,13 +42,15 @@ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerT
45
42
  // throw new Error('monomerSeq is empty');
46
43
  return MolfileWithMap.createEmpty();
47
44
  }
48
- // Triples mode is on only when (a) caller flagged the row with roles, and
49
- // (b) the row's length is a positive multiple of 3 (sugar/base/phosphate triples).
50
- // in edge cases, terminal phosphate may be missing, so we also allow length % 3 === 2, but only if roles are present to disambiguate the monomers.
45
+ // Triples mode is on only when the caller flagged the row with roles
46
+ // (built and validated by `buildRolesForHelmRna` in to-atomic-level.ts).
47
+ // The roles array carries the per-position semantics including
48
+ // TERMINAL_5P / TERMINAL_3P for non-canonical chain ends — so we don't
49
+ // re-validate the length here.
51
50
  const triplesMode = polymerType === "RNA" /* HELM_POLYMER_TYPE.RNA */ && !!roles &&
52
- roles.length === monomerSeq.length && (monomerSeq.length % 3 === 0 || monomerSeq.length % 3 === 2);
51
+ roles.length === monomerSeq.length;
53
52
  // define atom and bond counts, taking into account the bond type
54
- const { atomCount, bondCount, needsCapping } = getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode);
53
+ const { atomCount, bondCount, needsCapping } = getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode, roles);
55
54
  // create arrays to store lines of the resulting molfile
56
55
  const molfileAtomBlock = new Array(atomCount);
57
56
  const molfileBondBlock = new Array(bondCount);
@@ -92,7 +91,7 @@ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerT
92
91
  let nAtoms = 0;
93
92
  let lastMonomerCappingAtom = undefined;
94
93
  if (triplesMode) {
95
- runTriplesAssembly(monomerSeq, monomersDict, molfileAtomBlock, molfileBondBlock, v, LC, monomers, steabsCollection, (a) => { nAtoms += a; }, () => nAtoms);
94
+ runTriplesAssembly(monomerSeq, roles, monomersDict, molfileAtomBlock, molfileBondBlock, v, LC, monomers, steabsCollection, (a) => { nAtoms += a; }, () => nAtoms);
96
95
  }
97
96
  else {
98
97
  for (v.i = 0; v.i < LC.seqLength; ++v.i) {
@@ -305,8 +304,9 @@ function fillBackboneToBranchBond(branchMonomer, molfileBondBlock, v) {
305
304
  * @param {ALPHABET} alphabet - the alphabet of the monomers
306
305
  * @param {PolymerType} polymerType - the type of polymer
307
306
  * @param {boolean} triplesMode - true when monomerSeq is a flat list of HELM RNA triples
307
+ * @param {Array} roles - per-position role tags (only meaningful when triplesMode is true)
308
308
  * @return {Object} the atom/bond counts plus needsCapping flag */
309
- function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode) {
309
+ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode, roles) {
310
310
  let atomCount = 0;
311
311
  let bondCount = 0;
312
312
  let monomerCount = 0;
@@ -349,14 +349,19 @@ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerT
349
349
  else if (triplesMode) { // nucleotides — HELM triples (per-position sugar/base/phosphate)
350
350
  void lastPhosphateGraph; // kept for symmetry; trailing P is now retained when HELM wrote it
351
351
  // Per-monomer-loop already summed sugars + bases + phosphates for every
352
- // entry in monomerSeq. Reservation: each backbone (sugar/phosphate)
353
- // reserves +1 bond slot for the chain-extending bond, each branch (base)
354
- // reserves +1 for its branch bond. Total reservations = monomerCount.
355
- // length === 3N → trailing P emitted, monomerCount = 3N.
356
- // length === 3N - 1 → trailing P absent, monomerCount = 3N - 1.
357
- // Either way, bondCount = sum_bonds + monomerCount.
358
- atomCount += 1; // OH cap atom (rides on trailing P or on last sugar's R2)
352
+ // entry in monomerSeq (terminals included). Reservation: each backbone
353
+ // emit (sugar / phosphate / terminal) reserves +1 bond slot for the
354
+ // chain-extending bond, each branch (base) reserves +1 for its branch
355
+ // bond. Total reservations = monomerCount.
359
356
  bondCount += monomerCount;
357
+ // OH cap atom rides on the 3'-end. Skip it when HELM specified a
358
+ // 3'-terminal modifier (e.g. GalNAc) that IS the chain end.
359
+ const has3pTerm = !!roles && roles.length > 0 &&
360
+ roles[roles.length - 1] === NucleotideRole.TERMINAL_3P;
361
+ if (has3pTerm)
362
+ needsCapping = false;
363
+ else
364
+ atomCount += 1; // OH cap atom (rides on trailing P or on last sugar's R2)
360
365
  }
361
366
  else { // nucleotides — bases-only legacy path with default sugar/phosphate
362
367
  const sugar = (alphabet === ALPHABET.DNA) ?
@@ -379,60 +384,66 @@ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerT
379
384
  }
380
385
  return { atomCount, bondCount, needsCapping };
381
386
  }
382
- /** Triples-mode RNA assembly. Iterate by NUCLEOTIDE; each nucleotide normally
383
- * contributes 3 entries from monomerSeq in order [sugar, base, phosphate].
384
- * The LAST nucleotide may omit its trailing phosphate (length === 3N - 1) —
385
- * in that case HELM specified an unphosphorylated 3'-end and we cap on the
386
- * last sugar's R2 instead of on a final phosphate.
387
- *
388
- * @param {ISeqMonomer[]} monomerSeq - flat sugar/base/[phosphate] entries
389
- * @param {MonomerMolGraphMap} monomersDict - monomer dictionary
390
- * @param {string[]} molfileAtomBlock - output atom block buffer
391
- * @param {string[]} molfileBondBlock - output bond block buffer
392
- * @param {LoopVariables} v - mutable loop variables
393
- * @param {LoopConstants} LC - loop constants (seqLength = nucleotide count)
394
- * @param {MonomerMap} monomers - per-position monomer index map (filled in)
395
- * @param {number[]} steabsCollection - stereo atoms collected for STEABS block
396
- * @param {Function} addAtoms - callback to bump per-row atom counter for stereo offsets
397
- * @param {Function} getAtoms - callback to read current atom counter */
398
- function runTriplesAssembly(monomerSeq, monomersDict, molfileAtomBlock, molfileBondBlock, v, LC, monomers, steabsCollection, addAtoms, getAtoms) {
399
- const N = LC.seqLength;
400
- // length === 3N trailing P present. length === 3N-1 trailing P absent.
401
- const hasTrailingP = monomerSeq.length === 3 * N;
387
+ // Triples-mode RNA assembly. Iterates by NUCLEOTIDE over the row's "core"
388
+ // positions (those tagged SUGAR/BASE/PHOSPHATE), and emits at most one
389
+ // TERMINAL_5P at the head and one TERMINAL_3P at the tail.
390
+ //
391
+ // Layout permutations the function handles:
392
+ // roles = [SUGAR, BASE, PHOSPHATE, ...] // standard RNA
393
+ // roles = [..., SUGAR, BASE] // no trailing P
394
+ // roles = [TERMINAL_5P, SUGAR, BASE, PHOSPHATE, ...] // 5' modifier
395
+ // roles = [..., SUGAR, BASE, TERMINAL_3P] // 3' modifier (replaces last P)
396
+ // roles = [TERMINAL_5P, ..., TERMINAL_3P] // both
397
+ //
398
+ // When a TERMINAL_3P is present the OH cap MUST be skipped (the last
399
+ // monomer is the chain end, period); the caller takes responsibility for
400
+ // needsCapping=false in `getResultingAtomBondCounts`.
401
+ function runTriplesAssembly(monomerSeq, roles, monomersDict, molfileAtomBlock, molfileBondBlock, v, LC, monomers, steabsCollection, addAtoms, getAtoms) {
402
+ const has5pTerm = roles.length > 0 && roles[0] === NucleotideRole.TERMINAL_5P;
403
+ const has3pTerm = roles.length > 0 && roles[roles.length - 1] === NucleotideRole.TERMINAL_3P;
404
+ const coreStart = has5pTerm ? 1 : 0;
405
+ const coreEnd = has3pTerm ? roles.length - 1 : roles.length;
406
+ const coreLen = coreEnd - coreStart;
407
+ const N = Math.ceil(coreLen / 3); // nucleotide count in the core
408
+ // coreLen === 3N → trailing P present. coreLen === 3N - 1 → no trailing P.
409
+ const hasTrailingP = coreLen === 3 * N;
410
+ // Helper: emit one monomer as a backbone unit and record its atom/bond
411
+ // ranges in the per-row monomer map.
412
+ const emitBackbone = (sm, mapKey) => {
413
+ const mG = getMolGraph(monomersDict, { symbol: sm.symbol, polymerType: helmTypeToPolymerType(sm.biotype) });
414
+ const aFirst = v.nodeShift;
415
+ const bFirst = v.bondShift;
416
+ addBackboneMonomerToMolblock(mG, molfileAtomBlock, molfileBondBlock, v);
417
+ mG.stereoAtoms?.forEach((i) => steabsCollection.push(i + getAtoms()));
418
+ addAtoms(mG.atoms.x.length);
419
+ const aList = [];
420
+ for (let a = aFirst; a < v.nodeShift; ++a)
421
+ aList.push(a);
422
+ const bList = [];
423
+ for (let b = bFirst; b < v.bondShift; ++b)
424
+ bList.push(b);
425
+ monomers.set(mapKey, { biotype: sm.biotype, symbol: sm.symbol, atoms: aList, bonds: bList });
426
+ };
427
+ // 1. 5'-end terminal modifier (e.g. Chol).
428
+ if (has5pTerm) {
429
+ v.i = 0;
430
+ emitBackbone(monomerSeq[0], 0);
431
+ }
432
+ // 2. Core triples loop: each iteration emits [prev-P (if n>=1)] + sugar + base.
402
433
  for (let n = 0; n < N; ++n) {
403
- v.i = n;
404
- const sugarSm = monomerSeq[3 * n];
405
- const baseSm = monomerSeq[3 * n + 1];
434
+ v.i = n + (has5pTerm ? 1 : 0); // keep v.i monotone across emits
435
+ const sugarSeqIdx = coreStart + 3 * n;
436
+ const baseSeqIdx = sugarSeqIdx + 1;
437
+ const sugarSm = monomerSeq[sugarSeqIdx];
438
+ const baseSm = monomerSeq[baseSeqIdx];
406
439
  const sugarG = getMolGraph(monomersDict, { symbol: sugarSm.symbol, polymerType: helmTypeToPolymerType(sugarSm.biotype) });
407
440
  const baseG = getMolGraph(monomersDict, { symbol: baseSm.symbol, polymerType: helmTypeToPolymerType(baseSm.biotype) });
408
- // The previous nucleotide's trailing phosphate is the linker into THIS
409
- // nucleotide's sugar. It always exists for n >= 1 because only the
410
- // very LAST nucleotide is permitted to omit its phosphate.
411
- const prevPhosG = (n === 0) ? null :
412
- getMolGraph(monomersDict, { symbol: monomerSeq[3 * (n - 1) + 2].symbol,
413
- polymerType: helmTypeToPolymerType(monomerSeq[3 * (n - 1) + 2].biotype) });
414
- // emit prevPhosphate (chain linker), then sugar, then base
415
- const seqStartIdx = 3 * n; // for keying the per-row monomer map by HELM splitter index
416
- if (prevPhosG) {
417
- const prevAtomFirst = v.nodeShift;
418
- const prevBondFirst = v.bondShift;
419
- addBackboneMonomerToMolblock(prevPhosG, molfileAtomBlock, molfileBondBlock, v);
420
- prevPhosG.stereoAtoms?.forEach((i) => steabsCollection.push(i + getAtoms()));
421
- addAtoms(prevPhosG.atoms.x.length);
422
- // The phosphate "belongs to" nucleotide n-1's HELM index (3*(n-1)+2).
423
- const prevPhosKey = 3 * (n - 1) + 2;
424
- const aList = [];
425
- for (let a = prevAtomFirst; a < v.nodeShift; ++a)
426
- aList.push(a);
427
- const bList = [];
428
- for (let b = prevBondFirst; b < v.bondShift; ++b)
429
- bList.push(b);
430
- monomers.set(prevPhosKey, {
431
- biotype: monomerSeq[prevPhosKey].biotype,
432
- symbol: monomerSeq[prevPhosKey].symbol,
433
- atoms: aList, bonds: bList,
434
- });
441
+ // Inter-nucleotide phosphate sits at coreStart + 3*(n-1) + 2 for n >= 1.
442
+ if (n >= 1) {
443
+ const prevPhosKey = coreStart + 3 * (n - 1) + 2;
444
+ emitBackbone(monomerSeq[prevPhosKey], prevPhosKey);
435
445
  }
446
+ // Sugar (backbone)
436
447
  const sugarAtomFirst = v.nodeShift;
437
448
  const sugarBondFirst = v.bondShift;
438
449
  addBackboneMonomerToMolblock(sugarG, molfileAtomBlock, molfileBondBlock, v);
@@ -444,10 +455,11 @@ function runTriplesAssembly(monomerSeq, monomersDict, molfileAtomBlock, molfileB
444
455
  const sBList = [];
445
456
  for (let b = sugarBondFirst; b < v.bondShift; ++b)
446
457
  sBList.push(b);
447
- monomers.set(seqStartIdx, {
458
+ monomers.set(sugarSeqIdx, {
448
459
  biotype: sugarSm.biotype, symbol: sugarSm.symbol,
449
460
  atoms: sAList, bonds: sBList,
450
461
  });
462
+ // Base (branch)
451
463
  const baseAtomFirst = v.nodeShift;
452
464
  const baseBondFirst = v.bondShift;
453
465
  addBranchMonomerToMolblock(baseG, molfileAtomBlock, molfileBondBlock, v);
@@ -459,36 +471,21 @@ function runTriplesAssembly(monomerSeq, monomersDict, molfileAtomBlock, molfileB
459
471
  const bBList = [];
460
472
  for (let b = baseBondFirst; b < v.bondShift; ++b)
461
473
  bBList.push(b);
462
- monomers.set(seqStartIdx + 1, {
474
+ monomers.set(baseSeqIdx, {
463
475
  biotype: baseSm.biotype, symbol: baseSm.symbol,
464
476
  atoms: bAList, bonds: bBList,
465
477
  });
466
478
  }
467
- // Emit the trailing phosphate (the LAST nucleotide's P) as the final
468
- // backbone monomer ONLY if HELM explicitly wrote it. The OH cap then
469
- // rides on its free oxygen (3'-phosphate-OH terminus). If HELM omitted
470
- // the trailing phosphate, the cap rides on the last sugar's R2 — that
471
- // requires no extra emission here, since v.backboneAttachNode already
472
- // points at the last sugar's R2 attach.
479
+ // 3. Trailing phosphate (the LAST nucleotide's P) only if HELM wrote
480
+ // one AND there is no 3'-terminal modifier replacing it.
473
481
  if (hasTrailingP) {
474
- const lastPhosKey = 3 * (N - 1) + 2;
475
- const lastPhosSm = monomerSeq[lastPhosKey];
476
- const lastPhosG = getMolGraph(monomersDict, { symbol: lastPhosSm.symbol, polymerType: helmTypeToPolymerType(lastPhosSm.biotype) });
477
- const trailAtomFirst = v.nodeShift;
478
- const trailBondFirst = v.bondShift;
479
- addBackboneMonomerToMolblock(lastPhosG, molfileAtomBlock, molfileBondBlock, v);
480
- lastPhosG.stereoAtoms?.forEach((i) => steabsCollection.push(i + getAtoms()));
481
- addAtoms(lastPhosG.atoms.x.length);
482
- const tAList = [];
483
- for (let a = trailAtomFirst; a < v.nodeShift; ++a)
484
- tAList.push(a);
485
- const tBList = [];
486
- for (let b = trailBondFirst; b < v.bondShift; ++b)
487
- tBList.push(b);
488
- monomers.set(lastPhosKey, {
489
- biotype: lastPhosSm.biotype, symbol: lastPhosSm.symbol,
490
- atoms: tAList, bonds: tBList,
491
- });
482
+ const lastPhosKey = coreStart + 3 * (N - 1) + 2;
483
+ emitBackbone(monomerSeq[lastPhosKey], lastPhosKey);
484
+ }
485
+ // 4. 3'-end terminal modifier (e.g. GalNAc).
486
+ if (has3pTerm) {
487
+ v.i = N + (has5pTerm ? 1 : 0);
488
+ emitBackbone(monomerSeq[roles.length - 1], roles.length - 1);
492
489
  }
493
490
  }
494
491
  /** Keep precision upon floating point operations over atom coordinates
@@ -1 +1 @@
1
- {"version":3,"file":"to-atomic-level-utils.js","sourceRoot":"","sources":["to-atomic-level-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-atomic-level-utils.js","sourceRoot":"","sources":["to-atomic-level-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"to-atomic-level.d.ts","sourceRoot":"","sources":["to-atomic-level.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EAAC,QAAQ,EAAW,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAQ,KAAK,EAA2C,QAAQ,EACpD,kBAAkB,EAAE,cAAc,EAAoC,MAAM,SAAS,CAAC;AACzG,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAW,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAMjE;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3C,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GACpE,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AA+DD;;4EAE4E;AAC5E,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,CAuB/G;AAGD;;;;;;;;;mFASmF;AACnF,wBAAgB,sBAAsB,CACpC,qBAAqB,EAAE,WAAW,EAAE,EAAE,EACtC,UAAU,EAAE,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5C,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAC5C,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACjD,kBAAkB,CAwDpB;AA8ND;;wDAEwD;AACxD,wBAAgB,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAgB7D;AAmGD;;;qCAGqC;AACrC,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAMhF;AAED;;;sBAGsB;AACtB,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAkBpE;AAED;;;mCAGmC;AACnC,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CA8C3E;AAED;;;;8EAI8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxE;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyC9E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAcnG;AAyfD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAmEtE;AAED,wBAAsB,2BAA2B,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CA8BlH;AAED;;iCAEiC;AACjC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoB1D"}
1
+ {"version":3,"file":"to-atomic-level.d.ts","sourceRoot":"","sources":["to-atomic-level.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EAAC,QAAQ,EAAW,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,eAAe,EAAE,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAQ,KAAK,EAA2C,QAAQ,EACpD,kBAAkB,EAAE,cAAc,EAAoC,MAAM,SAAS,CAAC;AACzG,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EAAW,WAAW,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAMjE;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3C,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,GACpE,OAAO,CAAC,gBAAgB,CAAC,CA8E3B;AAoHD;;4EAE4E;AAC5E,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,WAAW,EAAE,EAAE,CAuB/G;AAGD;;;;;;;;;mFASmF;AACnF,wBAAgB,sBAAsB,CACpC,qBAAqB,EAAE,WAAW,EAAE,EAAE,EACtC,UAAU,EAAE,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5C,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAC5C,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,GACjD,kBAAkB,CAwDpB;AAoRD;;wDAEwD;AACxD,wBAAgB,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAgB7D;AAmGD;;;qCAGqC;AACrC,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,MAAM,CAMhF;AAED;;;sBAGsB;AACtB,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAkBpE;AAED;;;mCAGmC;AACnC,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CA8C3E;AAED;;;;8EAI8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxE;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyC9E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAcnG;AAyfD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAmEtE;AAED,wBAAsB,2BAA2B,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CA8BlH;AAED;;iCAEiC;AACjC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAoB1D"}
@@ -60,7 +60,7 @@ export async function _toAtomicLevel(df, seqCol, monomerLib, seqHelper, rdKitMod
60
60
  const monomerSequencesArray = getMonomerSequencesArray(srcCol, seqHelper);
61
61
  // Per-row roles: only set in HELM RNA/DNA mode where the splitter emits triples.
62
62
  const rolesArray = keepHelmTriples ?
63
- buildRolesForHelmRna(monomerSequencesArray) :
63
+ buildRolesForHelmRna(monomerSequencesArray, monomerLib, polymerType) :
64
64
  new Array(monomerSequencesArray.length).fill(undefined);
65
65
  // In triples mode, override the per-row biotype so it carries NUCLEOTIDE
66
66
  // (rather than whatever the seq-handler defaults to for an UN-alphabet column).
@@ -135,23 +135,77 @@ function pickRnaAlphabetFromHelm(seqCol, seqHelper) {
135
135
  }
136
136
  return ALPHABET.RNA;
137
137
  }
138
+ // Returns 'r1-only' if the lib monomer has a single R-group labeled R1
139
+ // (i.e. a 3'-end terminal modifier like GalNAc), 'r2-only' if it has only
140
+ // R2 (a 5'-end terminal modifier like Chol), and null otherwise.
141
+ //
142
+ // IMPORTANT: nucleobases (A/C/G/U/T and their modified forms) are
143
+ // monomerType='Branch' with a single R1, but they are NOT terminal
144
+ // modifiers — they're branch attachments to the sugar's R3. We exclude
145
+ // Branch monomers explicitly so the splitter's i-th-base position keeps
146
+ // its BASE role.
147
+ function classifyTerminal(monomerLib, polymerType, symbol) {
148
+ const m = monomerLib.getMonomer(polymerType, symbol);
149
+ if (!m || !m.rgroups || m.rgroups.length !== 1)
150
+ return null;
151
+ if (m["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] === "Branch" /* HELM_MONOMER_TYPE.BRANCH */)
152
+ return null;
153
+ const lbl = m.rgroups[0].label;
154
+ if (lbl === 'R1')
155
+ return 'r1-only';
156
+ if (lbl === 'R2')
157
+ return 'r2-only';
158
+ return null;
159
+ }
138
160
  // For HELM RNA rows, the splitter emits sugar/base/phosphate triples in
139
- // that fixed order (per `RNA_HELM_MONOMER_REG`). Tag each entry with its
140
- // role from the index modulo 3. If a row's length is not a multiple of 3,
141
- // the splitter left a monomer unsplit (e.g. `r(A)` with no phosphate); we
142
- // leave roles undefined so that row falls back to bases-only mode.
143
- function buildRolesForHelmRna(monomerSequencesArray) {
161
+ // that fixed order (per `RNA_HELM_TRIPLET_MONOMER_REG`). Tag each entry
162
+ // with its role from its index, then promote first / last entries to
163
+ // TERMINAL_5P / TERMINAL_3P when the lib says they are single-R-group
164
+ // terminal modifiers (Chol / GalNAc-style monomers).
165
+ //
166
+ // Validation: after stripping the terminal positions the remaining "core"
167
+ // length must be 0, 3K, or 3K+2 (the no-trailing-P variant). Rows that
168
+ // don't fit fall back to bases-only mode by returning undefined for that
169
+ // row.
170
+ function buildRolesForHelmRna(monomerSequencesArray, monomerLib, polymerType) {
144
171
  const out = new Array(monomerSequencesArray.length);
145
172
  for (let rowI = 0; rowI < monomerSequencesArray.length; ++rowI) {
146
173
  const row = monomerSequencesArray[rowI];
147
- // handle cases where terminal phosphate is missing
148
- if (row.length === 0 || !(row.length % 3 === 0 || row.length % 3 === 2)) {
174
+ if (row.length === 0) {
175
+ out[rowI] = undefined;
176
+ continue;
177
+ }
178
+ // Detect terminals at row boundaries. Conventionally the start would
179
+ // require r2-only (Chol-style) and the end would require r1-only
180
+ // (GalNAc/Bio-style), but HELM authors sometimes put the "wrong" one
181
+ // at either end. We accept ANY single-R-group non-Branch monomer at
182
+ // each boundary; getMolGraph then swaps the rNodes so the real R
183
+ // ends up where the role expects it.
184
+ const startTerm = row.length >= 1 &&
185
+ classifyTerminal(monomerLib, polymerType, row[0].symbol) !== null;
186
+ // Don't double-count when row.length === 1 and the single monomer
187
+ // already became a 5'-terminal: it doesn't ALSO get treated as a 3'.
188
+ const endTerm = row.length >= 1 && !(startTerm && row.length === 1) &&
189
+ classifyTerminal(monomerLib, polymerType, row[row.length - 1].symbol) !== null;
190
+ const coreLen = row.length - (startTerm ? 1 : 0) - (endTerm ? 1 : 0);
191
+ if (coreLen < 0 || !(coreLen % 3 === 0 || coreLen % 3 === 2)) {
149
192
  out[rowI] = undefined;
150
193
  continue;
151
194
  }
152
195
  const roles = new Array(row.length);
153
- for (let i = 0; i < row.length; ++i)
154
- roles[i] = (i % 3);
196
+ let coreI = 0;
197
+ for (let i = 0; i < row.length; ++i) {
198
+ if (i === 0 && startTerm) {
199
+ roles[i] = NucleotideRole.TERMINAL_5P;
200
+ continue;
201
+ }
202
+ if (i === row.length - 1 && endTerm) {
203
+ roles[i] = NucleotideRole.TERMINAL_3P;
204
+ continue;
205
+ }
206
+ roles[i] = (coreI % 3);
207
+ coreI++;
208
+ }
155
209
  out[rowI] = roles;
156
210
  }
157
211
  return out;
@@ -296,7 +350,31 @@ function getMolGraph(monomerSymbol, formattedMonomerLib, moduleRdkit, polymerTyp
296
350
  (role === undefined && (monomerSymbol === C.RIBOSE.symbol || monomerSymbol === C.DEOXYRIBOSE.symbol));
297
351
  const isPhosphate = role === NucleotideRole.PHOSPHATE ||
298
352
  (role === undefined && monomerSymbol === C.PHOSPHATE.symbol);
299
- if (isSugar)
353
+ const isTerminal = role === NucleotideRole.TERMINAL_5P || role === NucleotideRole.TERMINAL_3P;
354
+ if (isTerminal) {
355
+ // Terminal monomers have ONE real R-group from the lib; the other
356
+ // is a pseudo synthesized by getMonomerMetadata and points at a
357
+ // real atom of the monomer body. The TERMINAL_5P/TERMINAL_3P
358
+ // logic in setShiftsAndTerminalNodes assumes:
359
+ // TERMINAL_5P → real R is at rNodes[1] (chain-extending right).
360
+ // TERMINAL_3P → real R is at rNodes[0] (chain-incoming left).
361
+ // When HELM places a single-R monomer at the "wrong" boundary
362
+ // (e.g. Bio/GalNAc with only R1 at row[0], or Chol with only R2
363
+ // at row[last]), the real R sits at the OTHER index. Swap the
364
+ // rNodes / terminalNodes pair so the existing role logic works.
365
+ const realRLabel = libObject["rgroups" /* HELM_FIELDS.RGROUPS */]?.[0]?.label;
366
+ const realRIdx = realRLabel === 'R1' ? 0 : (realRLabel === 'R2' ? 1 : -1);
367
+ const expectedRealRIdx = role === NucleotideRole.TERMINAL_5P ? 1 : 0;
368
+ if (realRIdx !== -1 && realRIdx !== expectedRealRIdx) {
369
+ [monomerGraph.meta.rNodes[0], monomerGraph.meta.rNodes[1]] =
370
+ [monomerGraph.meta.rNodes[1], monomerGraph.meta.rNodes[0]];
371
+ [monomerGraph.meta.terminalNodes[0], monomerGraph.meta.terminalNodes[1]] =
372
+ [monomerGraph.meta.terminalNodes[1], monomerGraph.meta.terminalNodes[0]];
373
+ }
374
+ // Peptide-style adjustment correctly orients a 2-R monomer.
375
+ adjustPeptideMonomerGraph(monomerGraph);
376
+ }
377
+ else if (isSugar)
300
378
  adjustSugarMonomerGraph(monomerGraph, pointerToBranchAngle);
301
379
  else if (isPhosphate)
302
380
  adjustPhosphateMonomerGraph(monomerGraph);
@@ -333,6 +411,26 @@ function setShiftsAndTerminalNodes(polymerType, monomerGraph, monomerSymbol, rol
333
411
  if (removedR2Atom?.removedAtom)
334
412
  monomerGraph.terminalR2Atom = removedR2Atom.removedAtom; // store the removed R2 Atom type, if any
335
413
  }
414
+ else if (role === NucleotideRole.TERMINAL_5P) {
415
+ // 5'-end terminal modifier (e.g. Chol): R2 is the REAL R-group (chain
416
+ // attach point); R1 is a pseudo synthesized by getMonomerMetadata that
417
+ // points at a real atom of the monomer — DO NOT remove it. Remove the
418
+ // R2 placeholder so the chain bond can attach at terminalNodes[1].
419
+ setShifts(monomerGraph, polymerType);
420
+ removeNodeAndBonds(monomerGraph, monomerGraph.meta.rNodes[1]);
421
+ }
422
+ else if (role === NucleotideRole.TERMINAL_3P) {
423
+ // 3'-end terminal modifier (e.g. GalNAc): R1 is the REAL R-group
424
+ // placeholder. After substituteCapGroups it carries the cap atom type
425
+ // (e.g. 'O' from "OH" or 'H' from "H") — that atom represents the
426
+ // FREE-form residue at this position and MUST be removed when the
427
+ // monomer is in a chain (otherwise we leave a stray OH/H bonded to the
428
+ // chain-attach carbon). After removal, terminalNodes[0] still points
429
+ // at the correct neighbor (the chain-attach atom).
430
+ // R2 is the PSEUDO synthesized by getMonomerMetadata; it points at a
431
+ // real atom of the monomer — DO NOT remove it.
432
+ removeNodeAndBonds(monomerGraph, monomerGraph.meta.rNodes[0]);
433
+ }
336
434
  else { // nucleotides
337
435
  // Prefer explicit role (HELM RNA triples mode); fall back to symbol
338
436
  // matching against canonical r/d/p for the legacy bases-only path.
@@ -355,8 +453,21 @@ function setShiftsAndTerminalNodes(polymerType, monomerGraph, monomerSymbol, rol
355
453
  removeNodeAndBonds(monomerGraph, monomerGraph.meta.rNodes[2]);
356
454
  }
357
455
  else if (isPhosphate) {
358
- monomerGraph.meta.terminalNodes[0] = monomerGraph.meta.rNodes[0];
359
- shiftCoordinates(monomerGraph, -monomerGraph.atoms.x[monomerGraph.meta.terminalNodes[0] - 1], -monomerGraph.atoms.y[monomerGraph.meta.terminalNodes[0] - 1]);
456
+ // Phosphate flow assumes the chain bond comes IN at the substituted
457
+ // R1 atom (e.g. canonical p has R1 cap "OH" → atom is O, the bridging
458
+ // oxygen). Some phosphate variants (sp, en, ...) have R1 cap "H" —
459
+ // their R1 placeholder substitutes to H and gets removed by
460
+ // removeHydrogen. In that case the chain attaches DIRECTLY to the
461
+ // atom previously bonded to R1 (typically the central P), and we
462
+ // must keep terminalNodes[0] pointing at THAT atom (its original
463
+ // setTerminalNodes value), not at the soon-to-disappear H.
464
+ const r1Idx = monomerGraph.meta.rNodes[0] - 1;
465
+ const r1AtomType = monomerGraph.atoms.atomTypes[r1Idx];
466
+ const r1IsH = r1AtomType?.toUpperCase() === C.HYDROGEN;
467
+ if (!r1IsH) {
468
+ monomerGraph.meta.terminalNodes[0] = monomerGraph.meta.rNodes[0];
469
+ shiftCoordinates(monomerGraph, -monomerGraph.atoms.x[monomerGraph.meta.terminalNodes[0] - 1], -monomerGraph.atoms.y[monomerGraph.meta.terminalNodes[0] - 1]);
470
+ }
360
471
  setShifts(monomerGraph, polymerType);
361
472
  removeNodeAndBonds(monomerGraph, monomerGraph.meta.rNodes[1]);
362
473
  }
@@ -1 +1 @@
1
- {"version":3,"file":"to-atomic-level.js","sourceRoot":"","sources":["to-atomic-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"to-atomic-level.js","sourceRoot":"","sources":["to-atomic-level.ts"],"names":[],"mappings":"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"}
@@ -96,11 +96,19 @@ export type LoopConstants = {
96
96
  export type NumberWrapper = {
97
97
  value: number | null;
98
98
  };
99
- /** Role of an entry in a HELM RNA splitted sequence (sugar, base, phosphate). */
99
+ /** Role of an entry in a HELM RNA splitted sequence.
100
+ * SUGAR/BASE/PHOSPHATE are the standard triple positions.
101
+ * TERMINAL_5P marks a 5'-end terminal modifier (e.g. Chol) — a monomer
102
+ * with R2 only that takes the place of the leading sugar.
103
+ * TERMINAL_3P marks a 3'-end terminal modifier (e.g. GalNAc) — a monomer
104
+ * with R1 only that takes the place of the trailing phosphate. The OH cap
105
+ * MUST be omitted when a TERMINAL_3P is present. */
100
106
  export declare enum NucleotideRole {
101
107
  SUGAR = 0,
102
108
  BASE = 1,
103
- PHOSPHATE = 2
109
+ PHOSPHATE = 2,
110
+ TERMINAL_5P = 3,
111
+ TERMINAL_3P = 4
104
112
  }
105
113
  export type MonomerMapValue = {
106
114
  biotype: HelmType;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qHAAqH;IACrH,2BAA2B,EAAE;QAAC,CAAC,WAAW,EAAE,MAAM,GAAG;YAAC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;SAAC,CAAA;KAAC,CAAA;CACxF,CAAA;AAED,yEAAyE;AACzE,MAAM,MAAM,KAAK,GAAG;IAChB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,+CAA+C;IAC/C,CAAC,EAAE,YAAY,CAAC;IAChB,CAAC,EAAE,YAAY,CAAC;IAChB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAA;AAEH,yEAAyE;AACzE,MAAM,MAAM,KAAK,GAAG;IAChB,qDAAqD;IACrD,SAAS,EAAE,WAAW,CAAC;IACvB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB;gEAC4D;IAC5D,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,6CAA6C;IAC7C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,CAAA;AAED,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG;IAC1B;oDACgD;IAChD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAA;CAAE,CAAC;AAE3F,MAAM,MAAM,aAAa,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,CAEjG;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAEpF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAKlG;AAQD,MAAM,MAAM,KAAK,GAAG;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CAEtB,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,iFAAiF;AACjF,oBAAY,cAAc;IACxB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,SAAS,IAAI;CACd;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEtG,qBAAa,UAAW,SAAQ,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;gBAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI;CAGzD;AAED,kDAAkD;AAClD,qBAAa,cAAc;aAEP,OAAO,EAAE,MAAM;aACf,QAAQ,EAAE,UAAU;gBADpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,UAAU;IAGtC,MAAM,CAAC,WAAW;CACnB;AAED,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;IACzB;;sEAEkE;IAClE,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAC7C,YAAY,EAAE,kBAAkB,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
@@ -10,12 +10,20 @@ export function setMolGraph(dict, libKey, value) {
10
10
  pt = dict[libKey.polymerType] = {};
11
11
  pt[libKey.symbol] = value;
12
12
  }
13
- /** Role of an entry in a HELM RNA splitted sequence (sugar, base, phosphate). */
13
+ /** Role of an entry in a HELM RNA splitted sequence.
14
+ * SUGAR/BASE/PHOSPHATE are the standard triple positions.
15
+ * TERMINAL_5P marks a 5'-end terminal modifier (e.g. Chol) — a monomer
16
+ * with R2 only that takes the place of the leading sugar.
17
+ * TERMINAL_3P marks a 3'-end terminal modifier (e.g. GalNAc) — a monomer
18
+ * with R1 only that takes the place of the trailing phosphate. The OH cap
19
+ * MUST be omitted when a TERMINAL_3P is present. */
14
20
  export var NucleotideRole;
15
21
  (function (NucleotideRole) {
16
22
  NucleotideRole[NucleotideRole["SUGAR"] = 0] = "SUGAR";
17
23
  NucleotideRole[NucleotideRole["BASE"] = 1] = "BASE";
18
24
  NucleotideRole[NucleotideRole["PHOSPHATE"] = 2] = "PHOSPHATE";
25
+ NucleotideRole[NucleotideRole["TERMINAL_5P"] = 3] = "TERMINAL_5P";
26
+ NucleotideRole[NucleotideRole["TERMINAL_3P"] = 4] = "TERMINAL_3P";
19
27
  })(NucleotideRole || (NucleotideRole = {}));
20
28
  export class MonomerMap extends Map {
21
29
  constructor(entries) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAmEA,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB;IACzE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB;IACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB,EAAE,KAAe;IAC1F,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACL,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;AAwCD,iFAAiF;AACjF,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qDAAS,CAAA;IACT,mDAAQ,CAAA;IACR,6DAAa,CAAA;AACf,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAID,MAAM,OAAO,UAAW,SAAQ,GAA4B;IAC1D,YAAY,OAA4C;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,OAAO,cAAc;IACzB,YACkB,OAAe,EACf,QAAoB;QADpB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAY;IACnC,CAAC;IAEJ,MAAM,CAAC,WAAW,KAAK,OAAO,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAmEA,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB;IACzE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB;IACzE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAE,MAAqB,EAAE,KAAe;IAC1F,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACL,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC5B,CAAC;AAwCD;;;;;;oDAMoD;AACpD,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,qDAAS,CAAA;IACT,mDAAQ,CAAA;IACR,6DAAa,CAAA;IACb,iEAAe,CAAA;IACf,iEAAe,CAAA;AACjB,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAID,MAAM,OAAO,UAAW,SAAQ,GAA4B;IAC1D,YAAY,OAA4C;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,kDAAkD;AAClD,MAAM,OAAO,cAAc;IACzB,YACkB,OAAe,EACf,QAAoB;QADpB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAY;IACnC,CAAC;IAEJ,MAAM,CAAC,WAAW,KAAK,OAAO,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E"}