一文解决如何提取TCGA配对表达矩阵
时间:2022-07-22
本文章向大家介绍一文解决如何提取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')
##########################################################################################
##
###########################################################################################
- 哪种芯片架构将成为人工智能时代的开路先锋
- 算法系列(三)
- Facebook、Google、Amazon 是如何高效开会的
- 算法系列(二)
- JavaScript 基础(五) 函数 变量和作用域
- iOS8 、iPhone6 及iPhone6+:Apple touch icon 与Startup Image
- 算法系列
- .net页面生命周期
- JavaScript 基础(四) 循环
- 【译】WordPress 中的50个过滤器(6):第41-50个过滤器
- 【译】WordPress 中的50个过滤器(5):第31-40个过滤器
- 使用VS2010 C#开发ActiveX控件
- JavaScript 基础(三) 对象 条件判断
- “大数据+定制化服务”或将引领高端旅游市场
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 什么情况用ArrayList or LinkedList呢?
- Dubbo系列-扬帆起航
- 使用 Horoscope 测试 TiDB 优化器
- 聊聊claudb的importRDB
- 【17期】什么情况用ArrayList or LinkedList呢?
- YOLO V3网络结构解析
- 文献笔记二十一:PhenoGram可视化染色体上的信息
- 【动手学深度学习笔记】之对模型参数的访问、初始化和共享
- 【动手学深度学习笔记】之构造MLP模型的几种方法
- 【动手学深度学习笔记】之通过丢弃法缓解过拟合问题
- 【动手学深度学习笔记】之通过权重衰减法解决过拟合问题
- 【动手学深度学习笔记】之多层感知机实现
- Linux程序员效率工具:比man更好用的命令提示工具
- 我对torch中的gather函数的一点理解
- 冒泡排序的实现思路和优化方案