ml-gsd
Version:
Global Spectral Deconvolution
38 lines • 1.34 kB
JavaScript
import { tryMatchOneIntervalWithMinData } from "./tryMatchOneIntervalWithMinData.js";
export function getPeakFromIntervals(options) {
let lastK = -1;
const peaks = [];
const { x, ddY, yData, yThreshold, intervalR, intervalL, minData } = options;
for (let i = 0; i < intervalL.length; i++) {
const intervalWidth = (intervalR[i].x - intervalL[i].x) / 2;
const intervalCenter = (intervalR[i].x + intervalL[i].x) / 2;
const { possible = -1, lastIndex } = tryMatchOneIntervalWithMinData({
x,
lastK,
minData,
yThreshold,
intervalWidth,
intervalCenter,
yData,
});
if (possible !== -1) {
const centerIndex = minData[possible];
const width = Math.abs(intervalR[i].x - intervalL[i].x);
peaks.push({
id: crypto.randomUUID(),
x: x[centerIndex],
y: yData[centerIndex],
width,
index: centerIndex,
ddY: ddY[centerIndex],
inflectionPoints: {
from: intervalL[i],
to: intervalR[i],
},
});
}
lastK = lastIndex;
}
return peaks;
}
//# sourceMappingURL=getPeaksFromIntervals.js.map