不和谐的1.21.0
Discordant是一个R包,用于识别表型组之间不同相关的特征对,并应用于组学数据集。Discordant使用一种混合模型,根据分子特征对的共表达类型或共丰度“分类”。有关该算法的更多信息,请参阅(西斯卡、鲍勒和凯克里斯(2015),Siska。和克克里斯(2016)).最终输出是差分相关的后验概率。该软件包可用于确定一个组学数据集内或两个组学数据集之间的差异相关性(前提是两个组学数据集取自相同的样本)。此外,数据类型可以是任何类型的组学,具有正态或非正态分布。例如代谢组学、转录组学、蛋白质组学等。
discord包中的函数为中间R用户提供了一个简单的管道,以确定差异相关对。最终输出是一个分子特征对及其各自的后验概率表。函数的编写允许用户灵活地解释结果,这将被进一步讨论。目前,该软件包仅支持两个表型组之间的比较(例如,疾病与对照,突变与野生型)。
discord最初源于Concordant算法,由(Lai et al. (2007),Lai et al. (2014)).它被用来确定微阵列之间的一致性。我们已将其应用于确定组间特征的差异相关性(西斯卡、鲍勒和凯克里斯(2015),Siska。和克克里斯(2016)).
使用三组分混合模型和期望最大化(EM)算法,该模型预测分子特征对的表型组1和2的相关系数是否不相似(西斯卡、鲍勒和凯克里斯(2015)).为一个组学数据集内或两个组学数据集之间所有可能的分子特征对生成相关系数。使用Fisher变换将相关系数转换为z分数。这三个分量分别是-,+和0,分别对应负相关,正相关或不相关。具有相关系数的分子特征不同的考虑组件不同相关的,而不是相关系数在相同那么它们就是同样相关的。
\[开始\{数组}{c | c c c}{0}{} & \ \文本文本和文本\{-}& \文本{+}\ \ \线0 & 1 & 2 & 3 \ \ & 4 & 5 & 6 \ \ 7 + & & 8和9 \ \ \{数组}结束\]
类矩阵(上面)包含了表示所有可能的配对相关场景的类。这些场景基于混合模型中的组件。在不同组分中具有相关系数的分子特征被认为是差异相关的,相反,当相关系数在同一组分中时,它们是等效相关的。这可以在类矩阵中可视化,其中行表示组1的组件,列表示组2的组件。对角线上的类表示等效相关(1,5和9),非对角线上的类表示微分相关(2,3,4,6,8)。
运行EM算法后,我们对每个分子特征对有9个后验概率,对应于类矩阵中的9个类。因为我们想要总结分子特征对差异相关的概率,所以我们将表示类矩阵中非对角类的后验概率相加。
以下数据集由不和谐的并将在下面的例子中使用。所有数据集最初来自癌症基因组图谱(TCGA),可在以下网站上找到http://cancergenome.nih.gov/.
数据集如上所述,没有其他修改。在整个小插图中,我们将使用这些数据集TCGA_GBM_miRNA_microarray
而且TCGA_GBM_transcript_microarray
为了演示不和谐的的基本功能。它们装载如下:
“内”组学是指在一个组学数据集中进行不一致分析,其中组学数据集中的所有分子特征都相互配对(例如,转录组学实验中的转录本-转录本对)。
“介于”组学是指对两个组学数据集进行分析。分析的分子特征对在两组之间,如转录-蛋白质,蛋白质-代谢物。
不和谐的为组学内部和组学之间的分析提供了工具,这些分析将在接下来的部分中描述。
在我们的工作中,我们发现具有异常值的特征会扭曲相关性并导致假阳性。我们的方法是过滤掉有较大异常值的特征。对于正常的数据,比如来自微阵列的基因表达数据,格拉布斯的测试可以使用。零假设是数据中没有异常值,因此特征具有p值\通用电气(\ \)0.05保留。函数中有一个简单的R函数离群值R包装为grubbs.test ()
.
在非正态数据中确定异常值更为复杂。我们使用中位数绝对偏差(MAD)。通常,如果特征在距离中值2或3个mad之外(Leys et al. (2013)).这并不完全适用于测序数据,因为测序数据方差大,分布不对称。因此,我们使用了“分裂MAD”方法(Magwene et al. (2011)).左MAD是根据中位数左侧的数据确定的,右MAD是根据中位数右侧的数据确定的。如果有任何特征在中位数的左或右MAD的因子之外,它们将被过滤掉。
不和谐的提供了splitMADOutlier ()
使用MAD识别具有异常值的特征。中位数之外的MAD数量可以通过选项更改阈值
.另一个选择是filter0
如果真正的
将过滤掉任何至少有一个0的特征。返回的参数为mat.filtered
,即过滤后的矩阵和指数
哪个是被保留的特征索引mat.filtered
.
要运行discord算法,每个组对应的相关向量都是必要的输入,使用函数很容易创建createVectors ()
.每个相关系数表示两个分子特征之间的相关性。分子特征对的类型取决于是组内分析还是组间分析。同一组学数据集中分子特征之间的相关性在组学内,两个不同组学数据集中分子特征之间的相关性在组学之间。是否在组内或组间进行分析取决于该函数的一个或两个矩阵是否为参数。的论点createVectors ()
是:
createVectors ()
然后按如下方式运行:
组< -c(代表(1,10),代表(2,20.))#内部组学wthn_vectors < -createVectors(x =TCGA_GBM_transcript_microarray,组=组)# Between -omicsbtwn_vectors < -createVectors(x =TCGA_GBM_miRNA_microarray,y =TCGA_GBM_transcript_microarray,组=组)
createVectors ()
返回一个包含两个元素的列表,v1
而且v2
,为标记样本对应的分子特征对的相关向量1
而且2
使用组
分别论证。每个向量都是一个数字命名向量,其名称表示对中的每个特征,用下划线分隔。以下是每个组的前几个相关性,首先来自组内分析,其次来自组间分析。
a_23_p138644_a_24_p345312 a_23_p138644_a_24_p571870 ## 0.36969697 -0.26060606 -0.13939394 ## a_23_p138644_a_32_p71885 a_23_p138644_a_32_p82889 a_23_p138644_a_23_p105264 ## -0.09090909 -0.04863244 -0.69696970
a_23_p138644_a_24_p345312 a_23_p138644_a_24_p571870 ## 0.216541353 -0.433082707 -0.254135338 ## a_23_p138644_a_32_p82889 a_23_p138644_a_23_p105264 ## -0.285714286 -0.009022556 -0.154887218
hsa- mir -19b- 5p_a_23_p345312 hsa-miR-19b-5p_A_24_P571870 ## 0.1878788 -0.3939394
hsa-miR-19b-5p_A_32_P71885 hsa-miR-19b-5p_A_32_P82889 ## -0.37744361
这个函数createVectors ()
使用参数为相关性度量提供几个选项cor.method
.提供的方法包括“枪兵”
(默认的度量),“皮尔森”
,“bwmc”
,“sparcc”
.有关斯皮尔曼,皮尔逊和双权中相关(bwmc)的信息和比较见Song等(宋,朗菲尔德和霍瓦特(2012)).我们还研究了disdant中与测序数据相关的相关指标,发现Spearman的相关性能最好(Siska。和克克里斯(2016)).
SparCC的算法是由Friedman等人介绍的。弗里德曼和阿尔姆(2012)),并使用由方华英(方等(2015)).
在函数中实现了不协调算法discordantRun ()
这需要两个相关向量和原始数据。如果用户希望在输入数据集之前生成自己的相关向量,他们可以这样做。但是,如果插入的数据集的维度与相关向量不匹配,该函数将返回错误消息。discordantRun ()
调用如下:
#内部组学wthn_result < -discordantRun(v1 =wthn_vectors$v1,v2 =wthn_vectors$v2,x =TCGA_GBM_transcript_microarray)# Between -omicsbtwn_result < -discordantRun(v1 =btwn_vectors$v1,v2 =btwn_vectors$v2,x =TCGA_GBM_miRNA_microarray,y =TCGA_GBM_transcript_microarray)
不和谐算法的后验概率输出是微分相关后验概率(上面描述的类矩阵的非对角线的和)。如果用户希望观察更详细的信息,可以使用其他输出。discordantRun ()
有六个输出:
discordPPMatrix
差分相关后验概率矩阵,其中行和列反映特征。如果只输入x,则行数和列数为x中的特征数,行和列名为特征名,矩阵的上对角线为na,以避免重复结果。如果输入x和y,行数是x的特征大小,列数是y的特征大小。行名是x的特征,列名是y的特征。
a_23_p138644 a_23_p24296 a_24_p345312 a_24_p571870 ## a_23_p13296 0.2878537 na na na ## a_24_p345312 0.8912767 0.60018437 na na ## a_24_p571870 0.5241415 0.14509976 0.223684 na ## a_32_p71885 0.6669908 0.09268763 0.808103 0.2945575
## hsa-miR-376a-5p ## hsa-miR-19b-5p 0.97651996 0.38597448 0.54913355 0.30547498 ## hsa-miR-369-5p 0.04519821 0.08113338 0.90726304 0.04050697 ## hsa-miR-376a-5p 0.70594948 0.03692205 0.07830365 0.58323497 ## hsa-miR-376a-5p 0.701071194 0.04581947 0.90287297 0.05971681
discordPPVector
微分相关后验概率向量。长度是特征对的数量。向量的名字就是特征对。
a_23_p138644_a_24_p345312 a_23_p138644_a_24_p571870 ## 0.28785373 0.89127669 0.52414148 ## a_23_p138644_a_32_p71885 a_23_p138644_a_32_p82889 a_23_p138644_a_23_p105264 ## 0.66699081 0.03938042 0.89322774
hsa-miR-19b-5p_A_24_P345312 hsa-miR-19b-5p_A_32_P71885 hsa-miR-19b-5p_A_32_P82889 ## 0.47601903
classMatrix
每对具有最高后验概率的类的矩阵。行和列名与in相同discordPPMatrix
这取决于是只输入x还是同时输入x和y。
## a_23_p138644 a_23_p24296 a_24_p345312 a_24_p571870 ## a_23_p24296 1 na na na na ## a_24_p345312 4 3 na na ## a_24_p571870 4 1 1 na ## a_32_p71885 4 13 1
## hsa-miR-19b-5p 71 2 1 ## hsa-miR-206-5p 2 19 1 ## hsa-miR-369-5p 1 12 1 ## hsa-miR-376a-5p 1 12 1 ## hsa-miR-376a-5p 1 12 1 ## hsa-miR-376a-5p 1 12 1 ## hsa-miR-376a-5p
classVector
每对后验概率最高的类向量。长度是特征对的数量。向量的名称对应特征对,类似于discordPPVector
.
1 44 ## a_23_p138644_a_24_p345312 a_23_p138644_a_24_p571870 ## 4 12
hsa- mir -19b- 5p_a_23_p345312 hsa-miR-19b-5p_A_32_P71885 hsa-miR-19b-5p_A_32_P82889 ## 1 4
probMatrix
所有后验概率的矩阵,其中行数是特征对的数量,列表示类矩阵中的类。列的数量可以是9或25,这取决于选择了多少混合组分(稍后讨论)。每一行的值加起来为1。的后验概率discordPPMatrix
而且discordPPVector
对应于微分相关类(如上所述)的列的和。每一列对应于上面三个组件的类矩阵中分别编号的元素,或者对应于下面描述的五个组件的类矩阵。
# # [1] [2] [3] [4] [5] [6] [7] [8] [9] # # A_23_P138644_A_23_P24296 0 0.44 0.00 0.24 0.00 0.00 0.04 0.00 0.27 0.10 0.00 0.00 0.89 0.01 # # A_23_P138644_A_24_P345312 0 0.00 0.00 0.00 0.48 0.00 0.01 0.51 0.00 # # A_23_P138644_A_24_P571870 0 0.00 0.00 0.00 0.33 0.00 0.01 0.66 0.00 # # A_23_P138644_A_32_P71885 0 0.00 0.00 0.00 0.96 0.00 0.03 0.00 0.00 # # A_23_P138644_A_32_P82889 0 0.01 0.00 0.00 # # A_23_P138644_A_23_P105264 0 0.00 0.01 0.00 0.05 0.88 - 0.00 0.00 - 0.05
# # [1] [2] [3] [4] [5] [6] [7] [8] [9] # # hsa-miR-19b-5p_A_23_P138644 0 0.02 0.02 0.00 0.00 0.00 0.73 0.22 0.00 0.13 0.86 0.00 0.00 0.00 # # hsa-miR-19b-5p_A_23_P24296 0 0.00 0.01 0.00 0.95 0.00 0.02 0.00 0.00 # # hsa-miR-19b-5p_A_24_P345312 0 0.02 0.00 0.00 0.29 0.16 0.00 0.00 0.00 # # hsa-miR-19b-5p_A_24_P571870 0 0.45 0.09 0.00 0.78 0.00 0.19 0.01 0.00 # # hsa-miR-19b-5p_A_32_P71885 0 0.01 0.00 0.01 # # hsa-miR-19b-5p_A_32_P82889 0 0.00 0.00 0.00 0.17 0.11 - 0.00 0.37 - 0.35
loglik
模型的对数似然拟合。
## [1] 1199.92
## [1] 1266.161
子抽样是使用独立特征对的随机样本运行EM算法的一种选择。重复多次采样,然后使用这些参数的平均值来最大化所有特征对的后验概率。引入这个选项是为了加快不协调方法的速度,同时也解决了独立性假设。
这个论点二次抽样
必须设置为真正的
用于子抽样。默认情况下,要进行次采样的独立特征对的数量为组内分析的特征总数的一半,组间分析的特征数为组间分析的数据集中特征较少的特征数。该数字可由用户使用小尺寸
参数,但用户设置的值不能超过默认值,因为默认值是给定分析可能的独立样本对的最大数量。
要运行的随机抽样的数量由参数设置iter
默认值为100。
正如下一节所讨论的,不协调方法需要足够数量的特征来估计组件,并且使用子采样减少了用于分析的特征的数量,因此应该为更大的数据集保留子采样。对于某些数据集,某些随机样本将是充分的,而其他可能不是。对于这些数据集,子采样算法将允许多达10%的迭代失败和重复。如果超过10%的迭代失败,discordantRun ()
将抛出包含潜在解决方案的错误,如下所示。
# Between -omicsbtwn_result < -discordantRun(v1 =btwn_vectors$v1,v2 =btwn_vectors$v2,x =TCGA_GBM_miRNA_microarray,y =TCGA_GBM_transcript_microarray,组件=3.,二次抽样=真正的)
## discordantRun错误(v1 = btwn_vectors$v1, v2 = btwn_vectors$v2, x = TCGA_GBM_miRNA_microarray,: ##子采样数据不足增加##特性的数量,减少使用的组件数量,或者增加## subSize(如果不是默认值)。或者,设置## subsampling=FALSE。
考虑到功能的数量有限TCGA_GBM
数据集,他们不是一个合适的候选子抽样,所以我们将取而代之使用TCGA_Breast_miRNASeq
而且TCGA_Breast_RNASeq
数据集演示多组分析与子抽样。注意,种子是在调用之前设置的discordantRun ()
与subsampling = TRUE
,因为抽取子样本是随机的,使用不同的种子可能会有不同的结果。
#加载数据数据(TCGA_Breast_miRNASeq_voom)数据(TCGA_Breast_RNASeq_voom)#准备分组组< -c(代表(1,15),代表(2,42))#创建相关向量sub_vectors < -createVectors(x =TCGA_Breast_miRNASeq_voom,y =TCGA_Breast_RNASeq_voom,组=组)运行子抽样分析set.seed(126)sub_result < -discordantRun(sub_vectors$v1, sub_vectors$v2,x =TCGA_Breast_miRNASeq_voom,y =TCGA_Breast_RNASeq_voom,组件=3.,二次抽样=真正的)#结果轮(头(sub_result$probMatrix),2)
# # [1] [2] [3] [4] [5] [6] [7] [8] [9] # # hsa - mir - 1247 - _mapk8ip1 | 9479 0.34 0.12 0.00 0.02 0.00 0.00 0.53 0 # # hsa - mir - 1247 - _ppwd1 | 23398 0.00 0.98 0.01 0.00 0.00 0.00 0.00 0 # # hsa - mir - 1247 - _ceacam22p | 388550 0.00 0.94 0.03 0.00 0.00 0.02 0.00 0 # # hsa - mir - 1247 - _htr2a | 3356 0.03 0.94 0.00 0.01 0.00 0.00 0.02 0 # # hsa - mir - 1247 - _samd12 | 401474 0.00 0.00 0.00 0.00 0.53 0.47 0.00 0 # # hsa - mir - 1247 - _ints7 | 25896 0.00 0.35 0.00 0.00 0.58 0.07 0.00 0
我们还提供了在混合模型中将组件大小从3个增加到5个的选项。类矩阵中的类数量增加,如下表所示。结合额外的成分意味着有可能识别出较高的差异相关性,这是指在两个组中有相同方向的关联,但其中一个更极端。使用此选项会引入更多参数,这确实会对运行时产生影响。我们还发现,与三组分混合模型相比,使用五组分混合模型会降低性能(Siska。和克克里斯(2016)).但是,如果用户希望探索更多类型的差分相关,则可以使用该选项。
\[开始\{数组}{c | c c c c c}{0}{} & \ \文本文本和文本\{-}和{-}\文本和文本\{+}& \文本{+ +}\ \ \线0 & 1 & 2 & 3 & 4 & 5 \ \ & 6 & 7和8、9和10 \ \ & 11 & 12和13和14和15 \ \ + & 16和17和18和19和20 \ \ + + & 21和22和23和24 & 25 \结束数组{}\]
默认情况下,discordantRun ()
使用三组分混合模型,但可以通过设置参数将其更改为五组分混合模型分量= 5
.与3个组件相比,需要更多的数据(特别是更多的特征)来准确估计5个组件。如果使用的数据量不足,discordantRun ()
将抛出一个错误,建议用户增加功能的数量或减少所选择的组件的数量。上面用于组内分析的数据没有足够的特征来估计5个成分,因此在下面抛出一个错误。
#内部组学wthn_result < -discordantRun(v1 =wthn_vectors$v1,v2 =wthn_vectors$v2,x =TCGA_GBM_transcript_microarray,组件=5)
## discordantRun错误(v1 = wthn_vectors$v1, v2 = wthn_vectors$v2, x = TCGA_GBM_transcript_microarray,: ##分量估计数据不足。增加功能的数量或减少使用的组件的数量。
然而,上面的组间分析是使用五个成分进行进一步分析的合适候选,因此下面提供了这样的分析示例。
# Between -omicsbtwn_result < -discordantRun(v1 =btwn_vectors$v1,v2 =btwn_vectors$v2,x =TCGA_GBM_miRNA_microarray,y =TCGA_GBM_transcript_microarray,组件=5)# Between -omics轮(头(btwn_result$probMatrix),2)
# # [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] # # hsa-miR-19b-5p_A_23_P138644 0.02 - 0.01 0.00 - 0.00 0.0 - 0.00 0 0 0 # # hsa-miR-19b-5p_A_23_P24296 0.14 0.86 0.00 0.01 0.0 0.00 0 0 0 # # hsa-miR-19b-5p_A_24_P345312 0.98 - 0.00 0.01 - 0.00 0.0 - 0.00 0 0 0 # # hsa-miR-19b-5p_A_24_P571870 0.27 0.10 0.00 0.00 0.0 0.00 0 0 0 # # hsa-miR-19b-5p_A_32_P71885 0.79 - 0.00 0.21 - 0.00 0.0 - 0.00 0 0 0 # # hsa-miR-19b-5p_A_32_P82889 0.18 0.08 0.00 0.00 0.3 - 0.44 0 0 0 # # [11] [12] [13] [14] [15] [16][17] [18] # # hsa-miR-19b-5p_A_23_P138644 0.48 - 0.18 0 0 0 0 0 0 # # hsa-miR-19b-5p_A_23_P24296 0.00 - 0.00 0 0 0 0 0 0 # # hsa-miR-19b-5p_A_24_P345312 0.00 - 0.00 0 0 0 0 0 0 # # hsa-miR-19b-5p_A_24_P571870 0.50 - 0.11 0 0 0 0 0 0 # # hsa-miR-19b-5p_A_32_P71885 0.00 - 0.00 0 0 0 0 0 0 # # hsa-miR-19b-5p_A_32_P82889 0.00 - 0.00 0 0 0 0 0 0 # # [19] [20] [21] [22] [23] [24] [25] # # hsa-miR-19b-5p_A_23_P138644 0 0 0.24 - 0.06 0 0 0 # # hsa-miR-19b-5p_A_23_P24296 0 0 0.00 - 0.00 0 0 0 # #hsa-miR-19b-5p_A_24_P345312 00 0.00 0.00 00 0 ## hsa-miR-19b-5p_A_24_P571870 00 0.01 0.00 00 0 # hsa-miR-19b-5p_A_32_P71885 00 0.00 0.00 00 0 # hsa-miR-19b-5p_A_32_P82889 00 0.00 0.00 00 00
## R版本4.2.0 RC (2022-04-21 r82226) ##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats graphics grDevices utils datasets methods基础## ##其他附加包:## [1]discordant_1.21.0 BiocStyle_2.25.0 ## ##通过命名空间加载(且未附加):## [7] BiocManager_1.30.17 jquerylib_0.1.4 tools_4.2.0 ## [10] digest_0.6.29 tibble_3.1.6 lifecycle_1.0.1 ## [13] jsonlite_1.8.0 evaluate_0.15 lattice_0.20-45 ## [16] pkgconfig_2.0.3 rlang_1.0.2 DBI_1.1.2 ## [19] cli_3.3.0 yaml_2.3.5 mvtnorm_1. 1.1-3 ## [22] xfun_0.30 fastmap_1.1.0 string_1 .4.0 ## [25] dplyr_1.0.8 knitr_1.38 generics_0.1.2 ## [28] sass_0.4.1 vctrs_0.4.1 gtools_3.9.2 ## [31][37] rrcov_1.7-0 R6_2.5.1 fansi_1.0.3 ## [40] rmarkdown_2.14 bookdown_0.26 purrr_0.3.4 ## [43] magrittr_2.0.3 ellipsis_0.3.2 htmltools_0.5.2 ## [46] MASS_7.3-57 BiocGenerics_0.43.0 assertthat_0.2.1 ## [49] biwt_1.0 utf8_1.2.2 stringi_1.7.6 ## [52] crayon_1.5.1
方华英,黄成成,赵宏宇,邓明华。2015。CCLasso:通过Lasso进行成分数据的相关推断。生物信息学31(19): 3172-80。
乔纳森·弗里德曼,埃里克·j·阿尔姆,2012。“从基因组调查数据推断相关网络。”PLoS计算生物学.
赖英磊,亚当宝玲,罗伯特·波多尔斯基,佘金雄。2007。用混合模型方法检验两个大样本组实验的一致性和不一致性生物信息学23(10): 1243-50。
Lai, Yinglei, Fanni Zhang, Tapan K. Naya, Reza Modarres, Norman H. Lee和timothy A. McCaffrey。2014.多大规模双样本表达数据集的和谐整合基因集富集分析。BMC基因组学15.
莱伊,克利斯朵夫,奥利维尔·克莱因,菲利普·伯纳德和劳伦特·利卡塔,2013年。“检测异常值:不要使用平均值附近的标准偏差,使用中位数附近的绝对偏差。”实验社会心理学杂志49(4)。
保罗·M·马格温尼,约翰·h·威利斯,约翰·k·凯利,亚当·西佩尔,2011。“使用下一代测序的批量分离分析统计。”PLoS计算生物学7(11)。
希斯卡,夏洛特,拉斯·鲍勒和卡特琳娜·凯克里斯,2015。不协调方法:微分相关的一种新方法生物信息学32(5): 690-96。
Siska。,Charlotte, and Katerina Kechris. 2016. “Differential Correlation for Sequencing Data.”
宋,林,彼得·朗菲尔德,史蒂夫·霍瓦特。2012。共表达度量的比较:相互信息、相关性和基于模型的指数BMC生物信息学13(328)。