利用Graphviz 視覺化GO 資料庫

2021-09-08 12:31:27 字數 2212 閱讀 7598

go是乙個同源蛋白的資料庫,按照三大類別bp(生物學過程), mf(分子功能), cc(細胞組分) 對基因的產物-蛋白質進行了分類;

在go資料庫中,本質上是乙個有向無環圖的資料結構,在三大類別之下,又有小的分類層級,一層一層的分類下去;

對於某個具體的go號來說,代表了一組同源蛋白,擁有相似的結構和功能,在資料庫中,有上層分類的go,也可能在這個go下面,還有其他的go

為了直觀的展示某個go號的分類,利用資料庫提供的go-basic.obo 檔案得到不同go之間的層級關係,然後用graphviz 進行視覺化

wget
觀察obo 檔案

[term]

id: go:0000001

name: mitochondrion inheritance

namespace: biological_process

def: "the distribution of mitochondria, including the mitochondrial genome, into daughter cells after mitosis or meiosis, mediated by interaction

synonym: "mitochondrial inheritance" exact

is_a: go:0048308 ! organelle inheritance

is_a: go:0048311 ! mitochondrion distribution

其核心是term , 每個term 下記錄了乙個具體的go, name 是對該go的簡單描述,namespace 是值該go 屬於三大類別中的哪乙個,def 是詳細的描述資訊, is_a 記錄了該go 對應的上層分類的go

根據每個go的is_a的資訊,就可以得到所有go之間的相互關係,利用程式處理,對於某個具體的go,就可以得到其對應的所有上層分類,然後整理成graphviz 識別的dot 檔案,進行視覺化

具體的**如下:

#

!/usr/bin/env perl

my ($obo, $go) = @ar**;my

%nodes =();

my%edges =();

local $/ = "

[term]";

open obo, $obo or die

"can't open $obo!\n";

while () ;

$node =~ s/://;

$nodes = $label

;

my@edge = $_ =~ /is_a:\s+(go:\d+)/;

foreach

my$x (@edge

) }, $x

; }

}close

obo;

my@val = @};

my@node =();

my@edge =();

push

@node, $go;my

$start = $go

;while (@val

) ;

foreach

my$x (@})

$start = $id;}

print qq;

foreach

my$x (@node

) \];\n};

}foreach

my$x (@edge

) ;}

print qq};

執行的命令如下:

perl  parse_go.pl go-basic.obo go0002485 > go0002485.dot
如果使用go:0002485 這種作為結點的名字,graphviz 不能夠正確識別,所以我把冒號統一替換掉了,生成的go0002485的內容如下:

digraph go
最後用graphviz 進行視覺化

dot -t pdf go0002485.dot -o go0002485.pdf
效果圖如下:

這裡全部採用了預設的格式,其實還可以在這個基礎上再修改樣式,使更加的美觀;

用graphviz視覺化決策樹

python上有支援graphviz使用 的import graphviz import pydotplus from ipython.display import image 這樣環境就搭好了,有時候python會很笨,仍然找不到graphviz,這時,可以在 裡面加入這一行 os.environ...

二叉樹視覺化 Graphviz

大家平時寫c程式有沒有種把記憶體裡的資料結構全給畫出來的衝動呢?資料量小的話,畫起來還蠻簡單,用viso,我前面的文章都用viso畫的。之前寫紅黑樹 的時候,用的是命令列把整個樹列印出來,不過只是一些小片段,很醜,還得自己手動再在紙上畫一遍,非常麻煩,要是用程式就能把圖畫出來那就爽了。好了,推薦使用...

graphviz視覺化決策樹安裝配置

一 windows安裝 安裝graphviz軟體 配置環境變數 把bin資料夾的路徑加入到環境變數path裡 安裝python的graphviz模組 pip install graphviz 二 linux centos7安裝 安裝python的graphviz模組 pip install grap...