분석을 시작하기 전에 Conda 환경과 필수 툴을 설치하고, 레퍼런스 유전체 파일을 준비합니다. 앞으로 모든 분석은 20 threads를 기본으로 사용합니다.
Conda는 파이썬/비파이썬 패키지를 함께 관리하는 패키지 & 가상환경 관리자입니다.
서로 다른 프로젝트에서 툴 버전 충돌을 피하려면 각 프로젝트마다 별도의 conda 환경을 만드는 것이 안전합니다.
생정보 툴은 대부분 bioconda와 conda-forge 채널에서 설치합니다.
# 채널 추가 (추천 순서)
conda config --add channels conda-forge
conda config --add channels bioconda
conda config --set channel_priority strict
# 환경 생성 (python3.10 + 주요 패키지)
conda create -y -n wgs_env python=3.10 \
cutadapt bwa samtools gatk4 bcftools bedtools fastqc multiqc \
openjdk=17 parallel
# 환경 활성화
conda activate wgs_env
분석 데이터를 관리하기 위해 아래와 같은 디렉토리 구조를 추천합니다.
/home/kang/
├── raw_data/ # 원본 데이터 및 reference
│ └── gatk_bundle/ # GATK 번들(레퍼런스/known-sites 등)
├── God_Nas/WGS_2nd/ # 프로젝트 폴더
│ └── Trimmed_fastq/ # 트리밍된 FASTQ 저장
└── ...
본 실습에서는 Homo_sapiens_assembly38.fasta (GRCh38/hg38)를 사용합니다. WGS 분석에서 모든 read는 기준(reference) 유전체에 정렬되므로, 공식 레퍼런스와 known-sites 리소스(dbSNP, HapMap, Mills indels 등)를 정확히 준비하는 것이 중요합니다.
GATK Best Practices에서는 GATK Resource Bundle 사용을 권장합니다.
이 번들은 Broad Institute에서 제공하는 표준 리소스 모음으로,
hg19, hg38에 대한 레퍼런스와 각종 VCF/interval 파일을 포함합니다.
현재 Google Cloud Storage(GCS)에 호스팅되어 있어 웹 또는 gsutil로 받을 수 있습니다.
# (선택) Google Cloud SDK 설치
conda install -y -c conda-forge google-cloud-sdk
# hg38 번들을 로컬로 복사 (예: /home/kang/raw_data/gatk_bundle/ 아래)
gsutil -m cp -r gs://genomics-public-data/references/broad/hg38/v0/ \
/home/kang/raw_data/gatk_bundle/
다운로드 후, GATK 및 정렬 도구에서 사용할 색인을 생성합니다.
필요한 파일은 .fasta(염기서열), .fai(faidx 색인), .dict(GATK 딕셔너리)입니다.
# Reference 경로 지정 (다운로드한 번들 내부 경로에 맞게 조정)
REF_DIR=/home/kang/raw_data/gatk_bundle/v0
REF=${REF_DIR}/Homo_sapiens_assembly38.fasta
# 색인 생성 (한 번만)
bwa index ${REF}
samtools faidx ${REF}
gatk CreateSequenceDictionary -R ${REF} -O ${REF%.fasta}.dict
분석은 기본적으로 20 threads를 사용합니다. 스크립트 상단에 변수를 선언해 두면 일괄 적용하기 편합니다.
# 앞으로 모든 스크립트 상단에 공통 선언
THREADS=20