生物信息学(Bioinformatics)是研究通过信息科学方法进行生物数据的存储、检索、组织和分析的一门交叉学科。生物信息学的学科代码:071003。
生物信息学是一门以生物学、数学和信息科学为基础的交叉科学,它通过综合运用数学和信息科学等多领域的方法和工具对生物信息进行获取、加工、存储、分析和解释,来阐明大量生物数据所包含的生物学意义。生物信息学涉及课程包括:基因工程、微生物学基础、动物学基础、R/Python语言编程、动物系统学原理、分子克隆技术、动物资源学及应用、高通量药物筛选、进化算法、生物数据库管理系统、生物统计与实验设计、生物芯片制作技术、生物信息软件综合实践、生物信息学的计算技术、生物信息学进展、生物信息学原理、数据挖掘原理及应用等。
R在生物信息分析中的重要性R在生物信息分析中有着极其重要的重要,无论我们做什么样的分析,我们都离不开强大的R。无论是统计学分析,还是想得到漂亮的图形,R都成了我们工作必不可少的一部分。无论是统计学算法,还是测序深度、覆盖度、热图、火山图、Peak、PCA、共表达网络、GO、KEGG的图形化,甚至很多TCGA等数据库数据的下载,我们无一例外都可以用R实现。
给大家举个统计学的例子,假如我们想做T检验。
#input
cc13>input<-c(25,25,31,33,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,48,49,49,56,56,57,67)
#t检验
>t.test(input, mu = 45, var.equal = FALSE)
#mu表示平均值,var.equal = FALSE表示方差未知
One Sample t-test
data: input
t = -2.7245, df = 66, p-value = 0.008236
alternative hypothesis: true mean is not equal to 45
95 percent confidence interval:
41.45675 44.45370
sample estimates:
mean of x
42.95522
简单吧,其实我们只要输入一两句话,就可以完成T检验的工作,非常方便。我们再也不要为那些繁琐的公式而发愁了。我们现在看看结果吧。我们可以看到,p-value = 0.008236,我们就得到了想要的结果了。
R,“惊艳”的可视化功能我们在做GO的时候,想通过柱状图将GO富集的gene数目和P值展示出来。这样我们可以通过图形更加直观的看出我们的差异基因富集在GO或者kegg上。
先看看输入文件,非常的简单,包括三个,第一列为富集的GO的名字,第二列为GO富集的gene数目,第三列为富集的P值。
Term | Count | PValue |
GO:0000279~M phase | 22 | 6.73E-19 |
GO:0022403~cell cycle phase | 22 | 7.09E-18 |
GO:0007049~cell cycle | 27 | 7.37E-14 |
GO:0022402~cell cycle process | 16 | 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 | 1.42E-10 |
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 | 13 | 1.43E-08 |
GO:0007017~microtubule-based process | 11 | 8.74E-08 |
GO:0051726~regulation of cell cycle | 12 | 1.08E-07 |
GO:0000819~brother chromatid segregation | 9 | 1.44E-06 |
GO:0015630~microtubule cytoskeleton | 13 | 9.46E-06 |
GO:0005694~chromosome | 12 | 4.63E-06 |
下面我们来看看R脚本,我们可以是用ggplot2很方便画这样的图形。这个脚本也只有三行,首先引用ggplot2包,然后读取我们的输入文件,之后使用ggplot对输入文件进行图形化的工作。
结果如下,纵坐标代表GO富集的Term,横坐标代表每个GO富集的基因数目,而每个柱子的染色代表-log10(PValue)。这样一来,我们就可以直观的看出哪些GO富集的数目多,哪些GO富集程度高。
#
>library(ggplot2)
>ggplot(data=cc) 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))
强大的bioconductor
Bioconductor给我们生物信息工作者带来了极大的便利。Bioconductor是一个开源的和开放式的软件开发项目,建立多方面的、强有力的基因组数据的统计与图形分析方法。Bioconductor的应用主要以包(Package)的集成形式呈现在用户面前,Bioconductor提供了大量开放式的生物信息学软件包。
Bioconductor中有很多包可以做GO和KEGG分析,今天我们以clusterProfiler包为例,给大家讲解下用bioconductor做生物信息分析。我们的脚本如下,前2行以”#”开头的是怎么安装bioconductor包,接下来就是使用clusterProfiler进行kegg分析的命令了。通过运行,我们可以得到kegg富集的表格和图形。在kegg的图形中,红色代表上调基因,绿色代表下调基因。
#
install.packages('BiocManager')
library(BiocManager)
BiocManager::install('clusterProfiler') #安装了好多包,费时20分钟左右
library(clusterProfiler)
kk<-enrichKEGG(gene=gene,organism='human',pvalueCutoff=0.05)