- Seurat Weekly NO.0 || 開刊詞
- Seurat Weekly NO.1 || 到底分多少個(gè)群是合適的?!
- Seurat Weekly NO.2 || 我該如何取子集
- Seurat Weekly NO.3 || 直接用Seurat畫fig2
- Seurat Weekly NO.4 || 高效數(shù)據(jù)管理
- Seurat Weekly NO.5 pseudocell該如何計(jì)算||或談Seurat的擴(kuò)展
- Seurat Weekly NO.06 || 數(shù)據(jù)對(duì)象轉(zhuǎn)化之Scanpy2Seurat
- Seurat Weekly NO.07 || V4 新特性
- Seurat Weekly NO.08 || Seurat 交互系統(tǒng)
在這里,與國(guó)際同行一起學(xué)習(xí)數(shù)據(jù)分析。
在單細(xì)胞數(shù)據(jù)分析過(guò)程中,往往需要看不同的參數(shù)下的數(shù)據(jù)表現(xiàn),也往往需要循環(huán)某個(gè)列表(基因集或者分組),這時(shí)候向量化測(cè)試效率就比較高了。
向量(vector)是R編程里最底層也是最核心的結(jié)構(gòu),并且從廣泛意義上的數(shù)據(jù)類型而言,R中的矩陣和數(shù)組甚至是列表都是向量。提升代碼效率的有效途徑便是向量化(vectorize),即將運(yùn)算符或者函數(shù)作用在向量的每一個(gè)元素上的一種理念。
多個(gè)聚類的resolution
參數(shù):
library(Seurat)
library(SeuratData,lib.loc = 'F:\\EE\\software\\R\\R-4.0.2\\library')
library(pbmc3k.SeuratData,lib.loc = 'F:\\EE\\software\\R\\R-4.0.2\\library')
library(clustree,lib.loc = 'F:\\EE\\software\\R\\R-4.0.2\\library')
.libPaths()
library(tidyverse)
library(cowplot)
pbmc3k.final <- FindClusters(pbmc3k.final,dims=1:20,resolution = seq(from=0,by=.2,length=10))
clustree(pbmc3k.final)
分群可視化,其實(shí)是map
函數(shù)的應(yīng)用。
Idents(pbmc3k.final) <- "seurat_annotations"
p=list()
p<- map(c(levels(Idents(pbmc3k.final))),function(x){DimPlot(pbmc3k.final, cells.highlight = CellsByIdentities(object = pbmc3k.final, idents = x))})
plot_grid(plotlist = p)
下面來(lái)看另一個(gè)例子:調(diào)節(jié)UMAP結(jié)構(gòu)。那么我們就看看可視化有什么參數(shù)可以調(diào)節(jié):
- 3D
- 調(diào)RunUMAP的參數(shù)
- 換可視化方法
今天我們來(lái)看看n.neighbors和epochs,negative.sample.rate 這幾個(gè)函數(shù)的影響:
map(c(2,seq(from=5,by=50,length=10)) , function(x) { pbmc3k.final %>% RunUMAP(n.neighbors = x,n.epochs=200,dims = 1:20) %>% DimPlot()}) %>% cowplot::plot_grid(plotlist = .)
c(2,seq(from=5,by=50,length=10) )
[1] 2 5 55 105 155 205 255 305 355 405 455
map(c(2,seq(from=5,by=50,length=10)) , function(x) { pbmc3k.final %>% RunUMAP(n.neighbors = 50,n.epochs=x,dims = 1:20) %>% DimPlot()}) %>% cowplot::plot_grid(plotlist = .)
map(c(2,seq(from=1,by=5,length=10)) , function(x) { pbmc3k.final %>% RunUMAP(n.neighbors = 50,n.epochs=500,negative.sample.rate = x,dims = 1:20) %>% DimPlot()}) %>% cowplot::plot_grid(plotlist = .)
好了,節(jié)目的最后,放一張大佬的小道消息: