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 ...