应学生及个别博友的要求,尽管专业博文点击率和反应均很差,但在去San Diego参加PAG会议之前,还是抽时间给出【R高级教程】的第二专题。专题一给出了聚类分析的示例,本专题主要谈在表达谱芯片分析中如何利用Bioconductor鉴定差异表达基因。
鉴定差异表达基因是表达谱芯片分析pipeline中必须的分析步骤。差异表达基因分析是根据表型协变量(分类变量)鉴定组间差异表达,它属于监督性分类的一种。在鉴定差异表达基因以前,一般需要对表达值实施非特异性过滤(在机器学习框架下属于非监督性分类),因为适当的非特异性过滤可以提高差异表达基因的检出率、甚至是功效。R分析差异表达基因的library有很多,但目前运用最广泛的Bioconductor包是limma。
鉴定差异表达基因是表达谱芯片分析pipeline中必须的分析步骤。差异表达基因分析是根据表型协变量(分类变量)鉴定组间差异表达,它属于监督性分类的一种。在鉴定差异表达基因以前,一般需要对表达值实施非特异性过滤(在机器学习框架下属于非监督性分类),因为适当的非特异性过滤可以提高差异表达基因的检出率、甚至是功效。R分析差异表达基因的library有很多,但目前运用最广泛的Bioconductor包是limma。
本专题示例依然来自GEO数据库中检索号为GSE11787 的Affymetrix芯片的数据,数据介绍参阅专题一。>library(limma)
>design
这个是根据芯片试验设计,对表型协变量的水平进行design,比如本例中共有6张芯片,前3张为control对照组,后3张芯片为实验处理组,用1表示对照组,用2表示处理组。其他试验设计同理,比如2*2的因子设计试验,如果每个水平技术重复3次,那么可以表示为:design colnames(design)
>fit
>contrast.matrix
>fit
>fit2
>fit2
>results
>summary(results)
>vennCounts(results)
>vennDiagram(results)
比较遗憾的是,目前limma自带的venn作图函数不能做超过3维的高维venn图,只能画出3个圆圈的venn图,即只能同时对三个coef进行venn作图。上面的venn图只有一个coef,太简单了。下面是一个由本实验室芯片数据得出的三个coef的venn图例:
>heatDiagram(results,fit2$coef)
红色为control中(与LPS相比)的高表达基因,绿色为control中(与LPS相比)的低表达基因,x轴的数字表示差异表达基因在eset2中所处的位置。>x
>write.table(x, file="limma.xls", row.names=F, sep="\t")
将结果写入limma.xls文件中,内容包括AveExpr值(比较组间绝对值的平均差异值)、logFC值(差异倍数)、t值、P值、q值(即adj.P.Val值)和B值。一般logFC值、P值、q值和AveExpr值用来作为差异表达的判断标准,比如差异倍数在2倍以上、绝对差异表达在10以上、P值小于0.01等。在Excel文件中,根据各项判断标准排序,可以很容易地得到差异表达基因列表,这个列表可以用来进行后续的分析,如GO注释、基因网络绘制等。
专题一中提到实际研究中,一般只用差异表达基因进行聚类分析,在R中,根据差异表达结果过滤表达值很简单(具体的值可以依据芯片数据的实际情况设定,比如P值可以设宽松点0.05、logFC的绝对值也可设为1或2、绝对表达差异也可设低一点,如6或8这样的值):>y 1.5 | xlogFC < -1.5& xAveExpr > 10),]
>length(yID)>eset3
经过上面P值、表达倍数差异和绝对差异的过滤,eset3中就只包含差异表达基因了,这样eset3可用来进行聚类分析了。