ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:262.59KB ,
资源ID:6518100      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6518100.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(R语言在基因芯片数据处理中的应用要点.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

R语言在基因芯片数据处理中的应用要点.docx

1、R语言在基因芯片数据处理中的应用要点1. R语言安装:官方网站http:/www.r-project.org/ 安装软件。2. 所需要的软件包: 2.1 affy数据处理相关的程序包在R中复制source(http:/bioconductor.org/biocLite.R) biocLite(affy) 2.2 热度图相关程序包 Gplots():install.packages(gplots)3. 获取基因表达数据 3.1 读取基因芯片数据(cel.files)the.filter - matrix(c(CEL file (*.cel), *.cel, All (*.*), *.*), nc

2、ol = 2, byrow = T)cel.files - choose.files(caption = Select CEL files, multi = TRUE, filters = the.filter, index = 1)raw.data - ReadAffy(filenames = cel.files) 3.2 sampleNames(raw.data)ang #先看看原样品名称的规律 3.3 pat - .*MT-(0-9A-Z+).* #样品名称查找的正则表达式 sampleNames(raw.data) - gsub(pat, 1, cel.files) #gsub为正则表

3、达式查找函数(samples - sampleNames(raw.data)pData(raw.data)$treatment - rep(c(0h, 1h, 24h, 7d), each = 2)#确定样品重复数使用rma方法进行预处理:eset.rma - rma(raw.data)# Background correcting# Normalizing# Calculating Expression4.计算基因表达量emat.rma.log2 - exprs(eset.rma)class(emat.rma.log2)head(emat.rma.log2, 1)# 计算平均值,并做对数转换

4、results.rma - data.frame(emat.rma.log2, c(1, 3, 5, 7) + emat.rma.log2, c(2, 4, 6, 8)/2)# 计算表达量差异倍数results.rma$fc.1h - results.rma, 2 - results.rma, 1results.rma$fc.24h - results.rma, 3 - results.rma, 1results.rma$fc.7d - results.rma, 4 - results.rma, 1head(results.rma, 2)5.T检验p.value = apply(emat.rm

5、a.log2,1, function(x)(t.test(x7:9, x10:12)$p.value)6.导出数据write.csv(results.rma,file=C:/users/suntao/desktop/data.csv) 7. 选取目的基因在http:/www.plexdb.org/index.php上确定探针,选取数据;汇总到excel表格中,保存为csv格式。8.热度图 cipk=read.csv(c:/users/suntao/desktop/TaCIPK affx arry log.csv) row.names(cipk)=cipk$genenamecipk source

6、(http:/bioconductor.org/biocLite.R) biocLite(impute)impute是专门用KNN法进行缺失值填充的R package:设置好当前工作目录( Windows是在R的菜单栏-文件-改变工作目录设置,Linux下用setwd()函数)然后在R控制台输入以下代码:library(impute)#导入impute packageraw-read.table(raw_data_3_replicates.txt,header=TRUE)rawexpr-raw,-1#移除第一列ID列if(exists(.Random.seed) rm(.Random.seed

7、)#必须,如果没有这句话会出错,原因不知-,-请高手指教imputed-impute.knn(as.matrix(rawexpr) ,k = 10, rowmax = 0.5, colmax = 0.8, maxp = 1500, rng.seed=362436069)#impute.knn() 使用一个矩阵作为第一个参数,其他参数这里使用的是默认值write.table(imputed$data,file=imputed_data.txt)#write.table() 把数据保存在当前工作目录下的文件中,文件名用file= 指定,这一步不是必须的imputeddata-imputed$dat

8、a#imputed$data是在R中储存imputed后的数据的矩阵现在在R里输入imputed,即填充好的数据矩阵,是不是NA值全都没了?关于impute package的详细Documentation在http:/bioconductor.fhcrc.org/packages/release/bioc/html/impute.html全部数据文件:from :用R和BioConductor进行基因芯片数据分析(三):计算median接前一篇:我们已经知道要分析的数据对每个基因有3个重复测定值,经过缺失值填充后,每个基因都有3个可用值。这一步很简单,就是取这3个值的中位数,即median。方

9、法很多,在excel中可以用median函数;在R中以下代码进行操作:get_median-function(i,j)num_vec-c(imputeddatai*3-2,j,imputeddatai*3-1,j,imputeddatai*3,j)median(num_vec)#A simple function to calculate median value of three replicatesdimrow-(dim(imputeddata)1)/3mediandata-matrix(data = NA, nrow =dimrow, ncol = dim(imputeddata)2,

10、byrow = TRUE, dimnames = NULL)#Create a blank matrix to store median valuesfor (i in 1:dimrow)for (j in 1:dim(imputeddata)2)mediandatai,jdim(imputeddata)1 11571 20dim(mediandata)1 3857 20from:用R和BioConductor进行基因芯片数据分析(三):计算median接前一篇:我们已经知道要分析的数据对每个基因有3个重复测定值,经过缺失值填充后,每个基因都有3个可用值。这一步很简单,就是取这3个值的中位数,

11、即median。方法很多,在excel中可以用median函数;在R中以下代码进行操作:get_median-function(i,j)num_vec-c(imputeddatai*3-2,j,imputeddatai*3-1,j,imputeddatai*3,j)median(num_vec)#A simple function to calculate median value of three replicatesdimrow-(dim(imputeddata)1)/3mediandata-matrix(data = NA, nrow =dimrow, ncol = dim(impute

12、ddata)2, byrow = TRUE, dimnames = NULL)#Create a blank matrix to store median valuesfor (i in 1:dimrow)for (j in 1:dim(imputeddata)2)mediandatai,jdim(imputeddata)1 11571 20dim(mediandata)1 3857 20from:用R和BioConductor进行基因芯片数据分析(五):芯片间归一化接前一篇:用R和BioConductor进行基因芯片数据分析(四):芯片内归一化上次进行了芯片内的归一化,但是我们的数据来自于1

13、0张芯片,为了让这10张芯片之间有可比性,需要进行芯片间归一化。具体原理就不介绍了。这里用到Bioconductor的一个package,叫做limma,以及其中的函数normalizeBetweenArrays()由于normalizeBetweenArrays()需要log intensity或log ratio作为输入,于是先进行log转化:#log transformationnorm_log-matrix(data = NA, nrow =dim(normed)1, ncol = dim(normed)2, byrow = TRUE, dimnames = NULL)for (i i

14、n 1:dim(normed)1)for (j in 1:dim(normed)2)norm_logi,j-log(normedi,j)/log(2)然后利用函数进行芯片间归一化:source(http:/bioconductor.org/biocLite.R)biocLite(limma)library(limma)norm_log_btw_array-normalizeBetweenArrays(norm_log,method=scale)normalizeBetweenArrays()函数有许多方法,具体请看帮助。下面看看效果吧plot(density(norm_log,1),ylim=

15、c(0,1.35),xlab=log intensity)for (i in 2:20)lines(density(norm_log,i),type=l)lines(density(norm_log_btw_array,1),type=l,col=green)for (i in 2:20)lines(density(norm_log_btw_array,i),type=l,col=green)text(1.5,c(0.8,1.0),labels=c(BEFORE normalization,AFTER normalization),col=c(black,green)用R和BioConduct

16、or进行基因芯片数据分析(六):差异表达基因接前一篇:用R和BioConductor进行基因芯片数据分析(五):芯片间归一化经过一系列的预处理,包括缺失值填充,中位数计算以及归一化,我们的数据终于可以用啦。下面我们就来分析一下new population和old population的个体是否有差异表达基因。判断一个基因是否差异表达有许多方法,最早使用的就是看log ratio的绝对值是否大于2,这种方法早已废弃。下一个想到的也许是t-test,诚然t-test可以统计地判断一个基因是否差异表达,但是对于有数千数万基因的芯片来说,会有很高的错误发现率(False Discovery Rate,

17、 FDR),如果 p value 0.05,则10000个基因里有500个基因实际没有差异表达而被误认为是差异表达。因此t-test方法需要改进。于是 Westfall & Young (1993) 提出了Step-down maxT and minP multiple testing procedures,大意就是比较几个group间有没有差异基因表达,就通过随机置换这些group的标记,相当于随机互换group的成员,模拟一个空分布(null distribution),以此计算调整后的p value,这个方法可以极大的减小Family-wise Error Rate (FWER).以下分

18、析就使用Step-down maxT and minP multiple testing procedures,需要求助于Bioconductor的multtest package的mt.maxT()函数。具体用法可通过help(mt.maxT)查看。source(http:/bioconductor.org/biocLite.R)biocLite(multtest)library(multtest)classlabel-c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1)maxttt-mt.maxT(norm_log_btw_array,classlabel,

19、B=100000)默认随机置换次数B=10000,对于microarray来说B应该比10000大很多,所以这里取B=100000以下是画图:rawpsort(rawppp)170 1 0.0493 sort(rawppp)171 1 0.0502 170个raw p小于0.05abline(h=0.05,col=blue)text(1000,c(0.6,0.7),labels=c(raw p-value,adjusted p-value),col=c(black,red)text(1000,0.08,labels=p=0.05,col=blue)可见调整后只有一个基因的p value小于0.

20、05,而未调整的有170个基因的p value小于0.05,可以说虽然此方法降低了错误发现率,但是也导致了很高的False negative.此外可以考虑使用multtest package的mt.rawp2adjp()函数,这个函数可以通过”Bonferroni”, “Holm”, “Hochberg”, “SidakSS”, “SidakSD”, “BH”, “BY”等方法调整p value,不过对我们的数据来说都过于严格了。procs-c(Bonferroni,Holm,Hochberg,SidakSS,SidakSD,BH,BY)adjps-mt.rawp2adjp(rawp,proc

21、s)plot(sort(adjps$adjp,1),ylab=p value)for (i in 2:8)points(sort(adjps$adjp,i),col=i)abline(h=0.05,col=blue)text(1000,0.08,labels=p=0.05,col=blue)因此可以考虑不这么严格的SAM (Significance Analysis of Microarrays)分析。有兴趣的请看参考资料。参考资料:课堂讲义:Differential expression.Identifying differentially expressed genes notions on multiple testing and p-value adjustments.Dudoit, S., Yang, Y.H., Speed, T.P., and Callow, M.J. (2002),Statistical methods for identifying differentially expressed genes in replicated cDNA microarray experiments,Statistica

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1