@kent-tokyo/chematic 1.1.2 → 1.1.4
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 +1 -1
- package/chematic_wasm.d.ts +87 -0
- package/chematic_wasm.js +295 -0
- package/chematic_wasm_bg.wasm +0 -0
- package/package.json +1 -1
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.
|
|
7
|
+
The current workspace line is 1.1.4. 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
|
|
package/chematic_wasm.d.ts
CHANGED
|
@@ -261,6 +261,13 @@ export class MolHandle {
|
|
|
261
261
|
* (TPSA ≤ 131.6 Ų and LogP ≤ 5.88).
|
|
262
262
|
*/
|
|
263
263
|
egan_passes(): boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Seeded ETKDGv3 coordinates using the exact sixth-order torsion
|
|
266
|
+
* gradient tracked by RDKit issue #8715. At most 512 atoms are accepted.
|
|
267
|
+
* The result may intentionally differ from `rdkit_embed_json` for
|
|
268
|
+
* molecules with a non-zero sixth-order experimental torsion term.
|
|
269
|
+
*/
|
|
270
|
+
etkdg_embed_corrected_json(random_seed: number, max_iterations: number): string;
|
|
264
271
|
/**
|
|
265
272
|
* Monoisotopic (exact) mass.
|
|
266
273
|
*/
|
|
@@ -447,6 +454,18 @@ export class MolHandle {
|
|
|
447
454
|
* weights use zero-based molecule atom order.
|
|
448
455
|
*/
|
|
449
456
|
rdkit_align_json(probe_coords_json: string, reference_coords_json: string, atom_map_json: string | null | undefined, weights_json: string | null | undefined, reflect: boolean, max_iterations: number): string;
|
|
457
|
+
/**
|
|
458
|
+
* RDKit `GetAllConformerBestRMS` as a JSON number array in
|
|
459
|
+
* `(1,0), (2,0), (2,1), ...` order. Atom mappings are computed once for
|
|
460
|
+
* the entire batch.
|
|
461
|
+
*/
|
|
462
|
+
rdkit_all_conformer_best_rms_json(conformers_json: string, max_matches: number, symmetrize: boolean, weights_json?: string | null): string;
|
|
463
|
+
/**
|
|
464
|
+
* RDKit 2026.09.1 `GetAllConformerBestRMSToRef` as a JSON number array
|
|
465
|
+
* in reference-major order. Atom mappings are computed once for the
|
|
466
|
+
* entire Cartesian product.
|
|
467
|
+
*/
|
|
468
|
+
rdkit_all_conformer_best_rms_to_reference_json(reference: MolHandle, probe_conformers_json: string, reference_conformers_json: string, max_matches: number, symmetrize: boolean, weights_json?: string | null): string;
|
|
450
469
|
/**
|
|
451
470
|
* RDKit `GetBestAlignmentTransform` as JSON, bounded by `max_matches`.
|
|
452
471
|
*/
|
|
@@ -1160,6 +1179,15 @@ export function edit_cdxml_document_json_v1(document_json: string, edit_json: st
|
|
|
1160
1179
|
*/
|
|
1161
1180
|
export function edit_reaction_document_json_v1(document_json: string, edit_json: string): string;
|
|
1162
1181
|
|
|
1182
|
+
/**
|
|
1183
|
+
* EEM partial charges from caller-supplied 3D coordinates.
|
|
1184
|
+
*
|
|
1185
|
+
* Returns `{"charges":[...]}`. Unlike RDKit 2026.09.1 and earlier (issue
|
|
1186
|
+
* #9688), ionic charges sum to the molecule's formal charge rather than its
|
|
1187
|
+
* negation. Errors are returned as `{"error":"..."}`.
|
|
1188
|
+
*/
|
|
1189
|
+
export function eem_charges_json(mol: MolHandle, coords_json: string): string;
|
|
1190
|
+
|
|
1163
1191
|
/**
|
|
1164
1192
|
* Run `embed_ensemble_v2` on `mol`'s own atom order (never canonicalizes/
|
|
1165
1193
|
* reparses, same convention as `embed_pipeline_v2_json`). See the module doc
|
|
@@ -1245,6 +1273,18 @@ export function erg_vec_json(mol: MolHandle): string;
|
|
|
1245
1273
|
*/
|
|
1246
1274
|
export function estate_indices_json(mol: MolHandle): string;
|
|
1247
1275
|
|
|
1276
|
+
/**
|
|
1277
|
+
* Decode an RDKit atom code as stable JSON.
|
|
1278
|
+
*
|
|
1279
|
+
* Returns `{"symbol":"C","branchCount":3,"piElectronCount":1}`.
|
|
1280
|
+
*/
|
|
1281
|
+
export function explain_rdkit_atom_code_json(code: number): string;
|
|
1282
|
+
|
|
1283
|
+
/**
|
|
1284
|
+
* Decode a decimal legacy RDKit torsion code as stable JSON.
|
|
1285
|
+
*/
|
|
1286
|
+
export function explain_rdkit_topological_torsion_code_json(code_decimal: string, size: number): string;
|
|
1287
|
+
|
|
1248
1288
|
/**
|
|
1249
1289
|
* Extract an extxyz frame's coordinates, cell, per-atom properties and
|
|
1250
1290
|
* frame metadata as JSON, in the SAME atom order [`mol_from_extxyz`]
|
|
@@ -2428,6 +2468,17 @@ export function preflight_smiles_json(smiles: string, width: number, height: num
|
|
|
2428
2468
|
*/
|
|
2429
2469
|
export function prepare_rdkit_ecfp4(mol: MolHandle): PreparedRdkitEcfp4Handle;
|
|
2430
2470
|
|
|
2471
|
+
/**
|
|
2472
|
+
* Amino-acid-only mmCIF projection in the same schema as
|
|
2473
|
+
* [`protein_from_pdb_json`].
|
|
2474
|
+
*/
|
|
2475
|
+
export function protein_from_mmcif_json(text: string): string;
|
|
2476
|
+
|
|
2477
|
+
/**
|
|
2478
|
+
* Amino-acid-only PDB projection as stable JSON.
|
|
2479
|
+
*/
|
|
2480
|
+
export function protein_from_pdb_json(text: string): string;
|
|
2481
|
+
|
|
2431
2482
|
/**
|
|
2432
2483
|
* Coordinates (Å) plus molecular charge/multiplicity from a QCSchema
|
|
2433
2484
|
* `qcschema_molecule` document, in the SAME atom order
|
|
@@ -2474,6 +2525,14 @@ export function qcschema_validate_atomic_result(json: string): string;
|
|
|
2474
2525
|
*/
|
|
2475
2526
|
export function random_smiles_json(smiles: string, count: number, seed: bigint): string;
|
|
2476
2527
|
|
|
2528
|
+
/**
|
|
2529
|
+
* RDKit atom-pair atom code for one atom.
|
|
2530
|
+
*
|
|
2531
|
+
* `branch_subtract` is normally 0 for atom-pair diagnostics, 1 for a
|
|
2532
|
+
* torsion endpoint, and 2 for an interior torsion atom.
|
|
2533
|
+
*/
|
|
2534
|
+
export function rdkit_atom_code(mol: MolHandle, atom_index: number, branch_subtract: number): number;
|
|
2535
|
+
|
|
2477
2536
|
/**
|
|
2478
2537
|
* RDKit-bit-exact ECFP4 (radius=2, 2048 bits, `useChirality=false`, `useBondTypes=true`,
|
|
2479
2538
|
* RDKit's default atom invariant) as a bit-packed byte vector (256 bytes = 2048 bits).
|
|
@@ -2574,6 +2633,21 @@ export function rdkit_path_bitvec(mol: MolHandle): Uint8Array;
|
|
|
2574
2633
|
*/
|
|
2575
2634
|
export function rdkit_rdk_bitvec(mol: MolHandle): Uint8Array;
|
|
2576
2635
|
|
|
2636
|
+
/**
|
|
2637
|
+
* RDKit 2026.09.1 RDKFingerprint with `ignoreAtoms`: every branched path
|
|
2638
|
+
* containing one of `ignored_atoms` is excluded. Invalid indices return a JS
|
|
2639
|
+
* error; an empty list is bit-identical to [`rdkit_rdk_bitvec`].
|
|
2640
|
+
*/
|
|
2641
|
+
export function rdkit_rdk_bitvec_ignoring_atoms(mol: MolHandle, ignored_atoms: Uint32Array): Uint8Array;
|
|
2642
|
+
|
|
2643
|
+
/**
|
|
2644
|
+
* Pack a JSON array of atom indices into RDKit's legacy torsion code.
|
|
2645
|
+
*
|
|
2646
|
+
* The decimal string return type avoids losing precision in JavaScript's
|
|
2647
|
+
* `number` type for codes above 2^53.
|
|
2648
|
+
*/
|
|
2649
|
+
export function rdkit_topological_torsion_path_code_decimal(mol: MolHandle, path_json: string): string;
|
|
2650
|
+
|
|
2577
2651
|
/**
|
|
2578
2652
|
* Compute the opt-in RDKit-compatible hashed topological-torsion fingerprint
|
|
2579
2653
|
* as a bit-packed byte vector (256 bytes = 2048 bits). This remains separate
|
|
@@ -2705,6 +2779,8 @@ export function roundtrip_mol_v3000_block(block: string): string;
|
|
|
2705
2779
|
* `reactants_smiles`: pipe-separated SMILES, one per reactant slot in the SMIRKS.
|
|
2706
2780
|
* Returns a JSON array of arrays: `[["product_smi", …], …]`.
|
|
2707
2781
|
* Returns a JS error on parse failure or arity mismatch.
|
|
2782
|
+
* Product-template E/Z is resolved after all reactants are assembled, so an
|
|
2783
|
+
* unspecified product double bond does not depend on reactant order.
|
|
2708
2784
|
*/
|
|
2709
2785
|
export function run_reactants(smirks: string, reactants_smiles: string): string;
|
|
2710
2786
|
|
|
@@ -3401,6 +3477,7 @@ export interface InitOutput {
|
|
|
3401
3477
|
readonly edit_cdxml_document_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
3402
3478
|
readonly edit_cdxml_document_json_v1: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
3403
3479
|
readonly edit_reaction_document_json_v1: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
3480
|
+
readonly eem_charges_json: (a: number, b: number, c: number) => [number, number];
|
|
3404
3481
|
readonly embed_ensemble_v2_json: (a: number, b: number, c: number) => [number, number];
|
|
3405
3482
|
readonly embed_pipeline_v2_json: (a: number, b: number, c: number) => [number, number];
|
|
3406
3483
|
readonly enumerate_library_2way: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
@@ -3408,6 +3485,8 @@ export interface InitOutput {
|
|
|
3408
3485
|
readonly enumerate_tautomers_json: (a: number) => [number, number];
|
|
3409
3486
|
readonly erg_vec_json: (a: number) => [number, number];
|
|
3410
3487
|
readonly estate_indices_json: (a: number) => [number, number];
|
|
3488
|
+
readonly explain_rdkit_atom_code_json: (a: number) => [number, number];
|
|
3489
|
+
readonly explain_rdkit_topological_torsion_code_json: (a: number, b: number, c: number) => [number, number, number, number];
|
|
3411
3490
|
readonly extxyz_frame_json: (a: number, b: number) => [number, number, number, number];
|
|
3412
3491
|
readonly extxyz_frames_batch_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
3413
3492
|
readonly fcfp4_bitvec: (a: number) => [number, number];
|
|
@@ -3535,6 +3614,7 @@ export interface InitOutput {
|
|
|
3535
3614
|
readonly molhandle_depict_svg: (a: number) => [number, number];
|
|
3536
3615
|
readonly molhandle_depict_svg_opts: (a: number, b: number) => [number, number];
|
|
3537
3616
|
readonly molhandle_egan_passes: (a: number) => number;
|
|
3617
|
+
readonly molhandle_etkdg_embed_corrected_json: (a: number, b: number, c: number) => [number, number, number, number];
|
|
3538
3618
|
readonly molhandle_exact_mass: (a: number) => number;
|
|
3539
3619
|
readonly molhandle_formal_charge_sum: (a: number) => number;
|
|
3540
3620
|
readonly molhandle_formula: (a: number) => [number, number];
|
|
@@ -3577,6 +3657,8 @@ export interface InitOutput {
|
|
|
3577
3657
|
readonly molhandle_qed: (a: number) => number;
|
|
3578
3658
|
readonly molhandle_randic_index: (a: number) => number;
|
|
3579
3659
|
readonly molhandle_rdkit_align_json: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number, number, number];
|
|
3660
|
+
readonly molhandle_rdkit_all_conformer_best_rms_json: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
3661
|
+
readonly molhandle_rdkit_all_conformer_best_rms_to_reference_json: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
|
|
3580
3662
|
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];
|
|
3581
3663
|
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];
|
|
3582
3664
|
readonly molhandle_rdkit_bounds_matrix_json: (a: number, b: number, c: number, d: number) => [number, number, number, number];
|
|
@@ -3637,10 +3719,13 @@ export interface InitOutput {
|
|
|
3637
3719
|
readonly preflight_smiles_json: (a: number, b: number, c: number, d: number) => [number, number];
|
|
3638
3720
|
readonly prepare_rdkit_ecfp4: (a: number) => [number, number, number];
|
|
3639
3721
|
readonly preparedrdkitecfp4handle_bitvec: (a: number) => [number, number];
|
|
3722
|
+
readonly protein_from_mmcif_json: (a: number, b: number) => [number, number, number, number];
|
|
3723
|
+
readonly protein_from_pdb_json: (a: number, b: number) => [number, number, number, number];
|
|
3640
3724
|
readonly qcschema_molecule_coords_json: (a: number, b: number) => [number, number, number, number];
|
|
3641
3725
|
readonly qcschema_validate_atomic_input: (a: number, b: number) => [number, number, number, number];
|
|
3642
3726
|
readonly qcschema_validate_atomic_result: (a: number, b: number) => [number, number, number, number];
|
|
3643
3727
|
readonly random_smiles_json: (a: number, b: number, c: number, d: bigint) => [number, number, number, number];
|
|
3728
|
+
readonly rdkit_atom_code: (a: number, b: number, c: number) => [number, number, number];
|
|
3644
3729
|
readonly rdkit_ecfp4_bitvec: (a: number) => [number, number, number, number];
|
|
3645
3730
|
readonly rdkit_ecfp4_detail_json: (a: number) => [number, number, number, number];
|
|
3646
3731
|
readonly rdkit_ecfp_config_bitvec: (a: number, b: number, c: number) => [number, number, number, number];
|
|
@@ -3653,6 +3738,8 @@ export interface InitOutput {
|
|
|
3653
3738
|
readonly rdkit_nearest_neighbors_json: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
3654
3739
|
readonly rdkit_path_bitvec: (a: number) => [number, number];
|
|
3655
3740
|
readonly rdkit_rdk_bitvec: (a: number) => [number, number];
|
|
3741
|
+
readonly rdkit_rdk_bitvec_ignoring_atoms: (a: number, b: number, c: number) => [number, number, number, number];
|
|
3742
|
+
readonly rdkit_topological_torsion_path_code_decimal: (a: number, b: number, c: number) => [number, number, number, number];
|
|
3656
3743
|
readonly rdkit_torsion_bitvec: (a: number) => [number, number];
|
|
3657
3744
|
readonly rdkitreadresult_coords_json: (a: number) => [number, number, number, number];
|
|
3658
3745
|
readonly rdkitreadresult_molecule: (a: number) => number;
|
package/chematic_wasm.js
CHANGED
|
@@ -635,6 +635,33 @@ export class MolHandle {
|
|
|
635
635
|
const ret = wasm.molhandle_egan_passes(this.__wbg_ptr);
|
|
636
636
|
return ret !== 0;
|
|
637
637
|
}
|
|
638
|
+
/**
|
|
639
|
+
* Seeded ETKDGv3 coordinates using the exact sixth-order torsion
|
|
640
|
+
* gradient tracked by RDKit issue #8715. At most 512 atoms are accepted.
|
|
641
|
+
* The result may intentionally differ from `rdkit_embed_json` for
|
|
642
|
+
* molecules with a non-zero sixth-order experimental torsion term.
|
|
643
|
+
* @param {number} random_seed
|
|
644
|
+
* @param {number} max_iterations
|
|
645
|
+
* @returns {string}
|
|
646
|
+
*/
|
|
647
|
+
etkdg_embed_corrected_json(random_seed, max_iterations) {
|
|
648
|
+
let deferred2_0;
|
|
649
|
+
let deferred2_1;
|
|
650
|
+
try {
|
|
651
|
+
const ret = wasm.molhandle_etkdg_embed_corrected_json(this.__wbg_ptr, random_seed, max_iterations);
|
|
652
|
+
var ptr1 = ret[0];
|
|
653
|
+
var len1 = ret[1];
|
|
654
|
+
if (ret[3]) {
|
|
655
|
+
ptr1 = 0; len1 = 0;
|
|
656
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
657
|
+
}
|
|
658
|
+
deferred2_0 = ptr1;
|
|
659
|
+
deferred2_1 = len1;
|
|
660
|
+
return getStringFromWasm0(ptr1, len1);
|
|
661
|
+
} finally {
|
|
662
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
663
|
+
}
|
|
664
|
+
}
|
|
638
665
|
/**
|
|
639
666
|
* Monoisotopic (exact) mass.
|
|
640
667
|
* @returns {number}
|
|
@@ -1065,6 +1092,75 @@ export class MolHandle {
|
|
|
1065
1092
|
wasm.__wbindgen_free(deferred6_0, deferred6_1, 1);
|
|
1066
1093
|
}
|
|
1067
1094
|
}
|
|
1095
|
+
/**
|
|
1096
|
+
* RDKit `GetAllConformerBestRMS` as a JSON number array in
|
|
1097
|
+
* `(1,0), (2,0), (2,1), ...` order. Atom mappings are computed once for
|
|
1098
|
+
* the entire batch.
|
|
1099
|
+
* @param {string} conformers_json
|
|
1100
|
+
* @param {number} max_matches
|
|
1101
|
+
* @param {boolean} symmetrize
|
|
1102
|
+
* @param {string | null} [weights_json]
|
|
1103
|
+
* @returns {string}
|
|
1104
|
+
*/
|
|
1105
|
+
rdkit_all_conformer_best_rms_json(conformers_json, max_matches, symmetrize, weights_json) {
|
|
1106
|
+
let deferred4_0;
|
|
1107
|
+
let deferred4_1;
|
|
1108
|
+
try {
|
|
1109
|
+
const ptr0 = passStringToWasm0(conformers_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1110
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1111
|
+
var ptr1 = isLikeNone(weights_json) ? 0 : passStringToWasm0(weights_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1112
|
+
var len1 = WASM_VECTOR_LEN;
|
|
1113
|
+
const ret = wasm.molhandle_rdkit_all_conformer_best_rms_json(this.__wbg_ptr, ptr0, len0, max_matches, symmetrize, ptr1, len1);
|
|
1114
|
+
var ptr3 = ret[0];
|
|
1115
|
+
var len3 = ret[1];
|
|
1116
|
+
if (ret[3]) {
|
|
1117
|
+
ptr3 = 0; len3 = 0;
|
|
1118
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
1119
|
+
}
|
|
1120
|
+
deferred4_0 = ptr3;
|
|
1121
|
+
deferred4_1 = len3;
|
|
1122
|
+
return getStringFromWasm0(ptr3, len3);
|
|
1123
|
+
} finally {
|
|
1124
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
/**
|
|
1128
|
+
* RDKit 2026.09.1 `GetAllConformerBestRMSToRef` as a JSON number array
|
|
1129
|
+
* in reference-major order. Atom mappings are computed once for the
|
|
1130
|
+
* entire Cartesian product.
|
|
1131
|
+
* @param {MolHandle} reference
|
|
1132
|
+
* @param {string} probe_conformers_json
|
|
1133
|
+
* @param {string} reference_conformers_json
|
|
1134
|
+
* @param {number} max_matches
|
|
1135
|
+
* @param {boolean} symmetrize
|
|
1136
|
+
* @param {string | null} [weights_json]
|
|
1137
|
+
* @returns {string}
|
|
1138
|
+
*/
|
|
1139
|
+
rdkit_all_conformer_best_rms_to_reference_json(reference, probe_conformers_json, reference_conformers_json, max_matches, symmetrize, weights_json) {
|
|
1140
|
+
let deferred5_0;
|
|
1141
|
+
let deferred5_1;
|
|
1142
|
+
try {
|
|
1143
|
+
_assertClass(reference, MolHandle);
|
|
1144
|
+
const ptr0 = passStringToWasm0(probe_conformers_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1145
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1146
|
+
const ptr1 = passStringToWasm0(reference_conformers_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1147
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1148
|
+
var ptr2 = isLikeNone(weights_json) ? 0 : passStringToWasm0(weights_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
1149
|
+
var len2 = WASM_VECTOR_LEN;
|
|
1150
|
+
const ret = wasm.molhandle_rdkit_all_conformer_best_rms_to_reference_json(this.__wbg_ptr, reference.__wbg_ptr, ptr0, len0, ptr1, len1, max_matches, symmetrize, ptr2, len2);
|
|
1151
|
+
var ptr4 = ret[0];
|
|
1152
|
+
var len4 = ret[1];
|
|
1153
|
+
if (ret[3]) {
|
|
1154
|
+
ptr4 = 0; len4 = 0;
|
|
1155
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
1156
|
+
}
|
|
1157
|
+
deferred5_0 = ptr4;
|
|
1158
|
+
deferred5_1 = len4;
|
|
1159
|
+
return getStringFromWasm0(ptr4, len4);
|
|
1160
|
+
} finally {
|
|
1161
|
+
wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1068
1164
|
/**
|
|
1069
1165
|
* RDKit `GetBestAlignmentTransform` as JSON, bounded by `max_matches`.
|
|
1070
1166
|
* @param {string} probe_coords_json
|
|
@@ -3235,6 +3331,32 @@ export function edit_reaction_document_json_v1(document_json, edit_json) {
|
|
|
3235
3331
|
}
|
|
3236
3332
|
}
|
|
3237
3333
|
|
|
3334
|
+
/**
|
|
3335
|
+
* EEM partial charges from caller-supplied 3D coordinates.
|
|
3336
|
+
*
|
|
3337
|
+
* Returns `{"charges":[...]}`. Unlike RDKit 2026.09.1 and earlier (issue
|
|
3338
|
+
* #9688), ionic charges sum to the molecule's formal charge rather than its
|
|
3339
|
+
* negation. Errors are returned as `{"error":"..."}`.
|
|
3340
|
+
* @param {MolHandle} mol
|
|
3341
|
+
* @param {string} coords_json
|
|
3342
|
+
* @returns {string}
|
|
3343
|
+
*/
|
|
3344
|
+
export function eem_charges_json(mol, coords_json) {
|
|
3345
|
+
let deferred2_0;
|
|
3346
|
+
let deferred2_1;
|
|
3347
|
+
try {
|
|
3348
|
+
_assertClass(mol, MolHandle);
|
|
3349
|
+
const ptr0 = passStringToWasm0(coords_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3350
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3351
|
+
const ret = wasm.eem_charges_json(mol.__wbg_ptr, ptr0, len0);
|
|
3352
|
+
deferred2_0 = ret[0];
|
|
3353
|
+
deferred2_1 = ret[1];
|
|
3354
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
3355
|
+
} finally {
|
|
3356
|
+
wasm.__wbindgen_free(deferred2_0, deferred2_1, 1);
|
|
3357
|
+
}
|
|
3358
|
+
}
|
|
3359
|
+
|
|
3238
3360
|
/**
|
|
3239
3361
|
* Run `embed_ensemble_v2` on `mol`'s own atom order (never canonicalizes/
|
|
3240
3362
|
* reparses, same convention as `embed_pipeline_v2_json`). See the module doc
|
|
@@ -3443,6 +3565,53 @@ export function estate_indices_json(mol) {
|
|
|
3443
3565
|
}
|
|
3444
3566
|
}
|
|
3445
3567
|
|
|
3568
|
+
/**
|
|
3569
|
+
* Decode an RDKit atom code as stable JSON.
|
|
3570
|
+
*
|
|
3571
|
+
* Returns `{"symbol":"C","branchCount":3,"piElectronCount":1}`.
|
|
3572
|
+
* @param {number} code
|
|
3573
|
+
* @returns {string}
|
|
3574
|
+
*/
|
|
3575
|
+
export function explain_rdkit_atom_code_json(code) {
|
|
3576
|
+
let deferred1_0;
|
|
3577
|
+
let deferred1_1;
|
|
3578
|
+
try {
|
|
3579
|
+
const ret = wasm.explain_rdkit_atom_code_json(code);
|
|
3580
|
+
deferred1_0 = ret[0];
|
|
3581
|
+
deferred1_1 = ret[1];
|
|
3582
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
3583
|
+
} finally {
|
|
3584
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
3585
|
+
}
|
|
3586
|
+
}
|
|
3587
|
+
|
|
3588
|
+
/**
|
|
3589
|
+
* Decode a decimal legacy RDKit torsion code as stable JSON.
|
|
3590
|
+
* @param {string} code_decimal
|
|
3591
|
+
* @param {number} size
|
|
3592
|
+
* @returns {string}
|
|
3593
|
+
*/
|
|
3594
|
+
export function explain_rdkit_topological_torsion_code_json(code_decimal, size) {
|
|
3595
|
+
let deferred3_0;
|
|
3596
|
+
let deferred3_1;
|
|
3597
|
+
try {
|
|
3598
|
+
const ptr0 = passStringToWasm0(code_decimal, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
3599
|
+
const len0 = WASM_VECTOR_LEN;
|
|
3600
|
+
const ret = wasm.explain_rdkit_topological_torsion_code_json(ptr0, len0, size);
|
|
3601
|
+
var ptr2 = ret[0];
|
|
3602
|
+
var len2 = ret[1];
|
|
3603
|
+
if (ret[3]) {
|
|
3604
|
+
ptr2 = 0; len2 = 0;
|
|
3605
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
3606
|
+
}
|
|
3607
|
+
deferred3_0 = ptr2;
|
|
3608
|
+
deferred3_1 = len2;
|
|
3609
|
+
return getStringFromWasm0(ptr2, len2);
|
|
3610
|
+
} finally {
|
|
3611
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3446
3615
|
/**
|
|
3447
3616
|
* Extract an extxyz frame's coordinates, cell, per-atom properties and
|
|
3448
3617
|
* frame metadata as JSON, in the SAME atom order [`mol_from_extxyz`]
|
|
@@ -6556,6 +6725,59 @@ export function prepare_rdkit_ecfp4(mol) {
|
|
|
6556
6725
|
return PreparedRdkitEcfp4Handle.__wrap(ret[0]);
|
|
6557
6726
|
}
|
|
6558
6727
|
|
|
6728
|
+
/**
|
|
6729
|
+
* Amino-acid-only mmCIF projection in the same schema as
|
|
6730
|
+
* [`protein_from_pdb_json`].
|
|
6731
|
+
* @param {string} text
|
|
6732
|
+
* @returns {string}
|
|
6733
|
+
*/
|
|
6734
|
+
export function protein_from_mmcif_json(text) {
|
|
6735
|
+
let deferred3_0;
|
|
6736
|
+
let deferred3_1;
|
|
6737
|
+
try {
|
|
6738
|
+
const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
6739
|
+
const len0 = WASM_VECTOR_LEN;
|
|
6740
|
+
const ret = wasm.protein_from_mmcif_json(ptr0, len0);
|
|
6741
|
+
var ptr2 = ret[0];
|
|
6742
|
+
var len2 = ret[1];
|
|
6743
|
+
if (ret[3]) {
|
|
6744
|
+
ptr2 = 0; len2 = 0;
|
|
6745
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
6746
|
+
}
|
|
6747
|
+
deferred3_0 = ptr2;
|
|
6748
|
+
deferred3_1 = len2;
|
|
6749
|
+
return getStringFromWasm0(ptr2, len2);
|
|
6750
|
+
} finally {
|
|
6751
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
6752
|
+
}
|
|
6753
|
+
}
|
|
6754
|
+
|
|
6755
|
+
/**
|
|
6756
|
+
* Amino-acid-only PDB projection as stable JSON.
|
|
6757
|
+
* @param {string} text
|
|
6758
|
+
* @returns {string}
|
|
6759
|
+
*/
|
|
6760
|
+
export function protein_from_pdb_json(text) {
|
|
6761
|
+
let deferred3_0;
|
|
6762
|
+
let deferred3_1;
|
|
6763
|
+
try {
|
|
6764
|
+
const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
6765
|
+
const len0 = WASM_VECTOR_LEN;
|
|
6766
|
+
const ret = wasm.protein_from_pdb_json(ptr0, len0);
|
|
6767
|
+
var ptr2 = ret[0];
|
|
6768
|
+
var len2 = ret[1];
|
|
6769
|
+
if (ret[3]) {
|
|
6770
|
+
ptr2 = 0; len2 = 0;
|
|
6771
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
6772
|
+
}
|
|
6773
|
+
deferred3_0 = ptr2;
|
|
6774
|
+
deferred3_1 = len2;
|
|
6775
|
+
return getStringFromWasm0(ptr2, len2);
|
|
6776
|
+
} finally {
|
|
6777
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
6778
|
+
}
|
|
6779
|
+
}
|
|
6780
|
+
|
|
6559
6781
|
/**
|
|
6560
6782
|
* Coordinates (Å) plus molecular charge/multiplicity from a QCSchema
|
|
6561
6783
|
* `qcschema_molecule` document, in the SAME atom order
|
|
@@ -6688,6 +6910,25 @@ export function random_smiles_json(smiles, count, seed) {
|
|
|
6688
6910
|
}
|
|
6689
6911
|
}
|
|
6690
6912
|
|
|
6913
|
+
/**
|
|
6914
|
+
* RDKit atom-pair atom code for one atom.
|
|
6915
|
+
*
|
|
6916
|
+
* `branch_subtract` is normally 0 for atom-pair diagnostics, 1 for a
|
|
6917
|
+
* torsion endpoint, and 2 for an interior torsion atom.
|
|
6918
|
+
* @param {MolHandle} mol
|
|
6919
|
+
* @param {number} atom_index
|
|
6920
|
+
* @param {number} branch_subtract
|
|
6921
|
+
* @returns {number}
|
|
6922
|
+
*/
|
|
6923
|
+
export function rdkit_atom_code(mol, atom_index, branch_subtract) {
|
|
6924
|
+
_assertClass(mol, MolHandle);
|
|
6925
|
+
const ret = wasm.rdkit_atom_code(mol.__wbg_ptr, atom_index, branch_subtract);
|
|
6926
|
+
if (ret[2]) {
|
|
6927
|
+
throw takeFromExternrefTable0(ret[1]);
|
|
6928
|
+
}
|
|
6929
|
+
return ret[0] >>> 0;
|
|
6930
|
+
}
|
|
6931
|
+
|
|
6691
6932
|
/**
|
|
6692
6933
|
* RDKit-bit-exact ECFP4 (radius=2, 2048 bits, `useChirality=false`, `useBondTypes=true`,
|
|
6693
6934
|
* RDKit's default atom invariant) as a bit-packed byte vector (256 bytes = 2048 bits).
|
|
@@ -6961,6 +7202,58 @@ export function rdkit_rdk_bitvec(mol) {
|
|
|
6961
7202
|
return v1;
|
|
6962
7203
|
}
|
|
6963
7204
|
|
|
7205
|
+
/**
|
|
7206
|
+
* RDKit 2026.09.1 RDKFingerprint with `ignoreAtoms`: every branched path
|
|
7207
|
+
* containing one of `ignored_atoms` is excluded. Invalid indices return a JS
|
|
7208
|
+
* error; an empty list is bit-identical to [`rdkit_rdk_bitvec`].
|
|
7209
|
+
* @param {MolHandle} mol
|
|
7210
|
+
* @param {Uint32Array} ignored_atoms
|
|
7211
|
+
* @returns {Uint8Array}
|
|
7212
|
+
*/
|
|
7213
|
+
export function rdkit_rdk_bitvec_ignoring_atoms(mol, ignored_atoms) {
|
|
7214
|
+
_assertClass(mol, MolHandle);
|
|
7215
|
+
const ptr0 = passArray32ToWasm0(ignored_atoms, wasm.__wbindgen_malloc);
|
|
7216
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7217
|
+
const ret = wasm.rdkit_rdk_bitvec_ignoring_atoms(mol.__wbg_ptr, ptr0, len0);
|
|
7218
|
+
if (ret[3]) {
|
|
7219
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
7220
|
+
}
|
|
7221
|
+
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
7222
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
7223
|
+
return v2;
|
|
7224
|
+
}
|
|
7225
|
+
|
|
7226
|
+
/**
|
|
7227
|
+
* Pack a JSON array of atom indices into RDKit's legacy torsion code.
|
|
7228
|
+
*
|
|
7229
|
+
* The decimal string return type avoids losing precision in JavaScript's
|
|
7230
|
+
* `number` type for codes above 2^53.
|
|
7231
|
+
* @param {MolHandle} mol
|
|
7232
|
+
* @param {string} path_json
|
|
7233
|
+
* @returns {string}
|
|
7234
|
+
*/
|
|
7235
|
+
export function rdkit_topological_torsion_path_code_decimal(mol, path_json) {
|
|
7236
|
+
let deferred3_0;
|
|
7237
|
+
let deferred3_1;
|
|
7238
|
+
try {
|
|
7239
|
+
_assertClass(mol, MolHandle);
|
|
7240
|
+
const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
7241
|
+
const len0 = WASM_VECTOR_LEN;
|
|
7242
|
+
const ret = wasm.rdkit_topological_torsion_path_code_decimal(mol.__wbg_ptr, ptr0, len0);
|
|
7243
|
+
var ptr2 = ret[0];
|
|
7244
|
+
var len2 = ret[1];
|
|
7245
|
+
if (ret[3]) {
|
|
7246
|
+
ptr2 = 0; len2 = 0;
|
|
7247
|
+
throw takeFromExternrefTable0(ret[2]);
|
|
7248
|
+
}
|
|
7249
|
+
deferred3_0 = ptr2;
|
|
7250
|
+
deferred3_1 = len2;
|
|
7251
|
+
return getStringFromWasm0(ptr2, len2);
|
|
7252
|
+
} finally {
|
|
7253
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
7254
|
+
}
|
|
7255
|
+
}
|
|
7256
|
+
|
|
6964
7257
|
/**
|
|
6965
7258
|
* Compute the opt-in RDKit-compatible hashed topological-torsion fingerprint
|
|
6966
7259
|
* as a bit-packed byte vector (256 bytes = 2048 bits). This remains separate
|
|
@@ -7316,6 +7609,8 @@ export function roundtrip_mol_v3000_block(block) {
|
|
|
7316
7609
|
* `reactants_smiles`: pipe-separated SMILES, one per reactant slot in the SMIRKS.
|
|
7317
7610
|
* Returns a JSON array of arrays: `[["product_smi", …], …]`.
|
|
7318
7611
|
* Returns a JS error on parse failure or arity mismatch.
|
|
7612
|
+
* Product-template E/Z is resolved after all reactants are assembled, so an
|
|
7613
|
+
* unspecified product double bond does not depend on reactant order.
|
|
7319
7614
|
* @param {string} smirks
|
|
7320
7615
|
* @param {string} reactants_smiles
|
|
7321
7616
|
* @returns {string}
|
package/chematic_wasm_bg.wasm
CHANGED
|
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.
|
|
8
|
+
"version": "1.1.4",
|
|
9
9
|
"license": "MIT OR Apache-2.0",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|