GEO數(shù)據(jù)庫(kù)是NCBI創(chuàng)建并維護(hù)的基因表達(dá)數(shù)據(jù)庫(kù),始于2000年,收錄了世界各國(guó)研究機(jī)構(gòu)提交的高通量基因表達(dá)數(shù)據(jù),現(xiàn)芯片集數(shù)據(jù)量高達(dá)12萬以上。想要從這里面挖掘(bai piao)數(shù)據(jù),發(fā)個(gè)sci提前畢業(yè)升職稱?那么第一步就是篩選自己所需要的芯片集。
我采用的方法是利用Python,爬取相關(guān)芯片集,翻譯并整理成本地文件。(自帶翻譯心動(dòng)嗎?)
為什么要用python?因?yàn)槿松喽蹋?duì)于我們這些非編程專業(yè)的人,python是極易上手的語言之一。其簡(jiǎn)潔的編程風(fēng)格,深受小白們的喜歡。個(gè)人認(rèn)為python的學(xué)習(xí)時(shí)間成本很低,只需要短短幾周甚至幾天,即可打造屬于自己的定制爬蟲。
那么,下面我們正式開始python爬取之旅!(python安裝請(qǐng)自行百度)
第1步,在GEO進(jìn)行初步檢索。
我們檢索“obesity”這個(gè)關(guān)鍵詞,發(fā)現(xiàn)有1432個(gè)芯片集。我比較推薦數(shù)量在200到2000之間,這樣既能保證數(shù)據(jù)足夠,又避免審核過多芯片集會(huì)造成時(shí)間浪費(fèi)。如果芯片集過多,可限定檢索條件,如年份、組織、研究類型等。芯片集過少,可放寬檢索條件或增加關(guān)聯(lián)的關(guān)鍵詞。
第2步,將每頁顯示調(diào)為500條芯片集,查看網(wǎng)頁源代碼并將所有代碼保存到txt文件。
如果有多頁,則需要一頁一頁點(diǎn)開,并將所有代碼復(fù)制到同一txt文件中。這樣子我們的芯片集數(shù)據(jù)就收集完畢了。當(dāng)然,python也能實(shí)現(xiàn)自動(dòng)收集,不過個(gè)人認(rèn)為編寫該部分爬蟲比較麻煩,還不如手動(dòng)更便捷。
第3步,確定芯片集內(nèi)容。
我們點(diǎn)開一個(gè)芯片集,里面有哪些信息我?guī)焸冃枰哪兀縏itle、Organism、Summary等等。查看網(wǎng)頁源代碼,我們發(fā)現(xiàn)這些內(nèi)容都有統(tǒng)一的編寫格式。那么,我們就可以編寫爬蟲,逐一提取里面的信息。好了,前期準(zhǔn)備完成了!下面我們開始愉悅的python開發(fā)。(python的安裝與入門可參考:www.runoob.com)
第4步,利用python爬蟲獲取芯片集。
簡(jiǎn)單來說,就是獲取txt文件中,帶有’GSEXXXX’的芯片集序號(hào)。
第5步,編寫循環(huán)體,用python爬蟲逐一爬取芯片集內(nèi)容。
main函數(shù)就是我們爬蟲的主體
第6步,python爬蟲。
我們根據(jù)所需要的芯片集內(nèi)容,用不同的正則表達(dá)式爬取。
第7步,最令人期待的——自動(dòng)翻譯。
我們可以在百度翻譯平臺(tái),申請(qǐng)開發(fā)者賬號(hào)和通用翻譯api,獲得相關(guān)id和密匙,這樣就可以調(diào)用翻譯功能(附件有api接口代碼)。關(guān)鍵是全程免費(fèi)!免費(fèi)!
第8步,保存到Excel,完美收工。
看看這龐大數(shù)據(jù),看看這熟悉的文字,是不是感到熱淚盈眶?ヽ(??▽?)ノ
個(gè)人心得:
①根據(jù)本人研究?jī)?nèi)容,我一般將Organism限定為Mus musculus 和Homo sapiens,減少無用芯片集。
②芯片集以Samples降序排序,優(yōu)先挑選樣本量大的芯片集,服用效果更好。
③目前我編寫的爬蟲,已實(shí)現(xiàn)斷點(diǎn)爬取、隨機(jī)IP、循環(huán)下載、自動(dòng)關(guān)機(jī)等優(yōu)化功能。因篇幅限制就不一一敘述。有興趣的老鐵可自行研究更有趣的功能。歡迎各種學(xué)習(xí)交流!
放源代碼和動(dòng)版的信息:
鏈接: https://pan.baidu.com/s/1RxqD96_2BVogk9jG3vQTnw
提取碼: ht66