内容

1介绍

evaluomeR包允许评估生物指标的可靠性分析的稳定性和善良的分类指标。方法需要测量的数据集的度量和评估的可靠性指标根据以下分析:相关性、稳定性和善良的分类。

2安装

的安装evaluomeR包是通过Bioconductor执行:

如果(!requireNamespace (“BiocManager”,悄悄地= TRUE)) install.packages (“BiocManager”) BiocManager::安装(“evaluomeR”)

2.1先决条件

这个包evaluomeR取决于以下微积分的凹口包:集群(Maechler et al。2018年),corrplot(魏和Simko2017年)。此外,这个包还取决于grDevices,图形,统计数据跑龙套从R核心(R核心团队2018年)的绘图和Bioconductor包SummarizedExperiment(摩根et al。2018年),MultiAssayExperiment(拉莫斯et al。2017年)输入/输出数据。

3使用evaluomeR

3.1创建一个输入SummarizedExperiment

输入是一个SummarizedExperiment对象。中包含的分析SummarizedExperiment必须遵循一个特定的结构,见表1:必须指定一个有效的标题。第一列标题的数据集的实例的ID或名称(如本体论、通路等)的测量指标。其他列的标题包含了指标的名称。行包含测量指标为每个实例的数据集。

表1: 输入分析的例子SummarizedExperiment
evaluomeR包中。
ID MetricNameA MetricNameB MetricNameC
instance1 1.2 6.4 0.5
instance2 2.4 5.4 0.8
instance3 1.9 8.9 1.1

3.2从evaluomeR使用输入样本数据

在我们的包我们提供三种不同的样本输入数据:

  • ontMetrics:本体结构指标、19个指标测量的结构方面分析了bio-ontologies本体的在两个不同的语料:鄂博铸造和AgroPortal(Franco et al。2019年)

  • rnaMetrics:RNA质量评估指标的基因表达差异,从16个整除2质量量度的一批独特的RNA样品。指标是退化因子(DegFact)和RNA完整数量(RIN)(Imbeaud et al。2005年)

  • 生物识别技术:生物通路指标,2指标量化特征的重要性在生化过程监管系统,包括系统设计的应用程序在合成生物学和代谢工程。指标的可达性和效率(戴维斯和我们2018年)

用户运行数据内置的方法来加载evaluomeR样本输入数据。这就要求提供所需的数据集的描述符。可用的数据集可以采取以下值:“ontMetrics”、“rnaMetrics”或“生物识别技术”。

库(evaluomeR)数据(“ontMetrics”) (“rnaMetrics”)数据(“生物识别技术”)

3.3相关性

我们提供的metricsCorrelations函数中定义评价指标之间的相关性SummarizedExperiment:

库(evaluomeR)数据(“rnaMetrics”) correlationSE < - metricsCorrelations (rnaMetrics利润率= c(10) 4、4、12日)
# #
# #数据加载。16 # # # #的行数,列数:3

#通过首次访问相关矩阵分析:#试验(correlationSE, 1)

3.4稳定性分析

执行的计算稳定性指标稳定stabilityRange功能。

3.4.1稳定

执行的稳定指数分析稳定函数。例如,运行稳定性分析的指标rnaMetrics与一些One hundred.引导与k - means聚类的复制k是2(注意k必须在[2,15]范围):

stabilityData < -稳定(rnaMetrics k = 2, b = 100)

稳定函数的作用是:返回stabilityData对象,ExperimentList包含几个化验等稳定意味着或意味着,加以,小孩,小孩。swithinss和方差分析值kmeans集群:

stabilityData
# # ExperimentList类对象的长度9:# # [1]stability_mean: SummarizedExperiment 2行2列# # [2]cluster_partition: SummarizedExperiment 2行2列# # [3]cluster_mean: SummarizedExperiment 2行2列# # [4]cluster_centers: SummarizedExperiment 2行2列# # [5]cluster_size: SummarizedExperiment 2行2列# # [6]cluster_betweenss: SummarizedExperiment 2行2列# # [7]cluster_totss: SummarizedExperiment 2行2列# # [8]cluster_tot。withinss: SummarizedExperiment 2行2列# # [9]cluster_anova: SummarizedExperiment 2行2列

当显示的稳定性指数的阴谋getimage = TRUE生成稳定的值的意思是:

分析(stabilityData“stability_mean”)
度规 Mean_stability_k_2
RIN 0.82540873015873
DegFact 0.873916305916306

情节代表每个指标的稳定意味着对于一个给定的k价值。这意味着通过执行每一个稳定指数的平均值计算k为每个指标范围(1,k)。

3.4.2稳定范围

stabilityRange函数是一个迭代的方法稳定函数。它执行一系列的稳定性分析k值(k.range)。

例如,分析的稳定性rnaMetrics范围内(2、4)b = 100:

stabilityRangeData = stabilityRange (rnaMetrics k.range = c (2、4), b = 100)

两种图绘制stabilityRange函数。第一类(标题为“圣指数k = X在度量”)所示,为每一个k价值,稳定指数指标。第二种(标题圣指数度量“X”的范围(X, y)),显示了一个阴谋的每个指标的行为k的范围内。

3.5善良的分类

有两种方法来计算的分类:质量qualityRange

3.5.1质量

这种方法情节指标对当前是如何表现的k值,根据平均轮廓宽度。同时,将情节集群是如何分组每个指标(每个度量一个情节)。例如,运行质量分析的两个指标rnaMetrics数据集,k = 4:

qualityData =质量(rnaMetrics, k = 4)

数据的第一个情节题为“定性的指标在指标k = 4“根据轮廓平均宽度,存储在Avg_Silhouette_Width列的第一个试验SummarizedExperiment,qualityData。其他三个情节题为的指标名称显示输入行分组通过为每个集群的颜色,连同他们的轮廓宽度的分数。

的变量qualityData包含的信息集群的每个指标:平均每个集群轮廓宽度,整体平均sihouette宽度(考虑到所有集群)和个人每个集群的数量:

试验(qualityData, 1)
度规 Cluster_1_SilScore Cluster_2_SilScore Cluster_3_SilScore Cluster_4_SilScore Avg_Silhouette_Width Cluster_1_Size Cluster_2_Size Cluster_3_Size Cluster_4_Size
RIN 0.420502645502646 0.696597735248404 0.473928571428572 0.324731573607137 0.488264943810529 4 4 5 3
DegFact 0.759196481622952 0.59496499852177 0.600198799385732 0.521618857725795 0.634170498361632 5 3 5 3

3.5.2质量范围

qualityRange函数是一个迭代的方法,使用相同的功能质量一系列的值(k.range),而不是一个独一无二的k价值。这个方法允许分析的分类指标的不同的值的范围。

在下一个示例中,我们将继续使用rnaMetrics数据集,k.range(4、6)。

k.range= c(4,6) qualityRangeData = qualityRange(rnaMetrics, k.range)

qualityRange函数也返回两种情节,见稳定范围部分。一个为每个kk.range,显示质量指数(善良的分类)指标,和第二类型的情节给每个指标与其各自的质量指标k价值。

qualityRangeData返回的对象qualityRange是一个ExperimentListMultiAssayExperiment,这是一个列表SummarizedExperiment对象的大小diff (k.range) + 1。在上面的例子中,的大小qualityRangeData3,因为数组长度将包含dataframes的k = 4k = 6

diff (k.range) + 1
# # 3 [1]
长度(qualityRangeData)
# # 3 [1]

用户可以访问特定dataframe对于一个给定的k价值在三种不同的方式:由美元符号、括号表示法或者使用我们的包装方法getDataQualityRange。例如,如果用户希望检索dataframe其中包含的信息k = 5,是k.range(4、6):

k5Data = qualityRangeData $ k_5 k5Data = qualityRangeData [[“k_5”]] k5Data = getDataQualityRange (qualityRangeData, 5)试验(k5Data, 1)
度规 Cluster_1_SilScore Cluster_2_SilScore Cluster_3_SilScore Cluster_4_SilScore Cluster_5_SilScore Avg_Silhouette_Width Cluster_1_Size Cluster_2_Size Cluster_3_Size Cluster_4_Size Cluster_5_Size
RIN 0.420502645502646 0.674226581940152 0.251461988304093 0.523616734143049 0 0.451735613203479 4 4 3 4 1
DegFact 0.718287037037037 0.0375000000000007 0.904545454545454 0.585791823535685 0.521618857725795 0.578190921755929 4 2 2 5 3

一旦用户认为找到了一个合适的k值,然后用户可以运行质量函数进一步看到轮廓信息的情节。

3.6一般的功能

在本节中,我们描述的一系列参数之间共享我们的分析功能:metricsCorrelations,稳定,stabilityRange,质量qualityRange

3.6.1禁用策划

的生成图像可以被设置为禁用的参数getimage:

stabilityData < -稳定(rnaMetrics, k = 5, b = 50, getimage = FALSE)

这可以防止产生任何图,只执行微积分。默认情况下getimage被设置为真正的

4选择最优k的价值

evaluomeR分析指标的行为的稳定性和善良的集群范围的值\ (k \)。如果希望选择的最优值\ (k \)在一个给定的指标数据我们已经实现了getOptimalKValue函数,它返回一个表的最优值k对于每个度量。

算法的工作原理如下:稳定和最高的最高美德获得了相同的值\ (k \)。在这种情况下,该值将是最佳的。另一方面,最高的稳定性和最高的善良获得了不同的价值观\ (k \)。在这种情况下,额外的标准是必要的。目前并不旨在提供这些标准,但提供的数据可以允许用户做出决策。在本文中描述的用例中,我们将使用以下标准后一种情况:

stabilityData < - stabilityRange (data = ontMetrics k.range = c (2、4), b = 20, getimage = FALSE,种子= 100)qualityData < - qualityRange (data = ontMetrics k.range = c (2、4), getimage = FALSE,种子= 100)kOptTable < - getOptimalKValue (stabilityData qualityData)
度规 Stability_max_k Stability_max_k_stab Stability_max_k_qual Quality_max_k Quality_max_k_stab Quality_max_k_qual Global_optimal_k
ANOnto 2 1.0000000 0.7548590 2 1.0000000 0.7548590 2
AROnto 4 0.9276802 0.8138336 4 0.9276802 0.8138336 4
CBOOnto 2 0.8786781 0.7193928 3 0.7897443 0.7231989 3
CBOOnto2 2 0.8786781 0.7193928 3 0.7897443 0.7231989 3
CROnto 4 0.8450463 0.8450265 2 0.7831180 0.9643551 2
DITOnto 4 0.8228266 0.5933836 2 0.8129876 0.5971269 2
INROnto 2 0.9251030 0.7251026 2 0.9251030 0.7251026 2
LCOMOnto 3 1.0000000 0.6529131 3 1.0000000 0.6529131 3
NACOnto 2 0.8807614 0.7391430 2 0.8807614 0.7391430 2
NOCOnto 2 0.9478757 0.9431037 2 0.9478757 0.9431037 2
NOMOnto 2 0.8912204 0.6529583 3 0.8335419 0.6689736 3
POnto 2 1.0000000 0.7023466 2 1.0000000 0.7023466 2
PROnto 2 0.9941906 0.7065895 2 0.9941906 0.7065895 2
RFCOnto 2 0.8630298 0.6442806 2 0.8630298 0.6442806 2
RROnto 2 0.9941906 0.7065895 2 0.9941906 0.7065895 2
TMOnto 2 0.9664951 0.7331493 2 0.9664951 0.7331493 2
TMOnto2 2 1.0000000 0.9493957 2 1.0000000 0.9493957 2
WMCOnto 2 0.9169334 0.9464120 2 0.9169334 0.9464120 2
WMCOnto2 2 0.9208949 0.9467042 2 0.9208949 0.9467042 2

此外,您可以选择另一个的子集k.range划定范围的最优k

kOptTable < - getOptimalKValue (stabilityData, qualityData k.range = c (3、4)
# #处理指标:ANOnto
# #稳定k“4”是稳定的但质量k ' 3 '不是
# #使用‘4’,因为它提供了更高的稳定性
# #处理指标:AROnto
# #最大稳定和质量值匹配相同的K值:“4”
# #处理指标:CBOOnto
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:CBOOnto2
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:CROnto
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:DITOnto
# #最大稳定和质量值匹配相同的K值:“4”
# #处理指标:INROnto
# #稳定k“4”是稳定的但质量k ' 3 '不是
# #使用‘4’,因为它提供了更高的稳定性
# #处理指标:LCOMOnto
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:NACOnto
# # Ks都没有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:NOCOnto
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:NOMOnto
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:POnto
# #稳定k“4”是稳定的但质量k ' 3 '不是
# #使用‘4’,因为它提供了更高的稳定性
# #处理指标:医师
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:RFCOnto
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:RROnto
# #最大稳定和质量值匹配相同的K值:“3”
# #处理指标:TMOnto
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:TMOnto2
# # Ks都有一个稳定的分类:“3”、“4”
# #使用‘4’,因为它提供了更高的轮廓宽度
# #处理指标:WMCOnto
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
# #处理指标:WMCOnto2
# # Ks都有一个稳定的分类:' 4 ',' 3 '
# #使用“3”,因为它提供了更高的轮廓宽度
度规 Stability_max_k Stability_max_k_stab Stability_max_k_qual Quality_max_k Quality_max_k_stab Quality_max_k_qual Global_optimal_k
ANOnto 4 0.7858551 0.7033107 3 0.6537009 0.7367429 4
AROnto 4 0.9276802 0.8138336 4 0.9276802 0.8138336 4
CBOOnto 4 0.8009833 0.5843870 3 0.7897443 0.7231989 3
CBOOnto2 4 0.8009833 0.5843870 3 0.7897443 0.7231989 3
CROnto 4 0.8450463 0.8450265 3 0.8202259 0.8553226 3
DITOnto 4 0.8228266 0.5933836 4 0.8228266 0.5933836 4
INROnto 4 0.7889145 0.6095614 3 0.7404618 0.6909412 4
LCOMOnto 3 1.0000000 0.6529131 3 1.0000000 0.6529131 3
NACOnto 4 0.7076790 0.6271890 3 0.6647891 0.6613224 3
NOCOnto 3 0.8972253 0.8791838 3 0.8972253 0.8791838 3
NOMOnto 3 0.8335419 0.6689736 3 0.8335419 0.6689736 3
POnto 4 0.8464754 0.6763749 3 0.6300979 0.6766154 4
PROnto 3 0.9704167 0.6686449 3 0.9704167 0.6686449 3
RFCOnto 3 0.8192584 0.6352988 3 0.8192584 0.6352988 3
RROnto 3 0.9704167 0.6686449 3 0.9704167 0.6686449 3
TMOnto 4 0.9002443 0.6944084 3 0.8665560 0.7100906 3
TMOnto2 3 0.9375096 0.7246579 4 0.8971283 0.7254086 4
WMCOnto 4 0.8539321 0.7370700 3 0.8151443 0.8285148 3
WMCOnto2 4 0.8699698 0.7294024 3 0.7801632 0.8702324 3

5指标分析

我们提供了一系列的方法来进一步分析指标。这些方法有:plotMetricsMinMax,plotMetricsBoxplot,plotMetricsClusterplotMetricsViolin

plotMetricsMinMax功能块的最小、最大和标准偏差的最小/最大点的每个指标的值:

plotMetricsMinMax (ontMetrics)
# #警告:“dataStats.df的使用。台币Min”是气馁。使用“分钟”。
# #警告:“dataStats.df的使用。台币Max’是气馁。使用“Max”代替。
# #警告:“dataStats.df的使用。台币规”是气馁。使用“指标”。
# #警告:“dataStats.df的使用。台币Min”是气馁。使用“分钟”。
# #警告:“dataStats.df的使用。台币规”是气馁。使用“指标”。
# #警告:“dataStats.df的使用。台币Max’是气馁。使用“Max”代替。
# #警告:“dataStats.df的使用。台币规”是气馁。使用“指标”。
# #警告:“dataStats.df的使用。台币Max’是气馁。使用“Max”代替。
# #警告:“dataStats.df的使用。台币Sd”是气馁。使用“Sd”代替。
# #警告:“dataStats.df的使用。台币Max’是气馁。使用“Max”代替。
# #警告:“dataStats.df的使用。台币Sd”是气馁。使用“Sd”代替。
# #警告:“dataStats.df的使用。台币规”是气馁。使用“指标”。
# #警告:“dataStats.df的使用。台币Min”是气馁。使用“分钟”。
# #警告:“dataStats.df的使用。台币Sd”是气馁。使用“Sd”代替。
# #警告:“dataStats.df的使用。台币Min”是气馁。使用“分钟”。
# #警告:“dataStats.df的使用。台币Sd”是气馁。使用“Sd”代替。
# #警告:“dataStats.df的使用。台币规”是气馁。使用“指标”。

plotMetricsBoxplot方法箱线图每个指标的价值:

plotMetricsBoxplot (rnaMetrics)
# #警告:使用的数据。融化$变量”是气馁。使用“变量”。
# #警告:使用的数据。融化美元价值”是气馁。使用“价值”。

接下来,plotMetricsCluster函数簇的度量指标的值通过使用欧氏距离和方法ward.D2hclust:

plotMetricsCluster (ontMetrics)

最后,plotMetricsViolin功能:

plotMetricsViolin (rnaMetrics)
# #警告:使用的数据。融化$变量”是气馁。使用“变量”。
# #警告:使用的数据。融化美元价值”是气馁。使用“价值”。
# #警告:使用的数据。融化$变量”是气馁。使用“变量”。
# #警告:使用的数据。融化美元价值”是气馁。使用“价值”。