32 #include <QTextStream>
47 QRegularExpression(
"^(\\d*\\.?\\d+)([^\\d^\\.^-]+)(-?\\d*\\.?\\d*[e-]?\\d*)");
54 int size =
log10(num);
57 base.append(QString().setNum(num));
65 *p_out << (char)(
log10(num) + 97) << num;
83 int intPart =
static_cast<int>(value);
85 double decimalPart = value - intPart;
106 if(decimal_places < 0)
109 return ceil((value * pow(10, decimal_places)) - 0.49) /
110 pow(10, decimal_places);
117 std::string env_backup = setlocale(LC_ALL,
"");
125 setlocale(LC_ALL,
"C");
128 QByteArray byte_array = text.toUtf8();
129 std::string stdText =
"";
131 for(
char c : byte_array)
137 setlocale(LC_ALL, env_backup.c_str());
147 QFile file(file_name);
149 if(file.open(QFile::WriteOnly | QFile::Truncate))
152 QTextStream out(&file);
170 QFile file(file_name);
172 if(file.open(QFile::WriteOnly | QFile::Append))
175 QTextStream out(&file);
192 qDebug() <<
" " << spectrum_native_id;
193 QStringList native_id_list = spectrum_native_id.split(
"=");
194 if(native_id_list.size() < 2)
197 QObject::tr(
"scan number not found in mzML native id %1")
198 .arg(spectrum_native_id));
216 return native_id_list.back().toULong();
225 return QString(
"%1").arg(
226 (quintptr)pointer, QT_POINTER_SIZE * 2, 16, QChar(
'0'));
247 double valueSum = std::abs(value1 + value2);
251 double valueDiff = std::abs(value1 - value2);
255 double epsilon = std::numeric_limits<double>::epsilon();
259 double scaleFactor = epsilon * valueSum * decimalPlaces;
267 bool res = valueDiff < scaleFactor
269 || valueDiff < std::numeric_limits<double>::min();
280 const QString &msg, std::chrono::system_clock::time_point chrono_time)
285 tt = std::chrono::system_clock::to_time_t(chrono_time);
288 QString(
"%1 - %2\n").arg(msg).arg(QString::fromLatin1(ctime(&tt)));
297 std::chrono::system_clock::time_point chrono_start,
298 std::chrono::system_clock::time_point chrono_finish)
302 "%1 %2 min = %3 s = %4 ms = %5 "
305 .arg(std::chrono::duration_cast<std::chrono::minutes>(chrono_finish -
308 .arg(std::chrono::duration_cast<std::chrono::seconds>(chrono_finish -
311 .arg(std::chrono::duration_cast<std::chrono::milliseconds>(chrono_finish -
314 .arg(std::chrono::duration_cast<std::chrono::microseconds>(chrono_finish -
324 std::size_t &error_count)
327 QStringList string_list =
328 text.split(QRegularExpression(
"[\\s]+"), Qt::SkipEmptyParts);
332 std::vector<double> double_vector;
334 for(
int iter = 0; iter < string_list.size(); ++iter)
336 QString current_string = string_list.at(iter);
340 double current_double = current_string.toDouble(&ok);
342 if(!current_double && !ok)
348 double_vector.push_back(current_double);
351 return double_vector;
355 std::vector<std::size_t>
357 std::size_t &error_count)
361 QStringList string_list =
362 text.split(QRegularExpression(
"[\\s]+"), Qt::SkipEmptyParts);
367 std::vector<std::size_t> sizet_vector;
369 for(
int iter = 0; iter < string_list.size(); ++iter)
371 QString current_string = string_list.at(iter);
375 std::size_t current_sizet = current_string.toUInt(&ok);
377 if(!current_sizet && !ok)
383 sizet_vector.push_back(current_sizet);
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 std::string toUtf8StandardString(const QString &text)
static bool appendToFile(const QString &text, const QString &file_name)
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.
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...