sc.pl.umap 画feature plot

今天有时间尝试测试了这个scanpy的feature plot,其实很简单,就是使用
sc.pl.umap(adata,color="gene name"), 但是这个地方就有一个问题,这个画出来的值是原始的基因值还是scale之后的,这个我得搞清楚

首先看使用例子,参考博客
https://www.jianshu.com/p/9c14c23755af

import scanpy as sc
import pandas as pd
from matplotlib.pyplot import rc_context
import matplotlib.pyplot as pl
sc.set_figure_params(dpi=1000, color_map = 'viridis_r')
sc.settings.verbosity = 1
sc.logging.print_header()

## 加载数据
pbmc = sc.datasets.pbmc68k_reduced()
# inspect pbmc contents
pbmc

sc.pl.umap 画feature plot_第1张图片

# rc_context is used for the figure size, in this case 4x4
with rc_context({'figure.figsize': (4, 4)}):
    sc.pl.umap(pbmc, color='CD79A')

结果如下
sc.pl.umap 画feature plot_第2张图片
其实从这个图上大致能猜出来,估计是原始的count值,
从下面的图就可以看出


所以猜想并没有问题,下面我还查了scanpy的api,

注意这个参数use_raw=None, 也就是说默认就是adata.raw

顺便验证一下

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

ind = (list(pbmc.var_names =="CD79A")).index(True)
CD79A_raw_exp = pbmc.raw.X.toarray()[:,ind]
import pandas as pd 
df_umap = pd.DataFrame(pbmc.obsm["X_umap"].copy(),columns =["umap_1","umap_2"])

df_umap["exp"] = CD79A_raw_exp 


cmap = sns.cubehelix_palette(as_cmap=True)

f, ax = plt.subplots()
points = ax.scatter(df_umap["umap_1"].values, df_umap["umap_2"].values, c=df_umap["exp"].values, s=20, cmap=cmap)
f.colorbar(points)

sc.pl.umap 画feature plot_第3张图片
这个图和直接使用sc.tl.umap图其实是一样的,嘿嘿

那么再继续画,如果我不想画原始的raw.X的值,我想画adata.X的值应该如何呢,

其实也很简单

sc.pl.umap(pbmc,use_raw=False, color='CD79A')

结果如下
sc.pl.umap 画feature plot_第4张图片
注意这个最大值和最小值的变化
sc.pl.umap 画feature plot_第5张图片
刚好和这个值是对应上的,嘿嘿嘿,这样就清楚了,以后feature plot应该怎么画了

你可能感兴趣的:(python)