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