@@ -264,43 +264,34 @@ std::pair<int, std::vector<Nam>> find_nams_rescue(
264
264
}
265
265
};
266
266
std::array<robin_hood::unordered_map<unsigned int , std::vector<Match>>, 2 > matches_map;
267
- std::vector<RescueHit> hits_fw;
268
- std::vector<RescueHit> hits_rc;
267
+ std::array<std::vector<RescueHit>, 2 > hits;
269
268
matches_map[0 ].reserve (100 );
270
269
matches_map[1 ].reserve (100 );
271
- hits_fw .reserve (5000 );
272
- hits_rc .reserve (5000 );
270
+ hits[ 0 ] .reserve (5000 );
271
+ hits[ 1 ] .reserve (5000 );
273
272
274
273
for (auto &qr : query_randstrobes) {
275
274
size_t position = index .find_full (qr.hash );
276
275
if (position != index .end ()) {
277
276
unsigned int count = index .get_count_full (position);
278
277
RescueHit rh{position, count, qr.start , qr.end , false };
279
- if (qr.is_reverse ){
280
- hits_rc.push_back (rh);
281
- } else {
282
- hits_fw.push_back (rh);
283
- }
278
+ hits[qr.is_reverse ].push_back (rh);
284
279
}
285
280
else if (use_mcs) {
286
281
size_t partial_pos = index .find_partial (qr.hash );
287
282
if (partial_pos != index .end ()) {
288
283
unsigned int partial_count = index .get_count_partial (partial_pos);
289
284
RescueHit rh{partial_pos, partial_count, qr.start , qr.start + index .k (), true };
290
- if (qr.is_reverse ){
291
- hits_rc.push_back (rh);
292
- } else {
293
- hits_fw.push_back (rh);
294
- }
285
+ hits[qr.is_reverse ].push_back (rh);
295
286
}
296
287
}
297
288
}
298
289
299
- std::sort (hits_fw .begin (), hits_fw .end ());
300
- std::sort (hits_rc .begin (), hits_rc .end ());
290
+ std::sort (hits[ 0 ] .begin (), hits[ 0 ] .end ());
291
+ std::sort (hits[ 1 ] .begin (), hits[ 1 ] .end ());
301
292
int n_hits = 0 ;
302
293
size_t is_revcomp = 0 ;
303
- for (auto & rescue_hits : {hits_fw, hits_rc} ) {
294
+ for (auto & rescue_hits : hits ) {
304
295
int cnt = 0 ;
305
296
for (auto &rh : rescue_hits) {
306
297
if ((rh.count > rescue_cutoff && cnt >= 5 ) || rh.count > 1000 ) {
0 commit comments