deepTools: NGS 数据分析工具包 是做什么的?
概述
deepTools 是一个全面的 Python 命令行工具套件,专为处理和分析高通量测序数据而设计。使用 deepTools 可以执行质量控制、数据标准化、样本比较,并为 ChIP-seq、RNA-seq、ATAC-seq、MNase-seq 等 NGS 实验生成出版级可视化结果。
核心功能:
- 将 BAM 比对结果转换为标准化覆盖度轨迹(bigWig/bedGraph)
- 质量评估(指纹图谱、相关性、覆盖度)
- 样本比较与相关性分析
- 在基因组特征周围生成热图和谱图
- 富集分析和峰区可视化
何时使用此技能
此技能应在以下场景使用:
- 文件转换:“将 BAM 转换为 bigWig”、“生成覆盖度轨迹”、“标准化 ChIP-seq 数据”
- 质量控制:“检查 ChIP 质量”、“比较重复样本”、“评估测序深度”、“QC 分析”
- 可视化:“在 TSS 周围创建热图”、“绘制 ChIP 信号”、“可视化富集”、“生成谱图”
- 样本比较:“比较处理组与对照组”、“样本相关性分析”、“PCA 分析”
- 分析工作流:“分析 ChIP-seq 数据”、“RNA-seq 覆盖度”、“ATAC-seq 分析”、“完整工作流”
- 处理特定文件类型:基因组学背景下的 BAM 文件、bigWig 文件、BED 区域文件
快速入门
对于 deepTools 的新用户,请从文件验证和常见工作流开始:
1. 验证输入文件
在运行任何分析之前,使用验证脚本验证 BAM、bigWig 和 BED 文件:
python scripts/validate_files.py --bam sample1.bam sample2.bam --bed regions.bed
这会检查文件是否存在、BAM 索引以及格式正确性。
2. 生成工作流模板
对于标准分析,使用工作流生成器创建自定义脚本:
# 列出可用工作流
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
3. 最常用操作
请参阅 assets/quick_reference.md 了解常用命令和参数。
安装
uv pip install deepTools==3.5.6
上游推荐使用 conda/bioconda 以获得完整的依赖解析,特别是在共享的 HPC 系统上:
conda install -c conda-forge -c bioconda deeptools
在 Apple Silicon 上,上游文档建议使用上述 PyPI 方法,或在本机 conda 包不可用时使用 osx-64 conda 环境。
核心工作流和工具类别
ChIP-seq QC、完整 ChIP-seq 分析、RNA-seq 覆盖度和 ATAC-seq 分析的完整命令序列,以及 BAM/bigWig 处理、质量控制和可视化工具类别,请见 references/core_workflows.md 和 references/workflows.md。每个工具的选项请见 references/tools_reference.md。
标准化方法
选择正确的标准化对于有效比较至关重要。请查阅 references/normalization_methods.md 获取全面指导。
快速选择指南:
- ChIP-seq 覆盖度:使用 RPGC 或 CPM
- ChIP-seq 比较:使用 bamCompare,带 log2 和 readCount
- RNA-seq 分箱:使用 CPM
- RNA-seq 基因:使用 RPKM(考虑基因长度)
- ATAC-seq:使用 RPGC 或 CPM
标准化方法:
- RPGC:1× 基因组覆盖度(需要 --effectiveGenomeSize)
- CPM:每百万比对读段的计数
- RPKM:每千碱基每百万读段的读段数(按分箱长度和文库大小缩放)
- BPM:每百万分箱的计数,类似于 TPM 风格的分箱信号缩放
- None:原始计数(不推荐用于比较)
完整说明:references/normalization_methods.md
有效基因组大小
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 |
包含按读长长度分类的完整表格:references/effective_genome_sizes.md
跨工具通用参数
许多 deepTools 命令共享以下选项:
性能:
--numberOfProcessors, -p:启用并行处理(始终使用可用核心数)max/max/2:--numberOfProcessors支持的值;在调度器下很有用,因为最新的 deepTools 版本更谨慎地检测 CPU 亲和性--region:处理特定区域以供测试(例如chr1:1-1000000)
读段过滤:
--ignoreDuplicates:去除 PCR 重复(推荐用于大多数分析)--minMappingQuality:按比对质量过滤(例如--minMappingQuality 10)--minFragmentLength/--maxFragmentLength:片段长度范围--samFlagInclude/--samFlagExclude:SAM 标志过滤
读段处理:
--extendReads:扩展到片段长度(ChIP-seq:是,RNA-seq:否)--centerReads:以片段中点为中心以获得更清晰的信号
最佳实践
文件验证
始终先验证文件,使用 scripts/validate_files.py 检查:
- 文件是否存在且可读
- BAM 索引是否存在(.bai 文件)
- BED 格式是否正确
- 文件大小是否合理
分析策略
- 从 QC 开始:在进行下一步之前,先运行相关性分析、覆盖度分析和指纹图谱分析
- 在小区域上测试:使用
--region chr1:1-10000000进行参数测试 - 记录命令:保存完整的命令行以确保可重复性
- 使用一致的标准化:在样本比较中应用相同的方法
- 验证基因组组装:确保 BAM 和 BED 文件使用匹配的基因组版本
ChIP-seq 专用
- 始终为 ChIP-seq 扩展读段:
--extendReads 200 - 去除重复:大多数情况下使用
--ignoreDuplicates - 首先检查富集:在详细分析之前先运行 plotFingerprint
- GC 校正:仅在检测到显著偏差时应用;GC 校正后切勿使用
--ignoreDuplicates
RNA-seq 专用
- 切勿为 RNA-seq 扩展读段(会跨越剪接连接点)
- 链特异性:对常见的 dUTP 法链特异性文库使用
--filterRNAstrand forward/reverse;在解释链标签前确认文库方向 - 标准化:分箱使用 CPM,基因使用 RPKM
ATAC-seq 专用
- 应用 Tn5 校正:使用 alignmentSieve 和
--ATACshift - 仅对移位的正确配对使用:
--ATACshift等同于--shift 4 -5 5 -4,并过滤为正确配对的片段 - 片段过滤:设置合适的 min/max 片段长度
- 检查核小体模式:片段大小图应显示阶梯模式
性能优化
- 使用多处理器:
--numberOfProcessors 8(或可用核心数) - 增加分箱大小以加快处理速度并减小文件大小
- 对内存有限的系统,单独处理染色体
- 使用 alignmentSieve 预过滤 BAM 文件以创建可重复使用的过滤文件
- 使用 bigWig 而非 bedGraph:压缩且处理速度更快
故障排除
常见问题
BAM 索引缺失:
samtools index input.bam
内存不足:
使用 --region 单独处理染色体:
bamCoverage --bam input.bam -o chr1.bw --region chr1
处理缓慢:
增加 --numberOfProcessors 和/或增加 --binSize
bigWig 文件过大:
增加分箱大小:--binSize 50 或更大
验证错误
运行验证脚本以识别问题:
python scripts/validate_files.py --bam *.bam --bed regions.bed
脚本输出中解释了常见错误及其解决方案。
参考文档
此技能包含全面的参考文档:
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
标准化方法的全面指南:
- 每种方法的详细说明(RPGC、CPM、RPKM、BPM 等)
- 何时使用每种方法
- 公式和解释
- 按实验类型选择指南
- 常见陷阱及解决方案
- 快速参考表
当用户询问标准化、样本比较或选择哪种方法时使用此参考。
references/effective_genome_sizes.md
有效基因组大小值及用法:
- 常见生物体值(人类、小鼠、果蝇、线虫、斑马鱼)
- 按读长长度分类的值
- 计算方法
- 何时以及如何在命令中使用
- 自定义基因组计算说明
当用户需要 RPGC 标准化或 GC 偏差校正的基因组大小时使用此参考。
辅助脚本
scripts/validate_files.py
验证 BAM、bigWig 和 BED 文件以供 deepTools 分析。检查文件存在性、索引和格式。
用法:
python scripts/validate_files.py --bam sample1.bam sample2.bam \
--bed peaks.bed --bigwig signal.bw
**何时使用:**在任何分析开始之前,或排查错误时。
scripts/workflow_generator.py
为常见 deepTools 工作流生成可自定义的 bash 脚本模板。
可用工作流:
chipseq_qc:ChIP-seq 质量控制chipseq_analysis:完整的 ChIP-seq 分析rnaseq_coverage:链特异性 RNA-seq 覆盖度atacseq:含 Tn5 校正的 ATAC-seq
用法:
# 列出工作流
python scripts/workflow_generator.py --list
# 生成工作流
python scripts/workflow_generator.py chipseq_qc -o qc.sh \
--input-bam Input.bam --chip-bams "ChIP1.bam ChIP2.bam" \
--genome-size 2913022398 --threads 8
# 运行生成的工作流
chmod +x qc.sh
./qc.sh
**何时使用:**用户请求标准工作流或需要自定义的模板脚本。
资源
assets/quick_reference.md
包含最常用命令、有效基因组大小和典型工作流模式的快速参考卡。
**何时使用:**用户需要快速命令示例,无需详细文档。
处理用户请求
针对新用户
- 从验证安装开始
- 使用
scripts/validate_files.py验证输入文件 - 根据实验类型推荐适当的工作流
- 使用
scripts/workflow_generator.py生成工作流模板 - 指导自定义和执行
针对有经验的用户
- 为请求的操作提供特定工具命令
- 引用
references/tools_reference.md中的相应部分 - 提供优化和最佳实践建议
- 为问题提供故障排除
针对特定任务
“将 BAM 转换为 bigWig”:
- 使用 bamCoverage 并指定适当的标准化方法
- 根据用例推荐 RPGC 或 CPM
- 提供生物体的有效基因组大小
- 建议相关参数(extendReads、ignoreDuplicates、binSize)
“检查 ChIP 质量”:
- 运行完整的 QC 工作流或专门使用 plotFingerprint
- 解释结果的含义
- 根据结果建议后续操作
“创建热图”:
- 引导完成两步过程:computeMatrix → plotHeatmap
- 帮助选择合适的矩阵模式(reference-point 对比 scale-regions)
- 建议可视化参数和聚类选项
“比较样本”:
- 推荐使用 bamCompare 进行两个样本比较
- 建议使用 multiBamSummary + plotCorrelation 进行多个样本比较
- 指导标准化方法的选择
引用文档
当用户需要详细信息时:
- 工具详情:指向
references/tools_reference.md中的特定部分 - 工作流:使用
references/workflows.md中的完整分析流程 - 标准化:查阅
references/normalization_methods.md以选择方法 - 基因组大小:参考
references/effective_genome_sizes.md
示例交互
用户:“我需要分析我的 ChIP-seq 数据”
回复思路:
- 询问可用文件(BAM 文件、峰区、基因)
- 使用验证脚本验证文件
- 生成 chipseq_analysis 工作流模板
- 根据其特定文件和生物体进行自定义
- 在脚本运行时解释每一步
用户:“我应该使用哪种标准化方法?”
回复思路:
- 询问实验类型(ChIP-seq、RNA-seq 等)
- 询问比较目标(样本内或样本间)
- 查阅
references/normalization_methods.md选择指南 - 推荐适当的方法并说明理由
- 提供带有参数的命令示例
用户:“在 TSS 周围创建一个热图”
回复思路:
- 验证 bigWig 和注释文件的存在性
- 为 computeMatrix 选择合适的模式(reference-point)
- 建议影响分辨率的关键参数(missingDataAsZero、sortRegions)
- 提供带有参考点模式的 computeMatrix 命令行
- 为 plotHeatmap 建议可视化参数(颜色映射、聚类)