资料文库

资料文库

您当前的位置 : 首页 > 资料文库> > 资料分享

生物信息学R语言入门

发布时间 : 2018-10-17来源 : 华康基因浏览次数 :

 


1. 生信从业者为什么学习R?
R在生物信息分析中有着极其重要的重要,无论我们做什么样的分析,我们都离不开强大的R。无论是统计学分析,还是想得到漂亮的图形,R都成了我们工作必不可少的一部分。无论是统计学算法,还是测序深度、覆盖度、热图、火山图、Peak、PCA、共表达网络、GO、KEGG的图形化,甚至很多TCGA等数据库数据的下载,我们无一例外都可以用R实现。
给大家举个统计学的例子,假如我们想做T检验。
#input data
>input=c(35,35,35,35,35,36,37,38,38,39,39,40,40,40,40,41,41,41,41,41,41,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,46,46,46,46,46,46,46,46,46,46,47,47)
#t检验
>t.test(input, mu = 45, var.equal = FALSE)   #mu表示平均值,var.equal = FALSE表示方差未知
简单吧,其实我们只要输入一两句话,就可以完成T检验的工作,非常方便。我们再也不要为哪些繁琐的公式而发愁了。我们现在看看结果吧。我们可以看到,p-value = 2.681e-08,我们就得到了想要的结果了。
生物信息学R语言入门
下来给大家看个R图形化的例子,我们在做GO的时候,想通过柱状图将GO富集的gene数目和P值可以画展示出来。这样我们可以通过图形更加直观的看出我们的差异基因富集在GO或者kegg上。
先看看输入文件,非常的简单,包括三个,第一列为富集的GO的名字,第二列为GO富集的gene数目,第三列为富集的P值。

Term Count PValue
GO:0000279~M phase 22 6.26E-20
GO:0022403~cell cycle phase 22 7.09E-18
GO:0007049~cell cycle 27 7.37E-18
GO:0022402~cell cycle process 22 3.90E-15
GO:0007067~mitosis 15 2.48E-13
GO:0000280~nuclear division 15 2.48E-13
GO:0000087~M phase of mitotic cell cycle 15 3.18E-13
GO:0048285~organelle fission 15 4.31E-13
GO:0000278~mitotic cell cycle 16 2.10E-11
GO:0000793~condensed chromosome 10 8.08E-10
GO:0005819~spindle 10 2.58E-09
GO:0051301~cell division 13 2.72E-09
GO:0000775~chromosome, centromeric region 9 1.43E-08
GO:0007017~microtubule-based process 11 8.74E-08
GO:0051726~regulation of cell cycle 12 1.08E-07
GO:0000819~sister chromatid segregation 6 4.37E-07
GO:0015630~microtubule cytoskeleton 13 4.61E-07
GO:0005694~chromosome 12 6.28E-07
 
 
下面我们来看看R脚本,我们可以是用ggplot2很方便画这样的图形。这个脚本也只有三行,首先引用ggplot2包,然后读取我们的输入文件,之后使用ggplot对输入文件进行图形化的工作。

library(ggplot2)
dat <- read.table("input.txt", header = T,sep="\t")
ggplot(data=dat)+geom_bar(aes(x=Term, y=Count, fill=-log10(PValue)), stat='identity') + coord_flip() + scale_fill_gradient(low="red", high = "blue") + xlab("") + ylab("") + theme(axis.text.x=element_text(color="black", size=12), axis.text.y=element_text(color="black", size=12)) + scale_y_continuous(expand=c(0, 0)) + scale_x_discrete(expand=c(0,0))
 
结果如下,纵坐标代表GO富集的Term,横坐标代表每个GO富集的基因数目,而每个柱子的染色代表-log10(PValue)。这样一来,我们就可以直观的看出哪些GO富集的数目多,哪些GO富集程度高。

生物信息学R语言入门

接下来,我们要介绍下强大的biocondcutor,给我们生物信息工作者带来了极大的便利。Bioconductor是一个开源的和开放式的软件开发项目,建立多方面的、强有力的基因组数据的统计与图形分析方法。Bioconductor的应用主要以包(Package)的集成形式呈现在用户面前,Bioconductor提供了大量开放式的生物信息学软件包。
    Bioconductor中有很多包可以做GO和KEGG分析,今天我们以clusterProfiler包为例,给大家讲解下用bioconductor做生物信息分析。我们的脚本如下,前2行以”#”开头的是怎么安装bioconductor包,接下来就是使用clusterProfiler进行kegg分析的命令了。通过运行,我们可以得到kegg富集的表格和图形。在kegg的图形中,红色代表上调基因,绿色代表下调基因。

生物信息学R语言入门
BgRatio pvalue p.adjust qvalue geneID Count
128/5894 8.30E-10 9.78E-09 4.50E-09 CDC45/TTK/CCNA2/E2F2/BUB1B/MAD2L1/ORC1/MCM2/MCM6/CCNE1/ORC6/CDKN2C/MCM3/GADD45B/CDC7/MCM7/MCM5/CCNE2/CDC25A 19
36/5894 1.22E-09 9.78E-09 4.50E-09 FEN1/MCM2/MCM6/RNASEH2A/RFC4/MCM3/PRIM2/POLD1/POLA2/MCM7/MCM5 11
28/5894 4.40E-07 2.35E-06 1.08E-06 EME1/RAD54L/RAD51/XRCC3/POLD1/BLM/XRCC2/RAD54B 8
85/5894 1.40E-05 5.59E-05 2.57E-05 E2F2/CCNE1/LAMA4/COL4A1/ITGA6/COL4A2/PIAS3/CCNE2/PTGS2/LAMC1/CKS1B 11
327/5894 0.002698429 0.008634974 0.003976633 E2F2/FOXO1/FOS/MAP2K1/CCNE1/RAD51/LAMA4/MSH2/COL4A1/ITGA6/COL4A2/PIAS3/JUN/CCNE2/PTGS2/LAMC1/CKS1B/PDGFA 18
85/5894 0.007464082 0.019904218 0.009166416 HMMR/COL6A6/LAMA4/COL4A1/ITGA6/COL4A2/LAMC1 7
114/5894 0.01112041 0.02541808 0.011705695 AURKA/MAD2L1/FBXO43/MAP2K1/SGOL1/CCNE1/ADCY6/CCNE2 8
99/5894 0.016515126 0.033030252 0.0152113 TK1/PRIM2/POLD1/POLA2/CAD/UCK2/TYMS 7

生物信息学R语言入门

生物信息学R语言入门

2. R语言安装
关于R软件的下载,有部分学员还是反应找不到安装包,尽管我多次说过直接在百度搜索”R”,然后选择第一个搜索结果,就可以进入R主页:http://www.r-project.org/ 。尽管有的学员找到了主页,仍然不知道如何下载R软件。有的本来要在windows安装,却下载了linux版本,然后一直问我为什么找不到exe执行文件。下面我们就以图形化的形式展示最新版本R的下载方法。大家进入网页后,按照红色圈指示一步步执行下去,就可以下载到最新的R了。
生物信息学R语言入门

生物信息学R语言入门



生物信息学R语言入门

生物信息学R语言入门
生物信息学R语言入门

关于R软件的安装,其实和QQ等软件的安装没有任何区别,这里就不再讲解了(其实下载也一样,只是不止一个学院提出这样的问题,所以讲解了一下)。这里有个问题大家要注意一下,在安装R的过程中,最好目录不要出现空格,比如安装在“Program Files”这样的目录下。有空格的话,有些R包安装不上,这个也是很多生物信息培训学员碰到的问题。
3. R包的安装
1)选择镜像安装
    安装好 R 之后,打开 R,选择“程序包->安装程序包”,注意需要联网。在弹出的镜像中选择一个,个人觉得China(Xiamen)比较快。然后下一个窗口会弹出 packages 的选择框,选中你所需的包,最后就会连接下载安装,信息会在 R窗口中显示。
2) 选择本地安装
   需要先从网上下载安装包,windows下注意类型必须是.zip格式。然后打开R,选择“程序包->从本地 zip 文件安装程序包”,选择我们刚才下载包的路径,就搞定了。
3) 使用install.packages()函数安装。
   假如我们想通过“gplots”画热图,我们可以在R界面中出输入命令,install.packages("gplots"),注意这里引号不能少,而且要是英文的引号。

生物信息学R语言入门
4) bioconductor包的安装
在BioC的官方网站上,存放着Bioc包的安装脚本,biocLite.R, 每次需要安装BioC的包之前,会运行该脚本。source是运行代码脚本的命令,可以是本地文件,可以是网络上的文件。需要你有流畅的网络链接
source(“http://bioconductor.org/biocLite.R”)。biocLite()是安装函数,相当于R中的常用的install.package命令。
假如我们要安装limma,用于芯片的表达差异分析。我们可以进入bioconductor的官网,然后搜索”limma”。我们就可以看到安装limma的命令了,即:
source("http://bioconductor.org/biocLite.R")
biocLite("limma")

生物信息学R语言入门

4. R中的帮助文档
·         help(functionname) 对已经加载包所含的函数显示其帮助文档,用?号也是一样的。
·         help.search("keyword") 对已经安装的包搜索关键词,用??号功能一样。
·         help(package="packagename") 显示已经安装的包的描述和函数说明
·         RSiteSearch("keyword") 在官方网站上联网搜索
       1 help("t.test")
       2 ?t.test
       3 help.search("t.test")
       4  apropos("t.test")
 
5. R命令入门
1) 赋值
<-也可用=, ->代替
a=1
    b=2
    c=a+b
c       #注释
 
2)向量赋值
   a=c(1,2,3,4,,6,7,8,9)
   b<-c(10,11,12)
   c(1,2,3,4,,6,7,8,9)->a
   d=c(a,b)    #d=c(1,2,3,4,,6,7,8,9,10,11,12)
 
3) 向量计算
   x=c(2,3,4)
   y=c(7,9,8)
   z=x*2+y
 生物信息学R语言入门
 
4) 函数
x=c(1,2,3,3,3,3,4,5,6,6,7,8,8,8,10,11,12,23,23,34,34,54,12,23,34,34)
log(x)  log10(x)  exp(x)  sin(x)  cos(x)  tan(x)  asin(x)  acos(x)  min(x)  max(x)   range(x)   length(x) mean(x)  sd(x)  var(x)   median(x)   quantile(x,p)  fisher.test  chisq.test   t.test()
生物信息学R语言入门
5) 字符向量
x=c("a","b","c","d","e","f")
y=paste("中","国",sep="")     #中国
y=paste("中","国",sep="--")    #中--国
y=paste("中","国",sep="**")    #中**国


生物信息学R语言入门
5)因子
有6个实验数据,3个癌症,3个对照,用因子表示。
group=c("tumor","tumor","tumor","tumor","tumor")
design=factor(group)
design
生物信息学R语言入门
6) 有规律向量产生
a=seq(1,10,by=1)
a
b=rep("tumor",3)
b
c=c(rep("tumor",3),rep("control",3))
c

生物信息学R语言入门
7) 读取文件
setwd("C:/Users/DELL/Desktop/goPvalue")     #设置文件目录
dat <- read.table("input.txt", header = T,sep="\t")    #sep="\t"表示以制表符分割,header = T表示有表头
生物信息学R语言入门

8)绘图实例
x <- rnorm(1000) # 生成1000个随机数
hist(x,freq=F,breaks = 50,col = "lightblue") # 画直方图
curve(dnorm(x),add=T) # 绘制曲线

生物信息学R语言入门
x=seq(-500,500,by=2)
y=x**2+5*x+2
plot(x,y,col="red",cex=0.4)

生物信息学R语言入门
a=c(intron=3535,intergenic=7500,exon=9500,splicing=156,noncoding=600)
pie(a)


生物信息学R语言入门
a=c(1:100)
b=runif(100,20,80)
c=rnorm(100)*20
d=rnorm(100)*10
y<-data.frame(a,b,c,d)
boxplot(y,col=c("red","green","blue","yellow"))
生物信息学R语言入门





 

上一篇 : 染色体微阵列分析技术(CMA)

下一篇 : 【科普】《生命的语言》

法律声明|公司概况

Copyright © 2016 中关村华康基因研究院培训 . All Rights Reserved京ICP备18042576号-2