前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >芯片数据 count

芯片数据 count

原创
作者头像
每天坚持写点儿
发布2023-04-24 20:44:11
5591
发布2023-04-24 20:44:11
举报
文章被收录于专栏:lsh

本意:TCGA-KIRC的表达矩阵和ccRCC(肾透明细胞癌)免疫治疗后的表达矩阵进行差异分析。

从TIGER数据库(http://tiger.canceromics.org/)下载免疫治疗的数据,其中GSE67501是ccRCC(肾透明细胞癌)免疫治疗后的数据。该网站提供了Rds的表达矩阵和临床信息。

然后读取了这两部分的信息。

RCC-GSE67501.Response.Rds
RCC-GSE67501.Response.Rds
代码语言:text
复制
GSE67501_expr <- readRDS(file = "inputdata/RCC-GSE67501.Response.Rds") %>% 
  tibble::column_to_rownames(var = "GENE_SYMBOL") %>% 
  na.omit()
GSE67501_clic <- readRDS(file = "inputdata/RCC-GSE67501.Response (1).Rds")
GSE67501_expr
GSE67501_expr
GSE67501_clic
GSE67501_clic

通过查看表达矩阵通过range()函数发现,基因的表达量在20以内,是经过log转换的。但是为了和TCGA的数据进行差异分析,就想把GEO的数据也转换成一样的,TCGA的数据事先转成了TPM的。为此,就想去GEO数据下载原始表达矩阵也就是count格式的。然后就下载了下面两个数据。

一个是作者normalize之后的表达矩阵:

GSE67501_series_matrix.txt.gz
GSE67501_series_matrix.txt.gz

还有一个是没有normalize的

GSE67501_Non-normalized_data.txt.gz
GSE67501_Non-normalized_data.txt.gz

对non-normalize进行了读取并查看

代码语言:text
复制
GSE67501_expr_non <- data.table::fread("inputdata/GSE67501_Non-normalized_data.txt.gz")
GSE67501_expr_non
GSE67501_expr_non

就很疑惑为什么non-normalize的数据还有小数点,难道不应该是count的吗?然后就开始了一些列的猜测:

  • count格式的数据会不会有小数点的?
  • 会不会是其它格式,比如TPM或者FPKM等?
  • 可不可以按照series_matrix的处理方式,再转回去?

然后万能的网络也给出了一系列答案

  • 比如某乎有人回答count值不排除有小数点的。(我信了,又不敢全信,继续寻找答案)
  • 通过colSums(GSE67501_expr_non)查看数据是否是TPM格式的,结果显示也不是。

接着各种搜索终于搜索到了一个帖子,illumina数据处理(以GSE100748为例)https://www.jianshu.com/p/f7e4ff780d1c ,就依葫芦画瓢的对我的数据也进行了操作。他参照了曾老师的教程,http://www.bio-info-trainee.com/1944.html。这个教程之前也看到过,就只是大概扫了一眼。发现和count没关系我也就没仔细看。也就有了后面的这个错误。(有够无语的)

Error in gregexpr("\t", dataLine1)[1] : 下标出界

还好又搜到了曾老师的帖子。http://www.360doc.com/content/22/0110/08/76149697_1012615125.shtml 我从GEO下载的表达矩阵的列名和函数中参数的列名不一致。

按照文中的代码修改以后,就没有错误了,但是此时还没得到我想得到的count个数的数据。

代码语言:text
复制
GSE67501_expr_non <- data.table::fread("inputdata/GSE67501_Non-normalized_data.txt.gz")
sam <- colnames(GSE67501_expr_non)
pd <- sam[grepl("RCC",sam)]
colnames(GSE67501_expr_non) <- c('PROBE_ID',paste(names(pd),
                                                  rep(c('AVG_Signal','Detection Pval'),11),
                                                  sep = '.'))
colnames(GSE67501_expr_non)
write.table(GSE67501_expr_non,file = "outpudata/tmp.txt",sep = "\t",quote = F)
x.lumi <- lumiR.batch("outpudata/tmp.txt") ##, sampleInfoFile='sampleInfo.txt')
pData(phenoData(x.lumi))
## Do all the default preprocessing in one step
lumi.N.Q <- lumiExpresso(x.lumi)
### retrieve normalized data
dataMatrix <- exprs(lumi.N.Q) #dataMatrix即表达矩阵

到这一步,这个数据是normalize之后的了,然而我还没意识到问题所在。

那就是RNA-seq和RNA-array的不同

测序是测序,芯片是芯片啊!!!!

测序是测序,芯片是芯片啊!!!!

测序是测序,芯片是芯片啊!!!!

他们与原理都不同,芯片数据哪来的count值

chatgpt大哥也给出了答案

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档