nmr-processing 10.0.7 → 11.0.1

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/datum/data1d/utils/mapIntegrals.d.ts +2 -2
  2. package/lib/datum/data1d/utils/mapIntegrals.js +7 -7
  3. package/lib/datum/data1d/utils/mapIntegrals.js.map +1 -1
  4. package/lib/datum/data1d/utils/mapPeaks.d.ts +6 -1
  5. package/lib/datum/data1d/utils/mapPeaks.js +2 -1
  6. package/lib/datum/data1d/utils/mapPeaks.js.map +1 -1
  7. package/lib/datum/data1d/utils/mapRanges.d.ts +12 -4
  8. package/lib/datum/data1d/utils/mapRanges.js +22 -12
  9. package/lib/datum/data1d/utils/mapRanges.js.map +1 -1
  10. package/lib/datum/data1d/utils/mapValues.d.ts +4 -4
  11. package/lib/datum/data2d/utils/mapZones.d.ts +32 -12
  12. package/lib/datum/data2d/utils/mapZones.js +67 -8
  13. package/lib/datum/data2d/utils/mapZones.js.map +1 -1
  14. package/lib/index.d.ts +1 -0
  15. package/lib/index.js +1 -0
  16. package/lib/index.js.map +1 -1
  17. package/lib/peaks/NMRPeak1D.d.ts +1 -0
  18. package/lib/types/Integral.d.ts +2 -2
  19. package/lib/types/Peaks/Peak2D.d.ts +3 -3
  20. package/lib/types/Ranges/Ranges.d.ts +2 -2
  21. package/lib/types/Signals/Signal1D.d.ts +1 -1
  22. package/lib/types/Signals/Signal2D.d.ts +1 -1
  23. package/lib/types/Zones/Zone.d.ts +2 -0
  24. package/lib/utilities/getSum.js +1 -1
  25. package/lib/utilities/getSum.js.map +1 -1
  26. package/lib-esm/datum/data1d/utils/mapIntegrals.js +7 -7
  27. package/lib-esm/datum/data1d/utils/mapIntegrals.js.map +1 -1
  28. package/lib-esm/datum/data1d/utils/mapPeaks.js +1 -1
  29. package/lib-esm/datum/data1d/utils/mapPeaks.js.map +1 -1
  30. package/lib-esm/datum/data1d/utils/mapRanges.js +22 -12
  31. package/lib-esm/datum/data1d/utils/mapRanges.js.map +1 -1
  32. package/lib-esm/datum/data2d/utils/mapZones.js +67 -8
  33. package/lib-esm/datum/data2d/utils/mapZones.js.map +1 -1
  34. package/lib-esm/index.js +1 -0
  35. package/lib-esm/index.js.map +1 -1
  36. package/lib-esm/utilities/getSum.js +1 -1
  37. package/lib-esm/utilities/getSum.js.map +1 -1
  38. package/package.json +3 -3
  39. package/src/datum/data1d/utils/mapIntegrals.ts +7 -7
  40. package/src/datum/data1d/utils/mapPeaks.ts +6 -1
  41. package/src/datum/data1d/utils/mapRanges.ts +23 -12
  42. package/src/datum/data2d/utils/mapZones.ts +69 -8
  43. package/src/index.ts +1 -0
  44. package/src/peaks/NMRPeak1D.ts +1 -0
  45. package/src/types/Integral.ts +2 -2
  46. package/src/types/Peaks/Peak2D.ts +3 -3
  47. package/src/types/Ranges/Ranges.ts +2 -2
  48. package/src/types/Signals/Signal1D.ts +1 -1
  49. package/src/types/Signals/Signal2D.ts +1 -1
  50. package/src/types/Zones/Zone.ts +2 -0
  51. package/src/utilities/getSum.ts +1 -1
@@ -4,6 +4,7 @@ import { DatumKind } from '../../../constants/SignalsKinds';
4
4
  import { signalMultiplicityPattern } from '../../../signal/signalMultiplicityPattern';
5
5
  import { getShiftX } from './getShiftX';
6
6
  import { getSpectrumErrorValue } from './getSpectrumErrorValue';
7
+ import { getPeakDelta } from './mapPeaks';
7
8
  function checkRange(range, spectrum, error) {
8
9
  // check if the range is already exists
9
10
  for (const { from, to } of spectrum.ranges?.values || []) {
@@ -14,36 +15,36 @@ function checkRange(range, spectrum, error) {
14
15
  }
15
16
  }
16
17
  function getRange(range, shiftTarget, shift) {
17
- const { originFrom, originTo, from, to } = range;
18
+ const { originalFrom, originalTo, from, to } = range;
18
19
  if (shiftTarget === 'origin') {
19
20
  return {
20
- originFrom: from - shift,
21
- originTo: to - shift,
21
+ originalFrom: from - shift,
22
+ originalTo: to - shift,
22
23
  from,
23
24
  to,
24
25
  };
25
26
  }
26
27
  else {
27
28
  return {
28
- originFrom,
29
- originTo,
30
- from: (originFrom || 0) + shift,
31
- to: (originTo || 0) + shift,
29
+ originalFrom,
30
+ originalTo,
31
+ from: (originalFrom || 0) + shift,
32
+ to: (originalTo || 0) + shift,
32
33
  };
33
34
  }
34
35
  }
35
36
  function getSignalDelta(signal, shiftTarget, shift) {
36
- const { delta, originDelta } = signal;
37
+ const { delta, originalDelta } = signal;
37
38
  if (shiftTarget === 'origin') {
38
39
  return {
39
- originDelta: delta - shift,
40
+ originalDelta: delta - shift,
40
41
  delta,
41
42
  };
42
43
  }
43
44
  else {
44
45
  return {
45
- originDelta,
46
- delta: (originDelta || 0) + shift,
46
+ originalDelta,
47
+ delta: (originalDelta || 0) + shift,
47
48
  };
48
49
  }
49
50
  }
@@ -80,10 +81,19 @@ export function mapRanges(ranges, spectrum, options = {}) {
80
81
  const rangeBoundary = getRange(range, shiftTarget, shiftX);
81
82
  const absolute = xyIntegration({ x, y: re }, { from: rangeBoundary.from, to: rangeBoundary.to, reverse: true });
82
83
  const signals = range.signals.map((signal) => {
83
- const { kind = null, id, ...resSignal } = signal;
84
+ const { kind = null, id, peaks: inputPeaks = [], ...resSignal } = signal;
85
+ const peaks = inputPeaks.map((peak) => {
86
+ const peakDelta = getPeakDelta(peak, shiftTarget, shiftX);
87
+ return {
88
+ id: peak?.id || v4(),
89
+ ...peak,
90
+ ...peakDelta,
91
+ };
92
+ });
84
93
  return {
85
94
  kind: kind || 'signal',
86
95
  id: id || v4(),
96
+ peaks,
87
97
  ...resSignal,
88
98
  ...getSignalDelta(signal, shiftTarget, shiftX),
89
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapRanges.js","sourceRoot":"","sources":["../../../../src/datum/data1d/utils/mapRanges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapRanges.js","sourceRoot":"","sources":["../../../../src/datum/data1d/utils/mapRanges.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,11 @@ function getSignal(signal, shiftTarget, shift) {
10
10
  ...signal,
11
11
  x: {
12
12
  ...x,
13
- originDelta: x.delta - shift.x,
13
+ originalDelta: x.delta - shift.x,
14
14
  },
15
15
  y: {
16
16
  ...y,
17
- originDelta: y.delta - shift.y,
17
+ originalDelta: y.delta - shift.y,
18
18
  },
19
19
  };
20
20
  }
@@ -23,15 +23,63 @@ function getSignal(signal, shiftTarget, shift) {
23
23
  ...signal,
24
24
  x: {
25
25
  ...x,
26
- delta: x.originDelta + shift.x,
26
+ delta: x.originalDelta + shift.x,
27
27
  },
28
28
  y: {
29
29
  ...y,
30
- delta: y.originDelta + shift.y,
30
+ delta: y.originalDelta + shift.y,
31
31
  },
32
32
  };
33
33
  }
34
34
  }
35
+ function getZoneAxis(zone, shiftTarget, shift) {
36
+ const { x, y } = zone;
37
+ if (shiftTarget === 'origin') {
38
+ return {
39
+ x: {
40
+ ...x,
41
+ originalFrom: x.from - shift.x,
42
+ originalTo: x.to - shift.x,
43
+ },
44
+ y: {
45
+ ...y,
46
+ originalFrom: y.from - shift.y,
47
+ originalTo: y.to - shift.y,
48
+ },
49
+ };
50
+ }
51
+ else {
52
+ return {
53
+ x: {
54
+ ...x,
55
+ from: (x?.originalFrom || 0) + shift.x,
56
+ to: (x?.originalTo || 0) + shift.x,
57
+ },
58
+ y: {
59
+ ...y,
60
+ from: (y?.originalFrom || 0) + shift.y,
61
+ to: (y?.originalTo || 0) + shift.y,
62
+ },
63
+ };
64
+ }
65
+ }
66
+ function getPeak(peak, shiftTarget, shift) {
67
+ const { x, y, originalX = 0, originalY = 0 } = peak;
68
+ if (shiftTarget === 'origin') {
69
+ return {
70
+ ...peak,
71
+ originalX: x - shift.x,
72
+ originalY: y - shift.y,
73
+ };
74
+ }
75
+ else {
76
+ return {
77
+ ...peak,
78
+ x: originalX + shift.x,
79
+ y: originalY + shift.y,
80
+ };
81
+ }
82
+ }
35
83
  export function mapZones(zones, datum, options = {}) {
36
84
  const { checkIsExisting = true, shiftTarget = 'origin' } = options;
37
85
  const shift = getShift(datum);
@@ -41,12 +89,24 @@ export function mapZones(zones, datum, options = {}) {
41
89
  _zones = zones.filter((zone) => !isZoneExists(zone, datum, error));
42
90
  }
43
91
  return _zones.map((zone) => {
44
- const x = zone.x || { from: 0, to: 0 };
45
- const y = zone.y || { from: 0, to: 0 };
92
+ zone.x = zone.x || { from: 0, to: 0 };
93
+ zone.y = zone.y || { from: 0, to: 0 };
46
94
  const signals = zone.signals.map((signal) => {
47
95
  const { id, kind } = signal;
96
+ let peaks;
97
+ if (signal?.peaks) {
98
+ peaks = (signal?.peaks || []).map((peak) => {
99
+ const peakDelta = getPeak(peak, shiftTarget, shift);
100
+ return {
101
+ ...peak,
102
+ ...peakDelta,
103
+ id: peak?.id || v4(),
104
+ };
105
+ });
106
+ }
48
107
  return {
49
108
  ...getSignal(signal, shiftTarget, shift),
109
+ peaks,
50
110
  id: id || v4(),
51
111
  kind: kind || 'signal',
52
112
  };
@@ -54,8 +114,7 @@ export function mapZones(zones, datum, options = {}) {
54
114
  return {
55
115
  ...zone,
56
116
  id: zone.id || v4(),
57
- x: { from: x.from, to: x.to },
58
- y: { from: y.from, to: y.to },
117
+ ...getZoneAxis(zone, shiftTarget, shift),
59
118
  signals,
60
119
  kind: zone.kind || DatumKind.signal,
61
120
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapZones.js","sourceRoot":"","sources":["../../../../src/datum/data2d/utils/mapZones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapZones.js","sourceRoot":"","sources":["../../../../src/datum/data2d/utils/mapZones.ts"],"names":[],"mappings":"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"}
package/lib-esm/index.js CHANGED
@@ -51,6 +51,7 @@ export * from './datum/data1d/utils/getShiftX';
51
51
  export * from './datum/data1d/utils/getSpectrumErrorValue';
52
52
  export * from './datum/data1d/utils/mapPeaks';
53
53
  export * from './datum/data1d/utils/mapRanges';
54
+ export * from './datum/data2d/utils/mapZones';
54
55
  export * from './datum/data1d/utils/mapIntegrals';
55
56
  export * from './datum/data1d/utils/updateRanges';
56
57
  export * from './datum/data1d/utils/checkIntegralKind';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AAErD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AAEnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AAErD,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAE7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAElD,cAAc,iBAAiB,CAAC;AAChC,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,wCAAwC,CAAC;AACvD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAC"}
@@ -10,7 +10,7 @@ export function getSum(values, key, check = null) {
10
10
  for (const current of values) {
11
11
  if (check?.(current)) {
12
12
  const value = current[key];
13
- if (!value || isNaN(value))
13
+ if (!value || typeof value !== 'number')
14
14
  continue;
15
15
  sum += Math.abs(value);
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSum.js","sourceRoot":"","sources":["../../src/utilities/getSum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,MAAM,CACpB,MAAc,EACd,GAAe,EACf,QAA2C,IAAI;IAE/C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;gBAAE,SAAS;YACrC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"getSum.js","sourceRoot":"","sources":["../../src/utilities/getSum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,UAAU,MAAM,CACpB,MAAc,EACd,GAAe,EACf,QAA2C,IAAI;IAE/C,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE;YACpB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAClD,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACxB;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nmr-processing",
3
- "version": "10.0.7",
3
+ "version": "11.0.1",
4
4
  "description": "Pure functions allowing to process NMR spectra.",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -52,7 +52,7 @@
52
52
  "prettier": "^3.0.1",
53
53
  "rimraf": "^5.0.1",
54
54
  "ts-jest": "^29.1.1",
55
- "typescript": "^5.1.6"
55
+ "typescript": "~5.1.6"
56
56
  },
57
57
  "dependencies": {
58
58
  "@lukeed/uuid": "^2.0.1",
@@ -83,4 +83,4 @@
83
83
  "openchemlib-utils": "^5.2.0",
84
84
  "spectrum-generator": "^8.0.8"
85
85
  }
86
- }
86
+ }
@@ -8,20 +8,20 @@ import { Entry1D } from '../Entry1D';
8
8
  import { getShiftX } from './getShiftX';
9
9
 
10
10
  function getRange(integral: Integral, shiftTarget: ShiftTarget, shift: number) {
11
- const { originFrom, originTo, from, to } = integral;
11
+ const { originalFrom, originalTo, from, to } = integral;
12
12
  if (shiftTarget === 'origin') {
13
13
  return {
14
- originFrom: from - shift,
15
- originTo: to - shift,
14
+ originalFrom: from - shift,
15
+ originalTo: to - shift,
16
16
  from,
17
17
  to,
18
18
  };
19
19
  } else {
20
20
  return {
21
- originFrom,
22
- originTo,
23
- from: originFrom + shift,
24
- to: originTo + shift,
21
+ originalFrom,
22
+ originalTo,
23
+ from: originalFrom + shift,
24
+ to: originalTo + shift,
25
25
  };
26
26
  }
27
27
  }
@@ -6,6 +6,7 @@ import { Entry1D } from '../Entry1D';
6
6
 
7
7
  import { getShiftX } from './getShiftX';
8
8
  import { getSpectrumErrorValue } from './getSpectrumErrorValue';
9
+ import { NMRPeak1D } from '../../..';
9
10
 
10
11
  function isExists(peak: Peak1D, spectrum: Entry1D, error: number) {
11
12
  // check if the Peak is already exists
@@ -17,7 +18,11 @@ function isExists(peak: Peak1D, spectrum: Entry1D, error: number) {
17
18
  return false;
18
19
  }
19
20
 
20
- function getPeakDelta(peak: Peak1D, shiftTarget: ShiftTarget, shift: number) {
21
+ export function getPeakDelta(
22
+ peak: Peak1D | NMRPeak1D,
23
+ shiftTarget: ShiftTarget,
24
+ shift: number,
25
+ ) {
21
26
  const { originalX = 0, x } = peak;
22
27
  if (shiftTarget === 'origin') {
23
28
  return {
@@ -11,6 +11,7 @@ import { Entry1D } from '../Entry1D';
11
11
 
12
12
  import { getShiftX } from './getShiftX';
13
13
  import { getSpectrumErrorValue } from './getSpectrumErrorValue';
14
+ import { getPeakDelta } from './mapPeaks';
14
15
 
15
16
  function checkRange(range: Range, spectrum: Entry1D, error: number) {
16
17
  // check if the range is already exists
@@ -29,20 +30,20 @@ function getRange(
29
30
  shiftTarget: 'origin' | 'current',
30
31
  shift: number,
31
32
  ) {
32
- const { originFrom, originTo, from, to } = range;
33
+ const { originalFrom, originalTo, from, to } = range;
33
34
  if (shiftTarget === 'origin') {
34
35
  return {
35
- originFrom: from - shift,
36
- originTo: to - shift,
36
+ originalFrom: from - shift,
37
+ originalTo: to - shift,
37
38
  from,
38
39
  to,
39
40
  };
40
41
  } else {
41
42
  return {
42
- originFrom,
43
- originTo,
44
- from: (originFrom || 0) + shift,
45
- to: (originTo || 0) + shift,
43
+ originalFrom,
44
+ originalTo,
45
+ from: (originalFrom || 0) + shift,
46
+ to: (originalTo || 0) + shift,
46
47
  };
47
48
  }
48
49
  }
@@ -52,16 +53,16 @@ function getSignalDelta(
52
53
  shiftTarget: ShiftTarget,
53
54
  shift: number,
54
55
  ) {
55
- const { delta, originDelta } = signal;
56
+ const { delta, originalDelta } = signal;
56
57
  if (shiftTarget === 'origin') {
57
58
  return {
58
- originDelta: delta - shift,
59
+ originalDelta: delta - shift,
59
60
  delta,
60
61
  };
61
62
  } else {
62
63
  return {
63
- originDelta,
64
- delta: (originDelta || 0) + shift,
64
+ originalDelta,
65
+ delta: (originalDelta || 0) + shift,
65
66
  };
66
67
  }
67
68
  }
@@ -112,10 +113,20 @@ export function mapRanges(
112
113
  { from: rangeBoundary.from, to: rangeBoundary.to, reverse: true },
113
114
  );
114
115
  const signals = range.signals.map((signal) => {
115
- const { kind = null, id, ...resSignal } = signal;
116
+ const { kind = null, id, peaks: inputPeaks = [], ...resSignal } = signal;
117
+
118
+ const peaks = inputPeaks.map((peak) => {
119
+ const peakDelta = getPeakDelta(peak, shiftTarget, shiftX);
120
+ return {
121
+ id: peak?.id || v4(),
122
+ ...peak,
123
+ ...peakDelta,
124
+ };
125
+ });
116
126
  return {
117
127
  kind: kind || 'signal',
118
128
  id: id || v4(),
129
+ peaks,
119
130
  ...resSignal,
120
131
  ...getSignalDelta(signal, shiftTarget, shiftX),
121
132
  };
@@ -9,6 +9,7 @@ import { Entry2D } from '../Entry2D';
9
9
  import { get2DSpectrumErrorValue } from './get2DSpectrumErrorValue';
10
10
  import { getShift, Shift2D } from './getShift';
11
11
  import { isZoneExists } from './isZoneExists';
12
+ import { Peak2D } from '../../..';
12
13
 
13
14
  function getSignal(signal: Signal2D, shiftTarget: ShiftTarget, shift: Shift2D) {
14
15
  const { x, y } = signal;
@@ -18,11 +19,11 @@ function getSignal(signal: Signal2D, shiftTarget: ShiftTarget, shift: Shift2D) {
18
19
  ...signal,
19
20
  x: {
20
21
  ...x,
21
- originDelta: x.delta - shift.x,
22
+ originalDelta: x.delta - shift.x,
22
23
  },
23
24
  y: {
24
25
  ...y,
25
- originDelta: y.delta - shift.y,
26
+ originalDelta: y.delta - shift.y,
26
27
  },
27
28
  };
28
29
  } else {
@@ -30,16 +31,65 @@ function getSignal(signal: Signal2D, shiftTarget: ShiftTarget, shift: Shift2D) {
30
31
  ...signal,
31
32
  x: {
32
33
  ...x,
33
- delta: x.originDelta + shift.x,
34
+ delta: x.originalDelta + shift.x,
34
35
  },
35
36
  y: {
36
37
  ...y,
37
- delta: y.originDelta + shift.y,
38
+ delta: y.originalDelta + shift.y,
38
39
  },
39
40
  };
40
41
  }
41
42
  }
42
43
 
44
+ function getZoneAxis(zone: Zone, shiftTarget: ShiftTarget, shift: Shift2D) {
45
+ const { x, y } = zone;
46
+
47
+ if (shiftTarget === 'origin') {
48
+ return {
49
+ x: {
50
+ ...x,
51
+ originalFrom: x.from - shift.x,
52
+ originalTo: x.to - shift.x,
53
+ },
54
+ y: {
55
+ ...y,
56
+ originalFrom: y.from - shift.y,
57
+ originalTo: y.to - shift.y,
58
+ },
59
+ };
60
+ } else {
61
+ return {
62
+ x: {
63
+ ...x,
64
+ from: (x?.originalFrom || 0) + shift.x,
65
+ to: (x?.originalTo || 0) + shift.x,
66
+ },
67
+ y: {
68
+ ...y,
69
+ from: (y?.originalFrom || 0) + shift.y,
70
+ to: (y?.originalTo || 0) + shift.y,
71
+ },
72
+ };
73
+ }
74
+ }
75
+ function getPeak(peak: Peak2D, shiftTarget: ShiftTarget, shift: Shift2D) {
76
+ const { x, y, originalX = 0, originalY = 0 } = peak;
77
+
78
+ if (shiftTarget === 'origin') {
79
+ return {
80
+ ...peak,
81
+ originalX: x - shift.x,
82
+ originalY: y - shift.y,
83
+ };
84
+ } else {
85
+ return {
86
+ ...peak,
87
+ x: originalX + shift.x,
88
+ y: originalY + shift.y,
89
+ };
90
+ }
91
+ }
92
+
43
93
  export function mapZones(
44
94
  zones: Zone[],
45
95
  datum: Entry2D,
@@ -56,13 +106,25 @@ export function mapZones(
56
106
  }
57
107
 
58
108
  return _zones.map((zone: Zone) => {
59
- const x = zone.x || { from: 0, to: 0 };
60
- const y = zone.y || { from: 0, to: 0 };
109
+ zone.x = zone.x || { from: 0, to: 0 };
110
+ zone.y = zone.y || { from: 0, to: 0 };
61
111
 
62
112
  const signals = zone.signals.map((signal) => {
63
113
  const { id, kind } = signal;
114
+ let peaks;
115
+ if (signal?.peaks) {
116
+ peaks = (signal?.peaks || []).map((peak) => {
117
+ const peakDelta = getPeak(peak, shiftTarget, shift);
118
+ return {
119
+ ...peak,
120
+ ...peakDelta,
121
+ id: peak?.id || v4(),
122
+ };
123
+ });
124
+ }
64
125
  return {
65
126
  ...getSignal(signal, shiftTarget, shift),
127
+ peaks,
66
128
  id: id || v4(),
67
129
  kind: kind || 'signal',
68
130
  };
@@ -71,8 +133,7 @@ export function mapZones(
71
133
  return {
72
134
  ...zone,
73
135
  id: zone.id || v4(),
74
- x: { from: x.from, to: x.to },
75
- y: { from: y.from, to: y.to },
136
+ ...getZoneAxis(zone, shiftTarget, shift),
76
137
  signals,
77
138
  kind: zone.kind || DatumKind.signal,
78
139
  };
package/src/index.ts CHANGED
@@ -65,6 +65,7 @@ export * from './datum/data1d/utils/getShiftX';
65
65
  export * from './datum/data1d/utils/getSpectrumErrorValue';
66
66
  export * from './datum/data1d/utils/mapPeaks';
67
67
  export * from './datum/data1d/utils/mapRanges';
68
+ export * from './datum/data2d/utils/mapZones';
68
69
  export * from './datum/data1d/utils/mapIntegrals';
69
70
  export * from './datum/data1d/utils/updateRanges';
70
71
  export * from './datum/data1d/utils/checkIntegralKind';
@@ -5,4 +5,5 @@ export interface NMRPeak1D extends PeakXYWidth {
5
5
  id?: string;
6
6
  kind?: string;
7
7
  shape?: Shape1D;
8
+ originalX?: number;
8
9
  }
@@ -1,7 +1,7 @@
1
1
  export interface Integral {
2
2
  id: string;
3
- originFrom: number;
4
- originTo: number;
3
+ originalFrom: number;
4
+ originalTo: number;
5
5
  from: number;
6
6
  to: number;
7
7
  absolute: number;
@@ -4,8 +4,8 @@ export interface Peak2D extends BasePeak {
4
4
  x: number;
5
5
  y: number;
6
6
  z: number;
7
- originX?: number;
8
- originY?: number;
9
- originZ?: number;
7
+ originalX?: number;
8
+ originalY?: number;
9
+ originalZ?: number;
10
10
  width?: number | { x: number; y: number };
11
11
  }
@@ -9,8 +9,8 @@ export interface Ranges {
9
9
 
10
10
  export interface Range extends Omit<NMRRange, 'signals' | 'id'> {
11
11
  id: string;
12
- originFrom?: number;
13
- originTo?: number;
12
+ originalFrom?: number;
13
+ originalTo?: number;
14
14
  absolute: number;
15
15
  signals: Signal1D[];
16
16
  integration: number;
@@ -4,5 +4,5 @@ type ObjectKeys = 'id' | 'multiplicity' | 'js';
4
4
  export interface Signal1D
5
5
  extends Required<Pick<NMRSignal1D, ObjectKeys>>,
6
6
  Omit<NMRSignal1D, ObjectKeys> {
7
- originDelta?: number;
7
+ originalDelta?: number;
8
8
  }
@@ -8,7 +8,7 @@ interface SignalAxis {
8
8
  delta: number;
9
9
  nbAtoms?: number;
10
10
  diaIDs?: string[];
11
- originDelta: number;
11
+ originalDelta: number;
12
12
  }
13
13
 
14
14
  export interface Signal2D extends Signal {
@@ -5,6 +5,8 @@ import { Signal2D } from '../Signals/Signal2D';
5
5
  interface ZoneAxis extends FromTo {
6
6
  nbAtoms?: number;
7
7
  diaIDs?: string[];
8
+ originalFrom?: number;
9
+ originalTo?: number;
8
10
  }
9
11
 
10
12
  export interface Zone {
@@ -15,7 +15,7 @@ export function getSum<Type extends object>(
15
15
  for (const current of values) {
16
16
  if (check?.(current)) {
17
17
  const value = current[key];
18
- if (!value || isNaN(value)) continue;
18
+ if (!value || typeof value !== 'number') continue;
19
19
  sum += Math.abs(value);
20
20
  }
21
21
  }