From 1c199250c20b6d3751319c16f13a79f43805a7cf Mon Sep 17 00:00:00 2001
From: Olivier Langella <olivier.langella@u-psud.fr>
Date: Mon, 18 Dec 2017 22:34:55 +0100
Subject: [PATCH] new function to get histogram

---
 src/utils/utils.cpp | 18 ++++++++++++++++++
 src/utils/utils.h   |  1 +
 2 files changed, 19 insertions(+)

diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp
index e75b6836a..52a4a8025 100644
--- a/src/utils/utils.cpp
+++ b/src/utils/utils.cpp
@@ -37,6 +37,24 @@ const QString Utils::getDatabaseName(ExternalDatabase database) {
 }
 
 
+std::vector<size_t> Utils::getHistogram(std::vector<pappso::pappso_double> data_values, unsigned int number_of_class) {
+
+
+    std::vector<size_t> histogram(number_of_class);
+    
+    std::sort(data_values.begin(), data_values.end());
+    pappso::pappso_double min = *data_values.begin();
+    pappso::pappso_double max = *(data_values.end()-1);
+    pappso::pappso_double offset = (max-min)/ (pappso::pappso_double) number_of_class;
+
+    for (pappso::pappso_double value :data_values) {
+        histogram[(value /offset )] = value;
+    }
+
+    return histogram;
+}
+
+
 pappso::AaModificationP Utils::guessAaModificationPbyMonoisotopicMassDelta(pappso::mz mass) {
     pappso::PrecisionP precision = pappso::Precision::getDaltonInstance(0.01);
 
diff --git a/src/utils/utils.h b/src/utils/utils.h
index 7f5c1ae55..2c17e8f21 100644
--- a/src/utils/utils.h
+++ b/src/utils/utils.h
@@ -35,6 +35,7 @@ public:
     static const QString getDatabaseName(ExternalDatabase database);
     static const QString getXmlDouble(pappso::pappso_double number);
     static pappso::AaModificationP guessAaModificationPbyMonoisotopicMassDelta(pappso::mz mass);
+    static std::vector<size_t> getHistogram(std::vector<pappso::pappso_double> data_values, unsigned int number_of_class);
 
 };
 
-- 
GitLab