diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp index e75b6836a49bb797d005c4676358f9365db342a0..52a4a80255d9de4e2160c938315234956ee552e8 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 7f5c1ae5557ccab6ad8f4a44eed69c53400e324a..2c17e8f21aa4328e03454f1c5cb329c2a27227b5 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); };