Select Git revision
InfoDisplay.cpp
InfoDisplay.cpp 5.61 KiB
/*
* infoDisplay.cpp
*
* Created on: Nov 2, 2021
* Author: vlegrand
*/
#include <iostream>
#include <iomanip>
#include "FqInfos.h"
#include "InfoDisplay.h"
const char K_COL_SEP=' ';
void InfoDisplay::display0(unsigned int w) {
(*out)<<setw(w)<<right<<"."<<K_COL_SEP;
}
void InfoDisplay::displayPosition(unsigned int i) {
(*out)<<setw(5)<<left<<i<<K_COL_SEP;
}
void InfoDisplay::displayFloat2D(double num,unsigned int w) {
(*out)<<setw(w)<<right<<setprecision(2)<<num<<K_COL_SEP;
}
void InfoDisplay::displayQuartiles(const FqInfos& infos,unsigned int i) {
(*out)<<setw(2)<<right<<infos.fi_quartile_phred[i-1]<<K_COL_SEP;
(*out)<<setw(2)<<right<<infos.sec_quartile_phred[i-1]<<K_COL_SEP;
(*out)<<setw(2)<<right<<infos.thi_quartile_phred[i-1]<<K_COL_SEP;
}
void InfoDisplay::displayFload1DLine(const FqInfos& infos,const T_array_PhScore& r) {
if (r[0]==0) display0(6);
else (*out)<<setw(6)<<setprecision(1)<<right<<r[0]<<K_COL_SEP;
for (char j=1;j<infos.real_max_score;j++) {
if (r[j]==0) (*out)<<setw(5)<<right<<"."<<K_COL_SEP;
else (*out)<<setw(5)<<setprecision(1)<<right<<r[j]<<K_COL_SEP;
}
if (r[infos.real_max_score]==0) (*out)<<setw(5)<<right<<".";
else (*out)<<setw(5)<<setprecision(1)<<right<<r[infos.real_max_score];
(*out)<<endl;
}
void InfoDisplay::displayNuclPosScorePC(const FqInfos& infos,unsigned int i) {
const T_array_PhScore& r=infos.nb_nucl_with_phscore_at_pos[i-1];
displayFload1DLine(infos,r);
//(*out)<<endl;
}
void InfoDisplay::displayAllPosLines(const FqInfos& infos) {
for (unsigned int i=1;i<=infos.real_max_r_len;i++) {
displayPosition(i);
if (infos.LFreq_nb[i]==0) display0(6);
else displayFloat2D(infos.LFreq_nb[i],6);
if (infos.A_nb[i-1]==0) display0(6);
else displayFloat2D(infos.A_nb[i-1],6);
if (infos.C_nb[i-1]==0) display0(6);
else displayFloat2D(infos.C_nb[i-1],6);
if (infos.G_nb[i-1]==0) display0(6);
else displayFloat2D(infos.G_nb[i-1],6);
if (infos.T_nb[i-1]==0) display0(6);
else displayFloat2D(infos.T_nb[i-1],6);
if (infos.N_nb[i-1]==0) display0(6);
else displayFloat2D(infos.N_nb[i-1],6);
if (infos.EFreq_nb[i]==0) display0(6);