GEO数据库是NCBI创建并维护的基因表达数据库,始于2000年,收录了世界各国研究机构提交的高通量基因表达数据,现芯片集数据量高达12万以上。想要从这里面挖掘(bai piao)数据,发个sci提前毕业升职称?那么第一步就是筛选自己所需要的芯片集。
我采用的方法是利用Python,爬取相关芯片集,翻译并整理成本地文件。(自带翻译心动吗?)
为什么要用python?因为人生苦短!对于我们这些非编程专业的人,python是极易上手的语言之一。其简洁的编程风格,深受小白们的喜欢。个人认为python的学习时间成本很低,只需要短短几周甚至几天,即可打造属于自己的定制爬虫。
那么,下面我们正式开始python爬取之旅!(python安装请自行百度)
第1步,在GEO进行初步检索。
我们检索“obesity”这个关键词,发现有1432个芯片集。我比较推荐数量在200到2000之间,这样既能保证数据足够,又避免审核过多芯片集会造成时间浪费。如果芯片集过多,可限定检索条件,如年份、组织、研究类型等。芯片集过少,可放宽检索条件或增加关联的关键词。
第2步,将每页显示调为500条芯片集,查看网页源代码并将所有代码保存到txt文件。
如果有多页,则需要一页一页点开,并将所有代码复制到同一txt文件中。这样子我们的芯片集数据就收集完毕了。当然,python也能实现自动收集,不过个人认为编写该部分爬虫比较麻烦,还不如手动更便捷。
第3步,确定芯片集内容。
我们点开一个芯片集,里面有哪些信息我师们需要的呢?Title、Organism、Summary等等。查看网页源代码,我们发现这些内容都有统一的编写格式。那么,我们就可以编写爬虫,逐一提取里面的信息。好了,前期准备完成了!下面我们开始愉悦的python开发。(python的安装与入门可参考:www.runoob.com)
第4步,利用python爬虫获取芯片集。
简单来说,就是获取txt文件中,带有’GSEXXXX’的芯片集序号。
第5步,编写循环体,用python爬虫逐一爬取芯片集内容。
main函数就是我们爬虫的主体
第6步,python爬虫。
我们根据所需要的芯片集内容,用不同的正则表达式爬取。
第7步,最令人期待的——自动翻译。
我们可以在百度翻译平台,申请开发者账号和通用翻译api,获得相关id和密匙,这样就可以调用翻译功能(附件有api接口代码)。关键是全程免费!免费!
第8步,保存到Excel,完美收工。
看看这庞大数据,看看这熟悉的文字,是不是感到热泪盈眶?ヽ(✿゚▽゚)ノ
个人心得:
①根据本人研究内容,我一般将Organism限定为Mus musculus 和Homo sapiens,减少无用芯片集。
②芯片集以Samples降序排序,优先挑选样本量大的芯片集,服用效果更好。
③目前我编写的爬虫,已实现断点爬取、随机IP、循环下载、自动关机等优化功能。因篇幅限制就不一一叙述。有兴趣的老铁可自行研究更有趣的功能。欢迎各种学习交流!
放源代码和动版的信息:
链接: https://pan.baidu.com/s/1RxqD96_2BVogk9jG3vQTnw
提取码: ht66