背景介绍:
1)Affymetrix:
Affymetrix的探针(proble)一般是长为25碱基的寡聚核苷酸;探针总是以perfect match 和mismatch成对出现,其信号值称为PM和MM,成对的perfect match 和mismatch有一个共同的affyID。
CEL文件:信号值和定位信息。
CDF文件:探针对在芯片上的定位信息
Affymetrix exon array :Affymetrix的外显子芯片
2)exonmap包:
用来分析Affymetrix的外显子芯片(需要用到affy包)。(http://www.bioconductor.org/packages/2.0/bioc/html/exonmap.html;http://rss.acs.unt.edu/Rdoc/library/exonmap/html/00Index.html)
3) affy包:
分析Affymetrix寡聚核苷酸芯片的包 (http://ugrad.stat.ubc.ca/R/library/affy/html/00Index.html)。
3)X:MAP数据库:
利用Ensemble数据库和Affymetrix的注释数据,实现探针,外显子,基因,转录产物之间的转换。(http://xmap.picr.man.ac.uk)
4)CDF包:
是Bioconductor的metadata包中的一种,从CDF文件中提取探针在芯片上的定位信息,然后存在CDF包中。更多的metadata包见:http://www.bioconductor.org/data/metaData.html。外显子芯片的CDF包可从http://xmap.picr.man.ac.uk/download/下载。
准备工作:
1)安装并导入包:exonmap,affy, CDF包(如:exon.pmcdf)。
2)数据(*.CEL文件)和数据描述文件(空白符分隔的文件,默认名为covdesc)放在一个文件夹中,并设置这个文件夹为R的当前目录。covdesc的第一列是CEL文件的名称,其它列是实验的描述信息(如:正常,疾病)。注意:covdesc的第一列没有列标题,而其它列有列标题。
数据分析:
1)读取数据?
read.exon()函数用来读取CEL文件的数据;exon.pmcdf是Human的外显子CDF包;rma是affy包里的函数,用Robust Multi-Array Average expression measure方法把AffyBatch 格式的数据转换成exprSet。示例程序:
raw.data <- read.exon()if (exists(raw.data)) { raw.data@cdfName <- "exon.pmcdf" x.rma <- rma(raw.data)}
2)挑选差异表达的探针:
pc()函数返回一个PC类的对象,包括两部分fc和tt,fc是log2 fold change,而tt是t检验的P值。示例程序:
pc.rma <- pc(x.rma, "group", c("a", "b"))sigs <- names(fc(pc.exonmap))[abs(fc(pc.exonmap)) > 1 & tt(pc.exonmap) <1e-04]
3)探针,外显子,基因,转录产物之间的转换:
需要用到X:MAP数据库。示例程序:
xmapDatabase("Human")sig.exons <- probeset.to.exon(sigs)sig.genes <- probeset.to.gene(sigs) 函数probeset.details,exon.details,transcript.details 和gene.details可用来提取细节的注释信息。
4)探针过滤:
探针根据其匹配到基因组上的次数和质量被分为四类,select.probewise()和exclude.probewise()函数可用来选择和去掉某类的探针。示例程序:
select.probewise(sigs, filter = "intronic")sigs.nomt <- exclude.probewise(sigs, filter = "multitarget")
四类探针:
"intronic": 匹配上1个基因,但没匹配上外显子。
“exonic”: 在基因组上仅匹配上一次,且匹配上1个基因里的1个外显子。
"multitarget":至少一个探针在基因组上有两次匹配。
“intergenic”: 在基因组上仅匹配上一次,且没有匹配到基因。
5)基因的图形展示:
plot.gene()函数用来图形展示基因,还可以根据信号值,fold change,t检验的P值使用不同的颜色。其它的画图函数:plot.gene.graph(),gene.strip()。示例程序:
plot.gene("ENSG00000141510")plot.gene("ENSG00000141510", x.rma, 1:3, 4:6)plot.gene.graph("ENSG00000082175", x.rma, 4:6, 1:3, draw.exon.border = F,scale.to.gene = F, ylim = c(0, 16), type = "median-int")gene.strip(c("ENSG00000141510", "ENSG00000082175"), x.rma, 1:3, 4:6, type = "mean-fc")
6)可变剪切(Splicing index和Splicing ANOVA):
Splicing index是外显子探针和基因表达值得比值,可用来衡量两类样本间外显子的特异表达。Splanova()函数用MIDAS()方法,衡量多类样本间的可变剪切,给出探针的F值和显著性。示例程序:
si <- splicing.index(x.rma, c("ENSG00000141510", "ENSG00000082175"), "group", c("a", "b"))
更细节的关于Splicing index和Splicing ANOVA的说明,见:Affymetrix的文档“Alternative transcript analysis methods for exon arrays”.(http://www.affymetrix.com/support/technical/whitep...script_analysis_whitepaper.pdf)。
分析exon array
R有两个显著的优势:
1. Bioconductor里有很多针对生物芯片的分析包,这些包的效率肯定比自己写程序分析要好。
2. R是开源软件,有在linux下的版本,可以很方便的在自己的linux系统或服务器上使用。
还有点要说明的,"exonmap"这个包好像需要下载“Ensemble”,很大的,不是很方便,但我也没找到别的专门分析exon array的包。
|