Example usage for com.google.common.collect Range contains

List of usage examples for com.google.common.collect Range contains

Introduction

In this page you can find the example usage for com.google.common.collect Range contains.

Prototype

public boolean contains(C value) 

Source Link

Document

Returns true if value is within the bounds of this range.

Usage

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;
}