9 数据准备

9.1 安装YSX包 (已改名为ImageGP包)

YSX包已改名为ImageGP包,这是为配合绘图网站ImageGP而构建的包,里面也包含了对常用绘图函数和数据整理命令的包装,在整个机器学习教程中也常有用到。

ImageGP包目前在Github码云上都有,推荐用码云,下载速度快。

devtools::install_git("https://gitee.com/ct5869/ImageGP")

# 安装好之后,之前教程的library(YSX)都改为library(ImageGP)
library("ImageGP")

改名是因为之前一个误操作,在YSX仓库里面引入了不少示例数据,使得包变得很大。而Github又访问速度慢,常常安装不成功。

# 如果从Github上安装原有的`YSX`也可以:
# 不推荐
# devtools::install_github("Tong-Chen/YSX")

9.2 DLBCL 数据集

数据信息在页面 https://file.biolab.si/biolab/supp/bi-cancer/projections/info/DLBCL.html

knitr::include_graphics("images/dlbcl_dataset.png")
Diffuse large B-cell lymphoma (DLBCL): 58 examples (75.3%); Follicular lymphoma (FL): 19 examples (24.7%)。

Figure 9.1: Diffuse large B-cell lymphoma (DLBCL): 58 examples (75.3%); Follicular lymphoma (FL): 19 examples (24.7%)。

可通过链接下载 https://file.biolab.si/biolab/supp/bi-cancer/projections/_datasets/DLBCL.tab

下载后,删除第2行和第3行。

knitr::include_graphics("images/dlbcl_remove.png")
下载后,删除第2行和第3行。

Figure 9.2: 下载后,删除第2行和第3行。

用下面的R代码读取和整理

dlbcl_tab <- "DLBCL.tab"
dlblc <- read.table(dlbcl_tab, row.names = NULL, header=T)
dim(dlblc)
class = dlblc$class
table(class)

生成Metadata信息

metadata = data.frame(sample=c(paste("DLBCL", 1:58, sep="_"), 
                               paste("FL", 1:19, sep="_")),
                      class=class)
head(metadata)

write.table(metadata, "dlbcl.metadata.txt", sep="\t", row.names=F, col.names = T, quote=F)

生成表达文件

rownames(dlblc) <- metadata$sample
dlblc <- dlblc[,1:7070]
dlblc <- t(dlblc)
dlblc[1:3,1:4]

library(ImageGP)
sp_writeTable(dlblc, file="dlblc.expr.txt", keep_rownames = T)

9.3 整理Prostate数据

prostat_tab <- "data/prostata.tab"
prostat <- read.table(prostat_tab, row.names = NULL, header=T, check.names = F)
dim(prostat)
prostat[1:3,1:4]
class = prostat$class
table(class)

生成Metadata信息

metadata = data.frame(sample=paste(class,1:102, sep="_"),
                      class=class)
head(metadata)

write.table(metadata, "data/prostat.metadata.txt", sep="\t", row.names=F, col.names = T, quote=F)

生成表达文件

rownames(prostat) <- metadata$sample
prostat <- prostat[,-c(1,2)]
prostat <- t(prostat)
prostat[1:3,1:4]

library(ImageGP)
sp_writeTable(prostat, file="data/prostat.expr.txt", keep_rownames = T)
probeMap.py -i data/prostat.expr.txt -m data/probe2sym.txt -o data/prostat.expr.symbol.txt