根據class獲取值 根據關鍵字爬取GO注釋

2021-10-11 23:15:27 字數 3381 閱讀 3032

為了查詢某個研究領域的相關資訊,生物學家往往要花費大量的時間。與此同時由於不同資料庫之間的資訊可能不同步或者術語不一樣,這使得資訊的檢索更加的麻煩。如果讓人來做還勉強能查,但是讓機器來查詢的話一切就會變的無章可循。gene ontology(go)就是為了解決這種問題而發起的乙個專案;每乙個go term都是由7個數字標識這個term編號,同時還有乙個lable標識具體的生物學功能。每個tern屬於乙個本體,在go中有三個ontology它們分別是:

今天要做的就是大批量的根據某個功能的關鍵字,搜尋已經報導的基因對應的序列資訊;從而進行blast找到你所研究的物種中的同源基因。這裡以爬取ethylene關鍵字為例,分以下三個步驟搞:

根據關鍵字爬取go編號資訊

根據go編號爬取對應的基因注釋資訊

根據基因注釋資訊爬取基因的序列資訊

在開發者模式下可用發現瀏覽器請求的api位址為

接下來使用python中的urllib包向目標api位址發起get請求,並且使用json包將響應的資料解析成dict物件;

這裡對同乙個url進行了兩次請求,主要是為了獲取所有的響應資料;因為每次請求時,預設只響應10條資料

response = urllib.request.urlopen(getgoitemurl)  # 發起get請求

jsondata = json.loads(response.read().decode('utf-8')) # 解析成json資料

# time.sleep(1) # 緩一緩

# print(jsondata['response']['docs'])

return jsondata['response']['docs'] # 得到go item資訊

有的go term可能沒有對應的基因注釋資訊,有的go term可能存在注釋資訊不完整的情況,統一使用na進行填充

for item in goitem:

print("爬取go編號:t"+item['id'])

info = getgeneidbygoitem(item['id'])

goinfo = "t".join([str(item[i]) for i in gokeys]) # 獲取go item 描述資訊

if(len(info) == 0):

genemessage = "t".join(

['na', 'na', 'na', 'na', 'na', 'na', 'na', 'na', 'na'])

else:

for geneitem in info:

genemessage =

# 有不存在值的列,就輸出na資訊

for key in geneinfokeys:

try:

except keyerror:

最終生成乙個txt文件;文件內包含go term的注釋資訊和對應的基因的注釋資訊

使用得到的基因編號和物種編號在ncbi中獲得對應的gene序列資訊,這裡獲得的序列都是正鏈上的序列,而不是有義鏈上的。

最終得到乙個fasta序列檔案

當想要獲取某一些感興趣的基因序列資訊時,只需要從第乙個指令碼生成的檔案goannotion.txt,擷取對應的行到另乙個檔案,用作第二個指令碼的輸入檔案

##獲得感興趣的go 注釋資訊

python goitem2gene.py 關鍵字 goannotion.txt

## 獲得感興趣物種、感興趣go的基因序列資訊

/zpliucode/tree/8666815dfe1f14698596f160e236d9a6c5a042b7/gotermgoitem2gene.py: 根據關鍵字獲取基因編號getseqbyid.py:根據基因編號提取基因序列

基因本體概念

Extjs TreeFilter 根據關鍵字過濾樹

jquery miniui 開發教程 樹形控制項 樹操作 過濾樹 十一 過濾樹 filter節點過濾 tree.filter function node this.usertreepanel new ext.tree.treepanel listeners click function node,e...

根據關鍵字檢視日誌

老是忘記怎麼檢視某個關鍵字的指令,看到有個老哥寫得不錯,我把它貼上到這裡備份啦 說明 這個只是供自己以後查詢使用,如有問題請指出。僅供參考 檢視匹配內容的前後幾行 reg 代表要搜尋的內容 destfile 代表要搜尋的檔案 grep 5 reg destfile 列印匹配行的前後5行 grep c...

關鍵字提取 Excel根據2個關鍵字,批量提取字元

雜亂的文字串裡面提取我們想要的字元是工作中經常碰到的難題,前面我們講解過關鍵字 固定長度的提取技巧 如下所示,左邊的字元裡面的規律是關鍵字 專案 5位 如果我們需要提取5位 則使用的公式是 mid a2,find 專案 a2 2,5 如果我們的工程 的長度不一致,如下所示 這個時候,我們發現我們的 ...