第一步:下载数据后,过滤掉空格
#下载数据

  1. proj = "TCGA-HNSC"
  2. download.file(url = paste0("https://gdc.xenahubs.net/download/",proj, ".htseq_counts.tsv.gz"),destfile = paste0(proj,".htseq_counts.tsv.gz"))

表达矩阵行名ID转换

  1. dat = read.table(paste0(proj,".htseq_counts.tsv.gz"),check.names = F,row.names = 1,header = T)

dat##逆转log

  1. dat = as.matrix(2^dat - 1)
  2. dat[1:4,1:4] ###查看一下
  3. ### 深坑一个
  4. dat[97,9]
  5. as.character(dat[97,9])
  6. ### 用apply转换为整数矩阵
  7. exp = apply(dat, 2, as.integer)
  8. exp[1:4,1:4] ###行名消失
  9. rownames(exp) = rownames(dat) ###重新添加行名
  10. exp[1:4,1:4]

常用过滤

  1. #表达矩阵过滤
  2. nrow(exp)
  3. ##常用过滤标准1:
  4. ###仅去除在所有样本里表达量都为零的基因
  5. exp1 = exp[rowSums(exp)>0,]
  6. nrow(exp1)
  7. ##常用过滤标准2(推荐):
  8. ###仅保留在一半以上样本里表达的基因
  9. exp = exp[apply(exp, 1, function(x) sum(x > 0) > 0.5*ncol(exp)), ]
  10. nrow(exp)

获取分组信息

  1. #分组信息获取
  2. ##根据样本ID的第14-15位,给样本分组(tumor和normal)
  3. library(dplyr)
  4. library(tidyverse)
  5. table(str_sub(colnames(exp),14,15))
  6. ##小于10为肿瘤,06为转移癌;11为对照
  7. Group = ifelse(as.numeric(str_sub(colnames(exp),14,15)) < 10,'tumor','normal')
  8. Group = factor(Group,levels = c("normal","tumor"))
  9. table(Group)
  10. ##保存数据
  11. save(exp,Group,proj,file = paste0(proj,".Rdata"))