Gene Ontology 的GO注釋的視覺化

2021-09-29 06:23:03 字數 2452 閱讀 8680

gene ontology 的go注釋的視覺化@toc

最近因為專案的原因,需要對go terms的注釋進行視覺化,在此之前已經使用visio自己畫了視覺化的圖(天啊,工作量真的好大,畫起來太麻煩啦!)。偶然間發現了乙個goatools這個視覺化的工具,發現自己之前寫太多**了,明明可以直接掉包的==!。

視覺化的時候,必須要安裝pygraphviz。

因為pygraphviz的官網只能支援python2.7的版本,所以只能使用conda重新安裝乙個虛擬環境了:

安裝python2.7虛擬環境conda create --name py2 python=2.7,因為只需要做視覺化,只用匯入必要的包就可以了,暫時不用安裝其他的庫;

安裝完成後用一小段**看是否安裝成功;

import pygraphviz as pyg

g=pyg.agraph(

)#建立圖

g.add_node(

'a')

#建立點

g.add_edge(

'a',

'b')

#建立邊

g.add_edge(

'a',

'c')

#建立邊

g.layout(prog=

'dot'

)#繪圖型別

g.draw(

'pyg1.png'

)#繪製

如果能顯示出一張pyg1.png則說明安裝成功

畫出下面的這個列表的所有的go terms的dag圖

[

'go:0004176'

,'go:0042802'

,'go:0005117'

,'go:0009376'

,'go:0005515'

]

node_temp=

['go:0004176'

,'go:0042802'

,'go:0005117'

,'go:0009376'

,'go:0005515'

]go=obo_parser.godag(

'../data/go-basic.obo'

,optional_attrs=

'relationship'

)recs=

for node in node_temp:

rec=go.query_term(node)

# 設定draw_children=false,否則畫出的圖將非常龐大!

go.draw_lineage(recs,draw_children=

false

)

畫出的圖如下:

如果還需要對進一步的美化和編輯,可以利用cytoscape工具。

背景:非root使用者,並且沒有許可權

看了很多的部落格和stackoverflow,關於centos安裝pygraphviz的經驗真的是少之又少,對於非root使用者,更沒有了。。。。。。

這裡列出兩種,並且其中一種無效。

方法一:

pip install graphviz

# 發現安裝成功

pip install pygraphviz

# 失敗!

原因如下:

看有的部落格有說安裝pip install graphviz libgraphviz-dev pkg-config等,發現真的沒用。

於是選擇方法二。

#方法二

#檢視graphviz

yum list 'graphviz*'

#安裝yum install 'graphviz*'

(結果發現要在root許可權下才可以)

yum********** graphviz.x86_64

#移動到好找到的檔案件,然後新增路徑並解壓

rpm2cpio graphviz-2.30.1-21.el7.x86_64.rpm |cpio -idvm

export path=/home/siqihuang/graphviz/usr/bin/

# 新增完路徑後不能忘記source ./.bashrc

# 後面開始安裝pygraphviz結果還是報錯,而且導致ls、ssh等命令也不能使用,不知道為什麼,要不退出環境然後再進來看一下吧。

# 進入python2環境後

conda install pygraphviz

#--竟然可以使用了。

Go基礎 Go中的import

package main import fmt func main import fmt 告訴go編譯器這個程式需要使用fmt包的函式,fmt包實現了格式化io 輸入 輸出 的函式,可以是相對路徑,也可以是絕對路徑,推薦使用絕對路徑 起始於工程根目錄 import fmt 在包前面加上 即可。可以省...

Go 3 Go語言的併發

go 程 goroutine 是由 go 執行時管理的輕量級執行緒,使用方式 package main import fmt time func say s string func main 結果 go routine say world normal hello normal hello go r...

Go 初學Go語言

馬上要去實習了,要開始實戰了 今天在這總結一些基礎用法,方便後面自己查閱 總結的參考資料為go by example,一邊複習一邊記錄 go by example var a string initial var b,c int 1 2 一次宣告多個 var d true 自動推斷型別 var e ...