#bioinformatics
# Genome Analysis ToolKit (GATK)
## 소개
**Genome Analysis Toolkit (GATK)**는 Broad Institute에서 개발한 **유전체 변이 분석 툴킷**으로, **NGS(Next-Generation Sequencing) 데이터**를 기반으로 변이(SNP, Indel 등)를 분석할 수 있도록 설계된 소프트웨어입니다. 이 툴킷은 다양한 서브 프로그램을 포함하며, **exomeSeq**, **whole genome sequencing (WGS)**, **RNA-seq** 등의 데이터를 처리할 수 있습니다.
GATK는 **인간 유전체(human genome)**뿐만 아니라 모든 생물 종의 유전체 분석에도 사용할 수 있으며, 다양한 **시퀀싱 기술**에서 생성된 데이터를 지원합니다.
---
## 주요 특징
### 1. **변이 분석의 산업 표준**
GATK는 **SNP**와 **Indel**과 같은 변이를 분석하는 데 표준으로 자리 잡았습니다. 최근에는 **체세포 단일 변이(somatic short variant)**, **복제 수 변이(copy number variant, CNV)** 및 **구조적 변이(structural variation, SV)** 분석 기능도 추가되었습니다.
### 2. **Best Practices 워크플로우**
- GATK는 데이터를 **reads-to-results**로 처리하는 **Best Practices** 워크플로우를 제공합니다.
- 이 워크플로우는 Broad Institute의 대규모 데이터 분석 환경에서 검증된 프로세스로, 정확성과 계산 효율성을 극대화하도록 설계되었습니다.
- GATK4는 다양한 변이 유형(germline 및 somatic variants, CNV, SV)에 대해 최적화된 Best Practices 워크플로우를 제공합니다.
### 3. **다양한 플랫폼 지원**
- GATK는 **Linux** 및 **MacOS X**에서 작동하며, **POSIX 호환 플랫폼**을 지원합니다.
- 주요 요구 사항은 **Java 1.8**이며, 일부 도구는 추가적으로 **R** 또는 **Python** 종속성을 요구합니다.
- GATK4는 **Docker 컨테이너**를 통해 쉽게 배포할 수 있으며, 클라우드 환경 및 Apache Spark 아키텍처를 활용하여 병렬 처리를 지원합니다.
---
## 데이터 입력 및 출력
### **입력**
- GATK는 **BAM 파일**을 기본 입력으로 사용합니다.
- BAM 파일은 위치별로 정렬된 데이터여야 하며, 이를 위해 **SAMtools sort** 명령을 사용하여 정렬할 수 있습니다.
### **출력**
- 결과는 **VCF (Variant Call Format)** 파일로 제공됩니다.
- VCF 파일은 변이에 대한 상세 정보를 포함하며, 후속 분석(GWAS, Genotyping 등)에 활용됩니다.
---
## GATK의 주요 분석 과정
### 1. **참조 서열 매핑**
GATK를 사용하기 전에 **Bowtie2**, **BWA**와 같은 aligner를 사용해 reads를 참조 서열(reference genome)에 매핑해야 합니다.
- Genome(WGS, GBS): Bowtie2, BWA
- Transcriptome(RNA-seq): STAR
### 2. **중복 제거**
- GATK를 실행하기 전, **Picard MarkDuplicates**를 사용해 **중복 reads**를 제거합니다.
- 단, **GBS**와 같은 데이터의 경우 제한효소로 인해 생성된 reads는 중복으로 간주하지 않는 경우도 있습니다.
### 3. **RNA-seq 데이터 처리**
RNA-seq 데이터를 사용할 경우, GATK의 **SplitNCigarReads**를 사용해 전처리를 진행한 후 변이 분석을 수행해야 합니다.
### 4. **변이 분석 단계**
#### **Germline Variant Calling Pipeline**
- **HaplotypeCaller**를 사용해 개체별로 SNP 및 Indel 변이를 탐지합니다.
- 주요 변이 유형:
- **SNP (Single Nucleotide Polymorphism)**: 단일 염기 차이에 의해 발생.
- **Indel (Insertion & Deletion)**: 염기의 삽입/삭제로 인한 변이.
- **Structural Variation**: 유전체 구조의 차이로 인한 변이.
#### **Variant Discovery**
- **CombineGVCF**, **GenotypeGVCF**, **SelectVariants**를 통해 변이를 통합 및 필터링합니다.
- 결과 데이터는 **vcftools**, **PLINK** 등을 사용해 GWAS(Gene-Wide Association Study)와 같은 추가 분석에 활용할 수 있습니다.
---
## GenomicsDBImport
- 샘플 수가 1,000개를 초과할 경우, **CombineGVCF** 대신 **GenomicsDBImport**를 사용하는 것이 권장됩니다.
- GenomicsDBImport는 DB 형태로 데이터를 관리하며, 효율적으로 변이 통합 작업을 수행할 수 있습니다.
---
## 기술적인 요구 사항
- **운영체제**: Linux, MacOS X (Windows 미지원).
- **필수 소프트웨어**: Java 1.8, 일부 도구는 R 또는 Python 필요.
- **배포 방식**: Docker 이미지 지원, 클라우드 및 병렬 처리 환경 최적화.
---
GATK는 NGS 데이터를 효율적으로 처리하고 유전체 변이를 분석할 수 있는 강력한 도구입니다. Best Practices 워크플로우와 다양한 서브 프로그램을 통해 정밀하고 신뢰할 수 있는 결과를 얻을 수 있습니다.