nmr-processing 9.1.0 → 9.2.0-pre.1668170175

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 (133) hide show
  1. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  2. package/lib/index.d.ts +4 -2
  3. package/lib/index.js +2 -0
  4. package/lib/index.js.map +1 -1
  5. package/lib/prediction/{prediction1D.d.ts → Prediction1D.d.ts} +0 -0
  6. package/lib/prediction/{prediction1D.js → Prediction1D.js} +1 -1
  7. package/lib/prediction/Prediction1D.js.map +1 -0
  8. package/lib/prediction/predictAll.d.ts +1 -1
  9. package/lib/prediction/predictAll.js.map +1 -1
  10. package/lib/prediction/predictAllSpectra.js +2 -2
  11. package/lib/prediction/predictAllSpectra.js.map +1 -1
  12. package/lib/prediction/predictCOSY.d.ts +1 -1
  13. package/lib/prediction/predictCOSY.js.map +1 -1
  14. package/lib/prediction/predictCarbon.d.ts +1 -1
  15. package/lib/prediction/predictHMBC.d.ts +1 -1
  16. package/lib/prediction/predictHMBC.js.map +1 -1
  17. package/lib/prediction/predictHSQC.d.ts +1 -1
  18. package/lib/prediction/predictHSQC.js.map +1 -1
  19. package/lib/prediction/predictProton.d.ts +1 -1
  20. package/lib/prediction/utils/fetchPrediction.d.ts +1 -1
  21. package/lib/prediction/utils/getPredictions.d.ts +1 -1
  22. package/lib/prediction/utils/predict2D.d.ts +1 -1
  23. package/lib/prediction/utils/predict2D.js +1 -1
  24. package/lib/prediction/utils/predict2D.js.map +1 -1
  25. package/lib/signals/{jcoupling.d.ts → Jcoupling.d.ts} +0 -0
  26. package/lib/signals/{jcoupling.js → Jcoupling.js} +1 -1
  27. package/lib/signals/Jcoupling.js.map +1 -0
  28. package/lib/signals/NMRSignal1D.d.ts +1 -1
  29. package/lib/signals/addDummySignals.js +12 -7
  30. package/lib/signals/addDummySignals.js.map +1 -1
  31. package/lib/signals/optimization/defaultParameters.d.ts +1 -0
  32. package/lib/signals/optimization/defaultParameters.js +36 -0
  33. package/lib/signals/optimization/defaultParameters.js.map +1 -0
  34. package/lib/signals/optimization/directOptimization.d.ts +20 -0
  35. package/lib/signals/optimization/directOptimization.js +32 -0
  36. package/lib/signals/optimization/directOptimization.js.map +1 -0
  37. package/lib/signals/optimization/getInternalSignals.d.ts +54 -0
  38. package/lib/signals/optimization/getInternalSignals.js +150 -0
  39. package/lib/signals/optimization/getInternalSignals.js.map +1 -0
  40. package/lib/signals/optimization/getSumOfShapes.d.ts +4 -0
  41. package/lib/signals/optimization/getSumOfShapes.js +46 -0
  42. package/lib/signals/optimization/getSumOfShapes.js.map +1 -0
  43. package/lib/signals/optimization/signalsToPointXY.d.ts +9 -0
  44. package/lib/signals/optimization/signalsToPointXY.js +24 -0
  45. package/lib/signals/optimization/signalsToPointXY.js.map +1 -0
  46. package/lib/signals/optimizeSignals.d.ts +40 -0
  47. package/lib/signals/optimizeSignals.js +108 -0
  48. package/lib/signals/optimizeSignals.js.map +1 -0
  49. package/lib/signals/signalsJoin.d.ts +1 -1
  50. package/lib/signals/signalsToFID.d.ts +13 -0
  51. package/lib/signals/signalsToFID.js +56 -0
  52. package/lib/signals/signalsToFID.js.map +1 -0
  53. package/lib/signals/simulation/simulateXYPeaks.js +1 -1
  54. package/lib/signals/simulation/simulateXYPeaks.js.map +1 -1
  55. package/lib/xy/xyAutoPeaksPicking.d.ts +2 -2
  56. package/lib/xy/xyAutoPeaksPicking.js +2 -2
  57. package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
  58. package/lib/xy/xyPeaksOptimization.js +2 -1
  59. package/lib/xy/xyPeaksOptimization.js.map +1 -1
  60. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +1 -1
  61. package/lib-esm/index.js +2 -0
  62. package/lib-esm/index.js.map +1 -1
  63. package/lib-esm/prediction/Prediction1D.js +2 -0
  64. package/lib-esm/prediction/Prediction1D.js.map +1 -0
  65. package/lib-esm/prediction/predictAll.js.map +1 -1
  66. package/lib-esm/prediction/predictAllSpectra.js +2 -2
  67. package/lib-esm/prediction/predictAllSpectra.js.map +1 -1
  68. package/lib-esm/prediction/predictCOSY.js.map +1 -1
  69. package/lib-esm/prediction/predictHMBC.js.map +1 -1
  70. package/lib-esm/prediction/predictHSQC.js.map +1 -1
  71. package/lib-esm/prediction/utils/predict2D.js +1 -1
  72. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  73. package/lib-esm/signals/Jcoupling.js +2 -0
  74. package/lib-esm/signals/Jcoupling.js.map +1 -0
  75. package/lib-esm/signals/addDummySignals.js +12 -7
  76. package/lib-esm/signals/addDummySignals.js.map +1 -1
  77. package/lib-esm/signals/optimization/defaultParameters.js +33 -0
  78. package/lib-esm/signals/optimization/defaultParameters.js.map +1 -0
  79. package/lib-esm/signals/optimization/directOptimization.js +25 -0
  80. package/lib-esm/signals/optimization/directOptimization.js.map +1 -0
  81. package/lib-esm/signals/optimization/getInternalSignals.js +146 -0
  82. package/lib-esm/signals/optimization/getInternalSignals.js.map +1 -0
  83. package/lib-esm/signals/optimization/getSumOfShapes.js +42 -0
  84. package/lib-esm/signals/optimization/getSumOfShapes.js.map +1 -0
  85. package/lib-esm/signals/optimization/signalsToPointXY.js +20 -0
  86. package/lib-esm/signals/optimization/signalsToPointXY.js.map +1 -0
  87. package/lib-esm/signals/optimizeSignals.js +104 -0
  88. package/lib-esm/signals/optimizeSignals.js.map +1 -0
  89. package/lib-esm/signals/signalsToFID.js +52 -0
  90. package/lib-esm/signals/signalsToFID.js.map +1 -0
  91. package/lib-esm/signals/simulation/simulateXYPeaks.js +1 -1
  92. package/lib-esm/signals/simulation/simulateXYPeaks.js.map +1 -1
  93. package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
  94. package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
  95. package/lib-esm/xy/xyPeaksOptimization.js +2 -1
  96. package/lib-esm/xy/xyPeaksOptimization.js.map +1 -1
  97. package/package.json +3 -2
  98. package/src/assignment/utils/getAssignment/buildAssignments.ts +1 -1
  99. package/src/index.ts +4 -2
  100. package/src/prediction/{prediction1D.ts → Prediction1D.ts} +0 -0
  101. package/src/prediction/predictAll.ts +1 -1
  102. package/src/prediction/predictAllSpectra.ts +2 -2
  103. package/src/prediction/predictCOSY.ts +1 -1
  104. package/src/prediction/predictCarbon.ts +1 -1
  105. package/src/prediction/predictHMBC.ts +1 -1
  106. package/src/prediction/predictHSQC.ts +1 -1
  107. package/src/prediction/predictProton.ts +1 -1
  108. package/src/prediction/utils/fetchPrediction.ts +1 -1
  109. package/src/prediction/utils/getPredictions.ts +1 -1
  110. package/src/prediction/utils/predict2D.ts +2 -2
  111. package/src/signal/signalJoinCouplings.ts +1 -1
  112. package/src/signals/{jcoupling.ts → Jcoupling.ts} +0 -0
  113. package/src/signals/NMRSignal1D.ts +1 -1
  114. package/src/signals/addDummySignals.ts +17 -7
  115. package/src/signals/optimization/defaultParameters.ts +45 -0
  116. package/src/signals/optimization/directOptimization.ts +49 -0
  117. package/src/signals/optimization/getInternalSignals.ts +287 -0
  118. package/src/signals/optimization/getSumOfShapes.ts +54 -0
  119. package/src/signals/optimization/signalsToPointXY.ts +37 -0
  120. package/src/signals/optimizeSignals.ts +173 -0
  121. package/src/signals/signalsJoin.ts +1 -1
  122. package/src/signals/signalsToFID.ts +84 -0
  123. package/src/signals/signalsToXY.ts +1 -1
  124. package/src/signals/simulation/signalsToSpinSystem.ts +1 -1
  125. package/src/signals/simulation/simulateXYPeaks.ts +1 -2
  126. package/src/xy/xyAutoPeaksPicking.ts +10 -6
  127. package/src/xy/xyPeaksOptimization.ts +3 -1
  128. package/lib/prediction/prediction1D.js.map +0 -1
  129. package/lib/signals/jcoupling.js.map +0 -1
  130. package/lib-esm/prediction/prediction1D.js +0 -2
  131. package/lib-esm/prediction/prediction1D.js.map +0 -1
  132. package/lib-esm/signals/jcoupling.js +0 -2
  133. package/lib-esm/signals/jcoupling.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ import { v4 } from '@lukeed/uuid';
2
+ import { levenbergMarquardt } from 'ml-levenberg-marquardt';
3
+ import { getShape1D } from 'ml-peak-shape-generator';
4
+ import { xMinMaxValues } from 'ml-spectra-processing';
5
+ import { directOptimization } from './optimization/directOptimization';
6
+ import { getInternalSignals, } from './optimization/getInternalSignals';
7
+ import { getSumOfShapes } from './optimization/getSumOfShapes';
8
+ import { signalsToPointXY, } from './optimization/signalsToPointXY';
9
+ const defaultLMOptimizationOptions = {
10
+ damping: 1.5,
11
+ maxIterations: 100,
12
+ errorTolerance: 1e-8,
13
+ };
14
+ const defaultDirectOptimizationOptions = {
15
+ iterations: 25,
16
+ };
17
+ export function optimizeSignals(data, signals, options) {
18
+ const { optimization = {}, simulation: simulationOptions, ...restOptions } = options;
19
+ let temp = xMinMaxValues(data.y);
20
+ const minMaxY = { ...temp, range: temp.max - temp.min };
21
+ const internalSignals = getInternalSignals(data, signals, minMaxY, {
22
+ frequency: simulationOptions.frequency,
23
+ ...restOptions,
24
+ });
25
+ const { baseline: shiftValue = minMaxY.min } = options;
26
+ let normalizedY = new Float64Array(data.y.length);
27
+ for (let i = 0; i < data.y.length; i++) {
28
+ normalizedY[i] = (data.y[i] - shiftValue) / minMaxY.range;
29
+ }
30
+ const nbParams = internalSignals[internalSignals.length - 1].toIndexCoupling + 1;
31
+ const minValues = new Float64Array(nbParams);
32
+ const maxValues = new Float64Array(nbParams);
33
+ const initialValues = new Float64Array(nbParams);
34
+ const gradientDifferences = new Float64Array(nbParams);
35
+ let index = 0;
36
+ for (const internalSignal of internalSignals) {
37
+ for (let i = 0; i < internalSignal.parameters.length; i++) {
38
+ minValues[index] = internalSignal.propertiesValues.min[i];
39
+ maxValues[index] = internalSignal.propertiesValues.max[i];
40
+ initialValues[index] = internalSignal.propertiesValues.init[i];
41
+ gradientDifferences[index++] =
42
+ internalSignal.propertiesValues.gradientDifference[i];
43
+ }
44
+ for (let i = internalSignal.parameters.length; i < internalSignal.parameters.length + internalSignal.signal.js.length; i++) {
45
+ minValues[index] = internalSignal.propertiesValues.min[i];
46
+ maxValues[index] = internalSignal.propertiesValues.max[i];
47
+ initialValues[index] = internalSignal.propertiesValues.init[i];
48
+ gradientDifferences[index++] =
49
+ internalSignal.propertiesValues.gradientDifference[i];
50
+ }
51
+ }
52
+ const sumOfShapes = getSumOfShapes(internalSignals, simulationOptions);
53
+ const { kind, options: optimizationOptions } = optimization;
54
+ const [algorithm, defaultOptimizationOptions] = kind === 'direct'
55
+ ? [directOptimization, defaultDirectOptimizationOptions]
56
+ : [levenbergMarquardt, defaultLMOptimizationOptions];
57
+ let fitted = algorithm({ x: data.x, y: normalizedY }, sumOfShapes, {
58
+ minValues,
59
+ maxValues,
60
+ initialValues,
61
+ gradientDifference: gradientDifferences,
62
+ ...defaultOptimizationOptions,
63
+ ...optimizationOptions,
64
+ });
65
+ const fittedValues = fitted.parameterValues;
66
+ const newSignals = [];
67
+ for (const internalSignal of internalSignals) {
68
+ const { fromIndexCoupling } = internalSignal;
69
+ const js = internalSignal.signal.js.map((jCoupling, i) => {
70
+ jCoupling.coupling = fittedValues[fromIndexCoupling + i];
71
+ return jCoupling;
72
+ });
73
+ const delta = fittedValues[internalSignal.fromIndex];
74
+ const pointXYs = signalsToPointXY([{ delta, js }], simulationOptions);
75
+ const intensity = fittedValues[internalSignal.fromIndex + 1] * minMaxY.range + shiftValue;
76
+ const newPeaks = [];
77
+ for (const { x, y } of pointXYs) {
78
+ const peak = {
79
+ id: v4(),
80
+ x,
81
+ y: intensity * y,
82
+ width: 0,
83
+ shape: { ...internalSignal.shape },
84
+ };
85
+ for (let i = 2; i < internalSignal.parameters.length; i++) {
86
+ //@ts-expect-error should be fixed once
87
+ peak.shape[internalSignal.parameters[i]] =
88
+ fittedValues[internalSignal.fromIndex + i];
89
+ }
90
+ peak.shape.fwhm *= simulationOptions.frequency;
91
+ peak.width = getShape1D(peak.shape).fwhmToWidth(peak.shape.fwhm);
92
+ newPeaks.push(peak);
93
+ }
94
+ newSignals.push({
95
+ delta,
96
+ js,
97
+ shape: { ...newPeaks[0].shape },
98
+ intensity,
99
+ peaks: newPeaks,
100
+ });
101
+ }
102
+ return newSignals;
103
+ }
104
+ //# sourceMappingURL=optimizeSignals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizeSignals.js","sourceRoot":"","sources":["../../src/signals/optimizeSignals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { xSequentialFill } from 'ml-spectra-processing';
2
+ import { apodization } from '../apodization/apodization';
3
+ import { signalsToSpinSystem } from './simulation/signalsToSpinSystem';
4
+ import { simulateXYPeaks } from './simulation/simulateXYPeaks';
5
+ import { splitSpinSystem } from './simulation/splitSpinSystem';
6
+ const twoPi = Math.PI * 2;
7
+ export function signalsToFID(signals, options) {
8
+ const { lb = 1, from = 0, to = 10, nbPoints = 1024, frequency = 400, maxClusterSize = 8, } = options;
9
+ let spinSystem = signalsToSpinSystem(signals);
10
+ spinSystem.clusters = splitSpinSystem(spinSystem, {
11
+ frequency,
12
+ maxClusterSize,
13
+ });
14
+ const peaks = simulateXYPeaks(spinSystem, { frequency });
15
+ const re = new Float64Array(nbPoints);
16
+ const im = new Float64Array(nbPoints);
17
+ const sw = Math.abs(to - from);
18
+ const adquisitionTime = nbPoints / (2 * sw * frequency);
19
+ const time = xSequentialFill({
20
+ size: nbPoints,
21
+ from: 0,
22
+ to: adquisitionTime,
23
+ });
24
+ for (const peak of peaks) {
25
+ const { x, y } = peak;
26
+ const cs = x * frequency * twoPi;
27
+ for (let i = 0; i < nbPoints; i++) {
28
+ re[i] += y * Math.cos(cs * time[i]);
29
+ im[i] += y * Math.sin(cs * time[i]);
30
+ }
31
+ }
32
+ const { windowData, ...result } = apodization({ re, im }, {
33
+ pointsToShift: 0,
34
+ compose: {
35
+ length: nbPoints,
36
+ shapes: [
37
+ {
38
+ start: 0,
39
+ shape: {
40
+ kind: 'exponential',
41
+ options: {
42
+ dw: adquisitionTime / (nbPoints - 1),
43
+ lb,
44
+ },
45
+ },
46
+ },
47
+ ],
48
+ },
49
+ });
50
+ return result;
51
+ }
52
+ //# sourceMappingURL=signalsToFID.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signalsToFID.js","sourceRoot":"","sources":["../../src/signals/signalsToFID.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAW/D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AAE1B,MAAM,UAAU,YAAY,CAC1B,OAAsB,EACtB,OAA4B;IAE5B,MAAM,EACJ,EAAE,GAAG,CAAC,EACN,IAAI,GAAG,CAAC,EACR,EAAE,GAAG,EAAE,EACP,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,GAAG,EACf,cAAc,GAAG,CAAC,GACnB,GAAG,OAAO,CAAC;IAEZ,IAAI,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE9C,UAAU,CAAC,QAAQ,GAAG,eAAe,CAAC,UAAU,EAAE;QAChD,SAAS;QACT,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEtC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,eAAe,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC;QACP,EAAE,EAAE,eAAe;KACpB,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YACjC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;KACF;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAC3C,EAAE,EAAE,EAAE,EAAE,EAAE,EACV;QACE,aAAa,EAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE;gBACN;oBACE,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE;wBACL,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE;4BACP,EAAE,EAAE,eAAe,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;4BACpC,EAAE;yBACH;qBACF;iBACF;aACF;SACF;KACF,CACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -162,7 +162,7 @@ spinSystem, options = {}) {
162
162
  });
163
163
  }
164
164
  }
165
- return xyPeaks;
165
+ return xyPeaks.filter((peak) => peak.x < 1000);
166
166
  }
167
167
  function triuTimesAbs(A, val) {
168
168
  A.forEachNonZero((i, j, v) => {
@@ -1 +1 @@
1
- {"version":3,"file":"simulateXYPeaks.js","sourceRoot":"","sources":["../../../src/signals/simulation/simulateXYPeaks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulateXYPeaks.js","sourceRoot":"","sources":["../../../src/signals/simulation/simulateXYPeaks.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,MAAM,UAAU,GAAG,IAAI,CAAC;AAwCxB,MAAM,UAAU,eAAe;AAC7B;;GAEG;AACH,UAAsB,EACtB,UAA6B,EAAE;IAE/B,IAAI,EACF,SAAS,GAAG,CAAC,EACb,cAAc,GAAG,CAAC,EAClB,SAAS,EAAE,YAAY,GAAG,GAAG,GAC9B,GAAG,OAAO,CAAC;IAEZ,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;KACtD;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAE7C,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE;QACzC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CACrC,CAAC;QAEF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM,GAAG,cAAc,EAAE;YACnC,6EAA6E;YAC7E,2CAA2C;YAC3C,uEAAuE;YACvE,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC;YAC7B,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;oBAClB,IAAI,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACrE,IAAI,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;wBACpC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;wBACtC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACtB;iBACF;aACF;YAED,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;YAC1B,MAAM,GAAG,CAAC,CAAC;YAEX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC7B,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACrB;SACF;aAAM;YACL,MAAM,WAAW,GAAG,cAAc,CAChC,cAAc,EACd,UAAU,CAAC,iBAAiB,EAC5B,YAAY,EACZ,UAAU,CAAC,YAAY,EACvB,WAAW,CACZ,CAAC;YACF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;YACjC,uDAAuD;YACvD,+CAA+C;YAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC;YAClC,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC/B,MAAM,GAAG,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;gBAChC,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEvD,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;oBAC1B,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtC;gBACD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEjC,IAAI,GAAG,CAAC,CAAC;gBACT,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;oBACpC,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtC;gBACD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC5D,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBACnB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClD,MAAM,EAAE,CAAC;iBACV;qBAAM;oBACL,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C;aACF;YAED,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;wBAClC,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1B,IAAI,OAAO,KAAK,CAAC,EAAE;4BACjB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;yBAC5C;qBACF;iBACF;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;gBAClE,IAAI,CAAC,GAAG,CAAC,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;wBAClC,IAAI,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1B,IAAI,OAAO,KAAK,CAAC,EAAE;4BACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;yBAC9C;qBACF;iBACF;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACH,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAEzB,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE;gBACtD,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAEtC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE;gBACxD,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtC,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACvC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBACtC,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,GAAG,IAAI,GAAG,CAAC;gBAEX,IAAI,IAAI,GAAG,CAAC;gBACZ,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,QAAQ,GAAG,YAAY,CACzB,WAAW,EACX,OAAO,EACP,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAChC,CAAC;gBACF,IAAI,QAAQ,GAAG,CAAC,EAAE;oBAChB,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;oBAC9C,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;iBAC3C;qBAAM;oBACL,WAAW,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;SACJ;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,EAAE;YACf,MAAM,IAAI,IAAI,CAAC;YACf,MAAM,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC;YAC5B,IAAI,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE;oBACrD,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBACvB,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC1B,KAAK,EAAE,CAAC;iBACT;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC;wBACX,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,YAAY;wBAClC,CAAC,EAAE,IAAI,GAAG,MAAM;qBACjB,CAAC,CAAC;oBACH,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBACzB,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtB,KAAK,GAAG,CAAC,CAAC;iBACX;aACF;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,CAAC,EAAE,CAAC,OAAO,GAAG,KAAK,GAAG,YAAY;gBAClC,CAAC,EAAE,IAAI,GAAG,MAAM;aACjB,CAAC,CAAC;SACJ;KACF;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,CAAe,EAAE,GAAW;IAChD,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;YAAE,OAAO,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AACD;;;;;;;;GAQG;AACH,SAAS,cAAc,CACrB,cAAwB,EACxB,iBAAkC,EAClC,YAAsB,EACtB,SAA0B,EAC1B,OAAiB;IAEjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE;QAC7B,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;KAClC;IAED,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7C,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAErB,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,EAAE,EAAE,EAAE,CAAC;QACX,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,GAAG,CAAC,CAAC;QACT,KAAK,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC/D,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YAChD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE1C,IAAI,EAAE,EAAE,EAAE,CAAC;gBACX,IAAI,IAAI,GAAG,CAAC,CAAC;gBACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;oBAC7B,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClC;gBACD,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE5B,IAAI,GAAG,CAAC,CAAC;gBACT,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBAClC;gBACD,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE5B,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnC,gBAAgB,CAAC,EAAE,CAAC;qBACpB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,KAAK,CAAC,GAAG,CACP,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrB,gBAAgB,CAAC,EAAE,CAAC;qBACpB,GAAG,CAAC,CAAC,CAAC,CAAC;qBACP,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;gBACF,KAAK,CAAC,GAAG,CACP,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrB,gBAAgB,CAAC,EAAE,CAAC;qBACpB,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CACvD,CAAC;gBAEF,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC5D;SACF;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { gsd, optimizePeaks, joinBroadPeaks, } from 'ml-gsd';
1
+ import { gsd, optimizePeaks, joinBroadPeaks, setShape, } from 'ml-gsd';
2
2
  import { xyExtract, xNoiseSanPlot, xAbsoluteMedian, } from 'ml-spectra-processing';
3
3
  import { convertWidthToHz } from '../peaks/util/convertWidthToHz';
4
4
  export function xyAutoPeaksPicking(data, options) {
@@ -52,8 +52,7 @@ function getNegativePeaks(data, cutOff, getPeakOptions) {
52
52
  }
53
53
  function getPeakList(data, options) {
54
54
  const { shape, frequency, broadWidth, optimize, maxCriteria, factorLimits, sgOptions, minMaxRatio, broadRatio, noiseLevel, smoothY, optimization, realTopDetection, } = options;
55
- let peakList = gsd(data, {
56
- shape,
55
+ const peaks = gsd(data, {
57
56
  sgOptions,
58
57
  maxCriteria,
59
58
  minMaxRatio,
@@ -61,6 +60,7 @@ function getPeakList(data, options) {
61
60
  smoothY,
62
61
  realTopDetection,
63
62
  });
63
+ const peakList = setShape(peaks, { output: peaks, shape });
64
64
  const newPeaks = broadWidth
65
65
  ? joinBroadPeaks(peakList, {
66
66
  broadRatio,
@@ -1 +1 @@
1
- {"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ export function xyPeaksOptimization(data, peaks, options) {
5
5
  const { frequency } = options;
6
6
  const newPeaks = convertWidthToPPM(peaks, { frequency });
7
7
  const optimizedPeaks = optimizePeaks(data, newPeaks, options);
8
- return convertWidthToHz(optimizedPeaks, {
8
+ const result = convertWidthToHz(optimizedPeaks, {
9
9
  frequency,
10
10
  output: optimizedPeaks,
11
11
  });
12
+ return result;
12
13
  }
13
14
  //# sourceMappingURL=xyPeaksOptimization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xyPeaksOptimization.js","sourceRoot":"","sources":["../../src/xy/xyPeaksOptimization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAwB,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAQpE,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,KAAU,EACV,OAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,gBAAgB,CAAC,cAAc,EAAE;QACtC,SAAS;QACT,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"xyPeaksOptimization.js","sourceRoot":"","sources":["../../src/xy/xyPeaksOptimization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAwB,MAAM,QAAQ,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AASpE,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,KAAU,EACV,OAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,EAAE;QAC9C,SAAS;QACT,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nmr-processing",
3
- "version": "9.1.0",
3
+ "version": "9.2.0-pre.1668170175",
4
4
  "description": "Pure functions allowing to process NMR spectra.",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -64,7 +64,8 @@
64
64
  "ml-array-mean": "^1.1.6",
65
65
  "ml-array-rescale": "^1.3.7",
66
66
  "ml-array-sum": "^1.1.6",
67
- "ml-gsd": "^12.1.0",
67
+ "ml-direct": "^0.1.1",
68
+ "ml-gsd": "^12.1.2",
68
69
  "ml-hclust": "^3.1.0",
69
70
  "ml-levenberg-marquardt": "^4.1.0",
70
71
  "ml-matrix": "^6.10.2",
@@ -337,7 +337,7 @@ function initializePartials(
337
337
  }
338
338
 
339
339
  function fillPartial(nSources: number, value: string | null = null) {
340
- const partial: Array<string | null> = new Array(nSources);
340
+ const partial = new Array<string | null>(nSources);
341
341
  for (let i = 0; i < nSources; i++) {
342
342
  partial[i] = value;
343
343
  }
package/src/index.ts CHANGED
@@ -24,6 +24,8 @@ export * from './ranges/rangesToXY';
24
24
  export * from './signals/signalsToRanges';
25
25
  export * from './signals/signalsToXY';
26
26
  export * from './signals/signals2DToZ';
27
+ export * from './signals/optimizeSignals';
28
+ export * from './signals/signalsToFID';
27
29
 
28
30
  export * from './utilities/resurrect';
29
31
  export * from './utilities/rangeFromSignal';
@@ -50,8 +52,8 @@ export type { NMRSignal2D, Signal2DProjection } from './xyz/NMRSignal2D';
50
52
  export type { NMRRange } from './xy/NMRRange';
51
53
  export type { NMRZone } from './xyz/NMRZone';
52
54
  export type { NMRPeak1D } from './peaks/NMRPeak1D';
53
- export type { Prediction1D } from './prediction/prediction1D';
54
- export type { Jcoupling } from './signals/jcoupling';
55
+ export type { Prediction1D } from './prediction/Prediction1D';
56
+ export type { Jcoupling } from './signals/Jcoupling';
55
57
  export type { DatabaseNMREntry } from './databases/DatabaseNMREntry';
56
58
  export type {
57
59
  DataBaseLevelStructure,
@@ -1,11 +1,11 @@
1
1
  import type { Molecule } from 'openchemlib';
2
2
 
3
+ import type { Prediction1D } from './Prediction1D';
3
4
  import { predictCOSY } from './predictCOSY';
4
5
  import { predictCarbon, PredictCarbonOptions } from './predictCarbon';
5
6
  import { predictHMBC } from './predictHMBC';
6
7
  import { predictHSQC } from './predictHSQC';
7
8
  import { predictProton, PredictProtonOptions } from './predictProton';
8
- import type { Prediction1D } from './prediction1D';
9
9
  import { getPredictions } from './utils/getPredictions';
10
10
  import type { Predictor } from './utils/predict2D';
11
11
 
@@ -52,8 +52,8 @@ export async function predictAllSpectra(
52
52
  ...{
53
53
  proton: { from: 0, to: 14 },
54
54
  carbon: { from: 0, to: 200 },
55
- nbPoints: 4098,
56
- lineWidth: 0.03,
55
+ nbPoints: 65536,
56
+ lineWidth: 1,
57
57
  },
58
58
  ...(simulationOptions.oneD || {}),
59
59
  };
@@ -1,7 +1,7 @@
1
1
  import { Molecule } from 'openchemlib';
2
2
 
3
+ import type { Prediction1D } from './Prediction1D';
3
4
  import { predictProton, PredictProtonOptions } from './predictProton';
4
- import type { Prediction1D } from './prediction1D';
5
5
  import { predict2D, Predictor } from './utils/predict2D';
6
6
 
7
7
  export interface PredictCOSYOptions {
@@ -7,8 +7,8 @@ import type { NMRSignal1D } from '../signals/NMRSignal1D';
7
7
  import { signalsToRanges } from '../signals/signalsToRanges';
8
8
  import type { MakeMandatory } from '../utilities/MakeMandatory';
9
9
 
10
+ import type { Prediction1D } from './Prediction1D';
10
11
  import type { DataBaseStructure } from './dataStructure';
11
- import type { Prediction1D } from './prediction1D';
12
12
  import { fetchPrediction } from './utils/fetchPrediction';
13
13
  import { flatGroupedDiaIDs } from './utils/flatGroupedDiaIDs';
14
14
  import { getFilteredIDiaIDs } from './utils/getFilteredIDiaIDs';
@@ -1,10 +1,10 @@
1
1
  import { Molecule } from 'openchemlib';
2
2
 
3
+ import type { Prediction1D } from './Prediction1D';
3
4
  import { predictCarbon } from './predictCarbon';
4
5
  import type { PredictCarbonOptions } from './predictCarbon';
5
6
  import { predictProton } from './predictProton';
6
7
  import type { PredictProtonOptions } from './predictProton';
7
- import type { Prediction1D } from './prediction1D';
8
8
  import { predict2D } from './utils/predict2D';
9
9
  import type { Predictor } from './utils/predict2D';
10
10
 
@@ -1,8 +1,8 @@
1
1
  import { Molecule } from 'openchemlib';
2
2
 
3
+ import type { Prediction1D } from './Prediction1D';
3
4
  import { predictCarbon, PredictCarbonOptions } from './predictCarbon';
4
5
  import { predictProton, PredictProtonOptions } from './predictProton';
5
- import type { Prediction1D } from './prediction1D';
6
6
  import { predict2D, Predictor } from './utils/predict2D';
7
7
 
8
8
  export interface PredictHSQCOptions {
@@ -12,7 +12,7 @@ import type { NMRSignal1D } from '../signals/NMRSignal1D';
12
12
  import { signalsJoin } from '../signals/signalsJoin';
13
13
  import { signalsToRanges } from '../signals/signalsToRanges';
14
14
 
15
- import type { Prediction1D } from './prediction1D';
15
+ import type { Prediction1D } from './Prediction1D';
16
16
 
17
17
  /**
18
18
  * Makes a prediction using proton.
@@ -1,7 +1,7 @@
1
1
  import { fetch } from 'cross-fetch';
2
2
  import { Molecule } from 'openchemlib';
3
3
 
4
- import type { Prediction1D } from '../prediction1D';
4
+ import type { Prediction1D } from '../Prediction1D';
5
5
 
6
6
  interface FetchPredictionOptions {
7
7
  webserviceURL: string;
@@ -1,6 +1,6 @@
1
1
  import type { Molecule } from 'openchemlib';
2
2
 
3
- import type { Prediction1D } from '../prediction1D';
3
+ import type { Prediction1D } from '../Prediction1D';
4
4
 
5
5
  import type { Predictions, PredictOptions, Predictors } from './predict2D';
6
6
 
@@ -12,16 +12,16 @@ import type {
12
12
  PathInfo,
13
13
  } from 'openchemlib-utils';
14
14
 
15
+ import { setIDs } from '../../peaks/util/setIDs';
15
16
  import type { NMRSignal1D } from '../../signals/NMRSignal1D';
16
17
  import type { MakeMandatory } from '../../utilities/MakeMandatory';
17
18
  import type { NMRSignal2D } from '../../xyz/NMRSignal2D';
19
+ import type { Prediction1D } from '../Prediction1D';
18
20
  import type { PredictCarbon, PredictCarbonOptions } from '../predictCarbon';
19
21
  import type { PredictProton, PredictProtonOptions } from '../predictProton';
20
- import type { Prediction1D } from '../prediction1D';
21
22
 
22
23
  import { getNuclei } from './getNuclei';
23
24
  import { getPredictions } from './getPredictions';
24
- import { setIDs } from '../../peaks/util/setIDs';
25
25
 
26
26
  /**
27
27
  * Generate the correlation bidimensional nmr peaks based on the number of bonds between a pair of atoms
@@ -1,7 +1,7 @@
1
1
  import sum from 'ml-array-sum';
2
2
 
3
+ import type { Jcoupling } from '../signals/Jcoupling';
3
4
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
4
- import type { Jcoupling } from '../signals/jcoupling';
5
5
  import type { MakeMandatory } from '../utilities/MakeMandatory';
6
6
  import { joinPatterns } from '../utilities/joinPatterns';
7
7
 
File without changes
@@ -1,6 +1,6 @@
1
1
  import type { NMRPeak1D } from '../peaks/NMRPeak1D';
2
2
 
3
- import type { Jcoupling } from './jcoupling';
3
+ import type { Jcoupling } from './Jcoupling';
4
4
 
5
5
  export interface NMRSignal1D {
6
6
  delta: number;
@@ -1,18 +1,28 @@
1
1
  import { couplingPatterns } from '../constants/couplingPatterns';
2
2
 
3
+ import type { Jcoupling } from './Jcoupling';
3
4
  import { NMRSignal1D } from './NMRSignal1D';
4
- import type { Jcoupling } from './jcoupling';
5
5
 
6
6
  export function addDummySignals(signals: NMRSignal1D[]) {
7
7
  let newSignals: NMRSignal1D[] = JSON.parse(JSON.stringify(signals));
8
8
 
9
+ let nextAtomToAssign =
10
+ signals.reduce((nextAtomToAssign, signal) => {
11
+ const { atoms = [] } = signal;
12
+ return Math.max(...atoms) > nextAtomToAssign
13
+ ? Math.max(...atoms)
14
+ : nextAtomToAssign;
15
+ }, 0) + 1;
9
16
  signals.forEach((signal, s) => {
10
- const { js: jCouplings = [], atoms: signalAssignment = [s] } = signal;
11
-
17
+ const {
18
+ js: jCouplings = [],
19
+ atoms: signalAssignment = [nextAtomToAssign++],
20
+ } = signal;
12
21
  let { newCouplings, tempSignals } = checkCouplings(
13
22
  jCouplings,
14
23
  newSignals,
15
24
  signalAssignment,
25
+ nextAtomToAssign + signals.length,
16
26
  );
17
27
 
18
28
  if (tempSignals.length > 0) newSignals.push(...tempSignals);
@@ -28,8 +38,8 @@ function checkCouplings(
28
38
  jCouplings: Jcoupling[],
29
39
  signals: NMRSignal1D[],
30
40
  signalAssignment: number[],
41
+ nextAtomToAssign: number,
31
42
  ) {
32
- let newSignalAssignment = signals.length - 1;
33
43
  let tempSignals: NMRSignal1D[] = [];
34
44
  const newCouplings = jCouplings.reduce<Jcoupling[]>(
35
45
  (newCouplings, jCoupling) => {
@@ -39,13 +49,13 @@ function checkCouplings(
39
49
  let tempCouplings: Jcoupling[] = [];
40
50
  const nbLinks = couplingPatterns.indexOf(multiplicity);
41
51
  for (let i = 0; i < nbLinks; i++) {
42
- newSignalAssignment++;
52
+ nextAtomToAssign++;
43
53
  tempCouplings.push({
44
54
  coupling,
45
- atoms: [newSignalAssignment],
55
+ atoms: [nextAtomToAssign],
46
56
  });
47
57
  tempSignals.push(
48
- formatSignal(coupling, [newSignalAssignment], signalAssignment),
58
+ formatSignal(coupling, [nextAtomToAssign], signalAssignment),
49
59
  );
50
60
  }
51
61
  } else {
@@ -0,0 +1,45 @@
1
+ import { PseudoVoigtShape1D, Shape1D } from 'ml-peak-shape-generator';
2
+
3
+ import { Jcoupling } from '../Jcoupling';
4
+ import { Signal } from '../optimizeSignals';
5
+
6
+ type Shape1DWithFWHM = Omit<Shape1D, 'fwhm'> & { fwhm: number };
7
+
8
+ export const defaultParameters: Record<
9
+ string,
10
+ Record<string, (...args: any) => number>
11
+ > = {
12
+ delta: {
13
+ init: (data: { signal: Signal }) => data.signal.delta,
14
+ min: (data: { signal: Signal; shape: Shape1DWithFWHM }) =>
15
+ data.signal.delta - data.shape.fwhm * 2,
16
+ max: (data: { signal: Signal; shape: Shape1DWithFWHM }) =>
17
+ data.signal.delta + data.shape.fwhm * 2,
18
+ gradientDifference: () => 2e-3,
19
+ },
20
+ intensity: {
21
+ init: (data: { signal: Signal }) => data.signal.intensity || 1,
22
+ min: () => 0,
23
+ max: () => 1.5,
24
+ gradientDifference: () => 1e-3,
25
+ },
26
+ fwhm: {
27
+ init: (data: { shape: Shape1DWithFWHM }) => data.shape.fwhm,
28
+ min: (data: { shape: Shape1DWithFWHM }) => data.shape.fwhm * 0.25,
29
+ max: (data: { shape: Shape1DWithFWHM }) => data.shape.fwhm * 4,
30
+ gradientDifference: (data: { shape: Shape1DWithFWHM }) =>
31
+ data.shape.fwhm * 2e-3,
32
+ },
33
+ mu: {
34
+ init: (data: { shape: PseudoVoigtShape1D }) => data.shape.mu || 0.5,
35
+ min: () => 0,
36
+ max: () => 1,
37
+ gradientDifference: () => 0.01,
38
+ },
39
+ coupling: {
40
+ init: (data: { jCoupling: Jcoupling }) => data.jCoupling.coupling,
41
+ min: (data: { jCoupling: Jcoupling }) => data.jCoupling.coupling * 0.8,
42
+ max: (data: { jCoupling: Jcoupling }) => data.jCoupling.coupling * 1.2,
43
+ gradientDifference: () => 0.01,
44
+ },
45
+ };