专栏首页生信小驿站一文解决如何提取TCGA配对表达矩阵

一文解决如何提取TCGA配对表达矩阵

一般来说,TCGA差异分析或者其他分析时,使用的是包含所有肿瘤样本和正常样本。但是,一般情况下,多数类型的TCGA肿瘤类型是肿瘤远远多于正常样本数量。这是因为有的肿瘤样本配对的有癌旁正常样本,但是大多数是没有配对的正常样本的。因此,这里想要通过代码,十分简便的取出仅包含配对样本们的表达矩阵。 代码比较简单,其中值得注意的是,有时可能会出现,仅有正常样本却没有配对的肿瘤样本的情况,这个时候也要将多余的正常样本删除。

#######################################################
## 
#######################################################

rm(list=ls())



load( "mRNA_exprSet.Rda")


metadata <- data.frame(colnames(mRNA_exprSet ))

colnames(metadata) <- 'barcode'


for (i in 1:length(metadata[,1])) {
  num <- as.numeric(as.character(substring(metadata[i,'barcode'],14,15)))
  if (num == 1 ) {metadata[i,2] <- "T"}
  if (num != 1) {metadata[i,2] <- "N"}
}



names(metadata)[2] <- 'Barcode'

table(metadata$Barcode)

N <- subset(metadata, metadata$Barcode == 'N')

N$barcode <- substr(x=N$barcode, start = 1, stop = 12)


#######################################################
## 
#######################################################



dt <- as.data.frame(t(mRNA_exprSet))

dt[1:3,1:3]

dt$Barcode <- rownames(dt)

dt$sample  <- substr(x=dt$Barcode, start = 1, stop = 12)

dt <- subset(dt, select=c('Barcode', 'sample'))

dt <- dt[which(dt$sample %in% N$barcode),]

table(dt$sample)

df <- as.data.frame(table(dt$sample))

df <- subset(df, df$Freq > 1)

dt <- dt[which(dt$sample %in% df$Var1),]



mRNA_exprSet <- mRNA_exprSet[,which(colnames(mRNA_exprSet) %in% dt$Barcode)]



#######################################################
## 
#######################################################



metadata <- data.frame(colnames(mRNA_exprSet ))

colnames(metadata) <- 'barcode'


for (i in 1:length(metadata[,1])) {
  num <- as.numeric(as.character(substring(metadata[i,'barcode'],14,15)))
  if (num == 1 ) {metadata[i,2] <- "T"}
  if (num != 1) {metadata[i,2] <- "N"}
}

names(metadata)[2] <- 'Barcode'

table(metadata$Barcode)








select_colname <- function(expr,name){
  expr <- expr[,which(colnames(expr) %in% name[,1])]
  expr  <- expr[,order(names(expr))]   
  name <- name[which(name[,1] %in% colnames(expr)),]
  name <- name[order(name[,1]),]
  expr_name <- list( expr,name)
  return( expr_name)
}

datexpr <- select_colname(mRNA_exprSet ,metadata)


data <- datexpr[[1]]
metadata <- datexpr[[2]]

group <- metadata$Barcode

exprSet <- data

save(data, file = 'exprSet.Rdata')

save(group , file = 'group.Rdata')

##########################################################################################
## 
###########################################################################################

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何将R语言普通矩阵转换为非负矩阵

    用户1359560
  • 单基因生信分析流程(1)一文解决TCGA数据下载整理问题

    在平常科研工作中,经常有师兄师姐师弟师妹问我:我现在有一个单基因,我该怎么开展生信研究?出现这个问题的原因是:(1)目前生信研究火热也逐渐受到认可(2)许多医学...

    用户1359560
  • 三阴性乳腺癌提取和分析

    三阴性乳腺癌是指癌组织免疫组织化学检查结果为雌激素受体(ER)、孕激素受体(PR)和原癌基因Her-2均为阴性的乳腺癌。这类乳腺癌占所有乳腺癌病理类型的10.0...

    用户1359560
  • 防止别人 iframe 自己的页面

    分别是 “DENY”、“SAMEORIGIN”、“ALLOW-FROM http://domain.com/url.html”

    Savalone
  • Android Service完全解析,关于服务你所需知道的一切(下)

    在上一篇文章中,我们学习了Android Service相关的许多重要内容,包括Service的基本用法、Service和Activity进行通信、Servic...

    用户1158055
  • Android Service完全解析,关于服务你所需知道的一切(下)

    版权声明:本文出自郭霖的博客,转载必须注明出处。 https://blog.csdn.net/si...

    用户2192970
  • Vivado下“找不同”

    有时我们需要对比不同情形下的各类报告,以侦测这些“不同”对设计的影响。所谓的“不同情形”通常有以下几类:

    Lauren的FPGA
  • .NET Core 获取操作系统各种信息

    晓晨
  • RocketMQ 源码分析 —— Message 拉取与消费(下)

    本文主要讲解PushConsumer,部分讲解PullConsumer,跳过顺序消费。 本文主要讲解PushConsumer,部分讲解PullConsumer,...

    芋道源码
  • 《大话数据结构》队列的顺序存储和链式存储

    成都的火车南站早上真的恐怖,地铁站人山人海,从地铁里面一直排队到门口,虽然人很多但是不得不说我国人民素质还是蛮高的,都是来了之后排在队伍的最后面,没有一个人去插...

    大猫的Java笔记

扫码关注云+社区

领取腾讯云代金券