Dash DAQ②(Color Pickerコンポーネント)

Dash DAQ

Dash DAQでは、データの収集・管理を行うコンポーネントを提供しています。

スイッチや計器に似た可視化ツールが用意されており、データを変化させる管理UIを作成できます。

Dash Enterprise - https://dash.plotly.com/dash-daq

Color Pickerコンポーネント

Color Pickerコンポーネントを使うと、カラーピッカーを表示することができます。

[ソースコード]

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
import dash
from dash.dependencies import Input, Output
import dash_html_components as html
import dash_daq as daq

app = dash.Dash(__name__)

app.layout = html.Div([
daq.ColorPicker(
id='our-color-picker',
label='Color Picker',
value=dict(hex='#119DFF')
),
html.Div(id='color-picker-result')
])

@app.callback(
Output('color-picker-result', 'children'),
Input('our-color-picker', 'value')
)
def update_output(value):
return 'The selected color is {}.'.format(value)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

カラーピッカーが表示され、カラーパレットスライダーを使って色を選択することができます。

選択した色の情報はJSON形式で取得できます。

Dash DAQ①(BooleanSwitchコンポーネント)

Dash DAQ

Dash DAQでは、データの収集・管理を行うコンポーネントを提供しています。

スイッチや計器に似た可視化ツールが用意されており、データを変化させる管理UIを作成できます。

Dash Enterprise - https://dash.plotly.com/dash-daq

BooleanSwitchコンポーネント

BooleanSwitchコンポーネントでは、オンとオフを切り替えるスイッチを表示します。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import dash
from dash.dependencies import Input, Output
import dash_html_components as html
import dash_daq as daq

app = dash.Dash(__name__)

app.layout = html.Div([
daq.BooleanSwitch(id='our-boolean-switch', on=False),
html.Div(id='boolean-switch-result')
])

@app.callback(
Output('boolean-switch-result', 'children'),
Input('our-boolean-switch', 'on')
)
def update_output(on):
return 'The switch is {}.'.format(on)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

スイッチを押すと、オンとオフを切り替えることができます。

Dash Bio⑯(パイルアップ)

パイルアップ

Pileupコンポーネントを使うと、パイルアップを表示することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/pileup

上記のDash Enterpriseにあるサンプルを参考にして、パイルアップを表示します。

[ソースコード]

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
import dash
import dash_bio as dashbio

app = dash.Dash(__name__)

HOSTED_GENOME_TRACKS = {
'hg19': {
'range': {
'contig': 'chr17',
'start': 7512284,
'stop': 7512644
},
'reference': {
'label': 'hg19',
'url': 'https://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/hg19.2bit'
},
'tracks': [{
'viz': 'scale',
'label': 'Scale'
},
{
'viz': 'location',
'label': 'Location'
},
{
'viz': 'genes',
'label': 'genes',
'source': 'bigBed',
'sourceOptions': {'url': 'https://www.biodalliance.org/datasets/ensGene.bb'}
}]
}
}

app.layout = dashbio.Pileup(
range=HOSTED_GENOME_TRACKS['hg19']['range'],
reference=HOSTED_GENOME_TRACKS['hg19']['reference'],
tracks=HOSTED_GENOME_TRACKS['hg19']['tracks']
)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

パイルアップを表示することができました。

スライドバーを使って拡大・縮小したり、ドラッグして表示位置を変えたりすることができます。

Dash Bio⑮(マンハッタンプロット)

マンハッタンプロット

ManhattanPlotコンポーネントを使うと、マンハッタンプロットを表示することができます。

マンハッタンプロットは、多数のデータポイント、非ゼロ振幅、および高い振幅値の分布を持つデータを表示します。

一般的にゲノムワイド関連解析(GWAS)で使用され、重要なSNP(個人間の遺伝情報のわずかな違いのこと。一塩基多型とも呼ばれる。)を表示することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/manhattanplot

上記のDash Enterpriseにあるサンプルを参考にして、マンハッタンプロットを表示します。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pd
import dash
import dash_bio as dashbio
from dash import dcc

app = dash.Dash(__name__)

df = pd.read_csv('https://git.io/manhattan_data.csv')

app.layout = dcc.Graph(figure=dashbio.ManhattanPlot(dataframe=df))

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

マンハッタンプロットを表示することができました。

ドラッグすることにより、表示位置を変えたり、拡大・縮小したりすることができます。

また凡例を選択して、データの表示・非表示を切り替えることもできます。

Dash Bio⑭(ゲノムブラウザ IGV)

ゲノムブラウザ IGV

IGVコンポーネントを使うと、ゲノム情報を視覚化することができます。

IGVIntegrative Genomics Viewer の略です)

Dash Enterprise - https://dash.plotly.com/dash-bio/igv

上記のDash Enterpriseにあるサンプルを参考にして、ゲノム情報を視覚化してみます。

[ソースコード]

1
2
3
4
5
6
7
8
9
import dash
import dash_bio as dashbio

app = dash.Dash(__name__)

app.layout = dashbio.Igv(genome='ce11', minimumBases=100)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

ゲノム情報を可視化することができました。

ドラッグすることにより、表示位置を変えたり、拡大・縮小して表示することができます。

Dash Bio⑬(Ideogram)

Ideogram

Ideogramコンポーネントを使うと、染色体パターンを可視化することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/ideogram

上記のDash Enterpriseにあるサンプルを参考にして、染色体パターンを視覚化します。

[ソースコード]

1
2
3
4
5
6
7
8
9
import dash
import dash_bio as dashbio

app = dash.Dash(__name__)

app.layout = dashbio.Ideogram(id='test', chromosomes=[str(i) for i in range(1, 23)])

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

染色体パターンを可視化することができました。

染色体を選択すると拡大して表示することができます。もう一度選択するともとの表示に戻ります。

Dash Bio⑫(FornaContainer)

FornaContainer

FornaContainerコンポーネントを使うと、RNA分子の2次元構造を可視化することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/fornacontainer

上記のDash Enterpriseにあるサンプルを参考にして、RNA分子の2次元構造を視覚化します。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import dash
import dash_bio as dashbio

app = dash.Dash(__name__)

sequences = {
'PDB_01019': {
'sequence': 'AUGGGCCCGGGCCCAAUGGGCCCGGGCCCA',
'structure': '.((((((())))))).((((((()))))))'
},
'PDB_00598': {
'sequence': 'GGAGAUGACgucATCTcc',
'structure': '((((((((()))))))))'
}
}

app.layout = dashbio.FornaContainer(sequences=[sequences['PDB_01019'], sequences['PDB_00598']])

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

RNA分子の2次元構造を可視化することができました。

ドラッグ操作により全体の表示位置を変えたり、分子構造をつかんで移動したりすることができます。

Dash Bio⑪(Clustergram)

Clustergram

Clustergramコンポーネントを使うと、2次元のクラスター分析を可視化することができます。

クラスター分析とは、大きな集団の中から似たもの同士を集めてグループに分ける統計的な分析手法です。

Dash Enterprise - https://dash.plotly.com/dash-bio/clustergram

上記のDash Enterpriseにあるサンプルを参考にして、2次元のクラスター分析を視覚化します。

[ソースコード]

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
import pandas as pd
import dash
import dash_bio as dashbio
from dash import dcc

app = dash.Dash(__name__)

df = pd.read_csv('https://git.io/clustergram_brain_cancer.csv').set_index('ID_REF')

columns = list(df.columns.values)
rows = list(df.index)

app.layout = dcc.Graph(figure=dashbio.Clustergram(
data=df.loc[rows].values,
column_labels=columns,
row_labels=rows,
color_threshold={
'row': 250,
'col': 700
},
hidden_labels='row',
height=700,
width=1000
)
)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

2次元のクラスター分析を可視化することができました。

ドラッグ操作により表示範囲を変えることができます。

Dash Bio⑪(VolcanoPlot)

VolcanoPlot

VolcanoPlotコンポーネントを使うと、遺伝子の発現比統計的有意性(p値)を可視化することができます。

遺伝子の発現を視覚化し、重要な変化をしている遺伝子を特定することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/volcanoplot

上記のDash Enterpriseにあるサンプルを参考にして、遺伝子の発現を視覚化します。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas as pd
import dash
import dash_bio as dashbio
from dash import dcc

app = dash.Dash(__name__)

df = pd.read_csv('https://git.io/volcano_data1.csv')

app.layout = dcc.Graph(
figure=dashbio.VolcanoPlot(dataframe=df)
)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

遺伝子の発現を可視化することができました。

ドラッグ操作により表示範囲や表示位置を変えたり、凡例のデータ名をクリックしデータの表示・非表示を切り替えたりすることができます。

Dash Bio⑩(OncoPrint)

OncoPrint

OncoPrintコンポーネントを使うと、ヒートマップによって複数のゲノム変化イベントを可視化することができます。

Dash Enterprise - https://dash.plotly.com/dash-bio/oncoprint

上記のDash Enterpriseにあるサンプルを参考にして、ゲノム変化イベントを表示してみます。

[ソースコード]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import json
import urllib.request as urlreq
import dash
import dash_bio as dashbio

app = dash.Dash(__name__)


data = urlreq.urlopen(
'https://git.io/oncoprint_dataset3.json'
).read().decode('utf-8')

data = json.loads(data)

app.layout = dashbio.OncoPrint(data=data)

if __name__ == '__main__':
app.run_server(debug=True)

[ブラウザで表示]

ゲノム変化イベントを表示することができました。

ドラッグ操作により表示範囲や表示位置を変えたり、凡例のデータ名をクリックすることによりデータの表示・非表示を切り替えたりすることができます。