@kent-tokyo/chematic 0.4.28 → 0.4.30

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.
@@ -593,6 +593,17 @@ export function canonical_tautomer_with_blocked_atoms_json(mol: MolHandle, block
593
593
  */
594
594
  export function cdxml_to_smiles_json(cdxml: string): string;
595
595
 
596
+ /**
597
+ * CIP stereo assignments via the accurate hierarchical-digraph engine, as a JSON
598
+ * array of `{atomIdx, cipCode}` objects -- same shape as [`cip_assignments_json`],
599
+ * but merges the accurate engine's tetrahedral R/S (~99.6% oracle-stable agreement,
600
+ * see `docs/cip_accurate_rfc.md`) with legacy's E/Z and allene answers (the accurate
601
+ * engine computes neither). Atoms it can't resolve are omitted here -- see
602
+ * [`cip_unresolved_json`] -- never a silently-guessed label. Returns `"null"` on an
603
+ * internal engine error (budget-independent computations should not normally hit this).
604
+ */
605
+ export function cip_assignments_accurate_json(mol: MolHandle): string;
606
+
596
607
  /**
597
608
  * CIP stereo assignments as a JSON array of `{atomIdx, cipCode}` objects.
598
609
  *
@@ -601,6 +612,15 @@ export function cdxml_to_smiles_json(cdxml: string): string;
601
612
  */
602
613
  export function cip_assignments_json(mol: MolHandle): string;
603
614
 
615
+ /**
616
+ * Atoms the accurate CIP engine could not resolve a tetrahedral R/S for, as a JSON
617
+ * array of `{atomIdx, reason}` objects. `reason` is `"tied"` (a genuine CIP-rule tie,
618
+ * not a missing rule) or `"budgetExceeded"`. Always `[]` for the legacy engine (see
619
+ * [`cip_assignments_json`]) -- it never reports "I don't know". Returns `"null"` on
620
+ * an internal engine error.
621
+ */
622
+ export function cip_unresolved_json(mol: MolHandle): string;
623
+
604
624
  /**
605
625
  * Compare multiple SMILES strings (up to 256 by default).
606
626
  * Accepts a delimiter-separated list (e.g., newline or comma).
@@ -1872,7 +1892,9 @@ export interface InitOutput {
1872
1892
  readonly canonical_tautomer: (a: number) => number;
1873
1893
  readonly canonical_tautomer_with_blocked_atoms_json: (a: number, b: number, c: number) => [number, number];
1874
1894
  readonly cdxml_to_smiles_json: (a: number, b: number) => [number, number, number, number];
1895
+ readonly cip_assignments_accurate_json: (a: number) => [number, number];
1875
1896
  readonly cip_assignments_json: (a: number) => [number, number];
1897
+ readonly cip_unresolved_json: (a: number) => [number, number];
1876
1898
  readonly compare_molecules_batch_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1877
1899
  readonly compare_molecules_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
1878
1900
  readonly conformer_ensemble_json: (a: number, b: number, c: number) => [number, number];
package/chematic_wasm.js CHANGED
@@ -1398,6 +1398,31 @@ export function cdxml_to_smiles_json(cdxml) {
1398
1398
  }
1399
1399
  }
1400
1400
 
1401
+ /**
1402
+ * CIP stereo assignments via the accurate hierarchical-digraph engine, as a JSON
1403
+ * array of `{atomIdx, cipCode}` objects -- same shape as [`cip_assignments_json`],
1404
+ * but merges the accurate engine's tetrahedral R/S (~99.6% oracle-stable agreement,
1405
+ * see `docs/cip_accurate_rfc.md`) with legacy's E/Z and allene answers (the accurate
1406
+ * engine computes neither). Atoms it can't resolve are omitted here -- see
1407
+ * [`cip_unresolved_json`] -- never a silently-guessed label. Returns `"null"` on an
1408
+ * internal engine error (budget-independent computations should not normally hit this).
1409
+ * @param {MolHandle} mol
1410
+ * @returns {string}
1411
+ */
1412
+ export function cip_assignments_accurate_json(mol) {
1413
+ let deferred1_0;
1414
+ let deferred1_1;
1415
+ try {
1416
+ _assertClass(mol, MolHandle);
1417
+ const ret = wasm.cip_assignments_accurate_json(mol.__wbg_ptr);
1418
+ deferred1_0 = ret[0];
1419
+ deferred1_1 = ret[1];
1420
+ return getStringFromWasm0(ret[0], ret[1]);
1421
+ } finally {
1422
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
1423
+ }
1424
+ }
1425
+
1401
1426
  /**
1402
1427
  * CIP stereo assignments as a JSON array of `{atomIdx, cipCode}` objects.
1403
1428
  *
@@ -1420,6 +1445,29 @@ export function cip_assignments_json(mol) {
1420
1445
  }
1421
1446
  }
1422
1447
 
1448
+ /**
1449
+ * Atoms the accurate CIP engine could not resolve a tetrahedral R/S for, as a JSON
1450
+ * array of `{atomIdx, reason}` objects. `reason` is `"tied"` (a genuine CIP-rule tie,
1451
+ * not a missing rule) or `"budgetExceeded"`. Always `[]` for the legacy engine (see
1452
+ * [`cip_assignments_json`]) -- it never reports "I don't know". Returns `"null"` on
1453
+ * an internal engine error.
1454
+ * @param {MolHandle} mol
1455
+ * @returns {string}
1456
+ */
1457
+ export function cip_unresolved_json(mol) {
1458
+ let deferred1_0;
1459
+ let deferred1_1;
1460
+ try {
1461
+ _assertClass(mol, MolHandle);
1462
+ const ret = wasm.cip_unresolved_json(mol.__wbg_ptr);
1463
+ deferred1_0 = ret[0];
1464
+ deferred1_1 = ret[1];
1465
+ return getStringFromWasm0(ret[0], ret[1]);
1466
+ } finally {
1467
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
1468
+ }
1469
+ }
1470
+
1423
1471
  /**
1424
1472
  * Compare multiple SMILES strings (up to 256 by default).
1425
1473
  * Accepts a delimiter-separated list (e.g., newline or comma).
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "kent-tokyo <kent-tokyo@users.noreply.github.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for chematic — use chematic from JavaScript/TypeScript",
8
- "version": "0.4.28",
8
+ "version": "0.4.30",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",