数据:single channel的RMA data
数据来源:ArrayExpression
RMA数据处理
A<- read.csv(file="datExpr0.csv",header=TRUE,as.is=T)#读取表达值(如果没合并的话就先跑前面那几句合并的命令,这里放的是合并的表达值)
A2<-A[,2:22] #读取数据,这里读取的是数据,不读取第一列,因为还没对第一列进行命名
A2<-as.matrix(A2)#转成矩阵,看情况转不转吧
rownames(A2)<-A[,1]#把A的第一列命名成A2的列名
datExpr1.log2<-Biobase::exprs(A3) #跑不了
A4=log2(A3+1) #我这里对基因芯片的RMA值进行log2TPM+1的归一化
??exprs()#exprs()用不了,如果可以用的话用exprs()
?Biobase::exprs()
Design文件:
##主要是矩阵文件,也就是0-1矩阵,官方提供两种模式,一种是分离型,一种是合并型,这里我用搞得是分离型0-1矩阵,详情看limma的mannual吧.
kk<- read.csv(file="design.csv",header=TRUE,as.is=T)
head(kk1)
class(kk1)
kk1<-kk[,2:11]
rownames(kk1)<-kk[,1]#所有的数据都一样,先提数据,不要第一列的名字,提完数据之后再对数据进行第一列命名(也就是行名命名)
mode(kk)<-"numeric"
差异表达
fit<-lmFit(A4,kk1)
cont.matrix <-makeContrasts(LeafD0.5h-LeafD0h,levels=kk1)#LeafD0.5h vs LeafD0h,之所以是剪发也是因为log化的,两者之比等于log两者之减
fit2<-contrasts.fit(fit, cont.matrix)
fit2<-eBayes(fit2)
LeafD0.5hVSLeafD0h<-topTable(fit2, adjust="BH",n=30000) #这个函数不写n的话默认只出前20行,所以把n写到最大,然后赋值给某个变量就可以了。
write.csv(LeafD0.5hVSLeafD0h,file="LeafD0.5hVSLeafD0h.csv") #这里做出来的只有一组,需要把所有组的都做出来然后进行合并
合并命令
LeafD0.5hVSLeafD0h<-read.csv("LeafD0.5hVSLeafD0h.csv",head=TRUE,as.is=T)
LeafD2hVSLeafD0h<-read.csv("LeafD2hVSLeafD0h.csv",head=TRUE,as.is=T)
LeafD6hVSLeafD0h<-read.csv("LeafD6hVSLeafD0h.csv",head=TRUE,as.is=T)
LeafD12hVSLeafD0h<-read.csv("LeafD12hVSLeafD0h.csv",head=TRUE,as.is=T)
RootD0.5hVSRootD0h<-read.csv("RootD0.5hVSRootD0h.csv",head=TRUE,as.is=T)
RootD2hVSRootD0h<-read.csv("RootD2hVSRootD0h.csv",head=TRUE,as.is=T)
RootD6hVSRootD0h<-read.csv("RootD6hVSRootD0h.csv",head=TRUE,as.is=T)
RootD12hVSRootD0h<-read.csv("RootD12hVSRootD0h.csv",head=TRUE,as.is=T)
a=merge(a, RootD12hVSRootD0h,by="ID")
#融合命令,将多个表格按照ID那一列的顺序进行合并。
余下的困惑
还是不太懂RMA数据应该怎么处理,本来应该用exprs()处理RMA的,可以我就是跑不出来,提示了
Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘exprs’ for signature ‘"matrix"’
我也看不懂它到底数据要什么格式,所以蒙圈中...
第二点就是,不太确定RMA数据应该怎么处理,我只是查了一部分资料,仍然没办法确定是否用RMA数据进行差异表达分析。。。
网友评论