玩转单细胞(19):单细胞Seurat分析基本可视化实现python版Scanpy风格

学术   2025-01-20 09:00   黑龙江  

偷偷问一下,关注了吗

内容获取


1、购买打包合集(2025KS微信VIP付费合集),价格感人,可以加入微信VIP群(答疑交流群,甚至有小伙伴觉得群比代码更好),可以获取建号以来所有内容,群成员专享视频教程,提前更新,其他更多福利!


2、《KS科研分享与服务》公众号有QQ群,进入门槛是20元(完全是为了防止白嫖党,请理解),请考虑清楚。群里有免费推文的注释代码和示例数据(终身拥有),没有付费内容,群成员福利是购买单个付费内容半价!


需要者详情请联系作者(非需要者勿扰,处理太费时间):


玩转单细胞往期精彩系列:
玩转单细胞(1):玩转单细胞---提取特定基因表达的细胞群分析(一个小问题)
玩转单细胞(2):Seurat批量做图修饰
玩转单细胞(3):堆叠柱状图添加比例
玩转单细胞(4):单细胞相关性
玩转单细胞(5):单细胞UMAP图只标记特定细胞群、圈定细胞群及坐标轴修改
玩转单细胞(6):单细胞差异基因展示之对角散点图
玩转单细胞(7):修改Seurat对象基因名称
玩转单细胞(8): 单细胞3维聚类图展示
玩转单细胞(9):单细胞Seurat对象数据操作
玩转单细胞(10):替换单细胞Seurat对象UMAP坐标
玩转单细胞(11):Seurat单细胞基因表达DotPlot图分面设置
玩转单细胞(12):单细胞celltype颜色、顺序设置及V5小问题
玩转单细胞(13):Seurat V5单细胞基本可视化
玩转单细胞(14): 玩转单细胞(14): 单细胞分亚群之后分群信息返回原来的seurat对象
玩转单细胞(15):一些简便的作图、数据运行处理小技巧

玩转单细胞(16):Scanpy单细胞h5ad数据转化为Seurat对象

玩转单细胞(17):差异基因分析可以舍弃一些没必要的基因-例如MT..RPL..

玩转单细胞(18):UMAP图修饰之同时展示亚群/cluster与总的细胞群

这个问题我们之前提到过,很多小伙伴可能看到某些文章中这样的可视化,很感兴趣,其实熟悉python分析的小伙伴一眼就可以看出是scanpy出图,虽然R也能实现这样的效果,但是自从我们集全了seurat转h5ad(单细胞seurat V5转V4格式及seurat转为h5ad格式),以及h5ad转seurat之后(玩转单细胞(16):Scanpy单细胞h5ad数据转化为Seurat对象),这都不是问题了,想要这种风格的作图,直接转化格式即可!

(reference:Molecular logic for cellular specializations that initiate the auditory parallel processing pathways

这里我们首先演示直接将seurat转化为h5ad,使用scanpy作图:转化我使用的是sceasy包,很简单方便:
setwd('./data_analysis/Gene_NMF/')# devtools::install_github("cellgeni/sceasy")library(sceasy)library(reticulate)use_condaenv('sceasy')loompy <- reticulate::import('loompy')uterus <- readRDS("~/data_analysis/Gene_NMF/uterus.rds")sceasy::convertFormat(uterus, from="seurat", to="anndata", outFile='uterus.h5ad')

#plot TSNEimport scanpy as scimport anndata#这里我seurat的数据是TSNE降维uterus = anndata.read_h5ad('./uterus.h5ad')sc.pl.tsne(    uterus,    color=["celltype"],    frameon=False,    ncols=1,)

#plot marker gene dotplot#每种celltype对应的marker genemarkers = {'Smooth muscle cells':['ACTA2', 'RGS5'],           'Macrophages':['MS4A6A','CD68','LYZ'],           'Lymphocytes':['CCL5','STK17B','PTPRC'],           'Stromal fibroblasts':['DCN', 'COL6A3', 'LUM'],           'Endothelial cells':['PECAM1','PCDH17', 'VWF'],           'Unciliated epithelial cells':['EPCAM', 'CDH1'],           'Ciliated epithelial cells':['FOXJ1','CDHR3','DYDC2'],}
sc.pl.dotplot(uterus, markers, 'celltype',dendrogram=True)

当然了,也有小伙伴完全没有接触过python,想用R做出这样的效果,不必担心,优秀的老俊俊推出过R版的包,实现scanpy的效果。更多参数请详细阅读帮助函数。

其他优秀可视化参考:(https://github.com/junjunlab/scRNAtoolVis

#安装包install.packages('devtools')devtools::install_github('junjunlab/scRNAtoolVis')library(Seurat) library(ggplot2)library(dplyr)library(scRNAtoolVis)
uterus <- readRDS("D:/KS项目/公众号文章/uterus.rds")DefaultAssay(uterus) <- "RNA"markers <- c("ACTA2", "RGS5", #smooth muscle cells---7, 16             "MS4A6A", "CD68","LYZ",#macrophages---13             "CCL5", "STK17B","PTPRC",#lymphocytes---0,3,4,5,6,14,15,17,23,18,19             "DCN", "COL6A3", "LUM",#stromal fibroblasts---2,20             "PECAM1","PCDH17", "VWF",#endothelial cells---8,11,22             "EPCAM", "CDH1",#(unciliated)epithelial cells---1,9,21             "FOXJ1","CDHR3","DYDC2")#(ciliated)epithelial cells---10,12

markers_plot <- data.frame(cluster = c(rep("Smooth muscle cells",2), rep("Macrophages",3), rep("Lymphocytes",3), rep("Stromal fibroblasts",3), rep("Endothelial cells",3), rep("Unciliated epithelial cells",2), rep("Ciliated epithelial cells",3)), gene = markers)


jjDotPlot(object = uterus, markerGene = markers_plot, anno = T, id = 'celltype', textSize = 10, base_size= 10, plot.margin = c(5,3,3,3))

觉得我们分享有些用的,点个赞再走呗!
关注我们获取精彩内容:


关注不迷路:扫描下面二维码关注公众号!
B站视频号链接https://space.bilibili.com/471040659?spm_id_from=333.1007.0.0




关注 KS科研分享与服务,

认清正版优质内容和服务!

优质内容持续输出,物超所值!

合作联系:ks_account@163.com

新的板块-重要通知-双向选择


KS科研分享与服务
科研学习交流于分享,生信学习笔记,科研经历和生活!
 最新文章