1简介

本小插图提供了Bioconductor包的概述分配(自适应签名选择和集成),用于异质生物通路的基于签名的分析。分配是一种计算工具,用于评估个体患者样本中的通路放松/激活状态。分配采用灵活的贝叶斯因子分析方法,适应从文献搜索或摄动实验中获得的预定通路特征,以创建细胞/组织特异性通路特征。每个情境特异性通路的解除管制/激活水平被量化为一个分数,该分数表示患者样本与通路解除管制/激活特征匹配的程度。

的一些特色分配是:

  1. 多种途径分析分配可以同时配置多个路径签名,考虑相互连接的路径组件之间的“串扰”。
  2. 基线基因表达的上下文特异性:基线基因表达水平(即正常情况下的基因表达水平)可能因组织类型、疾病状态或测量平台的不同而有很大差异。分配可以自适应估计背景基因表达水平横跨一组样本。
  3. 上下文相关的签名估计分配提供了使用输入基因列表或签名基因数量作为先验信息的灵活性,允许对特定细胞或组织类型中的路径签名进行自适应细化。
  4. 签名强度估计的正则化分配使用贝叶斯脊回归公式,通过将不相关的签名基因的强度缩小到零来正则化签名强度系数。参数正则化将途径特征限制在一小部分基因中,使得结果在生物学上更容易解释。

2如何使用ASSIGN包

2.1示例数据

在下面的示例中,我们将演示如何运行分配使用或使用方便assign.wrapper功能简单分析或每个个体分配步骤查看更详细的中间结果。

对于这两种分析,我们都将首先加载分配并创建一个临时目录“tempdir”在用户当前工作目录下。在这个小插图中生成的所有输出都将保存在“tempdir”

library(ASSIGN) dir.create("tempdir") tempdir <- "tempdir"

接下来,加载训练数据、测试数据、训练标签和测试标签。训练数据集是G(基因组测量数)x N(通路扰动实验中的样本数)矩阵,包括5个致癌通路:本例中的B-Catenin、E2F3、MYC、RAS和SRC通路。训练数据标签表示每个摄动实验的控制样本和实验样本的列指标。例如,我们指定10个RAS对照样品的列指标为1:10,10个RAS激活样品的列指标为39:48。测试数据集是G(基因组测量数)x N(患者样本数)矩阵。测试数据标签表示N个测试样本的类。在我们的例子中,测试样本1-53是腺癌,样本54-111是鳞状细胞癌。我们指定“腺”而且“扁平”在测试数据标签的向量中。注意,测试数据标签是可选的。分配当提供测试数据标签时,输出额外的验证图来评估分类的准确性。

testLabel1 <- list(control = list(bcat=1:10, e2f3=1:10, myc=1:10, ras=1:10, src=1:10), bcat= 11:19, e2f3= 20:28, myc= 29:38, ras= 39:48, src= 49:55) testLabel1 <- rep(c("Adeno", "Squamous"), c(53,58))

2.2运行分配一体化的使用assign.wrapper

我们开发了一种多功能产品assign.wrapper函数来运行分配一个命令。对于大多数用户来说,assign.wrapper就足够了。的assign.wrapper函数输出以下文件:

  • pathway_activity_testset.csv分配在测试样品中预测通路活性。
  • signature_heatmap_testset_prior.pdf:训练样本中先前签名基因表达水平的热图。
  • pathway_activity_scatterplot_testset.pdf:测试样品中通路活性的散点图。x轴表示按途径活性排序的测试样本;y轴表示途径活性。
  • output.rda:个体的中间结果分配功能。
  • parameters.txt:包含用于此操作的参数的日志文件分配运行。

如果提供了培训数据,assign.wrapper也输出以下文件:

  • pathway_activity_trainingset.csv分配在训练样本中预测通路活性。
  • signature_heatmap_trainingset.pdf:训练样本中特征基因表达水平的热图。
  • pathway_activity_scatterplot_trainingset.pdf:训练样本中通路活性的散点图。
  • signature_gene_list_prior.csv:路径特征的基因表和先验系数。

Adaptive_S是真的,assign.wrapper也输出以下文件:

  • signature_heatmap_testset_posterior.pdf:训练样本中后验特征基因表达水平的热图。
  • posterior_delta.csv:每个签名中每个基因的表达的前后变化和被包含概率的CSV文件。
  • Signature_convergence.pdf: MCMC收敛图。

最后,如果testLabel参数不是NULL,assign.wrapper也输出以下文件:

  • pathway_activity_boxplot_testset.pdf:各测试类路径活性箱线图。

这里我们演示如何运行assign.wrapper用三个例子函数。首先,创建一个临时目录“tempdir”加载训练和测试数据集。各个参数将在下面的小节中详细描述分配参考手册。

2.2.1例1:训练数据可用,但没有路径特征基因的基因列表:

dir.create (file.path (tempdir wrapper_example1))分配。包装器(trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, testLabel=testLabel1, geneList=NULL, n_sigGene=rep(200,5), adaptive_B=TRUE, adaptive_S=FALSE, mixture_beta=TRUE, outputDir=file.path(tempdir,"wrapper_example1"), iter=2000, burn_in=1000)

2.2.2例2:训练数据可用,通路特征基因的基因列表可用:

dir.create (file.path (tempdir wrapper_example2))分配。包装器(trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, testLabel=NULL, geneList=geneList1, n_sigGene=NULL, adaptive_B=TRUE, adaptive_S=FALSE, mixture_beta=TRUE, outputDir=file.path(tempdir,"wrapper_example2"), iter=2000, burn_in=1000)

2.2.3例3:训练数据不可用,但通路特征基因的基因列表可用:

dir.create (file.path (tempdir wrapper_example3))分配。包装器(trainingData=NULL, testData=testData1, trainingLabel=NULL, testLabel=NULL, geneList=geneList1, n_sigGene=NULL, adaptive_B=TRUE, adaptive_S=TRUE, mixture_beta=TRUE, outputDir=file.path(tempdir,"wrapper_example3"), iter=2000, burn_in=1000)

2.3运行分配循序渐进的

我们开发了一系列功能:assign.preprocessassign.mcmcassign.convergenceassign.summaryassign.cv.output,assign.output它们协同工作以产生详细的结果。

2.3.1assign.preprocess

我们首先运行assign.preprocess函数的输入数据集。当提供了训练样本的基因组测量值(例如,基因表达谱),但未提供预先确定的途径签名基因列表时assign.preprocess函数利用贝叶斯单变量回归模块,根据回归系数(倍数变化)的绝对值和待选变量的后验概率(统计显著性)选择一个基因集(通常是50-200个基因,但可由用户指定)。因为我们没有预先确定的基因列表可以提供,我们留下geneList选项默认为NULL。在这里,我们为这五种途径中的每一种指定200个签名基因。

#训练数据集可用;#路径签名的基因列表不可用处理。< -分配数据。预处理(trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, geneList=NULL, n_sigGene=rep(200,5))

或者,用户可以同时拥有训练数据和策划/预定的路径签名。策展途径特征中的一些基因,尽管没有显著的差异表达,但为了预测需要包括在内。在本例中,我们指定trainingData而且geneList训练数据集和预定签名基因列表都可用时的参数。

#训练数据集可用;路径签名的基因表已处理完毕。< -分配数据。预处理(trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, geneList=geneList1)

在某些情况下,表达式配置文件(训练数据集)不可用。只有基于知识的基因列表或一些先前谱分析实验的联合知识的基因列表可用。在本例中,我们指定geneList和离开trainingData而且trainingLabel为默认为空。

#训练数据集不可用;路径签名的基因表已处理完毕。< -分配数据。预处理(trainingData=NULL, testData=testData1, trainingLabel=NULL, geneList=geneList1)

assign.preprocess函数返回经过处理的训练数据集(trainingData_sub)和测试数据集(testData_sub)以及背景向量的先验参数(B_vector)、签名矩阵(S_matrix)和概率签名矩阵(Pi_matrix)和各通路的差异表达基因表(diffGeneList).有关assign.preprocess的输出描述“价值”章节的手册页assign.preprocess函数。的输出数据assign.preprocess函数的输入数据assign.mcmc函数。

2.3.2assign.mcmc

assign.mcmc函数,Y, Bg和X被指定为函数的输出assign.preprocess函数。的adaptive_B(自适应背景),Adaptive_S(自适应签名)mixture_beta(签名强度的正则化)可以根据分析上下文指定TRUE或FALSE。当训练和测试样本来自不同的细胞或组织类型时,我们建议自适应背景选项为TRUE。注意,当训练数据集不可用时,自适应签名选项必须设置为TRUE,这意味着应该从测试数据集估计签名的大小。默认的iter(迭代)是2000。特别是,当训练数据集不可用时,最好指定X选项assign.mcmc使用信息更丰富的X(指定上调或下调的基因)来启动模型。

密度。链< assign.mcmc (Y =处理。数据$testData_sub, Bg =处理。数据B_vector美元,X =处理。数据$S_matrix, Delta_prior_p =已处理。data$Pi_matrix, iter = 2000, adaptive_B=TRUE, adaptive_S=FALSE, mixture_beta=TRUE)

assign.mcmc函数返回MCMC链,记录每个参数默认的2000次迭代。的细节assign.mcmc的输出描述“价值”章节的手册页assign.mcmc函数。

2.3.3assign.convergence

我们可以通过绘制轨迹图来检验模型参数的收敛性assign.convergence.的burn_in默认值为0,因此跟踪图从第一次迭代开始。如果MCMC链在2000次迭代中没有收敛,可以指定额外的迭代。

跟踪。情节< - assign.convergence(测试=密度。chain, burn_in=0, iter=2000, parameter="B",哪个基因=1,哪个样本=NA,哪个路径=NA)

assign.convergence函数返回待检查模型参数的每次吉布斯采样迭代的估计值的向量和参数的轨迹图。

2.3.4assign.summary

然后我们应用assign.summary函数计算每个参数的后验均值。通常我们使用MCMC链的后半部分来计算后验均值。我们指定默认的老化周期为第一个1000次迭代,默认的总迭代为2000次。当我们计算后验均值时,1000次老化迭代被丢弃。的adaptive_BAdaptive_S而且mixture_beta选项必须设置为与assign.mcmc函数。

mcmc.pos.mean < - assign.summary(测试=密度。chain, burn_in=1000, iter=2000, adaptive_B=TRUE, adaptive_S=FALSE, mixture_beta=TRUE)

assign.summary函数返回每个参数的后验均值。有关assign.summary的输出描述“价值”章节的手册页assign.summary函数。

2.3.5assign.cv.output

assign.cv.output在训练样本中生成交叉验证结果。输出文件从assign.cv.output是:

  • pathway_activity_trainingset.csv分配在训练样本中预测通路活性。
  • signature_heatmap_trainingset.pdf:训练样本中特征基因表达水平的热图。
  • pathway_activity_scatterplot_trainingset.pdf:训练样本中通路活性的散点图。
对于交叉验证,在赋值中使用Y。mcmc函数#应该指定为processing .data$trainingData_sub。assign.cv.output (processed.data =处理。数据,mcmc.pos.mean.trainingData = mcmc.pos。平均值,trainingData=trainingData1, trainingLabel=trainingLabel1, adaptive_B=FALSE, adaptive_S=FALSE, mixture_beta=TRUE, outputDir=tempdir)

2.3.6assign.output

assign.output在测试样本中生成预测结果。输出文件从assign.output是:

  • pathway_activity_testset.csv分配在测试样品中预测通路活性。
  • signature_heatmap_testset_prior.pdf:训练样本中先前签名基因表达水平的热图。
  • signature_heatmap_testset_posterior.pdf:训练样本中后验特征基因表达水平的热图。这个图只在Adaptive_S指定正确的。
  • pathway_activity_scatterplot_testset.pdf:测试样品中通路活性的散点图。x轴表示按途径活性排序的测试样本;y轴表示途径活性。
  • pathway_activity_boxplot_testset.pdf:各测试类路径活性箱线图。这个图只生成了testLabel参数不是NULL。

中指定输出目录outputDir选项,当运行assign.cv.output而且assign.output

assign.output (processed.data =处理。数据,mcmc.pos.mean.testData = mcmc.pos。平均值,trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, testLabel=testLabel1, geneList=NULL, adaptive_B=TRUE, adaptive_S=FALSE, mixture_beta=TRUE, outputDir=tempdir)

3.附加功能

3.1锚基因列表和排除基因列表

分配Package允许对签名进行调整以适应其他生物环境,减少签名中特定基因的贡献,以更好地匹配测试数据集中观察到的异质性。偶尔,调整一个特征可能会降低关键特征基因的重要性。例如,如果一个特征是通过在细胞系中过度表达致癌基因而产生的,但在适应步骤中,分配降低了关键基因的重要性,质量分配预测可能会减少。或者,如果签名中的某个基因与数据中的其他异质性相关,比如吸烟状况,分配可能会适应该基因的差异,而不是实际所需的签名活动预测。为此,我们添加了提供签名中锚定的关键基因列表和从签名中排除的基因列表的功能。分配通过将包含到签名中的概率设置为1(锚基因)和0(排除基因)来实现这一点。表达值的变化仍然可以适应,增加或减少与签名中每个基因相关的折叠变化,但锚基因总是对最终签名做出贡献,而排除基因则不会。

dir.create(文件。path(tempdir, "anchor_exclude_example")) anchorList = list(bcat="224321_at", e2f3="202589_at", myc="221891_x_at", ras="201820_at", src="224567_x_at") excludeList = list(bcat="1555340_x_at", e2f3="1555340_x_at", myc="1555340_x_at", ras="204748_at", src="1555339_at")包装器(trainingData=trainingData1, testData=testData1, trainingLabel=trainingLabel1, testLabel=NULL, geneList=geneList1, n_sigGene=NULL, adaptive_B=TRUE, adaptive_S=TRUE, mixture_beta=TRUE, outputDir=file。path(tempdir, "anchor_exclude_example"), anchorGenes=anchorList, excludeGenes=excludeList, iter=2000, burn_in=1000)

3.2上调基因的比例

默认情况下,分配贝叶斯基因选择选择的特征基因中,随途径活性增加的基因和随途径活性减少的基因占同等比例。使用pctUp参数来修改这个分数。将pctUP设置为NULL以选择最重要的基因,无论方向如何。

4GFRN优化过程

运行时分配,基因列表中的基因数量可以影响预测分配产生,但并不总是清楚基因列表应该有多长。包括在分配出版物中是否使用了优化程序乳腺肿瘤中不同生长因子受体网络成分的活性揭示了两种生物学上相关的亚型.该函数允许您使用自己的相关数据和基因列表长度优化论文中包括的通路的基因列表长度。这个函数运行分配对不同基因链表长度的通路进行预测,通过相关性分析找到GFRN通路的最佳基因链表长度分配对你提供的相关数据矩阵的预测。这个函数需要很长时间运行,因为您正在运行分配很多次,所以我建议通过路径并行,或者运行分配首先进行预测(长且可并行化),然后分别运行相关步骤(快速)。

4.1例子优化过程

下面的例子基于相关优化AKT通路的长度分配用蛋白质组学数据进行预测。首先,读入您想要预测使用的测试数据分配以及用于相关的数据(例如蛋白质组学数据):

dir.create(文件。路径(tempdir optimization_example)) setwd(文件。testData <- read.table("https://drive.google.com/uc?authuser=0&id=1mJICN4z_aCeh4JuPzNfm8GR_lkJOhWFr&export=download", sep='\t', row.names=1, header=1) corData1 <- read.table("https://drive.google.com/uc?authuser=0&id=1MDWVP2jBsAAcMNcNFKE74vYl-orpo7WH&export=download", sep='\t', row.names=1, header=1)

接下来,创建一个用于相关性的数据列表。该列表应该包含来自每个被优化路径的相关数据的列名向量。与相关列表中各列的平均相关性最大的基因列表长度即为优化的基因列表。

这是相关数据中用于相关的路径和列的列表,corList <- list(akt=c(" akt ","PDK1","PDK1p241"))

最后,运行ComBat批更正过程并运行optimizeGFRN功能:

#在测试和训练数据战斗之间运行批修正程序。< -战斗数据。step2(testData, pcaPlots = TRUE) #运行默认的优化过程optimization_results <- optimizeGFRN(combat。data, corData, corList, run="akt")

分配将在当前工作目录中输出每个基因列表长度的结果。的optimizeGFRN函数返回优化的基因列表,可用于其他数据集和相关结果。的文档中提供了其他选项和文档optimizeGFRN函数文档。

5引用分配

如果你使用分配在您的出版物中,请引用:

沈勇,等。分配:多种异质生物途径的背景特异性基因组分析。生物信息学31(11),1745-1753(2015)。doi: 10.1093 /生物信息学/ btv031

6结论

请参见分配关于功能及其支持的各种选项的完整描述的参考手册。

会话信息

## R版本4.2.0 RC (22-04-19 r82224) ##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 20.04.4 LTS ## ##矩阵产品:default ## BLAS: /home/biocbuild/bbs-3.15-bio /R/lib/libRblas. ##因此## LAPACK: /home/biocbuild/bbs-3.15-bio /R/lib/libRlapack。因此## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# [3] LC_TIME=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 LC_TELEPHONE= c# [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods base ## ##其他附加的包:## [1]ASSIGN_1.32.0 BiocStyle_2.24.0 ## ##通过命名空间加载(并没有附加):# [1] bookdown_0.26 digest_0.6.29 R6_2.5.1 ## [4] jsonlite_1.8.0 magrittr_2.0.3 evaluate_0.15 ## [7] stringi_1.7.6 rlang_1.0.2 cli_3.3.0 ## [10] jquerylib_0.1.4 bslib_0.3.1 rmarkdown_2.14 ## [13] tools_4.2.0 stringgr_1 .4.0 xfun_0.30 ## [13] yaml_2.3.5 fastmap_1.1.0 compiler_4.2.0 ## [19] BiocManager_1.30.17 htmltools_0.5.2 knitr_1.38 ## [22] sass_0.4.1