思路分享
作者,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 代码运行次数:0运行 复制WGSt <- readRDS(paste0("data-raw/P5931/WGS/raw_counts.rds"))
WGSn <- readRDS(paste0("data-raw/P5931/WGS/ref_counts.rds"))
一些基础文件 代码语言:javascript 代码运行次数:0运行 复制# 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 ()
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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制WGSt <- readRDS(paste0("data-raw/P5931/WGS/raw_counts.rds"))
WGSn <- readRDS(paste0("data-raw/P5931/WGS/ref_counts.rds"))
一些基础文件 代码语言:javascript 代码运行次数:0运行 复制# 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 ()
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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 代码运行次数:0运行 复制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 生活很好,有你更好