liminfo

DESeq2 Reference

DESeq2 RNA-seq 차등발현 분석 R 패키지 레퍼런스

23개 결과

DESeq2 Reference 소개

DESeq2 레퍼런스는 RNA-Seq 차등 유전자 발현 분석을 위한 DESeq2 R/Bioconductor 패키지의 종합 가이드로, 카운트 매트릭스, HTSeq-count 파일, tximport(Salmon/Kallisto)를 통한 데이터 입력부터 크기 인자 정규화, 분산 추정, Wald/LRT 통계 검정까지 전체 분석 파이프라인을 다룹니다.

MA 플롯, 화산 플롯, PCA 샘플 클러스터링, 분산 진단 플롯, pheatmap을 활용한 상위 차등발현 유전자 히트맵 등 시각화 기법과 정규화 방법(VST, rlog), SVA를 활용한 배치 효과 보정, 상호작용 모델, 시계열 분석, 다중 비교 전략을 포함합니다.

RNA-Seq 실험을 수행하는 생물정보학 연구자, 유전체학 과학자, 대학원생을 위해 설계되었으며, 데이터 준비부터 결과 해석, clusterProfiler를 활용한 하류 유전자 세트 풍부화 분석까지 모든 단계의 실용적인 R 코드 스니펫을 제공합니다.

주요 기능

  • 카운트 매트릭스, HTSeq-count 파일, tximport(Salmon/Kallisto)에서 디자인 포뮬러를 지정한 DESeqDataSet 생성
  • 완전한 DESeq() 파이프라인: estimateSizeFactors, estimateDispersions, nbinomWaldTest 상세 파라미터
  • Log2 Fold Change 축소 추정 방법: apeglm(권장), ashr, normal과 coef/contrast 지정
  • 시각화 갤러리: MA plot, volcano plot, PCA(plotPCA + ggplot2 커스터마이징), dispersion plot, pheatmap 히트맵
  • 각각의 사용 시점에 대한 안내를 포함한 VST와 rlog 정규화 비교(샘플 수 임계값 n=30)
  • 고급 실험 설계: 배치 효과 보정(~batch + condition), 상호작용 모델(genotype:treatment), 시계열 LRT
  • 열 정의(baseMean, log2FoldChange, padj)와 유전자 필터링 전략을 포함한 결과 해석
  • 하류 분석 연동: org.Hs.eg.db로 유전자 심볼 주석, enrichGO, 순위 유전자 목록을 이용한 GSEA, CSV 내보내기

자주 묻는 질문

카운트 매트릭스에서 DESeqDataSet을 어떻게 생성하나요?

DESeqDataSetFromMatrix()에 countData(유전자를 행, 샘플을 열로 하는 원시 정수 카운트 매트릭스), colData(조건, 배치 등 샘플 정보를 담은 data.frame), design(~ condition 등 실험 변수를 지정하는 포뮬러) 세 가지 인자를 전달합니다. 카운트 데이터는 정규화되지 않은 원시 카운트여야 하며, colData의 행 이름이 countData의 열 이름과 일치해야 합니다.

lfcShrink 방법(apeglm, ashr, normal)의 차이점은 무엇인가요?

apeglm 방법(DESeq2 개발자 권장)은 적응적 축소와 우수한 부호 오류율 제어를 제공하며 coef 인자를 사용합니다. ashr 방법은 contrast 지정이 가능하여 임의 비교를 처리합니다. normal 방법은 균일 축소를 적용하는 레거시 기본값입니다. 일반적인 분석에서는 coef = "condition_treated_vs_control"로 apeglm을 사용하세요. 사용 가능한 계수는 resultsNames(dds)로 확인합니다.

우도비 검정(LRT)은 Wald 검정 대신 언제 사용하나요?

LRT는 특정 쌍별 비교가 아닌 다중 조건(3개 이상 그룹) 전체에서 차이가 있는지 검정할 때 사용합니다. DESeq(dds, test = "LRT", reduced = ~ 1)로 관심 변수를 제거한 축소 모델을 지정합니다. LRT는 시계열 분석(design = ~ time, reduced = ~ 1)에서 시간에 따른 발현 변화가 있는 유전자를 식별하는 데도 적합합니다. 특정 두 그룹 비교에는 Wald 검정이 선호됩니다.

VST와 rlog 중 어떤 정규화를 사용해야 하나요?

샘플이 30개 이상인 데이터셋에는 계산 속도가 훨씬 빠른 VST(vst())를 사용합니다. 30개 미만의 소규모 데이터셋에는 저카운트 유전자에서 더 나은 성능을 보이는 rlog(rlog())을 사용합니다. 두 방법 모두 PCA, 히트맵, 클러스터링에 적합한 log2 스케일 변환 값을 생성합니다. 하류 분석용에는 blind=FALSE(디자인 정보 활용), 비편향 QC 평가에는 blind=TRUE를 설정합니다.

DESeq2에서 배치 효과를 어떻게 보정하나요?

디자인 포뮬러의 첫 번째 항에 배치를 포함합니다: design = ~ batch + condition. DESeq2가 조건 효과를 검정할 때 배치 변동을 고려합니다. 순서가 중요합니다: 교란 변수가 먼저, 관심 변수가 마지막에 위치합니다. 숨겨진 배치 효과에는 sva 패키지를 사용하여 svaseq()로 대리 변수를 발견한 후 디자인 포뮬러에 포함합니다.

DESeq2 결과에서 화산 플롯은 어떻게 만드나요?

결과를 data.frame으로 변환하고 유의성 열(padj < 0.05 및 abs(log2FoldChange) > 1)을 추가한 후, ggplot2에서 aes(x = log2FoldChange, y = -log10(pvalue))를 사용합니다. 유의성에 따라 점을 색칠하고, log2FC 임계값 -1과 1에 점선 수직선, -log10(0.05)에 수평선을 추가합니다. lfcShrink 결과를 사용하면 저카운트 유전자 노이즈가 줄어든 깔끔한 화산 플롯을 얻을 수 있습니다.

DESeq2 결과로 유전자 세트 풍부화 분석은 어떻게 수행하나요?

과대표현 분석(ORA)은 유의한 유전자 ID(padj < 0.05)를 추출하여 적절한 OrgDb와 keyType으로 clusterProfiler의 enrichGO()를 사용합니다. GSEA는 log2FoldChange 값을 내림차순으로 정렬하고 유전자 ID를 이름으로 지정한 순위 유전자 목록을 gseGO()에 전달합니다. 두 방법 모두 주석 패키지의 mapIds()를 사용하여 Ensembl ID를 Entrez나 심볼로 변환해야 합니다.

두 실험 변수 간 상호작용 효과는 어떻게 분석하나요?

디자인 포뮬러 ~ genotype + treatment + genotype:treatment로 주효과와 상호작용 항을 모델링합니다. DESeq(dds)를 실행하고 results(dds, name = "genotypeKO.treatmenttreated")로 상호작용 효과를 추출합니다. 이 결과에서 유의한 유전자는 유전형 간에 처리 반응이 다른 유전자입니다. 이 디자인은 모든 인자 수준 조합에서 균형 잡힌 샘플 그룹이 필요합니다.