#include <MalWrapper.hpp>
Collaboration diagram for MAlWrapper< alphabet >:
Public Types | |
typedef char | value_type |
typedef value_type & | reference |
typedef Iterator< MAl > | iterator |
Public Member Functions | |
MAlWrapper (MAl *mal) | |
size_t | nrows () |
bool | empty (int row) |
void | print_info (size_t r) |
iterator | begin (size_t r) |
iterator | end (size_t r) |
void | decrement_first_pos (size_t r) |
void | decrement_last_pos (size_t r) |
void | insert (size_t r, iterator pos, const value_type &v) |
void | erase (size_t r, iterator pos) |
void | move_read_left (size_t r, int steps) |
void | move_read_right (size_t r, int steps) |
value_type | operator() (size_t r, size_t pos_in_read) |
void | swap (size_t r, int first_pos, int last_pos, const std::string &new_read) |
int | first_pos (size_t r) |
int | last_pos (size_t r) |
void | adjust_last_pos (size_t r, int steps, int) |
int | getMinStartCol () |
int | getMaxStopCol () |
int | getMinStartCol (int realRow) |
Beräkna minsta startCol (beakta inte rad realRow). | |
int | getMaxStopCol (int realRow) |
Beräkna största stopCol (beakta inte rad realRow). | |
void | set_realign_in_band (bool b) |
bool | left_fixed (size_t r) |
bool | right_fixed (size_t r) |
bool | others_left_fixed (size_t r) |
bool | others_right_fixed (size_t r) |
size_t | nrows_global () |
void | adjust_pos_right_of_band_border (int d, int band_border_right) |
iterator | begin_global (size_t r) |
iterator | end_global (size_t r) |
int | first_pos_global (size_t r) |
int | last_pos_global (size_t r) |
int | swap_substr (size_t r, std::string &other_read) |
void | swap_suffix (size_t r, int first_pos, int last_pos, std::string &other_read) |
void | swap_prefix (size_t r, int first_pos, int last_pos, std::string &other_read) |
bool | realign_in_band () |
Private Attributes | |
MAl * | mal_ |
bool | realign_in_band_ |
Definition at line 79 of file MalWrapper.hpp.
|
Definition at line 83 of file MalWrapper.hpp. |
|
Definition at line 82 of file MalWrapper.hpp. |
|
Definition at line 81 of file MalWrapper.hpp. |
|
Definition at line 85 of file MalWrapper.hpp. 00085 : mal_(mal) {}
|
|
Definition at line 229 of file MalWrapper.hpp. References MAl_Readonly::get_seq_end_global(), MAlWrapper< alphabet >::mal_, and MAl::set_seq_end_global(). 00229 { 00230 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) + steps); 00231 }
|
|
Definition at line 300 of file MalWrapper.hpp.
|
|
Definition at line 103 of file MalWrapper.hpp. References MAlWrapper< alphabet >::first_pos(), and MAlWrapper< alphabet >::mal_. Referenced by MAlWrapper< alphabet >::begin_global(), MAlWrapper< alphabet >::erase(), MAlWrapper< alphabet >::insert(), MAlWrapper< alphabet >::print_info(), and MAlWrapper< alphabet >::swap(). 00103 { 00104 // cerr << "begin(): r = " << r << ", first_pos(r) = " << first_pos(r) << endl; 00105 return Iterator<MAl>(mal_, r, first_pos(r)); 00106 }
|
|
Definition at line 302 of file MalWrapper.hpp. References MAlWrapper< alphabet >::begin(). 00302 { return begin(r); }
|
|
Definition at line 113 of file MalWrapper.hpp. References MAl_Readonly::get_seq_begin_global(), MAlWrapper< alphabet >::mal_, MAlWrapper< alphabet >::realign_in_band_, and MAl::set_seq_begin_global(). 00113 { 00114 assert(!realign_in_band_); 00115 mal_->set_seq_begin_global(r, mal_->get_seq_begin_global(r) - 1); 00116 }
|
|
Definition at line 118 of file MalWrapper.hpp. References MAl_Readonly::get_seq_end_global(), MAlWrapper< alphabet >::mal_, MAlWrapper< alphabet >::realign_in_band_, and MAl::set_seq_end_global(). 00118 { 00119 assert(!realign_in_band_); 00120 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) - 1); 00121 }
|
|
Definition at line 89 of file MalWrapper.hpp. References MAlWrapper< alphabet >::first_pos(), MAlWrapper< alphabet >::last_pos(), and MAlWrapper< alphabet >::nrows(). 00089 { 00090 assert(0 <= row && row < static_cast<int>(nrows())); 00091 return (last_pos(row) == first_pos(row) - 1); 00092 }
|
|
Definition at line 108 of file MalWrapper.hpp. References MAlWrapper< alphabet >::last_pos(), and MAlWrapper< alphabet >::mal_. Referenced by MAlWrapper< alphabet >::end_global(), MAlWrapper< alphabet >::print_info(), and MAlWrapper< alphabet >::swap(). 00108 { 00109 // cerr << "end(): r = " << r << ", last_pos(r) = " << last_pos(r) << endl; 00110 return Iterator<MAl>(mal_, r, last_pos(r) + 1); 00111 }
|
|
Definition at line 303 of file MalWrapper.hpp. References MAlWrapper< alphabet >::end(). 00303 { return end(r); }
|
|
Definition at line 135 of file MalWrapper.hpp. References MAlWrapper< alphabet >::begin(), MAlWrapper< alphabet >::first_pos(), MAl_Readonly::get_seq_end_global(), MAlWrapper< alphabet >::mal_, MAl::remove_gap_global(), and MAl::set_seq_end_global(). 00135 { 00136 assert(operator()(r, pos - begin(r) == '-')); 00137 mal_->remove_gap_global(r, pos - begin(r) + first_pos(r)); 00138 00139 // Correct last_pos: 00140 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) + 1); 00141 }
|
|
Definition at line 223 of file MalWrapper.hpp. References MAl_Readonly::get_seq_begin_global(), and MAlWrapper< alphabet >::mal_. Referenced by MAlWrapper< alphabet >::begin(), MAlWrapper< alphabet >::empty(), MAlWrapper< alphabet >::erase(), MAlWrapper< alphabet >::first_pos_global(), MAlWrapper< alphabet >::getMinStartCol(), and MAlWrapper< alphabet >::insert(). 00223 { return mal_->get_seq_begin_global(r); }
|
|
Definition at line 304 of file MalWrapper.hpp. References MAlWrapper< alphabet >::first_pos(). 00304 { return first_pos(r); }
|
|
Beräkna största stopCol (beakta inte rad realRow).
Definition at line 264 of file MalWrapper.hpp. References MAlWrapper< alphabet >::last_pos(), and MAlWrapper< alphabet >::nrows(). 00264 { 00265 int m = std::numeric_limits<int>::min(); 00266 assert(nrows() > 0); 00267 00268 for (size_t r = 0; r < nrows(); ++r) { 00269 if (static_cast<int>(r) != realRow) 00270 m = std::max(m, last_pos(r)); 00271 } 00272 return m; 00273 }
|
|
Definition at line 243 of file MalWrapper.hpp. References MAlWrapper< alphabet >::last_pos(), and MAlWrapper< alphabet >::nrows(). 00243 { 00244 int m = std::numeric_limits<int>::min(); 00245 assert(nrows() > 0); 00246 for (size_t r = 0; r < nrows(); ++r) { 00247 m = std::max(m, last_pos(r)); 00248 } 00249 return m; 00250 }
|
|
Beräkna minsta startCol (beakta inte rad realRow).
Definition at line 252 of file MalWrapper.hpp. References MAlWrapper< alphabet >::first_pos(), and MAlWrapper< alphabet >::nrows(). 00252 { 00253 int m = std::numeric_limits<int>::max(); 00254 assert(nrows() > 0); 00255 00256 for (size_t r = 0; r < nrows(); ++r) { 00257 if (static_cast<int>(r) != realRow) 00258 m = std::min(m, first_pos(r)); 00259 } 00260 return m; 00261 }
|
|
Definition at line 235 of file MalWrapper.hpp. References MAlWrapper< alphabet >::first_pos(), and MAlWrapper< alphabet >::nrows(). 00235 { 00236 int m = std::numeric_limits<int>::max(); 00237 assert(nrows() > 0); 00238 for (size_t r = 0; r < nrows(); ++r) { 00239 m = std::min(m, first_pos(r)); 00240 } 00241 return m; 00242 }
|
|
Definition at line 124 of file MalWrapper.hpp. References MAlWrapper< alphabet >::begin(), MAlWrapper< alphabet >::first_pos(), MAl_Readonly::get_seq_end_global(), MAl::insert_gap_global(), MAlWrapper< alphabet >::mal_, and MAl::set_seq_end_global(). 00124 { 00125 assert(v == '-'); 00126 00127 // NB: last_pos is already updated!!! 00128 mal_->insert_gap_global(r, pos - begin(r) + first_pos(r)); 00129 00130 // Correct last_pos: 00131 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) - 1); 00132 }
|
|
Definition at line 224 of file MalWrapper.hpp. References MAl_Readonly::get_seq_end_global(), and MAlWrapper< alphabet >::mal_. Referenced by MAlWrapper< alphabet >::empty(), MAlWrapper< alphabet >::end(), MAlWrapper< alphabet >::getMaxStopCol(), and MAlWrapper< alphabet >::last_pos_global(). 00224 { return mal_->get_seq_end_global(r) - 1; }
|
|
Definition at line 305 of file MalWrapper.hpp. References MAlWrapper< alphabet >::last_pos(). 00305 { return last_pos(r); }
|
|
Definition at line 281 of file MalWrapper.hpp.
|
|
Definition at line 144 of file MalWrapper.hpp. References MAl_Readonly::get_seq_begin_global(), MAl_Readonly::get_seq_end_global(), MAlWrapper< alphabet >::mal_, MAl::set_seq_begin_global(), and MAl::set_seq_end_global(). 00144 { 00145 assert(steps > 0); 00146 00147 mal_->set_seq_begin_global(r, mal_->get_seq_begin_global(r) - steps); 00148 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) - steps); 00149 }
|
|
Definition at line 152 of file MalWrapper.hpp. References MAl_Readonly::get_seq_begin_global(), MAl_Readonly::get_seq_end_global(), MAlWrapper< alphabet >::mal_, MAl::set_seq_begin_global(), and MAl::set_seq_end_global(). 00152 { 00153 assert(steps > 0); 00154 00155 mal_->set_seq_begin_global(r, mal_->get_seq_begin_global(r) + steps); 00156 mal_->set_seq_end_global(r, mal_->get_seq_end_global(r) + steps); 00157 }
|
|
Definition at line 87 of file MalWrapper.hpp. References MAl_Readonly::get_num_seq(), and MAlWrapper< alphabet >::mal_. Referenced by MAlWrapper< alphabet >::empty(), MAlWrapper< alphabet >::getMaxStopCol(), MAlWrapper< alphabet >::getMinStartCol(), and MAlWrapper< alphabet >::nrows_global(). 00087 { return mal_->get_num_seq(); }
|
|
Definition at line 299 of file MalWrapper.hpp. References MAlWrapper< alphabet >::nrows(). 00299 { return nrows(); }
|
|
Definition at line 159 of file MalWrapper.hpp. References MAl_Readonly::get_base(), and MAlWrapper< alphabet >::mal_.
|
|
Definition at line 289 of file MalWrapper.hpp. 00289 { 00290 return false; 00291 // assert(realign_in_band_); 00292 // return others_left_fixed_[r]; } 00293 }
|
|
Definition at line 294 of file MalWrapper.hpp. 00294 { 00295 return false; 00296 // assert(realign_in_band_); 00297 // return others_right_fixed_[r]; } 00298 }
|
|
Definition at line 94 of file MalWrapper.hpp. References MAlWrapper< alphabet >::begin(), MAlWrapper< alphabet >::end(), MAlWrapper< alphabet >::mal_, and MAl_Readonly::print_info(). 00094 { 00095 mal_->print_info(r); 00096 cerr << "In the wrapper: r = " << r << endl; 00097 cerr << "end(r) - begin(r) = " << (end(r) - begin(r)) << endl; 00098 // cerr << "Info for row " << r << endl; 00099 // cerr << "first_pos(r) = " << first_pos(r) << endl; 00100 // cerr << "last_pos(r) = " << last_pos(r) << endl; 00101 }
|
|
Definition at line 309 of file MalWrapper.hpp.
|
|
Definition at line 285 of file MalWrapper.hpp.
|
|
Definition at line 275 of file MalWrapper.hpp. References MAlWrapper< alphabet >::realign_in_band_. 00275 { 00276 00277 realign_in_band_ = b; 00278 if (b) { std::cerr << "realign in band not implemented yet" << endl; exit(1); } 00279 00280 }
|
|
Swap the supplied new_read with the (whole) read r. Definition at line 167 of file MalWrapper.hpp. References MAlWrapper< alphabet >::begin(), MAlWrapper< alphabet >::end(), MAl::insert_gap(), MAlWrapper< alphabet >::mal_, MAl::remove_gap(), MAl::set_seq_begin_global(), and MAl::set_seq_end_global(). 00167 { 00168 // check consistency of indata 00169 assert(last_pos + 1 - first_pos == static_cast<int>(new_read.size())); 00170 00171 // check that new_read equals read r (except for gaps) 00172 assert(( al::equal_without_gaps<alphabet, alphabet>(begin(r), end(r), 00173 new_read.begin(), new_read.end()))); 00174 // check that first or last character of new_read is not gap (just to be sure) 00175 assert(alphabet::isNotAbsGap(new_read[0]) && 00176 alphabet::isNotAbsGap(new_read[new_read.size() - 1])); 00177 00178 // get instructions 00179 vector<al::instr_value_type> instr; 00180 al::get_instructions<alphabet, alphabet>(begin(r), end(r), 00181 new_read.begin(), new_read.end(), 00182 back_inserter(instr)); 00183 // update read r according to the instructions 00184 int pos = 0; 00185 for (unsigned i = 0; i < instr.size(); ++i) { 00186 pos += instr[i].first; 00187 switch(instr[i].second) { 00188 case al::DELETE_GAP: 00189 assert(alphabet::isAbsGap((*this)(r, pos))); 00190 mal_->remove_gap(r, pos); 00191 break; 00192 case al::INSERT_GAP: 00193 mal_->insert_gap(r, pos); 00194 ++pos; 00195 break; 00196 } 00197 } 00198 00199 // set global begin and end 00200 mal_->set_seq_begin_global(r, first_pos); 00201 mal_->set_seq_end_global(r, first_pos + new_read.size()); 00202 00203 // check that the modified read r is equals new_read 00204 if ( new_read.end() - new_read.begin() != end(r) - begin(r) ) { 00205 std::cerr << "new_read.end() - new_read.begin() = " << new_read.end() - new_read.begin() << endl; 00206 std::cerr << "begin(r) - end(r) = " << begin(r) - end(r) << endl; 00207 } 00208 assert( new_read.end() - new_read.begin() == end(r) - begin(r) ); 00209 if ( !equal(new_read.begin(), new_read.end(), begin(r)) ) { 00210 al::print_elements_cerr(new_read, "", "new_read\n"); 00211 al::print_elements_cerr(begin(r), end(r), "", "modified row r\n"); 00212 } 00213 assert( std::equal(new_read.begin(), new_read.end(), begin(r)) ); 00214 00215 // mal_->set_seq_end(r, new_read.size() - 1); 00216 00217 // // write new sequence 00218 // for (size_t i = 0; i < new_read.size(); ++i) { 00219 // mal_->set_base(r, i, new_read[i]); 00220 // } 00221 }
|
|
Definition at line 308 of file MalWrapper.hpp.
|
|
Definition at line 306 of file MalWrapper.hpp.
|
|
Definition at line 307 of file MalWrapper.hpp.
|
|
|
Definition at line 313 of file MalWrapper.hpp. Referenced by MAlWrapper< alphabet >::decrement_first_pos(), MAlWrapper< alphabet >::decrement_last_pos(), and MAlWrapper< alphabet >::set_realign_in_band(). |