nmr-processing 9.3.0 → 9.3.1-pre.1669891843

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 (93) hide show
  1. package/lib/apodization/shapes/WindowFunctions.d.ts +1 -1
  2. package/lib/assignment/get13CAssignments.d.ts +1 -1
  3. package/lib/assignment/get13CAssignments.js.map +1 -1
  4. package/lib/assignment/get1HAssignments.d.ts +3 -3
  5. package/lib/assignment/get1HAssignments.js.map +1 -1
  6. package/lib/assignment/getAssignments.d.ts +2 -2
  7. package/lib/assignment/getAssignments.js.map +1 -1
  8. package/lib/assignment/nmrAssigment.d.ts +3 -3
  9. package/lib/assignment/utils/createMapPossibleAssignments.d.ts +1 -1
  10. package/lib/assignment/utils/getAssignment/buildAssignments.d.ts +4 -4
  11. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  12. package/lib/assignment/utils/getAssignment/formatData.d.ts +1 -1
  13. package/lib/peaks/peaksFilterImpurities.d.ts +1 -1
  14. package/lib/peaks/peaksToRanges.d.ts +1 -1
  15. package/lib/peaks/peaksToRanges.js +20 -19
  16. package/lib/peaks/peaksToRanges.js.map +1 -1
  17. package/lib/peaks/util/convertWidth.d.ts +1 -1
  18. package/lib/peaks/util/convertWidthToHz.d.ts +1 -1
  19. package/lib/prediction/Prediction1D.d.ts +1 -1
  20. package/lib/prediction/dataStructure.d.ts +1 -1
  21. package/lib/prediction/predictAll.d.ts +1 -1
  22. package/lib/prediction/predictAll.js +3 -1
  23. package/lib/prediction/predictAll.js.map +1 -1
  24. package/lib/prediction/predictAllSpectra.d.ts +1 -1
  25. package/lib/prediction/predictCOSY.d.ts +1 -1
  26. package/lib/prediction/predictCarbon.d.ts +6 -2
  27. package/lib/prediction/predictCarbon.js +5 -4
  28. package/lib/prediction/predictCarbon.js.map +1 -1
  29. package/lib/prediction/predictHMBC.d.ts +1 -1
  30. package/lib/prediction/predictHSQC.d.ts +1 -1
  31. package/lib/prediction/predictProton.d.ts +6 -2
  32. package/lib/prediction/predictProton.js +1 -1
  33. package/lib/prediction/predictProton.js.map +1 -1
  34. package/lib/prediction/utils/fetchPrediction.d.ts +1 -1
  35. package/lib/prediction/utils/getFilteredIDiaIDs.d.ts +3 -4
  36. package/lib/prediction/utils/getFilteredIDiaIDs.js +5 -6
  37. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  38. package/lib/prediction/utils/getPredictions.d.ts +1 -1
  39. package/lib/prediction/utils/predict2D.d.ts +6 -2
  40. package/lib/prediction/utils/predict2D.js +5 -3
  41. package/lib/prediction/utils/predict2D.js.map +1 -1
  42. package/lib/signals/optimization/getInternalSignals.d.ts +3 -3
  43. package/lib/signals/optimization/getSumOfShapes.d.ts +1 -1
  44. package/lib/signals/optimizeSignals.d.ts +1 -1
  45. package/lib/signals/signalsJoin.d.ts +3 -3
  46. package/lib/signals/signalsToRanges.d.ts +1 -1
  47. package/lib/signals/utils/jAnalyzer.d.ts +2 -2
  48. package/lib/utilities/MakeMandatory.d.ts +1 -1
  49. package/lib/utilities/getFrequency.d.ts +1 -1
  50. package/lib/utilities/hasProperty.d.ts +1 -1
  51. package/lib/xy/xyAutoPeaksPicking.d.ts +1 -1
  52. package/lib/xy/xyAutoPeaksPicking.js +4 -1
  53. package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
  54. package/lib/xyz/xyzAutoZonesPicking.d.ts +2 -2
  55. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  56. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  57. package/lib-esm/assignment/getAssignments.js.map +1 -1
  58. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  59. package/lib-esm/peaks/peaksToRanges.js +20 -19
  60. package/lib-esm/peaks/peaksToRanges.js.map +1 -1
  61. package/lib-esm/prediction/predictAll.js +3 -1
  62. package/lib-esm/prediction/predictAll.js.map +1 -1
  63. package/lib-esm/prediction/predictCarbon.js +5 -4
  64. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  65. package/lib-esm/prediction/predictProton.js +1 -1
  66. package/lib-esm/prediction/predictProton.js.map +1 -1
  67. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js +6 -7
  68. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  69. package/lib-esm/prediction/utils/predict2D.js +6 -4
  70. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  71. package/lib-esm/xy/xyAutoPeaksPicking.js +4 -1
  72. package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
  73. package/package.json +8 -7
  74. package/src/assignment/get13CAssignments.ts +1 -1
  75. package/src/assignment/get1HAssignments.ts +1 -1
  76. package/src/assignment/getAssignments.ts +1 -1
  77. package/src/assignment/utils/getAssignment/buildAssignments.ts +1 -1
  78. package/src/openchemlib-utils.d.ts +10 -1
  79. package/src/peaks/peaksToRanges.ts +23 -19
  80. package/src/prediction/Prediction1D.ts +1 -1
  81. package/src/prediction/predictAll.ts +5 -2
  82. package/src/prediction/predictAllSpectra.ts +1 -1
  83. package/src/prediction/predictCOSY.ts +1 -1
  84. package/src/prediction/predictCarbon.ts +17 -10
  85. package/src/prediction/predictHMBC.ts +1 -1
  86. package/src/prediction/predictHSQC.ts +1 -1
  87. package/src/prediction/predictProton.ts +6 -2
  88. package/src/prediction/utils/fetchPrediction.ts +1 -1
  89. package/src/prediction/utils/getFilteredIDiaIDs.ts +13 -14
  90. package/src/prediction/utils/getPredictions.ts +1 -1
  91. package/src/prediction/utils/predict2D.ts +14 -6
  92. package/src/utilities/hasProperty.ts +1 -1
  93. package/src/xy/xyAutoPeaksPicking.ts +5 -1
@@ -1,7 +1,7 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import { agnes } from 'ml-hclust';
3
3
  import { Matrix } from 'ml-matrix';
4
- import { getGroupedDiastereotopicAtomIDs, getPathsInfo, } from 'openchemlib-utils';
4
+ import { getGroupedDiastereotopicAtomIDs, getPathsInfo, groupDiastereotopicAtomIDs, } from 'openchemlib-utils';
5
5
  import { setIDs } from '../../peaks/util/setIDs';
6
6
  import { getNuclei } from './getNuclei';
7
7
  import { getPredictions } from './getPredictions';
@@ -12,17 +12,19 @@ function checkFromTo(options) {
12
12
  }
13
13
  export async function predict2D(molecule, options = {}) {
14
14
  checkFromTo(options);
15
- let { from, to, minLength = 0, maxLength, predictOptions = {}, predictions, predictor, joinDistance = { H: 0.05, C: 0.5 }, includeDiagonal = false, } = options;
16
15
  molecule.addImplicitHydrogens();
17
- let diaIDs = getGroupedDiastereotopicAtomIDs(molecule);
16
+ let { from, to, diaIDs, minLength = 0, maxLength, predictOptions = {}, predictions, predictor, joinDistance = { H: 0.05, C: 0.5 }, includeDiagonal = false, } = options;
18
17
  const pathsInfo = getPathsInfo(molecule, {
19
18
  fromLabel: from,
20
19
  toLabel: to,
21
20
  minLength,
22
21
  maxLength,
23
22
  });
23
+ const groupedDiaIDS = diaIDs
24
+ ? groupDiastereotopicAtomIDs(diaIDs, molecule)
25
+ : getGroupedDiastereotopicAtomIDs(molecule);
24
26
  let diaIDswithAtomInfo = [];
25
- for (let diaID of diaIDs) {
27
+ for (let diaID of groupedDiaIDS) {
26
28
  diaIDswithAtomInfo.push({
27
29
  ...diaID,
28
30
  pathInfo: JSON.parse(JSON.stringify(pathsInfo[diaID.atoms[0]])),
@@ -1 +1 @@
1
- {"version":3,"file":"predict2D.js","sourceRoot":"","sources":["../../../src/prediction/utils/predict2D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predict2D.js","sourceRoot":"","sources":["../../../src/prediction/utils/predict2D.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,10 @@ import { xyExtract, xNoiseSanPlot, xAbsoluteMedian, } from 'ml-spectra-processin
3
3
  import { convertWidthToHz } from '../peaks/util/convertWidthToHz';
4
4
  export function xyAutoPeaksPicking(data, options) {
5
5
  const { from, to, frequency, noiseLevel, thresholdFactor = 3, minMaxRatio = 0.05, broadRatio = 0.00025, useSanPlot = false, smoothY = true, optimize = false, factorLimits = 4, realTopDetection = true, shape = { kind: 'gaussian' }, optimization = { kind: 'lm' }, broadWidth = 0.25, sgOptions = {}, direction = 'positive', } = options;
6
- const { windowSize = 9, polynomial = 3 } = sgOptions;
6
+ let pointsPerHz = 1 / frequency / (data.x[1] - data.x[0]);
7
+ // we can consider a peak with of 0.5 Hz for the windowSize
8
+ let ws = Math.max(Math.round(pointsPerHz / 2), 5);
9
+ const { windowSize = ws - (ws % 2) + 1, polynomial = 3 } = sgOptions;
7
10
  if (data.x.length < windowSize)
8
11
  return [];
9
12
  if (from !== undefined && to !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,aAAa,EACb,cAAc,EAMd,QAAQ,GACT,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAgElE,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAkC;IAElC,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,SAAS,EACT,UAAU,EACV,eAAe,GAAG,CAAC,EACnB,WAAW,GAAG,IAAI,EAClB,UAAU,GAAG,OAAO,EACpB,UAAU,GAAG,KAAK,EAClB,OAAO,GAAG,IAAI,EACd,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,CAAC,EAChB,gBAAgB,GAAG,IAAI,EACvB,KAAK,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAC5B,YAAY,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAC7B,UAAU,GAAG,IAAI,EACjB,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,UAAU,GACvB,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC;IAErD,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU;QAAE,OAAO,EAAE,CAAC;IAE1C,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE;QAC1C,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;IAE9E,IAAI,cAAc,GAAuB;QACvC,KAAK;QACL,SAAS;QACT,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;QACrC,WAAW;QACX,UAAU;QACV,UAAU,EAAE,MAAM,CAAC,QAAQ;QAC3B,OAAO;QACP,YAAY;QACZ,gBAAgB;KACjB,CAAC;IAEF,QAAQ,SAAS,EAAE;QACjB,KAAK,UAAU,CAAC,CAAC;YACf,OAAO,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;SAC1C;QACD,KAAK,UAAU,CAAC,CAAC;YACf,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;SACvD;QACD,KAAK,MAAM,CAAC,CAAC;YACX,OAAO;gBACL,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC;gBACpC,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC;aAClD,CAAC;SACH;QACD,OAAO,CAAC,CAAC;YACP,MAAM,SAAS,GAAU,SAAS,CAAC;YACnC,4EAA4E;YAC5E,MAAM,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;SAClD;KACF;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAY,EACZ,MAA4B,EAC5B,cAAkC;IAElC,cAAc,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5C,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;IACnC,OAAO,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,OAA2B;IAC5D,MAAM,EACJ,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,gBAAgB,GACjB,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE;QACtB,SAAS;QACT,WAAW;QACX,WAAW;QACX,UAAU;QACV,OAAO;QACP,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,UAAU;QACzB,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE;YACvB,UAAU;YACV,UAAU;YACV,KAAK;YACL,YAAY;SACb,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC9B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEvC,OAAO,gBAAgB,CACrB,QAAQ;QACN,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE;YAC5B,KAAK;YACL,YAAY;YACZ,YAAY;SACb,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC9B,CAAC,CAAC,QAAQ,EACZ,EAAE,SAAS,EAAE,CACd,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAA6B,EAAE,OAAyB;IACzE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAE5D,MAAM,YAAY,GAAG,CAAC,UAAkB,EAAE,EAAE,CAC1C,OAAO,UAAU,KAAK,QAAQ;QAC5B,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE;QACjD,CAAC,CAAC,UAAU,CAAC;IAEjB,IAAI,UAAU,EAAE;QACd,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;KACjC;SAAM;QACL,OAAO,UAAU;YACf,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;YACrD,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;KAC3D;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,IAAyC;IAEzC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACxC,OAAO;QACL,EAAE;QACF,CAAC;QACD,CAAC;QACD,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nmr-processing",
3
- "version": "9.3.0",
3
+ "version": "9.3.1-pre.1669891843",
4
4
  "description": "Pure functions allowing to process NMR spectra.",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -38,20 +38,20 @@
38
38
  },
39
39
  "homepage": "https://github.com/cheminfo/nmr-processing#readme",
40
40
  "devDependencies": {
41
- "@types/jest": "^29.2.2",
41
+ "@types/jest": "^29.2.3",
42
42
  "cheminfo-build": "^1.1.11",
43
43
  "cheminfo-types": "^1.4.0",
44
- "eslint": "^8.27.0",
44
+ "eslint": "^8.28.0",
45
45
  "eslint-config-cheminfo-typescript": "^11.2.2",
46
46
  "jest": "^29.3.1",
47
47
  "jest-matcher-deep-close-to": "^3.0.2",
48
48
  "md5": "^2.3.0",
49
49
  "nmr-xy-testdata": "^0.5.1",
50
50
  "openchemlib": "^8.0.1",
51
- "prettier": "^2.7.1",
51
+ "prettier": "^2.8.0",
52
52
  "rimraf": "^3.0.2",
53
53
  "ts-jest": "^29.0.3",
54
- "typescript": "^4.8.4"
54
+ "typescript": "^4.9.3"
55
55
  },
56
56
  "dependencies": {
57
57
  "@lukeed/uuid": "^2.0.0",
@@ -77,7 +77,8 @@
77
77
  "ml-spectra-processing": "^11.14.0",
78
78
  "ml-tree-set": "^0.1.1",
79
79
  "nmr-correlation": "^2.3.3",
80
- "openchemlib-utils": "^2.0.0",
81
- "spectrum-generator": "^8.0.4"
80
+ "nmredata": "^0.9.2",
81
+ "openchemlib-utils": "^2.1.2",
82
+ "spectrum-generator": "^8.0.6"
82
83
  }
83
84
  }
@@ -1,6 +1,6 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
- import { Molecule } from 'openchemlib';
3
2
  import { addDiastereotopicMissingChirality } from 'openchemlib-utils';
3
+ import { Molecule } from 'openchemlib/full';
4
4
 
5
5
  import { NMRRange, NMRRangeWithIntegration } from '..';
6
6
  import {
@@ -1,6 +1,6 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
- import { Molecule } from 'openchemlib';
3
2
  import { addDiastereotopicMissingChirality } from 'openchemlib-utils';
3
+ import { Molecule } from 'openchemlib/full';
4
4
 
5
5
  import { NMRRange } from '..';
6
6
  import {
@@ -1,5 +1,5 @@
1
- import { Molecule } from 'openchemlib';
2
1
  import { addDiastereotopicMissingChirality } from 'openchemlib-utils';
2
+ import { Molecule } from 'openchemlib/full';
3
3
 
4
4
  import { NMRSignal1D } from '..';
5
5
  import type { PredictCarbonOptions } from '../prediction/predictCarbon';
@@ -1,7 +1,7 @@
1
1
  import TreeSet from 'ml-tree-set';
2
2
  import { Values } from 'nmr-correlation';
3
- import { Molecule } from 'openchemlib';
4
3
  import { getConnectivityMatrix } from 'openchemlib-utils';
4
+ import { Molecule } from 'openchemlib/full';
5
5
 
6
6
  import {
7
7
  NMRSignal1D,
@@ -1,5 +1,5 @@
1
1
  declare module 'openchemlib-utils' {
2
- import { Molecule } from 'openchemlib';
2
+ import { Molecule } from 'openchemlib/full';
3
3
 
4
4
  export interface GroupDiastereotopicAtomIDs {
5
5
  counter: number;
@@ -7,10 +7,13 @@ declare module 'openchemlib-utils' {
7
7
  oclID: string;
8
8
  atomLabel: string;
9
9
  }
10
+
10
11
  export type GroupedDiastereotopicAtomIDs = GroupDiastereotopicAtomIDs[];
11
12
  function getGroupedDiastereotopicAtomIDs(
12
13
  molecule: Molecule,
14
+ options?: { atomLabel: string },
13
15
  ): GroupedDiastereotopicAtomIDs;
16
+
14
17
  interface GetHoseCodesForAtomOptions {
15
18
  minSphereSize?: number;
16
19
  maxSphereSize?: number;
@@ -155,4 +158,10 @@ declare module 'openchemlib-utils' {
155
158
  ): number[][] | Float64Array[];
156
159
 
157
160
  function getDiastereotopicAtomIDs(molecule: Molecule): string[];
161
+
162
+ function groupDiastereotopicAtomIDs(
163
+ diaIDs: string[],
164
+ molecule: Molecule,
165
+ options?: { atomLabel: string },
166
+ ): GroupedDiastereotopicAtomIDs;
158
167
  }
@@ -206,17 +206,7 @@ export function peaksToRanges(
206
206
  }
207
207
  }
208
208
  // it was a updateIntegrals function.
209
- let sumIntegral = 0;
210
- let sumObserved = 0;
211
- for (const signal of signals) {
212
- sumObserved += Math.abs(Math.round(signal.integralData.value));
213
- }
214
- if (sumObserved !== integrationSum) {
215
- sumIntegral = integrationSum / sumObserved;
216
- for (const signal of signals) {
217
- signal.integralData.value *= sumIntegral;
218
- }
219
- }
209
+ updateIntegration(signals, integrationSum);
220
210
  }
221
211
 
222
212
  signals.sort((a, b) => {
@@ -230,6 +220,7 @@ export function peaksToRanges(
230
220
  }
231
221
  }
232
222
  }
223
+
233
224
  let ranges: NMRRange[] = [];
234
225
  for (let i = 0; i < signals.length; i++) {
235
226
  let signal = signals[i];
@@ -243,7 +234,6 @@ export function peaksToRanges(
243
234
  delta: signal.delta,
244
235
  kind: signal.kind || 'signal',
245
236
  multiplicity: signal.multiplicity,
246
- integration: signal.integralData.value,
247
237
  };
248
238
  if (keepPeaks) {
249
239
  signalResult.peaks = signal.peaks.map((peak) => {
@@ -299,7 +289,7 @@ export function detectSignals(
299
289
  let peaks;
300
290
  let signals = [];
301
291
  let prevPeak = { x: Number.MIN_SAFE_INTEGER };
302
- let spectrumIntegral = 0;
292
+
303
293
  frequencyCluster /= frequency;
304
294
  for (const peak of peakList) {
305
295
  if (Math.abs(peak.x - prevPeak.x) > frequencyCluster) {
@@ -349,15 +339,10 @@ export function detectSignals(
349
339
  } else {
350
340
  integration.value = integralPeaks;
351
341
  }
352
- spectrumIntegral += integration.value;
353
342
  }
354
343
 
355
344
  if (integrationSum > 0) {
356
- let integralFactor = integrationSum / spectrumIntegral;
357
- for (let signal of signals) {
358
- let integration = signal.integralData;
359
- integration.value *= integralFactor;
360
- }
345
+ updateIntegration(signals, integrationSum);
361
346
  }
362
347
 
363
348
  return signals;
@@ -370,3 +355,22 @@ export function detectSignals(
370
355
  function computeArea(peak: Peak1DIntern, frequency: number) {
371
356
  return Math.abs(((peak.intensity * peak.width) / frequency) * 1.57); // todo add an option with this value: 1.772453851
372
357
  }
358
+
359
+ /**
360
+ * update the integration Values
361
+ * @param signals
362
+ * @param integrationSum
363
+ */
364
+ function updateIntegration(signals: SignalIntern[], integrationSum: number) {
365
+ let sumIntegral = 0;
366
+ let sumObserved = 0;
367
+ for (const signal of signals) {
368
+ sumObserved += Math.abs(Math.round(signal.integralData.value));
369
+ }
370
+ if (sumObserved !== integrationSum) {
371
+ sumIntegral = integrationSum / sumObserved;
372
+ for (const signal of signals) {
373
+ signal.integralData.value *= sumIntegral;
374
+ }
375
+ }
376
+ }
@@ -1,4 +1,4 @@
1
- import type { Molecule } from 'openchemlib';
1
+ import type { Molecule } from 'openchemlib/full';
2
2
 
3
3
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
4
4
  import type { NMRRange } from '../xy/NMRRange';
@@ -1,4 +1,5 @@
1
- import type { Molecule } from 'openchemlib';
1
+ import { getDiastereotopicAtomIDs } from 'openchemlib-utils';
2
+ import type { Molecule } from 'openchemlib/full';
2
3
 
3
4
  import type { Prediction1D } from './Prediction1D';
4
5
  import { predictCOSY } from './predictCOSY';
@@ -75,6 +76,8 @@ export async function predictAll(
75
76
  predictOptions = {},
76
77
  } = options;
77
78
 
79
+ const diaIDs = getDiastereotopicAtomIDs(molecule);
80
+
78
81
  const xPrediction = await getPredictions(
79
82
  from,
80
83
  molecule,
@@ -100,7 +103,7 @@ export async function predictAll(
100
103
  C: yPrediction,
101
104
  };
102
105
 
103
- const { molfile, diaIDs } = xPrediction;
106
+ const { molfile } = xPrediction;
104
107
 
105
108
  const spectra: any = {
106
109
  proton: predictions.H,
@@ -1,5 +1,5 @@
1
1
  import { FromTo, PointXY } from 'cheminfo-types';
2
- import type { Molecule } from 'openchemlib';
2
+ import type { Molecule } from 'openchemlib/full';
3
3
 
4
4
  import { signals2DToZ } from '../signals/signals2DToZ';
5
5
  import { OptionsSignalsToXY, signalsToXY } from '../signals/signalsToXY';
@@ -1,4 +1,4 @@
1
- import { Molecule } from 'openchemlib';
1
+ import { Molecule } from 'openchemlib/full';
2
2
 
3
3
  import type { Prediction1D } from './Prediction1D';
4
4
  import { predictProton, PredictProtonOptions } from './predictProton';
@@ -1,6 +1,7 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import fetch from 'cross-fetch';
3
- import type { Molecule } from 'openchemlib';
3
+ import { getDiastereotopicAtomIDs } from 'openchemlib-utils';
4
+ import type { Molecule } from 'openchemlib/full';
4
5
 
5
6
  import { setIDs } from '../peaks/util/setIDs';
6
7
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
@@ -10,7 +11,6 @@ import type { MakeMandatory } from '../utilities/MakeMandatory';
10
11
  import type { Prediction1D } from './Prediction1D';
11
12
  import type { DataBaseStructure } from './dataStructure';
12
13
  import { fetchPrediction } from './utils/fetchPrediction';
13
- import { flatGroupedDiaIDs } from './utils/flatGroupedDiaIDs';
14
14
  import { getFilteredIDiaIDs } from './utils/getFilteredIDiaIDs';
15
15
  import { Prediction, queryByHose } from './utils/queryByHOSE';
16
16
 
@@ -48,6 +48,10 @@ export interface PredictCarbonOptions {
48
48
  * @default 'maximum level in the database'
49
49
  */
50
50
  maxSphereSize?: number;
51
+ /**
52
+ * diastereotopic atom ids.
53
+ */
54
+ diaIDs?: string[];
51
55
  }
52
56
 
53
57
  export type PredictCarbon = typeof predictCarbon;
@@ -72,7 +76,12 @@ export async function predictCarbon(
72
76
  molecule: Molecule,
73
77
  options: PredictCarbonOptions = {},
74
78
  ): Promise<Prediction1D> {
75
- let { url, database, webserviceURL } = options;
79
+ let {
80
+ url,
81
+ database,
82
+ webserviceURL,
83
+ diaIDs = getDiastereotopicAtomIDs(molecule),
84
+ } = options;
76
85
 
77
86
  if (webserviceURL) {
78
87
  return fetchPrediction(molecule, { webserviceURL });
@@ -90,12 +99,10 @@ export async function predictCarbon(
90
99
 
91
100
  if (maxSphereSize > maxLevel) maxSphereSize = maxLevel;
92
101
 
93
- const { groupedDiaIDs, carbonDiaIDs, molfile } = getFilteredIDiaIDs(
94
- molecule,
95
- {
96
- maxSphereSize,
97
- },
98
- );
102
+ const { carbonDiaIDs, molfile } = getFilteredIDiaIDs(molecule, {
103
+ maxSphereSize,
104
+ diaIDs,
105
+ });
99
106
 
100
107
  let predictions = queryByHose(carbonDiaIDs, database, {
101
108
  maxSphereSize,
@@ -106,7 +113,7 @@ export async function predictCarbon(
106
113
  return {
107
114
  molfile,
108
115
  nucleus: '13C',
109
- diaIDs: flatGroupedDiaIDs(groupedDiaIDs),
116
+ diaIDs,
110
117
  joinedSignals,
111
118
  signals,
112
119
  ranges: signalsToRanges(joinedSignals),
@@ -1,4 +1,4 @@
1
- import { Molecule } from 'openchemlib';
1
+ import { Molecule } from 'openchemlib/full';
2
2
 
3
3
  import type { Prediction1D } from './Prediction1D';
4
4
  import { predictCarbon } from './predictCarbon';
@@ -1,4 +1,4 @@
1
- import { Molecule } from 'openchemlib';
1
+ import { Molecule } from 'openchemlib/full';
2
2
 
3
3
  import type { Prediction1D } from './Prediction1D';
4
4
  import { predictCarbon, PredictCarbonOptions } from './predictCarbon';
@@ -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';
5
4
  import {
6
5
  addDiastereotopicMissingChirality,
7
6
  getConnectivityMatrix,
8
7
  getDiastereotopicAtomIDs,
9
8
  } 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';
@@ -24,6 +24,10 @@ export interface PredictProtonOptions {
24
24
  * A callback receiving a molfile and the result
25
25
  */
26
26
  cache?: (molfile: string, result?: string) => void | string | undefined;
27
+ /**
28
+ * diastereotopic atom ids.
29
+ */
30
+ diaIDs?: string[];
27
31
  }
28
32
 
29
33
  export type PredictProton = typeof predictProton;
@@ -56,7 +60,7 @@ export async function predictProton(
56
60
  }
57
61
  }
58
62
 
59
- const diaIDs = getDiastereotopicAtomIDs(molecule);
63
+ const { diaIDs = getDiastereotopicAtomIDs(molecule) } = options;
60
64
  const signals = protonParser(result, molecule, diaIDs);
61
65
  const joinedSignals = signalsJoin(signals);
62
66
  return {
@@ -1,5 +1,5 @@
1
1
  import { fetch } from 'cross-fetch';
2
- import { Molecule } from 'openchemlib';
2
+ import { Molecule } from 'openchemlib/full';
3
3
 
4
4
  import type { Prediction1D } from '../Prediction1D';
5
5
 
@@ -1,10 +1,10 @@
1
- import type { Molecule } from 'openchemlib';
2
1
  import {
3
- getGroupedDiastereotopicAtomIDs,
4
2
  getHoseCodesFromDiastereotopicID,
5
3
  addDiastereotopicMissingChirality,
4
+ groupDiastereotopicAtomIDs,
6
5
  } from 'openchemlib-utils';
7
6
  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[];
@@ -14,9 +14,9 @@ export type GroupedDiaIDsWithHose = GroupDiaIDsWithHose[];
14
14
 
15
15
  export function getFilteredIDiaIDs(
16
16
  molecule: Molecule,
17
- options: { maxSphereSize: number },
17
+ options: { maxSphereSize: number; diaIDs: string[] },
18
18
  ) {
19
- const { maxSphereSize } = options;
19
+ const { maxSphereSize, diaIDs } = options;
20
20
 
21
21
  molecule.addImplicitHydrogens();
22
22
  molecule.addMissingChirality();
@@ -24,16 +24,16 @@ export function getFilteredIDiaIDs(
24
24
 
25
25
  const molfile = molecule.toMolfile();
26
26
 
27
- let groupedDiaIDs = getGroupedDiastereotopicAtomIDs(molecule);
27
+ let groupedDiaIDs = groupDiastereotopicAtomIDs(diaIDs, molecule, {
28
+ atomLabel: 'C',
29
+ });
28
30
 
29
- let carbonDiaIDs = groupedDiaIDs
30
- .filter((e) => e.atomLabel === 'C')
31
- .sort((a, b) => {
32
- if (a.atomLabel === b.atomLabel) {
33
- return b.counter - a.counter;
34
- }
35
- return a.atomLabel < b.atomLabel ? 1 : -1;
36
- }) as any;
31
+ let carbonDiaIDs = groupedDiaIDs.sort((a, b) => {
32
+ if (a.atomLabel === b.atomLabel) {
33
+ return b.counter - a.counter;
34
+ }
35
+ return a.atomLabel < b.atomLabel ? 1 : -1;
36
+ }) as any;
37
37
 
38
38
  const OCL = molecule.getOCL();
39
39
  for (const diaId of carbonDiaIDs) {
@@ -48,7 +48,6 @@ export function getFilteredIDiaIDs(
48
48
  let toReturn = {
49
49
  molfile,
50
50
  carbonDiaIDs: carbonDiaIDs as GroupedDiaIDsWithHose,
51
- groupedDiaIDs,
52
51
  };
53
52
 
54
53
  return toReturn;
@@ -1,4 +1,4 @@
1
- import type { Molecule } from 'openchemlib';
1
+ import type { Molecule } from 'openchemlib/full';
2
2
 
3
3
  import type { Prediction1D } from '../Prediction1D';
4
4
 
@@ -1,16 +1,17 @@
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';
5
4
  import {
6
5
  getGroupedDiastereotopicAtomIDs,
7
6
  getPathsInfo,
7
+ groupDiastereotopicAtomIDs,
8
8
  } from 'openchemlib-utils';
9
9
  import type {
10
10
  AtomInfo,
11
11
  GroupDiastereotopicAtomIDs,
12
12
  PathInfo,
13
13
  } from 'openchemlib-utils';
14
+ import { Molecule } from 'openchemlib/full';
14
15
 
15
16
  import { setIDs } from '../../peaks/util/setIDs';
16
17
  import type { NMRSignal1D } from '../../signals/NMRSignal1D';
@@ -86,6 +87,10 @@ export interface Predict2DOptions {
86
87
  * @default false
87
88
  */
88
89
  includeDiagonal?: boolean;
90
+ /**
91
+ * diastereotopic atom ids of the molecule.
92
+ */
93
+ diaIDs?: string[];
89
94
  }
90
95
 
91
96
  export interface PredictOptions {
@@ -125,9 +130,12 @@ export async function predict2D(
125
130
  ) {
126
131
  checkFromTo(options);
127
132
 
133
+ molecule.addImplicitHydrogens();
134
+
128
135
  let {
129
136
  from,
130
137
  to,
138
+ diaIDs,
131
139
  minLength = 0,
132
140
  maxLength,
133
141
  predictOptions = {},
@@ -137,10 +145,6 @@ export async function predict2D(
137
145
  includeDiagonal = false,
138
146
  } = options;
139
147
 
140
- molecule.addImplicitHydrogens();
141
-
142
- let diaIDs = getGroupedDiastereotopicAtomIDs(molecule);
143
-
144
148
  const pathsInfo = getPathsInfo(molecule, {
145
149
  fromLabel: from,
146
150
  toLabel: to,
@@ -148,8 +152,12 @@ export async function predict2D(
148
152
  maxLength,
149
153
  });
150
154
 
155
+ const groupedDiaIDS = diaIDs
156
+ ? groupDiastereotopicAtomIDs(diaIDs, molecule)
157
+ : getGroupedDiastereotopicAtomIDs(molecule);
158
+
151
159
  let diaIDswithAtomInfo: GroupDiastereotopicAtomIDsWithAtomInfo[] = [];
152
- for (let diaID of diaIDs) {
160
+ for (let diaID of groupedDiaIDS) {
153
161
  diaIDswithAtomInfo.push({
154
162
  ...diaID,
155
163
  pathInfo: JSON.parse(
@@ -1,4 +1,4 @@
1
- export function hasProperty<T, K extends keyof T>(
1
+ export function hasProperty<T extends object, K extends keyof T>(
2
2
  data: T,
3
3
  key: K,
4
4
  ): data is T & { [P in K]-?: T[P] } {
@@ -106,7 +106,11 @@ export function xyAutoPeaksPicking(
106
106
  direction = 'positive',
107
107
  } = options;
108
108
 
109
- const { windowSize = 9, polynomial = 3 } = sgOptions;
109
+ let pointsPerHz = 1 / frequency / (data.x[1] - data.x[0]);
110
+ // we can consider a peak with of 0.5 Hz for the windowSize
111
+ let ws = Math.max(Math.round(pointsPerHz / 2), 5);
112
+
113
+ const { windowSize = ws - (ws % 2) + 1, polynomial = 3 } = sgOptions;
110
114
 
111
115
  if (data.x.length < windowSize) return [];
112
116