用途
deepTools 是一套综合性的 Python 命令行工具集,用于处理和分析高通量测序(NGS)数据。它可用于对 ChIP-seq、RNA-seq、ATAC-seq、MNase-seq 及其他 NGS 实验进行质量控制、数据归一化、样本比较,并生成出版级可视化图表。
主要能力
- 将 BAM 比对文件转换为归一化的覆盖度轨道(bigWig/bedGraph)
- 质量控制评估(指纹分析、相关性、覆盖度)
- 样本比较与相关性分析
- 围绕基因组特征生成热图和轮廓图
- 富集分析与峰区域可视化
使用方式
安装
uv pip install deepTools==3.5.6
上游推荐在共享 HPC 系统上使用 conda/bioconda 以完整解决依赖:
conda install -c conda-forge -c bioconda deeptools
在 Apple Silicon 上,上游文档给出上述 PyPI 方式,或在原生 conda 包不可用时使用 osx-64 conda 环境。
快速开始
- 验证输入文件:
python scripts/validate_files.py --bam sample1.bam sample2.bam --bed regions.bed
该脚本检查文件是否存在、BAM 索引以及格式正确性。
- 生成工作流模板:
# 列出可用工作流
python scripts/workflow_generator.py --list
# 生成 ChIP-seq QC 工作流
python scripts/workflow_generator.py chipseq_qc -o qc_workflow.sh \
--input-bam Input.bam --chip-bams "ChIP1.bam ChIP2.bam" \
--genome-size 2913022398
# 赋予可执行权限并运行
chmod +x qc_workflow.sh
./qc_workflow.sh
- 常用操作参见 assets/quick_reference.md。
归一化方法
- RPGC:1× 基因组覆盖度(需要 --effectiveGenomeSize)
- CPM:每百万比对读段计数
- RPKM:每 kb 每百万读段(按 bin 长度和文库大小缩放)
- BPM:每百万 bins,类似 TPM 风格对分箱信号缩放
- None:原始计数(不推荐用于比较)
快速选择指南:ChIP-seq 覆盖度使用 RPGC 或 CPM;ChIP-seq 比较使用 bamCompare 配合 log2 和 readCount;RNA-seq bins 使用 CPM;RNA-seq 基因使用 RPKM(考虑基因长度);ATAC-seq 使用 RPGC 或 CPM。
有效基因组大小
RPGC 归一化需要有效基因组大小。常见值:
- 人类 GRCh38/hg38:2,913,022,398(--effectiveGenomeSize 2913022398)
- 人类 T2T/CHM13CAT_v2:3,117,292,070(--effectiveGenomeSize 3117292070)
- 小鼠 GRCm39/mm39:2,654,621,783(--effectiveGenomeSize 2654621783)
- 小鼠 GRCm38/mm10:2,652,783,500(--effectiveGenomeSize 2652783500)
- 斑马鱼 GRCz11:1,368,780,147(--effectiveGenomeSize 1368780147)
- 果蝇 dm6:142,573,017(--effectiveGenomeSize 142573017)
- 线虫 ce10/ce11:100,286,401(--effectiveGenomeSize 100286401)
常见参数
性能:--numberOfProcessors/-p 启用并行处理;--region 处理特定区域用于测试。
读段过滤:--ignoreDuplicates 去除 PCR 重复;--minMappingQuality 按比对质量过滤;--minFragmentLength/--maxFragmentLength 片段长度界限;--samFlagInclude/--samFlagExclude SAM 标志过滤。
读段处理:--extendReads 延伸至片段长度(ChIP-seq 用,RNA-seq 不用);--centerReads 以片段中点为中心获得更锐利信号。
适用场景
- 文件转换:将 BAM 转换为 bigWig、生成覆盖度轨道、归一化 ChIP-seq 数据
- 质量控制:检查 ChIP 质量、比较重复样本、评估测序深度、QC 分析
- 可视化:围绕 TSS 创建热图、绘制 ChIP 信号、可视化富集、生成轮廓图
- 样本比较:处理组与对照组比较、样本相关性、PCA 分析
- 分析工作流:分析 ChIP-seq 数据、RNA-seq 覆盖度、ATAC-seq 分析、完整工作流
- 处理特定文件类型:基因组学场景中的 BAM、bigWig、BED 区域文件
限制与注意事项
- 分析前应始终使用 scripts/validate_files.py 验证文件,检查文件存在性与可读性、BAM 索引(.bai)、BED 格式正确性及文件大小是否合理。
- 建议先运行 QC(相关性、覆盖度、指纹分析)再进行详细分析。
- 使用 --region 在小区域上测试参数。
- 保存完整命令行以保证可复现性。
- 比较中应对所有样本使用一致的归一化方法。
- 确保 BAM 和 BED 文件使用匹配的基因组版本。
- ChIP-seq:始终延伸读段(--extendReads 200);多数情况去除重复;先运行 plotFingerprint 检查富集;仅在检测到显著偏差时应用 GC 校正,且 GC 校正后绝不使用 --ignoreDuplicates。
- RNA-seq:绝不延伸读段(会跨越剪接位点);链特异性使用 --filterRNAstrand forward/reverse,解释链标签前确认文库方向;bins 用 CPM,基因用 RPKM。
- ATAC-seq:使用 alignmentSieve 配合 --ATACshift 应用 Tn5 校正;--ATACshift 等价于 --shift 4 -5 5 -4 并过滤为正确配对的片段;设置合适的 min/max 片段长度;片段大小图应显示阶梯模式。
- 性能优化:使用多处理器;增大 bin 尺寸以加快处理并减小文件;内存受限系统可逐染色体处理;使用 alignmentSieve 预过滤 BAM 生成可复用文件;优先使用 bigWig 而非 bedGraph。
- 常见问题:BAM 索引缺失可用 samtools index input.bam 解决;内存不足可逐染色体处理;处理慢可增加 --numberOfProcessors 或增大 --binSize;bigWig 文件过大可增大 bin 尺寸。
参考文档与辅助脚本
- references/tools_reference.md:按类别组织的全部 deepTools 命令文档(BAM 与 bigWig 处理工具 9 个、质量控制工具 6 个、可视化工具 3 个、杂项工具 3 个,含 bigwigAverage)。
- references/workflows.md:常见分析的完整工作流示例(ChIP-seq 质控、ChIP-seq 完整分析、RNA-seq 覆盖度、ATAC-seq 分析、多样本比较、峰区域分析、故障排除与性能提示)。
- references/normalization_methods.md:归一化方法综合指南。
- references/effective_genome_sizes.md:有效基因组大小值与用法。
- scripts/validate_files.py:验证 BAM、bigWig 和 BED 文件。
- scripts/workflow_generator.py:生成可定制的 bash 脚本模板,可用工作流包括 chipseq_qc、chipseq_analysis、rnaseq_coverage、atacseq。
- assets/quick_reference.md:常用命令、有效基因组大小和典型工作流模式的快速参考卡。
相关技能
- pydeseq2:使用 PyDESeq2(DESeq2 的 Python 移植版)对批量 RNA-seq 计数数据运行差异表达分析。
- gtars:使用 Gtars(用于基因组区间的 Rust/Python/CLI 工具包)检查和规划工作,支持 BED RegionSet 集合代数(reduce、setdiff、intersect 等)。
- scanpy:标准单细胞 RNA-seq 分析流程。