List of usage examples for com.google.common.collect Range lowerEndpoint
public C lowerEndpoint()
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); }