// -*- c++ -*- /*****************************************************************************/ // Copyright (c) Illumina 2008 // Author: Richard Shaw // // This software is covered by the "Illumina Genome Analyzer Software // License Agreement" and the "Illumina Source Code License Agreement", // and certain third party copyright/licenses, and any user of this // source file is bound by the terms therein (see accompanying files // Illumina_Genome_Analyzer_Software_License_Agreement.pdf and // Illumina_Source_Code_License_Agreement.pdf and third party // copyright/license notices). /*****************************************************************************/ #ifndef INFO_CONTENTS #define INFO_CONTENTS /*****************************************************************************/ #include #include #include #include "statistics/Base_Calls.h" /*****************************************************************************/ class Info_Contents { friend std::ostream& operator<<(std::ostream& ostrm, const Info_Contents&); public: Info_Contents() : my_cycle_prefix_ch(0){;} ~Info_Contents(); bool derive(Base_Calls& base_calls, std::valarray& cycle_non_blank_freqs); void set_cycle_prefix_ch(char cycle_prefix_ch) { my_cycle_prefix_ch = cycle_prefix_ch; } private: void derive_cumulative_stats(); typedef std::vector Cycle_Float_Vec; typedef std::vector Cycle_Uint_Vec; typedef Cycle_Float_Vec::iterator Cycle_Float_Vec_Iter; typedef Cycle_Uint_Vec::iterator Cycle_Uint_Vec_Iter; Cycle_Float_Vec my_info_vec; Cycle_Uint_Vec my_aligned_vec; Cycle_Uint_Vec my_total_vec; Cycle_Float_Vec my_cum_info_vec; Cycle_Uint_Vec my_cum_aligned_vec; Cycle_Uint_Vec my_cum_total_vec; char my_cycle_prefix_ch; }; /*****************************************************************************/ std::ostream& operator<<(std::ostream& ostrm, const Info_Contents& info_content); /*****************************************************************************/ #endif // ! INFO_CONTENTS /*****************************************************************************/