前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >单细胞转录组 | 细胞周期分析

单细胞转录组 | 细胞周期分析

作者头像
生信real
发布2022-12-20 09:23:42
1.8K1
发布2022-12-20 09:23:42
举报
文章被收录于专栏:Linux基础入门Linux基础入门

前言

细胞周期一般包括G1(DNA合成前期)、S(DNA合成期)、G2(DNA合成后期)以及M(细胞分裂期)。

我们找到的高变基因,常常会包含一些细胞周期基因,它们会导致细胞聚类发生一定的偏移,即相同类型的细胞在聚类时会因为细胞周期的不同而分开。

因此我们需要对细胞周期进行分析,评估周期基因是否会对后续的聚类造成影响。

本文框架

1. 安装包

如果已经安装,此步请跳过。

代码语言:javascript
复制
install.packages('Seurat')
install.packages('dplyr')
install.packages('tidyverse')
install.packages('patchwork')

2. 加载包

代码语言:javascript
复制
library(Seurat)
library(dplyr)
library(tidyverse)
library(patchwork)

3. 设置工作路径

代码语言:javascript
复制
setwd("D:/sc-seq/BC21")

请根据自己数据的存放位置自定义路径。

4. 读取数据

该数据为标准化后的数据。

代码语言:javascript
复制
scRNA <-load("scRNA1.Rdata")

5. 细胞周期分析

5.1 查看周期基因与高变基因的交集

在单细胞周期分析时,通常只需要考虑三个阶段:G1、S、G2M(G2和M当做一个阶段)。

"cc.genes"为Seurat包自带的数据集,储存了细胞周期的marker基因:"s.genes"和"g2m.genes",在对细胞周期阶段进行评分时,除了这两类外,剩下的归为g1.genes。

CaseMatch函数格式:CaseMatch(search, match)

search:需要查找的基因;match:查找的数据集。

将周期基因与高变基因进行匹配,检查高变基因中有没有周期基因。如果周期基因不存在高变基因中,后面的过程就可以跳过了。

代码语言:javascript
复制
## 查看"cc.genes"数据集
cc.genes
#$s.genes
# [1] "MCM5"     "PCNA"     "TYMS"     "FEN1"     "MCM2"     "MCM4"     "RRM1"     "UNG"      "GINS2"   
#[10] "MCM6"     "CDCA7"    "DTL"      "PRIM1"    "UHRF1"     
#………………
#$g2m.genes
# [1] "HMGB2"   "CDK1"    "NUSAP1"  "UBE2C"   "BIRC5"   "TPX2"    "TOP2A"   "NDC80"   "CKS2"    "NUF2"   
#[11] "CKS1B"   "MKI67"   "TMPO"    "CENPF"   "TACC3"   "FAM64
#………………

## 查看周期基因与高变基因的交集
CaseMatch(c(cc.genes$s.genes,cc.genes$g2m.genes),VariableFeatures(scRNA1))
#   MCM5       PCNA       TYMS       FEN1       MCM2       MCM4       RRM1        UNG      GINS2 
#   "MCM5"     "PCNA"     "TYMS"     "FEN1"     "MCM2"     "MCM4"     "RRM1"      "UNG"    "GINS2" 
#      MCM6      CDCA7        DTL      UHRF1      HELLS       RFC2       NASP   RAD51AP1       GMNN 
#………………

5.2 细胞周期评分

CellCycleScoring函数格式:CellCycleScoring(object,s.features,g2m.features,……)

object:标准化后Seurat对象;

s.features:与s期相关的特征向量;

g2m.features:与g2m期相关的特征向量。

代码语言:javascript
复制
# 提取g2m特征向量
g2m_genes = cc.genes$g2m.genes
g2m_genes = CaseMatch(search = g2m_genes, match = rownames(scRNA1))
# 提取s期特征向量
s_genes = cc.genes$s.genes
s_genes = CaseMatch(search = s_genes, match = rownames(scRNA1))
# 对细胞周期阶段进行评分
scRNA1 <- CellCycleScoring(object=scRNA1,  g2m.features=g2m_genes,  s.features=s_genes)

查看结果

5.3 查看周期基因对细胞聚类的影响

RunPCA函数格式:RunPCA(object,features = NULL, npcs = 50,……)

object:标准化后的Seurat对象;

features:用来进行PCA的基因集合;

DimPlot函数格式:DimPlot(object,reduction,group.by,……)

object:主成分分析后的Seurat对象;

reduction:选择降维方式;

group.by:指定绘图分组信息。

代码语言:javascript
复制
# 对周期基因进行主成分分析
PCA <- RunPCA(scRNA1, features = c(s_genes, g2m_genes))
# 对主成分分析结果进行可视化
PCA_plot <- DimPlot(PCA, reduction = "pca", group.by = "Phase")
# 将图片输出到画板
PCA_plot

查看图片

我们可以看到三个周期细胞大部分聚集在一个点上,说明对后续降维聚类影响不大。如果三个周期基因分开的很明显,则有影响。

6. 消除细胞周期的影响(可选)

对周期基因再次标准化,"features"表示需要标准化的基因名向量;如果提供"vars.to.regress"会对其内容进行单独标准化;

在这里我们不需要进行标准化。

代码语言:javascript
复制
#scRNA2 <- ScaleData(scRNA1, vars.to.regress = c("S.Score", "G2M.Score"), features = rownames(scRNA1))

根据自己的实验需要选择是否再次标准化。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信百宝箱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 本文框架
  • 1. 安装包
  • 2. 加载包
  • 3. 设置工作路径
  • 4. 读取数据
  • 5. 细胞周期分析
  • 5.1 查看周期基因与高变基因的交集
  • 5.2 细胞周期评分
  • 查看结果
    • 5.3 查看周期基因对细胞聚类的影响
      • 查看图片
        • 6. 消除细胞周期的影响(可选)
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档