Dash 是用于搭建响应式 Web 应用的 Python 开源库。Dash Bio 是面向生物信息学,且与 Dash 兼容的组件,它可以将生物信息学领域中常见的数据整合到 Dash 应用程序,以实现响应式的生物信息学数据可视化。

安装

pip install dash dash-bio

截止 2019 年 10 月,dash-bio 在 PyPI 的最新版本为 0.1.3,dash 的最新版本为 1.3.1。

>>> import dash,dash_bio
>>> print(dash.__version__)
1.3.1

>>> print(dash_bio.__version__)
0.1.4

Dash

Plotly 的 dash 库提供了一个声明性的 Python 接口,用于开发全栈式 Web 应用程序(“Dash apps")。除了主要的 dash 库之外,dash-html-componentsdash-core-components 包还构成了 Dash 应用程序的 building blocks。dash-html-components 提供了一个用于构建 Dash 应用程序布局的界面,该界面模仿了构建网站布局的过程;dash-core-components 是用于与 Dash 应用程序进行交互的一组常用工具(例如,下拉菜单,文本输入和滑块),并包括 dcc.Graph 组件,用于使用 plotly.py 制作交互式图形。

一个只包含了一个字符串页面的最小 Dash 应用可以使用以下代码生成。

import dash
import dash_html_components as html

app = dash.Dash()
app.layout = html.Div('Hello, world!')

# 只能 localhost 内部访问
app.run_server()                

# 开启外网访问
#app.run_server(host="0.0.0.0")    


运行上述代码后,将指定一个本地主机地址在控制台中。在浏览器中访问该地址会产生一个简单的结果包含文本
"Hello,world!
" 的网页 (见上图)。

dash-bio

Dash Bio 是一个用于在 Python 中构建生物信息学和药物开发应用程序的开源工具包。许多 Dash Bio 组件都建立在 JavaScript 库之上,这些库在全栈生物信息学应用程序开发人员中已经很流行。Plotly 团队对这些 JavaScript 小部件经过进行了重新设计,以便 Python 开发人员现在可以访问它们。换句话说,科学计算的 Python 开发人员现在可以将这些小部件投入使用而无需了解 JavaScript。您只需要了解 Python 和 Dash。

下面是以下是从 dash-bio 选取的 10个 Dash 可视化应用程序示例,这些应用程序显示了这种基于 Web 的敏捷和交互式的生物信息学和药物开发分析方法。

Clustergram

聚类图是热图-树状图的组合,通常在基因表达数据中使用。由树状图表示的分层聚类可用于识别具有相关表达水平的基因组。Dash Bio Clustergram 组件是基于 Python 的组件,它使用 plotly.py 生成图形。它以二维 numpy 浮点值数组作为输入。缺失数据的插入和层次聚类的计算都发生在组件本身内。达到或超过用户定义相似性阈值的聚类在相应的树状图中包含单个迹线,并且可以用注释突出显示。


Ideogram

ideogram 是基因组数据的示意图。染色体以链表示,特定基因的位置由染色体上的条带表示。Dash Bio Ideogram 组件建立在 ideogram.js 库之上,并包括注释,直方图和同源性等功能。可以对每个染色体的不同片段进行注释,并以条带的形式显示,并且可以通过使用同源性功能将一条染色体上的一个区域连接到另一条染色体上的一个区域来突出显示不同染色体之间的关系。


Manhattan Plot

曼哈顿图是全基因组关联研究中常用的图。它可以突出显示特定的核苷酸,当将其更改为其他核苷酸时,这些核苷酸与某些遗传条件有关。Dash Bio ManhattanPlot 组件是使用 plotly.js 构建的。输入数据采用 pandas 数据框的形式。图上的两条线(见下图)分别代表阈值水平和建议线。这些线的 y 值可由用户控制。


Needle Plot

针迹图是条形图,其中每个条形图的顶部都已替换为标记,并且从 x 轴到上述标记的线也被替换。它的主要用例是密集数据集的可视化,当用条形图表示时,看起来过于拥挤而无法有效地解释。在生物信息学中,针刺图可用于注释基因组上发生基因突变的位置(见下图)。Dash Bio NeedlePlot 组件是使用 plotly.js 构建的。它接收字典作为输入数据。可以使用不同的颜色和标记样式来区分不同类型的突变,并且可以在图上标出特定基因的域。


Volcano Plot

火山图是用于同时显示数据集的统计显着性和定义“效果大小”(例如倍数变化)的图。
当可视化代表重复数据的大量数据点时,这种类型的绘图非常有用。
它有助于识别同时具有统计意义和巨大影响的数据。
Dash Bio VolcanoPlot 件是使用 plotly.py 构建的。
它以 pandas 数据框作为输入数据。
用户可以定义代表效果大小阈值(正值和负值)和统计意义的阈值的线(见下图)。



Molecule 3D Viewer

Dash Bio Molecule3dViewer 组件建立在 molecule-3d-for-react 库之上。其目的是显示分子结构。这些类型的可视化可以显示蛋白质的形状,并深入了解它们与其他分子结合的方式。在交流生物分子过程的机理时,这会非常有用。Molecule3dViewer 接收字典作为输入数据,该字典指定分子中每个原子的布局和样式。它可以呈现各种样式的分子,例如带状图,并允许单击鼠标选择特定的原子或残基(见下图),这些特定的原子或残基可以在 Dash 程序中进行读取或写入。


Speck

这是一个使用 WebGL 和环境遮挡来提供更好的深度感知的 3d 分子环境遮挡查看器。Dash Bio Speck 组件是基于 WebGL 的 3D 渲染器,它基于
Speck 构建。它使用环境光遮挡和轮廓线等技术来提供分子结构的丰富视图(见下图)。Dash Bio Speck 组件以字典的形式接收输入数据,该字典包含每个原子的原子符号和空间位置(以 x,y 和 z 坐标表示)。与分子渲染有关的参数(例如原子大小,环境光吸收水平和轮廓)可以选择在另一个作为参数提供的字典中指定。


Alignment Chart

比对可视化图是用于查看多个序列比对的工具。图表中显示了核苷酸或氨基酸的多个相关序列(例如,来自不同生物的似乎具有相同的功能的氨基酸蛋白序列),以显示它们的相似性。Dash Bio AlignmentChart 组件构建在 react-alignment-viewer 之上。它以 FASTA 文件作为输入并进行比对计算。它可以可选地显示一个条形图,该条形图表示输入文件中定义的每个序列中特定氨基酸或核苷酸的保守性水平(见下图)。


OncoPrint

OncoPrint 图是一种热图,可帮助可视化多个基因组改变事件。Dash Bio OncoPrint 组件构建在 react-oncoprint 之上。组件的输入数据采用字典列表的形式,每个字典都定义一个样本,基因,改变和突变类型。


Sequence Viewer

Dash Bio SequenceViewer 组件是一个可用于基因组或蛋白质组序列注释的简单工具。它基于
react-sequence-viewer 库。该可视化图包括一个搜索功能,允许用户使用正则表达式搜索序列。另外,可以使用由起始位置、终止位置和颜色定义的选项,或可以编码一旦单击子序列即可显示的其他信息的覆盖范围来注释序列。选择和覆盖范围可在 Dash 应用程序中进行读取和写入,还可以通过鼠标悬停来选择和搜索结果。


总结

Dash Bio 组件有助于对生物信息学领域中收集和分析中常见的数据集类型进行可视化展示。它与 Plotly Dash 的声明性质保持一致,并允许用户创建可与其他 Dash 组件集成的交互响应式 Web 应用程序。

除此之外,在 Dash Bio 中还有一个与 dash-bio 一起开发的 dash-bio-utils 包。它包含了生物信息学分析中常用文件类型的解析器。通过这个包的解析器可以将一些常用生物信息学文件中编码的数据转换为与 Dash Bio 组件兼容的输入,如将文件从一些最著名的生物信息学数据库(GEO 表达数据,PDB 蛋白质分子结构数据等)转换为熟悉的 Python 数据类型,例如字典。当与 dash-bio 软件包结合使用时,这使生物信息学家可以快速,简洁地相互之间以及与其他科学界人士交流信息。

喜欢 R 语言的同学,也可以了解一下 dashR 这个包,它是 Dash 生态系统的 R 接口,可用于编写响应式的 Web 可视化应用程序。

本文章只简单介绍了 dash-bio 的一些常用案例,没有涉及 dash-bio-utilsdashR 包,有兴趣的童鞋可以去研究学习一下,也欢迎留言交流。

文章链接,请点击左下角 "阅读原文" 查看。

参考资料:

  • Plotly, Announcing Dash Bio, Medium

  • Dash by Plotly, Dash for R User Guide, Medium

  • bio-dash, Dash User Guide and Documentation - Dash by Plotly, dashr.plot.ly

——The  End——

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

基于 Dash Bio 的生物信息学数据可视化的更多相关文章

  1. 基于vue和echarts的数据可视化实现

    基于vue和echarts的数据可视化: https://github.com/MengFangui/awesome-vue.git

  2. Python数据可视化编程实战——导入数据

    1.从csv文件导入数据 原理:with语句打开文件并绑定到对象f.不必担心在操作完资源后去关闭数据文件,with的上下文管理器会帮助处理.然后,csv.reader()方法返回reader对象,通过 ...

  3. 使用 jupyter-notebook + python + matplotlib 进行数据可视化

    上次用 python 脚本中定期查询数据库,监视订单变化,将时间与处理完成订单的数量进行输入写入日志,虽然省掉了人为定时查看数据库并记录的操作,但是数据不进行分析只是数据,要让数据活起来! 为了方便看 ...

  4. 基于Processing的数据可视化

    虽然数据可视化领域有很多成熟.界面友好.功能强大的软件产品(例如Tableau.VIDI.NodeXL等),但是借助Processing我们可以基于Java语言框架进行丰富多元的可视化编程,熟悉了Pr ...

  5. 高速基于echarts的大数据可视化

    [Author]: kwu 高速基于echarts的大数据可视化,echarts纯粹的js实现的图表工具.高速开发的过程例如以下: 1.引入echarts的依赖js库 <script type= ...

  6. PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品,产品设计严格遵循国际数据挖掘标准CRISP-DM(跨行业数据挖掘过程标准),具备完备的数据准备、模型构建、模型评估、模型管理、海量数据处理和高纬数据可视化分析能力。

    http://www.meritdata.com.cn/article/90 PLUTO平台是由美林数据技术股份有限公司下属西安交大美林数据挖掘研究中心自主研发的一款基于云计算技术架构的数据挖掘产品, ...

  7. (数据科学学习手札78)基于geopandas的空间数据分析——基础可视化

    本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 通过前面的文章,我们已经对geopanda ...

  8. 基于 HTML5 WebGL 与 GIS 的智慧机场大数据可视化分析

    前言:大数据,人工智能,工业物联网,5G 已经或者正在潜移默化地改变着我们的生活.在信息技术快速发展的时代,谁能抓住数据的核心,利用有效的方法对数据做数据挖掘和数据分析,从数据中发现趋势,谁就能做到精 ...

  9. 基于 HTML5 WebGL 与 GIS 的智慧机场大数据可视化分析【转载】

    前言:大数据,人工智能,工业物联网,5G 已经或者正在潜移默化地改变着我们的生活.在信息技术快速发展的时代,谁能抓住数据的核心,利用有效的方法对数据做数据挖掘和数据分析,从数据中发现趋势,谁就能做到精 ...

  10. 基于World Wind的数据可视化插件

    基于开源数据可视化类库(MSChart.VTK.D3)实现的组件样例,并基于World Wind实现调用上述组件的功能插件. GitHub下载地址:https://github.com/hujiuli ...

随机推荐

  1. 修改Win+E映射

    !!!!!!此过程需要修改注册表,请谨慎操作 作用 修改后可以实现Win+E快捷打开任意程序 从原始资源管理器到其它应用 注册表路径: HKEY_CLASSES_ROOT\Folder\shell\o ...

  2. Linux中Python自动输入sudo 密码【管道 sudo参数 stdin&stdout】

    一.背景和需求 背景: 由于docker服务进程都是以root帐号的身份运行的,所以用docker跑abpred出来的文件所有者都是root, 而我作为一般用户,操作这个文件不够权限,运行代码时需要s ...

  3. 记录关于Chromium系浏览器密码安全问题的一些思考

    首先就是在此之前就看到有相关报道讲到Chrome等浏览器密码都在本地明文存储,而且权限要求很低,任何程序都可以随意读取,这方面的安全问题暂且不表. 今天使用Edge时候发现浏览器储存的密码,在我已经设 ...

  4. 每日复习关于static 饿汉式 懒汉式,单例设计模式

    1.1.static 的使用 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过 new 关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部 ...

  5. Charlotte Holmes series

    Charlotte Holmes Novel The charactors are adorable. Jamie and Charlotte are a very cute couple. More ...

  6. 服务器数据监控监控-Zabbix

    Zabbix下载 Zabbix Sources https://www.zabbix.com/download Zabbix安装介绍 Server端 1.安装开发软件包 yum -y groupins ...

  7. MySQL(二)字符集、比较规则与规范

    1 字符集的相关操作 MySQL8.0之前的版本,默认字符集为latin1,8.0及之后默认为utfmb3.utfmb4,如果以前的版本忘记修改默认的密码,就会出现乱码的问题. 1.1 修改步骤 修改 ...

  8. django restframework的简单使用

    django restframework的简单使用 1.快速上手 配置: (pip install djangorestframework==3.12.4) # settings.py INSTALL ...

  9. 100026. 【NOIP2017提高A组模拟7.7】图

    题目大意: 给你n个点,每个点只有一条出路,请问每个点走了k步之后走过的权值和. 权值最小的边的权值. 考场想法: 考试时就先打了个暴力,然后发现一定会形成一个环,所以就想到了可以判环,然后 按照规律 ...

  10. RCE-Tricks

    这篇文章介绍RCE的一些tricks 0x01 无回显的RCE 在ctf中,有时会遇到无回显rce,就是说虽然可以进行命令执行,但却看不到命令执行的结果,也不知道命令是否被执行,借着这次总结rce的机 ...