- By test - In 中国vs巴西世界杯
功能分析GO和通路分析KEGG(以药物分析为例)
功能分析的重要性:
1.功能分析和通路分析是生物信息学中的重要内容,涉及转录组芯片、甲基化、SNP、药物和靶基因预测等多种分析。
2.功能分析的目的是改变基因和蛋白的功能,从而影响人体的机能。
3.功能分析和通路分析的文章在科学研究中非常常见,因为它们简单且能生成丰富的图表。
第一步:
基因名字转换为基因ID
1.进行功能分析的第一步是将基因名字转换为基因ID。
2.使用R包进行功能分析时,输入基因ID更为可靠,因为基因名字可能有多个别名,导致输入混乱。
3.转换基因名字为基因ID可以避免别名带来的问题,确保分析的准确性。
化合物和药物的功能分析
1.对于化合物,直接进行功能分析即可。
2.对于药物,如果它有多个化合物成分,需要先预测靶点,再进行功能分析。合并多个化合物的靶点后,进行GO和KEGG富集分析,以了解药物通过哪些功能和通路影响人体机能。
先把之前Excel文件里基因名字和打分复制出来:
用到R:
R语言里面的包要一个一个引用,镜像使用一个离自己近的地方就行
文件地址要改成自己的文件地址,引号保留,双斜线
Id.txt的内容
关于基因ID的NA值:
如果某个基因ID在数据库中找不到,系统会标记为NA。如果NA的数量较少(低于80%),不会对后续分析结果产生显著影响,可以忽略。但是,如果超过了30%-40%的基因ID为NA,则需要检查是否存在数据问题,因为这可能影响到分析的准确性。
GO:
假设在分析某个疾病(如肺癌)时,我们首先会通过功能分析找出与该疾病相关的基因功能。对于肺癌分析,可能会重点关注与呼吸系统、免疫系统等相关的功能。在功能分析过程中,我们会识别出与肺癌相关的特定功能,并进一步查找这些功能对应的基因。例如,如果图中某一功能与肺癌密切相关,那么其中涉及的基因会成为分析的重点
代码如下:
options(repos = c(CRAN = "The Comprehensive R Archive Network"))#设置镜像这里我们使用清华大学的镜像
install.packages("BiocManager")#安装BiocManager,注意此时R版本为4.4.2,BiocManager版本为1.30.16
library(BiocManager)#加载BiocManager
BiocManager::install("clusterProfiler")#安装clusterProfiler
install.packages("stringi")#安装stringi
BiocManager::install("DOSE")#安装DOSE
BiocManager::install("pathview")#安装pathview
setwd("D:/Program Files/R/R-4.4.2/bin/x64")#设置工作目录
install.packages("org.Hs.eg.db_3.20.0.tar.gz", repos = NULL, type = "source")#安装org.Hs.eg.db(由于正常安装不了,所以选择在官网下载压缩包再解压)
setwd("C:/Users/admin/Desktop/10.GO")#设置工作目录
library("clusterProfiler")#加载clusterProfiler
library("org.Hs.eg.db")#加载org.Hs.eg.db
rt=read.table("id.txt",sep="\t",header=T,check.names=F)#读取id.txt文件
rt=rt[is.na(rt[,"entrezID"])==F,]#去除entrezID为NA的行
NormFit=rt$NormFit#提取NormFit列
gene=rt$entrezID#提取entrezID列
names(NormFit)=gene#将NormFit列的名称设置为gene列
#GO
kk <- enrichGO(gene = gene,OrgDb = org.Hs.eg.db, pvalueCutoff =0.05, qvalueCutoff = 0.05)#进行GO富集分析
write.table(kk,file="GO.txt",sep="\t",quote=F,row.names = F)#将结果写入GO.txt文件
#绘制条形图
tiff(file="barplot.tiff",width =35,height = 20,units ="cm",compression="lzw",bg="white",res=300)#绘制条形图
barplot(kk, drop = TRUE, showCategory =20)#绘制条形图
dev.off()#关闭绘图设备
#绘制点图
tiff(file="dotplot.tiff",width = 35,height = 20,units ="cm",compression="lzw",bg="white",res=300)#绘制点图
dotplot(kk,showCategory = 20)#绘制点图
dev.off()#关闭绘图设备
代码解析:
对输出文件GO的解析:
有的人可能希望geneID这一栏显示基因名字,可以用perl脚本实现
研究时看GO描述哪个跟自己的研究最接近,并重点关注后面的gene
KEGG:
通路富集分析:
通过对给定的基因或蛋白进行通路富集分析,我们可以了解这些基因/蛋白参与哪些生物学通路,并探索它们如何影响人体机能。通路富集分析的图形形式通常包括柱状图、气泡图和通路图,柱状图和气泡图展示了不同通路的富集程度和显著性。
通路图展示:
在通路图中,每个节点代表一个基因、酶或蛋白,节点之间的连接表示这些元素在生物学通路中的相互作用或功能关系。节点的颜色可以反映该基因、蛋白或酶是否是药物的靶点。如果是药物靶点中的基因或酶,节点会被着色,反之则没有颜色。红色越红,就说明它的分值越高,分值越高,说明这个结点是药物的靶点的可能性就越高嘛,所以这里越红的话,这个结点就相对来说就越重要。
代码:
#包的打开同GO一样
setwd("C:/Users/admin/Desktop/11.KEGG")
library("clusterProfiler")
rt=read.table("id.txt",sep="\t",header=T,check.names=F)
rt=rt[is.na(rt[,"entrezID"])==F,]
NormFit=rt$NormFit
gene=rt$entrezID
names(NormFit)=gene
#kegg富集分析
kk <- enrichKEGG(gene = gene, organism = "hsa", pvalueCutoff =0.05, qvalueCutoff =0.05)
write.table(kk,file="KEGG.txt",sep="\t",quote=F,row.names = F)
#柱状图
tiff(file="barplot.tiff",width = 35,height = 22,units ="cm",compression="lzw",bg="white",res=300)
barplot(kk, drop = TRUE, showCategory = 20)
dev.off()
#点图
tiff(file="dotplot.tiff",width = 35,height = 22,units ="cm",compression="lzw",bg="white",res=300)
dotplot(kk, showCategory = 20)
dev.off()
#通路图
library("pathview")
keggxls=read.table("KEGG.txt",sep="\t",header=T)
for(i in keggxls$ID){
pv.out <- pathview(gene.data = NormFit, pathway.id = i, species = "hsa", out.suffix = "pathview")
}
代码解析:

