单细胞分析的前期教程:
单细胞专题 | 1.单细胞测序(10×genomics技术)的原理 单细胞专题 | 2.如何开始单细胞RNASeq数据分析 单细胞专题 | 3.单细胞转录组的上游分析-从BCL到FASTQ 单细胞专题 | 4.单细胞转录组的上游分析-从SRA到FASTQ 单细胞专题 | 5.单细胞转录组的上游分析-从FASTQ到count矩阵 单细胞专题 | 6.单细胞下游分析——不同类型的数据读入 单细胞专题 | 7.单细胞下游分析——常规分析流程案例一 单细胞专题 | 8.单细胞类型注释之SingleR包详解 单细胞专题 | 9.如何人工注释单细胞类群? 单细胞专题 | 10.细胞周期分析 单细胞专题 | 11.最新版cellphoneDB细胞通讯分析
1.1 方法文献
Korsunsky, I., Millard, N., Fan, J. et al. Fast, sensitive and accurate integration of single-cell data with Harmony. Nat Methods 16, 1289–1296 (2019). https://doi.org/10.1038/s41592-019-0619-0
https://github.com/immunogenomics/harmony
## Source required libraries
## install.packages("harmony")
library(data.table)
library(tidyverse)
library(ggthemes)
library(ggrepel)
library(harmony)
library(patchwork)
library(tidyr)
library(ggplot2)
library(Seurat)
pbmc.stim, pbmc.ctrl是2个批次的单细胞数据。
data("pbmc_stim")
pbmc <- CreateSeuratObject(counts = cbind(pbmc.stim, pbmc.ctrl),
project = "PBMC", min.cells = 5)
## Separate conditions
pbmc@meta.data$batch <- c(rep("STIM", ncol(pbmc.stim)), rep("CTRL", ncol(pbmc.ctrl)))
pbmc <- pbmc %>%
NormalizeData(verbose = FALSE)
VariableFeatures(pbmc) <- split(row.names(pbmc@meta.data), pbmc@meta.data$batch) %>% lapply(function(cells_use) {
pbmc[,cells_use] %>%
FindVariableFeatures(selection.method = "vst", nfeatures = 2000) %>%
VariableFeatures()
}) %>% unlist %>% unique
pbmc <- pbmc %>%
ScaleData(verbose = FALSE) %>%
RunPCA(features = VariableFeatures(pbmc), npcs = 20, verbose = FALSE)
## 未进行批次效应校正
library(cowplot)
options(repr.plot.height = 5, repr.plot.width = 12)
p1 <- DimPlot(object = pbmc, reduction = "pca", pt.size = .1, group.by = "batch")
p2 <- VlnPlot(object = pbmc, features = "PC_1", group.by = "batch", pt.size = .1)
plot_grid(p1,p2)
bacth就是分组变量,相当于2个批次效应的单细胞数据分组信息pbmc@meta.data$bacth
。
pbmc <- pbmc %>%
RunHarmony("batch", plot_convergence = TRUE,
nclust = 50, max_iter = 10, early_stop = T)
通过设置plot_converge=TRUE,Harmony将生成一个显示整合流程的目标图。每个点代表经过一轮聚类后测量的成本。不同的颜色代表由max_iter控制的不同Harmony迭代(假设early_stop=FALSE)。这里max_iter=10,预期最多有10个修正步骤。
RunHarmony函数中主要参数:
group.by.vars:
max.iter.harmony:
lambda:
theta:
dims.use:
sigma:
参数类型:数值型(numeric)
这些参数共同决定了Harmony算法在运行时的行为和结果。根据您的具体需求和数据特征,您可能需要调整这些参数以获得最佳的分析效果。在使用Harmony包时,请确保仔细阅读相关文档和教程。
RunHarmony的运行结果在pbmc@reductions$harmony
中。
使用Embeddings命令访问新的Harmony embeddings。
harmony_embeddings <- Embeddings(pbmc, 'harmony')
harmony_embeddings[1:4, 1:4]
options(repr.plot.height = 5, repr.plot.width = 12)
p1 <- DimPlot(object = pbmc, reduction = "harmony", pt.size = .1,
group.by = "batch")
p2 <- VlnPlot(object = pbmc, features = "harmony_1",
group.by = "batch", pt.size = .1)
plot_grid(p1,p2)
注意:Seurat对象是基于Seurat V4,现在Seurat以及V5了,主要用于解决空间多组学和转录组分析、超大规模数据量(上百万细胞,甚至更多)分析,以及函数高度集成和简化,数据结构进一步优化等。
https://github.com/immunogenomics/harmony
https://htmlpreview.github.io/?https://github.com/immunogenomics/harmony/blob/master/doc/Seurat.html
https://htmlpreview.github.io/?https://github.com/immunogenomics/harmony/blob/master/doc/detailedWalkthrough.html
经 典 栏 目
本文分享自 MedBioInfoCloud 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!