Juicer 1.6 数据处理流程详解

概述

Juicer 是一个用于处理 Hi-C 测序数据的完整分析流程,从原始 FASTQ 文件到最终的接触矩阵(.hic 文件)。

安装方法如下


wget https://github.com/aidenlab/juicer/archive/refs/tags/1.6.tar.gz
tar xf 1.6.tar.gz
cd juicer-1.6

ln -s $PWD/CPU scripts
cd scripts/common
wget https://hicfiles.tc4ga.com/public/juicer/juicer_tools.1.9.9_jcuda.0.8.jar
ln -s juicer_tools.1.9.9_jcuda.0.8.jar  juicer_tools.jar

主要处理阶段

1. 比对阶段 (Alignment)

功能:将双端测序reads比对到参考基因组

  • 使用 BWA mem 进行比对
  • 参数 -SP5M 专门针对 Hi-C 数据优化
    • -SP: 跳过配对救援,将read1和read2独立比对
    • -5: 对于split reads,输出主要和补充比对
    • -M: 将较短的split标记为次要比对
  • 输出:SAM 格式的比对文件

2. 嵌合reads处理 (Chimeric Reads Processing)

功能:识别和处理跨越多个基因组区域的reads

什么是嵌合reads

在Hi-C实验中,一个DNA分子可能包含多个连接点:

Read序列: [区域A]--[连接点]--[区域B]--[连接点]--[区域C]

处理机制

chimeric_blacklist.awk 脚本将reads分为三类:

  • 正常配对 (_norm.txt):标准的双端配对,两个reads各映射到单一位置
  • 异常配对 (_abnorm.sam):包含嵌合reads,有补充比对(SA tag)
  • 未映射 (_unmapped.sam):无法比对的低质量reads

生物学意义

  • 反映多重染色质互作(A-B-C三者空间接近)
  • 可能指示染色体重排或复杂的空间结构
  • 提供额外的互作信息,提高数据利用率

3. 片段分配 (Fragment Assignment)

功能:将reads分配到对应的限制性酶切片段

作用机制

  • 使用 fragment.pl 根据酶切位点文件分配片段编号
  • 为每个read pair添加片段信息(片段号和片段间距离)

数据格式转换

分配前:

readname chr1 pos1 chr2 pos2 strand1 strand2

分配后:

readname chr1 pos1 frag1 chr2 pos2 frag2 frag_distance

质量控制意义

片段分配用于区分:

  • 有效配对:不同片段间的连接(真实互作)
  • 自连片段 (dangling ends):同一片段内的连接
  • 自环片段 (self-circles):片段自身环化
  • 重连片段 (re-ligation):相邻片段的非特异连接

DNase-Hi-C特殊处理

当使用 site="none" 时,不进行实际片段分配,设置假片段值(0和1)

4. 排序 (Sorting)

功能:对处理后的数据进行多键排序

  • 排序顺序:染色体 → 片段 → 链方向 → 位置
  • 使用临时目录处理大文件:-T $tmpdir

5. 合并 (Merge)

功能:将所有排序文件合并为单一文件

  • 输出:merged_sort.txt
  • 保持排序顺序,为去重做准备

6. 去重复 (Deduplication)

功能:去除PCR扩增产生的重复reads

处理选项

  • 默认模式:使用"wobble"策略(允许位置轻微偏移)
  • 精确模式(-j参数):仅去除完全相同的重复

输出文件

  • merged_nodups.txt:去重后的有效配对
  • dups.txt:被去除的重复reads
  • opt_dups.txt:光学重复

7. 统计分析 (Statistics)

功能:生成质量控制指标

主要统计内容

  • 文库复杂度:评估文库多样性
  • 有效配对率:真实互作的比例
  • 片段内/间配对:评估消化和连接效率
  • 短程/长程互作:距离分布统计
  • 碰撞分析:处理异常和嵌合reads统计

8. HiC文件生成 (HiC File Creation)

功能:创建二进制接触矩阵文件

质量版本

  • inter.hic:MAPQ ≥ 1(包含更多数据)
  • inter_30.hic:MAPQ ≥ 30(高质量数据)

参数说明

  • -f:包含片段信息(用于片段级分辨率)
  • -s:统计文件路径
  • -g:直方图输出
  • -q:最小映射质量阈值

9. 后处理 (Post-processing)

功能:特征注释和高级分析

  • 调用 juicer_postprocessing.sh
  • 添加基因组注释
  • 识别染色质环等特征

断点恢复机制

Juicer 支持从特定阶段恢复,避免重复计算:

恢复阶段 (-S 参数)

  • merge:从合并步骤开始(比对已完成)
  • dedup:从去重步骤开始(合并已完成)
  • final:从生成HiC文件开始(去重已完成)
  • postproc:仅执行后处理
  • early:在统计后提前退出

常见问题及解决方案

1. AWK 兼容性问题

问题and() function never defined
原因:使用了 mawk 而非 gawk
解决:安装并使用 GNU awk (gawk)

2. 缺少 juicer_tools

问题juicer_tools: No such file or directory
解决:下载 juicer_tools.jar 并创建执行脚本

3. 高嵌合reads率

可能原因

  • 过度消化(片段太小)
  • 连接浓度过高
  • 交联不充分
    建议:优化实验条件,检查酶切和连接步骤

关键质量指标

良好的Hi-C数据应具备

  • 有效配对率 > 60%
  • 片段间配对率 > 90%
  • 长程互作(>20kb)> 40%
  • PCR重复率 < 20%
  • 嵌合reads率 < 15%

质量评估要点

  1. 比对率:评估测序质量和基因组匹配度
  2. 有效配对率:反映实验成功程度
  3. 文库复杂度:评估数据多样性
  4. 距离分布:验证是否符合预期的幂律分布
  5. 片段大小分布:评估酶切效率

优化建议

计算资源

  • 使用多线程加速BWA比对(-t 参数)
  • 预留足够的临时空间用于排序
  • 内存需求:至少16GB用于 juicer_tools

数据处理

  • 保留中间文件便于问题排查
  • 定期检查各阶段输出文件大小
  • 使用 -S 参数从断点恢复,避免重复计算

文件组织结构

topDir/
├── fastq/          # 原始测序文件
├── splits/         # 中间处理文件
│   ├── *.sam
│   ├── *_norm.txt
│   ├── *_abnorm.sam
│   ├── *_unmapped.sam
│   └── *.sort.txt
├── aligned/        # 最终输出文件
│   ├── merged_sort.txt
│   ├── merged_nodups.txt
│   ├── inter.txt
│   ├── inter.hic
│   └── inter_30.hic
└── HIC_tmp/        # 临时文件目录

参考资料

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×