openchemlib 8.1.0 → 8.3.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/minimal.d.ts CHANGED
@@ -8,6 +8,9 @@ export {
8
8
  IDepictorOptions,
9
9
  Reaction,
10
10
  SDFileParser,
11
+ ISmilesParserOptions,
12
+ ISmilesParserParseMoleculeOptions,
13
+ SmilesParser,
11
14
  SSSearcher,
12
15
  SSSearcherWithIndex,
13
16
  Util,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openchemlib",
3
- "version": "8.1.0",
3
+ "version": "8.3.0",
4
4
  "description": "Manipulate molecules",
5
5
  "keywords": [
6
6
  "chemistry",
@@ -27,9 +27,6 @@
27
27
  "test": "npm run build && npm run test-only && npm run eslint",
28
28
  "test-only": "jest"
29
29
  },
30
- "jest": {
31
- "testEnvironment": "node"
32
- },
33
30
  "main": "./core.js",
34
31
  "files": [
35
32
  "dist",
@@ -56,14 +53,12 @@
56
53
  "homepage": "https://github.com/cheminfo/openchemlib-js",
57
54
  "devDependencies": {
58
55
  "benchmark": "^2.1.4",
59
- "eslint": "^8.25.0",
60
- "eslint-config-cheminfo": "^8.0.2",
61
- "fs-extra": "^10.1.0",
56
+ "eslint": "^8.37.0",
57
+ "eslint-config-cheminfo": "^8.2.0",
62
58
  "gwt-api-exporter": "^2.0.0",
63
- "jest": "^29.2.0",
64
- "openchemlib-utils": "^2.1.3",
65
- "prettier": "^2.7.1",
66
- "rimraf": "^3.0.2",
67
- "yargs": "^17.6.0"
59
+ "jest": "^29.5.0",
60
+ "openchemlib-utils": "^2.4.0",
61
+ "prettier": "^2.8.7",
62
+ "yargs": "^17.7.1"
68
63
  }
69
64
  }
package/types.d.ts CHANGED
@@ -2,12 +2,14 @@
2
2
 
3
3
  export interface IMoleculeFromSmilesOptions {
4
4
  /**
5
- * Disable extra coordinate computation. Default: false.
5
+ * Disable coordinate invention.
6
+ * @default `false`
6
7
  */
7
8
  noCoordinates?: boolean;
8
9
 
9
10
  /**
10
- * Disable stereo features parsing. Default: false.
11
+ * Disable stereo features parsing.
12
+ * @default `false`
11
13
  */
12
14
  noStereo?: boolean;
13
15
  }
@@ -89,6 +91,8 @@ export declare class Molecule {
89
91
  */
90
92
  constructor(maxAtoms: number, maxBonds: number);
91
93
 
94
+ // based on JSMolecule.java you can do a regexp ".*static.* (int|long|double)(.*) = .*;" and replace with "$2: number;"
95
+
92
96
  static CANONIZER_CREATE_SYMMETRY_RANK: number;
93
97
  static CANONIZER_CONSIDER_DIASTEREOTOPICITY: number;
94
98
  static CANONIZER_CONSIDER_ENANTIOTOPICITY: number;
@@ -99,22 +103,22 @@ export declare class Molecule {
99
103
  static CANONIZER_COORDS_ARE_3D: number;
100
104
  static CANONIZER_CREATE_PSEUDO_STEREO_GROUPS: number;
101
105
  static CANONIZER_DISTINGUISH_RACEMIC_OR_GROUPS: number;
106
+ static CANONIZER_TIE_BREAK_FREE_VALENCE_ATOMS: number;
107
+ static CANONIZER_ENCODE_ATOM_CUSTOM_LABELS_WITHOUT_RANKING: number;
108
+ static CANONIZER_NEGLECT_ANY_STEREO_INFORMATION: number;
102
109
 
103
110
  static cMaxAtomicNo: number;
104
-
105
111
  static cAtomParityNone: number;
106
112
  static cAtomParity1: number;
107
113
  static cAtomParity2: number;
108
114
  static cAtomParityUnknown: number;
109
115
  static cAtomParityIsPseudo: number;
110
-
111
116
  static cAtomRadicalState: number;
112
117
  static cAtomRadicalStateShift: number;
113
118
  static cAtomRadicalStateNone: number;
114
119
  static cAtomRadicalStateS: number;
115
120
  static cAtomRadicalStateD: number;
116
121
  static cAtomRadicalStateT: number;
117
-
118
122
  static cAtomColorNone: number;
119
123
  static cAtomColorBlue: number;
120
124
  static cAtomColorRed: number;
@@ -123,18 +127,15 @@ export declare class Molecule {
123
127
  static cAtomColorOrange: number;
124
128
  static cAtomColorDarkGreen: number;
125
129
  static cAtomColorDarkRed: number;
126
-
127
130
  static cAtomCIPParityNone: number;
128
131
  static cAtomCIPParityRorM: number;
129
132
  static cAtomCIPParitySorP: number;
130
133
  static cAtomCIPParityProblem: number;
131
-
132
134
  static cESRTypeAbs: number;
133
135
  static cESRTypeAnd: number;
134
136
  static cESRTypeOr: number;
135
137
  static cESRMaxGroups: number;
136
138
  static cESRGroupBits: number;
137
-
138
139
  static cAtomQFNoOfBits: number;
139
140
  static cAtomQFAromStateBits: number;
140
141
  static cAtomQFAromStateShift: number;
@@ -146,12 +147,18 @@ export declare class Molecule {
146
147
  static cAtomQFPiElectronShift: number;
147
148
  static cAtomQFNeighbourBits: number;
148
149
  static cAtomQFNeighbourShift: number;
149
- static cAtomQFRingSizeBits: number;
150
- static cAtomQFRingSizeShift: number;
150
+ static cAtomQFSmallRingSizeBits: number;
151
+ static cAtomQFSmallRingSizeShift: number;
151
152
  static cAtomQFChargeBits: number;
152
153
  static cAtomQFChargeShift: number;
153
154
  static cAtomQFRxnParityBits: number;
154
155
  static cAtomQFRxnParityShift: number;
156
+ static cAtomQFNewRingSizeBits: number;
157
+ static cAtomQFNewRingSizeShift: number;
158
+ static cAtomQFENeighbourBits: number;
159
+ static cAtomQFENeighbourShift: number;
160
+ static cAtomQFStereoStateBits: number;
161
+ static cAtomQFStereoStateShift: number;
155
162
  static cAtomQFSimpleFeatures: number;
156
163
  static cAtomQFNarrowing: number;
157
164
  static cAtomQFAny: number;
@@ -181,42 +188,72 @@ export declare class Molecule {
181
188
  static cAtomQFNot2Neighbours: number;
182
189
  static cAtomQFNot3Neighbours: number;
183
190
  static cAtomQFNot4Neighbours: number;
184
- static cAtomQFRingSize: number;
191
+ static cAtomQFSmallRingSize: number;
192
+
185
193
  static cAtomQFCharge: number;
186
194
  static cAtomQFNotChargeNeg: number;
187
195
  static cAtomQFNotCharge0: number;
188
196
  static cAtomQFNotChargePos: number;
189
197
  static cAtomQFFlatNitrogen: number;
198
+
190
199
  static cAtomQFExcludeGroup: number;
200
+
191
201
  static cAtomQFRxnParityHint: number;
202
+
192
203
  static cAtomQFRxnParityRetain: number;
193
204
  static cAtomQFRxnParityInvert: number;
194
205
  static cAtomQFRxnParityRacemize: number;
206
+ static cAtomQFNewRingSize: number;
207
+ static cAtomQFRingSize0: number;
208
+ static cAtomQFRingSize3: number;
209
+ static cAtomQFRingSize4: number;
210
+ static cAtomQFRingSize5: number;
211
+ static cAtomQFRingSize6: number;
212
+ static cAtomQFRingSize7: number;
213
+ static cAtomQFRingSizeLarge: number;
214
+ static cAtomQFENeighbours: number;
215
+ static cAtomQFNot0ENeighbours: number;
216
+ static cAtomQFNot1ENeighbour: number;
217
+ static cAtomQFNot2ENeighbours: number;
218
+ static cAtomQFNot3ENeighbours: number;
219
+ static cAtomQFNot4ENeighbours: number;
220
+ static cAtomQFStereoState: number;
221
+ static cAtomQFIsStereo: number;
222
+ static cAtomQFIsNotStereo: number;
223
+ static cAtomQFHeteroAromatic: number;
195
224
 
196
225
  static cBondTypeSingle: number;
197
226
  static cBondTypeDouble: number;
198
227
  static cBondTypeTriple: number;
228
+ static cBondTypeQuadruple: number;
229
+ static cBondTypeQuintuple: number;
230
+ static cBondTypeMetalLigand: number;
231
+ static cBondTypeDelocalized: number;
199
232
  static cBondTypeDown: number;
200
233
  static cBondTypeUp: number;
201
234
  static cBondTypeCross: number;
202
- static cBondTypeMetalLigand: number;
203
- static cBondTypeDelocalized: number;
204
235
  static cBondTypeDeleted: number;
205
236
  static cBondTypeIncreaseOrder: number;
206
237
 
238
+ static cBondTypeMaskSimple: number;
239
+ static cBondTypeMaskStereo: number;
240
+
241
+ static cBondFlagsHelper2: number;
242
+ static cBondFlagsHelper3: number;
243
+
207
244
  static cBondParityNone: number;
208
245
  static cBondParityEor1: number;
209
246
  static cBondParityZor2: number;
210
247
  static cBondParityUnknown: number;
211
-
212
248
  static cBondCIPParityNone: number;
213
249
  static cBondCIPParityEorP: number;
214
250
  static cBondCIPParityZorM: number;
215
251
  static cBondCIPParityProblem: number;
216
-
217
252
  static cBondQFNoOfBits: number;
218
253
  static cBondQFBondTypesBits: number;
219
254
  static cBondQFBondTypesShift: number;
255
+ static cBondQFRareBondTypesBits: number;
256
+ static cBondQFRareBondTypesShift: number;
220
257
  static cBondQFRingStateBits: number;
221
258
  static cBondQFRingStateShift: number;
222
259
  static cBondQFBridgeBits: number;
@@ -233,11 +270,14 @@ export declare class Molecule {
233
270
  static cBondQFSimpleFeatures: number;
234
271
  static cBondQFNarrowing: number;
235
272
  static cBondQFBondTypes: number;
273
+ static cBondQFRareBondTypes: number;
236
274
  static cBondQFSingle: number;
237
275
  static cBondQFDouble: number;
238
276
  static cBondQFTriple: number;
239
277
  static cBondQFDelocalized: number;
240
278
  static cBondQFMetalLigand: number;
279
+ static cBondQFQuadruple: number;
280
+ static cBondQFQuintuple: number;
241
281
  static cBondQFRingState: number;
242
282
  static cBondQFNotRing: number;
243
283
  static cBondQFRing: number;
@@ -249,24 +289,30 @@ export declare class Molecule {
249
289
  static cBondQFAromState: number;
250
290
  static cBondQFAromatic: number;
251
291
  static cBondQFNotAromatic: number;
292
+ static cBondQFMatchFormalOrder: number;
252
293
 
253
294
  static cHelperNone: number;
254
295
  static cHelperBitNeighbours: number;
296
+ static cHelperBitRingsSimple: number;
297
+
255
298
  static cHelperBitRings: number;
256
299
  static cHelperBitParities: number;
257
300
  static cHelperBitCIP: number;
301
+
258
302
  static cHelperBitSymmetrySimple: number;
259
- static cHelperBitSymmetryDiastereotopic: number;
260
- static cHelperBitSymmetryEnantiotopic: number;
303
+ static cHelperBitSymmetryStereoHeterotopicity: number;
261
304
  static cHelperBitIncludeNitrogenParities: number;
305
+
262
306
  static cHelperBitsStereo: number;
307
+
263
308
  static cHelperNeighbours: number;
309
+ static cHelperRingsSimple: number;
264
310
  static cHelperRings: number;
265
311
  static cHelperParities: number;
266
312
  static cHelperCIP: number;
313
+
267
314
  static cHelperSymmetrySimple: number;
268
- static cHelperSymmetryDiastereotopic: number;
269
- static cHelperSymmetryEnantiotopic: number;
315
+ static cHelperSymmetryStereoHeterotopicity: number;
270
316
 
271
317
  static cChiralityIsomerCountMask: number;
272
318
  static cChiralityUnknown: number;
@@ -278,17 +324,33 @@ export declare class Molecule {
278
324
  static cChiralityEpimers: number;
279
325
  static cChiralityDiastereomers: number;
280
326
 
327
+ static cDefaultAVBL: number;
328
+
281
329
  static cMoleculeColorDefault: number;
282
330
  static cMoleculeColorNeutral: number;
283
331
 
332
+ static cPseudoAtomsHydrogenIsotops: number;
333
+ static cPseudoAtomsRGroups: number;
334
+ static cPseudoAtomsAGroups: number;
335
+ static cPseudoAtomR: number;
336
+ static cPseudoAtomA: number;
337
+ static cPseudoAtomX: number;
338
+ static cPseudoAtomsAminoAcids: number;
339
+ static cPseudoAtomPolymer: number;
340
+ static cPseudoAtomAttachmentPoint: number;
341
+ static cPseudoAtomsAll: number;
342
+ static cDefaultAllowedPseudoAtoms: number;
343
+
284
344
  static cAtomLabel: string[];
285
345
 
286
346
  static cRoundedMass: number[];
287
347
 
288
348
  static cDefaultAtomValence: number;
349
+ static cAtomValence: number[][];
350
+ static cCommonOxidationState: number[][];
289
351
 
290
352
  static FISCHER_PROJECTION_LIMIT: number;
291
-
353
+ static FISCHER_PROJECTION_RING_LIMIT: number;
292
354
  static STEREO_ANGLE_LIMIT: number;
293
355
 
294
356
  static cMaxConnAtoms: number;
@@ -343,7 +405,10 @@ export declare class Molecule {
343
405
  */
344
406
  static fromIDCode(idcode: string, ensure2DCoordinates?: boolean): Molecule;
345
407
 
346
- static getAtomicNoFromLabel(atomLabel: string): number;
408
+ static getAtomicNoFromLabel(
409
+ atomLabel: string,
410
+ allowedPseudoAtomGroups?: number,
411
+ ): number;
347
412
 
348
413
  static getAngle(x1: number, y1: number, x2: number, y2: number): number;
349
414
 
@@ -2510,6 +2575,77 @@ export declare class Molecule {
2510
2575
  setAssignParitiesToNitrogen(b: boolean): void;
2511
2576
  }
2512
2577
 
2578
+ export interface ISmilesParserOptions {
2579
+ /**
2580
+ * Enable SMARTS parsing with `'smarts'` or `'guess'`.
2581
+ * @default `'smiles'`
2582
+ */
2583
+ smartsMode?: 'smiles' | 'smarts' | 'guess';
2584
+
2585
+ createSmartsWarnings?: boolean;
2586
+
2587
+ skipCoordinateTemplates?: boolean;
2588
+
2589
+ makeHydrogenExplicit?: boolean;
2590
+
2591
+ /**
2592
+ * Disable parsing of CACTVS syntax.
2593
+ */
2594
+ noCactvs?: boolean;
2595
+ }
2596
+
2597
+ export interface ISmilesParserParseMoleculeOptions {
2598
+ /**
2599
+ * Molecule to parse into.
2600
+ */
2601
+ molecule?: Molecule;
2602
+
2603
+ /**
2604
+ * Disable coordinate invention.
2605
+ * @default `false`
2606
+ */
2607
+ noCoordinates?: boolean;
2608
+
2609
+ /**
2610
+ * Disable stereo features parsing.
2611
+ * @default `false`
2612
+ */
2613
+ noStereo?: boolean;
2614
+ }
2615
+
2616
+ export declare class SmilesParser {
2617
+ /**
2618
+ * Create a SMILES parser.
2619
+ */
2620
+ constructor(options?: ISmilesParserOptions);
2621
+
2622
+ /**
2623
+ * Set the random seed used to invent coordinates.
2624
+ * @param seed
2625
+ */
2626
+ setRandomSeed(seed: number): void;
2627
+
2628
+ /**
2629
+ * Parse a SMILES string and return a molecule.
2630
+ */
2631
+ parseMolecule(
2632
+ smiles: string,
2633
+ options?: ISmilesParserParseMoleculeOptions,
2634
+ ): Molecule;
2635
+
2636
+ /**
2637
+ * Parse a SMILES string and return a reaction.
2638
+ */
2639
+ parseReaction(smiles: string): Reaction;
2640
+
2641
+ /**
2642
+ * If createSmartsWarnings in the constructor was passed as true, then this method
2643
+ * returns a list of all SMARTS features, which could not be interpreted in the most recently
2644
+ * parsed SMILES/SMARTS pattern.
2645
+ */
2646
+ getSmartsWarning(): string;
2647
+ }
2648
+
2513
2649
  export interface MolecularFormula {
2514
2650
  absoluteWeight: number;
2515
2651
 
@@ -3226,15 +3362,6 @@ export declare class ConformerGenerator {
3226
3362
  */
3227
3363
  getPotentialConformerCount(): number;
3228
3364
 
3229
- /**
3230
- * With best current knowledge about colliding torsion combinations
3231
- * and based on the individual frequencies of currently active torsions
3232
- * this method returns the conformers's overall contribution to the
3233
- * total set of non colliding conformers.
3234
- * @returns - This conformer's contribution to all conformers.
3235
- */
3236
- getPreviousConformerContribution(): number;
3237
-
3238
3365
  /**
3239
3366
  * Returns an iterator of molecule conformers.
3240
3367
  */