List of usage examples for com.google.common.math DoubleMath mean
@GwtIncompatible("com.google.common.math.DoubleUtils") public static double mean(Iterator<? extends Number> values)
From source file:task3.Task3.java
private static float getAvrgPrice(List<Book> books) { List<Float> list = new ArrayList<Float>(); for (Book book : books) { list.add(book.getPrice());//w w w . java 2 s. co m } return new Float(DoubleMath.mean(list)); }
From source file:de.bund.bfr.knime.pmmlite.core.CombineUtils.java
public static List<TertiaryModel> combine(List<SecondaryModel> dataModels) throws UnitException { // 1. find secondary models and data for each primary model Map<String, PrimaryModel> primModelMap = new LinkedHashMap<>(); Map<String, Map<String, Double>> paramMeanMap = new LinkedHashMap<>(); ListMultimap<String, SecondaryModel> secModelMap = ArrayListMultimap.create(); ListMultimap<String, TimeSeries> dataMap = ArrayListMultimap.create(); for (SecondaryModel dataModel : dataModels) { PrimaryModel primModel = dataModel.getData().get(0); String id = primModel.getFormula().getId(); if (!primModelMap.containsKey(id)) { primModelMap.put(id, primModel); ListMultimap<String, Double> paramValues = ArrayListMultimap.create(); for (PrimaryModel primData : dataModel.getData()) { dataMap.put(id, primData.getData()); for (Parameter param : primModel.getFormula().getParams()) { ParameterValue value = primData.getParamValues().get(param.getName()); if (value != null && value.getValue() != null) { paramValues.put(param.getName(), value.getValue()); }/*from w ww . j av a 2s . c o m*/ } } Map<String, Double> paramMeans = new LinkedHashMap<>(); for (Map.Entry<String, Collection<Double>> entry : paramValues.asMap().entrySet()) { paramMeans.put(entry.getKey(), DoubleMath.mean(Doubles.toArray(entry.getValue()))); } paramMeanMap.put(id, paramMeans); } secModelMap.put(id, dataModel); paramMeanMap.get(id) .remove(dataModel.getAssignments().get(dataModel.getFormula().getDepVar().getName())); } // 2. if secondary does not exist for a parameter create constant model // 3. call combine for each primary models with its secondary models List<TertiaryModel> tertiaryModels = new ArrayList<>(); for (Map.Entry<String, PrimaryModel> entry : primModelMap.entrySet()) { String id = entry.getKey(); PrimaryModel primModel = entry.getValue(); List<SecondaryModel> secModels = secModelMap.get(id); List<Model> allModels = new ArrayList<>(); allModels.add(primModel); allModels.addAll(secModels); TertiaryModel tertModel = ModelsFactory.eINSTANCE.createTertiaryModel(); tertModel.setId(Joiner.on("").join(PmmUtils.getIds(allModels))); tertModel.setName(Joiner.on("_").join(PmmUtils.getNames(secModels))); for (Map.Entry<String, VariableRange> range : primModel.getVariableRanges().entrySet()) { tertModel.getVariableRanges().put(range.getKey(), EcoreUtil.copy(range.getValue())); } for (Map.Entry<String, ParameterValue> value : primModel.getParamValues().entrySet()) { tertModel.getParamValues().put(value.getKey(), EcoreUtil.copy(value.getValue())); } for (SecondaryModel secModel : secModels) { String depVarAssignment = secModel.getAssignments() .get(secModel.getFormula().getDepVar().getName()); tertModel.getParamValues().remove(depVarAssignment); } List<SecondaryModelFormula> secFormulas = new ArrayList<>(); Map<String, String> assignments = new LinkedHashMap<>(); Map<String, Renamings> secondaryRenamings = new LinkedHashMap<>(); for (SecondaryModel secModel : secModels) { SecondaryModelFormula secFormula = secModel.getFormula(); String depVarAssignment = secModel.getAssignments().get(secFormula.getDepVar().getName()); Renamings renamings = ModelsFactory.eINSTANCE.createRenamings(); for (Map.Entry<String, String> assignment : secModel.getAssignments().entrySet()) { if (!assignment.getKey().equals(secFormula.getDepVar().getName())) { renamings.getMap().put(assignment.getKey(), assignment.getValue()); tertModel.getAssignments().put(assignment.getValue(), assignment.getValue()); } } secFormulas.add(secFormula); assignments.put(depVarAssignment, secFormula.getId()); secondaryRenamings.put(depVarAssignment, renamings); for (Variable var : secFormula.getIndepVars()) { VariableRange range = secModel.getVariableRanges() .get(secModel.getAssignments().get(var.getName())); addIndep(tertModel, renamings.getMap().get(var.getName()), EcoreUtil.copy(range)); } for (Map.Entry<String, ParameterValue> value : secModel.getParamValues().entrySet()) { addParam(tertModel, value.getKey(), EcoreUtil.copy(value.getValue())); } } for (Parameter param : primModel.getFormula().getParams()) { if (!assignments.containsKey(param.getName())) { ParameterValue value = ModelsFactory.eINSTANCE.createParameterValue(); value.setValue(paramMeanMap.get(primModel.getFormula().getId()).get(param.getName())); tertModel.getParamValues().put(param.getName(), value); } } for (ParameterValue value : tertModel.getParamValues().values()) { value.setError(null); value.setP(null); value.setT(null); value.getCorrelations().clear(); } tertModel.setFormula(combine(primModel.getFormula(), secFormulas, assignments, secondaryRenamings)); tertModel.getAssignments().putAll(primModel.getAssignments()); tertModel.getData().addAll(dataMap.get(id)); tertiaryModels.add(tertModel); } return tertiaryModels; }
From source file:de.bund.bfr.math.MathUtils.java
public static Double getR2(double sse, List<Double> targetValues) { if (targetValues.size() < 2) { return null; }/*from w w w. ja va 2s.c o m*/ double targetMean = DoubleMath.mean(targetValues); double targetTotalSumOfSquares = targetValues.stream().mapToDouble(v -> Math.pow(v - targetMean, 2.0)) .sum(); double rSquared = 1 - sse / targetTotalSumOfSquares; return Math.max(rSquared, 0.0); }
From source file:controller.FeatureController.java
public static double[] computeFeatures(float[] y, FilterCoefficients filterCoefficients) { double[] x = Util.floatToDouble(y); TDoubleArrayList features = new TDoubleArrayList(); int wlen = 100, noutput = 100; float[][] stft = new float[noutput][wlen]; filtfilt(x, filterCoefficients);/*from w ww .ja va 2 s . c om*/ features.add(FastMath.sqrt(StatUtils.variance(x))); Skewness skew = new Skewness(); features.add(skew.evaluate(x)); Kurtosis kurt = new Kurtosis(); features.add(kurt.evaluate(x)); x = Math2.zscore(x); double[] d = Math2.diff(Math2.diff(x)); features.add(Doubles.max(Math2.abs(d))); List<float[]> wdec = Entropies.wavedecomposition(Util.doubleToFloat(x)); features.add(wdec.stream().mapToDouble(e -> FastMath.log(DoubleMath.mean(Math2.abs(Util.floatToDouble(e))))) .toArray()); features.add(Entropies.wpentropy(Util.doubleToFloat(x), 6, 1)); features.add(wdec.stream().mapToDouble(e -> Entropies.wpentropy(e, 6, 1)).toArray()); features.add(Signal.lineSpectralPairs(x, 10)); features.add(Arrays.copyOf( Util.floatToDouble(tools.Signal.logAbsStft(Util.doubleToFloat(x), wlen, noutput, stft)), 10)); double[] x_pos = new double[x.length]; double[] x_neg = new double[x.length]; for (int i = 0; i < x.length; i++) { x_pos[i] = (x[i] >= 0) ? x[i] : 0; x_neg[i] = (x[i] <= 0) ? x[i] : 0; } features.add(Arrays.copyOf( Util.floatToDouble(tools.Signal.logAbsStft(Util.doubleToFloat(x_pos), wlen, noutput, stft)), 10)); features.add(Arrays.copyOf( Util.floatToDouble(tools.Signal.logAbsStft(Util.doubleToFloat(x_neg), wlen, noutput, stft)), 10)); return features.toArray(); }
From source file:org.matsim.contrib.parking.parkingsearch.evaluation.ParkingSearchEvaluator.java
/** * @param distances2//from w w w . j av a 2 s . c o m * @param distanceFile */ private void writeStats(Map<Id<Link>, List<Double>> map, String distanceFile) { BufferedWriter bw = IOUtils.getBufferedWriter(distanceFile); try { bw.write("LinkId;Average;Min;Max;Arrivals"); for (Entry<Id<Link>, List<Double>> e : map.entrySet()) { bw.newLine(); bw.write(e.getKey() + ";" + DoubleMath.mean(e.getValue()) + ";" + Collections.min(e.getValue()) + ";" + Collections.max(e.getValue()) + ";" + e.getValue().size()); } bw.flush(); bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:io.github.msdk.io.mztab.MzTabFileImportMethod.java
@SuppressWarnings({ "unchecked" })
private void addRows(@Nonnull FeatureTable featureTable, @Nonnull MZTabFile mzTabFile) {
String formula, smiles, inchiKey, description, database, identifier;
// String dbVersion, reliability, url;
Double mzCalc = null, featureArea = null;
Double mzExp;/* www .j ava2s.c om*/
Float rtAverageValue = null;
Integer charge = null;
// Loop through small molecules data
Collection<SmallMolecule> smallMolecules = mzTabFile.getSmallMolecules();
for (SmallMolecule smallMolecule : smallMolecules) {
parsedRows++;
FeatureTableColumn<Object> column;
FeatureTableRow currentRow = MSDKObjectBuilder.getFeatureTableRow(featureTable, parsedRows);
formula = smallMolecule.getChemicalFormula();
smiles = smallMolecule.getSmiles().toString();
inchiKey = smallMolecule.getInchiKey().toString();
description = smallMolecule.getDescription();
database = smallMolecule.getDatabase();
// dbVersion = smallMolecule.getDatabaseVersion();
identifier = smallMolecule.getIdentifier().toString();
SplitList<Double> rt = smallMolecule.getRetentionTime();
mzExp = smallMolecule.getExpMassToCharge();
// if (smallMolecule.getReliability() != null)
// reliability = smallMolecule.getReliability().toString();
// if (smallMolecule.getURI() != null)
// url = smallMolecule.getURI().toString();
if (smallMolecule.getCalcMassToCharge() != null)
mzCalc = smallMolecule.getCalcMassToCharge();
if (smallMolecule.getCharge() != null)
charge = smallMolecule.getCharge();
// Calculate average RT if multiple values are available
if (rt != null && !rt.isEmpty())
rtAverageValue = (float) DoubleMath.mean(rt);
// Chromatography Info
ChromatographyInfo chromatographyInfo = MSDKObjectBuilder
.getChromatographyInfo1D(SeparationType.UNKNOWN, rtAverageValue);
// Ion Annotation
IonAnnotation ionAnnotation = MSDKObjectBuilder.getSimpleIonAnnotation();
ionAnnotation.setAnnotationId(database);
ionAnnotation.setDescription(description);
ionAnnotation.setExpectedMz(mzCalc);
ionAnnotation.setAnnotationId(identifier);
// Convert formula to IMolecularFormula using CDK
if (!Strings.isNullOrEmpty(formula)) {
IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance();
IMolecularFormula cdkFormula = MolecularFormulaManipulator.getMolecularFormula(formula, builder);
ionAnnotation.setFormula(cdkFormula);
}
// Convert SMILES to IAtomContainer using CDK
if (!Strings.isNullOrEmpty(smiles)) {
try {
SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance());
IAtomContainer chemicalStructure = sp.parseSmiles(smiles);
ionAnnotation.setChemicalStructure(chemicalStructure);
} catch (InvalidSmilesException e) {
e.printStackTrace();
}
}
// Add common data to columns
// Common column: Id
column = featureTable.getColumn(ColumnName.ID, null);
currentRow.setData(column, parsedRows);
// Common column: m/z
column = featureTable.getColumn(ColumnName.MZ, null);
currentRow.setData(column, mzExp);
// Common column: Chromatography Info
FeatureTableColumn<ChromatographyInfo> ciColumn = featureTable.getColumn("Chromatography Info", null,
ChromatographyInfo.class);
currentRow.setData(ciColumn, chromatographyInfo);
// Common column: Ion Annotation
column = featureTable.getColumn(ColumnName.IONANNOTATION, null);
List<IonAnnotation> ionAnnotations = (List<IonAnnotation>) currentRow.getData(column);
if (ionAnnotations == null)
ionAnnotations = new ArrayList<IonAnnotation>();
ionAnnotations.add(ionAnnotation);
currentRow.setData(column, ionAnnotations);
// Common column: Charge
column = featureTable.getColumn(ColumnName.CHARGE, null);
if (charge != null)
currentRow.setData(column, charge);
// Add data to sample specific columns
SortedMap<Integer, Assay> assayMap = mzTabFile.getMetadata().getAssayMap();
for (Entry<Integer, Assay> entry : assayMap.entrySet()) {
Assay sampleAssay = assayMap.get(entry.getKey());
int sampleKey = sampleAssay.getId();
// Abundance - Area
if (smallMolecule.getAbundanceColumnValue(sampleAssay) != null) {
featureArea = Double.parseDouble(smallMolecule.getAbundanceColumnValue(sampleAssay).toString());
column = (FeatureTableColumn<Object>) tableColumns
.get("[" + sampleKey + "]_" + ColumnName.AREA.getName());
currentRow.setData(column, featureArea);
}
// Optional columns
for (String columnName : columnNameArray) {
if (smallMolecule.getOptionColumnValue(sampleAssay, columnName) != null) {
column = (FeatureTableColumn<Object>) tableColumns
.get("opt_assay[" + sampleKey + "]_" + columnName);
String classType = getDataTypeClass(columnName).getSimpleName();
String orgValue = smallMolecule.getOptionColumnValue(sampleAssay, columnName);
switch (classType) {
case "Float":
Float floatValue = Float.parseFloat(orgValue);
currentRow.setData(column, floatValue);
break;
case "Double":
Double doubleValue = Double.parseDouble(orgValue);
currentRow.setData(column, doubleValue);
break;
case "Integer":
Integer integerValue = Integer.parseInt(orgValue);
currentRow.setData(column, integerValue);
break;
case "ChromatographyInfo":
Float rtValue = Float.parseFloat(orgValue);
ChromatographyInfo ciValue = MSDKObjectBuilder
.getChromatographyInfo1D(SeparationType.UNKNOWN, rtValue);
currentRow.setData(column, ciValue);
break;
}
}
}
}
// Add row to feature table
newFeatureTable.addRow(currentRow);
// Check if cancel is requested
if (canceled) {
return;
}
}
}
From source file:net.sf.mzmine.modules.peaklistmethods.io.mztabimport.MzTabImportTask.java
private void importSmallMolecules(PeakList newPeakList, MZTabFile mzTabFile, Map<Integer, RawDataFile> rawDataFiles) { SortedMap<Integer, Assay> assayMap = mzTabFile.getMetadata().getAssayMap(); Collection<SmallMolecule> smallMolecules = mzTabFile.getSmallMolecules(); // Loop through SML data String formula, description, database, url = ""; double mzExp = 0, abundance = 0, peak_mz = 0, peak_rt = 0, peak_height = 0, rtValue = 0; // int charge = 0; int rowCounter = 0; for (SmallMolecule smallMolecule : smallMolecules) { // Stop the process if cancel() was called if (isCanceled()) return; rowCounter++;//from w ww .j ava 2s .c o m formula = smallMolecule.getChemicalFormula(); // smile = smallMolecule.getSmiles(); // inchiKey = smallMolecule.getInchiKey(); description = smallMolecule.getDescription(); // species = smallMolecule.getSpecies(); database = smallMolecule.getDatabase(); // dbVersion = smallMolecule.getDatabaseVersion(); // reliability = smallMolecule.getReliability(); if (smallMolecule.getURI() != null) { url = smallMolecule.getURI().toString(); } String identifier = smallMolecule.getIdentifier().toString(); SplitList<Double> rt = smallMolecule.getRetentionTime(); // SplitList<Modification> modifications = // smallMolecule.getModifications(); if (smallMolecule.getExpMassToCharge() != null) { mzExp = smallMolecule.getExpMassToCharge(); } // if (smallMolecule.getCharge() != null) charge = // smallMolecule.getCharge(); // Calculate average RT if multiple values are available if (rt != null && !rt.isEmpty()) { rtValue = DoubleMath.mean(rt); } if ((url != null) && (url.equals("null"))) { url = null; } if (identifier.equals("null")) { identifier = null; } if (description == null && identifier != null) { description = identifier; } // Add shared information to row SimplePeakListRow newRow = new SimplePeakListRow(rowCounter); newRow.setAverageMZ(mzExp); newRow.setAverageRT(rtValue); if (description != null) { SimplePeakIdentity newIdentity = new SimplePeakIdentity(description, formula, database, identifier, url); newRow.addPeakIdentity(newIdentity, false); } // Add raw data file entries to row for (Entry<Integer, RawDataFile> rawDataEntry : rawDataFiles.entrySet()) { RawDataFile rawData = rawDataEntry.getValue(); Assay dataFileAssay = assayMap.get(rawDataEntry.getKey()); abundance = 0; peak_mz = 0; peak_rt = 0; peak_height = 0; if (smallMolecule.getAbundanceColumnValue(dataFileAssay) != null) { abundance = smallMolecule.getAbundanceColumnValue(dataFileAssay); } if (smallMolecule.getOptionColumnValue(dataFileAssay, "peak_mz") != null) { peak_mz = Double.parseDouble(smallMolecule.getOptionColumnValue(dataFileAssay, "peak_mz")); } else { peak_mz = mzExp; } if (smallMolecule.getOptionColumnValue(dataFileAssay, "peak_rt") != null) { peak_rt = Double.parseDouble(smallMolecule.getOptionColumnValue(dataFileAssay, "peak_rt")); } else { peak_rt = rtValue; } if (smallMolecule.getOptionColumnValue(dataFileAssay, "peak_height") != null) { peak_height = Double .parseDouble(smallMolecule.getOptionColumnValue(dataFileAssay, "peak_height")); } else { peak_height = 0.0; } int scanNumbers[] = {}; DataPoint finalDataPoint[] = new DataPoint[1]; finalDataPoint[0] = new SimpleDataPoint(peak_mz, peak_height); int representativeScan = 0; int fragmentScan = 0; Range<Double> finalRTRange = Range.singleton(peak_rt); Range<Double> finalMZRange = Range.singleton(peak_mz); Range<Double> finalIntensityRange = Range.singleton(peak_height); FeatureStatus status = FeatureStatus.DETECTED; Feature peak = new SimpleFeature(rawData, peak_mz, peak_rt, peak_height, abundance, scanNumbers, finalDataPoint, status, representativeScan, fragmentScan, finalRTRange, finalMZRange, finalIntensityRange); if (abundance > 0) { newRow.addPeak(rawData, peak); } } // Add row to peak list newPeakList.addRow(newRow); } }