复杂生物数据的Python创新可视化工具Marsilea正式发表在Genome Biology啦!
复杂生物数据的Python创新可视化工具Marsilea正式发表在Genome Biology啦!
上次我们介绍了谁说Python不擅长绘图,Marsilea带给Python的生物数据可视化革命!阅读量马上就破万,充分说明了Python编程语言体系里面的可视化确实是急缺变革性产品。目前的大绘图模块,Matplotlib,Seaborn,Plotnine 掌握好了之后就可以搭配我们今天继续推荐的复杂生物数据的Python创新可视化工具Marsilea。
作者:郑易民 Yimin Zheng,郑志航 Zhihang Zheng,André F. Rendeiro(通讯),张仲荣Edwin Cheung(通讯)
单位:
- 澳门大学健康科学学院:郑易民,张仲荣
- 奥地利国家分子生物学研究中心CeMM:郑易民,André F. Rendeiro
- 香港科技大学(广州):郑志航
期刊名称:Genome Biology
链接:.1186/s1059-024-0469-
GitHub链接:
Marsilea简单概念动图:
随着数据集规模和复杂性的指数级增长,科学研究和数据分析领域对数据可视化工具提出了更高的要求。然而,传统的数据可视化工具在处理多特征、多维度数据时往往面临显著挑战,难以直观展示数据之间复杂的交互关系或揭示隐藏的模式。这些工具通常局限于单一维度或特定领域,无法全面支持科学研究中多样化的需求,导致研究人员不得不借助多种工具完成数据展示,既耗时又容易产生割裂的体验。
为了解决这一痛点,澳门大学郑仲荣研究团队与奥地利CeMM的André F. Rendeiro团队创新性地提出了跨布局可视化(Cross-Layout Visualization)这一全新范式,旨在通过将多个图表整合于统一框架中,提供更直观、灵活的复杂数据展示方法。基于这一范式,团队开发了名为Marsilea的 Python 可视化库,专注于帮助研究人员高效生成具有高度定制化和可扩展性的复杂可视化图表。本文将对这一创新范式及其广泛应用进行详细解读。
Cross layout概念图
figure 1
Marsilea 的设计理念与功能亮点:
1.模块化与多样性
Marsilea 的设计注重模块化,允许用户根据需求逐步添加绘图组件。它内置了多种图表类型,包括四种变体的热图、折线图、柱状图、小提琴图、弧形图、文本标签和序列标志等,满足多种场景需求。除此之外,用户还可以根据自己需求轻松集成新的自定义绘图类型,极大地拓展了工具的适用范围。
2.广泛的数据兼容性
支持多种输入格式,从基本的 Python 列表到 umPy 数组和 Pandas 数据框,轻松融入现有数据分析流程。
.双模式界面
Marsilea 提供面向编程用户的面向对象 API,同时也为非程序员提供了无代码的 Web 界面,使得不同得用户体都能方便使用。
- 高效代码和用户友好性
与之前的传统可视化工具相比,Marsilea 显著减少了代码量。例如,在对比同样的可视化任务时,Marsilea 所需的代码量只有 Matplotlib 的一半,同时提供了更高的定制性和直观性。
以下是使用Marsilea包进行不同类型数据可视化的例子(可参考:.html )里面的每个案例都自带测试数据和代码,让你无缝连接掌握具体可视化用法:
复杂生物数据的高效可视化
例子1:单细胞 RA 表达数据
研究团队使用单细胞 RA 表达数据集(PBMCK)生成复杂热图,展示了不同细胞类型的标记基因(marker gene),并分层显示细胞系谱信息。整个绘图过程仅需 12 行代码,且支持快速调整绘图尺寸、布局间距、绘图顺序等。Marsilea还支持与Scanpy联合使用,详情参考:.html
plot pbmck
配套代码是:
代码语言:javascript代码运行次数:0运行复制import matplotlib as mpl
import matplotlib.pyplot as plt
from import ormalize
import marsilea as ma
import marsilea.plotter as mp
from sklearn.preprocessing import normalize
pbmck = ma.load_data("pbmck")
exp = pbmck["exp"]
pct_cells = pbmck["pct_cells"]
count = pbmck["count"]
matrix = normalize(_numpy(), axis=0)
....
....
mark_high = mp.MarkerMesh(matrix > 0.7, color="#DB4D6D", label="High")
cell_count = mp.umbers(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()
# Group plots together
h = ma.Heatmap(
matrix, cmap="Greens", label="ormalized\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.C(["Lymphoid", "Myeloid"], ["#A6B8", "#B481BB"]), pad=0.05)
h.add_dendrogram("left", colors=["#A6B8", "#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
图片链接:.png
集合交集图:重现Upset可视化。
plot upset
突变-表达联合图(oncoprint):重现cBioPortal可视化。
plot oncoprint
社会网络图:展示角关系网络(如《悲惨世界》)。
plot arc diagram
此外还有创新数据展示
例如,通过42种食用油的脂肪含量数据,研究团队创建了具有层次聚类的堆叠条形图,展示健康和不健康成分(如 Omega 和反式脂肪)的分布,并分组显示适合不同烹饪方式的油类。
plot oil well
和盲友好设计
例如在鼠胚胎空间组学数据中,我们通过在细胞图的两侧添加密度图,提升了细胞类型定位的清晰度,同时改进了对盲用户的支持。
Mouse Embryo E12.5
Marsilea 所支持的跨布局可视化不仅在生物学领域展示了强大的应用潜力,还可广泛应用于其他科学研究领域。其灵活性和可扩展性,使研究人员能够轻松创建个性化的可视化,清晰直观地展示特征间的交互关系。
如果你没有Python编程基础
作者贴心的构建了一个网页工具给大家,只需要按照固定的格式上传好自己的数据,然后就可以零代码可视化:
Marsilea 的在线界面已上线,支持用户零代码创建复杂可视化:
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 11 条评论) |
本站网友 赤天 | 4分钟前 发表 |
plot sc multiomics扩展传统领域的专业绘图重现其它专业工具的绘图能力 | |
本站网友 烫发后几天可以洗头 | 4分钟前 发表 |
清晰直观地展示特征间的交互关系 | |
本站网友 深圳医院在线咨询 | 13分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除可视化数据python数据可视化工具 | |
本站网友 宏源证券交易软件 | 14分钟前 发表 |
height=5.5 ) h.add_layer(cells_proportion) h.add_layer(mark_high) h.add_right(cell_count | |
本站网友 拉卡拉官方网站 | 7分钟前 发表 |
旨在通过将多个图表整合于统一框架中 | |
本站网友 葛粉的功效 | 24分钟前 发表 |
支持用户零代码创建复杂可视化:本文参与 腾讯云自媒体同步曝光计划 | |
本站网友 长沙白癜风 | 14分钟前 发表 |
.双模式界面Marsilea 提供面向编程用户的面向对象 API | |
本站网友 恒大华城天地苑 | 10分钟前 发表 |
colors=["#A6B8" | |
本站网友 宜宾装饰公司 | 30分钟前 发表 |
axis=0) .... .... mark_high = mp.MarkerMesh(matrix > 0.7 | |
本站网友 cleo合集 | 20分钟前 发表 |
无法全面支持科学研究中多样化的需求 |