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();
281 return std::nextafter(value, value + 1);
287 const QString &msg, std::chrono::system_clock::time_point chrono_time)
292 tt = std::chrono::system_clock::to_time_t(chrono_time);
295 QString(
"%1 - %2\n").arg(msg).arg(QString::fromLatin1(ctime(&tt)));
304 std::chrono::system_clock::time_point chrono_start,
305 std::chrono::system_clock::time_point chrono_finish)
309 "%1 %2 min = %3 s = %4 ms = %5 "
312 .arg(std::chrono::duration_cast<std::chrono::minutes>(chrono_finish -
315 .arg(std::chrono::duration_cast<std::chrono::seconds>(chrono_finish -
318 .arg(std::chrono::duration_cast<std::chrono::milliseconds>(chrono_finish -
321 .arg(std::chrono::duration_cast<std::chrono::microseconds>(chrono_finish -
331 std::size_t &error_count)
334 QStringList string_list =
335 text.split(QRegularExpression(
"[\\s]+"), QString::SkipEmptyParts);
339 std::vector<double> double_vector;
341 for(
int iter = 0; iter < string_list.size(); ++iter)
343 QString current_string = string_list.at(iter);
347 double current_double = current_string.toDouble(&ok);
349 if(!current_double && !ok)
355 double_vector.push_back(current_double);
358 return double_vector;
362 std::vector<std::size_t>
364 std::size_t &error_count)
368 QStringList string_list =
369 text.split(QRegularExpression(
"[\\s]+"), QString::SkipEmptyParts);
374 std::vector<std::size_t> sizet_vector;
376 for(
int iter = 0; iter < string_list.size(); ++iter)
378 QString current_string = string_list.at(iter);
382 std::size_t current_sizet = current_string.toUInt(&ok);
384 if(!current_sizet && !ok)
390 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 double nearestGreater(double value)
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...