@datagrok-libraries/bio 6.0.1 → 6.0.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # bio changelog
2
2
 
3
+ ## 6.0.2 (2026-07-06)
4
+
5
+ * To atomic level (linear path): support multi-chain HELM (e.g. `RNA1{...}|RNA2{...}`) — each disjoint chain is assembled independently and stacked vertically into a single molfile instead of being fused into one continuous chain.
6
+ * Monomer hover (linear path): fix the HELM monomer→atom map — infer polymer type from the parsed HELM graph (not the alphabet, which mis-detects modified RNA as UN) and build the map with per-position RNA roles and multi-chain stacking so it matches the rendered molfile.
7
+
3
8
  ## 5.61.2 (2025-11-03)
4
9
 
5
10
  * Split User settings for duplicate monomer preferences into separate entries to avoid length limits.
package/package.json CHANGED
@@ -8,11 +8,12 @@
8
8
  "access": "public"
9
9
  },
10
10
  "friendlyName": "Datagrok bio library",
11
- "version": "6.0.1",
11
+ "version": "6.0.3",
12
12
  "description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
13
13
  "dependencies": {
14
14
  "@datagrok-libraries/chem-meta": "^1.2.7",
15
15
  "@datagrok-libraries/gridext": "^1.4.0",
16
+ "@datagrok-libraries/hwe": "^1.0.0",
16
17
  "@datagrok-libraries/ml": "^6.7.6",
17
18
  "@datagrok-libraries/utils": "^4.5.7",
18
19
  "@deck.gl/core": "8.8.12",
@@ -24,9 +25,8 @@
24
25
  "lru-cache": "^10.4.3",
25
26
  "mjolnir.js": "^2.7.0",
26
27
  "rxjs": "^6.5.5",
27
- "uuid": "^9.0.1",
28
- "wu": "^2.1.0",
29
- "@datagrok-libraries/hwe": "^1.0.0"
28
+ "uuid": "^11.1.1",
29
+ "wu": "^2.1.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/signals": "1.0.1",
@@ -52,5 +52,8 @@
52
52
  "build-all": "npm --prefix ./../../libraries/chem-meta run build && npm --prefix ./../../js-api run build && npm --prefix ./../../libraries/gridext run build && npm --prefix ./../../libraries/utils run build && npm --prefix ./../../libraries/ml run build && npm run build",
53
53
  "lint": "eslint \"./src/**/*.ts\"",
54
54
  "lint-fix": "eslint \"./src/**/*.ts\" --fix"
55
+ },
56
+ "overrides": {
57
+ "uuid": "^11.1.1"
55
58
  }
56
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"monomer-hover.d.ts","sourceRoot":"","sources":["monomer-hover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAMtC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAIrE,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAK1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGzC,OAAO,EAA0B,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAExE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,QAM7E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACpD,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,GAAE,OAAe,GACrG,OAAO,CAAC,gBAAgB,CAAC,CAyH3B;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,GACvD,IAAI,CAkBN;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAElF"}
1
+ {"version":3,"file":"monomer-hover.d.ts","sourceRoot":"","sources":["monomer-hover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAMtC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAIrE,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAW,WAAW,EAAc,MAAM,eAAe,CAAC;AAKjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGzC,OAAO,EAA0B,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAExE,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AAEzD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,QAM7E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACpD,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,GAAE,OAAe,GACrG,OAAO,CAAC,gBAAgB,CAAC,CAyJ3B;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,GACvD,IAAI,CAkBN;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAElF"}
@@ -1,9 +1,9 @@
1
1
  import wu from 'wu';
2
2
  import { LRUCache } from 'lru-cache';
3
3
  import { addSubstructProvider, getMonomerHover, setMonomerHover } from '@datagrok-libraries/chem-meta/src/types';
4
- import { PolymerTypes } from '../helm/consts';
4
+ import { HelmTypes, PolymerTypes } from '../helm/consts';
5
5
  import { ALPHABET } from '../utils/macromolecule';
6
- import { getMonomersDictFromLib } from './to-atomic-level';
6
+ import { buildRolesForHelmRna, getMonomersDictFromLib } from './to-atomic-level';
7
7
  import { monomerSeqToMolfile } from './to-atomic-level-utils';
8
8
  import { getMolHighlight } from './seq-to-molfile';
9
9
  export const MonomerHoverLinksTemp = 'MonomerHoverLinks';
@@ -28,10 +28,15 @@ export async function buildMonomerHoverLink(seqCol, molCol, monomerLib, seqHelpe
28
28
  const getSeqMonomerCorrectedPosition = (pos) => {
29
29
  if (pos == undefined)
30
30
  return null;
31
- // if its dna or rna, we need to correct position as it will contain sugar and phosphate
32
- // toAtomicLevel returns 15 monomers for 15 nucleotides (r(n)p is one monmer), while helm converter returns 45
31
+ // HELM RNA is split into per-position sugar/base/phosphate monomers, so the
32
+ // renderer reports a flat monomer index and the monomer map is keyed by that
33
+ // same flat index — both for the POM converter and (since the map is now
34
+ // built with roles) for the linear path. No division needed in either case.
33
35
  if (isNucleotideHelmSequence)
34
- return throughPOM ? pos : Math.floor(pos / 3);
36
+ return pos;
37
+ // Non-HELM DNA/RNA: the linear map keys by base position; the POM converter
38
+ // expands each base into a sugar/base/phosphate triple, so map the base to
39
+ // its base entry (the middle of its triple).
35
40
  if (isNucleotideNonHelmSequence)
36
41
  return throughPOM ? pos * 3 + 1 : pos;
37
42
  return pos;
@@ -41,15 +46,38 @@ export async function buildMonomerHoverLink(seqCol, molCol, monomerLib, seqHelpe
41
46
  const seqSH = seqHelper.getSeqHandler(seqCol);
42
47
  if (!throughPOM) {
43
48
  const seqSS = seqSH.getSplitted(tableRowIdx);
44
- const biotype = seqSH.defaultBiotype;
49
+ const gi = seqSS.graphInfo;
50
+ // Polymer type: for HELM read it from the parsed graph rather than the
51
+ // alphabet — modified RNA can mis-detect as ALPHABET.UN. The whole row is
52
+ // assumed to be the first chain's type. Non-HELM falls back to the alphabet.
53
+ let polymerType;
54
+ if (seqSH.isHelm() && gi?.polymerTypes && gi.polymerTypes.length > 0)
55
+ polymerType = gi.polymerTypes[0];
56
+ else {
57
+ const a = seqSH.alphabet;
58
+ polymerType = (a === ALPHABET.RNA || a === ALPHABET.DNA) ? PolymerTypes.RNA : PolymerTypes.PEPTIDE;
59
+ }
60
+ // Coerce a UN alphabet to RNA for the RNA polymer path (only used for the
61
+ // bases-only default sugar/phosphate selection; irrelevant in triples mode).
62
+ let alphabet = seqSH.alphabet;
63
+ if (polymerType === PolymerTypes.RNA && alphabet !== ALPHABET.RNA && alphabet !== ALPHABET.DNA)
64
+ alphabet = ALPHABET.RNA;
65
+ // HELM RNA is assembled from per-position sugar/base/phosphate triples;
66
+ // the monomer map must be built with the same roles (and multi-chain
67
+ // stacking) the real conversion uses, otherwise every monomer is treated
68
+ // as a base and the atom map does not match the rendered molfile.
69
+ const isHelmRna = seqSH.isHelm() && polymerType === PolymerTypes.RNA;
70
+ const biotype = isHelmRna ? HelmTypes.NUCLEOTIDE : seqSH.defaultBiotype;
45
71
  const seqMList = wu.count(0).take(seqSS.length)
46
72
  .map((posIdx) => { return { position: posIdx, symbol: seqSS.getCanonical(posIdx), biotype: biotype }; })
47
73
  .toArray();
48
- const alphabet = seqSH.alphabet;
49
- const polymerType = alphabet == ALPHABET.RNA || alphabet == ALPHABET.DNA ? PolymerTypes.RNA : PolymerTypes.PEPTIDE;
50
- const monomersDict = getMonomersDictFromLib([seqMList], [undefined], polymerType, alphabet, monomerLib, rdKitModule);
74
+ const chainStarts = (gi?.disjointSeqStarts && gi.disjointSeqStarts.length > 0) ?
75
+ gi.disjointSeqStarts.slice() : [0];
76
+ const roles = isHelmRna ?
77
+ buildRolesForHelmRna([seqMList], monomerLib, polymerType, [chainStarts])[0] : undefined;
78
+ const monomersDict = getMonomersDictFromLib([seqMList], [roles], polymerType, alphabet, monomerLib, rdKitModule);
51
79
  // Call seq-to-molfile worker core directly
52
- const molWM = monomerSeqToMolfile(seqMList, monomersDict, alphabet, polymerType);
80
+ const molWM = monomerSeqToMolfile(seqMList, monomersDict, alphabet, polymerType, roles, chainStarts);
53
81
  return molWM.monomers;
54
82
  }
55
83
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"monomer-hover.js","sourceRoot":"","sources":["monomer-hover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monomer-hover.js","sourceRoot":"","sources":["monomer-hover.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { monomerSeqToMolfile } from './to-atomic-level-utils';
2
2
  onmessage = (event) => {
3
- const { seqList, rolesList, monomersDict, alphabet, polymerType, start, end } = event.data;
3
+ const { seqList, rolesList, chainStartsList, monomersDict, alphabet, polymerType, start, end } = event.data;
4
4
  const resMolList = new Array(end - start);
5
5
  const molfileWarningList = new Array(0);
6
6
  for (let rowI = start; rowI < end; ++rowI) {
7
7
  try {
8
8
  const seq = seqList[rowI];
9
9
  const roles = rolesList ? rolesList[rowI] : undefined;
10
- resMolList[rowI - start] = monomerSeqToMolfile(seq, monomersDict, alphabet, polymerType, roles);
10
+ const chainStarts = chainStartsList ? chainStartsList[rowI] : undefined;
11
+ resMolList[rowI - start] = monomerSeqToMolfile(seq, monomersDict, alphabet, polymerType, roles, chainStarts);
11
12
  }
12
13
  catch (err) {
13
14
  const errMsg = err instanceof Error ? err.message : err.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"seq-to-molfile-worker.js","sourceRoot":"","sources":["seq-to-molfile-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAG5D,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;IACpB,MAAM,EAAC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAC,GAA2B,KAAK,CAAC,IAAI,CAAC;IACjH,MAAM,UAAU,GAAqB,IAAI,KAAK,CAAiB,GAAG,GAAG,KAAK,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAClG,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3E,MAAM,GAAG,GAAW,8BAA8B,IAAI,KAAK,MAAM,GAAG,CAAC;YACrE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,WAAW,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAA0B,CAAC,CAAC;AAC7F,CAAC,CAAC"}
1
+ {"version":3,"file":"seq-to-molfile-worker.js","sourceRoot":"","sources":["seq-to-molfile-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AAG5D,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;IACpB,MAAM,EAAC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAC,GACjE,KAAK,CAAC,IAAI,CAAC;IACtC,MAAM,UAAU,GAAqB,IAAI,KAAK,CAAiB,GAAG,GAAG,KAAK,CAAC,CAAC;IAC5E,MAAM,kBAAkB,GAAG,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC3E,MAAM,GAAG,GAAW,8BAA8B,IAAI,KAAK,MAAM,GAAG,CAAC;YACrE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,WAAW,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAA0B,CAAC,CAAC;AAC7F,CAAC,CAAC"}
@@ -13,6 +13,6 @@ export type SeqToMolfileResult = {
13
13
  }[];
14
14
  warnings: string[];
15
15
  };
16
- export declare function seqToMolFileWorker(seqCol: DG.Column<string>, monomersDict: MonomerMolGraphMap, alphabet: ALPHABET, polymerType: PolymerType, monomerLib: IMonomerLib, seqHelper: ISeqHelper, rdKitModule: RDModule, rolesList?: (NucleotideRole[] | undefined)[]): Promise<ToAtomicLevelRes>;
16
+ export declare function seqToMolFileWorker(seqCol: DG.Column<string>, monomersDict: MonomerMolGraphMap, alphabet: ALPHABET, polymerType: PolymerType, monomerLib: IMonomerLib, seqHelper: ISeqHelper, rdKitModule: RDModule, rolesList?: (NucleotideRole[] | undefined)[], chainStartsList?: number[][]): Promise<ToAtomicLevelRes>;
17
17
  export declare function getMolHighlight(monomerMaps: Iterable<MonomerMapValue>, monomerLib: IMonomerLibBase): ISubstruct;
18
18
  //# sourceMappingURL=seq-to-molfile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seq-to-molfile.d.ts","sourceRoot":"","sources":["seq-to-molfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACqB,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAE1F,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAc,WAAW,EAAC,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAC,MAAM,yCAAyC,CAAC;AAGnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,UAAU,CAAA;KACrB,EAAE,CAAC;IACJ,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAClG,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAC5C,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EACrE,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,EAAE,GAC3C,OAAO,CAAC,gBAAgB,CAAC,CAsD3B;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,eAAe,GAAG,UAAU,CAuB/G"}
1
+ {"version":3,"file":"seq-to-molfile.d.ts","sourceRoot":"","sources":["seq-to-molfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAItC,OAAO,EAAC,QAAQ,EAAC,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EAAC,QAAQ,EAAC,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACqB,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAE1F,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAC,WAAW,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAc,WAAW,EAAC,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAC,UAAU,EAAC,MAAM,yCAAyC,CAAC;AAGnE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,UAAU,CAAA;KACrB,EAAE,CAAC;IACJ,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAClG,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAC5C,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EACrE,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,SAAS,CAAC,EAAE,EAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAuD3B;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,eAAe,GAAG,UAAU,CAuB/G"}
@@ -2,7 +2,7 @@ import * as DG from 'datagrok-api/dg';
2
2
  import wu from 'wu';
3
3
  import { getMolColName, hexToPercentRgb } from './utils';
4
4
  import { HelmTypes, PolymerTypes } from '../helm/consts';
5
- export async function seqToMolFileWorker(seqCol, monomersDict, alphabet, polymerType, monomerLib, seqHelper, rdKitModule, rolesList) {
5
+ export async function seqToMolFileWorker(seqCol, monomersDict, alphabet, polymerType, monomerLib, seqHelper, rdKitModule, rolesList, chainStartsList) {
6
6
  const srcColLength = seqCol.length;
7
7
  const df = seqCol.dataFrame;
8
8
  const threadCount = Math.max(navigator.hardwareConcurrency - 2, 1);
@@ -29,7 +29,7 @@ export async function seqToMolFileWorker(seqCol, monomersDict, alphabet, polymer
29
29
  resolve(res.data);
30
30
  };
31
31
  });
32
- worker.postMessage({ seqList, rolesList, monomersDict, alphabet, polymerType, start, end });
32
+ worker.postMessage({ seqList, rolesList, chainStartsList, monomersDict, alphabet, polymerType, start, end });
33
33
  }
34
34
  const molList = [];
35
35
  const warnings = [];
@@ -1 +1 @@
1
- {"version":3,"file":"seq-to-molfile.js","sourceRoot":"","sources":["seq-to-molfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seq-to-molfile.js","sourceRoot":"","sources":["seq-to-molfile.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,25 @@ export declare function getFormattedMonomerLib(monomerLib: IMonomerLibBase, poly
15
15
  * @param {PolymerType} polymerType - Polymer type
16
16
  * @param {Array} roles - Optional per-position NucleotideRole tags. When set, RNA assembly
17
17
  * uses per-position sugars/phosphates from monomerSeq directly (HELM triples mode).
18
+ * @param {number[]} chainStarts - Optional 0-based start positions of disjoint HELM chains.
19
+ * When more than one chain is present each chain is assembled independently and the
20
+ * chains are stacked vertically into a single molfile (multi-strand HELM support).
18
21
  * @return {MolfileWithMap} - Molfile V3000 + per-position monomer index map */
19
- export declare function monomerSeqToMolfile(monomerSeq: ISeqMonomer[], monomersDict: MonomerMolGraphMap, alphabet: ALPHABET, polymerType: PolymerType, roles?: NucleotideRole[]): MolfileWithMap;
22
+ export declare function monomerSeqToMolfile(monomerSeq: ISeqMonomer[], monomersDict: MonomerMolGraphMap, alphabet: ALPHABET, polymerType: PolymerType, roles?: NucleotideRole[], chainStarts?: number[]): MolfileWithMap;
20
23
  /** Keep precision upon floating point operations over atom coordinates
21
24
  * @param {number}x - the floating point number
22
25
  * @return {number} - the floating point number with the same precision
23
26
  */
24
27
  export declare function keepPrecision(x: number): number;
28
+ /** Combine several already-assembled single-chain molfiles into one molfile,
29
+ * stacking them vertically: the first chain keeps its coordinates, every
30
+ * subsequent chain is shifted straight down so its top-most atom sits just
31
+ * below the running bottom of everything placed so far. Atom / bond indices
32
+ * and per-monomer maps are re-based, STEABS collections merged, and the
33
+ * monomer-map keys offset by each chain's start position so the combined map
34
+ * still keys by original flat HELM position.
35
+ * @param {MolfileWithMap[]} parts - per-chain assembled molfiles (chain order)
36
+ * @param {number[]} chainStarts - flat start position of each chain
37
+ * @return {MolfileWithMap} - single combined molfile + merged monomer map */
38
+ export declare function combineMolfilesVertically(parts: MolfileWithMap[], chainStarts: number[]): MolfileWithMap;
25
39
  //# sourceMappingURL=to-atomic-level-utils.d.ts.map
@@ -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,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;AAmWD;;;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;;;;;;;;;;+EAU+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,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAC/C,cAAc,CA8IhB;AAmWD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAmFD;;;;;;;;;6EAS6E;AAC7E,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAkFxG"}
@@ -36,12 +36,31 @@ export function getFormattedMonomerLib(monomerLib, polymerType, alphabet) {
36
36
  * @param {PolymerType} polymerType - Polymer type
37
37
  * @param {Array} roles - Optional per-position NucleotideRole tags. When set, RNA assembly
38
38
  * uses per-position sugars/phosphates from monomerSeq directly (HELM triples mode).
39
+ * @param {number[]} chainStarts - Optional 0-based start positions of disjoint HELM chains.
40
+ * When more than one chain is present each chain is assembled independently and the
41
+ * chains are stacked vertically into a single molfile (multi-strand HELM support).
39
42
  * @return {MolfileWithMap} - Molfile V3000 + per-position monomer index map */
40
- export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerType, roles) {
43
+ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerType, roles, chainStarts) {
41
44
  if (monomerSeq.length === 0) {
42
45
  // throw new Error('monomerSeq is empty');
43
46
  return MolfileWithMap.createEmpty();
44
47
  }
48
+ // Multi-chain HELM (e.g. RNA1{...}|RNA2{...}): assemble each disjoint chain
49
+ // on its own, then stack them vertically into a single molfile. Each chain
50
+ // reuses the exact single-chain assembly below, so its geometry, capping and
51
+ // per-monomer atom/bond map are unchanged; combineMolfilesVertically shifts
52
+ // the coordinates and re-bases the atom/bond indices and monomer-map keys.
53
+ if (chainStarts && chainStarts.length > 1) {
54
+ const parts = new Array(chainStarts.length);
55
+ for (let c = 0; c < chainStarts.length; ++c) {
56
+ const s = chainStarts[c];
57
+ const e = c + 1 < chainStarts.length ? chainStarts[c + 1] : monomerSeq.length;
58
+ const subSeq = monomerSeq.slice(s, e);
59
+ const subRoles = roles ? roles.slice(s, e) : undefined;
60
+ parts[c] = monomerSeqToMolfile(subSeq, monomersDict, alphabet, polymerType, subRoles);
61
+ }
62
+ return combineMolfilesVertically(parts, chainStarts);
63
+ }
45
64
  // Triples mode is on only when the caller flagged the row with roles
46
65
  // (built and validated by `buildRolesForHelmRna` in to-atomic-level.ts).
47
66
  // The roles array carries the per-position semantics — including
@@ -451,4 +470,163 @@ function runTriplesAssembly(monomerSeq, roles, monomersDict, molfileAtomBlock, m
451
470
  export function keepPrecision(x) {
452
471
  return Math.round(C.PRECISION_FACTOR * x) / C.PRECISION_FACTOR;
453
472
  }
473
+ // Vertical gap (in molfile coordinate units) inserted between stacked chains
474
+ // of a multi-strand HELM. Roughly two bond lengths — enough to read the strands
475
+ // as separate without pushing them far apart.
476
+ const CHAIN_VERTICAL_GAP = 3.0;
477
+ const STEABS_MARKER = 'M V30 MDLV30/STEABS ATOMS=(';
478
+ /** Split `body` into its first `n` space-separated tokens plus a trailing
479
+ * remainder token (so the result has n+1 entries). The remainder keeps any
480
+ * embedded spaces of the tail verbatim.
481
+ * @param {string} body - the line body to split
482
+ * @param {number} n - number of leading tokens to peel off
483
+ * @return {string[]} - the n tokens followed by the remainder */
484
+ function splitLeadingTokens(body, n) {
485
+ const out = [];
486
+ let s = body;
487
+ for (let i = 0; i < n; ++i) {
488
+ const sp = s.indexOf(' ');
489
+ if (sp === -1) {
490
+ out.push(s);
491
+ s = '';
492
+ continue;
493
+ }
494
+ out.push(s.substring(0, sp));
495
+ s = s.substring(sp + 1);
496
+ }
497
+ out.push(s);
498
+ return out;
499
+ }
500
+ /** Extract the data lines (`M V30 ...`) between a BEGIN/END marker pair.
501
+ * @param {string} molfile - the V3000 molfile
502
+ * @param {string} beginMarker - the block BEGIN marker line
503
+ * @param {string} endMarker - the block END marker line
504
+ * @return {string[]} - the data lines of the block, newline stripped */
505
+ function extractBlockDataLines(molfile, beginMarker, endMarker) {
506
+ const begin = molfile.indexOf(beginMarker);
507
+ if (begin === -1)
508
+ return [];
509
+ const start = molfile.indexOf('\n', begin) + 1;
510
+ const end = molfile.indexOf(endMarker, start);
511
+ return molfile.substring(start, end === -1 ? molfile.length : end)
512
+ .split('\n')
513
+ .filter((l) => l.startsWith(C.V3K_BEGIN_DATA_LINE))
514
+ .map((l) => l.substring(C.V3K_BEGIN_DATA_LINE.length));
515
+ }
516
+ /** Parse a molfile produced by monomerSeqToMolfile back into atoms / bonds /
517
+ * stereo-atom indices. Robust because we control the exact serialization
518
+ * format; only the fields we need to renumber (indices) and shift (y) are
519
+ * parsed, everything past them is preserved verbatim as an opaque tail.
520
+ * @param {string} molfile - the V3000 molfile
521
+ * @return {ParsedMol} - parsed atoms, bonds and STEABS atom indices */
522
+ function parseGeneratedMolfile(molfile) {
523
+ const atoms = [];
524
+ for (const body of extractBlockDataLines(molfile, C.V3K_BEGIN_ATOM_BLOCK, C.V3K_END_ATOM_BLOCK)) {
525
+ // body: "<idx> <type> <x> <y> <z> <...kwargs>"
526
+ const t = splitLeadingTokens(body, 4); // [idx, type, x, y, tail]
527
+ atoms.push({ type: t[1], xStr: t[2], y: parseFloat(t[3]), tail: t[4] });
528
+ }
529
+ const bonds = [];
530
+ for (const body of extractBlockDataLines(molfile, C.V3K_BEGIN_BOND_BLOCK, C.V3K_END_BOND_BLOCK)) {
531
+ // body: "<idx> <btype> <a1> <a2> <...cfg/kwargs>"
532
+ const t = splitLeadingTokens(body, 4); // [idx, btype, a1, a2, tail]
533
+ bonds.push({ btype: t[1], a1: parseInt(t[2]), a2: parseInt(t[3]), tail: t[4] });
534
+ }
535
+ const steabs = [];
536
+ let idx = molfile.indexOf(STEABS_MARKER);
537
+ while (idx !== -1) {
538
+ idx += STEABS_MARKER.length;
539
+ const closeIdx = molfile.indexOf(')', idx);
540
+ // first entry inside the parens is the atom count, not an atom index
541
+ steabs.push(...molfile.substring(idx, closeIdx).split(' ').slice(1)
542
+ .map((s) => parseInt(s)).filter((n) => !Number.isNaN(n)));
543
+ idx = molfile.indexOf(STEABS_MARKER, closeIdx);
544
+ }
545
+ return { atoms, bonds, steabs };
546
+ }
547
+ /** Combine several already-assembled single-chain molfiles into one molfile,
548
+ * stacking them vertically: the first chain keeps its coordinates, every
549
+ * subsequent chain is shifted straight down so its top-most atom sits just
550
+ * below the running bottom of everything placed so far. Atom / bond indices
551
+ * and per-monomer maps are re-based, STEABS collections merged, and the
552
+ * monomer-map keys offset by each chain's start position so the combined map
553
+ * still keys by original flat HELM position.
554
+ * @param {MolfileWithMap[]} parts - per-chain assembled molfiles (chain order)
555
+ * @param {number[]} chainStarts - flat start position of each chain
556
+ * @return {MolfileWithMap} - single combined molfile + merged monomer map */
557
+ export function combineMolfilesVertically(parts, chainStarts) {
558
+ const combinedAtomLines = [];
559
+ const combinedBondLines = [];
560
+ const combinedSteabs = [];
561
+ const combinedMap = new MonomerMap();
562
+ let atomOffset = 0;
563
+ let bondOffset = 0;
564
+ let runningBottom = Number.POSITIVE_INFINITY; // lowest y placed so far
565
+ let anyPlaced = false;
566
+ for (let c = 0; c < parts.length; ++c) {
567
+ const part = parts[c];
568
+ if (!part || !part.molfile)
569
+ continue;
570
+ const pm = parseGeneratedMolfile(part.molfile);
571
+ if (pm.atoms.length === 0)
572
+ continue;
573
+ let minY = Number.POSITIVE_INFINITY;
574
+ let maxY = Number.NEGATIVE_INFINITY;
575
+ for (const a of pm.atoms) {
576
+ if (a.y < minY)
577
+ minY = a.y;
578
+ if (a.y > maxY)
579
+ maxY = a.y;
580
+ }
581
+ // First placed chain keeps its coordinates; later chains drop below the
582
+ // current bottom, leaving CHAIN_VERTICAL_GAP between the strands.
583
+ const yShift = anyPlaced ? keepPrecision(runningBottom - CHAIN_VERTICAL_GAP - maxY) : 0;
584
+ for (let ai = 0; ai < pm.atoms.length; ++ai) {
585
+ const a = pm.atoms[ai];
586
+ const newIdx = atomOffset + ai + 1;
587
+ const newY = keepPrecision(a.y + yShift);
588
+ combinedAtomLines.push(C.V3K_BEGIN_DATA_LINE + newIdx + ' ' + a.type + ' ' + a.xStr + ' ' + newY + ' ' + a.tail + '\n');
589
+ }
590
+ for (let bi = 0; bi < pm.bonds.length; ++bi) {
591
+ const b = pm.bonds[bi];
592
+ const newIdx = bondOffset + bi + 1;
593
+ const tail = b.tail ? ' ' + b.tail : '';
594
+ combinedBondLines.push(C.V3K_BEGIN_DATA_LINE + newIdx + ' ' + b.btype + ' ' + (b.a1 + atomOffset) + ' ' + (b.a2 + atomOffset) + tail + '\n');
595
+ }
596
+ for (const s of pm.steabs)
597
+ combinedSteabs.push(s + atomOffset);
598
+ const posOffset = chainStarts[c] ?? 0;
599
+ for (const [pos, val] of part.monomers) {
600
+ combinedMap.set(posOffset + pos, {
601
+ biotype: val.biotype,
602
+ symbol: val.symbol,
603
+ atoms: val.atoms.map((x) => x + atomOffset),
604
+ bonds: val.bonds.map((x) => x + bondOffset),
605
+ });
606
+ }
607
+ const newBottom = keepPrecision(minY + yShift);
608
+ runningBottom = anyPlaced ? Math.min(runningBottom, newBottom) : newBottom;
609
+ anyPlaced = true;
610
+ atomOffset += pm.atoms.length;
611
+ bondOffset += pm.bonds.length;
612
+ }
613
+ if (!anyPlaced)
614
+ return MolfileWithMap.createEmpty();
615
+ let result = '';
616
+ result += C.V3K_HEADER_FIRST_LINE;
617
+ result += C.V3K_HEADER_SECOND_LINE;
618
+ result += C.V3K_BEGIN_CTAB_BLOCK;
619
+ result += C.V3K_BEGIN_COUNTS_LINE + atomOffset + ' ' + bondOffset + C.V3K_COUNTS_LINE_ENDING;
620
+ result += C.V3K_BEGIN_ATOM_BLOCK;
621
+ result += combinedAtomLines.join('');
622
+ result += C.V3K_END_ATOM_BLOCK;
623
+ result += C.V3K_BEGIN_BOND_BLOCK;
624
+ result += combinedBondLines.join('');
625
+ result += C.V3K_END_BOND_BLOCK;
626
+ if (combinedSteabs.length > 0)
627
+ result += getCollectionBlock(combinedSteabs);
628
+ result += C.V3K_END_CTAB_BLOCK;
629
+ result += C.V3K_END;
630
+ return { molfile: result, monomers: combinedMap };
631
+ }
454
632
  //# sourceMappingURL=to-atomic-level-utils.js.map
@@ -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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"}
@@ -11,6 +11,7 @@ import { ISeqMonomer, PolymerType } from '../helm/types';
11
11
  * @param {IMonomerLib} monomerLib - Monomer library
12
12
  */
13
13
  export declare function _toAtomicLevel(df: DG.DataFrame, seqCol: DG.Column<string>, monomerLib: IMonomerLib, seqHelper: ISeqHelper, rdKitModule: RDModule): Promise<ToAtomicLevelRes>;
14
+ export declare function buildRolesForHelmRna(monomerSequencesArray: ISeqMonomer[][], monomerLib: IMonomerLibBase, polymerType: PolymerType, chainStartsArray?: number[][]): (NucleotideRole[] | undefined)[];
14
15
  /** Get jagged array of monomer symbols for the dataframe
15
16
  * @param {DG.Column} macroMolCol - Column with macro-molecules
16
17
  * @return {string[]} - Jagged array of monomer symbols for the dataframe */
@@ -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;AA0ID;;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;AAyRD;;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;AA6nBD,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":"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"}