分配1.32.0
本小插图提供了Bioconductor包的概述分配(自适应签名选择和集成),用于异质生物通路的基于签名的分析。分配是一种计算工具,用于评估个体患者样本中的通路放松/激活状态。分配采用灵活的贝叶斯因子分析方法,适应从文献搜索或摄动实验中获得的预定通路特征,以创建细胞/组织特异性通路特征。每个情境特异性通路的解除管制/激活水平被量化为一个分数,该分数表示患者样本与通路解除管制/激活特征匹配的程度。
的一些特色分配是:
在下面的示例中,我们将演示如何运行分配使用或使用方便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))
assign.wrapper
我们开发了一种多功能产品assign.wrapper
函数来运行分配一个命令。对于大多数用户来说,assign.wrapper
就足够了。的assign.wrapper
函数输出以下文件:
如果提供了培训数据,assign.wrapper
也输出以下文件:
当Adaptive_S
是真的,assign.wrapper
也输出以下文件:
最后,如果testLabel
参数不是NULL,assign.wrapper
也输出以下文件:
这里我们演示如何运行assign.wrapper
用三个例子函数。首先,创建一个临时目录“tempdir”
加载训练和测试数据集。各个参数将在下面的小节中详细描述分配参考手册。
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)
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)
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)
我们开发了一系列功能:assign.preprocess
,assign.mcmc
,assign.convergence
,assign.summary
,assign.cv.output
,assign.output
它们协同工作以产生详细的结果。
assign.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
函数。
assign.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
函数。
assign.convergence
我们可以通过绘制轨迹图来检验模型参数的收敛性assign.convergence
.的burn_in
默认值为0,因此跟踪图从第一次迭代开始。如果MCMC链在2000次迭代中没有收敛,可以指定额外的迭代。
跟踪。情节< - assign.convergence(测试=密度。chain, burn_in=0, iter=2000, parameter="B",哪个基因=1,哪个样本=NA,哪个路径=NA)
的assign.convergence
函数返回待检查模型参数的每次吉布斯采样迭代的估计值的向量和参数的轨迹图。
assign.summary
然后我们应用assign.summary
函数计算每个参数的后验均值。通常我们使用MCMC链的后半部分来计算后验均值。我们指定默认的老化周期为第一个1000次迭代,默认的总迭代为2000次。当我们计算后验均值时,1000次老化迭代被丢弃。的adaptive_B
,Adaptive_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
函数。
assign.cv.output
的assign.cv.output
在训练样本中生成交叉验证结果。输出文件从assign.cv.output
是:
对于交叉验证,在赋值中使用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)
assign.output
的assign.output
在测试样本中生成预测结果。输出文件从assign.output
是:
Adaptive_S
指定正确的。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)
的分配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)
默认情况下,分配贝叶斯基因选择选择的特征基因中,随途径活性增加的基因和随途径活性减少的基因占同等比例。使用pctUp参数来修改这个分数。将pctUP设置为NULL以选择最重要的基因,无论方向如何。
运行时分配,基因列表中的基因数量可以影响预测分配产生,但并不总是清楚基因列表应该有多长。包括在分配出版物中是否使用了优化程序乳腺肿瘤中不同生长因子受体网络成分的活性揭示了两种生物学上相关的亚型.该函数允许您使用自己的相关数据和基因列表长度优化论文中包括的通路的基因列表长度。这个函数运行分配对不同基因链表长度的通路进行预测,通过相关性分析找到GFRN通路的最佳基因链表长度分配对你提供的相关数据矩阵的预测。这个函数需要很长时间运行,因为您正在运行分配很多次,所以我建议通过路径并行,或者运行分配首先进行预测(长且可并行化),然后分别运行相关步骤(快速)。
下面的例子基于相关优化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
函数文档。
如果你使用分配在您的出版物中,请引用:
沈勇,等。分配:多种异质生物途径的背景特异性基因组分析。生物信息学31(11),1745-1753(2015)。doi: 10.1093 /生物信息学/ btv031
请参见分配关于功能及其支持的各种选项的完整描述的参考手册。
## 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