Dash Bio①(インストール/サーコスプロット)

Dash Bioコンポーネントを使うと、バイオインフォマティクスのデータを短いコードで可視化、分析することができます。

Dash Bioのインストール

Dash Bioをインストールするためには、下記のコマンドを実行します。

[コマンド]

1
pip install dash-bio

Windows環境で実行していてMicrosoft Visual C++ 14.0 or greater is required.というエラーが発生した場合、下記のサイトを参考にMicrosoft C++ Build Toolsをインストールしてください。

参考サイト - 「Microsoft Visual C++ 14.0 or greater is required.」が出た場合の対処方法

サーコスプロット

Circosコンポーネントを使ってデータ間の繋がりを円形で可視化します。

サーコスプロットは円形のレイアウトで、要素間の関係を可視化することができ、バイオインフォマティクスの分野以外にもいろいろな分野で利用できます。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import dash
import dash_bio as dashbio
import dash_html_components as html

app = dash.Dash(__name__) # Dashインスタンスを生成

# レイアウト作成
app.layout = html.Div(
[
dashbio.Circos(
# 要素
layout=[
{'id':'1', 'label':'1', 'color':'yellow', 'len':100},
{'id':'2', 'label':'2', 'color':'skyblue','len':180},
{'id':'3', 'label':'3', 'color':'purple', 'len':250},
{'id':'4', 'label':'4', 'color':'pink', 'len':200},
{'id':'5', 'label':'5', 'color':'lime', 'len': 70}
],
# 要素の関係
tracks=[
{
# グラフの種類
'type': 'CHORDS',
# 要素間のデータ
'data':[
{
'source':{'id':'1', 'start':50, 'end':100},
'target':{'id':'3', 'start':30, 'end':50},
},
{
'source':{'id':'1', 'start':30, 'end':50},
'target':{'id':'4', 'start': 0, 'end':70},
},
{
'source':{'id':'2', 'start':100, 'end':150},
'target':{'id':'5', 'start': 30, 'end': 50},
},
{
'source':{'id':'3', 'start':100, 'end':150},
'target':{'id':'3', 'start': 0, 'end': 30},
}
],
'opacity':0.8,
'color':{'name':'color'},
'config':{
# マウスオーバー時に表示するデータ
'tooltipContent':{
'source':'source',
'sourceID':'id',
'target':'target',
'targetID':'id',
'targetEnd':'end'
}
}
}
]
)
]
)

if __name__ == '__main__':
app.run_server(debug=True) # アプリケーションを起動

Circosコンポーネントは、引数 layoutに外側の円の要素、引数 tracksに要素同士の関連データを渡してグラフを作成します。

作成するグラフの種類は引数 tracksに渡す辞書のキー‘type’に値を設定します。

各属性の主な設定方法は以下の通りです。

  • layout (辞書:必須) サーコスプロットの外側の部分を設定
    • id (文字列:必須) ブロックID
    • label (文字列:必須) ブロックのラベル
    • color (文字列:必須) ブロックの色
    • len (数値:必須) ブロックの長さ
  • tracks (辞書:任意) トラックの設定
    • id (文字列:認知) トラックのデータID
    • data (リスト:必須) トラックのデータ(JSONデータ)
    • type (文字列:任意) トラックの種類
    • config (辞書:任意) トラックのレイアウト

[ブラウザで表示]

サーコスプロットが表示され、円形のレイアウトでそれぞれの要素間の繋がりを確認することができます。