옥수수(Zea mays)는 유전적 다양성이 매우 높고 복잡한 게놈 구조를 가진 작물입니다. 특히 B73 레퍼런스 게놈(NAM-5.0)을 활용한 변이 분석은 옥수수의 유전적 특성을 규명하는 핵심 과정입니다. 본 가이드에서는 GATK4(Genome Analysis Toolkit)를 사용하여 원천 서열 데이터(Raw Sequencing Data)로부터 고품질의 SNP와 Indel을 추출하는 최적화된 워크플로우를 소개합니다.
1. 분석 환경 구축 및 종자 데이터 준비
변이 분석을 시작하기에 앞서 독립적인 분석 환경을 구성하고 필요한 도구들을 설치해야 합니다. 효율적인 관리를 위해 Conda 환경을 사용하는 것을 권장합니다.
# 분석 환경 생성 및 필수 도구 설치
conda create -n maize_analysis python=3.9
conda activate maize_analysis
conda install -c bioconda gatk4 bwa samtools fastp bcftools -y
이후 옥수수 B73 NAM-5.0 레퍼런스 게놈 데이터를 확보하고 인덱싱 작업을 수행합니다. 인덱싱은 매핑 속도와 데이터 접근 효율성을 결정하는 중요한 단계입니다.
# 레퍼런스 게놈 다운로드 및 인덱싱
wget https://download.maizegdb.org/Zm-B73-REFERENCE-NAM-5.0/Zm-B73-REFERENCE-NAM-5.0.fa.gz
gunzip Zm-B73-REFERENCE-NAM-5.0.fa.gz
# BWA 및 Samtools 인덱스 생성
bwa index Zm-B73-REFERENCE-NAM-5.0.fa
samtools faidx Zm-B73-REFERENCE-NAM-5.0.fa
gatk CreateSequenceDictionary -R Zm-B73-REFERENCE-NAM-5.0.fa
2. 시퀀싱 데이터 전처리 (Quality Control & Trimming)
Raw 리드에 포함된 어댑터 서열과 저품질 염기를 제거하여 분석의 정확도를 높입니다. `fastp`는 전처리와 동시에 품질 리포트를 생성하는 효율적인 도구입니다.
# Fastp를 이용한 품질 제어 및 필터링
fastp --in1 sample_read1.fastq.gz --in2 sample_read2.fastq.gz \
--out1 clean_read1.fastq.gz --out2 clean_read2.fastq.gz \
--detect_adapter_for_pe \
--qualified_quality_phred 25 \
--length_required 60 \
--html qc_report.html
3. 서열 정렬 및 중복 리드 마킹
필터링된 리드를 레퍼런스 게놈에 매핑합니다. BWA-MEM 알고리즘을 사용하며, GATK 분석에 필수적인 Read Group 정보를 추가합니다.
# BWA-MEM 매핑 및 정렬
bwa mem -t 16 -R '@RG\tID:Maize_B73\tSM:B73_Sample\tPL:ILLUMINA' \
Zm-B73-REFERENCE-NAM-5.0.fa \
clean_read1.fastq.gz clean_read2.fastq.gz | \
samtools sort -@ 8 -o aligned_sorted.bam -
# PCR 중복 리드 마킹 (MarkDuplicates)
gatk MarkDuplicates \
-I aligned_sorted.bam \
-O marked_duplicates.bam \
-M metrics_file.txt \
--CREATE_INDEX true
4. GATK를 이용한 변이 호출 (Variant Calling)
이제 전처리가 완료된 BAM 파일로부터 실제 변이를 찾아냅니다. `HaplotypeCaller`는 로컬 재조합(Local Re-assembly) 방식을 사용하여 높은 정확도의 SNP와 Indel을 검출합니다.
# GVCF 모드로 변이 검출
gatk --java-options "-Xmx16G" HaplotypeCaller \
-R Zm-B73-REFERENCE-NAM-5.0.fa \
-I marked_duplicates.bam \
-O output_variants.g.vcf.gz \
-ERC GVCF \
--native-pair-hmm-threads 8
5. 하드 필터링 (Hard Filtering) 적용
검출된 원천 변이 데이터에는 위양성(False Positive) 결과가 포함될 수 있습니다. 옥수수 게놈의 특성을 고려하여 다음과 같은 권장 지표를 기준으로 필터링을 수행합니다.
| 지표 (Metrics) |
SNP 필터 조건 |
Indel 필터 조건 |
| Quality by Depth (QD) |
< 2.0 |
< 2.0 |
| FisherStrand (FS) |
> 60.0 |
> 200.0 |
| MappingQuality (MQ) |
< 40.0 |
< 40.0 |
| StrandOddsRatio (SOR) |
> 3.0 |
> 10.0 |
# GATK VariantFiltration 적용
gatk VariantFiltration \
-R Zm-B73-REFERENCE-NAM-5.0.fa \
-V raw_variants.vcf.gz \
--filter-expression "QD < 2.0 || FS > 60.0 || MQ < 40.0 || SOR > 3.0" \
--filter-name "SNP_FILTER" \
--filter-expression "QD < 2.0 || FS > 200.0 || MQ < 40.0 || SOR > 10.0" \
--filter-name "INDEL_FILTER" \
-O filtered_variants.vcf.gz
6. 분석 결과 확인 및 통계
마지막으로 필터링을 거친 최종 VCF 파일의 통계 수치를 확인하여 데이터의 신뢰성을 검증합니다.
# bcftools를 이용한 변이 통계 확인
bcftools stats filtered_variants.vcf.gz > final_stats.txt
이 과정에서 Ts/Tv ratio(Transition/Transversion 비율)를 확인하는 것이 중요합니다. 옥수수의 경우 일반적으로 2.0 내외의 값을 보이며, 이 범위를 크게 벗어날 경우 전처리 과정이나 필터링 기준을 재검토해야 합니다. B73 NAM-5.0 게놈은 이전 버전에 비해 조립 정밀도가 높으므로, 정확한 염색체 좌표 매핑 여부를 반드시 확인하시기 바랍니다.