探序基因肿瘤研究院 整理
单细胞转录组测序是在单细胞水平进行高通量基因表达谱检测的技术,可以对复杂细胞群深入分析,表征单个细胞的表达谱,避免单个细胞的异质性生物学信息被大量细胞的均质化覆盖。
通过单细胞转录组,可鉴定细胞群、细胞亚群、筛选细胞群特有marker基因,并完成对细胞分化轨迹的追踪,从而解析细胞异质性和发育轨迹。但是单纯通过单细胞测序得到的细胞分群,是不能将恶性与非恶性细胞区分开的。
因此单细胞CNV分析应运而生,可以辅助区分肿瘤组织中的恶性与非恶性细胞。
总体感觉,这个infercnv软件比较不好用,作者在linux和windows环境下安装后,无法顺利出图。而且又出现报错,提示循环数超出,也不知道该如何解决。有一篇介绍infercnv原理比较详细的文章,在此推荐一下,简书-InferCNV:从肿瘤单细胞RNA-Seq数据中推断拷贝数变化
同类软件:
infercnv的github网址:https://github.com/broadinstitute/inferCNV
里面有代码下载和使用说明书,以及输出文件的格式及含义。
基因位置信息文件制作,参考知乎-“聚焦生信 | 肿瘤恶性细胞鉴定-inferCNV原理及应用全面教程-附代码”这篇文章。
安装infercnv:
BiocManager::install("infercnv")
要安装JAGS,这是windows的,地址:https://sourceforge.net/projects/mcmc-jags
注意安装JAGS要根据R版本,否则会报错。比如4.3.0,4.3.1等等。JAGS的下载地址为:https://sourceforge.net/projects/mcmc-jags/files/JAGS/4.x/Windows/
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("rjags")
library(rjags)
如果没有安装好JAGS,会出现报错信息:
Failed to locate any version ofJAGS version4 The rjags package is just an interface to the JAGS library Make sure you have installed JAGS-4.x.y.exe
##安装infercnv
if (!requireNamespace(“BiocManager”, quietly = TRUE))
install.packages(“BiocManager”)
BiocManager::install(version = “devel”)
BiocManager::install(“infercnv”)
library(infercnv)
运行案例:
infercnv_obj = CreateInfercnvObject(raw_counts_matrix = CountM, #CountM为矩阵格式,不能是稀疏矩阵。而且行名是基因,列名是细胞名
annotations_file = anno1, #细胞注释的数据框格式文件,且只有一列,可以不管列名,行名为细胞名
delim="\t",
gene_order_file = "D:/testinfercnv/gene.txt", #基因位置信息文件,共4列,基因名,染色体编号,起始位置,终止位置
min_max_counts_per_cell = c(100, +Inf),
ref_group_names = c("normal cells") # 需要参考的细胞的群名,要和anno1数据框里的吻合。
infercnv_obj = infercnv::run(infercnv_obj,
cutoff = 0.1,
out_dir = "D:/testinfercnv",
cluster_by_groups = F,
k_obs_groups = 8,
HMM = FALSE,
denoise = TRUE,
no_plot=TRUE,
num_threads = 4)
此时输出目录有:

各文件具体含义参考:https://github.com/broadinstitute/inferCNV/wiki/Output-Files
再运行画图的函数:
library(RColorBrewer)
infercnv::plot_cnv(infercnv_obj, #上两步得到的infercnv对象
plot_chr_scale = T, #画染色体全长,默认只画出(分析用到的)基因
output_filename = "better_plot",output_format = "pdf", #保存为pdf文件
custom_color_pal = color.palette(c("#8DD3C7","white","#BC80BD"), c(2, 2))) #改颜色
出现了报错:
ERROR [xxx] Unexpected error, should not happen.
Error in .plot_cnv_observations(infercnv_obj = infercnv_obj, obs_data = obs_data, :
Error
输出目录里的_obj文件,实际上可以ddd <- readRDS('D:/preliminary.infercnv_obj')方式读入。
我们重点关注的是细胞的cnv信息,我们读入后发现:

expr.data应该就是计算出的cnv结果,大于1表示扩增,小于1表示缺失
使用案例:
研究肿瘤细胞亚型,肿瘤进化等,参考文章:知乎-玩转单细胞高级分析|单细胞inferCNV分析篇
网友评论