作者: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')
下图为效果展示:

网友评论