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

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

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


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

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

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

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

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

最后 做成一个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')

下图为效果展示:

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

你可能感兴趣的:(提取修改scanpy源码,实现单细胞横向堆叠小提琴图)