List of usage examples for com.google.common.collect Range contains
public boolean contains(C value)
From source file:io.github.msdk.util.RawDataFileUtil.java
/** * <p>//from ww w. java 2 s. co m * getScans. * </p> * * @param rawDataFile * a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object. * @param rtRange * a {@link com.google.common.collect.Range} object. * @return a {@link java.util.List} object. */ @Nonnull static public List<MsScan> getScans(RawDataFile rawDataFile, Range<ChromatographyInfo> rtRange) { ArrayList<MsScan> msScanList = new ArrayList<MsScan>(); List<MsScan> scans = rawDataFile.getScans(); synchronized (scans) { for (MsScan scan : scans) { ChromatographyInfo scanRT = scan.getChromatographyInfo(); if (scanRT != null) { if (rtRange.contains(scanRT)) msScanList.add(scan); } } } return new ArrayList<MsScan>(); }
From source file:com.dssmp.pipeline.config.Configuration.java
/** * Validates that a given value falls withing a range. * * @param value/*from w w w. ja v a2s.co m*/ * @param range * @throws ConfigurationException if the value doesn't fall within the range. */ public static <T extends Comparable<T>> void validateRange(T value, Range<T> range, String label) { if (!range.contains(value)) { String message = String.format("'%s' value %s is outside of valid range (%s)", label, value.toString(), range.toString()); throw new ConfigurationException(message); } }
From source file:io.github.msdk.util.RawDataFileUtil.java
/** * <p>/*from w w w. ja v a2 s . c om*/ * getScans. * </p> * * @param rawDataFile * a {@link io.github.msdk.datamodel.rawdata.RawDataFile} object. * @param msFunction * a {@link io.github.msdk.datamodel.rawdata.MsFunction} object. * @param rtRange * a {@link com.google.common.collect.Range} object. * @return a {@link java.util.List} object. */ @Nonnull static public List<MsScan> getScans(RawDataFile rawDataFile, MsFunction msFunction, Range<ChromatographyInfo> rtRange) { ArrayList<MsScan> msScanList = new ArrayList<MsScan>(); List<MsScan> scans = rawDataFile.getScans(); synchronized (scans) { for (MsScan scan : scans) { ChromatographyInfo scanRT = scan.getChromatographyInfo(); if (scanRT != null) { if (scan.getMsFunction().equals(msFunction) && rtRange.contains(scanRT)) msScanList.add(scan); } } } return new ArrayList<MsScan>(); }
From source file:net.sf.mzmine.modules.peaklistmethods.msms.msmsscore.MSMSScoreCalculator.java
/** * Returns a calculated similarity score of *///from w w w . jav a 2 s. c o m public static MSMSScore evaluateMSMS(IMolecularFormula parentFormula, Scan msmsScan, ParameterSet parameters) { MZTolerance msmsTolerance = parameters.getParameter(MSMSScoreParameters.msmsTolerance).getValue(); String massListName = parameters.getParameter(MSMSScoreParameters.massList).getValue(); MassList massList = msmsScan.getMassList(massListName); if (massList == null) { throw new IllegalArgumentException("Scan #" + msmsScan.getScanNumber() + " does not have a mass list called '" + massListName + "'"); } DataPoint msmsIons[] = massList.getDataPoints(); if (msmsIons == null) { throw new IllegalArgumentException( "Mass list " + massList + " does not contain data for scan #" + msmsScan.getScanNumber()); } MolecularFormulaRange msmsElementRange = new MolecularFormulaRange(); for (IIsotope isotope : parentFormula.isotopes()) { msmsElementRange.addIsotope(isotope, 0, parentFormula.getIsotopeCount(isotope)); } int totalMSMSpeaks = 0, interpretedMSMSpeaks = 0; Map<DataPoint, String> msmsAnnotations = new Hashtable<DataPoint, String>(); msmsCycle: for (DataPoint dp : msmsIons) { // Check if this is an isotope Range<Double> isotopeCheckRange = Range.closed(dp.getMZ() - 1.4, dp.getMZ() - 0.6); for (DataPoint dpCheck : msmsIons) { // If we have any MS/MS peak with 1 neutron mass smaller m/z // and higher intensity, it means the current peak is an // isotope and we should ignore it if (isotopeCheckRange.contains(dpCheck.getMZ()) && (dpCheck.getIntensity() > dp.getIntensity())) { continue msmsCycle; } } // If getPrecursorCharge() returns 0, it means charge is unknown. In // that case let's assume charge 1 int precursorCharge = msmsScan.getPrecursorCharge(); if (precursorCharge == 0) precursorCharge = 1; // We don't know the charge of the fragment, so we will simply // assume 1 double neutralLoss = msmsScan.getPrecursorMZ() * precursorCharge - dp.getMZ(); // Ignore negative neutral losses and parent ion, <5 may be a // good threshold if (neutralLoss < 5) { continue; } Range<Double> msmsTargetRange = msmsTolerance.getToleranceRange(neutralLoss); IChemObjectBuilder builder = SilentChemObjectBuilder.getInstance(); MolecularFormulaGenerator msmsEngine; try { msmsEngine = new MolecularFormulaGenerator(builder, msmsTargetRange.lowerEndpoint(), msmsTargetRange.upperEndpoint(), msmsElementRange); } catch (CDKException e) { e.printStackTrace(); return null; } IMolecularFormula formula = msmsEngine.getNextFormula(); if (formula != null) { String formulaString = MolecularFormulaManipulator.getString(formula); msmsAnnotations.put(dp, formulaString); interpretedMSMSpeaks++; } totalMSMSpeaks++; } // If we did not evaluate any MS/MS peaks, we cannot calculate a score if (totalMSMSpeaks == 0) { return null; } double msmsScore = (double) interpretedMSMSpeaks / totalMSMSpeaks; MSMSScore result = new MSMSScore(msmsScore, msmsAnnotations); return result; }
From source file:org.jpmml.evaluator.ArgumentUtil.java
static public boolean isOutlier(DataField dataField, MiningField miningField, Object value) { if (value == null) { return false; }//from w ww . ja v a 2s . c o m List<Interval> intervals = dataField.getIntervals(); OpType opType = miningField.getOptype(); if (opType == null) { opType = dataField.getOptype(); } switch (opType) { case CONTINUOUS: { if (intervals.size() > 0) { RangeSet<Double> validRange = CacheUtil.getValue(dataField, ArgumentUtil.validRangeCache); Range<Double> validRangeSpan = validRange.span(); Double doubleValue = (Double) TypeUtil.parseOrCast(DataType.DOUBLE, value); return !validRangeSpan.contains(doubleValue); } } break; case CATEGORICAL: case ORDINAL: break; default: throw new UnsupportedFeatureException(miningField, opType); } return false; }
From source file:net.sf.mzmine.util.ScanUtils.java
/** * Selects data points within given m/z range * //from ww w. j a v a2 s.c o m */ public static DataPoint[] selectDataPointsByMass(DataPoint dataPoints[], Range<Double> mzRange) { ArrayList<DataPoint> goodPoints = new ArrayList<DataPoint>(); for (DataPoint dp : dataPoints) { if (mzRange.contains(dp.getMZ())) goodPoints.add(dp); } return goodPoints.toArray(new DataPoint[0]); }
From source file:io.github.msdk.util.MsSpectrumUtil.java
/** * Calculates the total ion current (=sum of all intensity values) * * @return a {@link java.lang.Float} object. * @param intensityValues/*w w w.j a v a2 s .c om*/ * an array of float. * @param size * a {@link java.lang.Integer} object. * @param mzValues * an array of double. * @param mzRange * a {@link com.google.common.collect.Range} object. */ public static @Nonnull Float getTIC(@Nonnull double mzValues[], @Nonnull float intensityValues[], @Nonnull Integer size, @Nonnull Range<Double> mzRange) { // Parameter check Preconditions.checkNotNull(mzValues); Preconditions.checkNotNull(intensityValues); Preconditions.checkNotNull(size); Preconditions.checkPositionIndex(size, mzValues.length); Preconditions.checkPositionIndex(size, intensityValues.length); Preconditions.checkNotNull(mzRange); float tic = 0f; for (int i = 0; i < size; i++) { if (mzRange.contains(mzValues[i])) tic += intensityValues[i]; } return tic; }
From source file:io.github.msdk.util.MsSpectrumUtil.java
/** * Returns the index of the highest intensity value. Returns null if the * list has no data points or if no data point was found within the mz * range.// w ww .j ava 2 s . c om * * @param mzRange * a {@link com.google.common.collect.Range} object. * @return a {@link java.lang.Integer} object. * @param mzValues * an array of double. * @param intensityValues * an array of float. * @param size * a {@link java.lang.Integer} object. */ public static @Nullable Integer getBasePeakIndex(@Nonnull double mzValues[], @Nonnull float intensityValues[], @Nonnull Integer size, @Nonnull Range<Double> mzRange) { // Parameter check Preconditions.checkNotNull(intensityValues); Preconditions.checkNotNull(mzValues); Preconditions.checkNotNull(size); Preconditions.checkPositionIndex(size, mzValues.length); Preconditions.checkPositionIndex(size, intensityValues.length); Preconditions.checkNotNull(mzRange); Integer topIndex = null; for (int i = 0; i < size; i++) { if ((topIndex == null || intensityValues[i] > intensityValues[topIndex]) && mzRange.contains(mzValues[i])) topIndex = i; } return topIndex; }
From source file:net.sf.mzmine.util.ScanUtils.java
/** * Finds the MS/MS scan with highest intensity, within given retention time * range and with precursor m/z within given m/z range *///from w w w .j a va2 s . c o m public static int findBestFragmentScan(RawDataFile dataFile, Range<Double> rtRange, Range<Double> mzRange) { assert dataFile != null; assert rtRange != null; assert mzRange != null; int bestFragmentScan = -1; double topBasePeak = 0; int[] fragmentScanNumbers = dataFile.getScanNumbers(2, rtRange); for (int number : fragmentScanNumbers) { Scan scan = dataFile.getScan(number); if (mzRange.contains(scan.getPrecursorMZ())) { DataPoint basePeak = scan.getHighestDataPoint(); // If there is no peak in the scan, basePeak can be null if (basePeak == null) continue; if (basePeak.getIntensity() > topBasePeak) { bestFragmentScan = scan.getScanNumber(); topBasePeak = basePeak.getIntensity(); } } } return bestFragmentScan; }
From source file:eu.interedition.collatex.util.IntegerRangeSet.java
@Override public boolean apply(@Nullable Integer input) { for (Range<Integer> range : this) { if (range.contains(input)) { return true; }//from w w w . j a va2 s.c o m } return false; }