nmr-processing 9.0.0 → 9.0.2-pre.1660221022

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 (51) hide show
  1. package/lib/peaks/peaksToRanges.js +12 -14
  2. package/lib/peaks/peaksToRanges.js.map +1 -1
  3. package/lib/peaks/peaksToXY.d.ts +10 -0
  4. package/lib/peaks/peaksToXY.js +20 -4
  5. package/lib/peaks/peaksToXY.js.map +1 -1
  6. package/lib/peaks/util/convertWidth.d.ts +2 -1
  7. package/lib/peaks/util/convertWidth.js +4 -4
  8. package/lib/peaks/util/convertWidth.js.map +1 -1
  9. package/lib/peaks/util/convertWidthToHz.d.ts +3 -1
  10. package/lib/peaks/util/convertWidthToHz.js +2 -2
  11. package/lib/peaks/util/convertWidthToHz.js.map +1 -1
  12. package/lib/peaks/util/convertWidthToPPM.d.ts +2 -1
  13. package/lib/peaks/util/convertWidthToPPM.js +2 -2
  14. package/lib/peaks/util/convertWidthToPPM.js.map +1 -1
  15. package/lib/signals/utils/jAnalyzer.js +2 -1
  16. package/lib/signals/utils/jAnalyzer.js.map +1 -1
  17. package/lib/xy/xyAutoPeaksPicking.js +4 -5
  18. package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
  19. package/lib/xy/xyPeaksOptimization.d.ts +7 -1
  20. package/lib/xy/xyPeaksOptimization.js +9 -1
  21. package/lib/xy/xyPeaksOptimization.js.map +1 -1
  22. package/lib/xyz/xyzJResAnalyzer.js +2 -1
  23. package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
  24. package/lib-esm/peaks/peaksToRanges.js +12 -14
  25. package/lib-esm/peaks/peaksToRanges.js.map +1 -1
  26. package/lib-esm/peaks/peaksToXY.js +20 -4
  27. package/lib-esm/peaks/peaksToXY.js.map +1 -1
  28. package/lib-esm/peaks/util/convertWidth.js +4 -4
  29. package/lib-esm/peaks/util/convertWidth.js.map +1 -1
  30. package/lib-esm/peaks/util/convertWidthToHz.js +2 -2
  31. package/lib-esm/peaks/util/convertWidthToHz.js.map +1 -1
  32. package/lib-esm/peaks/util/convertWidthToPPM.js +2 -2
  33. package/lib-esm/peaks/util/convertWidthToPPM.js.map +1 -1
  34. package/lib-esm/signals/utils/jAnalyzer.js +2 -1
  35. package/lib-esm/signals/utils/jAnalyzer.js.map +1 -1
  36. package/lib-esm/xy/xyAutoPeaksPicking.js +4 -5
  37. package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
  38. package/lib-esm/xy/xyPeaksOptimization.js +9 -1
  39. package/lib-esm/xy/xyPeaksOptimization.js.map +1 -1
  40. package/lib-esm/xyz/xyzJResAnalyzer.js +2 -1
  41. package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
  42. package/package.json +3 -3
  43. package/src/peaks/peaksToRanges.ts +12 -16
  44. package/src/peaks/peaksToXY.ts +37 -4
  45. package/src/peaks/util/convertWidth.ts +11 -4
  46. package/src/peaks/util/convertWidthToHz.ts +5 -3
  47. package/src/peaks/util/convertWidthToPPM.ts +3 -2
  48. package/src/signals/utils/jAnalyzer.ts +2 -1
  49. package/src/xy/xyAutoPeaksPicking.ts +10 -9
  50. package/src/xy/xyPeaksOptimization.ts +17 -2
  51. package/src/xyz/xyzJResAnalyzer.ts +2 -1
@@ -189,15 +189,16 @@ function getPeakList(data: DataXY, options: GetPeakListOptions) {
189
189
  });
190
190
  }
191
191
 
192
- if (optimize) {
193
- return optimizePeaks(data, peakList, {
194
- shape,
195
- factorLimits,
196
- optimization,
197
- });
198
- }
199
-
200
- return convertWidthToHz(peakList, frequency);
192
+ return convertWidthToHz(
193
+ optimize
194
+ ? optimizePeaks(data, peakList, {
195
+ shape,
196
+ factorLimits,
197
+ optimization,
198
+ })
199
+ : peakList,
200
+ { frequency },
201
+ );
201
202
  }
202
203
 
203
204
  function getCutOff(data: number[] | Float64Array, options: OptionsGetCutOff) {
@@ -1,10 +1,25 @@
1
1
  import { DataXY, PeakXYWidth } from 'cheminfo-types';
2
2
  import { optimizePeaks, OptimizePeaksOptions } from 'ml-gsd';
3
3
 
4
+ import { convertWidthToHz } from '../peaks/util/convertWidthToHz';
5
+ import { convertWidthToPPM } from '../peaks/util/convertWidthToPPM';
6
+
7
+ export interface XYPeaksOptimizationOptions extends OptimizePeaksOptions {
8
+ /**
9
+ * frequency to convert width and fwhm to ppm.
10
+ */
11
+ frequency: number;
12
+ }
4
13
  export function xyPeaksOptimization(
5
14
  data: DataXY,
6
15
  peaks: PeakXYWidth[],
7
- options: OptimizePeaksOptions,
16
+ options: XYPeaksOptimizationOptions,
8
17
  ) {
9
- return optimizePeaks(data, peaks, options);
18
+ const { frequency } = options;
19
+ const newPeaks = convertWidthToPPM(peaks, { frequency });
20
+ const optimizedPeaks = optimizePeaks(data, newPeaks, options);
21
+ return convertWidthToHz(optimizedPeaks, {
22
+ frequency,
23
+ output: optimizedPeaks,
24
+ });
10
25
  }
@@ -88,6 +88,7 @@ function compilePattern(
88
88
  dy: signals[0].y.resolution,
89
89
  };
90
90
 
91
+ const defaultWidth = 0.02 * observedFrequencies[0];
91
92
  const newSignals = JSON.parse(JSON.stringify(signals));
92
93
  //adapt to 1D jAnalyzer
93
94
  for (const signal of newSignals) {
@@ -102,7 +103,7 @@ function compilePattern(
102
103
  to: Number.MIN_SAFE_INTEGER,
103
104
  };
104
105
  for (const peak of peaks) {
105
- if (!peak.width) peak.width = 0.02;
106
+ if (!peak.width) peak.width = defaultWidth;
106
107
  }
107
108
  peaks.sort((a: Peak2D, b: Peak2D) => a.y - b.y);
108
109
  }