# 学习笔记:Kraken2与Bracken的联合使用与丰度矫正原理
## 一、Kraken2与Bracken的核心区别
| 工具 | 核心功能 | 输出特点 | 局限性 |
|------------|---------------------------|---------------------------|----------------------------|
| **Kraken2** | 基于k-mer匹配的快速物种分类 | 分类结果(.kraken)与丰度报告(.kreport) | 1. 长基因组物种丰度高估<br>2. 短基因组/低丰度物种丰度低估 |
| **Bracken** | 对Kraken2的丰度结果进行矫正 | 矫正后的丰度表(.bracken) | 依赖Kraken2的分类结果,需预先构建k-mer分布模型 |
## 二、为什么需要Bracken矫正?(Kraken2的缺陷)
### 1. 基因组长度偏差
- **机制**:长基因组含更多k-mer,测序读长更易匹配到长基因组物种 → 长基因组丰度被高估,短基因组(如病毒)被低估
- **案例**:某样本中病毒与细菌真实丰度为1:1,但Kraken2结果可能显示为1:10
### 2. 低丰度物种偏差
- **机制**:低丰度物种的少量读长易被归类到高丰度物种的共同祖先(LCA) → 低丰度物种被漏检或丰度严重低估
- **影响**:在临床样本中可能漏报潜在致病菌
## 三、Bracken矫正的核心逻辑
### 1. 构建参考模型(bracken-build)
```bash
bracken-build -d /path/to/kraken_db -t 24 -k 31 -l 150
# 生成关键文件:database150mers.kmer_distrib(记录各物种k-mer分布)
```
### 2. 矫正丰度(bracken)
```bash
bracken -d /path/to/kraken_db -i sample.kreport -o sample.bracken -r 150 -l S
# 核心参数:-r(测序读长)、-l(分类水平,如S=物种,G=属)
```
### 3. 矫正机制
- **统计模型**:基于参考基因组的k-mer数量与基因组长度,计算每个物种的理论k-mer分布
- **重新分配读长**:将被Kraken2误判到高丰度物种的读长,重新分配给真正的来源物种
## 四、实战流程总结
```mermaid
graph LR
A[测序数据] --> B[Kraken2分类]
B --> C[生成.kreport]
D[bracken-build构建模型] --> E[bracken矫正]
C --> E
E --> F[矫正后的丰度表.sample.bracken]
```
## 五、常见问题与解决方案
| 问题 | 解决方案 |
|-------------------------------|--------------------------------------------------------------------------|
| bracken-build耗时过长 | 1. 增加线程数<br>2. 先构建部分分类(如仅细菌)再合并 |
| 矫正后结果变化不明显 | 1. 检查-r参数是否与测序读长一致<br>2. 确认bracken-build与bracken使用同一数据库 |
| 内存不足导致崩溃 | 1. 减少线程数<br>2. 使用swap分区<br>3. 分批次处理 |
## 六、关键文件作用
| 文件 | 作用 |
|--------------------------|----------------------------------------------------------------------|
| database.kraken | Kraken2对参考序列的分类结果,记录每条序列的分类单元 |
| database150mers.kmer_distrib | 各物种k-mer分布模型,Bracken矫正的核心依据 |
| sample.kreport | Kraken2的原始丰度报告(未矫正) |
| sample.bracken | Bracken矫正后的丰度表(含reads数、丰度百分比等) |
## 七、学习资源推荐
1. **官方文档**:
- Kraken2:https://ccb.jhu.edu/software/kraken2/
- Bracken:https://ccb.jhu.edu/software/bracken/
2. **实战教程**:
- 宏基因组分析流程:https://github.com/DerrickWood/kraken2/wiki/Manual
- Bracken使用案例:https://github.com/jenniferlu717/Bracken
3. **论文参考**:
- Kraken2:https://genomebiology.biomedcentral.com/articles/10.1186/s13059-019-1891-0
- Bracken:https://academic.oup.com/bioinformatics/article/32/14/2146/1744339
## 八、核心结论
Kraken2解决了**快速分类**问题,但存在**丰度估计偏差**;Bracken通过**参考基因组k-mer分布模型**,针对性矫正这些偏差,让宏基因组分析的**物种丰度更真实**。二者联合使用,可显著提升宏基因组物种组成分析的准确性。