使用SpatialDecon GeomxTools GeoMx大型数据集

安装

如果(!requireNamespace(“BiocManager”,静静地=真正的))install.packages(“BiocManager”)BiocManager::安装(“SpatialDecon”)BiocManager::安装(“GeoMxTools”)

概述

这个小插图展示了使用SpatialDecon包估计细胞丰度在空间基因表达研究。

我们将分析一个密集GeoMx数据集从肺肿瘤,寻找大量的不同的免疫细胞类型。这个数据集有30 roi。在每个ROI,肿瘤微环境段分别被异形。

数据准备

首先,我们加载包:

图书馆(SpatialDecon)图书馆(GeomxTools)# >加载所需的包:Biobase# >加载所需的包:BiocGenerics# ># >附加包:“BiocGenerics”# >以下对象是蒙面的包:统计数据:# ># >差,疯狂,sd, var, xtabs# >以下对象从“包:基地”:蒙面# ># >过滤器,发现,地图、位置降低,anyDuplicated, aperm,追加,# > as.data.frame、basename cbind colnames,目录名,do.call,# >复制,eval, evalq, grep, grepl,相交,is.unsorted,# > lapp,宾州、匹配mget,秩序,粘贴,pmax, pmax.int, pmin,# > pmin.int、等级、rbind rownames,酸式焦磷酸钠,setdiff,排序,表,# > tapply,联盟,独特的,不可分割的,。马克斯,which.min# >欢迎光临Bioconductor# ># >片段包含介绍性的材料;视图与# > ' browseVignettes ()”。引用Bioconductor,明白了# >引用(“Biobase”),和包的引文(“pkgname”)。# >加载所需的包:NanoStringNCTools# >加载所需的包:S4Vectors# >加载所需的包:stats4# ># >附加包:“S4Vectors”# >以下对象从“包:基地”:蒙面# ># >我,扩大。网格,unname# >加载所需的包:ggplot2

现在让我们加载示例数据并检查它:

数据(“非小细胞肺癌”)昏暗的(nsclc)# >特征样本# > 1700 199(pData(nsclc))# > Slide.name ROI AOI.name Sample_ID组织# > ROI01Tumor ICP20th-L11-ICPKilo-ROI01-Tumor-A02不断化解ICPKilo ROI01肿瘤# > ROI01TME ICP20th-L11-ICPKilo-ROI01-TME-A03不断化解ICPKilo ROI01碰头# > ROI02Tumor ICP20th-L11-ICPKilo-ROI02-Tumor-A04不断化解ICPKilo ROI02肿瘤# > ROI02TME ICP20th-L11-ICPKilo-ROI02-TME-A05不断化解ICPKilo ROI02碰头# > ROI03Tumor ICP20th-L11-ICPKilo-ROI03-Tumor-A06不断化解ICPKilo ROI03肿瘤# > ROI03TME ICP20th-L11-ICPKilo-ROI03-TME-A07不断化解ICPKilo ROI03碰头# >。注释x y istumor核# > ROI01Tumor PanCK 0 8000 572真的# > ROI01TME时间0 8000 733错误# > ROI02Tumor PanCK 600 8000 307# > ROI02TME身上花费600 8000 697错误的# > ROI03Tumor PanCK 1200 8000 583# > ROI03TME身上花费1200 8000 484错误的非小细胞肺癌@assayData美元exprs [seq_len(5),seq_len(5)]# > ROI01Tumor ROI01TME ROI02Tumor ROI02TME ROI03Tumor55 # > ABCF1 26 47 102# > ABL1 21日22日27日18 4730 57 # > ACVR1B 89 29 122# > ACVR1C 9 7 4 8 14# > ACVR2A 14 15 9 12 22#好段的名字:sampleNames(nsclc) < - - - - - -paste0(非小细胞肺癌美元ROI,非小细胞肺癌美元AOI.name)

表达数据的spatialdecon函数需要3参数:

  1. 规范化的数据。
  2. 一个矩阵中的所有数据点的预期背景规范化数据矩阵。
  3. 可选地,per-data-point权重矩阵,或原始数据,用于获得权重(低计数统计更不稳定,这使得spatialdecon减轻体重。)

我们估计每个数据点的预期背景从负控制探针从其相应的观察:本研究有两个probesets,从每个probeset基因会有截然不同的背景值。“derive_GeoMx_background”功能方便地估计背景的所有数据点,占probeset每个基因属于:

bg =derive_GeoMx_background(规范=非小细胞肺癌@assayData美元exprs_norm,probepool =fData(nsclc)美元模块,negnames =c(“NegProbe-CTP01”,“NegProbe-Kilo”))

细胞轮廓矩阵

“细胞轮廓矩阵”是一个预定义的矩阵指定预期的表达谱中每个细胞类型的实验。SpatialDecon库提供了一个这样的矩阵预装,“SafeTME”矩阵,用于评估免疫和间质细胞肿瘤微环境。(这个矩阵是为了避免一般基因表达的癌细胞;有关详细信息,请参阅SpatialDecon手稿)。

让我们看一看一眼safeTME矩阵:

数据(“safeTME”)数据(“safeTME.matches”)signif(safeTME [seq_len(3),seq_len(3)),2)# >巨噬细胞肥大B.naive# > A2M 0.8500 0.044 0.0043种代号为ABCB1的# > 0.0021 0.023 0.0250# > ABCB4 0.0044 0.000 0.2200的热图(扫描(safeTME1,应用(safeTME1max),“/”),labRow =NA,利润=c(10,5))
safeTME细胞轮廓矩阵

safeTME细胞轮廓矩阵

对于其他组织类型的研究,我们提供了一个图书馆的细胞轮廓矩阵,可在Github和下载“download_profile_matrix”功能。

矩阵的完整列表,请参阅CellProfileLibrary GitHub页面

下面我们下载一个矩阵的细胞资料来自scRNA-seq鼠标脾脏。

mousespleen < -download_profile_matrix(物种=“鼠标”,age_group =“成人”,matrixname =“Spleen_MCA”)昏暗的(mousespleen)# > [1]11125 9mousespleen [1:4,1:4]# > Dendritic.cell.S100a4。高Dendritic.cell.Siglech.high# > 0610009 b22rik 0.02985075 - 0.0000000# > 0610010 f05rik 0.00000000 - 0.0000000# > 0610010 k14rik 0.02985075 - 0.0000000# > 0610012 g03rik 0.08955224 - 0.1111111# >粒细胞巨噬细胞# > 0610009 b22rik 0.00000000 - 0.00000000# > 0610010 f05rik 0.00000000 - 0.00000000# > 0610010 k14rik 0.00000000 - 0.03846154# > 0610012 g03rik 0.08571429 - 0.03846154(cellGroups)# >美元树突# > Dendritic.cell.S100a4 [1]”。高Dendritic.cell.Siglech.high”# ># >美元粒细胞# >[1]“粒细胞”# ># >美元巨噬细胞# >[1]“巨噬细胞”# ># >美元“边缘区B”# > [1]“Marginal.zone.B.cell”# ># >美元单核细胞# >[1]“单核”# ># > NK美元# > [1]“NK.cell”元数据# >概要矩阵组织应变时效年龄组的物种33 # > MCA脾成年小鼠C57BL / 6 6 - 10周# > URL33 # > https://pubmed.ncbi.nlm.nih.gov/29474909/# >引用33 # >汉,x et al .映射Microwell-Seq老鼠细胞图谱。Cell172, 1091 - 1107。e17 (2018)。的热图(扫描(mousespleen1,应用(mousespleen1max),“/”),labRow =NA,利润=c(10,5),cexCol =0.7)
小鼠脾脏概要矩阵

小鼠脾脏概要矩阵

为研究提供细胞轮廓矩阵不充分或者如果想要特定的单细胞的数据集,我们可以定制概要文件矩阵使用函数create_profile_matrix ()。

这个迷你单细胞数据集从Kinchen的一小部分数据,j . et al .结构重塑人类结肠间质炎症性肠病。单元175,372 - 386。e17 (2018)。

数据(“mini_singleCell_dataset”)mini_singleCell_dataset美元mtx@昏暗的#基因x细胞250 # > [1]1814as.matrix(mini_singleCell_dataset美元mtx) (1:4,1:4]# > ACTGCTCGTAAGTTCC。S90 TGAAAGAAGGCGCTCT。S66 AGCTTGAGTTTGGGCC.S66# > PLEKHN1 0 0 0# > PERM1 0 0 0# > C1orf159 0 0 0# > TTLL10 0 0 0# > ACGGCCATCGTCTGAA.S66# > PLEKHN1 0# > PERM1 0# > C1orf159 0# > TTLL10 0(mini_singleCell_dataset美元annots)# > CellID LabeledCellType# 2660 ACTGCTCGTAAGTTCC >。S90基质细胞# 2162 TGAAAGAAGGCGCTCT >。S66神经胶质细胞# 368 AGCTTGAGTTTGGGCC >。S66内皮细胞# 238 ACGGCCATCGTCTGAA >。S66基质细胞# 4158 TCTCTAACACTGTTAG >。S90基质细胞# 2611 ACGATGTGTGTGGTTT >。S90基质细胞(mini_singleCell_dataset美元annots美元LabeledCellType)# ># >内皮细胞神经胶质细胞14 # > 12# >周皮细胞的细胞浆细胞3 # > 30# >结肠平滑肌细胞的间质细胞# > 1 190

周皮细胞细胞结肠平滑肌细胞将从这个矩阵由于低细胞计数下降。一般表达式返回一种类型的所有细胞细胞的一种类型,更好的反映了真实的基因表达。这些平均的信心可以改变使用minCellNum过滤器。

custom_mtx < -create_profile_matrix(mtx =mini_singleCell_dataset美元mtx,中#细胞x基因数矩阵cellAnnots =mini_singleCell_dataset美元annots,注释#细胞与细胞类型和单元名称列cellTypeCol =“LabeledCellType”,#包含细胞类型的列cellNameCol =“CellID”,#列包含细胞ID /名称matrixName =“custom_mini_colon”,#的名字最终姿态矩阵outDir =,#路径所需的输出目录,设置为NULL如果矩阵不应该写正常化=,#数据应该正常化吗?minCellNum =5,#最小数量的一种类型的细胞需要创建概要,排斥minGenes =10,#最小数量的基因表达的一个细胞,排斥scalingFactor =5,#所有的值应该为最后的矩阵乘以discardCellTypes =真正的)#细胞类型应过滤等类型的有丝分裂,紧身上衣,低质量的,未知的,等等。# >[1]“创建阿特拉斯”# >[1]“1/6:基质细胞”# >[1]“2/6:神经胶质细胞”# >[1]“3/6:内皮细胞”# >[1]“4/6:浆细胞”# >[1]“5/6:周皮细胞细胞”# >警告create_profile_matrix (mtx = mini_singleCell_dataset mtx美元,cellAnnots = mini_singleCell_dataset annots美元,:# >周皮细胞细胞从矩阵,因为它没有足够的可行的细胞根据目前过滤阈值。# >如果这个细胞类型考虑改变minCellNum或minGenes是必要的# >[1]”6/6:结肠平滑肌细胞”# >警告create_profile_matrix (mtx = mini_singleCell_dataset mtx美元,cellAnnots = mini_singleCell_dataset annots美元,:# >的结肠平滑肌细胞从矩阵,因为它没有足够的可行的细胞根据目前过滤阈值。# >如果这个细胞类型考虑改变minCellNum或minGenes是必要的(custom_mtx)# >基质细胞胶质细胞内皮细胞浆细胞0.0000000 - 0.05787067 # > PLEKHN1 0.0000000 00.0000000 - 0.00000000 # > PERM1 0.1167131 00.0000000 - 0.07922668 # > C1orf159 0.0000000 00.1853931 - 0.00000000 # > TTLL10 0.0000000 00.0000000 - 0.07039008 # > TAS1R3 0.0000000 00.0000000 - 0.07922668 # > ATAD3C 0.1219237 0的热图(扫描(custom_mtx1,应用(custom_mtx1max),“/”),labRow =NA,利润=c(10,5),cexCol =0.7)
定制概要文件矩阵

定制概要文件矩阵

执行基本的反褶积spatialdecon函数

现在我们的数据准备反褶积。首先,我们将展示如何使用spatialdecon基本设置下,省略可选的铃声和口哨声。

res =runspatialdecon(对象=非小细胞肺癌,norm_elt =“exprs_norm”,raw_elt =“exprs”,X =safeTME,align_genes =真正的)str(pData(res))# >“data.frame”: 199奥林匹克广播服务公司。17个变量:# > $ Sample_ID:空空的“ICP20th-L11-ICPKilo-ROI01-Tumor-A02”“ICP20th-L11-ICPKilo-ROI01-TME-A03”“ICP20th-L11-ICPKilo-ROI02-Tumor-A04”“ICP20th-L11-ICPKilo-ROI02-TME-A05”…# > $组织:为了“不断化解”“不断化解”“不断化解”“不断化解”…# > $ Slide.name:空空的“ICPKilo”“ICPKilo”“ICPKilo”“ICPKilo”…# > $ ROI:空空的“ROI01”“ROI01”“ROI02”“ROI02”…# > $ AOI.name:空空的“肿瘤”“时间”“肿瘤”“开心”…# >美元。注释:为了“PanCK”“时间”“PanCK”“开心”…# > $ x: int 0 0 600 600 1200 1200 1800 1800 2400 2400…# > $ y: num 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000…# > $核:int 572 733 307 697 583 484 506 706 851 552…# > $ istumor:罗技真的假真的假的真的假的……# >β美元:num (1:199, 1:18) 4.01 7.63 5.82 17.73 2.59……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > $ p: num [1:199, 1:18] 8.80 e-11 0.00 - 2.72 0.00 - 2.75 e-11 e-08……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > $ t: num (1:199, 1:18) 6.49 8.4 6.66 11.59 5.56……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > $ se: num (1:199, 1:18) 0.618 0.908 0.874 1.53 0.466……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > $ prop_of_all: num (1:199, 1:18) 0.208 0.208 0.218 0.412 0.156……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > $ prop_of_nontumor: num (1:199, 1:18) 0.208 0.208 0.218 0.412 0.156……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# >(美元:num [1:18, 1:199 1:18] 0.382 0.825 0.764 2.34 0.217……# > . .- attr (*,“dimnames”) = 3的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:18] "var1" "var2" "var3" "var4" ...# >……美元:chr [1:18] "var1" "var2" "var3" "var4" ...的名字(res@assayData)# > [1]“exprs_norm”“渣油”“exprs”“yhat”

我们最感兴趣的“测试版”,估计细胞丰度的矩阵。

的热图(t(res美元β),cexCol =0.5,cexRow =0.7,利润=c(10,7))
细胞丰度估计

细胞丰度估计

使用spatialdecon的高级设置

spatialdecon有几个能力超越基本的反褶积:

  1. 如果每个地区的核数/观察,它返回结果总细胞数的规模。
  2. 如果纯粹的肿瘤区域的身份/观察,它可以少量的肿瘤特异性表达谱和附加到细胞轮廓矩阵。这样占癌症细胞衍生的表情从任何基因的细胞轮廓矩阵,把污染信号从癌细胞。
  3. 如果给定的原始统计数据,它源于per-data-point权重,使用一个错误模型派生GeoMx数据。
  4. 如果给定一个“cellmatches”参数,它和多个密切相关的细胞类型)到一个分数。例如:如果使用safeTME矩阵与“safeTME cell-matching数据对象。比赛”,它如资金“T.CD8。幼稚”和“T.CD8。内存CD8.T“分数成一个”。细胞”分数。

让我们看一个示例单元匹配对象:

str(safeTME.matches)# >清单14所示# > $巨噬细胞:空空的“巨噬细胞”# > $桅杆:空空的“桅杆”# > $ B:[1:2]”从而向B。天真B.memory”# > $等离子体:空空的“等离子体”# > CD4.T美元。cells : chr [1:2] "T.CD4.naive" "T.CD4.memory"# > CD8.T美元。cells : chr [1:2] "T.CD8.naive" "T.CD8.memory"# > NK:美元对应“NK”# > $ pDC:空空的“髓”# > $ mDCs:空空的“mDCs”# > $单核细胞:空空的单核细胞[1:2]”。C monocytes.NC.I”# >中性粒细胞美元:空空的“中性粒细胞”# > $ Treg:空空的“Treg”# >内皮美元。cells: chr "endothelial.cells"# > $成纤维细胞:空空的“成纤维细胞”

现在让我们spatialdecon运行:

#向量识别纯肿瘤部分:非小细胞肺癌美元istumor =非小细胞肺癌美元AOI.name= =“肿瘤”与所有的钟声和口哨声# spatialdecon运行:restils =runspatialdecon(对象=非小细胞肺癌,norm_elt =“exprs_norm”,#规范化数据raw_elt =“exprs”,#预期背景计数为每个数据点的常态X =safeTME,# safeTME矩阵,在默认情况下使用cellmerges =safeTME.matches,# safeTME。匹配对象,默认情况下使用cell_counts =非小细胞肺癌美元核,#核数,用于估算总细胞is_pure_tumor =非小细胞肺癌美元istumor,#身份的肿瘤段/观察n_tumor_clusters =5)#有多少不同的肿瘤safeTME配置文件来添加str(pData(restils))# >“data.frame”: 199奥林匹克广播服务公司。21个变量:# > $ Sample_ID:空空的“ICP20th-L11-ICPKilo-ROI01-Tumor-A02”“ICP20th-L11-ICPKilo-ROI01-TME-A03”“ICP20th-L11-ICPKilo-ROI02-Tumor-A04”“ICP20th-L11-ICPKilo-ROI02-TME-A05”…# > $组织:为了“不断化解”“不断化解”“不断化解”“不断化解”…# > $ Slide.name:空空的“ICPKilo”“ICPKilo”“ICPKilo”“ICPKilo”…# > $ ROI:空空的“ROI01”“ROI01”“ROI02”“ROI02”…# > $ AOI.name:空空的“肿瘤”“时间”“肿瘤”“开心”…# >美元。注释:为了“PanCK”“时间”“PanCK”“开心”…# > $ x: int 0 0 600 600 1200 1200 1800 1800 2400 2400…# > $ y: num 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000…# > $核:int 572 733 307 697 583 484 506 706 851 552…# > $ istumor:罗技真的假真的假的真的假的……# >β美元:num[1:199,一14)0.4676 3.819 1.1032 11.857 0.0113……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ p: num(1:199,一14)2.23 5.98 4.59 e-01 e-07 e-02 0.00 - 9.60 e-01……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ t: num[1:199,一14)1.2174 5.0427 1.8826 8.6252 0.0501……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ se: num[1:199,一14)0.384 0.757 0.586 1.375 0.225……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ prop_of_all: num[1:199,一14)0.3188 0.2163 0.5561 0.524 0.0765……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ prop_of_nontumor: num[1:199,一14)0.3188 0.2163 0.5561 0.524 0.0765……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# >σ美元:num 1:199一14,一14)0.1475 0.5735 0.3434 1.8898 0.0506……# > . .- attr (*,“dimnames”) = 3的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:14] "var1" "var2" "var3" "var4" ...# >……美元:chr [1:14] "var1" "var2" "var3" "var4" ...# >β美元。颗粒:num 1:199,收窄)0.4676 3.819 1.1032 11.857 0.0113……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:23] "macrophages" "mast" "B.naive" "B.memory" ...# >σ美元。颗粒:num 1:199、收收)0.1475 0.5735 0.3434 1.8898 0.0506……# > . .- attr (*,“dimnames”) = 3的列表# >……美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# >……美元:chr [1:23] "var1" "var2" "var3" "var4" ...# >……美元:chr [1:23] "var1" "var2" "var3" "var4" ...# >美元细胞。counts :'data.frame': 199 obs. of 2 variables:# > . .美元cells.per.100: num [1:199, 1:14] 1.1769 9.6119 2.7766 29.8425 0.0284 ...# >……- attr (*,“dimnames”) = 2的列表# > . . . . . .美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# > . . . . . .美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > . .美元cell.counts:num [1:199, 1:14] 6.732 70.455 8.524 208.002 0.165 ...# >……- attr (*,“dimnames”) = 2的列表# > . . . . . .美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# > . . . . . .美元:chr [1:14] "macrophages" "mast" "B" "plasma" ...# > $ cell.counts.granular:“data.frame”: 199奥林匹克广播服务公司。两个变量:# > . .美元cells.per.100: num [1:199, 1:18] 1.1769 9.6119 2.7766 29.8425 0.0284 ...# >……- attr (*,“dimnames”) = 2的列表# > . . . . . .美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# > . . . . . .美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...# > . .美元cell.counts:num [1:199, 1:18] 6.732 70.455 8.524 208.002 0.165 ...# >……- attr (*,“dimnames”) = 2的列表# > . . . . . .美元:chr [1:199] "ROI01Tumor" "ROI01TME" "ROI02Tumor" "ROI02TME" ...# > . . . . . .美元:chr [1:18] "macrophages" "mast" "B.naive" "B.memory" ...的名字(restils@assayData)# > [1]“exprs_norm”“渣油”“exprs”“yhat”str(restils@experimentData@其他)# > 1的列表# > $ SpatialDeconMatrix: num[1:544,收窄)0.0137 0.0379 0.2697 0.2754 0.4022……# > . .- attr (*,“dimnames”) = 2的列表# >……美元:chr [1:544] "ADAM12" "ANGPTL4" "BCAT1" "BCL2A1" ...# >……美元:chr [1:23] "macrophages" "mast" "B.naive" "B.memory" ...

这里有相当多的读数。让我们回顾重要的:

为了说明肿瘤概要的推导过程,让我们看看spatialdecon细胞轮廓矩阵输出:

的热图(扫描(restils@experimentData@其他美元SpatialDeconMatrix,1,应用(restils@experimentData@其他美元SpatialDeconMatrix,1max),“/”),labRow =NA,利润=c(10,5))
safeTME与新派生合并肿瘤的概要文件

safeTME与新派生合并肿瘤的概要文件

注意新的肿瘤特异性列。

策划反褶积结果

SpatialDecon包包含两个专门的绘图功能,默认颜色为safeTME矩阵。

第一个函数是“TIL_barplot”,它只是一种方便的方法画barplots细胞类型丰富。

#供参考,显示尖颜色绘图函数所使用的数据对象#当safeTME被使用:数据(“cellcols”)cellcols# > CD4.T。cells CD8.T.cells Treg T.CD4.naive# >“红”“耐火砖”“# FF66FF”“# CC0000”# > T.CD4。内存T.CD8。天真T.CD8。内存NK# >“# FF0000”“# FF6633”“# FF9900”“grey10”# > B B。天真的B。记忆的等离子体# >“darkblue”“000099 #”“# 0000 ff”“# 3399 cc”# > pDC pDCs巨噬细胞单核细胞# >“# 00飞行符”“# 00飞行符”“006600 #”“# 33 cc00”# >单核细胞。C monocytes.NC。我mDCs中性粒细胞# >“# 66 cc66”“# 33 cc00”“# 00 ff00”“# 9966 cc”# >桅杆成纤维细胞内皮。细胞肿瘤# >“# FFFF00”“999999 #”“996633 #”“333333 #”#显示时间部分,因为这是免疫细胞在哪里:o =hclust(经销(t(restils美元cell.counts美元cell.counts)))美元订单布局(垫=(矩阵(c(1,2),1)),宽度=c(7,3))TIL_barplot(t(restils美元cell.counts美元cell.counts[, o]),draw_legend =真正的,cex.names =0.5)
Barplots胡麻的丰度

Barplots胡麻的丰度

#或细胞的比例:temp =取代(restils美元prop_of_nontumor,is.na(restils美元prop_of_nontumor),0)o =hclust(经销(临时[restils美元AOI.name= =“开心”,)))美元订单TIL_barplot(t(restils美元prop_of_nontumor [restils美元AOI.name= =“开心”)(阿),draw_legend =真正的,cex.names =0.75)
Barplots胡麻的丰度

Barplots胡麻的丰度

第二个函数是“小花”,用于绘制细胞丰度在一些二维投影。在这里,我们先绘制细胞丰度在2主成分数据:

#规范化数据的主成分分析:电脑=prcomp(t(log2(pmax(非小细胞肺癌@assayData美元exprs_norm,1))))美元x (,c(1,2)]#小花运行功能:票面价值(3月=c(5,5,1,1))布局(垫=(矩阵(c(1,2),1)),宽度=c(6,2))小花(x =个人电脑(1),y =个人电脑(2),b =t(restils美元β),cex =5,xlab =“PC1”,ylab =“PC2”)票面价值(3月=c(0,0,0,0))框架()传说(“中心”,填补=cellcols [colnames(restils美元β),传说=colnames(restils美元β),cex =0.7)
直到丰富标注在电脑空间

直到丰富标注在电脑空间

所以我们可以看到,PC1大致追踪许多与一些免疫细胞,和PC2跟踪淋巴细胞和粒细胞群的相对丰度。

其他功能

SpatialDecon库包括几个有用的功能进一步分析/反褶积结果的微调。

结合细胞类型:

当两个细胞类型太相似,其丰度的估计变得不稳定。然而,他们仍然可以和容易估计。函数“collapseCellTypes”需要一个反褶积结果对象和崩溃任何密切相关的细胞类型)你告诉它:

细胞丰度估计与相关细胞崩溃

细胞丰度估计与相关细胞崩溃

推断的表达谱的细胞类型省略了姿态矩阵

有时一个细胞轮廓矩阵会省略一个细胞类型在一个组织。如果您的数据包括任何地区,这纯粹是未建模细胞类型——例如因为你使用GeoMx平台的分割能力特别选择,然后你可以推断出一个概要文件的细胞类型和合并它与你的细胞轮廓矩阵。算法簇你指定的所有观测纯未建模的细胞类型,这些集群和崩溃到尽可能多的细胞类型的配置文件。癌症细胞,它可能是适当的指定10个或更多的集群;高度正常健康的细胞,一个集群可能就足够了。

(注:这个功能也可以在运行spatialdecon函数,进一步证明以上。)

safeTME与新派生合并肿瘤的概要文件

safeTME与新派生合并肿瘤的概要文件

逆向反褶积

一旦细胞丰度估计,我们可以翻转,周围的反褶积模型数据作为细胞丰度的函数表达式,从而推导:

  1. 估计每个细胞类型中的每个基因的表达。(包括基因不出现在你的细胞轮廓矩阵)
  2. 安装每个基因表达值基于细胞混合。
  3. 残差的基因表达与细胞混合会如何预测?
  4. 两个指标所预测的基因是如何与细胞混合/冗余:观察之间的相关性和拟合表达式,SD残留。

“reversedecon”功能运行这个模型。

从reverseDecon残差

从reverseDecon残差

基因的依赖细胞混合

基因的依赖细胞混合

从上面的图中,我们可以看到这样的基因CXCL14变化独立于细胞混合,像LYZ基因与细胞混合,但仍有变量表达式,并像FOXP3基因作为钝角读数的细胞混合。

会话信息

sessionInfo()# > R版本4.2.1(2022-06-23)准备# >平台:x86_64-pc-linux-gnu(64位)# >下运行:Ubuntu 20.04.5 LTS# ># >矩阵产品:违约# >布拉斯特区:/home/biocbuild/bbs - 3.16 - bioc / R / lib / libRblas.so# > LAPACK: /home/biocbuild/bbs - 3.16 - bioc / R / lib / libRlapack.so# ># >语言环境:# > [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C# >[3]而= en_GB LC_COLLATE = C# > [5]LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US.UTF-8# > [7]LC_PAPER = en_US。utf - 8 LC_NAME = C# > [9]LC_ADDRESS C = C LC_TELEPHONE =# > [11]LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C# ># >附加基本包:# > [1]stats4统计图形grDevices跑龙套的数据集的方法# >[8]的基础# ># >其他附加包:# > [1]GeomxTools_3.1.1 NanoStringNCTools_1.5.0 ggplot2_3.3.6# > [4]S4Vectors_0.35.4 Biobase_2.57.1 BiocGenerics_0.43.4# > [7]sp_1.5-0 SeuratObject_4.1.2 SpatialDecon_1.7.2# ># >加载通过名称空间(而不是附加):# > [1]nlme_3.1 - 160 bitops_1.0-7 EnvStats_2.7.0# > [4]RColorBrewer_1.1-3 httr_1.4.4 GenomeInfoDb_1.33.8# > [7]numderiv_2016.8 - 1.1 R.cache_0.16.0 tools_4.2.1# > [10]bslib_0.4.0 utf8_1.2.2 R6_2.5.1# > [13]vipor_0.4.5 rgeos_0.5-9 DBI_1.1.3# > [16]colorspace_2.0-3 withr_2.5.0 GGally_2.1.2# > [19]tidyselect_1.2.0 repmis_0.5 logNormReg_0.5-0# > [22]curl_4.3.3 compiler_4.2.1 progressr_0.11.0# > [25]cli_3.4.1 sass_0.4.2 scales_1.2.1# > [28]systemfonts_1.0.4 stringr_1.4.1 digest_0.6.29# > [31]minqa_1.2.4 rmarkdown_2.17 R.utils_2.12.0# > [34]XVector_0.37.1 pkgconfig_2.0.3 htmltools_0.5.3# > [37]lme4_1.1-30 parallelly_1.32.1 highr_0.9# > [40]fastmap_1.1.0 htmlwidgets_1.5.4 rlang_1.0.6# > [43]ggthemes_4.2.4 readxl_1.4.1 jquerylib_0.1.4# > [46]generics_0.1.3 jsonlite_1.8.2 dplyr_1.0.10# > [49]R.oo_1.25.0 rcurl_1.98 - 1.9 magrittr_2.0.3# > [52]GenomeInfoDbData_1.2.9 Matrix_1.5-1 Rcpp_1.0.9# > [55]ggbeeswarm_0.6.0 munsell_0.5.0 fansi_1.0.3# > [58]lifecycle_1.0.3 R.methodsS3_1.8.2 stringi_1.7.8# > [61]yaml_2.3.5 mass_7.3 - 58.1 zlibbioc_1.43.0# > [64]plyr_1.8.7 grid_4.2.1 parallel_4.2.1# > [67]listenv_0.8.0 crayon_1.5.2 lattice_0.20-45# > [70]splines_4.2.1 Biostrings_2.65.6 knitr_1.40# > [73]pillar_1.8.1 uuid_1.1-0 boot_1.3-28# > [76]rjson_0.2.21 reshape2_1.4.4 future.apply_1.9.1# > [79]codetools_0.2-18 glue_1.6.2 ggiraph_0.8.3# > [82]evaluate_0.17 data.table_1.14.2 nloptr_2.0.3# > [85]vctrs_0.4.2 cellranger_1.1.0 gtable_0.3.1# > [88]purrr_0.3.5 reshape_0.8.9 future_1.28.0# > [91]assertthat_0.2.1 cachem_1.0.6 xfun_0.33# > [94]tibble_3.1.8 pheatmap_1.0.12 lmerTest_3.1-3# > [97]beeswarm_0.4.0 IRanges_2.31.2 globals_0.16.1