花了10多万的队列就只为了这一张图吗?
花了10多万的队列就只为了这一张图吗?
前面已经给出了个GEO芯片数据挖掘分析点,详见:
- 正常组织与癌旁组织可以一视同仁吗?
- 2万个基因少一半也不影响最后的差异分析富集结果啊?
- 火山图展示差异分析上下调基因数量,不平衡无处不在吗?
现在继续完成老板分配的任务,《100个GEO芯片数据分析》,真的是信息量很大啊。又遇到了一个有意思的芯片数据,数据如下:
.cgi?acc=GSE44861,
作者一下子做了111个样本的芯片测序,那可是在201年提交进GEO的,说明芯片测序可能在更早的时候,那个时候单个表达量芯片样品起码得两三千块钱人民币,这个队列保守估计仅仅是芯片费用十几万了。
样本表型包括:111 colon tissues from tumors and adjacent noncancerous tissues
然后按照芯片的标准分析,如下:
首先是获取样本分组:
代码语言:javascript代码运行次数:0运行复制## 魔幻操作,一键清空~
rm(list = ls())
library(AnnoProbe)
library(GEOquery)
library(ggplot2)
library(ggstatsplot)
library(patchwork)
library(reshape2)
library(stringr)
library(limma)
library(tidyverse)
getOption('timeout')
opti(timeout=10000)
## 获取并且检查表达量矩阵
## ~~~gse编号需修改~~~
gse_number <- "GSE44861"
(gse_number)
setwd(gse_number)
getwd()
list.files()
#gset <- geoChina(gse_number)
gset <- getGEO(gse_number, destdir = '.', getGPL = T)
gset[[1]]
#######
## 根据生物学背景及研究目的人为分组
## 通过查看说明书知道取对象a里的临床信息用pData
## 挑选一些感兴趣的临床表型。
a <- gset[[1]]
pd <- pData(a)
colnames(pd)
pd$title
pd$characteristics_ch1.
table(pd$characteristics_ch1.)
table(pd$`tissue:ch1`)
table(pd$`rs599555 genotype:ch1`)
table(pd$`tissue:ch1`,pd$`rs599555 genotype:ch1`)
## ~~~分组信息编号需修改~~~
group_list <- ifelse(grepl('',pd$title , = T ), "normal","tumor")
group_list <- factor(group_list, levels = c("normal","tumor"))
table(group_list)
# normal tumor
# 55 56
共有55个癌旁正常样本,56个肿瘤样本。(非常标准的实验设计,理论上癌症组织跟癌旁肯定是差异很大),前面我们就讨论过:
- 正常组织与癌旁组织可以一视同仁吗
然后是提取芯片表达矩阵,探针id转换基因symbol:
代码语言:javascript代码运行次数:0运行复制#######################################################
a <- gset[[1]]
dat <- exprs(a) # a现在是一个对象,取a这个对象通过看说明书知道要用exprs这个函数
dim(dat) # 看一下dat这个矩阵的维度
dat[1:4,1:4] # 查看dat这个矩阵的1至4行和1至4列,逗号前为行,逗号后为列
range(dat)
## 查看注释平台gpl 获取芯片注释信息
a
gpl <- getGEO(filename="GPL921.soft.gz")
class(gpl)
gpl_anno <- gpl@dataTable@table
colnames(gpl_anno)
id2name <- gpl_anno[,c("ID" ,"Gene Symbol")]
colnames(id2name) <- c("ID","GEE_SYMBOL")
# 1.过滤掉空的探针
id2name <- (id2name)
id2name <- id2name[which(id2name$GEE_SYMBOL!=""), ]
# 2.过滤探针一对多
id2name <- id2name[!grepl("\\///",id2name$GEE_SYMBOL), ]
head(id2name)
# .多对一取均值
# 合并探针ID 与基因,表达谱对应关系
# 提取表达矩阵
dat <- dat %>%
as.data.frame() %>%
rownames_to_column("ID")
exp <- merge(id2name, dat, by.x="ID", by.y="ID")
# 多对一取均值
exp <- avereps(exp[,-c(1,2)],ID = exp$GEE_SYMBOL) %>%
as.data.frame()
dat <- (exp[,pd$geo_accession])
dim(dat)
fivenum(dat['CRP',])
fivenum(dat['GAPDH',])
dat[1:5, 1:6]
save(gse_number, dat, group_list, pd, file = 'step1_output.Rdata')
吭哧吭哧一顿出图:
经典三张图:PCA,sd top1000 基因热图、样本相关性热图
代码语言:javascript代码运行次数:0运行复制## 数据检查
load( file = 'step1_output.Rdata')
source('../scripts/run_check.R')
# ERα基因的symbol是ESR1
run_check(dat, group_list, target_gene='CF4', pro=gse_number,path='./')
可以看到这个数据集的生物学分组不是很好,两个分组(癌症和癌旁)里面的病人样品在PCA图根本分不开呀!
接着我对肿瘤样本 vs 癌旁正常样本 做了差异分析:
代码语言:javascript代码运行次数:0运行复制## 人类看家基因列表如下(部分基因,最常用的是CRP和CRP)
# ERα基因的symbol是ESR1
source('../scripts/run_DEG.R')
group_list
deg <- run_DEG(dat, group_list, target_gene=c('CF4'),pro=gse_number,path='./')
head(deg)
table(deg$g)
差异结果如下:
然后老板看完我的结果,进行了灵魂发问:
你这个分组有问题呀!你跟作者的文献中的结果对比了吗?作者做了什么分析吗?可以对的上吗?
我:我说作者没有没有做差异分析
老板:这么大的数据队列,作者为什么没有做差异分析呢?
我:愣在原地不知所措,哈哈哈哈哈哈哈哈哈。。。(其实我想反驳但是不敢发话)
来看看,作者文献里面的结果分析(全部结果只有这一样简单的图):
灵魂发问:你说为什么呢?(毕竟这个数据花了差不多10万块呢!)
人工智能大模型告诉我为什么癌症和癌旁差异不明显
表达量芯片分析中,癌症组与癌旁组织组之间的差异不明显可能有几个原因:
- 生物学异质性:癌症样本之间可能存在很大的生物学差异,这取决于癌症的类型、阶段、亚型以及个体间的遗传差异。
- 样本污染:癌旁组织可能受到癌细胞的污染,或者癌症组织中仍然包含一些正常细胞,这可能会掩盖真实的差异。
- 技术变异:芯片实验过程中的技术变异可能掩盖了生物学上的差异。这可能包括样本处理、RA提取、芯片杂交和扫描过程中的不一致性。
- 样本选择:选择的癌旁组织可能距离肿瘤较远,因此受肿瘤微环境的影响较小,导致差异不明显。
- 疾病进展:在某些情况下,肿瘤可能在早期阶段对周围组织的影响较小,或者肿瘤的生物学特性与周围组织相似,导致差异不显著。
- 基因表达调控:肿瘤可能通过非转录水平的调控(如翻译后修饰、miRA调控等)来实现其生物学特性,这些在表达量芯片分析中可能无法检测到。
- 统计功效:如果样本量较小,可能没有足够的统计功效来检测到两组之间的差异。
- 数据标准化和归一化:数据预处理方法,如标准化和归一化,可能会影响差异表达基因的检测。
- 生物学噪声:生物学过程中的随机变异可能导致基因表达的波动,这可能会掩盖真实的差异。
- 疾病特异性:某些类型的癌症可能在转录水平上与正常组织的差异不大,或者它们的差异表达基因在芯片上未能被有效检测。
为了解决这些问题,可能需要采取以下措施:
- 增加样本量以提高统计功效。
- 确保样本的纯净性,避免污染。
- 使用更敏感的技术,如RA测序(RA-seq)。
- 对数据进行适当的预处理和归一化。
- 考虑使用其他类型的生物标志物或分析方法。
最后,如果差异不明显,可能需要重新评估实验设计和假设,或者考虑其他可能的生物学机制。
学徒作业
到类似的实验设计的公共数据集,同样的colon的癌症和癌旁表达量数据,做差异分析看看,是否在pca就能看到两分组的泾渭分明的分离。
本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-12-26,如有侵权请联系 cloudcommunity@tencent 删除芯片队列对象数据统计#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上一篇:驴的单细胞数据基因ID如何转换?
推荐阅读
留言与评论(共有 17 条评论) |
本站网友 颜丹晨泳装 | 9分钟前 发表 |
这可能会掩盖真实的差异 | |
本站网友 猪市场行情 | 11分钟前 发表 |
那个时候单个表达量芯片样品起码得两三千块钱人民币 | |
本站网友 3p3 | 7分钟前 发表 |
导致差异不显著 | |
本站网友 开眼角加双眼皮 | 30分钟前 发表 |
统计功效:如果样本量较小 | |
本站网友 旅游投诉 | 15分钟前 发表 |
生物学噪声:生物学过程中的随机变异可能导致基因表达的波动 | |
本站网友 传奇哥 | 24分钟前 发表 |
可能需要重新评估实验设计和假设 | |
本站网友 takeeasy | 15分钟前 发表 |
数据如下:.cgi?acc=GSE44861 | |
本站网友 中金数据 | 25分钟前 发表 |
逗号前为行 | |
本站网友 移动主页 | 14分钟前 发表 |
作者文献里面的结果分析(全部结果只有这一样简单的图):灵魂发问:你说为什么呢?(毕竟这个数据花了差不多10万块呢!)人工智能大模型告诉我为什么癌症和癌旁差异不明显表达量芯片分析中 | |
本站网友 男友在我家上我 | 20分钟前 发表 |
这取决于癌症的类型 | |
本站网友 马应龙八宝 | 5分钟前 发表 |
本文参与 腾讯云自媒体同步曝光计划 | |
本站网友 治疗不孕不育症 | 30分钟前 发表 |
2)] | |
本站网友 20年后的世界 | 3分钟前 发表 |
miRA调控等)来实现其生物学特性 | |
本站网友 南昌癫痫病 | 8分钟前 发表 |
1 | |
本站网友 马丽萍 | 26分钟前 发表 |
如下:首先是获取样本分组:代码语言:javascript代码运行次数:0运行复制## 魔幻操作 | |
本站网友 梦见怀孕 | 10分钟前 发表 |
探针id转换基因symbol:代码语言:javascript代码运行次数:0运行复制####################################################### a <- gset[[1]] dat <- exprs(a) # a现在是一个对象 |