Commit 570947e7 authored by Haowen Zhang's avatar Haowen Zhang Committed by Li Song
Browse files

Add generator back as a parameter.

We have to investigate the difference in the mappings once we remove it
as a parameter.
parent f3dafda0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -961,6 +961,7 @@ void Chromap<MappingRecord>::MapPairedEndReads() {
      PairedEndMappingMetadata paired_end_mapping_metadata;

      std::vector<int> best_mapping_indices(max_num_best_mappings_);
      std::mt19937 generator(11);
#pragma omp single
      {
        double real_batch_start_time = GetRealTime();
@@ -1155,7 +1156,7 @@ void Chromap<MappingRecord>::MapPairedEndReads() {

                    mapping_generator.GenerateBestMappingsForPairedEndRead(
                        pair_index, read_batch1, read_batch2, barcode_batch,
                        reference, best_mapping_indices, force_mapq,
                        reference, best_mapping_indices, generator, force_mapq,
                        paired_end_mapping_metadata, mappings_on_diff_ref_seqs);

                    if (paired_end_mapping_metadata.GetNumBestMappings() == 1) {
+69 −64
Original line number Diff line number Diff line
@@ -65,7 +65,8 @@ class MappingGenerator {
      uint32_t pair_index, const SequenceBatch &read_batch1,
      const SequenceBatch &read_batch2, const SequenceBatch &barcode_batch,
      const SequenceBatch &reference, std::vector<int> &best_mapping_indices,
      int force_mapq, PairedEndMappingMetadata &paired_end_mapping_metadata,
      std::mt19937 &generator, int force_mapq,
      PairedEndMappingMetadata &paired_end_mapping_metadata,
      std::vector<std::vector<MappingRecord>> &mappings_on_diff_ref_seqs);

 private:
@@ -278,7 +279,7 @@ void MappingGenerator<MappingRecord>::GenerateBestMappingsForPairedEndRead(
    uint32_t pair_index, const SequenceBatch &read_batch1,
    const SequenceBatch &read_batch2, const SequenceBatch &barcode_batch,
    const SequenceBatch &reference, std::vector<int> &best_mapping_indices,
    int force_mapq,
    std::mt19937 &generator, int force_mapq,
    PairedEndMappingMetadata &paired_end_mapping_metadata,
    std::vector<std::vector<MappingRecord>> &mappings_on_diff_ref_seqs) {
  const int num_positive_candidates1 =
@@ -422,7 +423,7 @@ void MappingGenerator<MappingRecord>::GenerateBestMappingsForPairedEndRead(
    // std::vector<int> best_mapping_indices(max_num_best_mappings_);
    std::iota(best_mapping_indices.begin(), best_mapping_indices.end(), 0);
    if (num_best_mappings > max_num_best_mappings_) {
      std::mt19937 generator(11);
      // std::mt19937 generator(11);
      for (int i = max_num_best_mappings_; i < num_best_mappings; ++i) {
        std::uniform_int_distribution<int> distribution(
            0, i);  // important: inclusive range
@@ -595,14 +596,16 @@ void MappingGenerator<MappingRecord>::ProcessBestMappingsForSingleEndRead(
}

template <typename MappingRecord>
void MappingGenerator<MappingRecord>::GenerateBestMappingsForPairedEndReadOnOneDirection(
    Direction first_read_direction, uint32_t pair_index, int num_candidates1,
    int min_num_errors1, int num_best_mappings1, int second_min_num_errors1,
    int num_second_best_mappings1, const SequenceBatch &read_batch1,
    const std::vector<std::pair<int, uint64_t>> &mappings1, int num_candidates2,
    int min_num_errors2, int num_best_mappings2, int second_min_num_errors2,
    int num_second_best_mappings2, const SequenceBatch &read_batch2,
    const SequenceBatch &reference,
void MappingGenerator<MappingRecord>::
    GenerateBestMappingsForPairedEndReadOnOneDirection(
        Direction first_read_direction, uint32_t pair_index,
        int num_candidates1, int min_num_errors1, int num_best_mappings1,
        int second_min_num_errors1, int num_second_best_mappings1,
        const SequenceBatch &read_batch1,
        const std::vector<std::pair<int, uint64_t>> &mappings1,
        int num_candidates2, int min_num_errors2, int num_best_mappings2,
        int second_min_num_errors2, int num_second_best_mappings2,
        const SequenceBatch &read_batch2, const SequenceBatch &reference,
        const std::vector<std::pair<int, uint64_t>> &mappings2,
        std::vector<std::pair<uint32_t, uint32_t>> &best_mappings,
        int &min_sum_errors, int &num_best_mappings, int &second_min_sum_errors,
@@ -708,13 +711,14 @@ void MappingGenerator<MappingRecord>::GenerateBestMappingsForPairedEndReadOnOneD
}

template <typename MappingRecord>
void MappingGenerator<MappingRecord>::RecalibrateBestMappingsForPairedEndReadOnOneDirection(
void MappingGenerator<MappingRecord>::
    RecalibrateBestMappingsForPairedEndReadOnOneDirection(
        Direction first_read_direction, uint32_t pair_index, int min_sum_errors,
        int second_min_sum_errors, int min_num_errors1, int num_best_mappings1,
        int second_min_num_errors1, int num_second_best_mappings1,
        const SequenceBatch &read_batch1,
    const std::vector<std::pair<int, uint64_t>> &mappings1, int min_num_errors2,
    int num_best_mappings2, int second_min_num_errors2,
        const std::vector<std::pair<int, uint64_t>> &mappings1,
        int min_num_errors2, int num_best_mappings2, int second_min_num_errors2,
        int num_second_best_mappings2, const SequenceBatch &read_batch2,
        const SequenceBatch &reference,
        const std::vector<std::pair<int, uint64_t>> &mappings2,
@@ -820,7 +824,8 @@ void MappingGenerator<MappingRecord>::RecalibrateBestMappingsForPairedEndReadOnO
}

template <typename MappingRecord>
void MappingGenerator<MappingRecord>::ProcessBestMappingsForPairedEndReadOnOneDirection(
void MappingGenerator<MappingRecord>::
    ProcessBestMappingsForPairedEndReadOnOneDirection(
        Direction first_read_direction, Direction second_read_direction,
        uint32_t pair_index, uint8_t mapq, int num_candidates1,
        uint32_t repetitive_seed_length1, int min_num_errors1,