Bayesspace支持三种加载方式Singlecellexperiment
用于分析。
使用的visium数据集处理太空游侠可以直接通过readvisium()
功能。此函数仅采用通往空间Ranger输出目录的路径(包含空间/
和Filtered_feature_bc_matrix/
子目录)并返回Singlecellexperiment
。
其次,可以通过getrds()
功能。此功能需要两个参数 - 数据集的名称,以及数据集中的示例名称。
最后,Singlecellexperiment
可以通过计数矩阵和行和列数据表手动构造对象。BAYESSPACE仅要求将点阵列坐标作为列提供排
和上校
在酷塔
。(请注意,增强visium数据集还需要组织图像中每个位置的像素坐标,但是在这种情况下,数据集应加载readvisium()
,将自动加载这些数据。)
图书馆(矩阵)rowdata < -read.csv((“路径/到/rowdata.csv”,,,,stringsasfactors =错误的)coldata < -read.csv((“路径/到/coldata.csv”,,,,stringsasfactors =错误的,,,,row.names =1)计数< -read.csv((“路径/到/counts.csv.gz”,,,,row.names =1,,,,check.names =F,stringsasfactors =错误的))sce < -Singlecellexperiment((测定=列表((计数=作为(计数,“ dgcmatrix”),rowdata =Rowdata,Coldata =Coldata)
我们将继续从2018年的空间转录组学论文中获取黑色素瘤样本,以在此小插图中的其余示例中进行。
BAYESSPACE需要最少的数据预处理,但是我们提供了一个辅助功能来自动化它。
spatialpreprocess()
log normations缩放计数矩阵并在顶部执行PCAn.hvgs
高度可变的基因,保持顶部n.pcs
主要组件。此外,在Singlecellexperiment
用于下游分析。如果您不想重播PCA,请运行spatialpreprocess()
带有国旗skip.pca = true
只会添加元数据Bayesspace所需。
在这里,我们省略了日志正态化,因为所有数据集可通过getrds()
已经包含对数符号计数。
我们可以使用qtune()
和qplot()
帮助选择的功能问
,在我们的分析中使用的簇数。
qtune()
为多个指定值的BAYESSPACE聚类算法运行问
(默认情况下,3至7)并计算其平均伪log类。它接受任何论点ampatialcluster()
。qplot()
绘制伪log类作为函数的函数问
;我们建议选择一个问
在这个情节的肘部周围。这ampatialcluster()
功能簇斑点,并将预测的群集标签添加到Singlecellexperiment
。通常,就像我们在论文中进行的分析所做的那样,我们建议至少进行10,000次迭代(NREP = 10000
),但是为了运行时,我们在此演示中使用了1,000个迭代。(请注意,必须设置随机种子以使结果可重复。)
set.seed((149)黑色素瘤< -空间策略(黑色素瘤,Q =4,,,,平台=“英石”,,,,d =7,,,,init.method =“ mclust”,,,,模型=“ T”,,,,伽马=2,,,,NREP =1000,,,,burn.in =100,,,,保存链=真的)
两者都是mclust初始化(cluster.init
)和bayesspace群集分配(空间。集群
)现在可以在Singlecellexperiment中使用酷塔
。
我们可以用clusterplot()
。
作为clusterplot()
返回aGGPLOT
对象,可以通过与熟悉的GGPLOT2
功能。另外,论点调色板
设置每个群集使用的颜色,以及clusterplot()
还有其他论点geom_polygon()
如尺寸
或者颜色
控制现场边界的美学。
这spatialenhance()
函数将增强主组件的分辨率,并在亚源源分辨率下添加这些PC以及预测的群集标签Singlecellexperiment
。就像我们的演示ampatialcluster()
上面,我们使用较少的迭代来示例(NREP = 1000
)比我们在实践中建议的(NREP = 100000
或更大)。请注意jitter_scale
应调整参数,以便在30%的时间内接受更新亚盘级表达式的建议。可以使用McMcChain(黑色素瘤,“ Ychange”)
,链条应稳定在0.25-0.40。通常,1000-2500迭代足以评估是否jitter_scale
如果接受过高,则应增加,如果接受过低,则应增加。调整后,进行全部运行Patialenhance
有更多的迭代。
黑色素瘤。Patialenhance(黑色素瘤,Q =4,,,,平台=“英石”,,,,d =7,,,,模型=“ T”,,,,伽马=2,,,,jitter_prior =0.3,,,,jitter_scale =3.5,,,,NREP =1000,,,,burn.in =100,,,,保存链=真的)
增强的Singlecellexperiment
包括原始父母点的索引SCE
((spot.idx
),以及亚台头的索引。它将偏移量添加到原始斑点坐标中,并提供增强的群集标签(空间。集群
)。
头((酷塔(黑色素瘤增强))#>带有6行和9列的DataFrame#> spot.idx subpot.idx spot.row spot.col Row col#> <数字> <数字> #> subspot_1.1 1 1 7 15 7.33333 15.3333#> subspot_2.1 2 1 7 16 7.33333 16.3333#> subspot_3.1 3 1 7 17 7.33333 17.3333#> subspot_4.1 4 1 7 18 7.33333 18.3333#> subspot_5.1 5 1 8 13 8.33333 13.3333#> subspot_6.1 6 1 8 14 8.33333 14.3333#> Imagerow Imagecol空间。集群#> <数字> <数字> <数字>#> subspot_1.1 7.33333 15.3333 1#> subpot_2.1 7.33333 16.3333 2#> subspot_3.1 7.33333 17.3333 1#> subspot_4.1 7.33333 18.3333 2#> subspot_5.1 8.33333 13.3333 1#> subspot_6.1 8.33333 14.3333 1
我们可以如上所述绘制增强的群集分配。
BAYESSPACE在基因表达矩阵的主要成分上运行,并且spatialenhance()
因此,计算增强的分辨率PC向量。增强的基因表达不是直接计算的,而是使用回归算法估算。对于每个基因,使用每个位置的PC向量进行训练以预测点级基因表达,并使用拟合模型来预测从亚柱PCS的亚源表达表达。
基因表达增强在增强Features()
功能。Bayesspace预测表达xgboost
默认情况下,但是也可以通过线性和DIRICHLET回归模型
争论。使用时xgboost
,我们建议自动调整nRounds
通过将其设置为0,尽管这是以增加运行时的成本(比预先指定的慢4倍)nRounds
在实践中)。
增强Features()
可用于为所有基因或感兴趣基因的子集估算亚蛋白级表达。在这里,我们将通过增强四个标记基因的表达来证明:PMEL(黑色素瘤),CD2(T细胞),CD19(B细胞)和COL1A1(成纤维细胞)。
默认情况下,log normalized表达式(logcounts(SCE)
),尽管可以指定其他测定或任意特征矩阵。
登录(黑色素瘤加强)[标记,1:5这是给予的#> subpot_1.1 subpot_2.1 subpot_3.1 subpot_4.1 subpot_5.1#> PMEL 2.3572879 1.2667019 2.2696812 2.0454569 2.6437354#> CD2 0.4325081 0.6166353 0.3151001 0.2315192 0.2875694#> CD19 0.6170074 0.6239508 0.4075240 0.4075240 0.6170074#> col1a1 0.1031096 2.9217663 1.2033939 1.0364592 0.1780530
每个预测模型的诊断措施,例如RMSE
使用时xgboost
,添加到Rowdata
增强的数据集。
空间基因表达可视化配件图()
。
在这里,我们比较了估算标记基因的空间表达。
我们可以与点级表达进行比较。
如果保存链
被设定为真的
这两个ampatialcluster()
或者spatialenhance()
,与各自的MCMC运行相关联的链条作为HDF5文件保留为磁盘。该文件的路径存储在单圈Perlexperiment的元数据中元数据(SCE)$ H5.链
,可以直接阅读McMcChain()
。
链条作为一个CODA :: MCMC
对象,可以分析Tidybayes或作为矩阵。该对象在迭代中具有一个行,其参数的值在整个行上串联。列命名为参数名称和索引(如果有)。
链< -McMcChain(黑色素瘤)链[1:5,,,,1:5这是给予的#> lambda [1,1] Lambda [1,2] Lambda [1,3] Lambda [1,4] Lambda [1,5]#> [1,] 0.01000000 0.000000000 0.00000000 0.00000000 0.000000000#> [2,] 0.08757829 -0.005798093 0.04594761 0.05789615 -0.019023472#> [3,] 0.10063323 -0.008922653 0.05061634 0.05269334 -0.004028245#> [4,] 0.13708014 -0.016090349 0.06626887 0.02779234 -0.022475194#> [5,] 0.12768109 -0.006919337 0.06831921 0.03047754 -0.027188932
要从磁盘上删除HDF5文件并从元数据中删除其路径,请使用removechain()
。