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

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

Introduction

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

Prototype

public C lowerEndpoint() 

Source Link

Document

Returns the lower 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 {// w  ww  .  j a  v a  2  s  . c o  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:org.robotframework.ide.eclipse.main.plugin.project.build.fix.TableHeaderDepracatedAliasesReplacer.java

@Override
public Optional<ICompletionProposal> asContentProposal(final IMarker marker, final IDocument document,
        final RobotSuiteFile suiteModel) {
    final Optional<ICompletionProposal> proposal = Optional.empty();

    final Range<Integer> defRange = getRange(marker);
    final Optional<? extends RobotSuiteFileSection> section = suiteModel.findSection(sectionClass);
    if (section.isPresent()) {
        try {/*from  ww  w  .j  ava  2s. c  o m*/
            return createProposal(document, findHeader(section, defRange.lowerEndpoint()));
        } catch (final BadLocationException e) {
        }
    }

    return proposal;
}

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

/** {@inheritDoc} */
@Override//w  w w . ja va2s .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: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:it.units.malelab.ege.ge.mapper.HierarchicalMapper.java

protected List<Range<Integer>> getChildrenSlices(Range<Integer> range, List<T> symbols) {
    List<Range<Integer>> ranges;
    if (symbols.size() > (range.upperEndpoint() - range.lowerEndpoint())) {
        ranges = new ArrayList<>(symbols.size());
        for (T symbol : symbols) {
            ranges.add(Range.closedOpen(range.lowerEndpoint(), range.lowerEndpoint()));
        }//from  w  ww  .  j av  a  2  s  .c  o m
    } else {
        ranges = Utils.slices(range, symbols.size());
    }
    return ranges;
}

From source file:edu.cmu.lti.oaqa.framework.eval.passage.PassageMAPEvalAggregator.java

private float getAvgPsgMAP(List<Passage> docs, List<Passage> gs) {
    if (gs.size() == 0) {
        return 0;
    }/*from  w  ww . j a  va  2s .  co  m*/
    int totalChars = 0;
    int overlapLength = 0;
    float sumPrecision = 0;
    int count = 0;
    Set<Passage> foundGoldTriplets = Sets.newHashSet();
    for (Passage doc : docs) {
        Range<Integer> docRange = Range.closedOpen(doc.getBegin(), doc.getEnd());
        totalChars += docRange.upperEndpoint() - docRange.lowerEndpoint();
        for (Passage g : gs) {
            if (!g.getUri().equals(doc.getUri()))
                continue;
            Range<Integer> gRange = Range.closedOpen(g.getBegin(), g.getEnd());
            if (!docRange.isConnected(gRange)) {
                continue;
            }
            Range<Integer> overlap = docRange.intersection(gRange);
            if (overlap.isEmpty()) {
                continue;
            }
            overlapLength += overlap.upperEndpoint() - overlap.lowerEndpoint();
            sumPrecision += (float) overlapLength / (float) totalChars;
            count++;
            foundGoldTriplets.add(g);
            break;
        }
    }
    int numZeros = Sets.difference(Sets.newHashSet(gs), foundGoldTriplets).size();
    return (float) sumPrecision / (float) (count + numZeros);
}

From source file:com.github.msdevkit.datamodel.impl.SpectrumImpl.java

@Override
@Nonnull//from   w  w w .j a  v a  2s.  co  m
public DataPoint[] getDataPointsByMass(@Nonnull Range<Double> mzRange) {
    final DataPoint[] dataPoints = getDataPoints();
    int startIndex, endIndex;
    for (startIndex = 0; startIndex < dataPoints.length; startIndex++) {
        if (dataPoints[startIndex].getMz() >= mzRange.lowerEndpoint())
            break;
    }

    for (endIndex = startIndex; endIndex < dataPoints.length; endIndex++) {
        if (dataPoints[endIndex].getMz() > mzRange.upperEndpoint())
            break;
    }

    DataPoint pointsWithinRange[] = new DataPoint[endIndex - startIndex];

    // Copy the relevant points
    System.arraycopy(dataPoints, startIndex, pointsWithinRange, 0, endIndex - startIndex);

    return pointsWithinRange;
}

From source file:com.github.drbookings.ui.StatusLabelStringFactory.java

private String build(final boolean completePayment, final boolean netEarnings) {
    final StringBuilder sb = new StringBuilder();
    //      sb.append(BookingEntries.getMinDate(bookings.getAllBookings()).get());
    //      sb.append("  ");
    //      sb.append(BookingEntries.getMaxDate(bookings.getAllBookings()).get());
    //      sb.append("\t");
    Range<LocalDate> selectedRange = DateBeanSelectionManager.getInstance().getSelectedDateRange();
    if (selectedRange == null) {
        return sb.toString();
    }// w w w . j ava  2s  . c  o m
    sb.append("#unique nights: ");
    sb.append(LocalDates.getNumberOfNights(selectedRange.lowerEndpoint(), selectedRange.upperEndpoint()));
    sb.append("\tEarnings:");
    sb.append(DECIMAL_FORMAT.format(bookings.getAllBookings(false).stream().filter(b -> !b.isCheckOut())
            .mapToDouble(b -> b.getEarnings(netEarnings)).sum()));
    sb.append("\tAv.Earnings/Night/Room:");
    final OptionalDouble av = bookings.getAllBookings(false).stream().filter(b -> !b.isCheckOut())
            .mapToDouble(b -> b.getEarnings(netEarnings)).average();
    if (av.isPresent()) {
        sb.append(DECIMAL_FORMAT.format(av.getAsDouble()));
    } else {
        sb.append(DECIMAL_FORMAT.format(0));
    }
    sb.append("\tOccupancyRate:");
    sb.append(StatusLabelStringFactory.DECIMAL_FORMAT
            .format(new OccupancyRateProvider().getOccupancyRate() * 100));
    //      sb.append("\tMinPriceAtRate:");
    //      sb.append(StatusLabelStringFactory.DECIMAL_FORMAT.format(new MinimumPriceProvider().getMinimumPrice()));
    return sb.toString();
}

From source file:com.google.android.apps.forscience.whistlepunk.GraphPopulator.java

private Range<Long> getEffectiveAddedRange(TimeRange requested, Range<Long> returned) {
    if (returned == null) {
        return requested.getTimes().canonical(DiscreteDomain.longs());
    }//from   w w  w  .ja  v  a  2 s  .c o m

    switch (requested.getOrder()) {
    case NEWEST_FIRST:
        return Range.closed(returned.lowerEndpoint(), requested.getTimes().upperEndpoint());
    case OLDEST_FIRST:
        return Range.closed(requested.getTimes().lowerEndpoint(), returned.upperEndpoint());
    default:
        throw new IllegalArgumentException("Unexpected value for enum: " + requested.getOrder());
    }
}

From source file:com.nimbits.server.process.BlobStoreImpl.java

@Override
public void createBlobStoreEntity(final Entity entity, final ValueDayHolder holder) {

    //   logger.info("createBlobStoreEntity");

    final String json = gson.toJson(holder.getValues());

    Value mostRecent = null;//from   w  ww.  j av  a  2s  .  c  o  m
    for (Value value : holder.getValues()) {
        if (mostRecent == null) {
            mostRecent = value;
        } else if (mostRecent.getTimestamp().getTime() < value.getTimestamp().getTime()) {
            mostRecent = value;
        }

    }
    saveSnapshot(entity, mostRecent);
    Range<Date> range = holder.getTimeRange();

    final Date earliestForDay = range.lowerEndpoint();

    String root = settingsService.getSetting(ServerSetting.storeDirectory);
    String FILENAME = root + "/" + entity.getKey() + "/" + holder.getStartOfDay().getTime() + "/"
            + earliestForDay.getTime();//store.getId();
    // GcsService gcsService = GcsServiceFactory.createGcsService();
    writeFile(json, FILENAME);
}