查看原文
其他

cytofWorkflow之构建SingleCellExperiment对象(二)

生信技能树 生信技能树 2022-08-10

前面我们公布了《cytof数据资源介绍(文末有交流群)》,现在就开始正式手把手教学。

上一讲我们提到了,跟着cytofWorkflow,可以使用read.flowSet函数全部的FCS文件后,会产生一个对象,这里面变量名是 samp 。其实cytofWorkflow只是一个流程而已,这个read.flowSet函数来自于R包。

但有了FCS文件不够,具体的每个样本是有临床表型的,而且呢,里面的抗体也是有对应的生物学意义的。这3种信息组合起来,就是 CATALYST 包的 prepData函数该派上用场啦,官方示例代码如下:

# construct SingleCellExperiment
library(CATALYST)
sce <- prepData(fs, panel, md, features = panel$fcs_colname)

官网链接是:

  • http://www.bioconductor.org/packages/release/bioc/vignettes/CATALYST/inst/doc/preprocessing.html

  • https://bioconductor.org/packages/release/bioc/vignettes/CATALYST/inst/doc/differential.html

读取抗体信息文件

首先我们可以看看cytofWorkflow的例子:

url <- "http://imlspenticton.uzh.ch/robinson_lab/cytofWorkflow" 
# 这个cytof的panel的抗体信息表格:
panel <- "PBMC8_panel_v3.xlsx"
download.file(file.path(url, panel), destfile = panel, mode = "wb")
panel <- read_excel(panel)
head(data.frame(panel))

如下所示:

> head(data.frame(panel))                                                                                                                                                        
     fcs_colname antigen marker_class
1 CD3(110:114)Dd     CD3         type
2  CD45(In115)Dd    CD45         type
3 pNFkB(Nd142)Dd   pNFkB        state
4  pp38(Nd144)Dd    pp38        state
5   CD4(Nd145)Dd     CD4         type
6  CD20(Sm147)Dd    CD20         type

可以看到是24个抗体,每个抗体都有对应的名字以及分类。

构造临床表型变量

首先我们可以看看cytofWorkflow的例子:

library(readxl)
url <- "http://imlspenticton.uzh.ch/robinson_lab/cytofWorkflow"
md <- "PBMC8_metadata.xlsx"
download.file(file.path(url, md), destfile = md, mode = "wb")
md <- read_excel(md)
head(data.frame(md))
table(md[,3:4])

如下所示:

> head(data.frame(md))                                                                                                                                                           
                           file_name sample_id condition patient_id
1    PBMC8_30min_patient1_BCR-XL.fcs    BCRXL1     BCRXL   Patient1
2 PBMC8_30min_patient1_Reference.fcs      Ref1       Ref   Patient1
3    PBMC8_30min_patient2_BCR-XL.fcs    BCRXL2     BCRXL   Patient2
4 PBMC8_30min_patient2_Reference.fcs      Ref2       Ref   Patient2
5    PBMC8_30min_patient3_BCR-XL.fcs    BCRXL3     BCRXL   Patient3
6 PBMC8_30min_patient3_Reference.fcs      Ref3       Ref   Patient3
> table(md[,3:4])
         patient_id
condition Patient1 Patient2 Patient3 Patient4 Patient5 Patient6 Patient7 Patient8
    BCRXL        1        1        1        1        1        1        1        1
    Ref          1        1        1        1        1        1        1        1

可以看到总共是16个FCS文件被读入了,来自于8个病人,每个病人都有两个不同的条件下的样品。

组合3个变量成为SingleCellExperiment对象

全部的代码如下:

require(cytofWorkflow)
library(readxl)
url <- "http://imlspenticton.uzh.ch/robinson_lab/cytofWorkflow"
md <- "PBMC8_metadata.xlsx"
download.file(file.path(url, md), destfile = md, mode = "wb")
md <- read_excel(md)
head(data.frame(md))
table(md[,3:4])
# 样本的表型信息

## 真正的表达矩阵
library(HDCytoData)
fs <- Bodenmiller_BCR_XL_flowSet()
# 如果网络不好,也可以自行下载
# 然后:loaded into R as a flowSet using read.flowSet() from the flowCore package

# 这个cytof的panel的抗体信息表格:
panel <- "PBMC8_panel_v3.xlsx"
download.file(file.path(url, panel), destfile = panel, mode = "wb")
panel <- read_excel(panel)
head(data.frame(panel))

# spot check that all panel columns are in the flowSet object
all(panel$fcs_colname %in% colnames(fs))


# 有了样本的表型信息,panel的抗体信息,以及表达量矩阵,就可以构建对象:
# specify levels for conditions & sample IDs to assure desired ordering
md$condition <- factor(md$condition, levels = c("Ref""BCRXL"))
md$sample_id <- factor(md$sample_id, 
                       levels = md$sample_id[order(md$condition)])
# construct SingleCellExperiment
library(CATALYST)
sce <- prepData(fs, panel, md, features = panel$fcs_colname)

就是使用 CATALYST 包的 prepData函数把3个信息整合起来哈。

如果你有自己的FCS文件,就需要使用read.flowSet函数读取,然后自己制作抗体表格,以及样本表型表格。必须要严格follow这里面的例子哦!

随便可以看看这些抗体在我们的不同病人的表达量分布情况:

require(cytofWorkflow)
p <- plotExprs(sce, color_by = "condition")
p$facet$params$ncol <- 6
p

密度图显示,信号值被归一化了:

 

最好的入门方式

如果你也想开启自己的生物信息学数据处理生涯,但是自学起来困难重重,还等什么呢,赶快行动起来吧!参加我们生信技能树官方举办的学习班:

生信技能树的粉丝都知道我们有一个全国巡讲的良心学习班,口碑爆棚,生物信息学入门省心省时省力!先看看大家的反馈吧:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存