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

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

Introduction

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

Prototype

public C upperEndpoint() 

Source Link

Document

Returns the upper endpoint of this range.

Usage

From source file:de.unijena.bioinf.IsotopePatternAnalysis.extraction.ExtractAll.java

@Override
public List<IsotopePattern> extractPattern(MeasurementProfile profile, Spectrum<Peak> spectrum, double targetMz,
        boolean allowAdducts) {
    // TODO: implement in more efficient way
    final ChemicalAlphabet stdalphabet = ChemicalAlphabet.getExtendedAlphabet();
    final Spectrum<Peak> massOrderedSpectrum = Spectrums.getMassOrderedSpectrum(spectrum);
    final ArrayList<SimpleSpectrum> patterns = new ArrayList<SimpleSpectrum>();
    final int index = Spectrums.mostIntensivePeakWithin(massOrderedSpectrum, targetMz,
            profile.getAllowedMassDeviation());
    if (index < 0)
        return new ArrayList<IsotopePattern>();
    final SimpleMutableSpectrum spec = new SimpleMutableSpectrum();
    spec.addPeak(massOrderedSpectrum.getPeakAt(index));
    // add additional peaks
    for (int k = 1; k <= 5; ++k) {
        final Range<Double> nextMz = PeriodicTable.getInstance().getIsotopicMassWindow(stdalphabet,
                profile.getAllowedMassDeviation(), spec.getMzAt(0), k);
        final double a = nextMz.lowerEndpoint();
        final double b = nextMz.upperEndpoint();
        final double m = a + (b - a) / 2d;
        final Deviation dev = Deviation.fromMeasurementAndReference(m, a);
        final int nextIndex = Spectrums.mostIntensivePeakWithin(massOrderedSpectrum, m, dev);
        if (nextIndex < 0)
            break;
        else {//from ww w .j a  v a  2s  . co m
            if (massOrderedSpectrum.getIntensityAt(nextIndex) > spec.getIntensityAt(spec.size() - 1)) {
                // maybe a new pattern started?
                patterns.add(new SimpleSpectrum(spec));
            }
            spec.addPeak(massOrderedSpectrum.getPeakAt(nextIndex));
        }
    }
    patterns.add(0, new SimpleSpectrum(spec));
    final ArrayList<IsotopePattern> pats = new ArrayList<IsotopePattern>();
    for (SimpleSpectrum s : patterns) {
        pats.add(new IsotopePattern(s));
    }
    return pats;
}

From source file:com.techshroom.wood.ModuleDependency.java

@Override
public String toString() {
    StringBuilder builder = new StringBuilder(getId()).append(':');
    Range<SemVer> r = getVersionRange();
    if (r.hasLowerBound()) {
        builder.append(r.lowerBoundType() == BoundType.OPEN ? '(' : '[').append(r.lowerEndpoint());
    } else {/*  ww  w  .j a v  a 2 s . c o m*/
        builder.append('(');
    }
    builder.append(',');
    if (r.hasUpperBound()) {
        builder.append(r.upperEndpoint()).append(r.upperBoundType() == BoundType.OPEN ? ')' : ']');
    } else {
        builder.append(')');
    }
    return builder.toString();
}

From source file:io.github.msdk.features.gapfilling.GapFillingMethod.java

/** {@inheritDoc} */
@Override/*from ww  w  .j  av a  2  s . c  o m*/
public FeatureTable execute() throws MSDKException {
    List<FeatureTableRow> gapRow = new ArrayList<FeatureTableRow>();
    List<Sample> gapSample = new ArrayList<Sample>();

    // Total gaps
    for (FeatureTableRow row : result.getRows()) {
        for (Sample sample : result.getSamples()) {
            FeatureTableColumn<Double> areaColumn = result.getColumn(ColumnName.AREA, sample);
            Double area = row.getData(areaColumn);

            // Add the gap to arrays
            if (area == null) {
                gapRow.add(row);
                gapSample.add(sample);
            }
        }
    }

    totalGaps = gapRow.size();
    logger.info("Started gap filling " + totalGaps + " gap(s) in '" + featureTable.getName() + "'");

    if (totalGaps == 0)
        return result;

    // Iterate over all the gaps
    for (int i = 0; i < totalGaps; i++) {
        FeatureTableRow row = gapRow.get(i);
        Sample sample = gapSample.get(i);
        RawDataFile rawFile = sample.getRawDataFile();

        // Create an ion annotation
        IonAnnotation ion = MSDKObjectBuilder.getSimpleIonAnnotation();
        ion.setAnnotationId(row.getId().toString());
        FeatureTableColumn<ChromatographyInfo> column = result.getColumn("Chromatography Info", null,
                ChromatographyInfo.class);
        ion.setExpectedMz(row.getMz());
        ion.setChromatographyInfo(row.getData(column));
        List<IonAnnotation> ionAnnotations = new ArrayList<IonAnnotation>();
        ionAnnotations.add(ion);

        // Use Row's m/z as input
        if (useRowMz) {
            // Set expected m/z value of ion to average of m/z range
            Range<Double> mzRange = FeatureTableUtil.getFeatureMzRange(row);
            double lowMz = mzRange.lowerEndpoint();
            double highMz = mzRange.upperEndpoint();
            double toleranceMz = (highMz - lowMz) / 2;
            double newMz = lowMz + toleranceMz;
            ion.setExpectedMz(newMz);

            // Set new mzTolerance
            mzTolerance = new MZTolerance(mzTolerance.getMzTolerance() + toleranceMz,
                    mzTolerance.getPpmTolerance());
        }

        // Use Row's RT as input
        if (useRowRt) {
            // Set expected RT value of ion to average of RT range
            Range<Float> rtRange = FeatureTableUtil.getFeatureRt1Range(row);
            float lowRt = rtRange.lowerEndpoint();
            float highRt = rtRange.upperEndpoint();
            float toleranceRt = (highRt - lowRt) / 2;
            float newRt = lowRt + toleranceRt;
            ChromatographyInfo newCI = MSDKObjectBuilder.getChromatographyInfo1D(null, newRt);
            ion.setChromatographyInfo(newCI);

            // Set new rtTolerance
            rtTolerance = new RTTolerance(rtTolerance.getTolerance() + toleranceRt, false);
        }

        TargetedDetectionMethod chromBuilder = new TargetedDetectionMethod(ionAnnotations, rawFile, dataStore,
                mzTolerance, rtTolerance, intensityTolerance, 0.0);
        final List<Chromatogram> chromatograms = chromBuilder.execute();

        // Add the data to the feature table row
        Chromatogram chromatogram = chromatograms.get(0);
        // chromatogram.setIonAnnotation(null);
        Map<ColumnName, FeatureTableColumn<Object>> tableColumns = ChromatogramToFeatureTableMethod
                .addSampleColumns(result, sample);
        ChromatogramToFeatureTableMethod.addDataToRow(row, chromatogram, tableColumns);

        processedGaps++;

        // Cancel?
        if (canceled)
            return null;
    }

    // Recalculate average values
    FeatureTableUtil.recalculateAverages(result);

    return result;
}

From source file:org.dishevelled.bio.range.tree.CenteredRangeTree.java

/**
 * Depth first search.//w  w w. j  a va  2 s .c o m
 *
 * @param query query range
 * @param node node
 * @param result list of matching ranges
 * @param visited set of visited nodes
 */
private void depthFirstSearch(final Range<C> query, final Node node, final List<Range<C>> result,
        final Set<Node> visited) {
    if (node == null || visited.contains(node) || query.isEmpty()) {
        return;
    }
    if (node.left() != null && Ranges.isLessThan(query, node.center())) {
        depthFirstSearch(query, node.left(), result, visited);
    } else if (node.right() != null && Ranges.isGreaterThan(query, node.center())) {
        depthFirstSearch(query, node.right(), result, visited);
    }
    if (Ranges.isGreaterThan(query, node.center())) {
        for (Range<C> range : node.overlapByUpperEndpoint()) {
            if (Ranges.intersect(range, query)) {
                result.add(range);
            }
            if (Ranges.isGreaterThan(query, range.upperEndpoint())) {
                break;
            }
        }
    } else if (Ranges.isLessThan(query, node.center())) {
        for (Range<C> range : node.overlapByLowerEndpoint()) {
            if (Ranges.intersect(range, query)) {
                result.add(range);
            }
            if (Ranges.isLessThan(query, range.lowerEndpoint())) {
                break;
            }
        }
    } else {
        result.addAll(node.overlapByLowerEndpoint());
    }
    visited.add(node);
}

From source file:net.sf.mzmine.parameters.parametertypes.ranges.DoubleRangeComponent.java

public void setValue(Range<Double> value) {
    NumberFormat floorFormat = (NumberFormat) format.clone();
    floorFormat.setRoundingMode(RoundingMode.FLOOR);
    NumberFormat ceilFormat = (NumberFormat) format.clone();
    ceilFormat.setRoundingMode(RoundingMode.CEILING);
    minTxtField.setText(floorFormat.format(value.lowerEndpoint()));
    maxTxtField.setText(ceilFormat.format(value.upperEndpoint()));
}

From source file:org.pascani.dsl.dbmapper.databases.CSVExport.java

private Map<String, String> toData(String collection, ChangeEvent e, Serializable value,
        Map<String, String> tags) {
    for (String tag : tags.keySet()) {
        if (!this.columns.get(collection).contains(tag))
            this.columns.get(collection).add(tag);
    }/*from   w  w  w.j ava2  s .  c o  m*/
    Map<String, String> data = new HashMap<String, String>();
    data.putAll(tags);
    data.put("variable", e.variable());
    if (value instanceof Range<?>) {
        Range<?> range = (Range<?>) value;
        Number start = (Number) range.lowerEndpoint();
        Number end = (Number) range.upperEndpoint();
        data.put("start", start + "");
        data.put("end", end + "");
        data.put("value", (end.doubleValue() - start.doubleValue()) + "");
    } else if (value instanceof Number) {
        data.put("value", (Number) value + "");
    } else if (value instanceof Boolean) {
        data.put("value", (Boolean) value + "");
    } else if (value instanceof String) {
        data.put("value", (String) value);
    }
    data.put("timestamp", e.timestamp() + "");
    return data;
}

From source file:org.noroomattheinn.visibletesla.DataStore.java

protected final Range<Long> getLoadPeriod() {
    Range<Long> loadPeriod = Range.closed(Long.MIN_VALUE, Long.MAX_VALUE);

    long now = System.currentTimeMillis();
    LoadPeriod period = nameToLoadPeriod.get(appContext.prefs.loadPeriod.get());
    if (period == null) {
        period = LoadPeriod.All;/*  ww  w.j av  a 2s .c  o  m*/
        appContext.prefs.loadPeriod.set(nameToLoadPeriod.inverse().get(period));
    }
    switch (period) {
    case None:
        loadPeriod = Range.closed(now + 1000, now + 1000L); // Empty Range
        break;
    case Last7:
        loadPeriod = Range.closed(now - (7 * 24 * 60 * 60 * 1000L), now);
        break;
    case Last14:
        loadPeriod = Range.closed(now - (14 * 24 * 60 * 60 * 1000L), now);
        break;
    case Last30:
        loadPeriod = Range.closed(now - (30 * 24 * 60 * 60 * 1000L), now);
        break;
    case ThisWeek:
        Range<Date> thisWeek = getThisWeek();
        loadPeriod = Range.closed(thisWeek.lowerEndpoint().getTime(), thisWeek.upperEndpoint().getTime());
        break;
    case ThisMonth:
        Range<Date> thisMonth = getThisMonth();
        loadPeriod = Range.closed(thisMonth.lowerEndpoint().getTime(), thisMonth.upperEndpoint().getTime());
        break;
    case All:
    default:
        break;

    }
    return loadPeriod;
}

From source file:org.eclipse.fx.ui.controls.styledtext.internal.LineHelper.java

private com.google.common.collect.Range<Integer> mapToLocal(int index,
        com.google.common.collect.Range<Integer> global) {
    return com.google.common.collect.Range.range(
            Integer.valueOf(global.lowerEndpoint().intValue() - getOffset(index)), global.lowerBoundType(),
            Integer.valueOf(global.upperEndpoint().intValue() - getOffset(index)), global.upperBoundType());
}

From source file:com.yahoo.gondola.container.client.ZookeeperShardManagerClient.java

@Override
public void setBuckets(Range<Integer> splitRange, String fromShardId, String toShardId,
        boolean migrationComplete) throws ShardManagerException, InterruptedException {
    sendActionToAll(!migrationComplete ? MIGRATE_2 : MIGRATE_3, splitRange.lowerEndpoint(),
            splitRange.upperEndpoint(), fromShardId, toShardId, migrationComplete);
    if (!waitCondition(null,
            !migrationComplete ? ZookeeperStat::isMigrating2Operational : ZookeeperStat::isNormalOperational,
            3000)) {/*  w w  w  .j  a  v a2s  .  c om*/
        throw new ShardManagerException(FAILED_SET_BUCKETS, "timed out");
    }
}

From source file:org.pascani.dsl.dbmapper.databases.CSVExport.java

private Map<String, String> handle(ChangeEvent e, String collection) {
    Map<String, String> data = null;
    TaggedValue<Serializable> taggedValue = TaggedValue.instanceFrom(e.value(), Serializable.class);
    if (taggedValue.value() instanceof Number || taggedValue.value() instanceof Boolean
            || taggedValue.value() instanceof String) {
        data = toData(collection, e, taggedValue.value(), taggedValue.tags());
    } else if (taggedValue.value() instanceof Range<?>) {
        Range<?> range = (Range<?>) taggedValue.value();
        Class<?> clazz = range.hasLowerBound() ? range.lowerEndpoint().getClass()
                : range.upperEndpoint().getClass();
        if (Number.class.isAssignableFrom(clazz)) {
            data = toData(collection, e, taggedValue.value(), taggedValue.tags());
        } else {//from   w  w  w  .ja  v a2 s. c om
            System.out.println("Not supported type " + clazz.getCanonicalName());
        }
    } else {
        System.out.println("Not supported type " + taggedValue.value().getClass().getCanonicalName());
    }
    return data;
}