提取修改scanpy源码,实现单细胞横向堆叠小提琴图

作者:ahworld
链接生信工程师的自我修养
来源:微信公众号-seqyuan
著作权归作者所有,任何形式的转载都请联系作者。

scanpy中的单细胞堆叠小提琴图一般是纵向的,每一行代表一个亚群,每一列代表一个基因:


我们经常从单细胞文章里看到这种横向的小提琴图很美观,无论Seurat还是scanpy都没有办法直接实现

我打算自己实现它:先从scanpy源码中找到画堆叠小提琴图的函数stacked_violin,然后拷贝出来重构,命名为stacked_violin_t。


最后做成一个python包命名为scanyuan,上传到github和PYPI,可以用 pip install scanyuan安装这个包。

下面的代码:读入数据,并用scanyuan中的stacked_violin_t方法实现文章的横向堆叠小提琴图,

import scanpy as sc
import scanyuan as scy

# 此处示例为读取loom文件,也可以是其他scanpy支持的数据格式
adata = sc.read_loom("/Users/yuanzan/Desktop/tmp/sdata.loom", sparse=True, cleanup=False, X_name='spliced', obs_names='CellID', var_names='Gene', dtype='float32')
marker_genes = ['Stfa1', 'Ngp', 'Ccl5', 'Ccl4', 'BC100530', 'Gzma', 'Gata2', 'Cd74']

ax = scy.stacked_violin_t(adata, marker_genes, figsize=[8,4], groupby='ClusterName')

下图为效果展示:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容