美文网首页R包试读单细胞
单细胞CNV分析-copyKAT

单细胞CNV分析-copyKAT

作者: Hayley笔记 | 来源:发表于2021-05-09 00:05 被阅读0次

    对于肿瘤的单细胞样本,在做完细胞质控和细胞类型鉴定之后,可以进入CNV分析。

    CNV(Copy number variation, 拷贝数变异)是由基因组发生重排而导致的, 一般指长度为1 kb 以上的基因组大片段的拷贝数增加或者减少, 主要表现为亚显微水平的缺失和重复。CNV 是基因组结构变异(Structural variation, SV) 的重要组成部分。CNV位点的突变率远高于SNP(Single nucleotide polymorphism), 是人类疾病的重要致病因素之一。
    目前常用于单细胞CNV分析的软件包括inferCNVcopyKAT,实测copyKAT效果好于inferCNV,准确性更高,速度也更快。(copyKAT是专门为了单细胞CNV分析设计的,inferCNV不是。)

    1. copyKAT简介

    copyKAT文章
    • 流程图:
    • CopyKAT算法概述:

    在统计学上,CopyKAT将贝叶斯方法与层次聚类相结合,计算单个细胞的基因组拷贝数分布,并从高通量单细胞转录组数据中定义克隆子结构。
    首先,单细胞转录组数据的Unique Molecular Identifier(UMI)的基因表达矩阵作为CopyKAT的输入,通过它们的基因组坐标对它们进行排序,并对基因的排列进行注释。之后,用Freeman-Tukey变换来稳定方差,然后采用多项式动态线性建模矫正单细胞UMI计数矩阵中的异常值。
    下一步是建立一个高可信度的正常二倍体细胞子集,用来推测正常二倍体细胞的拷贝数基线值。为此,研究人员将所有单细胞集中到几个小的亚群分类中,并使用高斯混合模型估算每个分类的方差。通过严格的分类标准,具有最小估计方差的聚类被定义为“标准的二倍体细胞”。
    为了检测染色体断点,他们整合泊松-伽玛模型和马尔可夫链蒙特卡罗迭代生成每个基因窗口的后验均值,然后应用Kolmogorov-Smirnov检验对均值无显著差异的相邻窗口进行合并,然后计算每个窗口的最终拷贝数值,以此作为跨越每个细胞中相邻染色体断点的所有基因的后验平均值。

    2. copyKAT分析实操

    2.1 数据准备
    library(Seurat)
    library(copykat)
    library(tidyverse)
    rm(list = ls())
    scRNA <- readRDS("scRNAsclc.rds")
    # scRNA <- UpdateSeuratObject(scRNA)
    counts <- as.matrix(scRNA@assays$RNA@counts)
    

    ⚠️:做CNV输入的是原始的count数据。有文献提示,使用count数据和log后的data数据来做分析没有什么差别(copyKAT和inferCNV都是),但还是建议使用count数据,因为它自己会进行log标准化。

    2.2 CNV分析

    copyKAT进行CNV分析不需要给正常的/恶性的参考细胞,它会自己从数据集中判断哪些是最接近于2倍体的正常细胞,以正常细胞为参考,其他细胞跟正常细胞相比来推测CNV变异。

    cnv <- copykat(rawmat=counts, ngene.chr=5, sam.name="SCLC", n.cores=8)
    # ngene.chr参数是过滤细胞的一个标准,它要求被用来做CNV预测的细胞,一个染色体上至少有5个基因。
    # sam.name定义样本名称 (sample name),会给出来的文件加前缀
    saveRDS(cnv, "cnv.rds")
    
    绿色是正常细胞,橘色是copykat判断的恶性细胞。热图中蓝色是缺失的,橙色是多于二倍体的。

    上一步运行得到的cnv的结构:

    # SCLC_copykat_prediction.txt是上一步生成的结果
    mallignant <- read.delim("SCLC_copykat_prediction.txt", row.names = 1)
    # 原始count中有889个细胞,malignant只有824个,有65个细胞被ngene.chr=5过滤掉了
    # 把细胞的良恶性信息加入metadata
    scRNA <- AddMetaData(scRNA, metadata = mallignant)
    p1 <- DimPlot(scRNA, group.by = "celltype", label = T) + ggsci::scale_color_lancet()
    p2 <- DimPlot(scRNA, group.by = "copykat.pred") + scale_color_manual(values = c("red", "gray"))
    pc <- p1 + p2
    ggsave("pred_mallignant.pdf", pc, width = 12, height = 5)
    
    神经元细胞发生了恶变
    scRNA$celltype2 <- scRNA$celltype
    scRNA$celltype2[scRNA$copykat.pred=="aneuploid"] <- "mallignant_cell"
    table(scRNA$celltype2)
    #         B_cell mallignant_cell        Monocyte         Neurons 
    #            123              91              60              23 
    #        NK_cell         T_cells 
    #            105             487 
    

    把神经元细胞分成了恶性的和非恶性的,可以看到,非恶性的有23个,恶性的有91个。

    后续可以根据需要使用subset将恶性细胞提出来进行后续更深入的分析。

    相关文章

      网友评论

        本文标题:单细胞CNV分析-copyKAT

        本文链接:https://www.haomeiwen.com/subject/trhxdltx.html