前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着小鱼头学单细胞测序-如何鉴定肿瘤单细胞中的的CNV

跟着小鱼头学单细胞测序-如何鉴定肿瘤单细胞中的的CNV

作者头像
作图丫
发布2022-03-29 10:48:42
7250
发布2022-03-29 10:48:42
举报
文章被收录于专栏:作图丫

导语

GUIDE ╲

拷贝数变异(CNV)在癌症的发生和发展中起着重要作用。随着单细胞测序数据的日渐增长,如何从单细胞转录组数据鉴定CNV 并进一步区分肿瘤细胞也成为了大家感兴趣的课题,今天我们介绍一款基于scRNA-seq数据鉴定CNV的R包。

inferCNV

R包inferCNV是一款基于肿瘤单细胞转录组数据,识别染色体拷贝数变异的工具。主要原理是通过对比肿瘤细胞与“正常”参考细胞的基因表达,确定每个基因的相对表达强度,最终通过生成的热图来显示每条染色体的相对表达强度。另外,inferCNV基于残差来最小化噪声,以此来预测染色体拷贝数异常区域,进而通过该异质性对细胞进行聚类。这里我们基于其官网的文档为大家介绍如何使用inferCNV。

本地安装

在安装inferCNV之前,我们首先需要安装一个系统包JAGS,大家可根据自己的电脑系统选择相应的版本。JAGS下载地址:

https://sourceforge.net/projects/mcmc-jags/files/JAGS/4.x/

代码语言:javascript
复制
# R version 3.6.0 以上
if (!requireNamespace("BiocManager", quietly = TRUE))
     install.packages("BiocManager")
BiocManager::install("infercnv")

inferCNV也提供了docker安装:

代码语言:javascript
复制
sudo docker pull trinityctat/infercnv:latest
docker run --rm -it -v `pwd`:`pwd` trinityctat/infercnv:latest bash

数据要求

使用inferCNV之前,我们需要准备以下三个输入文件:

1. 单细胞转录的基因表达数据(gene by cell matrix):

  • inferCNV对smart-seq2 和10x产生的表达矩阵都兼容,基因X细胞(行X列)。
  • 矩阵可保存为tab分隔文件;inferCNV也支持稀疏矩阵格式。

2. 细胞注释文件标明肿瘤与正常细胞(annotation file)

文件包含两列信息,一列为细胞id,一列为细胞类型,由tab分隔,不需要列名。

当包含多种正常细胞时,可标注具体的细胞类型,在分析中会对不同类型的正常细胞分开处理;若将其统一标注为“normal”,则会分析中被统一处理;

不同的肿瘤细胞也可通过标注“malignant_{patient}”区分,在聚类分析中可以选择是否根据不同肿瘤细胞来分类。

由于只有在注释文件中列出的细胞才会被分析,因此如果我们只对某一部分细胞感兴趣的话,可以通过修改注释文件来达到subsetting的目的,而不需要对表达矩阵,就方便很多。

3. 基因注释文件,标示每个基因的位置信息

  • tab分隔文件,包含四列信息:基因名、染色体、起始位点、终止位点,不需要列名。
  • 只有同时出现在表达矩阵中并有位置注释的基因才会被分析,通过修改该文件来筛除部分不感兴趣的基因。
  • 该文件中的染色体号出现顺序与输出图中的染色体顺序是一致的,所以建议在这里按照染色体号从小到大的顺利排列。
  • 基因的位置信息可以从gtf文件中获取。
代码语言:javascript
复制
WASH7P  chr1    14363   29806
LINC00115       chr1    761586  762902
NOC2L   chr1    879584  894689
MIR200A chr1    1103243 1103332
SDF4    chr1    1152288 1167411
UBE2J2  chr1    1189289 1209265

分析流程及使用

inferCNV的主要分析流程包含以下步骤:

1. 基因过滤:设置min_cells_per_gene,筛除表达矩阵中表达量小于阈值的基因

2. 创建preliminary infercnv 对象:包括标准化,log(x+1)变换,基于滑窗方法沿着染色体根据基因表达强度做smoothing处理;估算肿瘤细胞相对于参考细胞的相对表达差异。

3. 得到的preliminary object可进一步进行表达值去噪

4. 预测肿瘤细胞的CNV 位置

inferCNV的基本使用包含两步主要步骤:

1. 基于以上三个输入文件构建InferCNV对象:CreateInfercnvObject()

代码语言:javascript
复制
library(infercnv)
# 构建对象
infercnv_obj = CreateInfercnvObject(raw_counts_matrix="singleCell.counts.matrix",
                                    annotations_file="cellAnnotations.txt",
                                    delim="\t",
                                    gene_order_file="gene_ordering_file.txt",
                                    ref_group_names=c("normal")) 

请注意,当有不同类型的正常细胞类型时,可以修改参数ref_group_names;当没有参考细胞时,参数ref_group_names可设置为NULL,此时对于每个基因,参考表达值为该基因在所有细胞中的表达平均值。该函数也支持通过设置min_max_counts_per_cell来进一步筛除细胞,不过还是建议大家在使用inferCNV之前,先做质控去除低质量细胞。

2. 创建对象之后,可以通过infercnv::run()进行分析

代码语言:javascript
复制
# 主要分析模块,鉴定CNV信号
infercnv_obj = infercnv::run(infercnv_obj,
                             cutoff=1,  # 决定多少基因被用于分析:smart-seq数据最优设置为1, 10x数据最优为0.1
                             out_dir="output_dir",  # 自动创建输出文件夹
                             cluster_by_groups=T,   # 如果有不同类型或来源的肿瘤细胞,TRUE表示据此类型做区分,在做聚类
                             denoise=T, # 去噪
                             HMM=T # CNV 预测
                             )

denoise提供了去噪的选择,当设置为TRUE时,有三种去噪方法可供选择:

  • 设置固定阈值,表示与参考细胞表达平均值的固定差异, 例如noise_filter=0.1
  • (默认设置)设置动态阈值,表示与参考细胞表达平均值的标准差,例如sd_amplifier=1.5
  • 基于noise_filter或者sd_amplifier,将其作为logistic model的中点来缩小与参考细胞表达平均值的差异;例如设置sd_amplifier=3 以及noise_logistic=TRUE

参数HMM提供了CNV预测的分析,设置为TRUE时,有两种模型选择:

  • i3 HMM:包含deletion、neutral 和amplification 三态的CNV 模型
  • i6 HMM (默认选择):包含六种状态的CNV模型
  • 0x: complete loss
  • 0.5x: loss of one copy
  • 1x: neutral
  • 1.5x: addition of one copy
  • 2x: addition of two copies
  • 3x: essentially a placeholder for >2x copies but modeled as 3x

shinyApp

infercnv也提供了一款互动分析平台(R shiny app)InfercnvApp,方便对R语言不太熟悉的朋友使用。大家感兴趣的可以尝试一下。

说明文件来自:https://github.com/broadinstitute/infercnvApp/wiki

安装方法如下:

代码语言:javascript
复制
library("devtools")
devtools::install_github("broadinstitute/infercnvApp")
#运行
infercnvApp::infercnvApp()

小编总结

infercnv在癌症单细胞的处理分析比较常用,经常被用来进行癌细胞的判断以及肿瘤异质性方面的分析,代码简练,操作简便,也提供了多种使用平台。我们以后也会为大家多多介绍各类单细胞分析的好用工具,敬请关注!

Reference

inferCNV of the Trinity CTAT Project. https://github.com/broadinstitute/inferCNV

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

本文分享自 作图丫 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档