ExpressionSet 클래스

R에서 limma로 하는 차등 발현 분석

John Blischak

Instructor

데이터 관리는 불안정하다

x_sub <- x[1000, 1:10]
f_sub <- f[1000, ]
p_sub <- p[1:10, ]

콤마 하나가 잘못되면 디버깅 악몽이 시작됩니다:

x_sub <- x[1000, 1:10]
f_sub <- f[1000, ]
p_sub <- p[, 1:10]
# Oh no!   *
R에서 limma로 하는 차등 발현 분석

Bioconductor 클래스를 활용한 객체 지향 프로그래밍

  • 클래스(class) - 복잡한 데이터를 저장하는 구조 정의

  • 객체(object) - 클래스의 특정 인스턴스

  • 메서드(methods) - 특정 클래스에서 작동하는 함수

    • 게터/접근자(getters/accessors) - 객체에 저장된 데이터 조회
    • 세터(setters/) - 객체에 저장된 데이터 수정
install.packages("BiocManager")
BiocManager::install("Biobase")
R에서 limma로 하는 차등 발현 분석

ExpressionSet 객체 생성

# Load package
library(Biobase)

# Create ExpressionSet object
eset <- ExpressionSet(assayData = x,
                      phenoData = AnnotatedDataFrame(p),
                      featureData = AnnotatedDataFrame(f))

# View the number of features (rows) and samples (columns) dim(eset)
Features  Samples 
   22283      344
?ExpressionSet
R에서 limma로 하는 차등 발현 분석

ExpressionSet 객체에서 데이터 접근

발현 행렬

x <- exprs(eset)

피처 데이터

f <- fData(eset)

표현형 데이터

p <- pData(eset)
R에서 limma로 하는 차등 발현 분석

ExpressionSet 객체 서브셋

  • 3개의 개별 객체로 서브셋:
x_sub <- x[1000, 1:10]
f_sub <- f[1000, ]
p_sub <- p[1:10, ]
  • ExpressionSet 객체로 서브셋:
eset_sub <- eset[1000, 1:10]
nrow(exprs(eset_sub)) == nrow(fData(eset_sub))
TRUE
ncol(exprs(eset_sub)) == nrow(pData(eset_sub))
TRUE
R에서 limma로 하는 차등 발현 분석

ExpressionSet으로 박스플롯 그리기

boxplot(<y-axis> ~ <x-axis>, main = "<title>")
boxplot(<gene expression> ~ <phenotype>, main = "<feature>")

boxplot(exprs(eset)[1, ] ~ pData(eset)[, "er"], main = fData(eset)[1, "symbol"])

R에서 limma로 하는 차등 발현 분석

연습해 봅시다!

R에서 limma로 하는 차등 발현 분석

Preparing Video For Download...