kraken build_db

最后发布时间 : 2026-02-14 15:35:41 浏览量 :

下面用表格形式把你这条 build_db 命令涉及的参数做系统说明(按“类别 → 参数 → 作用 → 影响”整理)。


🧬 一、核心算法参数(决定数据库结构)

参数是否必需作用原理解释调大会怎样调小会怎样
-k INT✅ 必需设置 k-mer 长度把序列拆成长度为 k 的片段准确率更高敏感度更高
-l INT✅ 必需设置 minimizer 长度每个 k-mer 中选最小的 l-mer 作为代表hash 更少,更压缩hash 更多,占内存
-S BITSTRING可选Spaced seed 掩码1=使用该位,0=忽略提高突变容忍精度更高但容错差
-T BITSTRING可选minimizer toggle mask控制 minimizer 参与位置可进一步优化内存一般不常用
-X可选输入是蛋白序列启用氨基酸模式用于蛋白数据库DNA 不可用

🗂 二、输入输出文件参数(数据库组成文件)

参数是否必需作用生成/读取的文件说明
-H FILE✅ 必需Kraken2 hash 表文件hash.k2d存 minimizer → taxid
-t FILE✅ 必需taxonomy 文件taxo.k2d存 taxid 层级结构
-o FILE✅ 必需options 文件opts.k2d记录构建参数
-n DIR✅ 必需NCBI taxonomy 目录nodes.dmp提供分类层级
-m FILE✅ 必需seqid → taxid 映射seqid2taxid.map序列对应物种

🧠 三、Hash 表容量控制(内存核心)

参数是否必需作用影响
-c INT✅ 必需设置 hash 容量太小会溢出,太大会占内存
-M INT可选最大容量(MiniKraken)用于构建压缩数据库
-r INT可选每个 taxid 使用 bit 数控制内存占用

📌 你用的是:

-c 24137

约等于 24G 容量。


⚡ 四、性能控制参数

参数是否必需作用建议
-p INT可选线程数建议设为 CPU 核数
-F可选快速构建(非确定性)加快速度
-B INT可选读取块大小I/O 优化
-b INT可选子块大小内部处理优化

📊 五、你当前命令参数总结

参数当前值含义
k-mer35标准 Kraken2 DNA
minimizer31默认推荐值
spaced seed已开启提高突变容忍
capacity24137大型数据库
threads1速度较慢
taxid bit自动默认

🧩 六、参数之间的关系图

k (35)
 └─ 内部选 l (31)
       └─ 应用 S mask
            └─ 插入 CHT (capacity=c)

🎯 七、最重要的 3 个参数

如果你只记住三个:

| 排名 | 参数 | 决定什么 |
| -- | -- | ---------- |
| ① | -k | 准确率 vs 敏感度 |
| ② | -l | 数据库大小 |
| ③ | -c | 内存占用 |


🚀 如果你想更深入

我可以再给你:

  • 📐 minimizer 数学原理表格
  • 💾 内存计算公式
  • 🧮 capacity 如何估算
  • 🔬 DNA vs Protein 模式对比表
  • 🧠 Kraken2 CHT 结构解析

你想看哪一块?