专栏名称: 生信技能树
生物信息学学习资料分析,常见数据格式及公共数据库资料分享。常见分析软件及流程,基因检测及癌症相关动态。
目录
相关文章推荐
杭州本地宝  ·  浙A和浙M号牌高速通行优惠政策一样吗? ·  2 天前  
余杭发布  ·  高铁上,余杭医生“出手”了 ·  2 天前  
杭州本地宝  ·  2025杭州这些景区将免费开放 ·  3 天前  
余杭发布  ·  -3℃!余杭人,厚衣服先别收 ·  3 天前  
51好读  ›  专栏  ›  生信技能树

正常组织与癌旁组织可以一视同仁吗?

生信技能树  · 公众号  ·  · 2024-12-17 22:26

正文

书接上回,上一个被老板火眼金睛挑出来的数据集,详见:《 2万个基因少一半也不影响最后的差异分析富集结果啊?

这次来看看 数据集: 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]]

## 挑选一些感兴趣的临床表型。
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对组织样本,这些样本包括正常组织、癌旁组织和肿瘤组织。这些样本被用来进行微阵列分析,这是一种基因表达分析技术。下面是这三个组织类型的简要区别:

  1. 正常组织(Normal Tissues)

  • 指的是没有癌症的健康组织。这些组织样本通常用来作为对照组,以比较和识别在癌症发生过程中基因表达的变化。
  • 在食管鳞状细胞癌(ESCC)的研究中,正常组织可能是食管的非癌化部分,或者是远离肿瘤区域的健康食管组织。
  • 癌旁组织(Para-tumoral Tissues)

    • 癌旁组织是指紧挨着肿瘤的组织,但本身不是肿瘤的一部分。这些组织可能受到肿瘤微环境的影响,例如炎症、血管生成等。
    • 在ESCC中,癌旁组织可能是食管组织,它们与肿瘤组织相邻,但尚未被癌细胞侵袭。
  • 肿瘤组织(Tumor Tissues)

    • 肿瘤组织是指已经发生癌变的组织,包含癌细胞。
    • 在食管鳞状细胞癌(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))

    这两次差异分析结果是高度一致的,只不过因为阈值原因可能有一些显著变为不显著:







    请到「今天看啥」查看全文