eXpress “1.5”
|
00001 #ifndef MISMATCH_H 00002 #define MISMATCH_H 00003 00012 #include "frequencymatrix.h" 00013 00014 class FragHit; 00015 class Target; 00016 00029 class MismatchTable { 00034 std::vector<FrequencyMatrix<double> > _first_read_mm; 00039 std::vector<FrequencyMatrix<double> > _second_read_mm; 00043 FrequencyMatrix<double> _insert_params; 00047 FrequencyMatrix<double> _delete_params; 00051 size_t _max_len; 00057 bool _active; 00058 00059 public: 00066 MismatchTable(double alpha); 00072 MismatchTable(std::string param_file_name); 00079 void activate(bool active = true) { _active = active; } 00096 void get_indices(const FragHit& f, 00097 std::vector<char>& left_indices, 00098 std::vector<char>& left_seq, 00099 std::vector<char>& left_ref, 00100 std::vector<char>& right_indices, 00101 std::vector<char>& right_seq, 00102 std::vector<char>& right_ref) const; 00110 double log_likelihood(const FragHit& f) const; 00119 void update(const FragHit&, double p, double mass); 00124 void fix(); 00132 void append_output(std::ofstream& outfile) const; 00133 }; 00134 00135 #endif