INNER CODE UNIT · C++

cannonical_kmer

fbreitwieser/krakenuniq · src/classify.cpp:1031

        uint64_t cannonical_kmer = KrakenDatabases[db_id]->canonical_representation(*kmer_ptr);
        const uint64_t minimizer = KrakenDatabases[db_id]->bin_key(cannonical_kmer); // TODO: inefficient because minimizer will also be computed in kmer_query()

        if (KrakenDatabases[db_id]->is_minimizer_in_chunk(minimizer, db_chunk_id)) {
          uint32_t* val_ptr = KrakenDatabases[db_id]->kmer_query_with_db_chunks(
                  cannonical_kmer, &db_statuses[db_id].current_bin_key,
                  &db_statuses[db_id].current_min_pos, &db_statuses[db_id].current_max_pos);
          if (val_ptr)
            taxon = *val_ptr;
        }
      }
      taxa.push_back(taxon);
    }
  }

  try {
    const uint32_t taxa_size = taxa.size();
    fp.write((char*) &seq_idx, 1 * sizeof(uint32_t)); // seq_idx

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…