非靶向代谢组学的目标是尽可能从样本中量化代谢物。我们可以使用液相色谱-质谱联用(LC/MS)。将LC/MS数据转化为可为我们提供有意义的生物学信息的带注释的代谢物图谱是一个巨大的挑战。代谢组学实验注释的一个非常重要的限制是,m/z处理信号(称为特征)的数量远远大于样品中代谢物的假定数量。从单一代谢物中产生多种特征的来源是多重的和可变的。天然同位素如碳同位素产生同位素特征。代谢物的电离产生所谓的代谢物加合物,根据所涉及的离子加合物([M+Na]+, [M+H]+等)的不同,这些加合物被检测为不同的特征。除了加合物的特征外,电离还产生代谢物碎片化和其他反应,如二聚化、三聚化,所有这些反应都被检测为多重特征。将多个特征还原为单个代谢物是正确注释LC/MS实验的关键步骤,我们将展示如何使用cliqueMS
这样做。
cliqueMS
逐个注释示例。注释可以概括为以下三个步骤:
注释步骤存储在anClique
S4对象。该对象可以通过XCMSnExp
或者一个xcmsSet
对象,其中包含已处理的m/z数据xcms
包中。首先处理m/z原始数据:
图书馆(cliqueMS)mzfile < -执行(“standards.mzXML”,包=“cliqueMS”)图书馆(xcms)mzraw < -readMSData(文件=mzfile,模式=“onDisk”)cpw < -CentWaveParam(ppm =15,peakwidth =c(5,20.),snthresh =10)mzData < -findChromPeaks(对象=mzraw,param =数据
然后我们可以创建一个anClique
对象:
这里我们看到anClique
对象在任何注释步骤之前。特征没有分组,同位素和加合物没有注释。现在让我们详细看看这三个步骤。
代谢物产生多种特征,在色谱中往往不能完全分离,因此我们观察到共洗脱。这增加了注释的难度,因为来自不同代谢物的许多特征可能在色谱图中看起来非常接近。在尝试注释同位素、加合物和碎片之前,我们想要对特征进行分组。理想情况下,每一组应包括单一代谢物产生的所有特征。
cliqueMS
使用相似网络来查找特征组。每个特征是一个节点,根据特征之间的余弦相似度对边缘进行加权:
\ (c_ {ij} = \压裂{\ sum_k f_i (t_k) f_j (t_k)} {\ | {f} _i \ | \ | {f} _j \ |} \)
余弦相似度的值对于区分来自同一代谢物的特征对和来自不同代谢物的特征对[1]是有用的。我们使用数据的轮廓模式计算余弦相似度,使每个特征具有m/z值和向量强度。所有的特征被离散成一个相等箱子的向量\ (k \).每个矢量位置相对于保持时间\ (t_k \)包含特征的强度\ (i_k \)在色谱的那一刻。没有渐变的特征的余弦相似度为0。权值为0的边不包含在网络中,没有边的节点也不包含在网络中。
一旦我们有了网络,就该把特征分组了。cliqueMS
假设来自同一代谢物的所有特征之间的相似性一定是\(c_{ij} > 0\).此外,相同代谢物特征之间的相似性值一般应高于不同代谢物特征之间的相似性值。有了这些信息,cliqueMS
使用概率模型来查找特征组。这个模型找到派系,完全连接的组件,所以对于所有节点\(c_{ij} > 0\).该集团内部的相似性应该高于集团外部特征之间的相似性。cliqueMS
估计将特定的特征分配到不同的团组的对数似然。有关概率模型和对数似然最大化的详细信息,请参阅[1]。对数似然最大化过程可以总结如下:
cliqueMS
从每个节点作为不同的团组开始。现在我们来看看如何找到这个基团getCliques
.
有函数getCliques
我们为我们的特征分配小群。这个函数创建相似度网络,然后计算团群。作为输入数据,它使用axcmsSet
对象。getCliques
输出一个anClique
S4对象,该对象将用于存储所有注释步骤。
set.seed(2)ex.cliqueGroups < -getCliques(mzData过滤器=真正的)创建一个模子对象#>创建网络#>特性过滤:0#>计算派系#> logl的起始值为-712.347累计派系结束,146轮#> Kernighan-Lin 1回合结束#> logl的结束值为-164.515显示(ex.cliqueGroups)有126个特征的S4对象#>功能被分成17个派系#>无同位素注释#>无加合物注释
正如我们从打印的消息中看到的,函数getCliques
首先创建一个网络,然后过滤特征参数filter = TRUE
.由于m/z信号处理算法可能会从一个伪特征产生两个伪特征,因此建议设置filter = TRUE
去掉重复的特征该滤波器只过滤相似度为> 0.99、m/z、保留时间和最大强度等值的特征,这些特征由相对误差参数定义mzerror
,rtdiff
和intdiff
.从函数的输出中,我们可以看到在开始时计算的对数似然,当每个特征处于不同的团中时,以及在过程结束时计算的对数似然。如果我们现在看总结
结果anClique
对象,我们看到特征被分成了69个团。现在我们可以对同位素进行注释。
cliqueMS
注释每个团组内的同位素。cliqueMS
根据以下两个规则搜索碳同位素的特征对:
同位素用函数注释getIsotopes
.这个函数找到符合同位素条件的特征对。然后在去除不相干后创建同位素注释,例如一个同位素的两个单同位素质量,一个第一同位素的两个第二同位素,等等。在所有这些情况下,被删除的对是具有较小相似性的对。这个函数的用法非常简单:
ex.Isotopes < -getIsotopes(ex.cliqueGroupsppm =10)计算同位素#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#> xtfrm.data.frame(x):不能xtfrm数据帧#>正在更新一个相似对象显示(ex.Isotopes)有126个特征的S4对象#>功能被分成17个派系#> 37特征是同位素#>无加合物注释
参数ppm
很重要,因为它以PPM为单位定义了可接受的相对误差范围。一旦同位素被标注,我们就可以标注加合物和碎片。
的最后一步cliqueMS
就是注释加合物。每个特征都有一个m/z值,即代谢物的中性质量加上离子加合物(或碎片离子加合物)的质量。中性质量是一个未知的值,但离子加合物的质量在某种程度上是已知的,因为许多离子加合物是已知的。可能加合物的清单应作为输入给cliqueMS
或使用其中一个默认加合物列表(positive.adinfo
或negative.adinfo
)。以下是默认列表的样子:
数据(positive.adinfo)头(positive.adinfo)#>加合log10frequency质量diff nummol电荷#> 1 [m + 2h-nh3]2+ -3.512904 -15.012016600 12#> 2 [Cat]3+ -3.512904 -0.001645737 1#> 3 [Cat]2+ -3.512904 -0.001040400 12#> 4 [Cat+H]2+ -3.336813 1.006178842 1#> 5 [m + 2h]2+ -1.813934 2.014552000 1#> 6 [M+H+Na]2+ -2.699991 23.996494000 1数据(negative.adinfo)头(negative.adinfo)#>加合log10frequency质量diff nummol电荷#> 1 [m-2h]2- -1.4029243 -2.014552 1 -2#> 2 [M+Na-3H]2- -4.2480223 19.967390 1 -2#> 3 [m-h]- -0.1721106 -1.007276 1 -1#> 4 [m-h-h2o]- -0.8198875 -19.018390 1 -1#> 5 [m-h-nh3]- -1.9469923 -18.033815 1 -1#> 6 [m-h + h2o]- -2.1340790 17.003275 1 -1
列表应该有一列,列中有加合物的名称,一列是该加合物的log10频率,另一列是加合物的质量,一列是所涉及的分子数量,还有一列是电荷(请参阅[1]了解如何制作默认列表的详细信息)。有了加合物表,我们可以估计中性质量。
cliqueMS
在每个团中搜索与中性质量和加合物列表中的两个或更多加合物兼容的两个或更多特征的组。只有一个加合物的中性质量不包括在评分中。一旦我们有了所有可能的中性质量及其相应的加合物,算法就会尝试不同加合物和中性质量的组合,以找到最合理的注释。对所有组合进行评分,并返回前5个注释。评分标准如下:
计算得分(这是一个对数得分)是加合物的对数频率加上空特征的数量(其对数频率小于最不频繁的加合物)和中性质量的数量的总和。在一个团群中,可能会发生一些特征的注释独立于其他特征的注释,因为在两个特征组中都没有一个带有加合物的中性质量。在这些情况下,团组被分成不重叠的组,称为注释组。这在大集团中很常见。报告的分数参考注释组。分数用于查看一个注释组中第一个注释与第二个注释、第三个注释等相比的可能性有多大,但它不用于比较不同注释组之间的注释,因为当组中的特征数量较大时,分数会较小。为了比较不同组的得分,选项normalizeScore
应该设置为真正的
.当分值与理论最大分值(所有加合物最多、中性质量最少的特征)相近时,归一化分值为100,一直到0,这是该组所有特征都没有被标注的极端情况。查找注释cliqueMS
使用函数getAnnotation
.
这是一个注释加合物的例子getAnnotation
ex.Adducts < -getAnnotation(ex.Isotopesppm =10,adinfo =positive.adinfo,极性=“积极的”,normalizeScore =真正的)#>计算注释#>注释计算,更新峰值列表显示(ex.Adducts)有126个特征的S4对象#>功能被分成17个派系#> 37特征是同位素84个特性注释
正如我们从总结
输出,275个特征中有178个有注释。函数getAnnotation
要求作为输入的加合物列表,参数adinfo
.用户可以使用默认加合物列表positive.adinfo
对于带正电荷的加合物和negative.adinfo
对于带负电荷的加合物。极性
必须设置为积极的
或负
.当小集团具有许多特征时,就会发现大量的中性质量。在这些情况下,对所有注释进行评分可能会花费很多时间,因为有许多可能的组合。为了防止这种情况,选择可能在最终顶部注释中的中性质量,并快速计算注释。所选质量的加合物频率最高,加合物数量最多。对于每一个小集团,所有中性质量的排序取决于他们的得分。一些得分最高的群众控制topmasstotal
参数被选中。此外,对于每个特征,得分中性质量的有序列表被子集为只有在该特征中有加合物的中性质量。然后是一些得分最高的群众topmassf
参数在每个子列表中选择,并添加到所选质量集合中。在大规模选择之后,在大集团的情况下(“大”集团的规模由参数定义)sizeanG
),注释组被再次划分为新的不重叠的组,只是考虑到所选的中性质量集。
getCliques
控件中存储注释peaklist
的anClique
对象。在这里,我们可以看到示例中一些注释特性的概述:
特性。clique6 <-getlistofCliques(ex.Adducts) [[6]]头(getPeaklistanClique(ex.Adducts) [features.clique6,c(“an1”,“mass1”,“an2”,“mass2”,“an3”,“mass3”,“an4”,“mass4”,“an5”,“mass5”)),n =10)#> an1 mass1 an2 mass2 an3 mass3 an4#> cp037 [m + k]+ 242.0805 na [m + h + k]2+ 522.1188# > CP038 (2 M + H) + 242.0805 (M + H) + 484.1605 (M + Na) + 462.1786 (M + H-H2O) +#> cp039 na [m + nh4]+ 484.1605 na# > CP040 (2 M + K) + 242.0805 (M + K) 522.1188 + 484.1605 [M + H] + [M + K-H2O] +#> CP041 [Cat- h]+ 105.0583 [Cat]2+ 208.1014 [Cat- h]+ 105.0583 [Cat- h]+216.0768 # > CP042 [M + H-OH] + [M + H) + 199.0745 (M + H) + 199.0745 (M + H) +#> cp043不,不,不#> CP044[猫]+ 118.0649[猫]+ 118.0649[猫]+ 118.0649[猫]+#> CP045 [Cat-H2O]+ 216.0768 [Cat-H]+ 199.0745 [Cat-H]+ 199.0745 [Cat-H]+# > CP046 [M + Na) + 242.0805 (mh + 2 Na) + 220.0986 (M + Na) + 242.0805 (mh + 2 Na) +#>质量4和5质量5#> cp037 na [m + h + k]2+ 522.1188#> cp038 502.1711 [m + h-nh3]+ 501.1871#> cp039 na [m + h]+ 501.1871#> cp040 502.1711 [m + h]+ 522.1188#> CP041 105.0583 [Cat-H]+ 105.0583#> cp042 199.0745 [m + h]+ 199.0745#> cp043 na na#> CP044 118.0649 [Cat]+ 118.0649#> CP045 199.0745 [Cat-H]+ 199.0745#> CP046 [M-H+2Na]+ 220.0986
现在我们已经得到了中性质量和加合物的注释。我们可以使用中性质量结合保留时间和MS/MS数据来更自信地注释这些代谢物。我们还知道数据集中有多少特征是同位素。最后,我们已经实现了数据集复杂性的降低,从许多特征到具有不同加合物和同位素的注释中性质量的数量显著减少。
b[1]:“CliqueMS:一种基于进化相似性网络的LC-MS非靶向代谢组学数据中对源内代谢物离子进行注释的计算工具”。奥里奥尔·塞南、安东尼·阿吉拉尔-莫加斯、米里亚姆·纳瓦罗、乔迪·卡佩拉斯、卢克·努恩、黛博拉·伯克斯、奥斯卡·扬斯、罗杰·吉梅罗和玛尔塔·萨莱斯-帕尔多。生物信息学。2019年3月接受。