首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >思路分享---关于WES联合单细胞RNA检测CNV的讨论

思路分享---关于WES联合单细胞RNA检测CNV的讨论

原创
作者头像
追风少年i
发布2025-04-20 09:38:21
发布2025-04-20 09:38:21
2430
举报

作者,Evil Genius

之前提到过,对于肿作者,Evil Genius

之前提到过,对于肿瘤来讲,绝大部分的诱发因素并不是CNV,而是突变,随着认识的越来越深入,单细胞检测CNV的准确性遭到了越来越多的质疑,基因组 + 单细胞数据联合检测CNV成了目前的最优解。

大家可以参考文章多组学更新---WES联合scRNA分析肿瘤CNV事件

举一个简单的例子,神经母细胞瘤,诱发因素包括MYCN扩增以及ALK和TP53突变,假设单细胞CNV检测非常准确,MYCN扩增可以检测到,但是具有ALK或者TP53突变的癌细胞,如何识别?那是不是在分析中,就会漏掉这些突变导致的癌细胞,从而导致分析的结果完全错误呢?

况且单细胞还是一种噪音极高的数据,检测CNV的准确性并没有很高。

所以借助多组学的力量是必须的。

WES/WGS分析CNV与突变信息,联合scRNA识别单细胞精度的恶性细胞。

首先第一步,利用配对的WES/WGS数据分析突变与CNV信息。

第二步,借助基因组 + 转录组的力量识别恶性细胞。

我们来实现一下

单细胞 + 基因组检测恶性细胞

先来看看WGS数据(配对样本)

代码语言:javascript
复制
WGSt <- readRDS(paste0("data-raw/P5931/WGS/raw_counts.rds"))
WGSn <- readRDS(paste0("data-raw/P5931/WGS/ref_counts.rds"))

一些基础文件

代码语言:javascript
复制
# Size of each chromosome (hg19 and GRCh38 are provided.)
size <- read.table("sizes.cellranger-GRCh38-1.0.0.txt", stringsAsFactors = F)

# List of cyclegenes retrieved from the "CopyKAT"package (https://github.com/navinlabcode/copykat)
cyclegenes <- readRDS("cyclegenes.rds")

# bed file indicating gene positions (hg19 and GRCh38 are provided.)
bed <- read.table("hg38.genes.bed", sep='\t', header = T)

读取单细胞数据

代码语言:javascript
复制
mtx <- readMM("matrix.mtx.gz")
barcodes <- read.table("barcodes.tsv.gz", stringsAsFactors = F, sep='\t', header=F)
features <- read.table("features.tsv.gz", stringsAsFactors = F, sep='\t', header=F)
celltype0 <- readRDS("celltype_all.rds")

使用匹配的WGS/WES数据分段基因组

代码语言:javascript
复制
library(Clonalscope)
dir_path <- "/output/"
Obj_filtered <- Createobj_bulk(raw_counts=WGSt, # from matched DNA sequencing (bulk/single)
                            ref_counts=WGSn, # from matched DNA sequencing (bulk/single)
                            samplename= "Sample",
                            genome_assembly="GRCh38", dir_path=dir_path, size=size, assay='WGS')

Obj_filtered <- Segmentation_bulk(Obj_filtered=Obj_filtered,
                               plot_seg = TRUE, hmm_states = c(0.8, 1.1, 1.2))

在scRNA-seq数据中检测亚克隆

代码语言:javascript
复制
celltype <- celltype0
celltype[which(!grepl('Epithelial', celltype[,2])),2] <- 'normal'

clustering_barcodes <- celltype[which(grepl("Epithelial",celltype[,2])),1]

Input_filtered <- FilterFeatures(mtx=mtx, barcodes=barcodes, features=features, cyclegenes=cyclegenes)

# Remove raw inputs
rm(mtx); rm(barcodes); rm(features)

Cov_obj <- RunCovCluster(mtx=Input_filtered$mtx, barcodes=Input_filtered$barcodes, 
                      features=Input_filtered$features, bed=bed, 
                      celltype0=celltype, var_pt=0.99, var_pt_ctrl=0.99, include='all',
                      alpha_source='all', ctrl_region=NULL, 
                      seg_table_filtered=Obj_filtered$seg_table, size=size,
                      dir_path=dir_path, breaks=50, prep_mode = 'intersect', est_cap = 2,
                      clust_mode='cna_only',clustering_barcodes=clustering_barcodes)

可视化

代码语言:javascript
复制
clustering <- Cov_obj$result_final$clustering
clustering2 <- Cov_obj$result_final$clustering2
result <- Cov_obj$result_final$result
table(result$Zest)
PlotClusters(df = Cov_obj$result_final$df_obj$df, celltype = celltype0, Assign_obj =result, mode = "genome",  fontsize = 7, lab_mode='annot')

甚至可以检测空间的恶性spot

生活很好,有你更好瘤来讲,绝大部分的诱发因素并不是CNV,而是突变,随着认识的越来越深入,单细胞检测CNV的准确性遭到了越来越多的质疑,基因组 + 单细胞数据联合检测CNV成了目前的最优解。

大家可以参考文章多组学更新---WES联合scRNA分析肿瘤CNV事件

举一个简单的例子,神经母细胞瘤,诱发因素包括MYCN扩增以及ALK和TP53突变,假设单细胞CNV检测非常准确,MYCN扩增可以检测到,但是具有ALK或者TP53突变的癌细胞,如何识别?那是不是在分析中,就会漏掉这些突变导致的癌细胞,从而导致分析的结果完全错误呢?

况且单细胞还是一种噪音极高的数据,检测CNV的准确性并没有很高。

所以借助多组学的力量是必须的。

WES/WGS分析CNV与突变信息,联合scRNA识别单细胞精度的恶性细胞。

首先第一步,利用配对的WES/WGS数据分析突变与CNV信息。

第二步,借助基因组 + 转录组的力量识别恶性细胞。

我们来实现一下

单细胞 + 基因组检测恶性细胞

先来看看WGS数据(配对样本)

代码语言:javascript
复制
WGSt <- readRDS(paste0("data-raw/P5931/WGS/raw_counts.rds"))
WGSn <- readRDS(paste0("data-raw/P5931/WGS/ref_counts.rds"))

一些基础文件

代码语言:javascript
复制
# Size of each chromosome (hg19 and GRCh38 are provided.)
size <- read.table("sizes.cellranger-GRCh38-1.0.0.txt", stringsAsFactors = F)

# List of cyclegenes retrieved from the "CopyKAT"package (https://github.com/navinlabcode/copykat)
cyclegenes <- readRDS("cyclegenes.rds")

# bed file indicating gene positions (hg19 and GRCh38 are provided.)
bed <- read.table("hg38.genes.bed", sep='\t', header = T)

读取单细胞数据

代码语言:javascript
复制
mtx <- readMM("matrix.mtx.gz")
barcodes <- read.table("barcodes.tsv.gz", stringsAsFactors = F, sep='\t', header=F)
features <- read.table("features.tsv.gz", stringsAsFactors = F, sep='\t', header=F)
celltype0 <- readRDS("celltype_all.rds")

使用匹配的WGS/WES数据分段基因组

代码语言:javascript
复制
library(Clonalscope)
dir_path <- "/output/"
Obj_filtered <- Createobj_bulk(raw_counts=WGSt, # from matched DNA sequencing (bulk/single)
                            ref_counts=WGSn, # from matched DNA sequencing (bulk/single)
                            samplename= "Sample",
                            genome_assembly="GRCh38", dir_path=dir_path, size=size, assay='WGS')

Obj_filtered <- Segmentation_bulk(Obj_filtered=Obj_filtered,
                               plot_seg = TRUE, hmm_states = c(0.8, 1.1, 1.2))

在scRNA-seq数据中检测亚克隆

代码语言:javascript
复制
celltype <- celltype0
celltype[which(!grepl('Epithelial', celltype[,2])),2] <- 'normal'

clustering_barcodes <- celltype[which(grepl("Epithelial",celltype[,2])),1]

Input_filtered <- FilterFeatures(mtx=mtx, barcodes=barcodes, features=features, cyclegenes=cyclegenes)

# Remove raw inputs
rm(mtx); rm(barcodes); rm(features)

Cov_obj <- RunCovCluster(mtx=Input_filtered$mtx, barcodes=Input_filtered$barcodes, 
                      features=Input_filtered$features, bed=bed, 
                      celltype0=celltype, var_pt=0.99, var_pt_ctrl=0.99, include='all',
                      alpha_source='all', ctrl_region=NULL, 
                      seg_table_filtered=Obj_filtered$seg_table, size=size,
                      dir_path=dir_path, breaks=50, prep_mode = 'intersect', est_cap = 2,
                      clust_mode='cna_only',clustering_barcodes=clustering_barcodes) 

可视化

代码语言:javascript
复制
clustering <- Cov_obj$result_final$clustering
clustering2 <- Cov_obj$result_final$clustering2
result <- Cov_obj$result_final$result
table(result$Zest)
PlotClusters(df = Cov_obj$result_final$df_obj$df, celltype = celltype0, Assign_obj =result, mode = "genome",  fontsize = 7, lab_mode='annot')

甚至可以检测空间的恶性spot

生活很好,有你更好

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者,Evil Genius
  • 之前提到过,对于肿作者,Evil Genius
  • 之前提到过,对于肿瘤来讲,绝大部分的诱发因素并不是CNV,而是突变,随着认识的越来越深入,单细胞检测CNV的准确性遭到了越来越多的质疑,基因组 + 单细胞数据联合检测CNV成了目前的最优解。
  • 大家可以参考文章多组学更新---WES联合scRNA分析肿瘤CNV事件
  • 举一个简单的例子,神经母细胞瘤,诱发因素包括MYCN扩增以及ALK和TP53突变,假设单细胞CNV检测非常准确,MYCN扩增可以检测到,但是具有ALK或者TP53突变的癌细胞,如何识别?那是不是在分析中,就会漏掉这些突变导致的癌细胞,从而导致分析的结果完全错误呢?
  • 况且单细胞还是一种噪音极高的数据,检测CNV的准确性并没有很高。
  • 所以借助多组学的力量是必须的。
  • WES/WGS分析CNV与突变信息,联合scRNA识别单细胞精度的恶性细胞。
  • 首先第一步,利用配对的WES/WGS数据分析突变与CNV信息。
  • 第二步,借助基因组 + 转录组的力量识别恶性细胞。
  • 我们来实现一下
  • 单细胞 + 基因组检测恶性细胞
  • 先来看看WGS数据(配对样本)
  • 一些基础文件
  • 读取单细胞数据
  • 使用匹配的WGS/WES数据分段基因组
  • 在scRNA-seq数据中检测亚克隆
  • 可视化
  • 甚至可以检测空间的恶性spot
  • 生活很好,有你更好瘤来讲,绝大部分的诱发因素并不是CNV,而是突变,随着认识的越来越深入,单细胞检测CNV的准确性遭到了越来越多的质疑,基因组 + 单细胞数据联合检测CNV成了目前的最优解。
  • 大家可以参考文章多组学更新---WES联合scRNA分析肿瘤CNV事件
  • 举一个简单的例子,神经母细胞瘤,诱发因素包括MYCN扩增以及ALK和TP53突变,假设单细胞CNV检测非常准确,MYCN扩增可以检测到,但是具有ALK或者TP53突变的癌细胞,如何识别?那是不是在分析中,就会漏掉这些突变导致的癌细胞,从而导致分析的结果完全错误呢?
  • 况且单细胞还是一种噪音极高的数据,检测CNV的准确性并没有很高。
  • 所以借助多组学的力量是必须的。
  • WES/WGS分析CNV与突变信息,联合scRNA识别单细胞精度的恶性细胞。
  • 首先第一步,利用配对的WES/WGS数据分析突变与CNV信息。
  • 第二步,借助基因组 + 转录组的力量识别恶性细胞。
  • 我们来实现一下
  • 单细胞 + 基因组检测恶性细胞
  • 先来看看WGS数据(配对样本)
  • 一些基础文件
  • 读取单细胞数据
  • 使用匹配的WGS/WES数据分段基因组
  • 在scRNA-seq数据中检测亚克隆
  • 可视化
  • 甚至可以检测空间的恶性spot
  • 生活很好,有你更好
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档