第一步:下载数据后,过滤掉空格
#下载数据
proj = "TCGA-HNSC"
download.file(url = paste0("https://gdc.xenahubs.net/download/",proj, ".htseq_counts.tsv.gz"),destfile = paste0(proj,".htseq_counts.tsv.gz"))
表达矩阵行名ID转换
dat = read.table(paste0(proj,".htseq_counts.tsv.gz"),check.names = F,row.names = 1,header = T)
dat##逆转log
dat = as.matrix(2^dat - 1)
dat[1:4,1:4] ###查看一下
### 深坑一个
dat[97,9]
as.character(dat[97,9])
### 用apply转换为整数矩阵
exp = apply(dat, 2, as.integer)
exp[1:4,1:4] ###行名消失
rownames(exp) = rownames(dat) ###重新添加行名
exp[1:4,1:4]
常用过滤
#表达矩阵过滤
nrow(exp)
##常用过滤标准1:
###仅去除在所有样本里表达量都为零的基因
exp1 = exp[rowSums(exp)>0,]
nrow(exp1)
##常用过滤标准2(推荐):
###仅保留在一半以上样本里表达的基因
exp = exp[apply(exp, 1, function(x) sum(x > 0) > 0.5*ncol(exp)), ]
nrow(exp)
获取分组信息
#分组信息获取
##根据样本ID的第14-15位,给样本分组(tumor和normal)
library(dplyr)
library(tidyverse)
table(str_sub(colnames(exp),14,15))
##小于10为肿瘤,06为转移癌;11为对照
Group = ifelse(as.numeric(str_sub(colnames(exp),14,15)) < 10,'tumor','normal')
Group = factor(Group,levels = c("normal","tumor"))
table(Group)
##保存数据
save(exp,Group,proj,file = paste0(proj,".Rdata"))