基因注释与功能的分类(3)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基因注释与功能的分类(3)相关的知识,希望对你有一定的参考价值。

参考技术A 一组基因直接注释的结果是得到大量的功能结点。这些功能具有概念上的交叠现象,导致分析结果冗余,不利于进一步的精细分析,所以研究人员希望对得到的功能结点加以过滤和筛选,以便获得更有意义的功能信息。

富集分析方法通常是分析一组基因在某个功能结点上是否过出现(over-presentation)。这个原理可以由单个基因的注释分析发展到大基因集合的成组分析。
由于分析的结论是基于一组相关的基因,而不是根据单个基因,所以富集分析方法增加了研究的可靠性,同时也能够识别出与生物现象最相关的生物过程。

常用的功能富集网站有agrigo、David等

这里以目前应用较为广泛的DAVID为例对基因集进行具体分析。DAVID是一个综合工具,不但提供基因富集分析,还提供基因间ID的转换、基因功能的分类等。

1、对差异表达基因进行功能预测
在基因芯片的数据分析中,研究者可以找出哪些差异表达基因属于一个共同的GO功能分支,并用统计学方法检验结果是否具有统计学意义,从而得出差异表达基因主要参与了哪些生物功能。

通路分析是现在经常被使用的芯片数据基因功能分析法。与GO分类法(应用单个基因的GO分类信息)不同,通路分析法利用的资源是许多已经研究清楚的基因之间的相互作用,即生物学通路。研究者可以把表达发生变化的基因集导入通路分析软件中,进而得到变化的基因都存在于哪些已知通路中,并通过统计学方法计算哪些通路与基因表达的变化最为相关。

基因注释难?网页爬虫与Bioconductor!

  前言  




  利用Bioconductor包进行注释  


不同的芯片平台在Bioconductor中可对应不同的注释包,此处以鼻咽癌芯片数据GSE13597为例,芯片平台是GPL96,对应的Bioconductor包是hgu133a.db。


#安装R包

source("http://bioconductor.org/biocLite.R")

biocLite("AnnotationDbi")

biocLite("hgu133a.db")

#加载R包

library(AnnotationDbi)

library(hgu133a.db)

#读入前言中的结果

genes<-read.csv("D:/tongjizixun_1.csv",stringsAsFactors=F)

#根据基因探针,查找SYMBOL(基因名)、GENENAME(基因名全称)以及常用的ENTREZID(Entrezgene数据库编号)、ENSEMBL(ENSEMBL数据库编号),并存入数据框anno

anno<-select(hgu133a.db,keys=genes$PROBEID, columns=c("SYMBOL", "ENTREZID", "GENENAME","ENSEMBL"), keytype="PROBEID")

#查看结果

head(anno)


基因注释难?网页爬虫与Bioconductor!

 

  利用网页爬虫进行抓取注释信息  

 

利用上述Bioconductor包我们发现可提取的信息较为限定,假设我们要提取更多的信息如GeneType,甚至summary(具体描述)等,可利用rvest包进行爬虫抓取。此方法适用于已知“SYMBOL”信息的情况,以下简介之。


打开GEO数据库检索“SYMBOL”如SOX4(ENTRZID=6659,即上述结果中的第3行),我们可以发现NCBI对于基因页面的索引方式都是:https://www.ncbi.nlm.nih.gov/gene/加ENTRZID 的格式


基因注释难?网页爬虫与Bioconductor!

 

页面中Official Symbol、OfficialFull Name等信息即是我们想抓取的内容,首先我们需要知道这些信息在网页中的节点,点击F12打开网页开发者工具(本文为Chrome浏览器),将位置依次定位到Official Full Name等信息,我们发现这些信息节点在*#summaryDl>dd中,于是可整体抓取*#summaryDl>dd再进行选取。


基因注释难?网页爬虫与Bioconductor!


同样以鼻咽癌芯片数据GSE13597(芯片平台是GPL96)为例,此前经差异基因挖掘,选取其中10个在鼻咽癌组织中表达下调的基因。


#首先加载需要用到的包

library(clusterProfiler)

library(rvest)

library(stringr)

#读取数据

genes<-read.csv("D:/tongjizixun_2.csv", stringsAsFactors=F)

#利用clusterProfiler包bitr函数将SYMBOL转换为ENTREZID

genes<- bitr(genes$SYMBOL, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db")

#生成各个基因对应的网页

genes$NCBI_url<- paste("https://www.ncbi.nlm.nih.gov/gene/", genes$ENTREZID, sep="")

#首先尝试单个基因的信息抓取,以第1个基因为例尝试抓取

web_1<-read_html(genes[1,"NCBI_url"])

anno=web_1 %>%html_nodes("*#summaryDl>dd") %>% html_text() %>%str_replace_all( "\n", "")

#查看anno的内容

anno

 

基因注释难?网页爬虫与Bioconductor!

 

#for循环抓取所有基因信息(假设需提取基因名、GeneType、HGNC_ID)

for(i in 1:nrow(genes)){

  web<-read_html(genes[i,"NCBI_url"])

  cat("获得网页\t")

  anno_all=web %>% html_nodes("*#summaryDl>dd") %>% html_text() %>% str_replace_all( "\n", "")

  genes[i,"FullName"]<-str_replace(anno_all[2], "provided by HGNC", "")

  cat("写入FullName\t")

  genes[i,"GeneType"]<-anno_all[5]

  cat("写入GeneType\t")

  genes[i,"HGNC_ID"]<-str_replace(anno_all[3], "HGNC:HGNC:", "")

  cat("写入HGNC_ID\t")

  print(paste("完成第", i, "个"))

}


#运行结果如下

 

基因注释难?网页爬虫与Bioconductor!

 

最终输出结果如下:

 

基因注释难?网页爬虫与Bioconductor!



▼扫码赞赏▼

以上是关于基因注释与功能的分类(3)的主要内容,如果未能解决你的问题,请参考以下文章

GO/KEGG功能富集分析及气泡图

什么是基因结构注释

GO注释和富集分析

基因组注释之基因功能注释

GO 功能注释

功能的显著性分析——GO Enrichment Analysis