这次来看看 数据集:
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE161533
,共有84个 ESCC 样本:
吭哧吭哧一顿做完后,老板一看结果,
有一半的case混入control,这肯定不对。
老板解释道:癌症样本与癌旁样本肯定是可以分开的,你再回去看看。
前面的分析结果如下:
回去后我就自己看了下我的分组,
原来是因为样本中有三种组织类型,我只是将样本分成了两个组别:Normal一组,剩余的都是肿瘤组
:
gse_number "GSE161533"
dir.create(gse_number)
setwd(gse_number)
getwd()
list.files()
#gset
gset '.', getGPL = T)
gset[[1]]
a
## 挑选一些感兴趣的临床表型。
pd colnames(pd)
pd$title
pd$characteristics_ch1
table(pd$characteristics_ch1)
## ~~~分组信息编号需修改~~~
#group_list
group_list 'Normal',pd$title ,ignore.case = T ), "control","case")
group_list "control","case"))
table(group_list)
而数据中的分组为三分组:
In total, there were 84 paired normal tissues, paratumor tissues, and tumor tissues from 28 ESCC patients were chosen to perform microarray analysis
三个组别,kimi解读:
这句话描述的是在一个研究中,研究者从28位食管鳞状细胞癌(ESCC)患者那里收集了总共84对组织样本,这些样本包括正常组织、癌旁组织和肿瘤组织。这些样本被用来进行微阵列分析,这是一种基因表达分析技术。下面是这三个组织类型的简要区别:
-
-
指的是没有癌症的健康组织。这些组织样本通常用来作为对照组,以比较和识别在癌症发生过程中基因表达的变化。
-
在食管鳞状细胞癌(ESCC)的研究中,正常组织可能是食管的非癌化部分,或者是远离肿瘤区域的健康食管组织。
癌旁组织(Para-tumoral Tissues)
:
-
癌旁组织是指紧挨着肿瘤的组织,但本身不是肿瘤的一部分。这些组织可能受到肿瘤微环境的影响,例如炎症、血管生成等。
-
在ESCC中,癌旁组织可能是食管组织,它们与肿瘤组织相邻,但尚未被癌细胞侵袭。
-
-
在食管鳞状细胞癌(ESCC)中,肿瘤组织是食管中已经癌变的部分,这些组织样本包含了食管鳞状细胞癌的癌细胞。
通过比较这三种不同类型的组织样本,研究者可以识别出哪些基因在癌症发展过程中发生了变化,这对于理解癌症的分子机制、发现新的生物标志物以及开发治疗策略都是非常重要的。微阵列分析可以提供关于成千上万个基因表达水平的数据,帮助研究者发现在正常、癌旁和肿瘤组织中表达差异的基因。
这样就可以解释通了。
这里你可以看到 癌旁组织与正常健康对照组完全分在了一起,那么:实际中我们能 将 癌旁组织与正常健康对照 都看做正常样本吗?
接下来简单看一下 两次差异,癌症和癌旁,癌症和正常,对比结果:
首先是 癌症和癌旁 差异分析:
source('../scripts/run_DEG.R')
kp in% c('tumor','paratumor');table(kp)
group_list1 group_list1 'paratumor','tumor'))
group_list1
dat1 dim(dat1)
deg 'ESR1'),pro=gse_number,path='./DEG1')
head(deg)
table(deg$g)
差异结果如下:
癌症和癌旁 差异分析
然后是 癌症和正常 差异分析:
source('../scripts/run_DEG.R')
group_list
kp in% c('tumor','normal');table(kp)
group_list1 group_list1 'normal','tumor'))
group_list1
dat1 dim(dat1)
deg 'ESR1'),pro=gse_number,path='./DEG2')
head(deg)
table(deg$g)
差异结果如下:
癌症和正常 差异分析
两次差异结果比较:
library(data.table)
deg1 = fread(file = './DEG1/DEG.csv',data.table = F)
deg2 = fread(file = './DEG2/DEG.csv',data.table = F)
colnames(deg1)
colnames(deg2)
head(deg1)
head(deg2)
rownames(deg1)=deg1$name
rownames(deg2)=deg2$name
ids=intersect(rownames(deg1),
rownames(deg2))
df= data.frame(
deg1 = deg1[ids,'logFC'],
deg2 = deg2[ids,'logFC']
)
rownames(df)=ids
head(df)
library(ggpubr)
p=ggscatter(df, x = "deg1", y = "deg2",
color = "black", shape = 21, size = 3, # Points color, shape and size
add = "reg.line", # Add regressin line
add.params = list(color = "blue", fill = "lightgray"), # Customize reg. line
conf.int = TRUE, # Add confidence interval
cor.coef = TRUE, # Add correlation coefficient. see ?stat_cor
cor.coeff.args = list(method = "pearson", label.sep = "\n")
)
p=p+geom_hline(yintercept = -1, linetype = "dashed", color = "blue") +
geom_hline(yintercept = 0, linetype = "dotted", color = "red") +
geom_hline(yintercept = 1, linetype = "longdash", color = "green") +
geom_vline(xintercept = -1, linetype = "dashed", color = "blue") +
geom_vline(xintercept = 0, linetype = "dotted", color = "red") +
geom_vline(xintercept = 1, linetype = "longdash", color = "green")
p
ggsave('cor-of-two-logFC.pdf', width = 6, height = 5)
这两次差异分析结果的每个基因的FC值相关性非常高:
i
再看一下各自的上下调基因交集:
df= data.frame(
deg1 = deg1[ids,'g'],
deg2 = deg2[ids,'g']
)
table(df)
gplots::balloonplot(table(df))
这两次差异分析结果是高度一致的,只不过因为阈值原因可能有一些显著变为不显著: