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 신호 플롯", "농축 시각화", "프로파일 플롯 생성"
- 샘플 비교: "처리군 vs 대조군 비교", "샘플 간 상관관계 분석", "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
업스트림은 특히 공유 HPC 시스템에서 전체 종속성 해결을 위해 conda/bioconda를 권장합니다:
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 비교: log2 및 readCount와 함께 bamCompare 사용
- RNA-seq 빈: CPM 사용
- RNA-seq 유전자: RPKM 사용 (유전자 길이 고려)
- ATAC-seq: RPGC 또는 CPM 사용
정규화 방법:
- RPGC: 1× 게놈 커버리지 (
--effectiveGenomeSize필요) - CPM: 백만 매핑된 리드 당 카운트
- RPKM: 킬로베이스 당, 백만 당 리드 (빈 길이 및 라이브러리 크기 스케일링)
- BPM: 백만 당 빈, 빈 신호에 대한 TPM 스타일 스케일링과 유사
- None: 원시 카운트 (비교에는 권장되지 않음)
전체 설명: references/normalization_methods.md
유효 게놈 크기
RPGC 정규화에는 유효 게놈 크기가 필요합니다. 일반적인 값:
| 유기체 | 어셈블리 | 크기 | 사용법 |
|---|---|---|---|
| 인간(Human) | GRCh38/hg38 | 2,913,022,398 | --effectiveGenomeSize 2913022398 |
| 인간(Human) | T2T/CHM13CAT_v2 | 3,117,292,070 | --effectiveGenomeSize 3117292070 |
| 생쥐(Mouse) | GRCm39/mm39 | 2,654,621,783 | --effectiveGenomeSize 2654621783 |
| 생쥐(Mouse) | GRCm38/mm10 | 2,652,783,500 | --effectiveGenomeSize 2652783500 |
| 제브라피쉬(Zebrafish) | GRCz11 | 1,368,780,147 | --effectiveGenomeSize 1368780147 |
| 초파리(Drosophila) | dm6 | 142,573,017 | --effectiveGenomeSize 142573017 |
| 예쁜꼬마선충(C. elegans) | 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와 동일하며 적절히 쌍을 이룬 단편으로 필터링 - 단편 필터링: 적절한 최소/최대 단편 길이 설정
- 뉴클레오솜 패턴 확인: 단편 크기 플롯은 사다리 패턴을 보여야 함
성능 최적화
- 여러 프로세서 사용:
--numberOfProcessors 8(또는 사용 가능한 코어) - 빈 크기 증가: 더 빠른 처리와 더 작은 파일을 위해
- 메모리 제한 시스템의 경우 염색체를 개별적으로 처리
- alignmentSieve를 사용하여 BAM 파일 사전 필터링: 재사용 가능한 필터링된 파일 생성
- bedGraph보다 bigWig 사용: 압축되어 처리 속도가 빠름
문제 해결
일반적인 문제
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
deepTools 분석을 위해 BAM, bigWig 및 BED 파일의 유효성을 검사합니다. 파일 존재, 인덱스 및 형식을 확인합니다.
사용법:
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를 특별히 사용
- 결과 해석 설명
- 결과에 따른 후속 조치 제안
"히트맵 생성":
- 2단계 프로세스 안내: 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 파일, 피크, 유전자)
- 유효성 검사 스크립트를 사용하여 파일 검증
- chipseq_analysis 워크플로 템플릿 생성
- 특정 파일 및 유기체에 맞게 사용자 정의
- 스크립트가 실행될 때 각 단계 설명
사용자: "어떤 정규화를 사용해야 하나요?"
대응 접근법:
- 실험 유형에 대해 질문 (ChIP-seq, RNA-seq 등)
- 비교 목표에 대해 질문 (샘플 내 또는 샘플 간)
references/normalization_methods.md선택 가이드 참조- 정당성과 함께 적절한 방법 추천
- 매개변수를 포함한 명령어 예제 제공
사용자: "TSS 주변에 히트맵을 생성하세요"
대응 접근법:
- bigWig 및 유전자 주석 파일(gene annotation file)의 존재 확인
- computeMatrix를 사용하여 점수 매트릭스 생성
- plotHeatmap을 사용하여 히트맵 렌더링
- 필요한 경우 시각화 매개변수 사용자 지정 (클러스터링, 색상 맵, 영역)