【生信技能树】GEO数据库挖掘 P7 6差异分析

用limma包对芯片数据做差异分析 | 生信菜鸟团http://www.bio-info-trainee.com/1194.html用limma包的voom函数来对RNA-seq数据做差异分析 | 生信菜鸟团http://www.bio-info-trainee.com/1544.htmllimma包的使用技巧 - hzs319 - 博客园limmar package是一个功能比较全的包,既含有cDNA芯片的RAW data输入、前处理(归一化)功能,同时也有差异化基因分析的“线性”算法(limma: Linear Models forhttps://www.cnblogs.com/huzs/p/3741979.html根据分组信息做差异分析- 这个一文不够的 - 云+社区 - 腾讯云https://cloud.tencent.com/developer/article/1078357

以上教程可以参考。

用limma包做差异分析的教程,与视频教程相同。

【生信技能树】GEO数据库挖掘_哔哩哔哩_bilibilijimmy开始招学徒啦~这个课程就是周末的线下课的录屏哦~戳它了解→ https://mp.weixin.qq.com/s/gzyCRNnfgYkSsnjPSr-MGw 专栏:https://www.bilibili.com/read/cv719181这个系列视频包学包会,学不会……那就多看几遍……或者……欢迎报名jimmy的线下课呀~o(* ̄▽ ̄*)ブhttps://www.bilibili.com/video/BV1is411H7Hq?p=7根据教程将三个文件准备好

下载该R语言包,然后看说明书,需要自己做好三个数据(表达矩阵,分组矩阵,差异比较矩阵),总共三个步骤(lmFit,eBayes,topTable)。

表达矩阵:exprSet

分组矩阵:


library(limma)
# 设置design以及分组矩阵
design <- model.matrix(~0+factor(group_list))
colnames(design)=levels(factor(group_list))
rownames(design)=colnames(exprSet)
design

这里要注意,生成的design矩阵要看一下,横纵轴对应关系对不对,搞错就尴尬了。

声明两个组的信息

# 声明要进行比较的组
contrast.matrix <- makeContrasts(paste0(unique(group_list),collapse = '-'),levels = design)
View(contrast.matrix)

差异分析
做个function叫做var_analy,写function一定要用=

# 差异分析
# 做个function叫做var_analy,写function一定要用=
diff_analy = function(exprSet,design,contrast.matrix){
  # Step 1
  fit <- lmFit(exprSet,design)
  # step 2
  fit_contrast <- contrasts.fit(fit, contrast.matrix)
  fit_contrast <- eBayes(fit_contrast) # default no trend!!!
  ##eBayes() with trend = True
  ## step3
  tempOutput = topTable(fit_contrast, coef=1, n=Inf)
  DEG_voom = na.omit(tempOutput)
  head(DEG_voom)
  return(DEG_voom)
}

# diff_result 即为差异分析的结果
diff_result <- diff_analy(exprSet,design,contrast.matrix)

diff_result即为差异分析的结果。

检验一下

先用一个基因来做检验:

# 看一下某个基因是高表达还是低表达
exprSet['LDLR',]

## heatmap 
library(pheatmap)
# 这是全是数字探针id的时候
# choose_gene=head(rownames(diff_result),25)
# 如果都是基因名了
choose_gene=head(diff_result$ID,25)
choose_matrix=exprSet[choose_gene,]
choose_matrix=t(scale(t(choose_matrix)))
pheatmap(choose_matrix)

再用热图看一下。

choose_gene变量是一个挑出来的基因列表,如果是有字符的要用提取,因为diff_result里,不会把rawname直接变成字符。

当然这里提前把diff_result的raw names改掉也没问题。


火山图绘制

## volcano plot
library(ggplot2)
# 此处的DEG_voom是之前生成的表达矩阵。
DEG=DEG_voom
## 火山图本质上是logFC以及Pvalue的作图
plot(DEG$logFC,-log10(DEG$P.Value))
logFC_cutoff <- with(DEG,mean(abs( logFC)) + 2*sd(abs( logFC)) )
DEG$change = as.factor(ifelse(DEG$P.Value < 0.05 & abs(DEG$logFC) > logFC_cutoff,
                              ifelse(DEG$logFC > logFC_cutoff ,'UP','DOWN'),'NOT')
)
this_tile <- paste0('Cutoff for logFC is ',round(logFC_cutoff,3),
                    '\nThe number of up gene is ',nrow(DEG[DEG$change =='UP',]) ,
                    '\nThe number of down gene is ',nrow(DEG[DEG$change =='DOWN',])
)
this_tile
head(DEG)
g = ggplot(data=DEG, aes(x=logFC, y=-log10(P.Value), color=change)) +
  geom_point(alpha=0.4, size=1.75) +
  theme_set(theme_set(theme_bw(base_size=20)))+
  xlab("log2 fold change") + ylab("-log10 p-value") +
  ggtitle( this_tile  ) + theme(plot.title = element_text(size=15,hjust = 0.5))+
  scale_colour_manual(values = c('blue','black','red'))  ## corresponding to the levels(res$change)
print(g)

火山图 本质上是改变倍数以及p-value之间横纵轴两条线的关系分布,加上ggplot的各种改编。因此只要注意生成的文档格式以及性质即可。


得到差异基因后,可以根据基因去注释相关的通路,具体包括GO/KEGG等通路。

GO注释功能、位置等,

KEGG、BIOCARTA、Reactome、MsigDB寻找基因富集通路。统计方法:超几何分布,本质就是正常状态下抽取到通路相关基因的概率,和基因富集后如果在一个通路上,那抽取到相关通路基因的概率是不一致的,以此概率差别来做分布检验。

具体就详见相关的包。

差异分析得到的结果注释一文就够icon-default.png?t=M276https://mp.weixin.qq.com/s/t0ZrkPX9yz6vaHouY33Ohg

library(clusterProfiler)

clusterprofiler包可以尝试做,注意更新以及相关语法。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GEO(Gene Expression Omnibus)是一个公共数据库,存储了各种物种的表达谱数据和相关信息。在生物信息学中,通过研究GEO数据可以识别基因表达模式和相关通路,从而对疾病发生机制进行研究。而合并代码是指将来自GEO的多个数据集合并起来进行进一步分析和比较。 生信自学网提供了合并GEO数据集的代码示例,这个代码主要基于R语言中的Bioconductor包。首先,需要导入所需的R包,如GEOquery和limma等,这些包可以通过install.packages()函数进行安装。 接下来,通过GEOquery包中的getGEO()函数读取GEO数据集。可以通过在函数中指定GEO编号或GEO查询词,来获取GEO数据集的信息。然后,使用exprs()函数提取数据集的表达矩阵。 接下来就是数据的处理和整合。如果从GEO获取的数据集有多个,需要进行合并。可以使用cbind()函数将不同数据集的表达矩阵按列合并,或使用rbind()函数按行合并。合并后的数据集可以进行进一步的数据预处理,如去除低表达的基因和对数据进行标准化等。 最后,可以使用rankProd包和limma包等进行差异分析和富集分析等进一步的生物信息学分析。这些分析可以帮助我们发现不同基因表达的模式,从而进一步研究相关通路和疾病机制。 通过生信自学网提供的GEO合并代码示例,我们可以方便地将来自GEO的数据集进行合并和分析,从而深入研究基因表达的模式和生物学机制。这对于疾病的研究以及药物研发等方面具有重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值