怎么用R语言的limma方法进行芯片数据差异表达分析
怎么用R语言的limma方法进行芯片数据差异表达分析
这篇文章主要介绍“怎么用R语言的limma方法进行芯片数据差异表达分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用R语言的limma方法进行芯片数据差异表达分析”文章能帮助大家解决问题。
数据简介与设置
为了方便演示,这里选择了人的早幼粒细胞白血病细胞系NB4细胞的六个样本数据(GSE2600),分析的输入文件是下载的表达矩阵文件,而分析之前需要确保正确安装和加载limma,同时需要对工作路径进行设置。
library('limma')workdir="F:/GEO/20180520"setwd(workdir)
数据处理
1、表达矩阵
数据为六个样本,读取数据之后,大家可以利用head()简单查看数据的情况等。
>expreSet=read.csv2("GSE2600expressionMatrix.csv",header=T,row.names=1,check.names=F)
>head(exprSet,3)GSM49939GSM49940GSM49941GSM49942GSM49943GSM499441007_s_at23.013.826.575.994.984.61053_at1449.91826.72242.81508.81523.02355.5117_at109.271.5106.7128.884.179.6
针对表达矩阵,需要查看其整体分布情况,可以利用boxplot()绘制box分布图,GEO下载的表达矩阵数据基本上都是标准化的数据,可以由箱线图的分布特点看出这些样本的数据基本分布一致(中位数、上四分位数、下四分位数等等),如下图结果:
n.sample=ncol(exprSet)cols=rainbow(n.sample)pdf(file=paste(workdir,"/","Probe_expressionDistribution.pdf",sep=""),width=24,height=18)par(cex=0.7)if(n.sample>40)par(cex=0.5)boxplot(exprSet,col=cols,main="expression",las=2)dev.off()
2、分组矩阵
确认表达矩阵之后,可以由下载保存的样本处理信息进行分组,例如此处的样本处理分组:CONTROL/INFECTED,经过整理,分组信息大致如下,并基于分组信息构建分组矩阵(design):
>groupTreatmentGSM49939CONTROLGSM49940CONTROLGSM49941CONTROLGSM49942INFECTEDGSM49943INFECTEDGSM49944INFECTED
>design=model.matrix(~Treatment+0,group)>colnames(design)=levels(as.factor(c("CONTROL","INFECTED")))
>designCONTROLINFECTEDGSM4993910GSM4994010GSM4994110GSM4994201GSM4994301GSM4994401attr(,"assign")[1]11attr(,"contrasts")attr(,"contrasts")$Treatment[1]"contr.treatment"
3、差异比较矩阵
基于分组矩阵的信息构建差异比较矩阵(cont.matrix),由差异比较矩阵显示结果可知,是进行INFECTED 与CONTROL之间的差异分析。
>cont.matrix=makeContrasts(INFECTED-CONTROL,levels=design)
>cont.matrixContrastsLevelsINFECTED-CONTROLCONTROL-1INFECTED1
差异表达分析
差异表达分析主要是基于lmFit()、eBayes()、topTable()完成分析过程,并提取了主要的结果(tT)。
>fit=lmFit(exprSet,design)>fit2=contrasts.fit(fit,cont.matrix)>fit2=eBayes(fit2,0.01)>tT=topTable(fit2,adjust="fdr",sort.by="logFC",resort.by="P",n=Inf)>tT=subset(tT,select=c("adj.P.Val","P.Value","logFC"))
>head(tT,15)adj.P.ValP.ValuelogFC223020_at0.999642.196175e-05746.100001555758_a_at0.999646.467722e-05-540.53333218676_s_at0.999641.352768e-04-280.86667237249_at0.999642.669173e-04-93.53333225100_at0.999642.836527e-04-124.96667217825_s_at0.999642.903446e-04-143.73333222099_s_at0.999643.425427e-04493.13333212634_at0.999644.221452e-04-166.06667211499_s_at0.999644.391776e-04-129.56667221098_x_at0.999644.805746e-0495.16667208974_x_at0.999645.060448e-04947.76667209670_at0.999645.113338e-04374.20000202088_at0.999645.262646e-04-594.40000219394_at0.999645.307063e-04-117.56667212221_x_at0.999645.393084e-04347.43333
关于“怎么用R语言的limma方法进行芯片数据差异表达分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。
推荐阅读
-
R语言标签平滑是什么
-
R语言怎么批量读取某路径下文件内容
R语言怎么批量读取某路径下文件内容今天小编给大家分享一下R语言怎么...
-
R语言怎么安装芯片原始数据标准化的包
R语言怎么安装芯片原始数据标准化的包这篇“R语言怎么安装芯片原始数...
-
TPM,FPKM(R语言怎么计算转录组中Count)
R语言怎么计算转录组中Count,TPM,FPKM本文小编为大家...
-
r语言如何绘制蛋白质组和转录组相关性图
r语言如何绘制蛋白质组和转录组相关性图这篇“r语言如何绘制蛋白质组...
-
怎么用limma包进行芯片数据差异分析
怎么用limma包进行芯片数据差异分析这篇文章主要介绍了怎么用li...
-
r语言中如何使用reshape2包将宽型数据转换成长型数据
r语言中如何使用reshape2包将宽型数据转换成长型数据这篇文章...
-
怎么用R语言的rgb函数获取颜色
怎么用R语言的rgb函数获取颜色今天小编给大家分享一下怎么用R语言...
-
怎么使用R语言筛选基因
-
在R语言中如何利用split划分数据
在R语言中如何利用split划分数据这篇文章给大家分享的是有关在R...