介绍
inferCNV是用于单细胞测序数据推断肿瘤细胞拷贝数变异的工具。
引言
之前我做inferCNV都是仅仅出一张图,肉眼验证一下Seurat分群是否正确,没有利用其中间产生的大量有意义的文件。直到这次,我把我认为的肿瘤细胞拿出来重新聚类后才发现,里面又分出了正常细胞的亚群!!这令我十分苦恼,因此,对于肿瘤细胞的定义,我还是打算用CNV而不是单纯的Seurat聚类结果来定义。
inferCNV基本用法
输入
inferCNV的使用需要三个文件:基因在染色体上的位置信息文件,细胞类型文件,以及单细胞表达矩阵文件。
基因在染色体上的位置信息文件第一列为gene symbol名称,第二列是染色体号,后两列是基因的始末位置,制表符分隔。格式如下:

细胞类型文件的第一列为细胞名,第二列是细胞的分组信息,可以是确定的细胞类型,也可以是细胞的分组编号等等,制表符分隔。格式如下:

示例代码
pbmc_mini <- readRDS('../data3/pbmc_mini.RDS')
table(pbmc_mini$seurat_clusters)
celltype <- cbind(colnames(pbmc_mini),as.character(pbmc_mini@meta.data$seurat_clusters))
head(celltype)
write.table(celltype,'../data3/infercnv_mini3/celltype_pbmc_mini_harmony_0.1.txt',
sep = '\t',row.names=F,col.names=F,quote=F) # 准备细胞类型文件
mtx <- pbmc_mini@assays$RNA@counts
infercnv_obj = CreateInfercnvObject(
raw_counts_matrix = mtx,
annotations_file = '../data3/infercnv_mini3/celltype_pbmc_mini_harmony_0.1.txt',
gene_order_file="../data2/gencode_v19_gene_pos.txt",
ref_group_names=c("4",'8'))
infercnv_obj = infercnv::run(infercnv_obj,
cutoff=0.1, # use 1 for smart-seq, 0.1 for 10x-genomics
out_dir = '../data3/infercnv_mini3/', # dir is auto-created for storing outputs
cluster_by_groups=T, # 选择TRUE是按样本分组 改为FALSE会进行按另一个参数k_obs_groups给出的分组数(默认为1)进行分组
denoise=F,
HMM=F, # 是否基于HMM预测CNV,True的话时间很久
no_prelim_plot=TRUE,
analysis_mode ='subclusters' # 区分肿瘤亚型,慢)
结果解读
可以看到,4000个细胞跑出了4G的结果文件:

infercnv.png
降噪之后生成的最终热图,图中的数值是"Residual expression values",可以简单理解为基因表达值的另一种形式

infercnv.observations_dendrogram.txt
树状图的newick格式,对应热图的观测panel的“树”

run.final.infercnv_obj
run.final.infercnv_obj <- readRDS('../data6/infercnv/2016_Nature_IDHO/run.final.infercnv_obj')
这个RDS对象包括如下内容:
@expr.data:对应最终热图的矩阵。行为保留的基因,列为细胞。
@count.data:原始的counts矩阵。稀疏矩阵,行为保留的基因,列为细胞。
@gene.order:保留的基因在染色体上的位置
@reference_grouped_cell_indices:对应最终热图的reference细胞序号
@observation_grouped_cell_indices:对应最终热图的observation细胞序号
@tumor_subgroups:?
@options:参数列表
expr.infercnv.dat
和run.final.infercnv_obj@expr.data一样
infercnv.heatmap_thresholds.txt
?
infercnv.observation_groupings.txt
observation细胞的分组情况
infercnv.references.txt
reference细胞的cnv矩阵
infercnv.observations.txt
observation细胞的cnv矩阵
参考
https://www.jianshu.com/p/c01f56bf031f
https://www.jianshu.com/p/33fd4ca8ae00
网友评论