前面给大家介绍了,如果同一个基因有多行表达值,该如何处理。
☞ 表达谱数据中相同基因如何处理 前面给大家介绍了如何通过R的aggregate函数来实现对相同的基因名按列取平均。今天小编给大家介绍另外一种方法,使用limma包中的avereps函数来处理。大家对limma这个包应该都不陌生。它是目前主流的三种差异表达分析包(limma,edgeR和DEseq2)中的一个,也是应用比较广泛的一个。☞零代码TCGA差异表达分析 ☞GEO芯片数据差异表达分析 今天我们来聊聊如何使用limma包中的avereps,对相同基因的表达值取平均。
#加载limma包 library(limma) #生成一个表达矩阵 df=matrix(1:20,nrow=4) #设置行名,基因名字 rownames(df)=paste0("gene",c(1,1,2,3)) #设置列名,样本名字 colnames(df)=paste0("sample",1:5) #对相同的基因的表达取平均 result=avereps(df) result
通过avereps取完平均之后的矩阵如下 我们也可以使用☞ 表达谱数据中相同基因如何处理中讲到的aggregate函数来处理这个矩阵得到相同的结果。 #使用aggregate函数 #将基因名字添加到数据框中 df1=data.frame(gene=rownames(df),df) #使用aggregate函数取平均 result1=aggregate(.~gene,df1,mean) #设置行名,并删掉gene名字这一列 rownames(result1)=result1$gene result2=result1[,-1] result2
可以看到,跟avereps方法得到的结果是一样的,殊途同归。
为了方便大家交流学习,共同进步,我特地创建了微信交流群
|