Commit 26d51a3c authored by Haowen Zhang's avatar Haowen Zhang
Browse files

Supplement more

parent d37ad5da
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -563,28 +563,28 @@ void Chromap<MappingRecord>::SupplementCandidates(const Index &index, uint32_t r
    uint32_t mm_count = minimizers->size();
    bool augment_flag = true;
    uint32_t candidate_num = positive_candidates->size();
    if (positive_candidates->size() >= (uint32_t)max_seed_frequencies_[0]) {
      augment_flag = false;
    } else {
    //if (positive_candidates->size() >= (uint32_t)max_seed_frequencies_[0]) {
    //  augment_flag = false;
    //} else {
      for (uint32_t i = 0; i < candidate_num; ++i) {
        if (positive_candidates->at(i).count >= mm_count / 2) {
          augment_flag = false;
          break;
        }
      }
    }
    //}
    candidate_num = negative_candidates->size();
    if (augment_flag) {
      if (negative_candidates->size() >= (uint32_t)max_seed_frequencies_[0]) {
        augment_flag = false;
      } else {
      //if (negative_candidates->size() >= (uint32_t)max_seed_frequencies_[0]) {
      //  augment_flag = false;
      //} else {
        for (uint32_t i = 0; i < candidate_num; ++i) {
          if (negative_candidates->at(i).count >= mm_count / 2) {
            augment_flag = false;
            break;
          }
        }
      }
      //}
    }
    if (augment_flag) {
      positive_hits->clear();
+10 −9
Original line number Diff line number Diff line
@@ -492,9 +492,10 @@ void Index::GenerateCandidatesFromRepetitiveReadWithMateInfo(int error_threshold
      ++best_candidate_num;
    }
  }
  if (best_candidate_num > 500)//|| max_count < min_num_seeds_required_for_mapping_) 
  if (best_candidate_num >= 500)//|| max_count < min_num_seeds_required_for_mapping_) 
    return;
  std::vector<std::pair<uint64_t, uint64_t> > boundaries;
  boundaries.reserve(500);
  for (uint32_t ci = 0; ci < mate_candidates_size; ++ci) {
    if (mate_candidates->at(ci).count == max_count) {
      std::pair<uint64_t, uint64_t> r;
@@ -649,7 +650,7 @@ void Index::GenerateCandidates(int error_threshold, const std::vector<std::pair<
  //printf("p+n: %d. %d %d\n", positive_hits->size() + negative_hits->size(), repetitive_seed_count, minimizers.size()) ;

  int num_required_seeds = minimizers.size() - repetitive_seed_count;
  num_required_seeds = num_required_seeds >= 1 ? num_required_seeds : 1; 
  num_required_seeds = num_required_seeds > 1 ? num_required_seeds : 1; 
  num_required_seeds = num_required_seeds > min_num_seeds_required_for_mapping_ ? min_num_seeds_required_for_mapping_ : num_required_seeds;
  GenerateCandidatesOnOneDirection(error_threshold, num_required_seeds, positive_hits, positive_candidates);
  GenerateCandidatesOnOneDirection(error_threshold, num_required_seeds, negative_hits, negative_candidates);