加上这个R包!让你的单细胞文章更高级!
Hi,大家好,我是晨曦
今天这期推文我们来继续学习绘制单细胞美图,如果各位小伙伴感兴趣如何绘制下面这个好看的单细胞可视化结果,那么就继续往下看吧
单细胞可视化结果展示:
那么我们开始吧
一、细胞注释
#准备工作
library(plot1cell)
library(dplyr)
library(Seurat)
library(patchwork)
library(RColorBrewer)
工欲善其事必先利其器QAQ
#准备输入数据#这里我们并没有使用教程内的数据,因为我们想要更加去了解我们的输入数据应该准备成什么形式才可以绘制上述类似的可视化结果pbmc.data <- Read10X(data.dir = "0.晨曦碎碎念/1.plot1cell/pbmc3k_filtered_gene_bc_matrices/filtered_gene_bc_matrices/hg19/")pbmc <- CreateSeuratObject(counts = pbmc.data, project = "pbmc3k", min.cells = 3, min.features = 200)pbmc[["percent.mt"]] <- PercentageFeatureSet(pbmc, pattern = "^MT-")pbmc <- subset(pbmc, subset = nFeature_RNA > 200 & nFeature_RNA < 2500 & percent.mt < 5)pbmc <- NormalizeData(pbmc)pbmc <- FindVariableFeatures(pbmc, selection.method = "vst", nfeatures = 2000)all.genes <- rownames(pbmc)pbmc <- ScaleData(pbmc, features = all.genes)pbmc <- RunPCA(pbmc, features = VariableFeatures(object = pbmc))pbmc <- FindNeighbors(pbmc, dims = 1:10)pbmc <- FindClusters(pbmc, resolution = 0.5)pbmc <- RunUMAP(pbmc, dims = 1:10)pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)pbmc.markers %>% group_by(cluster) %>% slice_max(n = 2, order_by = avg_log2FC)new.cluster.ids <- c("Naive CD4 T", "CD14+ Mono", "Memory CD4 T", "B", "CD8 T", "FCGR3A+ Mono", "NK", "DC", "Platelet")names(new.cluster.ids) <- levels(pbmc)pbmc <- RenameIdents(pbmc, new.cluster.ids)DimPlot(pbmc, reduction = "umap", label = TRUE, pt.size = 0.5) + NoLegend()saveRDS(pbmc, file = "0.晨曦碎碎念/1.plot1cell/pbmc3k_final.rds")
注意:到此为止,我们其实就是完成了标准的单细胞分析流程(到细胞注释为止),所以我们在后续自己的数据时,只需要完成到这一步就可以开始绘图了
二、单样本单细胞可视化
#数据预处理circ_data <- prepare_circlize_data(pbmc, scale = 0.7)#通过scale参数我们可以控制我们单细胞亚群的缩放比例set.seed(1234)cluster_colors<-rand_color(length(levels(pbmc)))#随机的颜色有的时候可能会偏淡,这个时候我们可以自己设置颜色cluster_colors <- c(brewer.pal(9, "Set1"))#自己设置颜色#group_colors<-rand_color(length(names(table(pbmc$Group))))rep_colors<-rand_color(length(names(table(pbmc$orig.ident))))
注意:这个时候我们会发现,我们其实注释掉了一行代码,然后我们通过对原始代码的解读,我们可以发现,我们这个圆圈图其实可以累加三层,分别是亚群、样本以及分组,但是我们这个数据其实是没有分组信息的,我们的样本就是一个样本,所以我们这里把分组注释掉,会让我们的圆圈少一个,但是整体是相似的~
png(filename = 'circlize_plot.png', width = 6, height = 6,units = 'in', res = 300)plot_circlize(circ_data,do.label = T, pt.size = 0.01, col.use = cluster_colors ,bg.color = 'white', kde2d.n = 200, repel = T, label.cex = 0.7)#add_track(circ_data, group = "Group", colors = group_colors, track_num = 2) ## can change it to one of the columns in the meta data of your seurat objectadd_track(circ_data, group = "orig.ident",colors = rep_colors, track_num = 3) dev.off()
然后我们直接就可以可视化下面的这个结果
注意:图片太大以后颜色会变淡,这个时候笔者提出的处理方法有两个:
1.直接在R中右下角导出图片后,对于没有显示完全的字通过AI进行修改
2.直接导出图片后,通过AI或者更改颜色配色使颜色更明显
然后我们继续探索其它的可视化方式
三、多分组单细胞可视化
png(filename = 'dotplot_single.png', width = 4, height = 6,units = 'in', res = 100)complex_dotplot_single(seu_obj = pbmc, feature = "DDX5",groups = "orig.ident")dev.off()
注意:这个时候我们可以发现,这个R包非常方便的可以帮助我们展示多分组的单细胞可视化结果,比如说疾病组或者健康组,这个R包可以非常方便的帮助我们可视化结果~
所以说笔者觉得如果我们的单细胞数据包含多个维度的信息(样本分组、或者疾病分组等等)我们可以尝试用这个R包来可视化结果,下面展示一下可以用这个R包做的所有单细胞可视化结果
那么,本期推文到这里就结束了
后续的推文可能会更新一些单细胞数据处理或者是一些分析相关的内容,因为最近在看文献发现单细胞分析在文献中可能占据着越来越多的比例QAQ
我是晨曦,我们下期再见~
参考教程:
1.TheHumphreysLab/plot1cell (github.com)
微信扫码关注该文公众号作者