对于基因的研究现在已经如火如荼的进行中,很多数据库都涉及到丰富的基因相关注释信息,例如基因功能,基因互作,基因相关疾病,基因相关的药物,基因序列,结构信息等等。

然而设计到基因组织分布的信息却非常缺乏。基因的组织特异性信息虽然用途不如上述信息广泛,但是在特定情况下可以发挥重要的作用。

例如我们预测某一基因为药物靶点,尽管预测模型中基因和药物有很强的相关性,也确实可以证明基因参与了某一疾病的发生或治疗过程,但是如果基因的分布组织是药物无法到达的。

如脑组织血脑屏障。因此识别基因的组织特异性信息是对于基因,药物等研究非常有价值的信息。

GeneCards是为数不多的记录了基因组织分布的数据库,但是由于GeneCards同时还是收录了其他信息,导致信息检索过程繁琐冗长,因此今天我们介绍给大家一种基于Python网页抓取的方法,从GeneCards数据库抓取基因的组织特异性信息。

GeneCards主页

http://www.genecards.org/

QQ截图20160921144546

上图为GeneCards主页,我们以TP53为例,在检索词中输入TP53,点击search,进入下面界面。

QQ截图20160921144647

如图上面红框位置为URL地址,地址后面有一个字符串为TP53,说明我们只要将检索词加在后面就可以跳转到这个页面。下面红框内为匹配的基因。我们点击第一个检索到的匹配项TP53.

QQ截图20160921144731

之后进入上面的页面,也是我们最终想要得到的target目标页面。看上面的地址栏,有一串蓝色选中的字符串,我们似乎没有见过。

但是和上一级类似的情况,只要我们找到这个字符串,就可以跳转到target URL页面,那么问题来了,我们如何获得这个字符串呢?那么我们就到上一级的源代码中找找看。

QQ截图20160921144815

 

如图,我们找到了这个字符串,原来它是一个变量,真实值是originalQueryHash。

QQ截图20160921144858

接下来我们就可以在target页面找我们的终极目标了,就是组织特异性信息,如上面红框所示。

QQ截图20160921145041

同样的,对于上面每一个组织名称,我们都到源代码中寻找对应的位置,发现他们的结构比较统一,可以用正则表达式抓取。

 

所以从主界面一步一步进入最后的target页面,获得组织信息,整个过程还是比较顺利的,那么下面我们就介绍一下如何通过Python脚本自动化实现上面的全过程。

Python下实现上述过程全自动化的网页抓取代码如下

QQ截图20160921145201

运行结果

QQ截图20160921145233

 

通过简单的文本处理,在代码中加一个循环就可以实现批量检索的目的了。

 


文章转载自:http://mp.weixin.qq.com/s?__biz=MzAwNjE0MDY3MQ==&mid=2650694227&idx=1&sn=39864f0334f7c7e9abab011af432fcc7&scene=1&srcid=0905ICRh2urkcrR9zPkgBkY1#wechat_redirect