/** Calculate the frequency of every one of the keys of the X axis */ @Override protected void processData(ExperimentSummaryData summaryData) { Map<Integer, Integer> valuesIdentified = new HashMap<Integer, Integer>(); Map<Integer, Integer> valuesUnidentified = new HashMap<Integer, Integer>(); List<Double> chargeIdentified = summaryData.getPrecChargeVecExp(true); int maxChargeFound = 0; for (double key : chargeIdentified) { int auxKey = (int) key; int value = valuesIdentified.containsKey(auxKey) ? valuesIdentified.get(auxKey) + 1 : 1; valuesIdentified.put(auxKey, value); if (auxKey > maxChargeFound) maxChargeFound = auxKey; } List<Double> chargeUnidentified = summaryData.getPrecChargeVecExp(false); for (double key : chargeUnidentified) { int auxKey = (int) key; int value = valuesUnidentified.containsKey(auxKey) ? valuesUnidentified.get(auxKey) + 1 : 1; valuesUnidentified.put(auxKey, value); if (auxKey > maxChargeFound) maxChargeFound = auxKey; } if (maxChargeFound == 0) { recordError("No correct charges has been found"); return; } List<SeriesPair<Integer, Integer>> identified = new ArrayList<SeriesPair<Integer, Integer>>(); // List<SeriesPair<Integer,Integer>> unidentified = new // ArrayList<SeriesPair<Integer,Integer>>(); // With the 'for' loop we ensure that the SeriesPair are added in an ordered way for (int key = 1; key <= maxChargeFound; key++) { // Only the charges found are stored int the intermediate identified if (valuesIdentified.containsKey(key)) identified.add(new SeriesPair<Integer, Integer>(key, valuesIdentified.get(key))); // if(valuesUnidentified.containsKey(key)) // unidentified.add(new SeriesPair<Integer, Integer>(key,valuesUnidentified.get(key))); } if (identified.isEmpty()) { recordError("The experiment does not contain identified spectra"); return; } intermediateData = new IntermediateData(); // In this case the type and the name of the series are the same intermediateData.addPrideChartSerie( new DataSeries<Integer, Integer>( DataSeriesType.IDENTIFIED_SPECTRA, "Identified Spectra", identified)); // intermediateData.addPrideChartSerie(new // DataSeries<Integer,Integer>(DataSeriesType.UNIDENTIFIED_SPECTRA, "Unidentified Spectra", // unidentified)); try { intermediateData.setVariable("experimentSize", summaryData.size()); } catch (JSONException e) { e.printStackTrace(); } }