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 对象

# 载入包
library(Biobase)

# 创建 ExpressionSet 对象
eset <- ExpressionSet(assayData = x,
                      phenoData = AnnotatedDataFrame(p),
                      featureData = AnnotatedDataFrame(f))

# 查看特征(行)和样本(列)数量 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 进行差异表达分析

Passons à la pratique !

在 R 中使用 limma 进行差异表达分析

Preparing Video For Download...