Juicer를 활용한 Hi-C 데이터 기반 스캐폴딩 워크플로우

Hi-C 기술은 삼차원 염색체 구조를 탐구하는 강력한 도구로, 최근에는 de novo 어셈블리된 스캐폴드를 염색체 수준으로 연결하는 데 필수적으로 활용됩니다. 본 문서에서는 이러한 파이프라인의 핵심 구성요소인 Juicer 도구의 설치와 실행 방법을 상세히 다룹니다.

Juicer 개요

Juicer는 Aiden Lab에서 개발한 통합 분석 플랫폼으로, 원시 Hi-C 시퀀싱 데이터부터 상호작용 매트릭스 생성, 토로지 연관 도메인(TAD) 및 크로마틴 루프 탐지까지 전 과정을 자동화합니다. 주요 특징은 다음과 같습니다:

  • 테라바이트급 대용량 데이터셋의 병렬 처리 지원
  • 내장된 ArrowheadHiccups 알고리즘을 통한 구조적 특징 자동 식별
  • Apache 2.0 라이선스 기반 오픈소스 생태계
  • SLURM, SGE, LSF 등 주요 워크로드 매니저와의 원활한 통합

실행 환경 구성

필수 의존성

구성요소최소 버전확인 명령
OpenJDK1.8java -version
BWA-MEM0.7.17bwa 2>&1 | head -1
GNU Coreutils8.22sort --version

추가로 NVIDIA GPU가 구축된 환경에서는 CUDA 가속화된 juicer_tools 버전을 활용하여 매트릭스 정규화 속도를 향상시킬 수 있습니다.

디렉터리 구조 준비

# 프로젝트 루트 생성
export JUICER_ROOT=/opt/hic-analysis
mkdir -p ${JUICER_ROOT}/{assembly,enzyme_map,raw_reads,software}

# 참조 서열 저장 경로
REF_DIR=${JUICER_ROOT}/assembly
# 제한효소 절단 위치 정보
SITE_DIR=${JUICER_ROOT}/enzyme_map
# 시퀀싱 데이터
DATA_DIR=${JUICER_ROOT}/raw_reads

소프트웨어 획득

안정적인 릴리스 버전을 권장합니다. 개발 중인 master 브랜치 대신 태그된 릴리스를 직접 다운로드하세요:

cd ${JUICER_ROOT}/software
curl -L -o juicer-1.6.tar.gz \
    https://github.com/aidenlab/juicer/archive/refs/tags/1.6.tar.gz
tar -xzf juicer-1.6.tar.gz
ln -s juicer-1.6 juicer

분석 엔진인 juicer_tools JAR 파일을 획득합니다:

cd juicer/CPU/common
wget https://s3.amazonaws.com/hicfiles.tc4ga.com/public/juicer/juicer_tools.2.20.00.jar
ln -sf juicer_tools.2.20.00.jar juicer_tools.jar

전처리 단계: 인덱스 및 제한효소 맵 생성

참조 게놈 인덱싱

BWA-MEM 인덱스를 구축합니다. 이는 후속 read 매핑의 기초가 됩니다:

bwa index -p ${REF_DIR}/ref_index ${REF_DIR}/primary_assembly.fa

제한효소 절단 사이트 예측

실험에 사용된 제한효소 종류에 따라 절단 위치를 계산합니다. 일반적으로 사용되는 효소들:

효소명인식 서열용도
DpnII^GATC4bp 커터, 높은 해상도
HindIIIA^AGCTT6bp 커터, 장거리 상호작용
MboI^GATCDpnII와 동일한 절단 패턴
python ${JUICER_ROOT}/software/juicer/misc/generate_site_positions.py \
    HindIII \
    ref_id \
    ${REF_DIR}/primary_assembly.fa \
    > ${SITE_DIR}/ref_HindIII.txt

염색체 크기 파일을 파생합니다:

awk -v OFS='\t' '{print $1, $NF}' ${SITE_DIR}/ref_HindIII.txt \
    > ${SITE_DIR}/ref.chrom.sizes

입력 데이터 구성

원시 FASTQ 파일은 엄격한 명명 규칙을 따라야 합니다. 샘플 식별자와 방향성 정보가 파이프라인 내부에서 정규표현식으로 추출됩니다:

${DATA_DIR}/
├── strainA_R1.fq.gz
├── strainA_R2.fq.gz
├── strainB_R1.fq.gz
└── strainB_R2.fq.gz

중요: 파일명은 반드시 _R1_R2 접미사로 구분되어야 하며, 압축 형식은 gzip을 사용해야 합니다.

핵심 분석 실행

대용량 데이터셋의 경우 tmux 또는 screen 세션 내에서 실행하는 것을 권장합니다:

export PATH=${JUICER_ROOT}/software/juicer/CPU:$PATH

juicer.sh \
    -z ${REF_DIR}/primary_assembly.fa \
    -p ${SITE_DIR}/ref.chrom.sizes \
    -y ${SITE_DIR}/ref_HindIII.txt \
    -s HindIII \
    -d ${DATA_DIR} \
    -D ${JUICER_ROOT}/software/juicer \
    -t 32 \
    -S early \
    > ${JUICER_ROOT}/execution.log 2>&1

주요 매개변수 설명:

옵션기능
-z참조 서열 경로 (동일 경로에 BWA 인덱스 필수)
-p염색체 크기 정의 파일
-y제한효소 절단 위치 좌표
-s제한효소 식별자
-d입력 FASTQ 디렉터리
-DJuicer 설치 루트
-tBWA-MEM 병렬 스레드 수
-S실행 단계 (early/mid/late, 기본값: late)

출력 결과 해석

성공적인 완료 후 다음 디렉터리 구조가 생성됩니다:

${DATA_DIR}/aligned/
├── inter.hic              # 전체 매핑 품질 스코어 범위
├── inter_30.hic           # MAPQ ≥ 30 필터링 버전
├── inter_1_5000.txt       # 5kb 빈 해상도 매트릭스
├── inter_30_10000.txt     # 10kb 해상도, 고품질만
└── merged_nodups.txt      # 3D-DNA 입력 파일

merged_nodups.txt 파일은 7개 필드로 구성된 탭 구분 형식입니다:

  1. read1 염색체
  2. read1 좌표 (1-based)
  3. read1 방향성 (0: 정방향, 1: 역방향)
  4. read2 염색체
  5. read2 좌표
  6. read2 방향성
  7. MAPQ 점수

이 파일은 후속 3D-DNA 파이프라인의 run-asm-pipeline.sh 스크립트에 직접 전달되어 스캐폴드의 염색체 수준 배열을 수행합니다.

품질 검증 및 문제 해결

분석 완료 후 fastqc 디렉터리 내 HTML 리포트를 확인하여 라이브러리 복잡도와 매핑률을 검증하세요. 정상적인 Hi-C 라이브러리는 다음 특성을 보여야 합니다:

  • 매핑률 > 70%
  • 유효 상호작용 비율 (intra-chromosomal / total) > 40%
  • 중복 제거 후 고유 read 수 > 100M (mammalian genome 기준)

이상적으로는 .hic 파일을 Juicebox 데스크톱 애플리케이션으로 로드하여 대각선 패턴의 선명도와 예상 염색체 수에 따른 블록 구조를 시각적으로 확인하는 것을 권장합니다.

태그: Hi-C genome-assembly scaffolding chromosome-conformation-capture Juicer

6월 30일 22:23에 게시됨