@datagrok-libraries/bio 5.63.6 → 5.64.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/CLAUDE.md +0 -13
- package/package.json +1 -1
- package/src/monomer-works/monomer-hover.js +1 -1
- package/src/monomer-works/monomer-hover.js.map +1 -1
- package/src/monomer-works/seq-to-molfile-worker.js +3 -2
- package/src/monomer-works/seq-to-molfile-worker.js.map +1 -1
- package/src/monomer-works/seq-to-molfile.d.ts +2 -2
- package/src/monomer-works/seq-to-molfile.d.ts.map +1 -1
- package/src/monomer-works/seq-to-molfile.js +2 -2
- package/src/monomer-works/seq-to-molfile.js.map +1 -1
- package/src/monomer-works/to-atomic-level-utils.d.ts +7 -5
- package/src/monomer-works/to-atomic-level-utils.d.ts.map +1 -1
- package/src/monomer-works/to-atomic-level-utils.js +195 -46
- package/src/monomer-works/to-atomic-level-utils.js.map +1 -1
- package/src/monomer-works/to-atomic-level.d.ts +7 -5
- package/src/monomer-works/to-atomic-level.d.ts.map +1 -1
- package/src/monomer-works/to-atomic-level.js +156 -36
- package/src/monomer-works/to-atomic-level.js.map +1 -1
- package/src/monomer-works/types.d.ts +10 -0
- package/src/monomer-works/types.d.ts.map +1 -1
- package/src/monomer-works/types.js +7 -0
- package/src/monomer-works/types.js.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.d.ts +3 -0
- package/src/utils/cell-renderer-monomer-placer.d.ts.map +1 -1
- package/src/utils/cell-renderer-monomer-placer.js +71 -10
- package/src/utils/cell-renderer-monomer-placer.js.map +1 -1
- package/src/utils/macromolecule/utils.d.ts +2 -0
- package/src/utils/macromolecule/utils.d.ts.map +1 -1
- package/src/utils/macromolecule/utils.js +19 -3
- package/src/utils/macromolecule/utils.js.map +1 -1
- package/src/utils/macromolecule-highlight.d.ts +87 -0
- package/src/utils/macromolecule-highlight.d.ts.map +1 -0
- package/src/utils/macromolecule-highlight.js +87 -0
- package/src/utils/macromolecule-highlight.js.map +1 -0
- package/src/utils/monomer-selection-dialog.js +1 -1
- package/src/utils/monomer-selection-dialog.js.map +1 -1
package/CLAUDE.md
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
# CLAUDE.md
|
|
2
2
|
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
3
|
## Overview
|
|
6
4
|
|
|
7
5
|
**@datagrok-libraries/bio** is the core shared library for all bioinformatics functionality in the Datagrok platform. It provides types, utilities, renderers, and service interfaces for working with macromolecules (peptides, DNA, RNA, HELM), 3D molecular structures (PDB/PDBQT/mmCIF), phylogenetic trees, and monomer libraries.
|
|
8
6
|
|
|
9
7
|
This is a **library** (not a package) — it has no `package.ts`, no webpack, no platform registration. It is compiled with `tsc` to `.js`/`.d.ts` and consumed by multiple packages (`Bio`, `Helm`, `Peptides`, `BiostructureViewer`, `Dendrogram`, `HitTriage`, etc.).
|
|
10
8
|
|
|
11
|
-
## Build Commands
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install
|
|
15
|
-
npm run build # grok check --soft && tsc
|
|
16
|
-
npm run build-all # Builds chem-meta → js-api → gridext → utils → ml → this library
|
|
17
|
-
npm run lint # eslint "./src/**/*.ts"
|
|
18
|
-
npm run lint-fix
|
|
19
|
-
npm run link-all # Links chem-meta, datagrok-api, gridext, utils, ml
|
|
20
|
-
```
|
|
21
|
-
|
|
22
9
|
## Key Dependencies
|
|
23
10
|
|
|
24
11
|
- `datagrok-api` — platform API (`DG`, `grok`, `ui`)
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
10
10
|
"friendlyName": "Datagrok bio library",
|
|
11
|
-
"version": "5.
|
|
11
|
+
"version": "5.64.0",
|
|
12
12
|
"description": "Bio utilities, types supporting Macromolecule, Molecule3D data",
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@datagrok-libraries/chem-meta": "^1.2.7",
|
|
@@ -46,7 +46,7 @@ export async function buildMonomerHoverLink(seqCol, molCol, monomerLib, seqHelpe
|
|
|
46
46
|
.toArray();
|
|
47
47
|
const alphabet = seqSH.alphabet;
|
|
48
48
|
const polymerType = alphabet == ALPHABET.RNA || alphabet == ALPHABET.DNA ? "RNA" /* PolymerTypes.RNA */ : "PEPTIDE" /* PolymerTypes.PEPTIDE */;
|
|
49
|
-
const monomersDict = getMonomersDictFromLib([seqMList], polymerType, alphabet, monomerLib, rdKitModule);
|
|
49
|
+
const monomersDict = getMonomersDictFromLib([seqMList], [undefined], polymerType, alphabet, monomerLib, rdKitModule);
|
|
50
50
|
// Call seq-to-molfile worker core directly
|
|
51
51
|
const molWM = monomerSeqToMolfile(seqMList, monomersDict, alphabet, polymerType);
|
|
52
52
|
return molWM.monomers;
|
|
@@ -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,12 +1,13 @@
|
|
|
1
1
|
import { monomerSeqToMolfile } from './to-atomic-level-utils';
|
|
2
2
|
onmessage = (event) => {
|
|
3
|
-
const { seqList, monomersDict, alphabet, polymerType, start, end } = event.data;
|
|
3
|
+
const { seqList, rolesList, 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
11
|
}
|
|
11
12
|
catch (err) {
|
|
12
13
|
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,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAC,GAA2B,KAAK,CAAC,IAAI,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,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,7 +1,7 @@
|
|
|
1
1
|
import * as DG from 'datagrok-api/dg';
|
|
2
2
|
import { RDModule } from '@datagrok-libraries/chem-meta/src/rdkit-api';
|
|
3
3
|
import { ALPHABET } from '../utils/macromolecule';
|
|
4
|
-
import { MonomerMap, MonomerMapValue, MonomerMolGraphMap } from './types';
|
|
4
|
+
import { MonomerMap, MonomerMapValue, MonomerMolGraphMap, NucleotideRole } from './types';
|
|
5
5
|
import { ISeqHelper, ToAtomicLevelRes } from '../utils/seq-helper';
|
|
6
6
|
import { IMonomerLib, IMonomerLibBase } from '../types/monomer-library';
|
|
7
7
|
import { PolymerType } from '../helm/types';
|
|
@@ -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): 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)[]): 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,
|
|
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"}
|
|
@@ -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 } from '../helm/consts';
|
|
5
|
-
export async function seqToMolFileWorker(seqCol, monomersDict, alphabet, polymerType, monomerLib, seqHelper, rdKitModule) {
|
|
5
|
+
export async function seqToMolFileWorker(seqCol, monomersDict, alphabet, polymerType, monomerLib, seqHelper, rdKitModule, rolesList) {
|
|
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, monomersDict, alphabet, polymerType, start, end });
|
|
32
|
+
worker.postMessage({ seqList, rolesList, 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":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,MAAM,IAAI,CAAC;AAWpB,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AAGvD,OAAO,EAAC,SAAS,EAAe,MAAM,gBAAgB,CAAC;AAYvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAyB,EAAE,YAAgC,EAClG,QAAkB,EAAE,WAAwB,EAC5C,UAAuB,EAAE,SAAqB,EAAE,WAAqB;
|
|
1
|
+
{"version":3,"file":"seq-to-molfile.js","sourceRoot":"","sources":["seq-to-molfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MolfileWithMap, MonomerMolGraphMap } from './types';
|
|
1
|
+
import { MolfileWithMap, MonomerMolGraphMap, NucleotideRole } from './types';
|
|
2
2
|
import { ALPHABET } from '../utils/macromolecule/consts';
|
|
3
3
|
import { IMonomerLibBase } from '../types/monomer-library';
|
|
4
4
|
import { ISeqMonomer, PolymerType } from '../helm/types';
|
|
@@ -9,12 +9,14 @@ import { ISeqMonomer, PolymerType } from '../helm/types';
|
|
|
9
9
|
* @return {Map<string, any>} - Mapping of peptide symbols to HELM monomer library objects with selected fields*/
|
|
10
10
|
export declare function getFormattedMonomerLib(monomerLib: IMonomerLibBase, polymerType: PolymerType, alphabet: ALPHABET): Map<string, any>;
|
|
11
11
|
/** Translate a sequence of monomer symbols into Molfile V3000
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
12
|
+
* @param {ISeqMonomer[]} monomerSeq - Sequence of monomer symbols (canonical)
|
|
13
|
+
* @param {MonomerMolGraphMap} monomersDict - Mapping of monomer symbols to MolGraph objects
|
|
14
14
|
* @param {ALPHABET} alphabet - Alphabet of the column
|
|
15
15
|
* @param {PolymerType} polymerType - Polymer type
|
|
16
|
-
* @
|
|
17
|
-
|
|
16
|
+
* @param {Array} roles - Optional per-position NucleotideRole tags. When set, RNA assembly
|
|
17
|
+
* uses per-position sugars/phosphates from monomerSeq directly (HELM triples mode).
|
|
18
|
+
* @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;
|
|
18
20
|
/** Keep precision upon floating point operations over atom coordinates
|
|
19
21
|
* @param {number}x - the floating point number
|
|
20
22
|
* @return {number} - the floating point number with the same precision
|
|
@@ -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,EAAC,MAAM,SAAS,CAAC;
|
|
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"}
|
|
@@ -13,11 +13,13 @@ export function getFormattedMonomerLib(monomerLib, polymerType, alphabet) {
|
|
|
13
13
|
const map = new Map();
|
|
14
14
|
for (const monomerSymbol of monomerLib.getMonomerSymbolsByType(polymerType)) {
|
|
15
15
|
const it = monomerLib.getMonomer(polymerType, monomerSymbol);
|
|
16
|
-
if (
|
|
16
|
+
if (
|
|
17
|
+
// RNA: all branch monomers (bases) and all backbone monomers (sugars +
|
|
18
|
+
// phosphates, including modified ones). Modifications are looked up by
|
|
19
|
+
// symbol at assembly time, so they MUST be present in the formatted lib.
|
|
20
|
+
polymerType === "RNA" /* HELM_POLYMER_TYPE.RNA */ &&
|
|
17
21
|
(it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] === "Branch" /* HELM_MONOMER_TYPE.BRANCH */ ||
|
|
18
|
-
|
|
19
|
-
alphabet === ALPHABET.RNA && it["symbol" /* HELM_FIELDS.SYMBOL */] === C.RIBOSE.symbol ||
|
|
20
|
-
it["symbol" /* HELM_FIELDS.SYMBOL */] === C.PHOSPHATE.symbol) ||
|
|
22
|
+
it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] === "Backbone" /* HELM_MONOMER_TYPE.BACKBONE */) ||
|
|
21
23
|
polymerType === "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */ &&
|
|
22
24
|
it["monomerType" /* HELM_FIELDS.MONOMER_TYPE */] !== "Branch" /* HELM_MONOMER_TYPE.BRANCH */) {
|
|
23
25
|
const monomerObject = {};
|
|
@@ -31,19 +33,25 @@ export function getFormattedMonomerLib(monomerLib, polymerType, alphabet) {
|
|
|
31
33
|
return map;
|
|
32
34
|
}
|
|
33
35
|
/** Translate a sequence of monomer symbols into Molfile V3000
|
|
34
|
-
* @param {
|
|
35
|
-
* @param {
|
|
36
|
+
* @param {ISeqMonomer[]} monomerSeq - Sequence of monomer symbols (canonical)
|
|
37
|
+
* @param {MonomerMolGraphMap} monomersDict - Mapping of monomer symbols to MolGraph objects
|
|
36
38
|
* @param {ALPHABET} alphabet - Alphabet of the column
|
|
37
39
|
* @param {PolymerType} polymerType - Polymer type
|
|
38
|
-
* @
|
|
39
|
-
|
|
40
|
+
* @param {Array} roles - Optional per-position NucleotideRole tags. When set, RNA assembly
|
|
41
|
+
* uses per-position sugars/phosphates from monomerSeq directly (HELM triples mode).
|
|
42
|
+
* @return {MolfileWithMap} - Molfile V3000 + per-position monomer index map */
|
|
43
|
+
export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerType, roles) {
|
|
40
44
|
if (monomerSeq.length === 0) {
|
|
41
45
|
// throw new Error('monomerSeq is empty');
|
|
42
46
|
return MolfileWithMap.createEmpty();
|
|
43
47
|
}
|
|
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.
|
|
51
|
+
const triplesMode = polymerType === "RNA" /* HELM_POLYMER_TYPE.RNA */ && !!roles &&
|
|
52
|
+
roles.length === monomerSeq.length && (monomerSeq.length % 3 === 0 || monomerSeq.length % 3 === 2);
|
|
44
53
|
// define atom and bond counts, taking into account the bond type
|
|
45
|
-
const
|
|
46
|
-
const { atomCount, bondCount, needsCapping } = getAtomAndBondCounts(monomerSeq, monomersDict, alphabet, polymerType);
|
|
54
|
+
const { atomCount, bondCount, needsCapping } = getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode);
|
|
47
55
|
// create arrays to store lines of the resulting molfile
|
|
48
56
|
const molfileAtomBlock = new Array(atomCount);
|
|
49
57
|
const molfileBondBlock = new Array(bondCount);
|
|
@@ -54,8 +62,12 @@ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
54
62
|
addMonomerToMolblock = addAminoAcidToMolblock;
|
|
55
63
|
else { // nucleotides
|
|
56
64
|
addMonomerToMolblock = addNucleotideToMolblock;
|
|
57
|
-
sugar
|
|
58
|
-
|
|
65
|
+
// Default sugar/phosphate are only consulted in bases-only mode. In
|
|
66
|
+
// triples mode, every nucleotide carries its own.
|
|
67
|
+
if (!triplesMode) {
|
|
68
|
+
sugar = (alphabet === ALPHABET.DNA) ? getMolGraph(monomersDict, C.DEOXYRIBOSE) : getMolGraph(monomersDict, C.RIBOSE);
|
|
69
|
+
phosphate = getMolGraph(monomersDict, C.PHOSPHATE);
|
|
70
|
+
}
|
|
59
71
|
}
|
|
60
72
|
const v = {
|
|
61
73
|
i: 0,
|
|
@@ -70,7 +82,8 @@ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
70
82
|
const LC = {
|
|
71
83
|
sugar: sugar,
|
|
72
84
|
phosphate: phosphate,
|
|
73
|
-
|
|
85
|
+
// In triples mode, the "logical" sequence length is the nucleotide count.
|
|
86
|
+
seqLength: triplesMode ? Math.ceil(monomerSeq.length / 3) : monomerSeq.length,
|
|
74
87
|
atomCount: atomCount,
|
|
75
88
|
bondCount: bondCount,
|
|
76
89
|
};
|
|
@@ -78,31 +91,36 @@ export function monomerSeqToMolfile(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
78
91
|
const steabsCollection = [];
|
|
79
92
|
let nAtoms = 0;
|
|
80
93
|
let lastMonomerCappingAtom = undefined;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
if (triplesMode) {
|
|
95
|
+
runTriplesAssembly(monomerSeq, monomersDict, molfileAtomBlock, molfileBondBlock, v, LC, monomers, steabsCollection, (a) => { nAtoms += a; }, () => nAtoms);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
for (v.i = 0; v.i < LC.seqLength; ++v.i) {
|
|
99
|
+
const seqMonomer = monomerSeq[v.i];
|
|
100
|
+
if (seqMonomer.symbol === GAP_SYMBOL)
|
|
101
|
+
continue;
|
|
102
|
+
const monomer = getMolGraph(monomersDict, { symbol: seqMonomer.symbol, polymerType: helmTypeToPolymerType(seqMonomer.biotype) });
|
|
103
|
+
lastMonomerCappingAtom = monomer.terminalR2Atom;
|
|
104
|
+
const mAtomFirst = v.nodeShift;
|
|
105
|
+
const mBondFirst = v.bondShift;
|
|
106
|
+
addMonomerToMolblock(monomer, molfileAtomBlock, molfileBondBlock, v, LC);
|
|
107
|
+
//adding stereo atoms to array for further STEABS block generation
|
|
108
|
+
monomer.stereoAtoms?.forEach((i) => steabsCollection.push(i + nAtoms));
|
|
109
|
+
nAtoms += monomer.atoms.x.length;
|
|
110
|
+
const mAtomCount = v.nodeShift - mAtomFirst;
|
|
111
|
+
const mAtomList = new Array(mAtomCount);
|
|
112
|
+
for (let maI = 0; maI < mAtomCount; ++maI)
|
|
113
|
+
mAtomList[maI] = mAtomFirst + maI;
|
|
114
|
+
const mBondCount = v.bondShift - mBondFirst;
|
|
115
|
+
const mBondList = new Array(mBondCount);
|
|
116
|
+
for (let mbI = 0; mbI < mBondCount; ++mbI)
|
|
117
|
+
mBondList[mbI] = mBondFirst + mbI;
|
|
118
|
+
monomers.set(v.i, {
|
|
119
|
+
biotype: seqMonomer.biotype,
|
|
120
|
+
symbol: seqMonomer.symbol,
|
|
121
|
+
atoms: mAtomList, bonds: mBondList
|
|
122
|
+
});
|
|
123
|
+
}
|
|
106
124
|
}
|
|
107
125
|
// if the last monomer needs to be capped, add the terminal OH to the resulting molfile
|
|
108
126
|
if (needsCapping)
|
|
@@ -282,19 +300,22 @@ function fillBackboneToBranchBond(branchMonomer, molfileBondBlock, v) {
|
|
|
282
300
|
}
|
|
283
301
|
/** Compute the atom/bond counts for the resulting molfile, depending on the
|
|
284
302
|
* type of polymer (peptide/nucleotide)
|
|
285
|
-
* @param {
|
|
286
|
-
* @param {
|
|
287
|
-
* @param {ALPHABET}alphabet - the alphabet of the monomers
|
|
288
|
-
* @param {
|
|
289
|
-
* @
|
|
290
|
-
|
|
303
|
+
* @param {ISeqMonomer[]} monomerSeq - the sequence of monomers
|
|
304
|
+
* @param {MonomerMolGraphMap} monomersDict - the dictionary of monomers
|
|
305
|
+
* @param {ALPHABET} alphabet - the alphabet of the monomers
|
|
306
|
+
* @param {PolymerType} polymerType - the type of polymer
|
|
307
|
+
* @param {boolean} triplesMode - true when monomerSeq is a flat list of HELM RNA triples
|
|
308
|
+
* @return {Object} the atom/bond counts plus needsCapping flag */
|
|
309
|
+
function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerType, triplesMode) {
|
|
291
310
|
let atomCount = 0;
|
|
292
311
|
let bondCount = 0;
|
|
293
312
|
let monomerCount = 0;
|
|
294
313
|
let needsCapping = true;
|
|
295
314
|
let lastMonomerGraph = null;
|
|
315
|
+
let lastPhosphateGraph = null;
|
|
296
316
|
// sum up all the atoms/nodes provided by the sequence
|
|
297
|
-
for (
|
|
317
|
+
for (let i = 0; i < monomerSeq.length; ++i) {
|
|
318
|
+
const seqMonomer = monomerSeq[i];
|
|
298
319
|
if (seqMonomer.symbol === GAP_SYMBOL)
|
|
299
320
|
continue; // Skip for gap/empty monomer in MSA
|
|
300
321
|
if (seqMonomer.symbol == '*')
|
|
@@ -303,6 +324,10 @@ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
303
324
|
atomCount += lastMonomerGraph.atoms.x.length;
|
|
304
325
|
bondCount += lastMonomerGraph.bonds.bondTypes.length;
|
|
305
326
|
monomerCount++;
|
|
327
|
+
// In triples mode, every 3rd entry (index 2 mod 3) is a phosphate. Track
|
|
328
|
+
// the LAST one — its atoms/bonds are dropped at the 3'-terminus.
|
|
329
|
+
if (triplesMode && i % 3 === 2)
|
|
330
|
+
lastPhosphateGraph = lastMonomerGraph;
|
|
306
331
|
}
|
|
307
332
|
// add extra values depending on the polymer type
|
|
308
333
|
if (polymerType === "PEPTIDE" /* HELM_POLYMER_TYPE.PEPTIDE */) {
|
|
@@ -321,7 +346,19 @@ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
321
346
|
}
|
|
322
347
|
}
|
|
323
348
|
}
|
|
324
|
-
else { // nucleotides
|
|
349
|
+
else if (triplesMode) { // nucleotides — HELM triples (per-position sugar/base/phosphate)
|
|
350
|
+
void lastPhosphateGraph; // kept for symmetry; trailing P is now retained when HELM wrote it
|
|
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)
|
|
359
|
+
bondCount += monomerCount;
|
|
360
|
+
}
|
|
361
|
+
else { // nucleotides — bases-only legacy path with default sugar/phosphate
|
|
325
362
|
const sugar = (alphabet === ALPHABET.DNA) ?
|
|
326
363
|
getMolGraph(monomersDict, C.DEOXYRIBOSE) : getMolGraph(monomersDict, C.RIBOSE);
|
|
327
364
|
const phosphate = getMolGraph(monomersDict, C.PHOSPHATE);
|
|
@@ -342,6 +379,118 @@ function getResultingAtomBondCounts(monomerSeq, monomersDict, alphabet, polymerT
|
|
|
342
379
|
}
|
|
343
380
|
return { atomCount, bondCount, needsCapping };
|
|
344
381
|
}
|
|
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;
|
|
402
|
+
for (let n = 0; n < N; ++n) {
|
|
403
|
+
v.i = n;
|
|
404
|
+
const sugarSm = monomerSeq[3 * n];
|
|
405
|
+
const baseSm = monomerSeq[3 * n + 1];
|
|
406
|
+
const sugarG = getMolGraph(monomersDict, { symbol: sugarSm.symbol, polymerType: helmTypeToPolymerType(sugarSm.biotype) });
|
|
407
|
+
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
|
+
});
|
|
435
|
+
}
|
|
436
|
+
const sugarAtomFirst = v.nodeShift;
|
|
437
|
+
const sugarBondFirst = v.bondShift;
|
|
438
|
+
addBackboneMonomerToMolblock(sugarG, molfileAtomBlock, molfileBondBlock, v);
|
|
439
|
+
sugarG.stereoAtoms?.forEach((i) => steabsCollection.push(i + getAtoms()));
|
|
440
|
+
addAtoms(sugarG.atoms.x.length);
|
|
441
|
+
const sAList = [];
|
|
442
|
+
for (let a = sugarAtomFirst; a < v.nodeShift; ++a)
|
|
443
|
+
sAList.push(a);
|
|
444
|
+
const sBList = [];
|
|
445
|
+
for (let b = sugarBondFirst; b < v.bondShift; ++b)
|
|
446
|
+
sBList.push(b);
|
|
447
|
+
monomers.set(seqStartIdx, {
|
|
448
|
+
biotype: sugarSm.biotype, symbol: sugarSm.symbol,
|
|
449
|
+
atoms: sAList, bonds: sBList,
|
|
450
|
+
});
|
|
451
|
+
const baseAtomFirst = v.nodeShift;
|
|
452
|
+
const baseBondFirst = v.bondShift;
|
|
453
|
+
addBranchMonomerToMolblock(baseG, molfileAtomBlock, molfileBondBlock, v);
|
|
454
|
+
baseG.stereoAtoms?.forEach((i) => steabsCollection.push(i + getAtoms()));
|
|
455
|
+
addAtoms(baseG.atoms.x.length);
|
|
456
|
+
const bAList = [];
|
|
457
|
+
for (let a = baseAtomFirst; a < v.nodeShift; ++a)
|
|
458
|
+
bAList.push(a);
|
|
459
|
+
const bBList = [];
|
|
460
|
+
for (let b = baseBondFirst; b < v.bondShift; ++b)
|
|
461
|
+
bBList.push(b);
|
|
462
|
+
monomers.set(seqStartIdx + 1, {
|
|
463
|
+
biotype: baseSm.biotype, symbol: baseSm.symbol,
|
|
464
|
+
atoms: bAList, bonds: bBList,
|
|
465
|
+
});
|
|
466
|
+
}
|
|
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.
|
|
473
|
+
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
|
+
});
|
|
492
|
+
}
|
|
493
|
+
}
|
|
345
494
|
/** Keep precision upon floating point operations over atom coordinates
|
|
346
495
|
* @param {number}x - the floating point number
|
|
347
496
|
* @return {number} - the floating point number with the same precision
|
|
@@ -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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"}
|