图片协和影视协和影视
作家按
寰宇简略齐曾被Nature, Science上的单细胞umap图诱惑过,难免心生真贵。在这里,咱们将先容一种随意通俗的顶刊级umap图可视化
全笔墨数|展望阅读时间: 2000|5min
——Starlitnightly(星夜)
环境加载咱们先导入一些必须的依赖包
import omicverse as ovimport scanpy as scimport matplotlib.pyplot as pltov.ov_plot_set()
____ _ _ __ / __ \____ ___ (_)___| | / /__ _____________ / / / / __ `__ / / ___/ | / / _ / ___/ ___/ _ \ / /_/ / / / / / / / /__ | |/ / __/ / (__ ) __/ \____/_/ /_/ /_/_/\___/ |___/\___/_/ /____/\___/ Version: 1.6.3, Tutorials: https://omicverse.readthedocs.io/读取数据
咱们中式了一个结直肠癌的数据算作演示。
adata=ov.read('crc_50000.h5ad')adata
# AnnData object with n_obs × n_vars = 50000 × 25121 # obs: 'n_genes', 'doublet_score', 'predicted_doublet', 'n_genes_by_counts', 'total_counts', 'total_counts_mt', 'pct_counts_mt', 'leiden', 'scsa_celltype', 'major_celltype', 'scsa_true_celltype' # var: 'gene_ids', 'n_cells', 'mt', 'n_cells_by_counts', 'mean_counts', 'pct_dropout_by_counts', 'total_counts', 'highly_variable', 'means', 'dispersions', 'dispersions_norm' # uns: 'dendrogram_leiden', 'hvg', 'leiden', 'leiden_colors', 'leiden_sizes', 'log1p', 'major_celltype_colors', 'neighbors', 'paga', 'pca', 'rank_genes_groups', 'scrublet', 'scsa_celltype_colors', 'umap' # obsm: 'X_pca', 'X_umap' # obsp: 'connectivities', 'distances'
最初咱们先尝试一下最基础的umap图绘画可视化
fig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'], title='', show=False, size=10, frameon='small', ax=ax)
图片
细胞可视化法例咱们发现成果平平无奇对吧协和影视,接下来,咱们最初需要修改的是,细胞可视化的法例,将免疫细胞放到一块,将其他细胞放到另一块
adata.obs['major_celltype'].cat.categories
# Index(['B cell', 'Endothelial cell', 'Epithelial cell', 'Fibroblast', # 'Mast cell', 'Myeloid cell', 'Natural killer cell', 'Plasma cell', # 'T cell', 'pDC'], # dtype='object')
new_order=['B cell', 'Plasma cell','T cell', 'Natural killer cell','Myeloid cell','pDC','Mast cell', 'Endothelial cell', 'Epithelial cell', 'Fibroblast', ]
adata.obs['major_celltype']=adata.obs['major_celltype'].cat.reorder_categories(new_order)
此时咱们再可视化,会发现细胞的排序形成了咱们指定的法例
fig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'],title='', show=False, frameon='small', size=10, ax=ax)
图片
接下来咱们再指定细胞类型的心思,这里有两个要领:
第一个要领是咱们使全心思条法例来指定第二个要领是径直指定细胞类型的心思咱们先尝试第一个要领,咱们但愿B细胞是蓝色,T细胞是红色,髓系细胞是绿色,其他细胞是黄色,那么咱们凭据数目指定心思条。
需要详确的是,咱们在omicverse中提供了5种顶刊级别的心思条调用
红色: ov.pl.red_color蓝色: ov.pl.blue_color橙色: ov.pl.orange_color绿色: ov.pl.green_color紫色: ov.pl.purple_color淌若你有其他的心思需求也不错自行指定,心思条是list体式,举例palette=['#000000','#FFFFFF']
fig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'],title='', show=False, size=10, frameon='small', palette=ov.pl.blue_color[4:6]+ov.pl.purple_color[1:3]+ov.pl.green_color[:3]+ov.pl.orange_color[:], ax=ax)
图片
咱们发现心思形成了咱们指定的心思类型
第二种要领也很随意,咱们指定每一种细胞类型的心思然后进行可视化就好了
color_dict={ 'B cell':ov.pl.blue_color[4], 'Plasma cell':ov.pl.blue_color[5], 'T cell':ov.pl.purple_color[0], 'Natural killer cell':ov.pl.purple_color[1], 'Myeloid cell':ov.pl.green_color[0], 'pDC':ov.pl.green_color[1], 'Mast cell':ov.pl.green_color[2], 'Endothelial cell':ov.pl.red_color[0], 'Epithelial cell':ov.pl.red_color[1], 'Fibroblast':ov.pl.red_color[2]}
fig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'],title='', show=False, frameon='small', size=10, palette=color_dict, ax=ax)
图片
细胞标签优化咱们接下来需要优化的是细胞类型的展示,咱们上头绘画的细胞的标签在右边,关于读者而言,需要一个一个去心思对应的。在Nature最新的出书需求中,但愿作家们沟通到色弱等东谈主士的需求,因此咱们不错径直在细胞umap图上绘画细胞类型。
需要详确的是,scanpy默许的细胞类型在umap图上的可视化可能出现窒碍,咱们在omicverse中提供了新的函数ov.pl.embedding_adjust
from matplotlib import patheffectsfig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'],title='', show=False, legend_loc=None, add_outline=False, frameon='small',legend_fontoutline=2,ax=ax )ov.pl.embedding_adjust( adata, basis="X_umap", groupby='major_celltype', ax=ax, adjust_kwargs=dict(arrowprops=dict(arrowstyle='-', color='black')), text_kwargs=dict(fontsize=12 ,weight='bold', path_effects=[patheffects.withStroke(linewidth=2, foreground='w')] ),)
图片
同类细胞详尽咱们在许多顶刊中会发现,同类细胞频频作家可爱用详尽线圈起来,因此,咱们在omicverse中也提供了肖似的杀青。
sss视频from matplotlib import patheffectsfig, ax = plt.subplots(figsize=(4,4))ov.pl.embedding(adata, basis="X_umap", color=['major_celltype'],title='', show=False, legend_loc=None, add_outline=False, frameon='small',legend_fontoutline=2,ax=ax )ov.pl.embedding_adjust( adata, basis="X_umap", groupby='major_celltype', ax=ax, adjust_kwargs=dict(arrowprops=dict(arrowstyle='-', color='black')), text_kwargs=dict(fontsize=12 ,weight='bold', path_effects=[patheffects.withStroke(linewidth=2, foreground='w')] ),)ov.pl.contour(ax=ax,adata=adata, basis="X_umap", groupby='major_celltype',clusters=['T cell','Natural killer cell'], contour_threshold=0.02,colors=ov.pl.red_color[2],linestyles='dashed')ov.pl.contour(ax=ax,adata=adata, basis="X_umap", groupby='major_celltype',clusters=['Plasma cell','B cell'], contour_threshold=0.01,colors=ov.pl.blue_color[6],linestyles='dashed')ov.pl.contour(ax=ax,adata=adata, basis="X_umap", groupby='major_celltype',clusters=['Endothelial cell', 'Epithelial cell', 'Fibroblast'], contour_threshold=0.002,colors=ov.pl.orange_color[2],linestyles='dashed')fig.savefig('umap-ct_major.png',dpi=300,bbox_inches='tight')fig.savefig('umap-ct_major.pdf',dpi=300,bbox_inches='tight')
图片
以上即是本期教程的沿路施行了,淌若以为OmicVerse对你的论文有匡助,不要健忘垄断哦,更多单细胞的可视化要领与教程请参考:
https://starlitnightly.github.io/omicverse/Tutorials-plotting/t_visualize_single/图片
本站仅提供存储就业,扫数施行均由用户发布,如发现存害或侵权施行,请点击举报。