54 double margin_in_seconds)
56 m_isPeakShapeOutput = is_shape_output;
57 m_peakShapeMarginInSeconds = margin_in_seconds;
63 m_isTraceOutput = is_trace_output;
77 mpa_writer->append(QLatin1String(
"end"));
78 mpa_writer->startMap();
79 mpa_writer->append(QLatin1String(
"timestamp"));
80 mpa_writer->append(QDateTime::currentDateTime().toString(Qt::ISODate));
94 const QJsonObject &json_object)
96 mpa_writer->append(name);
98 map = map.fromJsonObject(json_object);
99 map.toCborValue().toCbor(*mpa_writer);
105 return (*mpa_writer);
112 mpa_writer->append(QLatin1String(
"msrun"));
113 mpa_writer->startMap(3);
114 mpa_writer->append(QLatin1String(
"id"));
116 mpa_writer->append(QLatin1String(
"filename"));
117 mpa_writer->append(msrun.
getMsRunReaderSPtr().get()->getMsRunId().get()->getFileName());
118 mpa_writer->append(QLatin1String(
"sample"));
119 mpa_writer->append(msrun.
getMsRunReaderSPtr().get()->getMsRunId().get()->getSampleName());
120 mpa_writer->endMap();
132 mpa_writer->append(peptide_sp.get()->getId());
133 mpa_writer->startMap();
136 mpa_writer->append(QLatin1String(
"proforma"));
137 mpa_writer->append(peptide_sp.get()->getPappsoPeptideSp().get()->toProForma());
140 mpa_writer->append(QLatin1String(
"mods"));
141 mpa_writer->append(peptide_sp.get()->getMods());
144 if(size_measurement > 0)
146 mpa_writer->append(QLatin1String(
"rt_target"));
151 mpa_writer->append(QLatin1String(
"xics"));
152 mpa_writer->startArray(size_measurement);
157 writeMeasurement(measure, msrun_retention_time_p);
159 mpa_writer->endArray();
161 mpa_writer->endMap();
170 mpa_writer->startMap();
171 mpa_writer->append(QLatin1String(
"charge"));
172 mpa_writer->append(measurement.
m_charge);
174 mpa_writer->append(QLatin1String(
"mz"));
175 mpa_writer->append(measurement.
msp_xicCoord.get()->mzRange.getMz());
177 if(m_isXicCoordOutput)
179 measurement.
msp_xicCoord.get()->writeCborStream(*mpa_writer);
184 mpa_writer->append(QLatin1String(
"isotope"));
187 mpa_writer->append(QLatin1String(
"rank"));
190 mpa_writer->append(QLatin1String(
"th_ratio"));
195 mpa_writer->append(QLatin1String(
"quality"));
201 mpa_writer->append(QLatin1String(
"label"));
205 if(m_isTraceOutput && (measurement.
msp_xicCoord.get()->xicSptr.get() !=
nullptr))
207 mpa_writer->append(QLatin1String(
"trace"));
208 writeTrace(*(measurement.
msp_xicCoord.get()->xicSptr.get()));
215 if(m_isPeakShapeOutput && (measurement.
msp_xicCoord.get()->xicSptr.get() !=
nullptr))
218 mpa_writer->append(QLatin1String(
"peak_shape"));
219 mpa_writer->startMap();
220 mpa_writer->append(QLatin1String(
"trace"));
225 measurement.
m_tracePeakSp.get()->getLeftBoundary().x - m_peakShapeMarginInSeconds,
226 measurement.
m_tracePeakSp.get()->getRightBoundary().x + m_peakShapeMarginInSeconds);
229 trace_sp.get()->filter(cut_xic);
232 writeTrace(*(trace_sp.get()));
233 mpa_writer->endMap();
236 mpa_writer->append(QLatin1String(
"peak"));
237 writeTracePeak(*(measurement.
m_tracePeakSp.get()), msrun_retention_time_p);
239 mpa_writer->endMap();
246 mpa_writer->startMap(2);
247 mpa_writer->append(QLatin1String(
"x"));
248 mpa_writer->startArray(trace.size());
251 mpa_writer->append(
x);
253 mpa_writer->endArray();
256 mpa_writer->append(QLatin1String(
"y"));
257 mpa_writer->startArray(trace.size());
260 mpa_writer->append(
y);
262 mpa_writer->endArray();
263 mpa_writer->endMap();
270 mpa_writer->startMap();
271 mpa_writer->append(QLatin1String(
"area"));
272 mpa_writer->append(peak.
getArea());
274 mpa_writer->append(QLatin1String(
"max_intensity"));
277 mpa_writer->append(QLatin1String(
"rt"));
278 mpa_writer->startArray();
282 mpa_writer->endArray();
284 if((msrun_retention_time_p !=
nullptr) && msrun_retention_time_p->
isAligned())
286 mpa_writer->append(QLatin1String(
"aligned_rt"));
287 mpa_writer->startArray();
294 mpa_writer->endArray();
297 mpa_writer->endMap();
308 mpa_writer->append(peptide_sp.get()->getId());
309 mpa_writer->startMap();
310 mpa_writer->append(QLatin1String(
"proforma"));
311 mpa_writer->append(peptide_sp.get()->getPappsoPeptideSp().get()->toProForma());
314 mpa_writer->append(QLatin1String(
"mods"));
315 mpa_writer->append(peptide_sp.get()->getMods());
319 if(size_measurement > 0)
321 mpa_writer->append(QLatin1String(
"rt_target"));
326 mpa_writer->append(QLatin1String(
"xics"));
332 writeMeasurement(measure, msrun_retention_time_p);
334 mpa_writer->endArray();
336 mpa_writer->endMap();
351 monitor.
setStatus(QString(
"Writing MBR quantification results for msrun %1")
354 ->getMsRunReaderSPtr()
364 monitor.
setStatus(QString(
"Writing quantification results for msrun %1")
367 ->getMsRunReaderSPtr()
374 mpa_writer->append(msrun_peptide_list.
getMsRunSp()
376 ->getMsRunReaderSPtr()
381 mpa_writer->startMap();
382 writeMsRun(*(msrun_peptide_list.
getMsRunSp().get()));
385 mpa_writer->append(
"peptide_measurements");
386 mpa_writer->startMap(size);
392 writeMbrPeptideMeasurements(*(measures.get()),
403 writePeptideMeasurements(*(measures.get()),
410 mpa_writer->endMap();
412 mpa_writer->endMap();
418 mpa_writer->startArray(vector.size());
419 for(
double x : vector)
421 mpa_writer->append(
x);
423 mpa_writer->endArray();
435 const Trace &report_common_ms2,
438 mpa_writer->startMap(5);
439 mpa_writer->append(QLatin1String(
"original"));
441 mpa_writer->append(QLatin1String(
"aligned"));
443 mpa_writer->append(QLatin1String(
"ms2_delta_rt"));
444 writeTrace(report_common_ms2);
446 Trace median(report_common_ms2);
449 mpa_writer->
append(QLatin1String(
"ms2_median"));
450 writeVectorDouble(median.
yValues());
453 mpa_writer->
append(QLatin1String(
"ms2_mean"));
454 writeVectorDouble(median.
yValues());
457 mpa_writer->endMap();
virtual Trace & filter(Trace &data_points) const override
const FilterMorphoMedian & getMs2MedianFilter() const
const std::vector< double > & getAlignedRetentionTimeVector() const
get aligned retention time vector
double translateOriginal2AlignedRetentionTime(double original_retention_time) const
const std::vector< double > & getMs1RetentionTimeVector() const
get orginal retention time vector (not aligned)
const FilterMorphoMean & getMs2MeanFilter() const
void writeParameters(CalcWriterInterface &writer) const
DataPoint & getLeftBoundary()
pappso_double getArea() const
DataPoint & getMaxXicElement()
DataPoint & getRightBoundary()
A simple container of DataPoint instances.
std::vector< pappso_double > xValues() const
std::vector< pappso_double > yValues() const
size_t append(const DataPoint &data_point)
appends a datapoint and return new size
virtual void setStatus(const QString &status)=0
current status of the process
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
virtual void count()=0
count steps report when a step is computed in an algorithm
void writeInformations(const QString &software_name, const QString &software_version, const QString &type, const QString &operation)
void setIsTraceOutput(bool is_trace_output)
set trace output flag
void writeMbrPeptideMeasurements(const MbrPeptideMeasurements &peptide_measurements, const pappso::MsRunRetentionTime< QString > *msrun_retention_time_p)
void setIsPeakShapeOutput(bool is_shape_output, double margin_in_seconds)
set peak shape output flag
pappso::cbor::CborStreamWriter * mpa_writer
virtual ~CborOutputStream()
void writeJsonObject(const QString &name, const QJsonObject &json_object)
void writeTrace(const pappso::Trace &trace)
void writeMeasurement(const PeptideMeasurements::Measurement &measurement, const pappso::MsRunRetentionTime< QString > *msrun_retention_time_p)
void writeProjectParameters(const pappso::ProjectParameters &project_parameters)
QCborStreamWriter & getCborStreamWriter()
void writeMsRunRetentionTime(const pappso::Trace &report_common_ms2, const pappso::MsRunRetentionTime< QString > &msrun_retention_time)
void writeMsRun(const MsRun &msrun)
void writeVectorDouble(const std::vector< double > &vector)
void writeActionBegin(const QString &operation)
CborOutputStream(QIODevice *device)
void writeTracePeak(const pappso::TracePeak &peak, const pappso::MsRunRetentionTime< QString > *msrun_retention_time_p)
void writeQrDataBlock(pappso::UiMonitorInterface &m_uiMonitor, const MsRunPeptideList &msrun_peptide_list, bool is_mbr)
void writePeptideMeasurements(const PeptideMeasurements &peptide_measurements, const pappso::MsRunRetentionTime< QString > *msrun_retention_time_p)
const PeptideSp & getPeptideSp() const
const std::vector< MbrPeptideMeasurementsSp > & getMbrPeptideMeasurementsList() const
const MsRunSp & getMsRunSp() const
const std::vector< PeptideMeasurementsSp > & getPeptideMeasurementsList() const
const pappso::MsRunRetentionTime< QString > * getMsRunRetentionTimeConstPtr() const
const pappso::MsRunReaderSPtr & getMsRunReaderSPtr() const
const QString & getLabel() const
virtual const std::vector< Measurement > & getMeasurementList() const
const PeptideObservationSp & getPeptideObservationSp() const
static QString getVersion()
static QString enumToString(PeakQualityCategory peak_category)
Convenience function to return a string describing the specglob alingment type.
std::shared_ptr< PeptideMeasurements > PeptideMeasurementsSp
std::shared_ptr< MbrPeptideMeasurements > MbrPeptideMeasurementsSp
std::shared_ptr< Peptide > PeptideSp
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< Trace > TraceSPtr
pappso::TracePeakCstSPtr m_tracePeakSp
pappso::PeptideNaturalIsotopeAverageSp m_peptideNaturalIsotopeAverageSp
pappso::XicCoordSPtr msp_xicCoord
PeakQualityCategory m_peakQualityCategory
const PeptideLabel * mp_peptideLabel