nmr-processing 9.3.8 → 9.4.1-pre.1683777881

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.
Files changed (73) hide show
  1. package/lib/assignment/get13CAssignments.js.map +1 -1
  2. package/lib/assignment/get1HAssignments.js.map +1 -1
  3. package/lib/assignment/getAssignments.js.map +1 -1
  4. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  5. package/lib/constants/MultiplicityPatterns.d.ts +7 -0
  6. package/lib/constants/MultiplicityPatterns.js +31 -0
  7. package/lib/constants/MultiplicityPatterns.js.map +1 -0
  8. package/lib/constants/couplingPatterns.js +2 -11
  9. package/lib/constants/couplingPatterns.js.map +1 -1
  10. package/lib/constants/couplingValues.js +11 -15
  11. package/lib/constants/couplingValues.js.map +1 -1
  12. package/lib/index.d.ts +3 -0
  13. package/lib/index.js +3 -0
  14. package/lib/index.js.map +1 -1
  15. package/lib/prediction/predictAll.js.map +1 -1
  16. package/lib/prediction/predictCarbon.d.ts +0 -4
  17. package/lib/prediction/predictCarbon.js +12 -18
  18. package/lib/prediction/predictCarbon.js.map +1 -1
  19. package/lib/prediction/predictProton.js.map +1 -1
  20. package/lib/prediction/utils/fetchPrediction.js +3 -0
  21. package/lib/prediction/utils/fetchPrediction.js.map +1 -1
  22. package/lib/prediction/utils/getFilteredIDiaIDs.d.ts +1 -1
  23. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  24. package/lib/prediction/utils/predict2D.js.map +1 -1
  25. package/lib/ranges/rangesToXY.d.ts +1 -2
  26. package/lib/ranges/rangesToXY.js.map +1 -1
  27. package/lib/signals/addDummySignals.js +3 -2
  28. package/lib/signals/addDummySignals.js.map +1 -1
  29. package/lib/utilities/splitPatterns.js +8 -1
  30. package/lib/utilities/splitPatterns.js.map +1 -1
  31. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  32. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  33. package/lib-esm/assignment/getAssignments.js.map +1 -1
  34. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  35. package/lib-esm/constants/MultiplicityPatterns.js +28 -0
  36. package/lib-esm/constants/MultiplicityPatterns.js.map +1 -0
  37. package/lib-esm/constants/couplingPatterns.js +2 -11
  38. package/lib-esm/constants/couplingPatterns.js.map +1 -1
  39. package/lib-esm/constants/couplingValues.js +11 -15
  40. package/lib-esm/constants/couplingValues.js.map +1 -1
  41. package/lib-esm/index.js +3 -0
  42. package/lib-esm/index.js.map +1 -1
  43. package/lib-esm/prediction/predictAll.js.map +1 -1
  44. package/lib-esm/prediction/predictCarbon.js +12 -15
  45. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  46. package/lib-esm/prediction/predictProton.js.map +1 -1
  47. package/lib-esm/prediction/utils/fetchPrediction.js +3 -0
  48. package/lib-esm/prediction/utils/fetchPrediction.js.map +1 -1
  49. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  50. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  51. package/lib-esm/ranges/rangesToXY.js.map +1 -1
  52. package/lib-esm/signals/addDummySignals.js +3 -2
  53. package/lib-esm/signals/addDummySignals.js.map +1 -1
  54. package/lib-esm/utilities/splitPatterns.js +8 -1
  55. package/lib-esm/utilities/splitPatterns.js.map +1 -1
  56. package/package.json +3 -3
  57. package/src/assignment/get13CAssignments.ts +1 -1
  58. package/src/assignment/get1HAssignments.ts +1 -1
  59. package/src/assignment/getAssignments.ts +1 -1
  60. package/src/assignment/utils/getAssignment/buildAssignments.ts +1 -1
  61. package/src/constants/MultiplicityPatterns.ts +35 -0
  62. package/src/constants/couplingPatterns.ts +3 -11
  63. package/src/constants/couplingValues.ts +10 -15
  64. package/src/index.ts +4 -0
  65. package/src/prediction/predictAll.ts +1 -1
  66. package/src/prediction/predictCarbon.ts +15 -27
  67. package/src/prediction/predictProton.ts +1 -1
  68. package/src/prediction/utils/fetchPrediction.ts +5 -0
  69. package/src/prediction/utils/getFilteredIDiaIDs.ts +1 -1
  70. package/src/prediction/utils/predict2D.ts +1 -1
  71. package/src/ranges/rangesToXY.ts +5 -3
  72. package/src/signals/addDummySignals.ts +1 -2
  73. package/src/utilities/splitPatterns.ts +11 -2
@@ -1,12 +1,12 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import fetch from 'cross-fetch';
3
3
  import FormData from 'form-data';
4
+ import type { Molecule } from 'openchemlib/full';
4
5
  import {
5
6
  addDiastereotopicMissingChirality,
6
7
  getConnectivityMatrix,
7
8
  getDiastereotopicAtomIDs,
8
9
  } from 'openchemlib-utils';
9
- import type { Molecule } from 'openchemlib/full';
10
10
 
11
11
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
12
12
  import { signalsJoin } from '../signals/signalsJoin';
@@ -20,7 +20,12 @@ export async function fetchPrediction(
20
20
  body: JSON.stringify({ molfile: molecule.toMolfile() }),
21
21
  method: 'POST',
22
22
  });
23
+
24
+ if (response.status >= 400) {
25
+ throw new Error(response.statusText);
26
+ }
23
27
  const prediction = (await response.json()).data;
28
+
24
29
  prediction.molecule = molecule
25
30
  .getOCL()
26
31
  .Molecule.fromMolfile(prediction.molfile);
@@ -1,10 +1,10 @@
1
+ import type { Molecule } from 'openchemlib/full';
1
2
  import {
2
3
  getHoseCodesFromDiastereotopicID,
3
4
  addDiastereotopicMissingChirality,
4
5
  groupDiastereotopicAtomIDs,
5
6
  } from 'openchemlib-utils';
6
7
  import type { GroupDiastereotopicAtomIDs } from 'openchemlib-utils';
7
- import type { Molecule } from 'openchemlib/full';
8
8
 
9
9
  export interface GroupDiaIDsWithHose extends GroupDiastereotopicAtomIDs {
10
10
  hose: string[];
@@ -1,6 +1,7 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import { agnes, Cluster } from 'ml-hclust';
3
3
  import { Matrix } from 'ml-matrix';
4
+ import { Molecule } from 'openchemlib/full';
4
5
  import {
5
6
  getGroupedDiastereotopicAtomIDs,
6
7
  getPathsInfo,
@@ -11,7 +12,6 @@ import type {
11
12
  GroupDiastereotopicAtomIDs,
12
13
  PathInfo,
13
14
  } from 'openchemlib-utils';
14
- import { Molecule } from 'openchemlib/full';
15
15
 
16
16
  import { setIDs } from '../../peaks/util/setIDs';
17
17
  import type { NMRSignal1D } from '../../signals/NMRSignal1D';
@@ -37,8 +37,7 @@ export interface RangeToXYOptions {
37
37
  */
38
38
  nbPoints: number;
39
39
  /**
40
- * options of signals.
41
- * @default { kind: 'gaussian' }
40
+ * options of signals. default { kind: 'gaussian' }
42
41
  */
43
42
  shape: Shape1D;
44
43
  }
@@ -59,7 +58,10 @@ const defaultFromTo = (nucleus = '') => {
59
58
  }
60
59
  };
61
60
 
62
- export function rangesToXY(ranges: NMRRange[], options: any = {}) {
61
+ export function rangesToXY(
62
+ ranges: NMRRange[],
63
+ options: any = {},
64
+ ): { x: DoubleArray; y: Float64Array } {
63
65
  checkForSignals(ranges);
64
66
  let {
65
67
  frequency = 400,
@@ -20,7 +20,6 @@ export function addDummySignals(signals: NMRSignal1D[]) {
20
20
  } = signal;
21
21
  let { newCouplings, tempSignals } = checkCouplings(
22
22
  jCouplings,
23
- newSignals,
24
23
  signalAssignment,
25
24
  nextAtomToAssign + signals.length,
26
25
  );
@@ -36,7 +35,6 @@ export function addDummySignals(signals: NMRSignal1D[]) {
36
35
 
37
36
  function checkCouplings(
38
37
  jCouplings: Jcoupling[],
39
- signals: NMRSignal1D[],
40
38
  signalAssignment: number[],
41
39
  nextAtomToAssign: number,
42
40
  ) {
@@ -58,6 +56,7 @@ function checkCouplings(
58
56
  formatSignal(coupling, [nextAtomToAssign], signalAssignment),
59
57
  );
60
58
  }
59
+ newCouplings.push(...tempCouplings);
61
60
  } else {
62
61
  newCouplings.push(jCoupling);
63
62
  }
@@ -1,8 +1,17 @@
1
+ import { MultiplicityPatterns } from "../constants/MultiplicityPatterns";
2
+
3
+ let possiblePatterns: string[] = [];
4
+ for (const { label, value, names } of MultiplicityPatterns) {
5
+ possiblePatterns.push(label, value, ...names);
6
+ }
7
+ possiblePatterns = possiblePatterns.sort((a, b) => b.length - a.length);
8
+
1
9
  export function splitPatterns(multiplet: string) {
2
10
  if (/^\s*$/.exec(multiplet)) return [];
11
+ const regexp = new RegExp(possiblePatterns.join('|'), 'g');
3
12
  let result = multiplet.match(
4
- / *(quint|hex|sept|hept|oct|nona|non|s|d|t|q|h|o|n) */g,
13
+ regexp
5
14
  );
6
15
  if (result) return result.map((entry) => entry.trim());
7
16
  return [multiplet];
8
- }
17
+ }