Commit f2501fe 1 parent a53315a commit f2501fe Copy full SHA for f2501fe
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 @@ -93,26 +93,24 @@ Syncmer SyncmerIterator::next() {
93
93
for (size_t j = 0 ; j < qs.size (); j++) {
94
94
if (qs[j] <= qs_min_val) {
95
95
qs_min_val = qs[j];
96
- qs_min_pos = i - k + j + 1 ;
97
96
}
98
97
}
99
98
}
100
99
else {
101
100
// update queue and current minimum and position
101
+ uint64_t front = qs.front ();
102
102
qs.pop_front ();
103
103
104
- if (qs_min_pos == i - k) { // we popped the previous minimizer, find new brute force
104
+ if (front == qs_min_val) {
105
+ // we popped a minimum, find new brute force
105
106
qs_min_val = UINT64_MAX;
106
- qs_min_pos = i - s + 1 ;
107
107
for (size_t j = 0 ; j < qs.size (); j++) {
108
108
if (qs[j] <= qs_min_val) {
109
109
qs_min_val = qs[j];
110
- qs_min_pos = i - k + j + 1 ;
111
110
}
112
111
}
113
112
} else if (hash_s < qs_min_val) { // the new value added to queue is the new minimum
114
113
qs_min_val = hash_s;
115
- qs_min_pos = i - s + 1 ;
116
114
}
117
115
}
118
116
if (qs[t-1 ] == qs_min_val) { // occurs at t:th position in k-mer
@@ -124,7 +122,6 @@ Syncmer SyncmerIterator::next() {
124
122
} else {
125
123
// if there is an "N", restart
126
124
qs_min_val = UINT64_MAX;
127
- qs_min_pos = -1 ;
128
125
l = xs[0 ] = xs[1 ] = xk[0 ] = xk[1 ] = 0 ;
129
126
qs.clear ();
130
127
}
Original file line number Diff line number Diff line change @@ -171,7 +171,6 @@ class SyncmerIterator {
171
171
const uint64_t sshift = (s - 1 ) * 2 ;
172
172
std::deque<uint64_t > qs; // s-mer hashes
173
173
uint64_t qs_min_val = UINT64_MAX;
174
- size_t qs_min_pos = -1 ;
175
174
size_t l = 0 ;
176
175
uint64_t xk[2 ] = {0 , 0 };
177
176
uint64_t xs[2 ] = {0 , 0 };
You can’t perform that action at this time.
0 commit comments