List of usage examples for org.apache.commons.math3.analysis.function Identity Identity
Identity
From source file:de.unijena.bioinf.FragmentationTreeConstruction.computation.recalibration.LeastSquare.java
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); SimpleMutableSpectrum refSpectrum = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, refSpectrum);// w w w .j av a2 s . c o m 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; }
From source file:de.unijena.bioinf.FragmentationTreeConstruction.computation.recalibration.MedianSlope.java
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); final SimpleMutableSpectrum ref = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, ref);/* w w w . ja va 2s. c om*/ 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; }
From source file:de.unijena.bioinf.FragmentationTreeConstruction.computation.recalibration.ExpRek.java
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { final SimpleMutableSpectrum ref = new SimpleMutableSpectrum(referenceSpectrum); final SimpleMutableSpectrum mes = new SimpleMutableSpectrum(spectrum); final TDoubleList list = new TDoubleArrayList(spectrum.size()); // 1. allow only peaks with >2.5% intensity for recalibration for (int i = 0; i < mes.size(); ++i) { if (mes.getIntensityAt(i) <= 0.025) { ref.removePeakAt(i);/* ww w . jav a 2s . com*/ mes.removePeakAt(i); --i; } else if (mes.getIntensityAt(i) > 0.04) { list.add(mes.getMzAt(i)); } } final Deviation dev = new Deviation(4, 1e-3); final double[][] values = MzRecalibration.maxIntervalStabbing(mes, ref, new UnivariateFunction() { @Override public double value(double x) { return dev.absoluteFor(x); } }); // 2. there have to be at least 6 peaks with > 4% intensity int found = 0; for (double x : values[0]) { if (list.contains(x)) ++found; } if (found < 6) return new Identity(); final UnivariateFunction recalibration = MzRecalibration.getLinearRecalibration(values[0], values[1]); MzRecalibration.recalibrate(spectrum, recalibration); return recalibration; }
From source file:de.unijena.bioinf.FragmentationTreeConstruction.computation.recalibration.AbstractRecalibrationStrategy.java
@Override public UnivariateFunction recalibrate(MutableSpectrum<Peak> spectrum, Spectrum<Peak> referenceSpectrum) { spectrum = new SimpleMutableSpectrum(spectrum); final SimpleMutableSpectrum ref = new SimpleMutableSpectrum(referenceSpectrum); preprocess(spectrum, ref);/*from w ww .j av a2 s.co m*/ 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; }