/** * Returns a MultivariateFunction h(x[]) defined by <pre> <code> * h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1]) * </code></pre> * * @param combiner Combiner function. * @param initialValue Initial value. * @return a collector function. */ public static MultivariateFunction collector(final BivariateFunction combiner, final double initialValue) { return collector(combiner, new Identity(), initialValue); }
public SpectralRecalibration(MutableMs2Spectrum[] originalSpectra, UnivariateFunction[] recalibrationFunctions, UnivariateFunction mergedFunc) { this.recalibrationFunctions = recalibrationFunctions; this.mergedFunc = mergedFunc==null ? new Identity() : mergedFunc; this.originalSpectra = originalSpectra; }
/** * Returns a MultivariateFunction h(x[]) defined by <pre> <code> * h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1]) * </code></pre> * * @param combiner Combiner function. * @param initialValue Initial value. * @return a collector function. */ public static MultivariateFunction collector(final BivariateFunction combiner, final double initialValue) { return collector(combiner, new Identity(), initialValue); }
/** * Returns a MultivariateFunction h(x[]) defined by <pre> <code> * h(x[]) = combiner(...combiner(combiner(initialValue,x[0]),x[1])...),x[x.length-1]) * </code></pre> * * @param combiner Combiner function. * @param initialValue Initial value. * @return a collector function. */ public static MultivariateFunction collector(final BivariateFunction combiner, final double initialValue) { return collector(combiner, new Identity(), initialValue); }
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); final SimpleMutableSpectrum ref = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, ref); final double[][] values = MzRecalibration.maxIntervalStabbing(spectrum, referenceSpectrum, new UnivariateFunction() { @Override public double value(double x) { return epsilon.absoluteFor(x); } }, threshold); if (values[0].length < minNumberOfPeaks) return new Identity(); final UnivariateFunction recalibration = MzRecalibration.getMedianLinearRecalibration(values[0], values[1]); MzRecalibration.recalibrate(spectrum, recalibration); return recalibration; }
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); SimpleMutableSpectrum refSpectrum = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, refSpectrum); final double[] eps = new double[spectrum.size()]; for (int k=0; k < eps.length; ++k) eps[k] = this.epsilon.absoluteFor(spectrum.getMzAt(k)); final double[][] values = MzRecalibration.maxIntervalStabbing(spectrum, refSpectrum, eps, threshold); if (values[0].length<minNumberOfPeaks) return new Identity(); if (forceParentPeakIn) forceParentPeakInRecalibration(spectrum,referenceSpectrum,values); final UnivariateFunction recalibration = MzRecalibration.getLinearRecalibration(values[0], values[1]); MzRecalibration.recalibrate(spectrum, recalibration); return recalibration; } }
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); final SimpleMutableSpectrum ref = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, ref); final double[] eps = new double[spectrum.size()]; for (int k = 0; k < eps.length; ++k) eps[k] = this.epsilon.absoluteFor(spectrum.getMzAt(k)); final double[][] values = //MzRecalibration.maxIntervalStabbing(spectrum, ref, eps, threshold); //final double[][] values = //getMedianSubset(spectrum, ref); getMedianSubsetFairDistributed(spectrum, ref); // getMedianSubsetFairDistributed(spectrum, ref); if (values[0].length < minNumberOfPeaks) return new Identity(); if (forceParentPeakIn) forceParentPeakInRecalibration(spectrum, referenceSpectrum, values); final UnivariateFunction recalibration = MzRecalibration.getMedianLinearRecalibration(values[0], values[1]); MzRecalibration.recalibrate(spectrum, recalibration); return recalibration; }
if (found<6) return new Identity(); final UnivariateFunction recalibration = MzRecalibration.getLinearRecalibration(values[0], values[1]); MzRecalibration.recalibrate(spectrum, recalibration);