55 m_isPeakShapeOutput = is_shape_output;
56 m_peakShapeMarginInSeconds = margin_in_seconds;
62 m_isTraceOutput = is_trace_output;
76 mpa_writer->append(QLatin1String(
"end"));
77 mpa_writer->startMap();
78 mpa_writer->append(QLatin1String(
"timestamp"));
79 mpa_writer->append(QDateTime::currentDateTime().toString(Qt::ISODate));
94 mpa_writer->append(name);
96 map = map.fromJsonObject(json_object);
97 map.toCborValue().toCbor(*mpa_writer);
103 return (*mpa_writer);
110 mpa_writer->append(QLatin1String(
"msrun"));
111 mpa_writer->startMap(3);
112 mpa_writer->append(QLatin1String(
"id"));
114 mpa_writer->append(QLatin1String(
"filename"));
115 mpa_writer->append(msrun.
getMsRunReaderSPtr().get()->getMsRunId().get()->getFileName());
116 mpa_writer->append(QLatin1String(
"sample"));
117 mpa_writer->append(msrun.
getMsRunReaderSPtr().get()->getMsRunId().get()->getSampleName());
118 mpa_writer->endMap();
130 mpa_writer->append(peptide_sp.get()->getId());
131 mpa_writer->startMap();
134 mpa_writer->append(QLatin1String(
"proforma"));
135 mpa_writer->append(peptide_sp.get()->getPappsoPeptideSp().get()->toProForma());
138 mpa_writer->append(QLatin1String(
"mods"));
139 mpa_writer->append(peptide_sp.get()->getMods());
142 if(size_measurement > 0)
144 mpa_writer->append(QLatin1String(
"rt_target"));
149 mpa_writer->append(QLatin1String(
"xics"));
150 mpa_writer->startArray(size_measurement);
155 writeMeasurement(measure, msrun_retention_time_p);
157 mpa_writer->endArray();
159 mpa_writer->endMap();
168 mpa_writer->startMap();
169 mpa_writer->append(QLatin1String(
"charge"));
170 mpa_writer->append(measurement.
m_charge);
172 mpa_writer->append(QLatin1String(
"mz"));
173 mpa_writer->append(measurement.
msp_xicCoord.get()->mzRange.getMz());
175 if(m_isXicCoordOutput)
177 measurement.
msp_xicCoord.get()->writeCborStream(*mpa_writer);
182 mpa_writer->append(QLatin1String(
"isotope"));
185 mpa_writer->append(QLatin1String(
"rank"));
188 mpa_writer->append(QLatin1String(
"th_ratio"));
193 mpa_writer->append(QLatin1String(
"quality"));
199 mpa_writer->append(QLatin1String(
"label"));
203 if(m_isTraceOutput && (measurement.
msp_xicCoord.get()->xicSptr.get() !=
nullptr))
205 mpa_writer->append(QLatin1String(
"trace"));
206 writeTrace(*(measurement.
msp_xicCoord.get()->xicSptr.get()));
213 if(m_isPeakShapeOutput && (measurement.
msp_xicCoord.get()->xicSptr.get() !=
nullptr))
216 mpa_writer->append(QLatin1String(
"peak_shape"));
217 mpa_writer->startMap();
218 mpa_writer->append(QLatin1String(
"trace"));
223 measurement.
m_tracePeakSp.get()->getLeftBoundary().x - m_peakShapeMarginInSeconds,
224 measurement.
m_tracePeakSp.get()->getRightBoundary().x + m_peakShapeMarginInSeconds);
227 trace_sp.get()->filter(cut_xic);
230 writeTrace(*(trace_sp.get()));
231 mpa_writer->endMap();
234 mpa_writer->append(QLatin1String(
"peak"));
235 writeTracePeak(*(measurement.
m_tracePeakSp.get()), msrun_retention_time_p);
237 mpa_writer->endMap();
244 mpa_writer->startMap(2);
245 mpa_writer->append(QLatin1String(
"x"));
246 mpa_writer->startArray(trace.size());
249 mpa_writer->append(
x);
251 mpa_writer->endArray();
254 mpa_writer->append(QLatin1String(
"y"));
255 mpa_writer->startArray(trace.size());
258 mpa_writer->append(
y);
260 mpa_writer->endArray();
261 mpa_writer->endMap();
268 mpa_writer->startMap();
269 mpa_writer->append(QLatin1String(
"area"));
270 mpa_writer->append(peak.
getArea());
272 mpa_writer->append(QLatin1String(
"max_intensity"));
275 mpa_writer->append(QLatin1String(
"rt"));
276 mpa_writer->startArray();
280 mpa_writer->endArray();
282 if((msrun_retention_time_p !=
nullptr) && msrun_retention_time_p->
isAligned())
284 mpa_writer->append(QLatin1String(
"aligned_rt"));
285 mpa_writer->startArray();
292 mpa_writer->endArray();
295 mpa_writer->endMap();
306 mpa_writer->append(peptide_sp.get()->getId());
307 mpa_writer->startMap();
308 mpa_writer->append(QLatin1String(
"proforma"));
309 mpa_writer->append(peptide_sp.get()->getPappsoPeptideSp().get()->toProForma());
312 mpa_writer->append(QLatin1String(
"mods"));
313 mpa_writer->append(peptide_sp.get()->getMods());
317 if(size_measurement > 0)
319 mpa_writer->append(QLatin1String(
"rt_target"));
324 mpa_writer->append(QLatin1String(
"xics"));
330 writeMeasurement(measure, msrun_retention_time_p);
332 mpa_writer->endArray();
334 mpa_writer->endMap();
348 monitor.
setStatus(QString(
"Writing MBR quantification results for msrun %1")
351 ->getMsRunReaderSPtr()
361 monitor.
setStatus(QString(
"Writing quantification results for msrun %1")
364 ->getMsRunReaderSPtr()
371 mpa_writer->append(msrun_peptide_list.
getMsRunSp()
373 ->getMsRunReaderSPtr()
378 mpa_writer->startMap();
379 writeMsRun(*(msrun_peptide_list.
getMsRunSp().get()));
382 mpa_writer->append(
"peptide_measurements");
383 mpa_writer->startMap(size);
389 writeMbrPeptideMeasurements(*(measures.get()),
400 writePeptideMeasurements(*(measures.get()),
407 mpa_writer->endMap();
409 mpa_writer->endMap();
415 mpa_writer->startArray(vector.size());
416 for(
double x : vector)
418 mpa_writer->append(
x);
420 mpa_writer->endArray();
433 mpa_writer->startMap(5);
434 mpa_writer->append(QLatin1String(
"original"));
436 mpa_writer->append(QLatin1String(
"aligned"));
438 mpa_writer->append(QLatin1String(
"ms2_delta_rt"));
439 writeTrace(report_common_ms2);
441 Trace median(report_common_ms2);
444 mpa_writer->
append(QLatin1String(
"ms2_median"));
445 writeVectorDouble(median.
yValues());
448 mpa_writer->
append(QLatin1String(
"ms2_mean"));
449 writeVectorDouble(median.
yValues());
452 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
overrides QCborStreamWriter base class to provide convenient functions
void writeInformations(const QString &software_name, const QString &software_version, const QString &type, const QString &operation)
automatically produces an informations CBOR map the "informations" map contains default parameters : ...
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