32 #include <QTextStream>
47 QRegularExpression(
"^(\\d*\\.?\\d+)([^\\d^\\.^-]+)(-?\\d*\\.?\\d*[e-]?\\d*)");
54 int size =
log10(num);
56 QLatin1Char latin1_char(size);
57 QString base(latin1_char);
58 base.append(QString().setNum(num));
66 *p_out << (char)(
log10(num) + 97) << num;
86 int intPart =
static_cast<int>(value);
90 double decimalPart = value - intPart;
96 while(decimalPart > 0)
122 if(decimal_places < 0)
125 return ceil((value * pow(10, decimal_places)) - 0.49) /
126 pow(10, decimal_places);
134 if(
sizeof(
int *) == 4)
136 test_decimal = 100000000;
138 return (floor(input * test_decimal));
145 std::string env_backup = setlocale(LC_ALL,
"");
153 setlocale(LC_ALL,
"C");
156 QByteArray byte_array = text.toUtf8();
157 std::string stdText =
"";
159 for(
char c : byte_array)
165 setlocale(LC_ALL, env_backup.c_str());
175 QFile file(file_name);
177 if(file.open(QFile::WriteOnly | QFile::Truncate))
180 QTextStream out(&file);
198 QFile file(file_name);
200 if(file.open(QFile::WriteOnly | QFile::Append))
203 QTextStream out(&file);
220 qDebug() <<
" " << spectrum_native_id;
221 QStringList native_id_list = spectrum_native_id.split(
"=");
222 if(native_id_list.size() < 2)
225 QObject::tr(
"scan number not found in mzML native id %1")
226 .arg(spectrum_native_id));
244 return native_id_list.back().toULong();
253 return QString(
"%1").arg(
254 (quintptr)pointer, QT_POINTER_SIZE * 2, 16, QChar(
'0'));
275 double valueSum = std::abs(value1 + value2);
279 double valueDiff = std::abs(value1 - value2);
283 double epsilon = std::numeric_limits<double>::epsilon();
287 double scaleFactor = epsilon * valueSum * decimalPlaces;
295 bool res = valueDiff < scaleFactor
297 || valueDiff < std::numeric_limits<double>::min();
309 return std::nextafter(value, value + 1);
315 const QString &msg, std::chrono::system_clock::time_point chrono_time)
320 tt = std::chrono::system_clock::to_time_t(chrono_time);
323 QString(
"%1 - %2\n").arg(msg).arg(QString::fromLatin1(ctime(&tt)));
332 std::chrono::system_clock::time_point chrono_start,
333 std::chrono::system_clock::time_point chrono_finish)
337 "%1 %2 min = %3 s = %4 ms = %5 "
340 .arg(std::chrono::duration_cast<std::chrono::minutes>(chrono_finish -
343 .arg(std::chrono::duration_cast<std::chrono::seconds>(chrono_finish -
346 .arg(std::chrono::duration_cast<std::chrono::milliseconds>(chrono_finish -
349 .arg(std::chrono::duration_cast<std::chrono::microseconds>(chrono_finish -
359 std::size_t &error_count)
362 QStringList string_list =
363 text.split(QRegularExpression(
"[\\s]+"), Qt::SkipEmptyParts);
367 std::vector<double> double_vector;
369 for(
int iter = 0; iter < string_list.size(); ++iter)
371 QString current_string = string_list.at(iter);
375 double current_double = current_string.toDouble(&ok);
377 if(!current_double && !ok)
383 double_vector.push_back(current_double);
386 return double_vector;
390 std::vector<std::size_t>
392 std::size_t &error_count)
396 QStringList string_list =
397 text.split(QRegularExpression(
"[\\s]+"), Qt::SkipEmptyParts);
402 std::vector<std::size_t> sizet_vector;
404 for(
int iter = 0; iter < string_list.size(); ++iter)
406 QString current_string = string_list.at(iter);
410 std::size_t current_sizet = current_string.toUInt(&ok);
412 if(!current_sizet && !ok)
418 sizet_vector.push_back(current_sizet);
450 return "abSciexWiff";
454 return "agilentMassHunter";
static std::size_t extractScanNumberFromMzmlNativeId(const QString &spectrum_native_id)
static QString chronoTimePointDebugString(const QString &msg, std::chrono::system_clock::time_point chrono_time=std::chrono::system_clock::now())
static QString pointerToString(const void *const pointer)
static pappso_double roundToDecimals(pappso_double value, int decimal_places)
static bool almostEqual(double value1, double value2, int decimalPlaces=10)
static std::vector< double > splitMzStringToDoubleVectorWithSpaces(const QString &text, std::size_t &error_count)
static double nearestGreater(double value)
static std::string toUtf8StandardString(const QString &text)
static bool appendToFile(const QString &text, const QString &file_name)
static QString booleanToString(bool value)
convenient function to transform a boolean to QString "TRUE" or "FALSE" QString returned is readable ...
static QString mzFormatAsString(MzFormat mz_format)
Convenience function to return a string describing the MzFormat of a file.
static QString chronoIntervalDebugString(const QString &msg, std::chrono::system_clock::time_point chrono_start, std::chrono::system_clock::time_point chrono_finish=std::chrono::system_clock::now())
static bool writeToFile(const QString &text, const QString &file_name)
static std::vector< std::size_t > splitSizetStringToSizetVectorWithSpaces(const QString &text, std::size_t &error_count)
static QRegularExpression xyMassDataFormatRegExp
static const QString getLexicalOrderedString(unsigned int num)
static void writeLexicalOrderedString(QTextStream *p_out, unsigned int num)
static int zeroDecimalsInValue(pappso_double value)
0.11 would return 0 (no empty decimal) 2.001 would return 2 1000.0001254 would return 3
static QRegularExpression endOfLineRegExp
Regular expression that tracks the end of line in text files.
static long long int roundToDecimal32bitsAsLongLongInt(pappso::pappso_double input)
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
double pappso_double
A type definition for doubles.
This header contains all the type re-definitions and all the global variables definitions used in the...