build_db.cc 从 NCBI 参考序列(FASTA)和分类信息(nodes.dmp / names.dmp)构建 Kraken 2 所需的紧凑哈希表索引(Compact Hash Table, CHT)
输入:
输出:
#include <fstream>
#include <iostream>
#include "../src/kraken2_data.h"
using kraken2::IndexOptions;
int main() {
IndexOptions opts;
std::ifstream ifs("/opt/workspace/kraken2/kraken2/data/small_db/opts.k2d", std::ios::binary);
if (!ifs) {
std::cerr << "Failed to open opts.k2d.tmp" << std::endl;
return 1;
}
ifs.read(reinterpret_cast<char*>(&opts), sizeof(opts));
if (!ifs) {
std::cerr << "Failed to read IndexOptions from file" << std::endl;
return 1;
}
std::cout << "k = " << opts.k << "\n";
std::cout << "l = " << opts.l << "\n";
std::cout << "spaced_seed_mask = " << opts.spaced_seed_mask << "\n";
std::cout << "toggle_mask = " << opts.toggle_mask << "\n";
std::cout << "dna_db = " << opts.dna_db << "\n";
return 0;
}
// g++ -std=c++11 -I../src -O2 opts.k2d.cc -o opts.k2d