deepTools:NGS 資料分析工具包 是做什麼的?
總覽
deepTools 是一套完整的 Python 命令列工具套件,專門用於處理與分析高通量定序資料。使用 deepTools 可執行品質管控、資料標準化、樣本比較,並為 ChIP-seq、RNA-seq、ATAC-seq、MNase-seq 及其他 NGS 實驗產出高品質的圖表。
核心功能:
- 將 BAM 比對結果轉換為標準化覆蓋度軌跡(bigWig/bedGraph)
- 品質管控評估(指紋分析、相關性、覆蓋度)
- 樣本比較與相關性分析
- 在基因體特徵周圍產生熱圖與輪廓圖
- 富集分析與 peak 區域視覺化
使用時機
此技能應在以下情況使用:
- 檔案轉換:「將 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 bins:使用 CPM
- RNA-seq 基因:使用 RPKM(考慮基因長度)
- ATAC-seq:使用 RPGC 或 CPM
標準化方法:
- RPGC:1× 基因體覆蓋度(需要 --effectiveGenomeSize)
- CPM:每百萬比對 reads 的計數
- RPKM:每千鹼基每百萬比對 reads(同時考慮 bin 長度與文庫大小)
- BPM:每百萬 bins,類似於 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 |
包含 read 長度特定數值的完整表格:references/effective_genome_sizes.md
多種工具共用的參數
許多 deepTools 命令都共用這些選項:
效能:
--numberOfProcessors, -p:啟用平行處理(始終使用可用核心)max/max/2:--numberOfProcessors支援的值;由於近期 deepTools 版本更仔細地偵測 CPU 親和性,在排程器下很有用--region:處理特定區域以進行測試(例如chr1:1-1000000)
Read 過濾:
--ignoreDuplicates:移除 PCR 重複(大部分分析建議使用)--minMappingQuality:依比對品質過濾(例如--minMappingQuality 10)--minFragmentLength/--maxFragmentLength:片段長度範圍--samFlagInclude/--samFlagExclude:SAM flag 過濾
Read 處理:
--extendReads:延伸至片段長度(ChIP-seq:是,RNA-seq:否)--centerReads:以片段中點為中心以獲得較銳利的訊號
最佳實務
檔案驗證
始終先驗證檔案使用 scripts/validate_files.py 檢查:
- 檔案是否存在與可讀取
- BAM 索引是否存在(.bai 檔案)
- BED 格式是否正確
- 檔案大小是否合理
分析策略
- 從 QC 開始:在繼續之前先執行相關性、覆蓋度與指紋分析
- 在小區域測試:使用
--region chr1:1-10000000進行參數測試 - 記錄命令:儲存完整命令列以確保可重現性
- 使用一致的標準化:在比較中對所有樣本套用相同方法
- 驗證基因體組裝:確保 BAM 與 BED 檔案使用匹配的基因體版本
ChIP-seq 特定
- 始終為 ChIP-seq 延伸 read:
--extendReads 200 - 移除重複:大多數情況下使用
--ignoreDuplicates - 先檢查富集:在進行詳細分析前先執行 plotFingerprint
- GC 校正:僅在偵測到顯著偏差時套用;GC 校正後絕不使用
--ignoreDuplicates
RNA-seq 特定
- 絕對不要為 RNA-seq 延伸 reads(會跨越剪接接合處)
- 鏈特異性:對常見的 dUTP 類型鏈特異性文庫使用
--filterRNAstrand forward/reverse;在解釋鏈標籤前先確認文庫方向 - 標準化:bins 使用 CPM,基因使用 RPKM
ATAC-seq 特定
- 套用 Tn5 校正:使用 alignmentSieve 並搭配
--ATACshift - 僅對移位使用 proper pairs:
--ATACshift等同於--shift 4 -5 5 -4,且會過濾為 properly paired 片段 - 片段過濾:設定適當的最小/最大片段長度
- 檢查核小體模式:片段大小圖應呈現階梯狀模式
效能最佳化
- 使用多個處理器:
--numberOfProcessors 8(或可用核心數) - 增加 bin 大小以加速處理並減少檔案大小
- 分別處理染色體以適應記憶體受限的系統
- 使用 alignmentSieve 預先過濾 BAM 檔案以建立可重複使用的過濾後檔案
- 使用 bigWig 而非 bedGraph:壓縮且處理更快
疑難排解
常見問題
缺少 BAM 索引:
samtools index input.bam
記憶體不足:
使用 --region 分別處理染色體:
bamCoverage --bam input.bam -o chr1.bw --region chr1
處理速度慢:
增加 --numberOfProcessors 及/或增加 --binSize
bigWig 檔案過大:
增加 bin 大小:--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 分析流程
- 多樣本比較流程
- Peak 區域分析流程
- 疑難排解與效能提示
**使用時機:**使用者需要完整的分析管線或流程範例時。
references/normalization_methods.md
標準化方法完整指南:
- 每種方法的詳細說明(RPGC、CPM、RPKM、BPM 等)
- 每種方法的使用時機
- 公式與解釋
- 依實驗類型選擇指南
- 常見陷阱與解決方案
- 快速參考表格
**使用時機:**使用者詢問標準化、樣本比較或應使用哪種方法時。
references/effective_genome_sizes.md
有效基因體大小數值與使用方式:
- 常見生物體數值(人類、小鼠、果蠅、線蟲、斑馬魚)
- read 長度特定數值
- 計算方法
- 何時以及如何在命令中使用
- 自訂基因體計算說明
**使用時機:**使用者需要 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 vs scale-regions)
- 建議視覺化參數與聚類選項
「比較樣本」:
- 對兩個樣本比較推薦 bamCompare
- 對多個樣本推薦 multiBamSummary + plotCorrelation
- 引導標準化方法的選擇
引用文件
當使用者需要詳細資訊時:
- 工具細節:引導至
references/tools_reference.md中的特定章節 - 流程:使用
references/workflows.md取得完整分析管線 - 標準化:查閱
references/normalization_methods.md以選擇方法 - 基因體大小:參考
references/effective_genome_sizes.md
互動範例
使用者:「我需要分析我的 ChIP-seq 資料」
回應方式:
- 詢問可用的檔案(BAM 檔案、peaks、基因)
- 使用驗證腳本驗證檔案
- 產生 chipseq_analysis 流程範本
- 根據其特定檔案與生物體進行自訂化
- 在腳本執行時說明每個步驟
使用者:「我應該使用哪種標準化?」
回應方式:
- 詢問實驗類型(ChIP-seq、RNA-seq 等)
- 詢問比較目標(樣本內或樣本間)
- 查閱
references/normalization_methods.md選擇指南 - 推薦適當的方法並提供理由
- 提供含參數的命令範例
使用者:「在 TSS 周圍建立熱圖」
回應方式:
- 驗證 bigWig 與基因註釋檔案
- 執行 computeMatrix 命令(reference-point 模式,TSS 為參考點)
- 使用 plotHeatmap 繪製熱圖
- 建議視覺化自訂化選項