Seurat4.0系列教程8:细胞周期评分和回归分析

此教程展示了如何通过基于传统细胞周期相关marker计算细胞周期得分,并在预处理过程中将这些分数从数据中回归,以消除 scRNA-seq 数据中细胞周期异质性的影响。我们在小鼠造血祖细胞数据集上证明了这一点。您可以在此处[1]下载运行此教程所需的文件。

library(Seurat)

# Read in the expression matrix The first row is a header row, the first column is rownames
exp.mat <- read.table(file = "../data/nestorawa_forcellcycle_expressionMatrix.txt", header = TRUE, 
    as.is = TRUE, row.names = 1)

# A list of cell cycle markers, from Tirosh et al, 2015, is loaded with Seurat.  We can
# segregate this list into markers of G2/M phase and markers of S phase
s.genes <- cc.genes$s.genes
g2m.genes <- cc.genes$g2m.genes

# Create our Seurat object and complete the initalization steps
marrow <- CreateSeuratObject(counts = exp.mat)
marrow <- NormalizeData(marrow)
marrow <- FindVariableFeatures(marrow, selection.method = "vst")
marrow <- ScaleData(marrow, features = rownames(marrow))

在使用FindVariableFeatures()发现的高变基因在对象上运行PCA,我们可以看到,虽然大多数差异可以用谱系来解释,但在包括TOP2AMKI67在内的细胞周期基因在PC8和PC10中是分开的。我们将尝试从数据中回归此信号,以便细胞周期异质性不会对 PCA 或下游分析造成影响。

marrow <- RunPCA(marrow, features = VariableFeatures(marrow), ndims.print = 6:10, nfeatures.print = 10)

## PC_ 6 
## Positive:  SELL, ARL6IP1, CCL9, CD34, ADGRL4, BPIFC, NUSAP1, FAM64A, CD244, C030034L19RIK 
## Negative:  LY6C2, AA467197, CYBB, MGST2, ITGB2, PF4, CD74, ATP1B1, GP1BB, TREM3 
## PC_ 7 
## Positive:  HDC, CPA3, PGLYRP1, MS4A3, NKG7, UBE2C, CCNB1, NUSAP1, PLK1, FUT8 
## Negative:  F13A1, LY86, CFP, IRF8, CSF1R, TIFAB, IFI209, CCR2, TNS4, MS4A6C 
## PC_ 8 
## Positive:  NUSAP1, UBE2C, KIF23, PLK1, CENPF, FAM64A, CCNB1, H2AFX, ID2, CDC20 
## Negative:  WFDC17, SLC35D3, ADGRL4, VLDLR, CD33, H2AFY, P2RY14, IFI206, CCL9, CD34 
## PC_ 9 
## Positive:  IGKC, JCHAIN, LY6D, MZB1, CD74, IGLC2, FCRLA, IGKV4-50, IGHM, IGHV9-1 
## Negative:  SLC2A6, HBA-A1, HBA-A2, IGHV8-7, FCER1G, F13A1, HBB-BS, PLD4, HBB-BT, IGFBP4 
## PC_ 10 
## Positive:  CTSW, XKRX, PRR5L, RORA, MBOAT4, A630014C17RIK, ZFP105, COL9A3, CLEC2I, TRAT1 
## Negative:  H2AFX, FAM64A, ZFP383, NUSAP1, CDC25B, CENPF, GBP10, TOP2A, GBP6, GFRA1
DimHeatmap(marrow, dims = c(8, 10))

分配细胞周期得分

首先,我们根据每个细胞的G2 / M和S期marker的表达为其分配分数。这些marker集合在表达水平上应该是反相关的,不表达它们的细胞可能不会循环并处于G1期。

我们用CellCycleScoring()函数分配分数,该函数将S和G2 / M分数以及每个细胞在G2M,S或G1阶段的预测分类存储在对象元数据metadata中。CellCycleScoring()还可以通过set.ident = TRUE来将Seurat对象的身份设置为细胞周期分期。请注意,Seurat在下游细胞周期回归中不使用离散分类(G2M / G1 / S)。相反,它使用G2M和S期的定量评分。但是,如果有兴趣,可以使用预测的分类。

marrow <- CellCycleScoring(marrow, s.features = s.genes, g2m.features = g2m.genes, set.ident = TRUE)

# view cell cycle scores and phase assignments
head(marrow[[]])

##          orig.ident nCount_RNA nFeature_RNA     S.Score  G2M.Score Phase
## Prog_013       Prog    2563089        10211 -0.14248691 -0.4680395    G1
## Prog_019       Prog    3030620         9991 -0.16915786  0.5851766   G2M
## Prog_031       Prog    1293487        10192 -0.34627038 -0.3971879    G1
## Prog_037       Prog    1357987         9599 -0.44270212  0.6820229   G2M
## Prog_008       Prog    4079891        10540  0.55854051  0.1284359     S
## Prog_014       Prog    2569783        10788  0.07116218  0.3166073   G2M
##          old.ident
## Prog_013      Prog
## Prog_019      Prog
## Prog_031      Prog
## Prog_037      Prog
## Prog_008      Prog
## Prog_014      Prog
# Visualize the distribution of cell cycle markers across
RidgePlot(marrow, features = c("PCNA", "TOP2A", "MCM6", "MKI67"), ncol = 2)

# Running a PCA on cell cycle genes reveals, unsurprisingly, that cells separate entirely by
# phase
marrow <- RunPCA(marrow, features = c(s.genes, g2m.genes))
DimPlot(marrow)

在数据归一化期间回归得出细胞周期得分

现在,我们尝试从数据中消除(“回归”)这种异质性。对于Seurat v1.X的用户,这是通过RegressOut实现的。但是,由于此过程的结果存储在归一化后的slot中,因此我们现在将此功能合并到ScaleData()函数中。

对于每个基因,Seurat计算模拟基因表达与S和G2M细胞周期得分之间的关系。该模拟的残差表示“校正后的”表达矩阵,可在下游用于降维分析。

marrow <- ScaleData(marrow, vars.to.regress = c("S.Score", "G2M.Score"), features = rownames(marrow))

# Now, a PCA on the variable genes no longer returns components associated with cell cycle
marrow <- RunPCA(marrow, features = VariableFeatures(marrow), nfeatures.print = 10)

## PC_ 1 
## Positive:  BLVRB, CAR2, KLF1, AQP1, CES2G, ERMAP, CAR1, FAM132A, RHD, SPHK1 
## Negative:  TMSB4X, H2AFY, CORO1A, PLAC8, EMB, MPO, PRTN3, CD34, LCP1, BC035044 
## PC_ 2 
## Positive:  ANGPT1, ADGRG1, MEIS1, ITGA2B, MPL, DAPP1, APOE, RAB37, GATA2, F2R 
## Negative:  LY6C2, ELANE, HP, IGSF6, ANXA3, CTSG, CLEC12A, TIFAB, SLPI, ALAS1 
## PC_ 3 
## Positive:  APOE, GATA2, NKG7, MUC13, MS4A3, RAB44, HDC, CPA3, FCGR3, TUBA8 
## Negative:  FLT3, DNTT, LSP1, WFDC17, MYL10, GIMAP6, LAX1, GPR171, TBXA2R, SATB1 
## PC_ 4 
## Positive:  CSRP3, ST8SIA6, DNTT, MPEG1, SCIN, LGALS1, CMAH, RGL1, APOE, MFSD2B 
## Negative:  PROCR, MPL, HLF, MMRN1, SERPINA3G, ESAM, GSTM1, D630039A03RIK, MYL10, LY6A 
## PC_ 5 
## Positive:  CPA3, LMO4, IKZF2, IFITM1, FUT8, MS4A2, SIGLECF, CSRP3, HDC, RAB44 
## Negative:  PF4, GP1BB, SDPR, F2RL2, RAB27B, SLC14A1, TREML1, PBX1, F2R, TUBA8
# When running a PCA on only cell cycle genes, cells no longer separate by cell-cycle phase
marrow <- RunPCA(marrow, features = c(s.genes, g2m.genes))
DimPlot(marrow)

由于最好的细胞周期marker在组织和物种间极度保守,我们发现此流程能够在不同的数据集上可靠地工作。

可选工作流

上面的过程将删除与细胞周期相关的所有信号。在某些情况下,我们发现这会对下游分析产生负面影响,尤其是在分化过程中(如鼠类造血),在此过程中干细胞处于静止状态,分化的细胞正在增殖(反之亦然)。在这种情况下,将所有细胞周期效应消除,也会使干细胞和祖细胞之间的区别变得模糊。

作为替代方案,我们建议消除G2M和S期评分之间的差异。这意味着分离非循环细胞和循环细胞的信号将保留,但是增殖细胞之间的细胞周期差异(通常是不感兴趣的)将被从数据中剔除。

marrow$CC.Difference <- marrow$S.Score - marrow$G2M.Score
marrow <- ScaleData(marrow, vars.to.regress = "CC.Difference", features = rownames(marrow))

# cell cycle effects strongly mitigated in PCA
marrow <- RunPCA(marrow, features = VariableFeatures(marrow), nfeatures.print = 10)

## PC_ 1 
## Positive:  BLVRB, KLF1, ERMAP, FAM132A, CAR2, RHD, CES2G, SPHK1, AQP1, SLC38A5 
## Negative:  TMSB4X, CORO1A, PLAC8, H2AFY, LAPTM5, CD34, LCP1, TMEM176B, IGFBP4, EMB 
## PC_ 2 
## Positive:  APOE, GATA2, RAB37, ANGPT1, ADGRG1, MEIS1, MPL, F2R, PDZK1IP1, DAPP1 
## Negative:  CTSG, ELANE, LY6C2, HP, CLEC12A, ANXA3, IGSF6, TIFAB, SLPI, MPO 
## PC_ 3 
## Positive:  APOE, GATA2, NKG7, MUC13, ITGA2B, TUBA8, CPA3, RAB44, SLC18A2, CD9 
## Negative:  DNTT, FLT3, WFDC17, LSP1, MYL10, LAX1, GIMAP6, IGHM, CD24A, MN1 
## PC_ 4 
## Positive:  CSRP3, ST8SIA6, SCIN, LGALS1, APOE, ITGB7, MFSD2B, RGL1, DNTT, IGHV1-23 
## Negative:  MPL, MMRN1, PROCR, HLF, SERPINA3G, ESAM, PTGS1, D630039A03RIK, NDN, PPIC 
## PC_ 5 
## Positive:  HDC, LMO4, CSRP3, IFITM1, FCGR3, HLF, CPA3, PROCR, PGLYRP1, IKZF2 
## Negative:  GP1BB, PF4, SDPR, F2RL2, TREML1, RAB27B, SLC14A1, PBX1, PLEK, TUBA8
# when running a PCA on cell cycle genes, actively proliferating cells remain distinct from G1
# cells however, within actively proliferating cells, G2M and S phase cells group together
marrow <- RunPCA(marrow, features = c(s.genes, g2m.genes))
DimPlot(marrow)

文中链接

[1]

在此处: https://www.dropbox.com/s/3dby3bjsaf5arrw/cell_cycle_vignette_files.zip?dl=1

(0)

相关推荐

  • 不缺好文章、idea的不要进!

    Single cell RNA-seq analysis workshop 1 Quality Control 大家好,我是晨曦,本次将开启一个全新的系列,依旧是单细胞,依旧是熟悉的晨曦解读,只不过这 ...

  • 英文医学科普|免疫系统

    The immune system includes specialized white blood cells, called lymphocytes that adapt themselves t ...

  • Seurat4.0系列教程1:标准流程

    时代的洪流奔涌而至,单细胞技术也从旧时王谢堂前燕,飞入寻常百姓家.雪崩的时候,没有一片雪花是无辜的,你我也从素不相识,到被一起卷入单细胞天地.R语言和Seurat已以势如破竹之势进入4.0时代,天问一 ...

  • Seurat4.0系列教程3:合并数据集

    在此,我们将合并两个 10X PBMC 数据集:一个包含 4K 细胞,一个包含 8K 细胞.数据集可以在这里[1]找到. 首先,我们在数据中读入并创建两个Seurat对象. library(Seura ...

  • Seurat4.0系列教程4:整合分析

    scRNA-seq整合简介 对两个或两个以上单细胞数据集的整合分析提出了独特的挑战.特别是,在标准工作流下,识别存在于多个数据集中的基因可能存在问题.Seurat v4 包括一组方法,以匹配(或&qu ...

  • Seurat4.0系列教程5:交互技巧

    此文演示了一些与 Seurat 对象交互的功能.为了演示,我们将使用在第一个教程中创建的 2,700 个 PBMC 对象.为了模拟我们有两个复制的情景,我们将随机分配每个集群中一半的细胞自" ...

  • Seurat4.0系列教程6:常用命令

    Seurat 标准流程 标准 Seurat 工作流采用原始的单细胞表达数据,旨在数据中查找clusters.此过程包括数据标准化和高变基因选择.数据归一化.高变基因的PCA.共享近邻图形的构建以及使用 ...

  • Seurat4.0系列教程7:数据可视化方法

    我们将使用之前从 2,700个 PBMC 教程中计算的 Seurat 对象在 演示可视化技术.您可以从这里[1]下载此数据集 SeuratData::InstallData("pbmc3k& ...

  • Seurat4.0系列教程9:差异表达检测

    我们使用通过SeuratData[1]包提供的 2,700个 PBMC 来演示. 加载数据 library(Seurat) library(SeuratData) pbmc <- LoadDat ...

  • Seurat4.0系列教程10:降维

    加载数据 此教程演示了如何存储和与Seurat 中的降维信息进行交互.为了演示,我们将使用SeuratData[1]包提供的 2,700 个 PBMC 对象. library(Seurat) libr ...

  • Seurat4.0系列教程11:使用sctransform

    单细胞RNA-seq数据中的生物异质性经常受技术因素(包括测序深度)影响.每个细胞中检测到的分子数量在细胞之间可能显著变化,即使在相同的细胞类型内也是如此.对 scRNA-seq 数据的解释需要有效的 ...