推薦一個牛逼的生物信息 Python 庫 - Dash Bio

翻譯 | Lemonbit
來源 |?Plotly
譯文出品 | Python數(shù)據(jù)之道
推薦一個牛逼的生物信息 Python 庫 -?
Dash Bio
Dash Bio 是一個免費的開源 Python 庫,用于生物信息學(xué)和藥物開發(fā)應(yīng)用。
要開始使用 Dash Bio,請使用?pip install dash_bio?安裝,然后轉(zhuǎn)到 Dash Bio 的文檔: http://dash.plot.ly/dash-bio
如果您是 Dash 的新手,您可能需要從 Dash 的入門指南開始:https://dash.plot.ly/getting-started
自發(fā)布以來,Plotly 用于 Python 的開源應(yīng)用程序構(gòu)建軟件 Dash 在生物信息學(xué)家和藥物開發(fā)人員中一直在穩(wěn)步上升。交互式 Web 圖形、Python 創(chuàng)作和易用性的結(jié)合使 Dash 成為生物信息學(xué)家工具箱的自然之選。
例如,麻省理工大學(xué)的吉福德實驗室 (Gifford Lab)已經(jīng)發(fā)布了一個完全用 Dash 編寫的CRISPR 預(yù)測工具。麻省理工大學(xué)的團隊在 Nature 中詳細介紹了他們的方法,并免費提供在線的 Dash 應(yīng)用程序和 Python 代碼 (https://indelphi.giffordlab.mit.edu/single)。

圖片來源:theinDelphi CRISPR prediction app
同樣,南卡羅來納醫(yī)科大學(xué)的 Hammer 實驗室正在開發(fā)一種帶有 Dash 的開源細胞顯微鏡工具,并在 bioRxiv 上發(fā)表了他們的方法 (https://www.biorxiv.org/content/10.1101/746164v1.full):

去年夏天,Plotly 與加拿大研究機構(gòu) Canadian Research Chair A?da Ouangraou 合作,利用 Dash 開發(fā)新的基因組數(shù)據(jù)可視化開源工具。該研究尚未發(fā)布,但您可以在該機構(gòu)網(wǎng)站上查看新聞。
今年,Plotly 正在利用 Dash Bio 重建其對生命科學(xué)的承諾 - Dash Bio 是一個用于在Python 中構(gòu)建生物信息學(xué)和藥物開發(fā)應(yīng)用程序的開源工具包。
許多 Dash Bio 組件都建立在 JavaScript 庫之上,這些庫已經(jīng)在全棧、生物信息學(xué)應(yīng)用程序開發(fā)人員中流行。我們重新設(shè)計了這些 JavaScript 小部件,以便 Python 開發(fā)人員現(xiàn)在可以訪問它們。換句話說,科學(xué)計算的 Python 開發(fā)人員現(xiàn)在可以將這些小部件工作,而無需了解 JavaScript 。所有你需要知道的是 Python 和 Dash 。
生命科學(xué)軟件的許多重量級工具都是基于 Java 的桌面程序 -?PyMol?用于生物制劑開發(fā),?ImageJ?用于顯微鏡圖像分析,?IGV?用于基因組數(shù)據(jù)查看是一些例子。使用 Dash 可以為 Web 編寫未來版本的應(yīng)用程序,完全使用 Python ,在移動設(shè)備上工作,并根據(jù)特定的研究目標進行定制。由于 Dash 是開源的,因此整個軟件應(yīng)用程序的代碼可以以同行評審的方式自由分發(fā)和發(fā)布。CRISPR、NGS 和生物制劑在生命科學(xué)領(lǐng)域引發(fā)了新的創(chuàng)新和商業(yè)化浪潮-- Dash 是基于 Python 的分析庫,可以跟上。
以下是 12 個 Dash 應(yīng)用程序,這些應(yīng)用程序顯示了這種基于 Web、敏捷和交互式的生物信息學(xué)和藥物開發(fā)分析方法。有了 Dash Bio,我們希望盡可能擴大可能性。
1. 探索 3d 狀態(tài)下的小分子
這個 Dash 應(yīng)用程序從磁盤、數(shù)據(jù)庫或 Python 中的 API 讀取 PDB(“蛋白質(zhì)數(shù)據(jù)庫”)文件,然后在 Dash 中可視化 3d 結(jié)構(gòu)。當(dāng)您單擊原子,旋轉(zhuǎn)分子或更改結(jié)構(gòu)時,Dash 會觸發(fā) Python 回調(diào)函數(shù)。您還可以突出顯示單個原子(如蛋白質(zhì)的活性位點)。
查看 Dash app:
https://dash-bio.plotly.host/dash-molecule3d
查看 Dash app 的 Python 代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_molecule3d.py

用 Dash 3d 分子組分可視化的 DNA 螺旋
2. 分析顯微鏡圖像中的細胞
這個 Dash 應(yīng)用程序是由 “scikit-image” 背后的主要開發(fā)人員之一 Emma Gouillart 制作的。將鼠標懸停在圖像中的白細胞上以突出顯示相鄰表格中的細胞屬性。您還可以使用該表來過濾具有特定屬性的單元格(例如,面積小于 1500μm2 的單元格)。你需要安裝?Dash?Canvas?https://dash.plot.ly/canvas 來運行這個應(yīng)用程序。
Dash 程序地址:
https://dash-canvas.plotly.host/object-properties/
Python 代碼地址:
https://github.com/plotly/canvas-portal/blob/master/apps/object-properties/app.py
Dash Canvas 程序地址:
https://dash-canvas.plotly.host/Portal/

光學(xué)顯微鏡下的單核細胞 - 用Dash Canvas進行交互式探索。
3. 進行藥代動力學(xué)分析
此 Dash 應(yīng)用程序旨在允許進行藥代動力學(xué)研究的人員輸入數(shù)據(jù)(手動或通過復(fù)制粘貼)。然后顯示濃度 - 時間曲線以及用 Python 計算的各種參數(shù)表。
程序地址:
https://dash-bio.plotly.host/dash-pk-calc/
Python 代碼地址:
https://github.com/plotly/dash-sample-apps/blob/master/apps/dash-pk-calc/app.py

使用自定義的Dash應(yīng)用程序簡化了pk分析
4. 可視化FASTA數(shù)據(jù)
有許多非常好的、交互式的多序列比對(MSA)工具。我們從這 3 個中獲取靈感:
MATLAB 的?
seqalignviewer?https://www.mathworks.com/help/bioinfo/ref/seqalignviewer.html
Seb Wilzbach’s JavaScript MSA :
https://msa.biojs.net/
Jalview:
http://www.jalview.org/
對于 Dash MSA Viewer,我們使用 WebGL 在瀏覽器中實現(xiàn)超快的交互式性能。由于 Dash MSA Viewer 是 Dash 組件,因此您只需要知道 Python 即可使用它。下面的 Dash 應(yīng)用程序從 Python 中讀取 FASTA 文件中的序列數(shù)據(jù),然后使用 Dash MSA 查看器繪制數(shù)據(jù)。
Dash 應(yīng)用程序:
https://dash-bio.plotly.host/dash-alignment-viewer/
Python 代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_alignment_viewer.py

使用 Dash MSA Viewer 以交互方式可視化 FASTA 數(shù)據(jù)
5. 突出基因組相似性
Circos 圖通常用于比較基因組學(xué)。在下面的 Dash 應(yīng)用程序中,21 個染色體以圓圈繪制,并且它們的基因組區(qū)域之間的關(guān)系與線或帶相關(guān)聯(lián)。根據(jù)?circos.ca?[http://circos.ca/guide/genomic/img/circos-conservation.png],可以定義這些關(guān)系:
[基因組]位置之間的關(guān)系可以反映任何類型的對應(yīng)關(guān)系。例如,它可以根據(jù)相似性(序列或蛋白質(zhì))或類別(功能或結(jié)構(gòu))來定義
由于 Dash Circos 是一個 Dash 組件,它會在 Web 瀏覽器中顯示,而您只需要知道 Python 即可使用它構(gòu)建應(yīng)用程序。
Dash 程序地址:
https://dash-bio.plotly.host/dash-circos/
Python 代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_circos.py

使用 Dash Circos 突出基因組相似性
6. 可視化微陣列結(jié)果
集群圖是具有樹形圖的熱圖,其可視化分層數(shù)據(jù)聚類。它們通常與微陣列數(shù)據(jù)一起使用。Dash Clustergram 響應(yīng)單擊、懸停和縮放事件。使用 Dash Clustergram 創(chuàng)建應(yīng)用程序,你只需要了解 Python 即可。
Dash程序:
https://dash-bio.plotly.host/dash-clustergram/
Python 代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_clustergram.py

使用 Dash Clustergram 可視化微陣列結(jié)果
7. 搜索和選擇序列
Dash 序列查看器簡化了序列搜索和選擇的UI。該組件的核心是瑞士生物信息學(xué)研究所最初開發(fā)的 JavaScript 庫。我們?yōu)?Dash 重新設(shè)計了它,以便它可以在 Python 中輕松使用。
Dash應(yīng)用程序:
https://dash-bio.plotly.host/dash-sequence-viewer/
Python 代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/appsequence_viewer.py

使用 Dash Sequence Viewer 搜索和選擇生物序列
8. 3d 分子的環(huán)境遮擋
這個 3d 分子查看器使用 WebGL 和 環(huán)境遮擋來提供更好的深度感知。最初的 JavaScript庫 -?Speck- 由 Rye Terrell 開發(fā)。我們?yōu)?Dash 重新設(shè)計了這個庫,使構(gòu)建分析應(yīng)用程序的 Python 用戶可以訪問它。
應(yīng)用程序:
https://dash-bio.plotly.host/dash-speck/
代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_speck.py

Dash Speck 顯示的比較優(yōu)美的交互式 3D 分子
9. 使用 Dash Ideogram 可視化染色體
Dash Ideogram 的核心是 Broad Institute 開發(fā)的 JavaScript 庫。我們將它重新設(shè)計為 Dash 組件,以便科學(xué)計算的 Python 開發(fā)人員可以輕松訪問它。
應(yīng)用程序:
https://dash-bio.plotly.host/dash-ideogram/
代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_ideogram.py

在 Dash 應(yīng)用程序中嵌入交互式染色體可視化
10. 可視化基因突變
交互式針線圖現(xiàn)在可以在 Python 中輕松組合并嵌入到 Dash 應(yīng)用程序中。這個 Dash 組件的設(shè)計靈感來自 Barcelona Biomedical Genomics Lab 的 JavaScript 庫 “muts-needle-plot” 。
應(yīng)用程序:
https://dash-bio.plotly.host/dash-needle-plot/
Python代碼:
https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_needle_plot.py

11. 測量和注釋醫(yī)學(xué)圖像
成像和圖像分析是生命科學(xué)研究的基礎(chǔ)。Dash Canvas 允許您以交互方式注釋醫(yī)學(xué)圖像,并根據(jù)用戶與圖像的交互運行 Python 程序。此 Dash 應(yīng)用程序顯示如何使用 Dash Canvas 和 Python 計算 X射線 圖像上的距離。
應(yīng)用程序:
https://dash-canvas.plotly.host/measure-length/
Python 代碼:
https://github.com/plotly/canvas-portal/blob/master/apps/measure-length/app.py
Dash Canvas:
https://dash-canvas.plotly.host/Portal/

使用 Dash Canvas 在醫(yī)學(xué)圖像上注釋,保存和運行 Python 程序。
12. 構(gòu)建系統(tǒng)發(fā)育樹和網(wǎng)絡(luò)圖
BioJS 上最受歡迎的 JavaScript 庫是 Cytoscape,一個高性能網(wǎng)絡(luò)圖庫。去年, Plotly 與 Cytoscape 作者密切合作,為 Dash 和 Python 用戶提供了這個庫。與本文中的所有 Dash 組件一樣, Dash Cytoscape 是免費的開源軟件。
Dash Cytoscape 發(fā)布:
https://medium.com/@plotlygraphs/introducing-dash-cytoscape-ce96cac824e4
Dash Cytoscape 文檔:
https://dash.plot.ly/cytoscape

使用 Dash Cytoscape 構(gòu)建交互式網(wǎng)絡(luò)圖和系統(tǒng)發(fā)育樹
Final
最后,如果你對上述內(nèi)容有興趣,可以去訪問下述 Github 的內(nèi)容:
??https://github.com/plotly/dash-bio
??https://github.com/plotly/dash-canvas
文章來源:
https://medium.com/@plotlygraphs/announcing-dash-bio-ed8835d5da0c
如果你也需要構(gòu)建自己的平臺,歡迎與我們聯(lián)系,一些樣例見?這些數(shù)據(jù)庫很不錯,要不要看看?
專為生信的Python教程
如果你也需要構(gòu)建自己的平臺,歡迎與我們聯(lián)系,一些樣例見?這些數(shù)據(jù)庫很不錯,要不要看看?
