@kent-tokyo/chematic 1.1.4 → 1.1.5

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/README.md CHANGED
@@ -4,7 +4,7 @@ WebAssembly bindings for [chematic](https://github.com/kent-tokyo/chematic), a p
4
4
 
5
5
  Published to npm as [`@kent-tokyo/chematic`](https://www.npmjs.com/package/@kent-tokyo/chematic).
6
6
 
7
- The current workspace line is 1.1.4. The binding keeps bounded parsing,
7
+ The current workspace line is 1.1.5. The binding keeps bounded parsing,
8
8
  typed failures, and opt-in `embed_pipeline_v2_json`; 3D/MMFF94 behavior remains
9
9
  Experimental and is not a claim of full RDKit parity.
10
10
 
@@ -480,6 +480,15 @@ export class MolHandle {
480
480
  * diagonal and lower bounds below it. At most 512 atoms are accepted.
481
481
  */
482
482
  rdkit_bounds_matrix_json(set15bounds: boolean, do_triangle_smoothing: boolean, use_macrocycle_14_config: boolean): string;
483
+ /**
484
+ * Distance-geometry bounds with user bond-length, angle and torsion
485
+ * constraints injected before triangle smoothing.
486
+ *
487
+ * `constraintsJson` contains optional camelCase arrays `bondLengths`,
488
+ * `bondAngles`, and `torsions`; atom indices are zero based. Lengths use
489
+ * angstrom and angles use degrees.
490
+ */
491
+ rdkit_bounds_matrix_with_constraints_json(constraints_json: string, set15bounds: boolean, do_triangle_smoothing: boolean, use_macrocycle_14_config: boolean): string;
483
492
  /**
484
493
  * RDKit `CalcRMS`, bounded by `max_matches <= 1_000_000`.
485
494
  */
@@ -492,11 +501,21 @@ export class MolHandle {
492
501
  * RDKit-compatible CXSMARTS.
493
502
  */
494
503
  rdkit_cx_smarts(): string;
504
+ /**
505
+ * Checked 3D matrix in prepared RDKit atom order. JSON has one [x,y,z]
506
+ * row per prepared atom; malformed/nonfinite/unrepresentable input refuses.
507
+ */
508
+ rdkit_distance_matrix_3d_checked_json(coords_json: string, use_atom_wts: boolean): string;
495
509
  /**
496
510
  * Seeded RDKit ETKDGv3 coordinates as JSON. Call on an
497
511
  * explicit-hydrogen molecule. At most 512 atoms are accepted.
498
512
  */
499
513
  rdkit_embed_json(random_seed: number, max_iterations: number): string;
514
+ /**
515
+ * Seeded ETKDG embedding using constraints injected before triangle
516
+ * smoothing. Returns one `[x,y,z]` row per atom as JSON.
517
+ */
518
+ rdkit_embed_with_constraints_json(constraints_json: string, random_seed: number, max_iterations: number): string;
500
519
  /**
501
520
  * RDKit MolHash by case-insensitive function name.
502
521
  */
@@ -1979,6 +1998,12 @@ export function mol_block_stereo_diagnostics_json(mol_block: string): string;
1979
1998
  */
1980
1999
  export function mol_block_stereo_loss_json(mol: MolHandle): string;
1981
2000
 
2001
+ /**
2002
+ * Project explicit CCD topology. Unassigned stereo annotations require
2003
+ * explicit loss consent; coordinates remain in parse_ccd_json's record.
2004
+ */
2005
+ export function mol_from_ccd(text: string, allow_stereo_loss: boolean): MolHandle;
2006
+
1982
2007
  /**
1983
2008
  * Only the first molecular fragment in the document is returned.
1984
2009
  * Returns a JS error if the document cannot be parsed.
@@ -2321,6 +2346,12 @@ export function orca_output_to_json(text: string): string;
2321
2346
  */
2322
2347
  export function pains_matches_json(mol: MolHandle): string;
2323
2348
 
2349
+ /**
2350
+ * One CCD template including source IDs, charges, explicit bonds, optional
2351
+ * coordinates and unassigned stereo labels. No atom_site bond perception.
2352
+ */
2353
+ export function parse_ccd_json(text: string): string;
2354
+
2324
2355
  /**
2325
2356
  * Inspect strictly validated CJSON with exact source and opaque field paths.
2326
2357
  */
@@ -2342,6 +2373,11 @@ export function parse_cxsmarts_json(s: string): string;
2342
2373
  */
2343
2374
  export function parse_cxsmiles_json(s: string): string;
2344
2375
 
2376
+ /**
2377
+ * Inspect the bounded HIN record, including literal aromatic bonds and charges.
2378
+ */
2379
+ export function parse_hin_record_json(text: string): string;
2380
+
2345
2381
  /**
2346
2382
  * Inspect partial charges, atom types and source retention for MOL2.
2347
2383
  */
@@ -2757,6 +2793,11 @@ export function ring_families_json(mol: MolHandle): string;
2757
2793
  */
2758
2794
  export function roundtrip_cjson_record(text: string): string;
2759
2795
 
2796
+ /**
2797
+ * Validate a single HIN record and retain exact source text and line endings.
2798
+ */
2799
+ export function roundtrip_hin_record(text: string): string;
2800
+
2760
2801
  /**
2761
2802
  * Validate one MOL2 record and preserve its exact source, including metadata.
2762
2803
  */
@@ -3561,6 +3602,7 @@ export interface InitOutput {
3561
3602
  readonly mol_block_from_smiles: (a: number, b: number) => [number, number, number, number];
3562
3603
  readonly mol_block_stereo_diagnostics_json: (a: number, b: number) => [number, number, number, number];
3563
3604
  readonly mol_block_stereo_loss_json: (a: number) => [number, number];
3605
+ readonly mol_from_ccd: (a: number, b: number, c: number) => [number, number, number];
3564
3606
  readonly mol_from_cdxml: (a: number, b: number) => [number, number, number];
3565
3607
  readonly mol_from_cjson: (a: number, b: number) => [number, number, number];
3566
3608
  readonly mol_from_cml: (a: number, b: number) => [number, number, number];
@@ -3662,10 +3704,13 @@ export interface InitOutput {
3662
3704
  readonly molhandle_rdkit_best_alignment_json: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
3663
3705
  readonly molhandle_rdkit_best_rms: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
3664
3706
  readonly molhandle_rdkit_bounds_matrix_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
3707
+ readonly molhandle_rdkit_bounds_matrix_with_constraints_json: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
3665
3708
  readonly molhandle_rdkit_calc_rms: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number];
3666
3709
  readonly molhandle_rdkit_chiral_centers_json: (a: number, b: number) => [number, number, number, number];
3667
3710
  readonly molhandle_rdkit_cx_smarts: (a: number) => [number, number, number, number];
3711
+ readonly molhandle_rdkit_distance_matrix_3d_checked_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
3668
3712
  readonly molhandle_rdkit_embed_json: (a: number, b: number, c: number) => [number, number, number, number];
3713
+ readonly molhandle_rdkit_embed_with_constraints_json: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
3669
3714
  readonly molhandle_rdkit_mol_hash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
3670
3715
  readonly molhandle_rdkit_morgan_bit_info_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
3671
3716
  readonly molhandle_rdkit_murcko_scaffold: (a: number) => [number, number, number, number];
@@ -3700,9 +3745,11 @@ export interface InitOutput {
3700
3745
  readonly orca_input_to_json: (a: number, b: number) => [number, number, number, number];
3701
3746
  readonly orca_output_to_json: (a: number, b: number) => [number, number, number, number];
3702
3747
  readonly pains_matches_json: (a: number) => [number, number];
3748
+ readonly parse_ccd_json: (a: number, b: number) => [number, number, number, number];
3703
3749
  readonly parse_cjson_record_json: (a: number, b: number) => [number, number, number, number];
3704
3750
  readonly parse_cxsmarts_json: (a: number, b: number) => [number, number, number, number];
3705
3751
  readonly parse_cxsmiles_json: (a: number, b: number) => [number, number, number, number];
3752
+ readonly parse_hin_record_json: (a: number, b: number) => [number, number, number, number];
3706
3753
  readonly parse_mol2_record_json: (a: number, b: number) => [number, number, number, number];
3707
3754
  readonly parse_smiles: (a: number, b: number) => [number, number, number];
3708
3755
  readonly pdb_coords_json: (a: number, b: number) => [number, number];
@@ -3759,6 +3806,7 @@ export interface InitOutput {
3759
3806
  readonly rgroup_decompose_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
3760
3807
  readonly ring_families_json: (a: number) => [number, number, number, number];
3761
3808
  readonly roundtrip_cjson_record: (a: number, b: number) => [number, number, number, number];
3809
+ readonly roundtrip_hin_record: (a: number, b: number) => [number, number, number, number];
3762
3810
  readonly roundtrip_mol2_record: (a: number, b: number) => [number, number, number, number];
3763
3811
  readonly roundtrip_mol_v3000_block: (a: number, b: number) => [number, number, number, number];
3764
3812
  readonly run_reactants: (a: number, b: number, c: number, d: number) => [number, number, number, number];
package/chematic_wasm.js CHANGED
@@ -1243,6 +1243,39 @@ export class MolHandle {
1243
1243
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1244
1244
  }
1245
1245
  }
1246
+ /**
1247
+ * Distance-geometry bounds with user bond-length, angle and torsion
1248
+ * constraints injected before triangle smoothing.
1249
+ *
1250
+ * `constraintsJson` contains optional camelCase arrays `bondLengths`,
1251
+ * `bondAngles`, and `torsions`; atom indices are zero based. Lengths use
1252
+ * angstrom and angles use degrees.
1253
+ * @param {string} constraints_json
1254
+ * @param {boolean} set15bounds
1255
+ * @param {boolean} do_triangle_smoothing
1256
+ * @param {boolean} use_macrocycle_14_config
1257
+ * @returns {string}
1258
+ */
1259
+ rdkit_bounds_matrix_with_constraints_json(constraints_json, set15bounds, do_triangle_smoothing, use_macrocycle_14_config) {
1260
+ let deferred3_0;
1261
+ let deferred3_1;
1262
+ try {
1263
+ const ptr0 = passStringToWasm0(constraints_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1264
+ const len0 = WASM_VECTOR_LEN;
1265
+ const ret = wasm.molhandle_rdkit_bounds_matrix_with_constraints_json(this.__wbg_ptr, ptr0, len0, set15bounds, do_triangle_smoothing, use_macrocycle_14_config);
1266
+ var ptr2 = ret[0];
1267
+ var len2 = ret[1];
1268
+ if (ret[3]) {
1269
+ ptr2 = 0; len2 = 0;
1270
+ throw takeFromExternrefTable0(ret[2]);
1271
+ }
1272
+ deferred3_0 = ptr2;
1273
+ deferred3_1 = len2;
1274
+ return getStringFromWasm0(ptr2, len2);
1275
+ } finally {
1276
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
1277
+ }
1278
+ }
1246
1279
  /**
1247
1280
  * RDKit `CalcRMS`, bounded by `max_matches <= 1_000_000`.
1248
1281
  * @param {string} probe_coords_json
@@ -1310,6 +1343,33 @@ export class MolHandle {
1310
1343
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1311
1344
  }
1312
1345
  }
1346
+ /**
1347
+ * Checked 3D matrix in prepared RDKit atom order. JSON has one [x,y,z]
1348
+ * row per prepared atom; malformed/nonfinite/unrepresentable input refuses.
1349
+ * @param {string} coords_json
1350
+ * @param {boolean} use_atom_wts
1351
+ * @returns {string}
1352
+ */
1353
+ rdkit_distance_matrix_3d_checked_json(coords_json, use_atom_wts) {
1354
+ let deferred3_0;
1355
+ let deferred3_1;
1356
+ try {
1357
+ const ptr0 = passStringToWasm0(coords_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1358
+ const len0 = WASM_VECTOR_LEN;
1359
+ const ret = wasm.molhandle_rdkit_distance_matrix_3d_checked_json(this.__wbg_ptr, ptr0, len0, use_atom_wts);
1360
+ var ptr2 = ret[0];
1361
+ var len2 = ret[1];
1362
+ if (ret[3]) {
1363
+ ptr2 = 0; len2 = 0;
1364
+ throw takeFromExternrefTable0(ret[2]);
1365
+ }
1366
+ deferred3_0 = ptr2;
1367
+ deferred3_1 = len2;
1368
+ return getStringFromWasm0(ptr2, len2);
1369
+ } finally {
1370
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
1371
+ }
1372
+ }
1313
1373
  /**
1314
1374
  * Seeded RDKit ETKDGv3 coordinates as JSON. Call on an
1315
1375
  * explicit-hydrogen molecule. At most 512 atoms are accepted.
@@ -1335,6 +1395,34 @@ export class MolHandle {
1335
1395
  wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
1336
1396
  }
1337
1397
  }
1398
+ /**
1399
+ * Seeded ETKDG embedding using constraints injected before triangle
1400
+ * smoothing. Returns one `[x,y,z]` row per atom as JSON.
1401
+ * @param {string} constraints_json
1402
+ * @param {number} random_seed
1403
+ * @param {number} max_iterations
1404
+ * @returns {string}
1405
+ */
1406
+ rdkit_embed_with_constraints_json(constraints_json, random_seed, max_iterations) {
1407
+ let deferred3_0;
1408
+ let deferred3_1;
1409
+ try {
1410
+ const ptr0 = passStringToWasm0(constraints_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
1411
+ const len0 = WASM_VECTOR_LEN;
1412
+ const ret = wasm.molhandle_rdkit_embed_with_constraints_json(this.__wbg_ptr, ptr0, len0, random_seed, max_iterations);
1413
+ var ptr2 = ret[0];
1414
+ var len2 = ret[1];
1415
+ if (ret[3]) {
1416
+ ptr2 = 0; len2 = 0;
1417
+ throw takeFromExternrefTable0(ret[2]);
1418
+ }
1419
+ deferred3_0 = ptr2;
1420
+ deferred3_1 = len2;
1421
+ return getStringFromWasm0(ptr2, len2);
1422
+ } finally {
1423
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
1424
+ }
1425
+ }
1338
1426
  /**
1339
1427
  * RDKit MolHash by case-insensitive function name.
1340
1428
  * @param {string} _function
@@ -5386,6 +5474,23 @@ export function mol_block_stereo_loss_json(mol) {
5386
5474
  }
5387
5475
  }
5388
5476
 
5477
+ /**
5478
+ * Project explicit CCD topology. Unassigned stereo annotations require
5479
+ * explicit loss consent; coordinates remain in parse_ccd_json's record.
5480
+ * @param {string} text
5481
+ * @param {boolean} allow_stereo_loss
5482
+ * @returns {MolHandle}
5483
+ */
5484
+ export function mol_from_ccd(text, allow_stereo_loss) {
5485
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
5486
+ const len0 = WASM_VECTOR_LEN;
5487
+ const ret = wasm.mol_from_ccd(ptr0, len0, allow_stereo_loss);
5488
+ if (ret[2]) {
5489
+ throw takeFromExternrefTable0(ret[1]);
5490
+ }
5491
+ return MolHandle.__wrap(ret[0]);
5492
+ }
5493
+
5389
5494
  /**
5390
5495
  * Only the first molecular fragment in the document is returned.
5391
5496
  * Returns a JS error if the document cannot be parsed.
@@ -6276,6 +6381,33 @@ export function pains_matches_json(mol) {
6276
6381
  }
6277
6382
  }
6278
6383
 
6384
+ /**
6385
+ * One CCD template including source IDs, charges, explicit bonds, optional
6386
+ * coordinates and unassigned stereo labels. No atom_site bond perception.
6387
+ * @param {string} text
6388
+ * @returns {string}
6389
+ */
6390
+ export function parse_ccd_json(text) {
6391
+ let deferred3_0;
6392
+ let deferred3_1;
6393
+ try {
6394
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6395
+ const len0 = WASM_VECTOR_LEN;
6396
+ const ret = wasm.parse_ccd_json(ptr0, len0);
6397
+ var ptr2 = ret[0];
6398
+ var len2 = ret[1];
6399
+ if (ret[3]) {
6400
+ ptr2 = 0; len2 = 0;
6401
+ throw takeFromExternrefTable0(ret[2]);
6402
+ }
6403
+ deferred3_0 = ptr2;
6404
+ deferred3_1 = len2;
6405
+ return getStringFromWasm0(ptr2, len2);
6406
+ } finally {
6407
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
6408
+ }
6409
+ }
6410
+
6279
6411
  /**
6280
6412
  * Inspect strictly validated CJSON with exact source and opaque field paths.
6281
6413
  * @param {string} text
@@ -6360,6 +6492,32 @@ export function parse_cxsmiles_json(s) {
6360
6492
  }
6361
6493
  }
6362
6494
 
6495
+ /**
6496
+ * Inspect the bounded HIN record, including literal aromatic bonds and charges.
6497
+ * @param {string} text
6498
+ * @returns {string}
6499
+ */
6500
+ export function parse_hin_record_json(text) {
6501
+ let deferred3_0;
6502
+ let deferred3_1;
6503
+ try {
6504
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6505
+ const len0 = WASM_VECTOR_LEN;
6506
+ const ret = wasm.parse_hin_record_json(ptr0, len0);
6507
+ var ptr2 = ret[0];
6508
+ var len2 = ret[1];
6509
+ if (ret[3]) {
6510
+ ptr2 = 0; len2 = 0;
6511
+ throw takeFromExternrefTable0(ret[2]);
6512
+ }
6513
+ deferred3_0 = ptr2;
6514
+ deferred3_1 = len2;
6515
+ return getStringFromWasm0(ptr2, len2);
6516
+ } finally {
6517
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
6518
+ }
6519
+ }
6520
+
6363
6521
  /**
6364
6522
  * Inspect partial charges, atom types and source retention for MOL2.
6365
6523
  * @param {string} text
@@ -7545,6 +7703,32 @@ export function roundtrip_cjson_record(text) {
7545
7703
  }
7546
7704
  }
7547
7705
 
7706
+ /**
7707
+ * Validate a single HIN record and retain exact source text and line endings.
7708
+ * @param {string} text
7709
+ * @returns {string}
7710
+ */
7711
+ export function roundtrip_hin_record(text) {
7712
+ let deferred3_0;
7713
+ let deferred3_1;
7714
+ try {
7715
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7716
+ const len0 = WASM_VECTOR_LEN;
7717
+ const ret = wasm.roundtrip_hin_record(ptr0, len0);
7718
+ var ptr2 = ret[0];
7719
+ var len2 = ret[1];
7720
+ if (ret[3]) {
7721
+ ptr2 = 0; len2 = 0;
7722
+ throw takeFromExternrefTable0(ret[2]);
7723
+ }
7724
+ deferred3_0 = ptr2;
7725
+ deferred3_1 = len2;
7726
+ return getStringFromWasm0(ptr2, len2);
7727
+ } finally {
7728
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
7729
+ }
7730
+ }
7731
+
7548
7732
  /**
7549
7733
  * Validate one MOL2 record and preserve its exact source, including metadata.
7550
7734
  * @param {string} text
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Kentaro Tanabe (kent-tokyo) <kent-tokyo@users.noreply.github.com>"
6
6
  ],
7
7
  "description": "WebAssembly bindings for chematic — use chematic from JavaScript/TypeScript",
8
- "version": "1.1.4",
8
+ "version": "1.1.5",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",