首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基因注释难?网页爬虫与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

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

anno

#查看结果

head(anno)

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

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

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

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

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

#首先加载需要用到的包

library(clusterProfiler)

library(rvest)

library(stringr)

#读取数据

genes

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

genes

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

genes$NCBI_url

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

web_1

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

#查看anno的内容

anno

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

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

web

cat("获得网页\t")

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

genes[i,"FullName"]

cat("写入FullName\t")

genes[i,"GeneType"]

cat("写入GeneType\t")

genes[i,"HGNC_ID"]

cat("写入HGNC_ID\t")

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

}

#运行结果如下

最终输出结果如下:

▼欢迎关注《统计咨询》公众号▼

▼扫码赞赏▼

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907B0D56900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券