nmr-processing 8.7.2 → 9.0.2
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/peaks/peakToXY.d.ts +3 -3
- package/lib/peaks/peakToXY.js +1 -1
- package/lib/peaks/peakToXY.js.map +1 -1
- package/lib/peaks/peaksToRanges.d.ts +1 -1
- package/lib/peaks/peaksToRanges.js +14 -16
- package/lib/peaks/peaksToRanges.js.map +1 -1
- package/lib/peaks/peaksToXY.d.ts +21 -2
- package/lib/peaks/peaksToXY.js +22 -5
- package/lib/peaks/peaksToXY.js.map +1 -1
- package/lib/peaks/util/convertWidth.d.ts +14 -0
- package/lib/peaks/util/convertWidth.js +34 -0
- package/lib/peaks/util/convertWidth.js.map +1 -0
- package/lib/peaks/util/convertWidthToHz.d.ts +4 -0
- package/lib/peaks/util/convertWidthToHz.js +9 -0
- package/lib/peaks/util/convertWidthToHz.js.map +1 -0
- package/lib/peaks/util/convertWidthToPPM.d.ts +3 -0
- package/lib/peaks/util/convertWidthToPPM.js +9 -0
- package/lib/peaks/util/convertWidthToPPM.js.map +1 -0
- package/lib/{peaks/util → ranges/utils}/joinRanges.d.ts +0 -0
- package/lib/{peaks/util → ranges/utils}/joinRanges.js +0 -0
- package/lib/ranges/utils/joinRanges.js.map +1 -0
- package/lib/{peaks/util → signals/utils}/jAnalyzer.d.ts +1 -1
- package/lib/{peaks/util → signals/utils}/jAnalyzer.js +2 -1
- package/lib/signals/utils/jAnalyzer.js.map +1 -0
- package/lib/xy/xyAutoPeaksPicking.d.ts +9 -1
- package/lib/xy/xyAutoPeaksPicking.js +9 -8
- package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib/xy/xyAutoRangesPicking.d.ts +2 -2
- package/lib/xy/xyAutoRangesPicking.js +1 -1
- package/lib/xy/xyAutoRangesPicking.js.map +1 -1
- package/lib/xy/xyPeaksOptimization.d.ts +7 -1
- package/lib/xy/xyPeaksOptimization.js +9 -1
- package/lib/xy/xyPeaksOptimization.js.map +1 -1
- package/lib/xyz/xyzJResAnalyzer.d.ts +1 -1
- package/lib/xyz/xyzJResAnalyzer.js +3 -2
- package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
- package/lib-esm/peaks/peakToXY.js +1 -1
- package/lib-esm/peaks/peakToXY.js.map +1 -1
- package/lib-esm/peaks/peaksToRanges.js +14 -16
- package/lib-esm/peaks/peaksToRanges.js.map +1 -1
- package/lib-esm/peaks/peaksToXY.js +22 -5
- package/lib-esm/peaks/peaksToXY.js.map +1 -1
- package/lib-esm/peaks/util/convertWidth.js +30 -0
- package/lib-esm/peaks/util/convertWidth.js.map +1 -0
- package/lib-esm/peaks/util/convertWidthToHz.js +5 -0
- package/lib-esm/peaks/util/convertWidthToHz.js.map +1 -0
- package/lib-esm/peaks/util/convertWidthToPPM.js +5 -0
- package/lib-esm/peaks/util/convertWidthToPPM.js.map +1 -0
- package/lib-esm/{peaks/util → ranges/utils}/joinRanges.js +0 -0
- package/lib-esm/ranges/utils/joinRanges.js.map +1 -0
- package/lib-esm/{peaks/util → signals/utils}/jAnalyzer.js +2 -1
- package/lib-esm/signals/utils/jAnalyzer.js.map +1 -0
- package/lib-esm/xy/xyAutoPeaksPicking.js +9 -8
- package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib-esm/xy/xyAutoRangesPicking.js +1 -1
- package/lib-esm/xy/xyAutoRangesPicking.js.map +1 -1
- package/lib-esm/xy/xyPeaksOptimization.js +9 -1
- package/lib-esm/xy/xyPeaksOptimization.js.map +1 -1
- package/lib-esm/xyz/xyzJResAnalyzer.js +3 -2
- package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
- package/package.json +2 -2
- package/src/peaks/peakToXY.ts +3 -5
- package/src/peaks/peaksToRanges.ts +15 -19
- package/src/peaks/peaksToXY.ts +53 -6
- package/src/peaks/util/convertWidth.ts +47 -0
- package/src/peaks/util/convertWidthToHz.ts +9 -0
- package/src/peaks/util/convertWidthToPPM.ts +8 -0
- package/src/ranges/markSolventSignal.ts +1 -1
- package/src/{peaks/util → ranges/utils}/joinRanges.ts +0 -0
- package/src/{peaks/util → signals/utils}/jAnalyzer.ts +3 -2
- package/src/xy/xyAutoPeaksPicking.ts +23 -10
- package/src/xy/xyAutoRangesPicking.ts +2 -2
- package/src/xy/xyPeaksOptimization.ts +17 -2
- package/src/xyz/xyzJResAnalyzer.ts +4 -3
- package/lib/peaks/util/jAnalyzer.js.map +0 -1
- package/lib/peaks/util/joinRanges.js.map +0 -1
- package/lib-esm/peaks/util/jAnalyzer.js.map +0 -1
- package/lib-esm/peaks/util/joinRanges.js.map +0 -1
package/lib/peaks/peakToXY.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export declare function peakToXY(peak:
|
|
1
|
+
import { NMRPeak1D } from './NMRPeak1D';
|
|
2
|
+
import { PeaksToXYOptions } from './peaksToXY';
|
|
3
|
+
export declare function peakToXY(peak: NMRPeak1D, options: PeaksToXYOptions): import("cheminfo-types").DataXY<import("cheminfo-types").DoubleArray>;
|
package/lib/peaks/peakToXY.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.peakToXY = void 0;
|
|
4
4
|
const peaksToXY_1 = require("./peaksToXY");
|
|
5
|
-
function peakToXY(peak, options
|
|
5
|
+
function peakToXY(peak, options) {
|
|
6
6
|
return (0, peaksToXY_1.peaksToXY)([peak], options);
|
|
7
7
|
}
|
|
8
8
|
exports.peakToXY = peakToXY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peakToXY.js","sourceRoot":"","sources":["../../src/peaks/peakToXY.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"peakToXY.js","sourceRoot":"","sources":["../../src/peaks/peakToXY.ts"],"names":[],"mappings":";;;AACA,2CAA0D;AAE1D,SAAgB,QAAQ,CAAC,IAAe,EAAE,OAAyB;IACjE,OAAO,IAAA,qBAAS,EAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAFD,4BAEC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DataXY } from 'cheminfo-types';
|
|
2
|
+
import type { SignalIntern } from '../signals/utils/jAnalyzer';
|
|
2
3
|
import type { NMRRange } from '../xy/NMRRange';
|
|
3
4
|
import type { NMRPeak1D } from './NMRPeak1D';
|
|
4
|
-
import type { SignalIntern } from './util/jAnalyzer';
|
|
5
5
|
export interface OptionsPeaksToRanges {
|
|
6
6
|
/**
|
|
7
7
|
* Number of hydrogens or some number to normalize the integration data. If it's zero return the absolute integration value
|
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.detectSignals = exports.peaksToRanges = void 0;
|
|
7
7
|
const ml_spectra_processing_1 = require("ml-spectra-processing");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const joinRanges_1 = require("../ranges/utils/joinRanges");
|
|
9
|
+
const jAnalyzer_1 = __importDefault(require("../signals/utils/jAnalyzer"));
|
|
10
10
|
function checkSignalAfterCompilePattern(signal) {
|
|
11
11
|
// if (!signal.symRank)
|
|
12
12
|
// throw new Error('Internal error, symRank was not calculated');
|
|
@@ -23,13 +23,13 @@ const assignSignal = (peak, frequency, nucleus) => {
|
|
|
23
23
|
delta: NaN,
|
|
24
24
|
nbPeaks: 1,
|
|
25
25
|
kind: 'signal',
|
|
26
|
-
startX: peak.x - peak.width,
|
|
27
|
-
stopX: peak.x + peak.width,
|
|
26
|
+
startX: peak.x - peak.width / frequency,
|
|
27
|
+
stopX: peak.x + peak.width / frequency,
|
|
28
28
|
observe: frequency,
|
|
29
29
|
nucleus,
|
|
30
30
|
integralData: {
|
|
31
|
-
from: peak.x - peak.width * 3,
|
|
32
|
-
to: peak.x + peak.width * 3,
|
|
31
|
+
from: peak.x - (peak.width * 3) / frequency,
|
|
32
|
+
to: peak.x + (peak.width * 3) / frequency,
|
|
33
33
|
value: 0,
|
|
34
34
|
},
|
|
35
35
|
peaks: [
|
|
@@ -81,7 +81,7 @@ function peaksToRanges(data, peakList, options = {}) {
|
|
|
81
81
|
sum = 0;
|
|
82
82
|
let peaksO = [];
|
|
83
83
|
for (let j = signal.maskPattern.length - 1; j >= 0; j--) {
|
|
84
|
-
sum += computeArea(signal.peaks[j]);
|
|
84
|
+
sum += computeArea(signal.peaks[j], frequency);
|
|
85
85
|
if (!signal.maskPattern[j]) {
|
|
86
86
|
let peakR = signal.peaks.splice(j, 1)[0];
|
|
87
87
|
peaksO.push({
|
|
@@ -93,7 +93,7 @@ function peaksToRanges(data, peakList, options = {}) {
|
|
|
93
93
|
signal.mask2.splice(j, 1);
|
|
94
94
|
signal.maskPattern.splice(j, 1);
|
|
95
95
|
signal.nbPeaks--;
|
|
96
|
-
nHi += computeArea(peakR);
|
|
96
|
+
nHi += computeArea(peakR, frequency);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
if (peaksO.length > 0) {
|
|
@@ -199,7 +199,7 @@ function detectSignals(data, peakList, options = {}) {
|
|
|
199
199
|
signals.push(signal1D);
|
|
200
200
|
}
|
|
201
201
|
else {
|
|
202
|
-
let tmp = peak.x + peak.width;
|
|
202
|
+
let tmp = peak.x + peak.width / frequency;
|
|
203
203
|
signal1D.stopX = Math.max(signal1D.stopX, tmp);
|
|
204
204
|
signal1D.startX = Math.min(signal1D.startX, tmp);
|
|
205
205
|
signal1D.nbPeaks++;
|
|
@@ -208,8 +208,8 @@ function detectSignals(data, peakList, options = {}) {
|
|
|
208
208
|
intensity: peak.y,
|
|
209
209
|
width: peak.width,
|
|
210
210
|
});
|
|
211
|
-
signal1D.integralData.from = Math.min(signal1D.integralData.from, peak.x - peak.width * 3);
|
|
212
|
-
signal1D.integralData.to = Math.max(signal1D.integralData.to, peak.x + peak.width * 3);
|
|
211
|
+
signal1D.integralData.from = Math.min(signal1D.integralData.from, peak.x - (peak.width * 3) / frequency);
|
|
212
|
+
signal1D.integralData.to = Math.max(signal1D.integralData.to, peak.x + (peak.width * 3) / frequency);
|
|
213
213
|
if (peak.kind)
|
|
214
214
|
signal1D.kind = peak.kind;
|
|
215
215
|
}
|
|
@@ -221,7 +221,7 @@ function detectSignals(data, peakList, options = {}) {
|
|
|
221
221
|
let chemicalShift = 0;
|
|
222
222
|
let integralPeaks = 0;
|
|
223
223
|
for (const peak of peaks) {
|
|
224
|
-
let area = computeArea(peak);
|
|
224
|
+
let area = computeArea(peak, frequency);
|
|
225
225
|
chemicalShift += peak.x * area;
|
|
226
226
|
integralPeaks += area;
|
|
227
227
|
}
|
|
@@ -249,11 +249,9 @@ function detectSignals(data, peakList, options = {}) {
|
|
|
249
249
|
exports.detectSignals = detectSignals;
|
|
250
250
|
/**
|
|
251
251
|
* Return the area of a Lorentzian function
|
|
252
|
-
* @param {object} peak - object with peak information
|
|
253
|
-
* @return {Number}
|
|
254
252
|
* @private
|
|
255
253
|
*/
|
|
256
|
-
function computeArea(peak) {
|
|
257
|
-
return Math.abs(peak.intensity * peak.width * 1.57); // todo add an option with this value: 1.772453851
|
|
254
|
+
function computeArea(peak, frequency) {
|
|
255
|
+
return Math.abs(((peak.intensity * peak.width) / frequency) * 1.57); // todo add an option with this value: 1.772453851
|
|
258
256
|
}
|
|
259
257
|
//# sourceMappingURL=peaksToRanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peaksToRanges.js","sourceRoot":"","sources":["../../src/peaks/peaksToRanges.ts"],"names":[],"mappings":";;;;;;AACA,iEAAsD;
|
|
1
|
+
{"version":3,"file":"peaksToRanges.js","sourceRoot":"","sources":["../../src/peaks/peaksToRanges.ts"],"names":[],"mappings":"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"}
|
package/lib/peaks/peaksToXY.d.ts
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
-
import { PeakXYWidth } from 'cheminfo-types';
|
|
2
1
|
import { OptionsSG1D } from 'spectrum-generator';
|
|
3
|
-
|
|
2
|
+
import { NMRPeak1D } from './NMRPeak1D';
|
|
3
|
+
/**
|
|
4
|
+
* Convert an array of peaks assuming that width/fwhm is in Hz
|
|
5
|
+
*/
|
|
6
|
+
export interface PeaksToXYOptions extends OptionsSG1D {
|
|
7
|
+
/**
|
|
8
|
+
* First x value (inclusive).
|
|
9
|
+
* @default `firstPeak.x + firstPeak.width * 3`
|
|
10
|
+
*/
|
|
11
|
+
from?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Last x value (inclusive).
|
|
14
|
+
* @default `lastPeak.x + lastPeak.width * 3`
|
|
15
|
+
*/
|
|
16
|
+
to?: number;
|
|
17
|
+
/**
|
|
18
|
+
* frequency of the spectrum
|
|
19
|
+
*/
|
|
20
|
+
frequency: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function peaksToXY(peaks: NMRPeak1D[], options: PeaksToXYOptions): import("cheminfo-types").DataXY<import("cheminfo-types").DoubleArray>;
|
package/lib/peaks/peaksToXY.js
CHANGED
|
@@ -2,16 +2,33 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.peaksToXY = void 0;
|
|
4
4
|
const spectrum_generator_1 = require("spectrum-generator");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const convertWidthToPPM_1 = require("./util/convertWidthToPPM");
|
|
6
|
+
function peaksToXY(peaks, options) {
|
|
7
|
+
const { frequency, nbPoints = 1024, shape } = options;
|
|
8
|
+
const newPeaks = (0, convertWidthToPPM_1.convertWidthToPPM)(peaks, { frequency });
|
|
9
|
+
return (0, spectrum_generator_1.generateSpectrum)(newPeaks, {
|
|
8
10
|
generator: {
|
|
9
|
-
|
|
10
|
-
to,
|
|
11
|
+
...getFromTo(newPeaks, options),
|
|
11
12
|
nbPoints,
|
|
12
13
|
shape,
|
|
13
14
|
},
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
17
|
exports.peaksToXY = peaksToXY;
|
|
18
|
+
function getFromTo(newPeaks, options) {
|
|
19
|
+
if ('to' in options && 'from' in options) {
|
|
20
|
+
return {
|
|
21
|
+
from: options.from,
|
|
22
|
+
to: options.to,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
newPeaks.sort((a, b) => a.x - b.x);
|
|
26
|
+
const firstPeak = newPeaks[0];
|
|
27
|
+
const lastPeak = newPeaks[newPeaks.length - 1];
|
|
28
|
+
const { from = firstPeak.x - firstPeak.width * 2, to = lastPeak.x + lastPeak.width * 2, } = options;
|
|
29
|
+
return {
|
|
30
|
+
from,
|
|
31
|
+
to,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
17
34
|
//# sourceMappingURL=peaksToXY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peaksToXY.js","sourceRoot":"","sources":["../../src/peaks/peaksToXY.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"peaksToXY.js","sourceRoot":"","sources":["../../src/peaks/peaksToXY.ts"],"names":[],"mappings":";;;AAAA,2DAAmE;AAGnE,gEAA6D;AAuB7D,SAAgB,SAAS,CAAC,KAAkB,EAAE,OAAyB;IACrE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAEzD,OAAO,IAAA,qCAAgB,EAAC,QAAQ,EAAE;QAChC,SAAS,EAAE;YACT,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC/B,QAAQ;YACR,KAAK;SACN;KACF,CAAC,CAAC;AACL,CAAC;AAXD,8BAWC;AAED,SAAS,SAAS,CAAC,QAAqB,EAAE,OAAyB;IACjE,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE;QACxC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAC;KACH;IAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/C,MAAM,EACJ,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,GAAG,CAAC,EACxC,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GACrC,GAAG,OAAO,CAAC;IAEZ,OAAO;QACL,IAAI;QACJ,EAAE;KACH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MakeMandatory } from '../../utilities/MakeMandatory';
|
|
2
|
+
import { NMRPeak1D } from '../NMRPeak1D';
|
|
3
|
+
export declare type NMRPeak1DWithShape = MakeMandatory<NMRPeak1D, 'shape'>;
|
|
4
|
+
export interface ConvertWidthOptions {
|
|
5
|
+
convertTo: string & {
|
|
6
|
+
_kind?: 'hz' | 'ppm';
|
|
7
|
+
};
|
|
8
|
+
frequency: number;
|
|
9
|
+
output?: NMRPeak1D[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* convert width and fwhm to ppm
|
|
13
|
+
*/
|
|
14
|
+
export declare function convertWidth(peaks: NMRPeak1D[], options: ConvertWidthOptions): any;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertWidth = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* convert width and fwhm to ppm
|
|
6
|
+
*/
|
|
7
|
+
function convertWidth(peaks, options) {
|
|
8
|
+
const { frequency, convertTo, output = JSON.parse(JSON.stringify(peaks)), } = options;
|
|
9
|
+
const convert = getConverter(convertTo, frequency);
|
|
10
|
+
for (const peak of output) {
|
|
11
|
+
peak.width = convert(peak.width);
|
|
12
|
+
if (hasShape(peak)) {
|
|
13
|
+
if (peak.shape.fwhm) {
|
|
14
|
+
peak.shape.fwhm = convert(peak.shape.fwhm);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return output;
|
|
19
|
+
}
|
|
20
|
+
exports.convertWidth = convertWidth;
|
|
21
|
+
function hasShape(peak) {
|
|
22
|
+
return 'shape' in peak;
|
|
23
|
+
}
|
|
24
|
+
function getConverter(convertTo, frequency) {
|
|
25
|
+
switch (convertTo) {
|
|
26
|
+
case 'ppm':
|
|
27
|
+
return (x) => x / frequency;
|
|
28
|
+
case 'hz':
|
|
29
|
+
return (x) => x * frequency;
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(`Does not support convert to ${convertTo}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=convertWidth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertWidth.js","sourceRoot":"","sources":["../../../src/peaks/util/convertWidth.ts"],"names":[],"mappings":";;;AAUA;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAkB,EAAE,OAA4B;IAC3E,MAAM,EACJ,SAAS,EACT,SAAS,EACT,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAC3C,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5C;SACF;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAlBD,oCAkBC;AAED,SAAS,QAAQ,CAAC,IAAe;IAC/B,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;IACxD,QAAQ,SAAS,EAAE;QACjB,KAAK,KAAK;YACR,OAAO,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;QACtC,KAAK,IAAI;YACP,OAAO,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;QACtC;YACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertWidthToHz = void 0;
|
|
4
|
+
const convertWidth_1 = require("./convertWidth");
|
|
5
|
+
function convertWidthToHz(peaks, options) {
|
|
6
|
+
return (0, convertWidth_1.convertWidth)(peaks, { ...options, convertTo: 'hz' });
|
|
7
|
+
}
|
|
8
|
+
exports.convertWidthToHz = convertWidthToHz;
|
|
9
|
+
//# sourceMappingURL=convertWidthToHz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertWidthToHz.js","sourceRoot":"","sources":["../../../src/peaks/util/convertWidthToHz.ts"],"names":[],"mappings":";;;AAEA,iDAAmE;AAInE,SAAgB,gBAAgB,CAAC,KAAkB,EAAE,OAAuB;IAC1E,OAAO,IAAA,2BAAY,EAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAFD,4CAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertWidthToPPM = void 0;
|
|
4
|
+
const convertWidth_1 = require("./convertWidth");
|
|
5
|
+
function convertWidthToPPM(peaks, options) {
|
|
6
|
+
return (0, convertWidth_1.convertWidth)(peaks, { ...options, convertTo: 'ppm' });
|
|
7
|
+
}
|
|
8
|
+
exports.convertWidthToPPM = convertWidthToPPM;
|
|
9
|
+
//# sourceMappingURL=convertWidthToPPM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertWidthToPPM.js","sourceRoot":"","sources":["../../../src/peaks/util/convertWidthToPPM.ts"],"names":[],"mappings":";;;AAEA,iDAA8C;AAG9C,SAAgB,iBAAiB,CAAC,KAAkB,EAAE,OAAuB;IAC3E,OAAO,IAAA,2BAAY,EAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAFD,8CAEC"}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinRanges.js","sourceRoot":"","sources":["../../../src/ranges/utils/joinRanges.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,MAAkB;IAC3C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhC,IAAI,YAAY,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;YACpC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,YAAY,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;gBAC7C,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACvE;YACD,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,EAAE;gBAC1C,YAAY,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC;aACxD;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC;SACL;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,gCAqBC"}
|
|
@@ -139,6 +139,7 @@ exports.default = {
|
|
|
139
139
|
// Before to return, change the units of peaksComp from Hz to PPM again
|
|
140
140
|
for (let peakComp of signal.peaksComp) {
|
|
141
141
|
peakComp.x /= signal.observe;
|
|
142
|
+
peakComp.width *= signal.observe;
|
|
142
143
|
}
|
|
143
144
|
return signal;
|
|
144
145
|
},
|
|
@@ -377,7 +378,7 @@ function symmetrize(signalInput, maxError, iteration, key) {
|
|
|
377
378
|
peaks[i] = {
|
|
378
379
|
x: peak[jAxis] * newSignal.observe,
|
|
379
380
|
intensity: peak[intensity],
|
|
380
|
-
width: peak.width,
|
|
381
|
+
width: peak.width / newSignal.observe,
|
|
381
382
|
};
|
|
382
383
|
}
|
|
383
384
|
// Join the peaks that are closer than 0.25 Hz
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jAnalyzer.js","sourceRoot":"","sources":["../../../src/signals/utils/jAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ export interface GetPeakListOptions extends GSDOptions, OptimizePeaksOptions, Jo
|
|
|
7
7
|
* @default false
|
|
8
8
|
*/
|
|
9
9
|
optimize: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* frequency used to convert width and fwhm to Hz
|
|
12
|
+
*/
|
|
13
|
+
frequency: number;
|
|
10
14
|
}
|
|
11
15
|
export interface OptionsXYAutoPeaksPicking extends Partial<GetPeakListOptions> {
|
|
12
16
|
/**
|
|
@@ -32,5 +36,9 @@ export interface OptionsXYAutoPeaksPicking extends Partial<GetPeakListOptions> {
|
|
|
32
36
|
* @default false
|
|
33
37
|
*/
|
|
34
38
|
useSanPlot?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* frequency used to convert width and fwhm to Hz
|
|
41
|
+
*/
|
|
42
|
+
frequency: number;
|
|
35
43
|
}
|
|
36
|
-
export declare function xyAutoPeaksPicking(data: DataXY, options
|
|
44
|
+
export declare function xyAutoPeaksPicking(data: DataXY, options: OptionsXYAutoPeaksPicking): NMRPeak1D[];
|
|
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.xyAutoPeaksPicking = void 0;
|
|
4
4
|
const ml_gsd_1 = require("ml-gsd");
|
|
5
5
|
const ml_spectra_processing_1 = require("ml-spectra-processing");
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
const convertWidthToHz_1 = require("../peaks/util/convertWidthToHz");
|
|
7
|
+
function xyAutoPeaksPicking(data, options) {
|
|
8
|
+
const { from, to, frequency, noiseLevel, thresholdFactor = 3, minMaxRatio = 0.05, broadRatio = 0.00025, useSanPlot = false, smoothY = true, optimize = false, factorLimits = 4, realTopDetection = true, shape = { kind: 'gaussian' }, optimization = { kind: 'lm' }, broadWidth = 0.25, sgOptions = {}, direction = 'positive', } = options;
|
|
8
9
|
const { windowSize = 9, polynomial = 3 } = sgOptions;
|
|
9
10
|
if (data.x.length < windowSize)
|
|
10
11
|
return [];
|
|
@@ -14,6 +15,7 @@ function xyAutoPeaksPicking(data, options = {}) {
|
|
|
14
15
|
const cutOff = getCutOff(data.y, { noiseLevel, useSanPlot, thresholdFactor });
|
|
15
16
|
let getPeakOptions = {
|
|
16
17
|
shape,
|
|
18
|
+
frequency,
|
|
17
19
|
broadWidth,
|
|
18
20
|
optimize,
|
|
19
21
|
factorLimits,
|
|
@@ -53,7 +55,7 @@ function getNegativePeaks(data, cutOff, getPeakOptions) {
|
|
|
53
55
|
return getPeakList(data, getPeakOptions);
|
|
54
56
|
}
|
|
55
57
|
function getPeakList(data, options) {
|
|
56
|
-
const { shape, broadWidth, optimize, maxCriteria, factorLimits, sgOptions, minMaxRatio, broadRatio, noiseLevel, smoothY, optimization, realTopDetection, } = options;
|
|
58
|
+
const { shape, frequency, broadWidth, optimize, maxCriteria, factorLimits, sgOptions, minMaxRatio, broadRatio, noiseLevel, smoothY, optimization, realTopDetection, } = options;
|
|
57
59
|
let peakList = (0, ml_gsd_1.gsd)(data, {
|
|
58
60
|
shape,
|
|
59
61
|
sgOptions,
|
|
@@ -71,14 +73,13 @@ function getPeakList(data, options) {
|
|
|
71
73
|
optimization,
|
|
72
74
|
});
|
|
73
75
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
return (0, convertWidthToHz_1.convertWidthToHz)(optimize
|
|
77
|
+
? (0, ml_gsd_1.optimizePeaks)(data, peakList, {
|
|
76
78
|
shape,
|
|
77
79
|
factorLimits,
|
|
78
80
|
optimization,
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
return peakList;
|
|
81
|
+
})
|
|
82
|
+
: peakList, { frequency });
|
|
82
83
|
}
|
|
83
84
|
function getCutOff(data, options) {
|
|
84
85
|
const { noiseLevel, useSanPlot, thresholdFactor } = options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":";;;AACA,mCAA4D;AAM5D,iEAI+B;
|
|
1
|
+
{"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,12 @@ import type { OptionsPeaksFilterImpurities } from '../peaks/peaksFilterImpuritie
|
|
|
3
3
|
import { OptionsPeaksToRanges } from '../peaks/peaksToRanges';
|
|
4
4
|
import type { OptionsXYAutoPeaksPicking } from './xyAutoPeaksPicking';
|
|
5
5
|
interface OptionsXYAutoRangesPicking {
|
|
6
|
-
peakPicking
|
|
6
|
+
peakPicking: OptionsXYAutoPeaksPicking;
|
|
7
7
|
impurities?: OptionsPeaksFilterImpurities;
|
|
8
8
|
ranges?: OptionsPeaksToRanges;
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Detect peaks, optimize parameters and compile multiplicity if required.
|
|
12
12
|
*/
|
|
13
|
-
export declare function xyAutoRangesPicking(data: DataXY, options
|
|
13
|
+
export declare function xyAutoRangesPicking(data: DataXY, options: OptionsXYAutoRangesPicking): import("./NMRRange").NMRRange[];
|
|
14
14
|
export {};
|
|
@@ -7,7 +7,7 @@ const xyAutoPeaksPicking_1 = require("./xyAutoPeaksPicking");
|
|
|
7
7
|
/**
|
|
8
8
|
* Detect peaks, optimize parameters and compile multiplicity if required.
|
|
9
9
|
*/
|
|
10
|
-
function xyAutoRangesPicking(data, options
|
|
10
|
+
function xyAutoRangesPicking(data, options) {
|
|
11
11
|
let peaks = (0, xyAutoPeaksPicking_1.xyAutoPeaksPicking)(data, options.peakPicking);
|
|
12
12
|
peaks = (0, peaksFilterImpurities_1.peaksFilterImpurities)(peaks, options.impurities);
|
|
13
13
|
return (0, peaksToRanges_1.peaksToRanges)(data, peaks, options.ranges);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyAutoRangesPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoRangesPicking.ts"],"names":[],"mappings":";;;AAEA,0EAAuE;AAEvE,0DAA6E;AAE7E,6DAA0D;AAS1D;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"xyAutoRangesPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoRangesPicking.ts"],"names":[],"mappings":";;;AAEA,0EAAuE;AAEvE,0DAA6E;AAE7E,6DAA0D;AAS1D;;GAEG;AACH,SAAgB,mBAAmB,CACjC,IAAY,EACZ,OAAmC;IAEnC,IAAI,KAAK,GAAG,IAAA,uCAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,KAAK,GAAG,IAAA,6CAAqB,EAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,OAAO,IAAA,6BAAa,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAPD,kDAOC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { DataXY, PeakXYWidth } from 'cheminfo-types';
|
|
2
2
|
import { OptimizePeaksOptions } from 'ml-gsd';
|
|
3
|
-
export
|
|
3
|
+
export interface XYPeaksOptimizationOptions extends OptimizePeaksOptions {
|
|
4
|
+
/**
|
|
5
|
+
* frequency to convert width and fwhm to ppm.
|
|
6
|
+
*/
|
|
7
|
+
frequency: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function xyPeaksOptimization(data: DataXY, peaks: PeakXYWidth[], options: XYPeaksOptimizationOptions): any;
|
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.xyPeaksOptimization = void 0;
|
|
4
4
|
const ml_gsd_1 = require("ml-gsd");
|
|
5
|
+
const convertWidthToHz_1 = require("../peaks/util/convertWidthToHz");
|
|
6
|
+
const convertWidthToPPM_1 = require("../peaks/util/convertWidthToPPM");
|
|
5
7
|
function xyPeaksOptimization(data, peaks, options) {
|
|
6
|
-
|
|
8
|
+
const { frequency } = options;
|
|
9
|
+
const newPeaks = (0, convertWidthToPPM_1.convertWidthToPPM)(peaks, { frequency });
|
|
10
|
+
const optimizedPeaks = (0, ml_gsd_1.optimizePeaks)(data, newPeaks, options);
|
|
11
|
+
return (0, convertWidthToHz_1.convertWidthToHz)(optimizedPeaks, {
|
|
12
|
+
frequency,
|
|
13
|
+
output: optimizedPeaks,
|
|
14
|
+
});
|
|
7
15
|
}
|
|
8
16
|
exports.xyPeaksOptimization = xyPeaksOptimization;
|
|
9
17
|
//# sourceMappingURL=xyPeaksOptimization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyPeaksOptimization.js","sourceRoot":"","sources":["../../src/xy/xyPeaksOptimization.ts"],"names":[],"mappings":";;;AACA,mCAA6D;AAE7D,SAAgB,mBAAmB,CACjC,IAAY,EACZ,KAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"xyPeaksOptimization.js","sourceRoot":"","sources":["../../src/xy/xyPeaksOptimization.ts"],"names":[],"mappings":";;;AACA,mCAA6D;AAE7D,qEAAkE;AAClE,uEAAoE;AAQpE,SAAgB,mBAAmB,CACjC,IAAY,EACZ,KAAoB,EACpB,OAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,IAAA,sBAAa,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,OAAO,IAAA,mCAAgB,EAAC,cAAc,EAAE;QACtC,SAAS;QACT,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;AACL,CAAC;AAZD,kDAYC"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.xyzJResAnalyzer = void 0;
|
|
7
7
|
const ml_simple_clustering_1 = __importDefault(require("ml-simple-clustering"));
|
|
8
|
-
const jAnalyzer_1 = __importDefault(require("../
|
|
8
|
+
const jAnalyzer_1 = __importDefault(require("../signals/utils/jAnalyzer"));
|
|
9
9
|
const formatZone_1 = require("./util/formatZone");
|
|
10
10
|
function xyzJResAnalyzer(signals, options = {}) {
|
|
11
11
|
let { reference = 0, getZones = false, referenceMaxShiftError = 0.08, tolerances = [10, 100], nuclei = ['1H', '1H'], observedFrequencies = [400, 400], jAnalyzer = {
|
|
@@ -37,6 +37,7 @@ function compilePattern(signals, options) {
|
|
|
37
37
|
dx: signals[0].x.resolution,
|
|
38
38
|
dy: signals[0].y.resolution,
|
|
39
39
|
};
|
|
40
|
+
const defaultWidth = 0.02 * observedFrequencies[0];
|
|
40
41
|
const newSignals = JSON.parse(JSON.stringify(signals));
|
|
41
42
|
//adapt to 1D jAnalyzer
|
|
42
43
|
for (const signal of newSignals) {
|
|
@@ -52,7 +53,7 @@ function compilePattern(signals, options) {
|
|
|
52
53
|
};
|
|
53
54
|
for (const peak of peaks) {
|
|
54
55
|
if (!peak.width)
|
|
55
|
-
peak.width =
|
|
56
|
+
peak.width = defaultWidth;
|
|
56
57
|
}
|
|
57
58
|
peaks.sort((a, b) => a.y - b.y);
|
|
58
59
|
}
|