推荐一个牛逼的生物信息 Python 库 - Dash Bio

阅读量:     Authors: 阳哥 PYTHONVISUALIZATION
Plotly

Dash Bio 是一个免费的开源 Python 库,用于生物信息学和药物开发应用。

Dash Bio 是一个免费的开源 Python 库,用于生物信息学和药物开发应用。

要开始使用 Dash Bio,请使用 pip install dash_bio 安装,然后转到 Dash Bio 的文档: http://dash.plot.ly/dash-bio

如果您是 Dash 的新手,您可能需要从 Dash 的入门指南开始: https://dash.plot.ly/getting-started

自发布以来,Plotly 用于 Python 的开源应用程序构建软件 Dash 在生物信息学家和药物开发人员中一直在稳步上升。 交互式 Web 图形、Python 创作和易用性的结合使 Dash 成为生物信息学家工具箱的自然之选。

例如,麻省理工大学的吉福德实验室 (Gifford Lab)已经发布了一个完全用 Dash 编写的CRISPR 预测工具。 麻省理工大学的团队在 Nature 中详细介绍了他们的方法,并免费提供在线的 Dash 应用程序和 Python 代码。

image01

图片来源: theinDelphi CRISPR prediction app

同样,南卡罗来纳医科大学的 Hammer 实验室正在开发一种带有 Dash 的开源细胞显微镜工具,并在 bioRxiv 上发表了他们的方法:

image02

去年夏天,Plotly 与加拿大研究机构 Canadian Research Chair Aïda Ouangraou 合作,利用 Dash 开发新的基因组数据可视化开源工具。 该研究尚未发布,但您可以在该机构网站上查看新闻。

今年,Plotly 正在利用 Dash Bio 重建其对生命科学的承诺 - Dash Bio 是一个用于在Python 中构建生物信息学和药物开发应用程序的开源工具包。

许多 Dash Bio 组件都建立在 JavaScript 库之上,这些库已经在全栈、生物信息学应用程序开发人员中流行。 我们重新设计了这些 JavaScript 小部件,以便 Python 开发人员现在可以访问它们。 换句话说,科学计算的 Python 开发人员现在可以将这些小部件工作,而无需了解 JavaScript 。 所有你需要知道的是 Python 和 Dash 。

生命科学软件的许多重量级工具都是基于 Java 的桌面程序 - PyMol 用于生物制剂开发,ImageJ 用于显微镜图像分析,IGV 用于基因组数据查看是一些例子。 使用 Dash 可以为 Web 编写未来版本的应用程序,完全使用 Python ,在移动设备上工作,并根据特定的研究目标进行定制。 由于 Dash 是开源的,因此整个软件应用程序的代码可以以同行评审的方式自由分发和发布。 CRISPR、NGS 和生物制剂在生命科学领域引发了新的创新和商业化浪潮– Dash 是基于 Python 的分析库,可以跟上。

以下是 12 个 Dash 应用程序,这些应用程序显示了这种基于 Web、敏捷和交互式的生物信息学和药物开发分析方法。 有了 Dash Bio,我们希望尽可能扩大可能性。

1. 探索 3d 状态下的小分子

这个 Dash 应用程序从磁盘、数据库或 Python 中的 API 读取 PDB(“蛋白质数据库”)文件,然后在 Dash 中可视化 3d 结构。 当您单击原子,旋转分子或更改结构时,Dash 会触发 Python 回调函数。 您还可以突出显示单个原子(如蛋白质的活性位点)。

  • 查看 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

image03

用 Dash 3d 分子组分可视化的 DNA 螺旋

2. 分析显微镜图像中的细胞

这个 Dash 应用程序是由 “scikit-image” 背后的主要开发人员之一 Emma Gouillart 制作的。 将鼠标悬停在图像中的白细胞上以突出显示相邻表格中的细胞属性。 您还可以使用该表来过滤具有特定属性的单元格(例如,面积小于 1500μm² 的单元格)。 你需要安装Dash Canvas https://dash.plot.ly/canvas 来运行这个应用程序。

  • 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/

image04

光学显微镜下的单核细胞 - 用Dash Canvas进行交互式探索。

3. 进行药代动力学分析

此 Dash 应用程序旨在允许进行药代动力学研究的人员输入数据(手动或通过复制粘贴)。 然后显示浓度 - 时间曲线以及用 Python 计算的各种参数表。

  • 程序地址:https://dash-bio.plotly.host/dash-pk-calc/
  • Python 代码地址:https://github.com/plotly/dash-sample-apps/blob/master/apps/dash-pk-calc/app.py

image05

使用自定义的Dash应用程序简化了pk分析

4. 可视化FASTA数据

有许多非常好的、交互式的多序列比对(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 在浏览器中实现超快的交互式性能。 由于 Dash MSA Viewer 是 Dash 组件,因此您只需要知道 Python 即可使用它。 下面的 Dash 应用程序从 Python 中读取 FASTA 文件中的序列数据,然后使用 Dash MSA 查看器绘制数据。

  • Dash 应用程序:https://dash-bio.plotly.host/dash-alignment-viewer/
  • Python 代码: https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_alignment_viewer.py

image06

使用 Dash MSA Viewer 以交互方式可视化 FASTA 数据

5. 突出基因组相似性

Circos 图通常用于比较基因组学。 在下面的 Dash 应用程序中,21 个染色体以圆圈绘制,并且它们的基因组区域之间的关系与线或带相关联。 根据 circos.ca [http://circos.ca/guide/genomic/img/circos-conservation.png],可以定义这些关系:

[基因组]位置之间的关系可以反映任何类型的对应关系。 例如,它可以根据相似性(序列或蛋白质)或类别(功能或结构)来定义

由于 Dash Circos 是一个 Dash 组件,它会在 Web 浏览器中显示,而您只需要知道 Python 即可使用它构建应用程序。

  • Dash 程序地址:https://dash-bio.plotly.host/dash-circos/
  • Python 代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_circos.py

image07

使用 Dash Circos 突出基因组相似性

6. 可视化微阵列结果

集群图是具有树形图的热图,其可视化分层数据聚类。 它们通常与微阵列数据一起使用。 Dash Clustergram 响应单击、悬停和缩放事件。 使用 Dash Clustergram 创建应用程序,你只需要了解 Python 即可。

  • Dash程序:https://dash-bio.plotly.host/dash-clustergram/
  • Python 代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_clustergram.py

image08

使用 Dash Clustergram 可视化微阵列结果

7. 搜索和选择序列

Dash 序列查看器简化了序列搜索和选择的UI。 该组件的核心是瑞士生物信息学研究所最初开发的 JavaScript 库。 我们为 Dash 重新设计了它,以便它可以在 Python 中轻松使用。

  • Dash应用程序:https://dash-bio.plotly.host/dash-sequence-viewer/
  • Python 代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_sequence_viewer.py

image09

使用 Dash Sequence Viewer 搜索和选择生物序列

8. 3d 分子的环境遮挡

这个 3d 分子查看器使用 WebGL 和 环境遮挡来提供更好的深度感知。 最初的 JavaScript库 - Speck- 由 Rye Terrell 开发。 我们为 Dash 重新设计了这个库,使构建分析应用程序的 Python 用户可以访问它。

  • 应用程序:https://dash-bio.plotly.host/dash-speck/
  • 代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_speck.py

image10

Dash Speck 显示的比较优美的交互式 3D 分子

9. 使用 Dash Ideogram 可视化染色体

Dash Ideogram 的核心是 Broad Institute 开发的 JavaScript 库。 我们将它重新设计为 Dash 组件,以便科学计算的 Python 开发人员可以轻松访问它。

  • 应用程序:https://dash-bio.plotly.host/dash-ideogram/
  • 代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_ideogram.py

image11

在 Dash 应用程序中嵌入交互式染色体可视化

10. 可视化基因突变

交互式针线图现在可以在 Python 中轻松组合并嵌入到 Dash 应用程序中。 这个 Dash 组件的设计灵感来自 Barcelona Biomedical Genomics Lab 的 JavaScript 库 “muts-needle-plot” 。

  • 应用程序:https://dash-bio.plotly.host/dash-needle-plot/
  • Python代码:https://github.com/plotly/dash-bio/blob/master/tests/dashbio_demos/app_needle_plot.py

image12

11. 测量和注释医学图像

成像和图像分析是生命科学研究的基础。 Dash Canvas 允许您以交互方式注释医学图像,并根据用户与图像的交互运行 Python 程序。 此 Dash 应用程序显示如何使用 Dash Canvas 和 Python 计算 X射线 图像上的距离。

  • 应用程序: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/

image13

使用 Dash Canvas 在医学图像上注释,保存和运行 Python 程序。

12. 构建系统发育树和网络图

BioJS 上最受欢迎的 JavaScript 库是 Cytoscape,一个高性能网络图库。 去年, Plotly 与 Cytoscape 作者密切合作,为 Dash 和 Python 用户提供了这个库。 与本文中的所有 Dash 组件一样, Dash Cytoscape 是免费的开源软件。

  • Dash Cytoscape 发布:https://medium.com/@plotlygraphs/introducing-dash-cytoscape-ce96cac824e4
  • Dash Cytoscape 文档:https://dash.plot.ly/cytoscape

image14

使用 Dash Cytoscape 构建交互式网络图和系统发育树

Final

最后,如果你对上述内容有兴趣,可以去访问下述 Github 的内容:

翻译: Lemonbit

译文出品: Python数据之道

来源: Plotly


对我的文章感兴趣的朋友,可以关注我的微信公众号「Python数据之道」(ID:PyDataLab),接收我的更新通知。

« Previous Next »