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.
- package/lib/databases/carbonImpurities.js +9432 -8388
- package/lib/databases/carbonImpurities.js.map +1 -1
- package/lib/databases/protonImpurities.js +11846 -10639
- package/lib/databases/protonImpurities.js.map +1 -1
- package/lib/datum/Filters.d.ts +1 -1
- package/lib/datum/Filters.js.map +1 -1
- package/lib/datum/data1d/filter1d/apodization/apodization.js.map +1 -1
- package/lib/datum/data1d/filter1d/apodization/apodizationFilter.js.map +1 -1
- package/lib/datum/data1d/filter1d/baselineCorrection.d.ts +7 -10
- package/lib/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
- package/lib/datum/data1d/filter1d/digitalFilter.js.map +1 -1
- package/lib/datum/data1d/filter1d/fft.js.map +1 -1
- package/lib/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
- package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
- package/lib/datum/data1d/filter1d/zeroFilling.js.map +1 -1
- package/lib/datum/data1d/utils/mapRanges.d.ts +2 -1
- package/lib/datum/data1d/utils/mapRanges.js +24 -2
- package/lib/datum/data1d/utils/mapRanges.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utilities/rangeFromSignal.d.ts +1 -1
- package/lib/utilities/rangeFromSignal.js +1 -1
- package/lib/utilities/rangeFromSignal.js.map +1 -1
- package/lib-esm/databases/carbonImpurities.js +9432 -8388
- package/lib-esm/databases/carbonImpurities.js.map +1 -1
- package/lib-esm/databases/protonImpurities.js +11846 -10639
- package/lib-esm/databases/protonImpurities.js.map +1 -1
- package/lib-esm/datum/Filters.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/apodization/apodization.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/apodization/apodizationFilter.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/digitalFilter.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/fft.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/zeroFilling.js.map +1 -1
- package/lib-esm/datum/data1d/utils/mapRanges.js +24 -2
- package/lib-esm/datum/data1d/utils/mapRanges.js.map +1 -1
- package/lib-esm/index.js +1 -0
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/utilities/rangeFromSignal.js +1 -1
- package/lib-esm/utilities/rangeFromSignal.js.map +1 -1
- package/package.json +1 -1
- package/src/databases/carbonImpurities.ts +9433 -8389
- package/src/databases/protonImpurities.ts +11847 -10640
- package/src/datum/Filters.ts +1 -0
- package/src/datum/data1d/Entry1D.ts +1 -0
- package/src/datum/data1d/filter1d/apodization/apodization.ts +1 -0
- package/src/datum/data1d/filter1d/apodization/apodizationFilter.ts +2 -1
- package/src/datum/data1d/filter1d/baselineCorrection.ts +8 -2
- package/src/datum/data1d/filter1d/digitalFilter.ts +1 -0
- package/src/datum/data1d/filter1d/fft.ts +1 -1
- package/src/datum/data1d/filter1d/phaseCorrection.ts +1 -1
- package/src/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.ts +1 -1
- package/src/datum/data1d/filter1d/zeroFilling.ts +1 -0
- package/src/datum/data1d/utils/mapRanges.ts +29 -3
- package/src/index.ts +1 -0
- package/src/utilities/rangeFromSignal.ts +1 -1
package/src/datum/Filters.ts
CHANGED
|
@@ -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:
|
|
24
|
+
zones: BaselineCorrectionZone[];
|
|
19
25
|
algorithm: 'polynomial';
|
|
20
26
|
degree: number;
|
|
21
27
|
}
|
|
22
28
|
|
|
23
29
|
export interface AirplsOptions {
|
|
24
|
-
zones:
|
|
30
|
+
zones: BaselineCorrectionZone[];
|
|
25
31
|
algorithm: 'airpls';
|
|
26
32
|
maxIterations: number;
|
|
27
33
|
tolerance: number;
|
|
@@ -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
|
|
|
@@ -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
|
-
|
|
102
|
+
newRanges = newRanges.filter(
|
|
78
103
|
(r) =>
|
|
79
104
|
(checkIsExisting && !checkRange(r, spectrum, error)) || r.id === 'new',
|
|
80
105
|
);
|
|
81
106
|
}
|
|
82
|
-
return
|
|
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;
|