Changeset 875 for trunk/yat/utility/Alignment.cc
- Timestamp:
- Sep 19, 2007, 2:17:05 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/utility/Alignment.cc
r869 r875 101 101 double gap, double open_gap) 102 102 { 103 enum direction { none, right, down, diagonal }; 104 103 105 // Calculating S-W matrix 104 matrix m(s.rows()+2,s.columns()+2); 105 for (size_t i=2; i<m.rows(); ++i) 106 for (size_t j=2; j<m.columns(); ++j) 107 m(i,j) = max(0.0, m(i-1,j-1)+s(i-2,j-2), 108 m(i-1,j)-gap-open_gap, m(i-2,j)-2*gap, 109 m(i,j-1)-gap-open_gap, m(i,j-2)-2*gap); 110 106 matrix m(s.rows()+1,s.columns()+1); 107 matrix array(m); 108 for (size_t i=1; i<m.rows(); ++i) 109 for (size_t j=1; j<m.columns(); ++j){ 110 m(i,j)=0; 111 array(i,j) = none; 112 if (m(i-1,j-1)+s(i-1,j-1)>m(i,j)){ 113 m(i,j) = m(i-1,j-1)+s(i-1,j-1); 114 array(i,j) = diagonal; 115 } 116 if (array(i-1,j)==right && m(i-1,j)-gap > m(i,j)){ 117 m(i,j) = m(i-1,j)-gap; 118 array(i,j) = right; 119 } 120 if (array(i-1,j)!=right && m(i-1,j)-gap-open_gap > m(i,j)){ 121 m(i,j) = m(i-1,j)-gap-open_gap; 122 array(i,j) = right; 123 } 124 if (array(i,j-1)==down && m(i,j-1)-gap > m(i,j)){ 125 m(i,j) = m(i,j-1)-gap; 126 array(i,j) = down; 127 } 128 if (array(i,j-1)!=down && m(i,j-1)-gap-open_gap > m(i,j)){ 129 m(i,j) = m(i,j-1)-gap-open_gap; 130 array(i,j) = down; 131 } 132 } 111 133 return max(m); 112 134 }
Note: See TracChangeset
for help on using the changeset viewer.