第一步:下载数据后,过滤掉空格
#下载数据
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"))
