nmr-processing 9.6.0 → 9.6.2-pre.1686575602

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 (59) hide show
  1. package/lib/databases/carbonImpurities.js +9432 -8388
  2. package/lib/databases/carbonImpurities.js.map +1 -1
  3. package/lib/databases/protonImpurities.js +11846 -10639
  4. package/lib/databases/protonImpurities.js.map +1 -1
  5. package/lib/datum/Filters.d.ts +1 -1
  6. package/lib/datum/Filters.js.map +1 -1
  7. package/lib/datum/data1d/filter1d/apodization/apodization.js.map +1 -1
  8. package/lib/datum/data1d/filter1d/apodization/apodizationFilter.js.map +1 -1
  9. package/lib/datum/data1d/filter1d/baselineCorrection.d.ts +7 -10
  10. package/lib/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  11. package/lib/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  12. package/lib/datum/data1d/filter1d/fft.js.map +1 -1
  13. package/lib/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  14. package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  15. package/lib/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  16. package/lib/datum/data1d/utils/mapRanges.d.ts +2 -1
  17. package/lib/datum/data1d/utils/mapRanges.js +24 -2
  18. package/lib/datum/data1d/utils/mapRanges.js.map +1 -1
  19. package/lib/index.d.ts +1 -0
  20. package/lib/index.js +1 -0
  21. package/lib/index.js.map +1 -1
  22. package/lib/utilities/rangeFromSignal.d.ts +1 -1
  23. package/lib/utilities/rangeFromSignal.js +1 -1
  24. package/lib/utilities/rangeFromSignal.js.map +1 -1
  25. package/lib-esm/databases/carbonImpurities.js +9432 -8388
  26. package/lib-esm/databases/carbonImpurities.js.map +1 -1
  27. package/lib-esm/databases/protonImpurities.js +11846 -10639
  28. package/lib-esm/databases/protonImpurities.js.map +1 -1
  29. package/lib-esm/datum/Filters.js.map +1 -1
  30. package/lib-esm/datum/data1d/filter1d/apodization/apodization.js.map +1 -1
  31. package/lib-esm/datum/data1d/filter1d/apodization/apodizationFilter.js.map +1 -1
  32. package/lib-esm/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  33. package/lib-esm/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  34. package/lib-esm/datum/data1d/filter1d/fft.js.map +1 -1
  35. package/lib-esm/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  36. package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  37. package/lib-esm/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  38. package/lib-esm/datum/data1d/utils/mapRanges.js +24 -2
  39. package/lib-esm/datum/data1d/utils/mapRanges.js.map +1 -1
  40. package/lib-esm/index.js +1 -0
  41. package/lib-esm/index.js.map +1 -1
  42. package/lib-esm/utilities/rangeFromSignal.js +1 -1
  43. package/lib-esm/utilities/rangeFromSignal.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/databases/carbonImpurities.ts +9433 -8389
  46. package/src/databases/protonImpurities.ts +11847 -10640
  47. package/src/datum/Filters.ts +1 -0
  48. package/src/datum/data1d/Entry1D.ts +1 -0
  49. package/src/datum/data1d/filter1d/apodization/apodization.ts +1 -0
  50. package/src/datum/data1d/filter1d/apodization/apodizationFilter.ts +2 -1
  51. package/src/datum/data1d/filter1d/baselineCorrection.ts +8 -2
  52. package/src/datum/data1d/filter1d/digitalFilter.ts +1 -0
  53. package/src/datum/data1d/filter1d/fft.ts +1 -1
  54. package/src/datum/data1d/filter1d/phaseCorrection.ts +1 -1
  55. package/src/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.ts +1 -1
  56. package/src/datum/data1d/filter1d/zeroFilling.ts +1 -0
  57. package/src/datum/data1d/utils/mapRanges.ts +29 -3
  58. package/src/index.ts +1 -0
  59. package/src/utilities/rangeFromSignal.ts +1 -1
@@ -17,6 +17,7 @@ export type {
17
17
  BaselineAlgorithms,
18
18
  PolynomialOptions,
19
19
  AirplsOptions,
20
+ BaselineCorrectionZone,
20
21
  BaselineCorrectionOptions,
21
22
  } from './data1d/filter1d/baselineCorrection';
22
23
  export type {
@@ -1,4 +1,5 @@
1
1
  import { NmrData1D } from 'cheminfo-types';
2
+
2
3
  import { Filter } from '../../types/Filter';
3
4
  import { Info1D } from '../../types/Info/Info1D';
4
5
  import { Integrals } from '../../types/Integrals';
@@ -1,4 +1,5 @@
1
1
  import { NmrData1D } from 'cheminfo-types';
2
+
2
3
  import { Info1D } from '../../../../types/Info/Info1D';
3
4
  import { FilterDomainUpdateRules } from '../../../FiltersManager';
4
5
  import { Entry1D } from '../../Entry1D';
@@ -1,5 +1,6 @@
1
- import { apodization } from '../../../../apodization/apodization';
2
1
  import { NmrData1D } from 'cheminfo-types';
2
+
3
+ import { apodization } from '../../../../apodization/apodization';
3
4
  import { Info1D } from '../../../../types/Info/Info1D';
4
5
  import { Entry1D } from '../../Entry1D';
5
6
 
@@ -14,14 +14,20 @@ export const DOMAIN_UPDATE_RULES: Readonly<FilterDomainUpdateRules> = {
14
14
 
15
15
  export type BaselineAlgorithms = 'airpls' | 'polynomial';
16
16
 
17
+ export interface BaselineCorrectionZone {
18
+ from: number;
19
+ to: number;
20
+ id: string;
21
+ }
22
+
17
23
  export interface PolynomialOptions {
18
- zones: Array<{ from: number; to: number; id: string }>;
24
+ zones: BaselineCorrectionZone[];
19
25
  algorithm: 'polynomial';
20
26
  degree: number;
21
27
  }
22
28
 
23
29
  export interface AirplsOptions {
24
- zones: Array<{ from: number; to: number; id: string }>;
30
+ zones: BaselineCorrectionZone[];
25
31
  algorithm: 'airpls';
26
32
  maxIterations: number;
27
33
  tolerance: number;
@@ -1,4 +1,5 @@
1
1
  import { NmrData1D } from 'cheminfo-types';
2
+
2
3
  import { Info1D } from '../../../types/Info/Info1D';
3
4
  import { FilterDomainUpdateRules } from '../../FiltersManager';
4
5
  import { Entry1D } from '../Entry1D';
@@ -1,3 +1,4 @@
1
+ import { NmrData1D } from 'cheminfo-types';
1
2
  import {
2
3
  DataReIm,
3
4
  reimFFT,
@@ -5,7 +6,6 @@ import {
5
6
  xMean,
6
7
  } from 'ml-spectra-processing';
7
8
 
8
- import { NmrData1D } from 'cheminfo-types';
9
9
  import { Info1D } from '../../../types/Info/Info1D';
10
10
  import { FilterDomainUpdateRules } from '../../FiltersManager';
11
11
  import { Entry1D } from '../Entry1D';
@@ -1,3 +1,4 @@
1
+ import { NmrData1D } from 'cheminfo-types';
1
2
  import {
2
3
  reimAbsolute,
3
4
  reimAutoPhaseCorrection,
@@ -5,7 +6,6 @@ import {
5
6
  xEnsureFloat64,
6
7
  } from 'ml-spectra-processing';
7
8
 
8
- import { NmrData1D } from 'cheminfo-types';
9
9
  import { FilterDomainUpdateRules } from '../../FiltersManager';
10
10
  import { Entry1D } from '../Entry1D';
11
11
 
@@ -1,6 +1,6 @@
1
+ import { NmrData1D } from 'cheminfo-types';
1
2
  import { xSequentialFill } from 'ml-spectra-processing';
2
3
 
3
- import { NmrData1D } from 'cheminfo-types';
4
4
  import { Info1D } from '../../../../types/Info/Info1D';
5
5
  import { Entry1D } from '../../Entry1D';
6
6
 
@@ -1,4 +1,5 @@
1
1
  import { NmrData1D } from 'cheminfo-types';
2
+
2
3
  import { Info1D } from '../../../types/Info/Info1D';
3
4
  import { FilterDomainUpdateRules } from '../../FiltersManager';
4
5
  import { Entry1D } from '../Entry1D';
@@ -2,9 +2,11 @@ import { v4 } from '@lukeed/uuid';
2
2
  import { xyIntegration } from 'ml-spectra-processing';
3
3
 
4
4
  import { DatumKind } from '../../../constants/SignalsKinds';
5
+ import { signalMultiplicityPattern } from '../../../signal/signalMultiplicityPattern';
5
6
  import { Range } from '../../../types/Ranges/Ranges';
6
7
  import { Signal1D } from '../../../types/Signals/Signal1D';
7
8
  import { MapOptions, ShiftTarget } from '../../../types/common/MapOptions';
9
+ import { NMRRange } from '../../../xy/NMRRange';
8
10
  import { Entry1D } from '../Entry1D';
9
11
 
10
12
  import { getShiftX } from './getShiftX';
@@ -44,6 +46,7 @@ function getRange(
44
46
  };
45
47
  }
46
48
  }
49
+
47
50
  function getSignalDelta(
48
51
  signal: Signal1D,
49
52
  shiftTarget: ShiftTarget,
@@ -63,8 +66,29 @@ function getSignalDelta(
63
66
  }
64
67
  }
65
68
 
69
+ function nmrRangeToRange(range: NMRRange): Range {
70
+ const { signals = [], integration = 0, ...restRange } = range;
71
+ const newSignals: Signal1D[] = [];
72
+ for (const signal of signals) {
73
+ const { multiplicity, ...restSignal } = signal;
74
+ newSignals.push({
75
+ id: v4(),
76
+ js: [],
77
+ multiplicity: multiplicity || signalMultiplicityPattern(signal),
78
+ ...restSignal,
79
+ });
80
+ }
81
+ return {
82
+ id: v4(),
83
+ integration,
84
+ absolute: integration || 0,
85
+ signals: newSignals,
86
+ ...restRange,
87
+ };
88
+ }
89
+
66
90
  export function mapRanges(
67
- ranges: Range[],
91
+ ranges: Range[] | NMRRange[],
68
92
  spectrum: Entry1D,
69
93
  options: MapOptions = {},
70
94
  ) {
@@ -73,13 +97,14 @@ export function mapRanges(
73
97
  const shiftX = getShiftX(spectrum);
74
98
  const error = getSpectrumErrorValue(spectrum);
75
99
 
100
+ let newRanges = ranges.map(nmrRangeToRange);
76
101
  if (checkIsExisting) {
77
- ranges = ranges.filter(
102
+ newRanges = newRanges.filter(
78
103
  (r) =>
79
104
  (checkIsExisting && !checkRange(r, spectrum, error)) || r.id === 'new',
80
105
  );
81
106
  }
82
- return ranges.map((range) => {
107
+ return newRanges.map((range) => {
83
108
  const rangeBoundary = getRange(range, shiftTarget, shiftX);
84
109
 
85
110
  const absolute = xyIntegration(
@@ -95,6 +120,7 @@ export function mapRanges(
95
120
  ...getSignalDelta(signal, shiftTarget, shiftX),
96
121
  };
97
122
  });
123
+
98
124
  return {
99
125
  ...range,
100
126
  id: range.id || v4(),
package/src/index.ts CHANGED
@@ -28,6 +28,7 @@ export * from './signals/signals2DToZ';
28
28
  export * from './signals/optimizeSignals';
29
29
  export * from './signals/signalsToFID';
30
30
  export * from './signal/signalJoinCouplings';
31
+ export * from './signal/signalMultiplicityPattern';
31
32
 
32
33
  export * from './utilities/resurrect';
33
34
  export * from './utilities/rangeFromSignal';
@@ -20,7 +20,7 @@ export interface RangeFromSignalOptions {
20
20
 
21
21
  export function rangeFromSignal(
22
22
  signal: NMRSignal1D,
23
- options: RangeFromSignalOptions,
23
+ options: RangeFromSignalOptions = {},
24
24
  ) {
25
25
  const { nucleus = '1h', frequency = 400 } = options;
26
26
  const { tolerance = getTolerance(nucleus) / frequency } = options;