Commit 77bbb7e 1 parent 22eb635 commit 77bbb7e Copy full SHA for 77bbb7e
File tree 2 files changed +3
-7
lines changed
2 files changed +3
-7
lines changed Original file line number Diff line number Diff line change @@ -95,26 +95,24 @@ Syncmer SyncmerIterator::next() {
95
95
for (size_t j = 0 ; j < qs.size (); j++) {
96
96
if (qs[j] <= qs_min_val) {
97
97
qs_min_val = qs[j];
98
- qs_min_pos = i - parameters.k + j + 1 ;
99
98
}
100
99
}
101
100
}
102
101
else {
103
102
// update queue and current minimum and position
103
+ uint64_t front = qs.front ();
104
104
qs.pop_front ();
105
105
106
- if (qs_min_pos == i - parameters.k ) { // we popped the previous minimizer, find new brute force
106
+ if (front == qs_min_val) {
107
+ // we popped a minimum, find new brute force
107
108
qs_min_val = UINT64_MAX;
108
- qs_min_pos = i - parameters.s + 1 ;
109
109
for (size_t j = 0 ; j < qs.size (); j++) {
110
110
if (qs[j] <= qs_min_val) {
111
111
qs_min_val = qs[j];
112
- qs_min_pos = i - parameters.k + j + 1 ;
113
112
}
114
113
}
115
114
} else if (hash_s < qs_min_val) { // the new value added to queue is the new minimum
116
115
qs_min_val = hash_s;
117
- qs_min_pos = i - parameters.s + 1 ;
118
116
}
119
117
}
120
118
if (qs[parameters.t_syncmer - 1 ] == qs_min_val) { // occurs at t:th position in k-mer
@@ -126,7 +124,6 @@ Syncmer SyncmerIterator::next() {
126
124
} else {
127
125
// if there is an "N", restart
128
126
qs_min_val = UINT64_MAX;
129
- qs_min_pos = -1 ;
130
127
l = xs[0 ] = xs[1 ] = xk[0 ] = xk[1 ] = 0 ;
131
128
qs.clear ();
132
129
}
Original file line number Diff line number Diff line change @@ -161,7 +161,6 @@ class SyncmerIterator {
161
161
const uint64_t sshift = (parameters.s - 1 ) * 2 ;
162
162
std::deque<uint64_t > qs; // s-mer hashes
163
163
uint64_t qs_min_val = UINT64_MAX;
164
- size_t qs_min_pos = -1 ;
165
164
size_t l = 0 ;
166
165
uint64_t xk[2 ] = {0 , 0 };
167
166
uint64_t xs[2 ] = {0 , 0 };
You can’t perform that action at this time.
0 commit comments