首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >复杂生物数据的Python创新可视化工具Marsilea正式发表在Genome Biology啦!

复杂生物数据的Python创新可视化工具Marsilea正式发表在Genome Biology啦!

作者头像
生信技能树
发布2025-01-09 18:44:01
发布2025-01-09 18:44:01
24200
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

上次我们介绍了谁说Python不擅长绘图,Marsilea带给Python的生物数据可视化革命!阅读量马上就破万,充分说明了Python编程语言体系里面的可视化确实是急缺变革性产品。目前的3大绘图模块,Matplotlib,Seaborn,Plotnine 掌握好了之后就可以搭配我们今天继续推荐的复杂生物数据的Python创新可视化工具Marsilea。

作者:郑易民 Yimin Zheng,郑志航 Zhihang Zheng,André F. Rendeiro(通讯),张仲荣Edwin Cheung(通讯)

单位:

  1. 澳门大学健康科学学院:郑易民,张仲荣
  2. 奥地利国家分子生物学研究中心CeMM:郑易民,André F. Rendeiro
  3. 香港科技大学(广州):郑志航

期刊名称:Genome Biology

链接:https://genomebiology.biomedcentral.com/articles/10.1186/s13059-024-03469-3

GitHub链接:https://github.com/Marsilea-viz/marsilea

Marsilea简单概念动图:

随着数据集规模和复杂性的指数级增长,科学研究和数据分析领域对数据可视化工具提出了更高的要求。然而,传统的数据可视化工具在处理多特征、多维度数据时往往面临显著挑战,难以直观展示数据之间复杂的交互关系或揭示隐藏的模式。这些工具通常局限于单一维度或特定领域,无法全面支持科学研究中多样化的需求,导致研究人员不得不借助多种工具完成数据展示,既耗时又容易产生割裂的体验。

为了解决这一痛点,澳门大学郑仲荣研究团队与奥地利CeMM的André F. Rendeiro团队创新性地提出了跨布局可视化(Cross-Layout Visualization)这一全新范式,旨在通过将多个图表整合于统一框架中,提供更直观、灵活的复杂数据展示方法。基于这一范式,团队开发了名为Marsilea的 Python 可视化库,专注于帮助研究人员高效生成具有高度定制化和可扩展性的复杂可视化图表。本文将对这一创新范式及其广泛应用进行详细解读。

Cross layout概念图

figure 1

Marsilea 的设计理念与功能亮点:

1.模块化与多样性

Marsilea 的设计注重模块化,允许用户根据需求逐步添加绘图组件。它内置了多种图表类型,包括四种变体的热图、折线图、柱状图、小提琴图、弧形图、文本标签和序列标志等,满足多种场景需求。除此之外,用户还可以根据自己需求轻松集成新的自定义绘图类型,极大地拓展了工具的适用范围。

2.广泛的数据兼容性

支持多种输入格式,从基本的 Python 列表到 NumPy 数组和 Pandas 数据框,轻松融入现有数据分析流程。

3.双模式界面

Marsilea 提供面向编程用户的面向对象 API,同时也为非程序员提供了无代码的 Web 界面,使得不同得用户群体都能方便使用。

  1. 高效代码和用户友好性

与之前的传统可视化工具相比,Marsilea 显著减少了代码量。例如,在对比同样的可视化任务时,Marsilea 所需的代码量只有 Matplotlib 的一半,同时提供了更高的定制性和直观性。

以下是使用Marsilea包进行不同类型数据可视化的例子(可参考:https://marsilea.readthedocs.io/en/stable/examples/Gallery/index.html )里面的每个案例都自带测试数据和代码,让你无缝连接掌握具体可视化用法:

复杂生物数据的高效可视化

例子1:单细胞 RNA 表达数据

研究团队使用单细胞 RNA 表达数据集(PBMC3K)生成复杂热图,展示了不同细胞类型的标记基因(marker gene),并分层显示细胞系谱信息。整个绘图过程仅需 12 行代码,且支持快速调整绘图尺寸、布局间距、绘图顺序等。Marsilea还支持与Scanpy联合使用,详情参考:https://scanpy.readthedocs.io/en/latest/how-to/plotting-with-marsilea.html

plot pbmc3k

配套代码是:

代码语言:javascript
代码运行次数:0
运行
复制
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
import marsilea as ma
import marsilea.plotter as mp

from sklearn.preprocessing import normalize


pbmc3k = ma.load_data("pbmc3k")
exp = pbmc3k["exp"]
pct_cells = pbmc3k["pct_cells"]
count = pbmc3k["count"]

matrix = normalize(exp.to_numpy(), axis=0)
 ....
 ....
mark_high = mp.MarkerMesh(matrix > 0.7, color="#DB4D6D", label="High")
cell_count = mp.Numbers(count["Value"], color="#fac858", label="Cell Count")
cell_exp = mp.Violin(
    exp, label="Expression", linewidth=0, color="#ee6666", density_norm="count"
)
cell_types = mp.Labels(cell_names, align="center")
gene_names = mp.Labels(exp.columns)

# Group plots together
h = ma.Heatmap(
    matrix, cmap="Greens", label="Normalized\nExpression", width=4.5, height=5.5
)
h.add_layer(cells_proportion)
h.add_layer(mark_high)
h.add_right(cell_count, pad=0.1, size=0.7)
h.add_top(cell_exp, pad=0.1, size=0.75, name="exp")
h.add_left(cell_types)
h.add_bottom(gene_names)

h.group_rows(cell_cat, order=["Lymphoid", "Myeloid"])
h.add_left(mp.Chunk(["Lymphoid", "Myeloid"], ["#33A6B8", "#B481BB"]), pad=0.05)
h.add_dendrogram("left", colors=["#33A6B8", "#B481BB"])
h.add_dendrogram("bottom")
h.add_legends("right", align_stacks="center", align_legends="top", pad=0.2)
h.set_margin(0.2)
h.render()

# h.get_ax("exp").set_yscale("symlog")

例子2:单细胞多组学数据分析

使用来自 COVID-19 患者的多组学数据(包含蛋白组学和转录组学信息),研究团队创建了由两个跨布局拼接而成的热图,对两种组学特征进行并列比较,并叠加细胞元簇、细胞丰度和基因表达等信息。

plot sc multiomics

扩展传统领域的专业绘图

重现其它专业工具的绘图能力,如:

序列基序(sequence motifs):重现 ggmsa 工具的可视化。

plot seqalign

图片链接:https://marsilea.readthedocs.io/en/stable/_images/sphx_glr_plot_seqalign_001_2_00x.png

集合交集图:重现Upset可视化。

plot upset

突变-表达联合图(oncoprint):重现cBioPortal可视化。

plot oncoprint

社会网络图:展示角色关系网络(如《悲惨世界》)。

plot arc diagram

此外还有创新数据展示

例如,通过42种食用油的脂肪含量数据,研究团队创建了具有层次聚类的堆叠条形图,展示健康和不健康成分(如 Omega 3 和反式脂肪)的分布,并分组显示适合不同烹饪方式的油类。

plot oil well

和色盲友好设计

例如在鼠胚胎空间组学数据中,我们通过在细胞图的两侧添加密度图,提升了细胞类型定位的清晰度,同时改进了对色盲用户的支持。

Mouse Embryo E12.5

Marsilea 所支持的跨布局可视化不仅在生物学领域展示了强大的应用潜力,还可广泛应用于其他科学研究领域。其灵活性和可扩展性,使研究人员能够轻松创建个性化的可视化,清晰直观地展示特征间的交互关系。

如果你没有Python编程基础

作者贴心的构建了一个网页工具给大家,只需要按照固定的格式上传好自己的数据,然后就可以零代码可视化:

Marsilea 的在线界面已上线,支持用户零代码创建复杂可视化:http://marsilea.rendeiro.group

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Marsilea 的设计理念与功能亮点:
  • 复杂生物数据的高效可视化
  • 扩展传统领域的专业绘图
  • 此外还有创新数据展示
  • 和色盲友好设计
  • 如果你没有Python编程基础
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档