【视频-python一键函数】:热图标注特定基因及不同颜色设置展示marker基因

虽然scanpy有展示marker基因的热图函数(scanpy单细胞转录组python教程(五):最详尽的基础可视化解析),但是有很明显的缺陷,就是不能label特定基因。为了解决这个问题,我们写了一个通用函数,input是dataframe,不仅可以展示单细胞marker基因平均表达量热图,其他的数据矩阵都可以使用。

视频解说演示链接:
https://www.bilibili.com/video/BV1k23BzREqK/?spm_id_from=333.1387.homepage.video_card.click&vd_source=05b5479545ba945a8f5d7b2e7160ea34

640.png

此外,对于整体cell的热图也可以标注基因,这里是参考了一篇NC文章:

640.png

首先看看函数参数:


640.png

获取marker基因(也可以手动整理):

import scanpy as sc
import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.colors as mcolors
#挑选需要plot的基因,读入数据
df_markers = pd.read_csv('./adata_markers.csv')
df_markers

这是scanpy自带函数的plot:

sc.pl.matrixplot(
    adata,
    df_markers['names'],
    "celltype",
    colorbar_title="mean z-score",#legend标题设置
    #layer="log1p_norm",#layer
    #categories_order=['Ciliated', 'UnCiliated','Endo','Stromal', 'Myeloid', 'T cell', 'NKT','B cell','Mast'],#自定义顺序
    vmin=-2,
    vmax=2,
    cmap="RdBu_r",
    swap_axes=False
)
640.png

获取average expressed matrix:

#get gene express data
#scaleed data
#you can set parameter layers
obs_tidy = sc.get.obs_df(adata,keys = df_markers['names'].tolist())
obs_tidy.head()
#keys添加obs,例如celltype或者leiden,就可以在表达矩阵第一列出现注释
genedf = sc.get.obs_df(adata, keys=["celltype", *df_markers['names'].tolist()])
genedf
#average expressed matrix
grouped = genedf.groupby("celltype", observed=True)
mean, var = grouped.mean(), grouped.var()
df = mean.T
df

plot(label的基因及其颜色):

color_dict = {
  #B cell
  "IGHD" :"#fc8d59",
  "CD79A" : "#fc8d59",
  "CD19":"#fc8d59", 
  "IGHM":"#fc8d59",
  #Ciliated
  "CFAP52":"#9e9ac8", 
  "DNAH5":"#9e9ac8",
  "FOXJ1":"#9e9ac8", 
  #Endo
  "ACKR1":"#96daf7", 
  "HOXD1":"#96daf7",
  "VWF":"#96daf7",
  "EDN1":"#96daf7",
  "PECAM1":"#96daf7", 
  #Mast
  "TPSAB1":"#fed976",
  "TPSB2":"#fed976",
  "CPA3":"#fed976", 
  "MS4A2":"#fed976",
  "KIT":"#fed976",
  #Myeloid
  "FCGR1B":"#b0479a", 
  "TREM2":"#b0479a",
  "CD1E":"#b0479a", 
  #NKT
  "KRT81":"#35978f",
  "KLRC1":"#35978f", 
  "GNLY":"#35978f", 
  "ITGAD":"#35978f", 
  "NKG7":"#35978f", 
  #Stromal
  "COL1A1":"#e31a1c", 
  "COL3A1":"#e31a1c",
  "IGF1":"#e31a1c", 
  "TAS2R1":"#e31a1c",
  #T cell
  "CD3G":"#f6a2a7",
  "CD3D":"#f6a2a7", 
  "FOXP3":"#f6a2a7",
  "CCR4":"#f6a2a7",
  #UnCiliated
  "ASRGL1":"#f9d3d7",
  "KRT8":"#f9d3d7",
  "KRT18":"#f9d3d7", 
  "TMEM210":"#f9d3d7"
}
sc_markerAvgExp_heatmap(df,label=True,label_genes=color_dict,z_score=0)
640.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容