通过将基因与其染色体位置对齐并对相对表达值应用移动平均值来估计拷贝数变异 (CNV),每个染色体内有 100 个基因的滑动窗口(跟inferCNV的原理一致),首先,使用 InferCNV 包根据它们各自的基因组定位排列基因。 作为非恶性细胞的参考集,使用了来自非恶性皮层样本的空间转录组数据集(注意这里ref的选择)。 为了提高速度和计算能力,subsample是可选的。 为了避免任何特定基因对移动平均线的相当大的影响,将相对表达值限制在 [-2.6,2.6] 的范围内,将所有高于/低于 exp(i) = |2.6| 的值替换为 exp(i) = |2.6|。然后重新导入导出的 .RDS 输出文件,并按估计的 CNA 的染色体平均值进行分组,并使用 SPATA 对象的 fdata slot与它们的空间位置对齐。使用 SPATA::joinWithFeatures() 函数,然后提取了集群比较。空间数据的 CNA 分析是通过 SPATA2::runCnvAnalysis() 命令在 SPATA2 中实现的。在下一步中,估计的 CNA 值重新排列到定义的染色体bin中。这些 bin 由 SPATAwrappers 函数 Create.ref.bins() 创建,使用 SPATA 对象和给定 bin 的大小作为输入。在本研究中,使用了 1Mbp 的 bin 大小,产生 3847 个染色体 bin,每个 bin 平均覆盖 5.5 个基因。使用 10kbp 滑动窗口进行重新缩放和插值。对于标准化,使用了一个 loess 回归模型,用于确定来自 InferCNV 输出的拷贝数值。使用 SPATAwrappers::run-CNV.Normalization() 函数进行Interpolation和归一化。
SPATA分析CNV的代码如下
library(SPATA2)
spata_obj <- loadSpataObject("data/spata-obj-gbm275.RDS")###加载infercnv分析得到的rds
spata_obj <-
runCnvAnalysis(
object = spata_obj
directory_cnv_folder = "data-gmb275/cnv-results" # example directory
cnv_prefix = "Chr"
)
# change input
spata_obj <-
runCnvAnalysis(
object = spata_obj
directory_cnv_folder = "data-gmb275/cnv-results" # example directory to
clear_noise_via_ref_mean_sd = list(sd_amplifier = 2)
# example on how to use the functions arguments if you want to specify the reference (ref_*)
runCnvAnalysis(
object = spata_obj,
directory_cnv_folder = "data-gmb275/cnv-results", # example directory to
ref_annotation = cnv_ref$annotation,
ref_mtr = cnv_ref$mtr,
ref_regions = cnv_ref$regions
)
##CNV-Results
cnv_results <- getCnvResults(spata_obj)
names(cnv_results)
##Visualization
plotCnvResults(object = spata_obj)
plotSurface(object = spata_obj, color_by = "seurat_clusters")
plotCnvResults(object = spata_obj, across = "seurat_clusters")
###CNV-Heatmap
getCnvFeatureNames(object = spata_obj)
# are part of all feature names
getFeatureNames(object = spata_obj)
## numeric integer numeric numeric
## "nCount_Spatial" "nFeature_Spatial" "percent.mt" "percent.RB"
## factor character factor factor
## "seurat_clusters" "segmentation" "Leiden_UMAP" "cluster"
## logical numeric numeric numeric
## "keep" "Chr0" "Chr1" "Chr10"
## numeric numeric numeric numeric
## "Chr11" "Chr12" "Chr13" "Chr14"
## numeric numeric numeric numeric
## "Chr15" "Chr16" "Chr17" "Chr18"
## numeric numeric numeric numeric
## "Chr19" "Chr2" "Chr20" "Chr21"
## numeric numeric numeric numeric
## "Chr22" "Chr23" "Chr3" "Chr4"
## numeric numeric numeric numeric
## "Chr5" "Chr6" "Chr7" "Chr8"
## numeric
## "Chr9"
plotSurface(object = spata_obj, color_by = "Chr7", pt_clrsp = "Reds 3", c1 = 1)
plotSurface(object = spata_obj, color_by = "Chr10", pt_clrsp = "Blues 3", rev = FALSE, c1 = 1)
CNA subclone analysis
为了根据 CNA 数据确定亚克隆,进行了 PCA 分析,然后对前 30 个组分进行 KMeans 聚类(CNV得到的矩阵进行分析)。为了确定最优的tree cut,我们估计了 Calinski-Harabasz 指数并使用了 k~CH 指数曲线的第一个峰值(CH 指数 vs Number of clusters)。 下一个目标是量化空间上不同的转录程序与亚克隆结构的空间相关性和重叠。 首先,我们通过拟合值 (f(ck)) 估计给定 CNA 亚克隆的每个点 (S1, S2;.; Sk) 到 KMeans 质心 (c) 的距离 (Sdist),如下所示:
推断了 scRNA-seq 数据集的拷贝数变化,并提取了肿瘤和非恶性细胞的特征,这些特征显示出很大的相似性。
接下来,验证了从 RNA-seq 数据调用的推断 CNA 反映 DNA 测序中检测到的 CNA 的程度。 因此,使用了最近发表的 slide-RNA-seq 和 slide-DNA-seq 数据集,并比较了两种空间测序方法检测到的 CNA。 两种验证方法都表明,从空间转录组学中获得的推断 CNA 反映了使用 10X Visium 平台获得的空间分辨转录组学中的实际染色体增益和损失。
空间自相关使用 Moran 的 I 统计值根据特征位置和属性值确定点与其邻居的空间依赖性。 这允许评估定义的基因表达或特征是分组的、分布的还是随机的。 如果 Z 值或 p 值表示统计显著性,则 Moran's I 指数值为正表示有聚集趋势,而 Moran's I 指数值为负表示有分散趋势。 自相关定义为:
生活很好,有你更好,主要还是针对CNV的分析为主