Skip to content
Snippets Groups Projects
Select Git revision
  • 7ad77afbfdca3b0a35823ece36c9f62e1ecde4eb
  • main default protected
  • v1.1
  • v1.0
4 results

InfoDisplay.cpp

Blame
  • 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);