nmr-processing 3.4.1 → 6.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.
- package/lib/assignment/get13CAssignments.js.map +1 -1
- package/lib/assignment/get1HAssignments.d.ts +2 -2
- package/lib/{types → assignment}/nmrAssigment.d.ts +2 -2
- package/lib/{types → assignment}/nmrAssigment.js +0 -0
- package/lib/assignment/nmrAssigment.js.map +1 -0
- package/lib/assignment/utils/buildAssignments.js.map +1 -1
- package/lib/assignment/utils/createMapPossibleAssignments.d.ts +1 -1
- package/lib/assignment/utils/createMapPossibleAssignments.js.map +1 -1
- package/lib/constants/couplingValues.js.map +1 -1
- package/lib/databases/DatabaseNMREntry.d.ts +1 -1
- package/lib/index.d.ts +9 -10
- package/lib/index.js +1 -1
- package/lib/ml-matrix-convolution.d.ts +8 -0
- package/lib/ml-matrix-convolution.js +2 -0
- package/lib/ml-matrix-convolution.js.map +1 -0
- package/lib/ml-simple-clustering.d.ts +8 -0
- package/lib/ml-simple-clustering.js +2 -0
- package/lib/ml-simple-clustering.js.map +1 -0
- package/lib/peaks/NMRPeak1D.d.ts +4 -0
- package/lib/{types → peaks}/NMRPeak1D.js +0 -0
- package/lib/{types → peaks}/NMRPeak1D.js.map +1 -1
- package/lib/peaks/peaksFilterImpurities.d.ts +1 -1
- package/lib/peaks/peaksFilterImpurities.js +1 -1
- package/lib/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib/peaks/peaksToRanges.d.ts +2 -2
- package/lib/peaks/peaksToRanges.js +11 -17
- package/lib/peaks/peaksToRanges.js.map +1 -1
- package/lib/peaks/util/determineRealTop.d.ts +2 -2
- package/lib/peaks/util/determineRealTop.js +3 -2
- package/lib/peaks/util/determineRealTop.js.map +1 -1
- package/lib/peaks/util/jAnalyzer.d.ts +2 -2
- package/lib/peaks/util/jAnalyzer.js +12 -13
- package/lib/peaks/util/jAnalyzer.js.map +1 -1
- package/lib/peaks/util/joinRanges.d.ts +1 -1
- package/lib/peaks/util/peakOptimizer.d.ts +3 -3
- package/lib/peaks/util/peakOptimizer.js.map +1 -1
- package/lib/{types → prediction}/dataStructure.d.ts +0 -0
- package/lib/{types → prediction}/dataStructure.js +0 -0
- package/lib/prediction/dataStructure.js.map +1 -0
- package/lib/prediction/predictAll.d.ts +1 -1
- package/lib/prediction/predictAll.js +1 -1
- package/lib/prediction/predictAll.js.map +1 -1
- package/lib/prediction/predictCOSY.d.ts +1 -1
- package/lib/prediction/predictCOSY.js.map +1 -1
- package/lib/prediction/predictCarbon.d.ts +2 -2
- package/lib/prediction/predictCarbon.js.map +1 -1
- package/lib/prediction/predictHMBC.d.ts +1 -1
- package/lib/prediction/predictHMBC.js.map +1 -1
- package/lib/prediction/predictHSQC.d.ts +1 -1
- package/lib/prediction/predictHSQC.js.map +1 -1
- package/lib/prediction/predictProton.d.ts +1 -1
- package/lib/prediction/predictProton.js +1 -1
- package/lib/prediction/predictProton.js.map +1 -1
- package/lib/{types → prediction}/prediction1D.d.ts +2 -2
- package/lib/{types → prediction}/prediction1D.js +0 -0
- package/lib/prediction/prediction1D.js.map +1 -0
- package/lib/prediction/utils/fetchPrediction.d.ts +1 -1
- package/lib/prediction/utils/getFilteredIDiaIDs.d.ts +1 -1
- package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
- package/lib/prediction/utils/getNuclei.js +1 -1
- package/lib/prediction/utils/getNuclei.js.map +1 -1
- package/lib/prediction/utils/getPredictions.d.ts +2 -2
- package/lib/prediction/utils/predict2D.d.ts +2 -2
- package/lib/prediction/utils/queryByHOSE.d.ts +1 -1
- package/lib/prediction/utils/queryByHOSE.js.map +1 -1
- package/lib/ranges/rangesToACS.d.ts +1 -1
- package/lib/ranges/rangesToXY.d.ts +3 -3
- package/lib/ranges/rangesToXY.js.map +1 -1
- package/lib/signal/signalJoinCouplings.d.ts +2 -2
- package/lib/signal/signalJoinCouplings.js +3 -3
- package/lib/signal/signalJoinCouplings.js.map +1 -1
- package/lib/signal/signalMultiplicityPattern.d.ts +1 -1
- package/lib/{types → signals}/NMRSignal1D.d.ts +1 -1
- package/lib/{types → signals}/NMRSignal1D.js +0 -0
- package/lib/{types → signals}/NMRSignal1D.js.map +1 -1
- package/lib/signals/hackSignalsToXY.d.ts +1 -1
- package/lib/{types → signals}/jcoupling.d.ts +1 -1
- package/lib/{types → signals}/jcoupling.js +0 -0
- package/lib/{types → signals}/jcoupling.js.map +1 -1
- package/lib/signals/signals2DToZ.d.ts +1 -1
- package/lib/signals/signalsJoin.d.ts +4 -4
- package/lib/signals/signalsJoin.js +7 -7
- package/lib/signals/signalsJoin.js.map +1 -1
- package/lib/signals/signalsToRanges.d.ts +2 -2
- package/lib/signals/signalsToRanges.js.map +1 -1
- package/lib/signals/signalsToXY.d.ts +3 -3
- package/lib/signals/simulation/signalsToSpinSystem.d.ts +2 -2
- package/lib/signals/simulation/simulate1D.d.ts +5 -4
- package/lib/signals/simulation/simulate1D.js.map +1 -1
- package/lib/signals/simulation/splitSpinSystem.d.ts +1 -1
- package/lib/signals/simulation/splitSpinSystem.js.map +1 -1
- package/lib/{types → signals}/spinSystem.d.ts +0 -0
- package/lib/{types → signals}/spinSystem.js +0 -0
- package/lib/{types → signals}/spinSystem.js.map +1 -1
- package/lib/{types → utilities}/MakeMandatory.d.ts +0 -0
- package/lib/{types → utilities}/MakeMandatory.js +0 -0
- package/lib/utilities/MakeMandatory.js.map +1 -0
- package/lib/utilities/joinPatterns.js.map +1 -1
- package/lib/utilities/rangeFromSignal.d.ts +1 -1
- package/lib/utilities/resurrect.d.ts +1 -1
- package/lib/utilities/resurrectRange.d.ts +1 -1
- package/lib/{types → xy}/NMRRange.d.ts +1 -1
- package/lib/{types → xy}/NMRRange.js +0 -0
- package/lib/{types → xy}/NMRRange.js.map +1 -1
- package/lib/xy/xyAutoPeaksPicking.d.ts +4 -60
- package/lib/xy/xyAutoPeaksPicking.js +3 -3
- package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib/xy/xyAutoRangesPicking.d.ts +2 -2
- package/lib/xy/xyAutoRangesPicking.js.map +1 -1
- package/lib/{types → xyz}/NMRSignal2D.d.ts +6 -7
- package/lib/{types → xyz}/NMRSignal2D.js +0 -0
- package/lib/{types → xyz}/NMRSignal2D.js.map +1 -1
- package/lib/xyz/NMRZone.d.ts +8 -0
- package/lib/{types → xyz}/NMRZone.js +0 -0
- package/lib/{types → xyz}/NMRZone.js.map +1 -1
- package/lib/xyz/{xyzAutoPeaksPicking.d.ts → xyzAutoZonesPicking.d.ts} +3 -3
- package/lib/xyz/{xyzAutoPeaksPicking.js → xyzAutoZonesPicking.js} +38 -24
- package/lib/xyz/xyzAutoZonesPicking.js.map +1 -0
- package/lib/xyz/xyzJResAnalyzer.d.ts +1 -1
- package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
- package/lib-esm/assignment/get13CAssignments.js.map +1 -1
- package/lib-esm/{types → assignment}/nmrAssigment.js +0 -0
- package/lib-esm/assignment/nmrAssigment.js.map +1 -0
- package/lib-esm/assignment/utils/buildAssignments.js.map +1 -1
- package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +1 -1
- package/lib-esm/constants/couplingValues.js.map +1 -1
- package/lib-esm/index.js +1 -1
- package/lib-esm/ml-matrix-convolution.js +2 -0
- package/lib-esm/ml-matrix-convolution.js.map +1 -0
- package/lib-esm/ml-simple-clustering.js +2 -0
- package/lib-esm/ml-simple-clustering.js.map +1 -0
- package/lib-esm/{types → peaks}/NMRPeak1D.js +0 -0
- package/lib-esm/{types → peaks}/NMRPeak1D.js.map +1 -1
- package/lib-esm/peaks/peaksFilterImpurities.js +1 -1
- package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib-esm/peaks/peaksToRanges.js +11 -17
- package/lib-esm/peaks/peaksToRanges.js.map +1 -1
- package/lib-esm/peaks/util/determineRealTop.js +4 -3
- package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
- package/lib-esm/peaks/util/jAnalyzer.js +12 -13
- package/lib-esm/peaks/util/jAnalyzer.js.map +1 -1
- package/lib-esm/peaks/util/peakOptimizer.js.map +1 -1
- package/lib-esm/{types → prediction}/dataStructure.js +0 -0
- package/lib-esm/prediction/dataStructure.js.map +1 -0
- package/lib-esm/prediction/predictAll.js +1 -1
- package/lib-esm/prediction/predictAll.js.map +1 -1
- package/lib-esm/prediction/predictCOSY.js.map +1 -1
- package/lib-esm/prediction/predictCarbon.js.map +1 -1
- package/lib-esm/prediction/predictHMBC.js.map +1 -1
- package/lib-esm/prediction/predictHSQC.js.map +1 -1
- package/lib-esm/prediction/predictProton.js +1 -1
- package/lib-esm/prediction/predictProton.js.map +1 -1
- package/lib-esm/{types → prediction}/prediction1D.js +0 -0
- package/lib-esm/prediction/prediction1D.js.map +1 -0
- package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
- package/lib-esm/prediction/utils/getNuclei.js +1 -1
- package/lib-esm/prediction/utils/getNuclei.js.map +1 -1
- package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
- package/lib-esm/ranges/rangesToXY.js.map +1 -1
- package/lib-esm/signal/signalJoinCouplings.js +3 -3
- package/lib-esm/signal/signalJoinCouplings.js.map +1 -1
- package/lib-esm/{types → signals}/NMRSignal1D.js +0 -0
- package/lib-esm/{types → signals}/NMRSignal1D.js.map +1 -1
- package/lib-esm/{types → signals}/jcoupling.js +0 -0
- package/lib-esm/{types → signals}/jcoupling.js.map +1 -1
- package/lib-esm/signals/signalsJoin.js +7 -7
- package/lib-esm/signals/signalsJoin.js.map +1 -1
- package/lib-esm/signals/signalsToRanges.js.map +1 -1
- package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
- package/lib-esm/signals/simulation/splitSpinSystem.js.map +1 -1
- package/lib-esm/{types → signals}/spinSystem.js +0 -0
- package/lib-esm/{types → signals}/spinSystem.js.map +1 -1
- package/lib-esm/{types → utilities}/MakeMandatory.js +0 -0
- package/lib-esm/utilities/MakeMandatory.js.map +1 -0
- package/lib-esm/utilities/joinPatterns.js.map +1 -1
- package/lib-esm/{types → xy}/NMRRange.js +0 -0
- package/lib-esm/{types → xy}/NMRRange.js.map +1 -1
- package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
- package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib-esm/xy/xyAutoRangesPicking.js.map +1 -1
- package/lib-esm/{types → xyz}/NMRSignal2D.js +0 -0
- package/lib-esm/{types → xyz}/NMRSignal2D.js.map +1 -1
- package/lib-esm/{types → xyz}/NMRZone.js +0 -0
- package/lib-esm/{types → xyz}/NMRZone.js.map +1 -1
- package/lib-esm/xyz/{xyzAutoPeaksPicking.js → xyzAutoZonesPicking.js} +36 -22
- package/lib-esm/xyz/xyzAutoZonesPicking.js.map +1 -0
- package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
- package/package.json +20 -17
- package/src/assignment/get13CAssignments.ts +5 -2
- package/src/assignment/get1HAssignments.ts +2 -2
- package/src/{types → assignment}/nmrAssigment.ts +2 -2
- package/src/assignment/utils/buildAssignments.ts +1 -4
- package/src/assignment/utils/createMapPossibleAssignments.ts +5 -2
- package/src/constants/couplingValues.ts +1 -1
- package/src/databases/DatabaseNMREntry.ts +1 -1
- package/src/index.ts +9 -10
- package/src/{types/ml-levenberg-marquardt/index.d.ts → ml-levenberg-marquardt.d.ts} +0 -0
- package/src/{types/ml-matrix-convolution/index.d.ts → ml-matrix-convolution.ts} +0 -0
- package/src/{types/ml-matrix-peaks-finder/index.d.ts → ml-matrix-peaks-finder.d.ts} +2 -2
- package/src/{types/ml-simple-clustering/index.d.ts → ml-simple-clustering.ts} +1 -1
- package/src/{types/ml-sparse-matrix/index.d.ts → ml-sparse-matrix.d.ts} +0 -0
- package/src/{types/ml-spectra-processing/index.d.ts → ml-spectra-processing.d.ts} +8 -2
- package/src/{types/ml-tree-set/index.d.ts → ml-tree-set.d.ts} +0 -0
- package/src/nmr-parser.d.ts +17 -0
- package/src/{types/openchemlib-utils/index..d.ts → openchemlib.d.ts} +17 -6
- package/src/peaks/NMRPeak1D.ts +5 -0
- package/src/peaks/peaksFilterImpurities.ts +3 -2
- package/src/peaks/peaksToRanges.ts +15 -21
- package/src/peaks/util/determineRealTop.ts +6 -9
- package/src/peaks/util/jAnalyzer.ts +16 -18
- package/src/peaks/util/joinRanges.ts +1 -1
- package/src/peaks/util/peakOptimizer.ts +5 -4
- package/src/{types → prediction}/dataStructure.ts +1 -1
- package/src/prediction/predictAll.ts +6 -7
- package/src/prediction/predictCOSY.ts +1 -2
- package/src/prediction/predictCarbon.ts +4 -4
- package/src/prediction/predictHMBC.ts +1 -2
- package/src/prediction/predictHSQC.ts +5 -3
- package/src/prediction/predictProton.ts +4 -3
- package/src/{types → prediction}/prediction1D.ts +2 -2
- package/src/prediction/utils/fetchPrediction.ts +1 -1
- package/src/prediction/utils/getFilteredIDiaIDs.ts +1 -2
- package/src/prediction/utils/getNuclei.ts +3 -3
- package/src/prediction/utils/getPredictions.ts +3 -3
- package/src/prediction/utils/predict2D.ts +4 -4
- package/src/prediction/utils/queryByHOSE.ts +2 -2
- package/src/ranges/rangesToACS.ts +2 -2
- package/src/ranges/rangesToXY.ts +5 -5
- package/src/signal/signalJoinCouplings.ts +6 -6
- package/src/signal/signalMultiplicityPattern.ts +1 -1
- package/src/{types → signals}/NMRSignal1D.ts +2 -1
- package/src/signals/hackSignalsToXY.ts +2 -2
- package/src/{types → signals}/jcoupling.ts +1 -1
- package/src/signals/signals2DToZ.ts +1 -1
- package/src/signals/signalsJoin.ts +11 -10
- package/src/signals/signalsToRanges.ts +4 -3
- package/src/signals/signalsToXY.ts +6 -6
- package/src/signals/simulation/signalsToSpinSystem.ts +4 -4
- package/src/signals/simulation/simulate1D.ts +5 -4
- package/src/signals/simulation/splitSpinSystem.ts +11 -3
- package/src/{types → signals}/spinSystem.ts +0 -0
- package/src/{types → utilities}/MakeMandatory.ts +0 -0
- package/src/utilities/joinPatterns.ts +0 -1
- package/src/utilities/rangeFromSignal.ts +1 -1
- package/src/utilities/resurrect.ts +1 -1
- package/src/utilities/resurrectRange.ts +2 -2
- package/src/{types → xy}/NMRRange.ts +1 -1
- package/src/xy/xyAutoPeaksPicking.ts +19 -58
- package/src/xy/xyAutoRangesPicking.ts +3 -2
- package/src/{types → xyz}/NMRSignal2D.ts +6 -8
- package/src/xyz/NMRZone.ts +10 -0
- package/src/xyz/{xyzAutoPeaksPicking.ts → xyzAutoZonesPicking.ts} +44 -27
- package/src/xyz/xyzJResAnalyzer.ts +7 -6
- package/CHANGELOG.md +0 -550
- package/lib/types/MPFPeak.d.ts +0 -9
- package/lib/types/MPFPeak.js +0 -3
- package/lib/types/MPFPeak.js.map +0 -1
- package/lib/types/MakeMandatory.js.map +0 -1
- package/lib/types/NMRPeak1D.d.ts +0 -11
- package/lib/types/NMRZone.d.ts +0 -12
- package/lib/types/XYNumberArray.d.ts +0 -4
- package/lib/types/XYNumberArray.js +0 -3
- package/lib/types/XYNumberArray.js.map +0 -1
- package/lib/types/dataStructure.js.map +0 -1
- package/lib/types/nmrAssigment.js.map +0 -1
- package/lib/types/prediction1D.js.map +0 -1
- package/lib/types/prediction2D.d.ts +0 -0
- package/lib/types/prediction2D.js +0 -2
- package/lib/types/prediction2D.js.map +0 -1
- package/lib/xyz/xyzAutoPeaksPicking.js.map +0 -1
- package/lib-esm/types/MPFPeak.js +0 -2
- package/lib-esm/types/MPFPeak.js.map +0 -1
- package/lib-esm/types/MakeMandatory.js.map +0 -1
- package/lib-esm/types/XYNumberArray.js +0 -2
- package/lib-esm/types/XYNumberArray.js.map +0 -1
- package/lib-esm/types/dataStructure.js.map +0 -1
- package/lib-esm/types/nmrAssigment.js.map +0 -1
- package/lib-esm/types/prediction1D.js.map +0 -1
- package/lib-esm/types/prediction2D.js +0 -2
- package/lib-esm/types/prediction2D.js.map +0 -1
- package/lib-esm/xyz/xyzAutoPeaksPicking.js.map +0 -1
- package/src/types/MPFPeak.ts +0 -9
- package/src/types/NMRPeak1D.ts +0 -11
- package/src/types/NMRZone.ts +0 -10
- package/src/types/XYNumberArray.ts +0 -4
- package/src/types/ml-gsd/index.d.ts +0 -164
- package/src/types/prediction2D.ts +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { Matrix } from 'ml-matrix';
|
|
2
2
|
import * as convolution from 'ml-matrix-convolution';
|
|
3
3
|
import * as matrixPeakFinders from 'ml-matrix-peaks-finder';
|
|
4
|
+
import type { Peak2D } from 'ml-matrix-peaks-finder';
|
|
4
5
|
import simpleClustering from 'ml-simple-clustering';
|
|
5
6
|
|
|
7
|
+
import { NMRZone } from '..';
|
|
6
8
|
import { determineRealTop } from '../peaks/util/determineRealTop';
|
|
7
9
|
import { getKernel } from '../peaks/util/getKernel';
|
|
8
10
|
import type { GetKernelOptions } from '../peaks/util/getKernel';
|
|
9
11
|
import * as PeakOptimizer from '../peaks/util/peakOptimizer';
|
|
10
|
-
|
|
11
|
-
import type { NMRSignal2D } from '
|
|
12
|
+
|
|
13
|
+
import type { NMRSignal2D } from './NMRSignal2D';
|
|
12
14
|
|
|
13
15
|
const smallFilter = [
|
|
14
16
|
[0, 0, 1, 2, 2, 2, 1, 0, 0],
|
|
@@ -30,7 +32,7 @@ export interface Data2D {
|
|
|
30
32
|
maxY: number;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
export interface
|
|
35
|
+
export interface XYZAutoZonesPickingOptions {
|
|
34
36
|
/**
|
|
35
37
|
* max number of points in any dimension to pad the input data, this is needed to avoid lost peaks when the input matrix is too small.
|
|
36
38
|
* @default 14
|
|
@@ -86,9 +88,9 @@ export interface XYZAutoPeaksPickingOptions {
|
|
|
86
88
|
kernel?: GetKernelOptions;
|
|
87
89
|
}
|
|
88
90
|
|
|
89
|
-
export function
|
|
91
|
+
export function xyzAutoZonesPicking(
|
|
90
92
|
spectraData: Data2D,
|
|
91
|
-
options:
|
|
93
|
+
options: XYZAutoZonesPickingOptions,
|
|
92
94
|
) {
|
|
93
95
|
let {
|
|
94
96
|
sizeToPad = 14,
|
|
@@ -178,7 +180,41 @@ export function xyzAutoPeaksPicking(
|
|
|
178
180
|
signals = PeakOptimizer.enhanceSymmetry(signals);
|
|
179
181
|
}
|
|
180
182
|
|
|
181
|
-
return signals;
|
|
183
|
+
return formatZones(signals);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function formatZones(signals: NMRSignal2D[]) {
|
|
187
|
+
let zones: NMRZone[] = [];
|
|
188
|
+
for (const signal of signals) {
|
|
189
|
+
let minMax1 = [Number.MAX_VALUE, 0];
|
|
190
|
+
let minMax2 = [Number.MAX_VALUE, 0];
|
|
191
|
+
for (const peak of signal.peaks || []) {
|
|
192
|
+
if (peak.minX < minMax1[0]) {
|
|
193
|
+
minMax1[0] = peak.minX;
|
|
194
|
+
}
|
|
195
|
+
if (peak.maxX > minMax1[1]) {
|
|
196
|
+
minMax1[1] = peak.maxX;
|
|
197
|
+
}
|
|
198
|
+
if (peak.minY < minMax2[0]) {
|
|
199
|
+
minMax2[0] = peak.minY;
|
|
200
|
+
}
|
|
201
|
+
if (peak.maxY > minMax2[1]) {
|
|
202
|
+
minMax2[1] = peak.maxY;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
zones.push({
|
|
206
|
+
x: {
|
|
207
|
+
from: minMax1[0],
|
|
208
|
+
to: minMax1[1],
|
|
209
|
+
},
|
|
210
|
+
y: {
|
|
211
|
+
from: minMax2[0],
|
|
212
|
+
to: minMax2[1],
|
|
213
|
+
},
|
|
214
|
+
signals: [signal],
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return zones;
|
|
182
218
|
}
|
|
183
219
|
|
|
184
220
|
/**
|
|
@@ -201,7 +237,7 @@ export interface CreateSignals2DOptions {
|
|
|
201
237
|
minX: number;
|
|
202
238
|
maxX: number;
|
|
203
239
|
}
|
|
204
|
-
const createSignals2D = (peaks:
|
|
240
|
+
const createSignals2D = (peaks: Peak2D[], options: CreateSignals2DOptions) => {
|
|
205
241
|
let {
|
|
206
242
|
nCols,
|
|
207
243
|
nRows,
|
|
@@ -246,9 +282,6 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
|
|
|
246
282
|
peaks[i].maxY = minY + dy * peaks[i].maxY;
|
|
247
283
|
|
|
248
284
|
// Still having problems to correctly detect peaks on those areas. So I'm removing everything there.
|
|
249
|
-
if (peaks[i].y < -1 || peaks[i].y >= 210) {
|
|
250
|
-
peaks.splice(i, 1);
|
|
251
|
-
}
|
|
252
285
|
}
|
|
253
286
|
// The connectivity matrix is an square and symmetric matrix, so we'll only store the upper diagonal in an
|
|
254
287
|
// array like form
|
|
@@ -283,9 +316,7 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
|
|
|
283
316
|
resolution: dy,
|
|
284
317
|
},
|
|
285
318
|
};
|
|
286
|
-
let peaks2D = [];
|
|
287
|
-
let minMax1 = [Number.MAX_VALUE, 0];
|
|
288
|
-
let minMax2 = [Number.MAX_VALUE, 0];
|
|
319
|
+
let peaks2D: Peak2D[] = [];
|
|
289
320
|
let sumZ = 0;
|
|
290
321
|
|
|
291
322
|
for (let jPeak = 0; jPeak < cluster.length; jPeak++) {
|
|
@@ -294,23 +325,9 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
|
|
|
294
325
|
signal.x.delta += peaks[jPeak].x * peaks[jPeak].z;
|
|
295
326
|
signal.y.delta += peaks[jPeak].y * peaks[jPeak].z;
|
|
296
327
|
sumZ += peaks[jPeak].z;
|
|
297
|
-
if (peaks[jPeak].minX < minMax1[0]) {
|
|
298
|
-
minMax1[0] = peaks[jPeak].minX;
|
|
299
|
-
}
|
|
300
|
-
if (peaks[jPeak].maxX > minMax1[1]) {
|
|
301
|
-
minMax1[1] = peaks[jPeak].maxX;
|
|
302
|
-
}
|
|
303
|
-
if (peaks[jPeak].minY < minMax2[0]) {
|
|
304
|
-
minMax2[0] = peaks[jPeak].minY;
|
|
305
|
-
}
|
|
306
|
-
if (peaks[jPeak].maxY > minMax2[1]) {
|
|
307
|
-
minMax2[1] = peaks[jPeak].maxY;
|
|
308
|
-
}
|
|
309
328
|
}
|
|
310
329
|
}
|
|
311
330
|
|
|
312
|
-
signal.x.fromTo = { from: minMax1[0], to: minMax1[1] };
|
|
313
|
-
signal.y.fromTo = { from: minMax2[0], to: minMax2[1] };
|
|
314
331
|
signal.x.delta /= sumZ;
|
|
315
332
|
signal.y.delta /= sumZ;
|
|
316
333
|
signal.peaks = peaks2D;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { Peak2D } from 'ml-matrix-peaks-finder';
|
|
1
2
|
import simpleClustering from 'ml-simple-clustering';
|
|
2
3
|
|
|
3
4
|
import type { JAxisKeys } from '../peaks/util/jAnalyzer';
|
|
4
5
|
import jAnalyzer from '../peaks/util/jAnalyzer';
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
import type { NMRSignal2D } from '
|
|
6
|
+
import type { MakeMandatory } from '../utilities/MakeMandatory';
|
|
7
|
+
|
|
8
|
+
import type { NMRSignal2D } from './NMRSignal2D';
|
|
8
9
|
|
|
9
10
|
interface CompilePatternOptions {
|
|
10
11
|
observedFrequencies?: number[] | Float64Array;
|
|
@@ -96,7 +97,7 @@ function compilePattern(
|
|
|
96
97
|
for (const peak of peaks) {
|
|
97
98
|
if (!peak.width) peak.width = 0.02;
|
|
98
99
|
}
|
|
99
|
-
peaks.sort((a:
|
|
100
|
+
peaks.sort((a: Peak2D, b: Peak2D) => a.y - b.y);
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
for (let i = 0; i < signals.length; i++) {
|
|
@@ -137,7 +138,7 @@ function compilePattern(
|
|
|
137
138
|
return signals;
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
interface Peak2DHack extends
|
|
141
|
+
interface Peak2DHack extends Peak2D {
|
|
141
142
|
width?: number;
|
|
142
143
|
}
|
|
143
144
|
type Signal2DHack = Omit<NMRSignal2D, 'peaks'> & {
|
|
@@ -149,7 +150,7 @@ type Signal2DHack = Omit<NMRSignal2D, 'peaks'> & {
|
|
|
149
150
|
observe: number;
|
|
150
151
|
};
|
|
151
152
|
|
|
152
|
-
function createSignals2D(peaksInput:
|
|
153
|
+
function createSignals2D(peaksInput: Peak2D[], options: any) {
|
|
153
154
|
let { observedFrequencies, tolerances, nuclei, dx, dy } = options;
|
|
154
155
|
|
|
155
156
|
const peaks: Peak2DHack[] = JSON.parse(JSON.stringify(peaksInput));
|