00001 #ifndef MAL_ADDON_H 00002 #define MAL_ADDON_H 00003 00004 #include "mal.h" 00005 #include <map> 00006 #include <vector> 00007 00008 class MAl_addon 00009 { 00010 public: 00011 MAl_addon( MAl* m ); 00012 ~MAl_addon(); 00013 00014 int get_min_col(); 00015 int get_max_col(); 00016 int get_num_rows(); 00017 char get_most_freq_base_on_col( int col ); 00018 int get_num_bases_on_col(int col, char base); 00019 size_t get_num_DNPs_on_col(int col); 00020 char get_entry( int row, int col ); 00021 int get_qual( int row, int col ); 00022 void set_DNP(int row, int col, bool status, int dnpID, int type); 00023 bool is_DNP(int row, int col); 00024 int get_row_start(int row); 00025 int get_row_end(int row); 00026 00027 00028 private: 00029 struct cons_struct 00030 { 00031 cons_struct() 00032 { 00033 for( int i = 0; i < 8; i++ ) { 00034 num.push_back( 0 ); 00035 } 00036 num_DNPs = 0; 00037 } 00038 00039 char cons; 00040 vector<int> num; 00041 size_t num_DNPs; 00042 }; 00043 00044 00045 MAl* mal; 00046 size_t min_col; 00047 size_t max_col; 00048 map<char, int> base_index; 00049 vector<char> index_base; 00050 vector<cons_struct> consensus; 00051 }; 00052 00053 #endif //MAL_ADDON_H