The metapone package conducts pathway tests for untargeted metabolomics data. It has three main characteristics: (1) expanded database combining SMPDB and Mummichog databases, with manual cleaning to remove redundancies; (2) A new weighted testing scheme to address the issue of metabolite-feature matching uncertainties; (3) Can consider positive mode and negative mode data in a single analysis.
Compared to existing methods, the weighted testing scheme allows the user to apply different level of penalty for multiple-mapped features, in order to reduce their undue impact on the results. In addition, considering positive mode and negative mode data simultaneously can improve the statistical power of the test.
library(metapone)
#> Loading required package: BiocParallel
#> Loading required package: fields
#> Loading required package: spam
#> Loading required package: dotCall64
#> Loading required package: grid
#> Spam version 2.7-0 (2021-06-25) is loaded.
#> Type 'help( Spam)' or 'demo( spam)' for a short introduction
#> and overview of this package.
#> Help for individual functions is also obtained by adding the
#> suffix '.spam' to the function name, e.g. 'help( chol.spam)'.
#>
#> Attaching package: 'spam'
#> The following objects are masked from 'package:base':
#>
#> backsolve, forwardsolve
#> Loading required package: viridis
#> Loading required package: viridisLite
#> See https://github.com/NCAR/Fields for
#> an extensive vignette, other supplements and source code
#> Loading required package: markdown
#>
#> Attaching package: 'metapone'
#> The following object is masked from 'package:stats':
#>
#> ftable
The input should contain at least three clumns - m/z, retention time, and feature p-value. Here to illustrate the usage of the method, we borrow the test results from our published study “Use of high-resolution metabolomics for the identification of metabolic T signals associated with traffic-related air pollution” in Environment International. 120: 145–154.
The positive mode results are in the object “pos”.
data(pos)
head(pos)
#> m.z retention.time p.value statistic
#> 1 85.04027 55.66454 0.22109229 -1.231240
#> 2 85.07662 56.93586 0.52181695 -0.642790
#> 3 85.57425 125.97117 0.13483680 -1.507372
#> 4 86.06064 194.81306 0.26069118 1.131101
#> 5 86.08001 54.74512 0.17206535 1.375352
#> 6 86.09704 177.73650 0.07541608 1.796427
The negative mode results are in the object “neg”. If both positive mode and negative mode data are present, each is input into the algorithm as a separate matrix
data(neg)
head(neg)
#> mz chr pval t-statistic
#> result.1 85.00448 268.83027 0.2423777 1.1690645
#> result.2 87.00881 48.84882 0.2222984 1.2204394
#> result.3 87.92531 161.99560 0.1341622 1.4978887
#> result.4 88.00399 129.88520 0.2941855 -1.0489839
#> result.5 88.01216 35.81698 0.8510984 -0.1877171
#> result.6 88.98808 127.47973 0.1748255 -1.3568608
It is not required that both positive and negative mode results are present. Having a single ion mode is also OK. The test is based on HMDB identification. The common adduct ions are pre-processed and stored in:
data(hmdbCompMZ)
head(hmdbCompMZ)
#> HMDB_ID m.z ion.type
#> 1 HMDB0059597 1.343218 M+3H
#> 2 HMDB0001362 1.679159 M+3H
#> 3 HMDB0037238 2.341477 M+3H
#> 4 HMDB0005949 3.345944 M+3H
#> 5 HMDB0002387 4.011337 M+3H
#> 6 HMDB0002386 4.677044 M+3H
Pathway information that was summarized from Mummichog and smpdb is built-in:
data(pa)
head(pa)
#> database pathway.name HMDB.ID KEGG.ID category
#> 1 Metapone 191 Pterine Biosynthesis HMDB0006822 C05922 Metabolic
#> 2 Metapone 191 Pterine Biosynthesis HMDB0002111 C00001 Metabolic
#> 3 Metapone 191 Pterine Biosynthesis HMDB0006821 C05923 Metabolic
#> 4 Metapone 191 Pterine Biosynthesis HMDB0000142 C00058 Metabolic
#> 5 Metapone 191 Pterine Biosynthesis HMDB0015532 Metabolic
#> 6 Metapone 191 Pterine Biosynthesis HMDB0001273 C00044 Metabolic
The user can specify which adduct ions are allowed by setting the allowed adducts. For example:
pos.adductlist = c("M+H", "M+NH4", "M+Na", "M+ACN+H", "M+ACN+Na", "M+2ACN+H", "2M+H", "2M+Na", "2M+ACN+H")
neg.adductlist = c("M-H", "M-2H", "M-2H+Na", "M-2H+K", "M-2H+NH4", "M-H2O-H", "M-H+Cl", "M+Cl", "M+2Cl")
It is common for a feature to be matched to multiple metabolites. Assume a feature is matched to m metabolites, metapone weighs the feature by (1/m)^p, where p is a power term to tune the penalty. m can also be capped at a certain level such that the penalty is limited. These are controlled by parameters:
Setting p: fractional.count.power = 0.5 Setting the cap of n: max.match.count = 10
It is easy to see that when p=0, no penalty is assigned for multiple-matching. The higher p is, the larger penalty for features that are multiple matched.
Other parameters include p.threshold, which controls which metabolic feature is considered significant. The testing is done by permutation. Overall, the analysis is conducted this way:
r<-metapone(pos, neg, pa, hmdbCompMZ=hmdbCompMZ, pos.adductlist=pos.adductlist, neg.adductlist=neg.adductlist, p.threshold=0.05,n.permu=100,fractional.count.power=0.5, max.match.count=10)
hist(ptable(r)[,1])
We can subset the pathways that are significant:
selection<-which(ptable(r)[,1]<0.025)
ptable(r)[selection,]
#> p_value
#> Beta Oxidation of Very Long Chain Fatty Acids 0.02
#> Glycosphingolipid metabolism 0.02
#> C21-steroid hormone biosynthesis and metabolism 0.01
#> Androgen and Estrogen Metabolism 0.01
#> Glycine and Serine Metabolism 0.02
#> beta-Alanine Metabolism 0.02
#> Porphyrin Metabolism 0.01
#> Purine Metabolism 0.02
#> Sphingolipid Metabolism 0.01
#> Chlorocyclohexane and chlorobenzene degradation 0.02
#> Cyanoamino acid metabolism 0.02
#> Valine, leucine and isoleucine degradation 0.02
#> Porphyrin and chlorophyll metabolism 0.02
#> Estrogen signaling pathway 0.00
#> One carbon pool by folate 0.00
#> n_significant metabolites
#> Beta Oxidation of Very Long Chain Fatty Acids 0.7862128
#> Glycosphingolipid metabolism 2.8395164
#> C21-steroid hormone biosynthesis and metabolism 4.8363062
#> Androgen and Estrogen Metabolism 2.7672612
#> Glycine and Serine Metabolism 3.8434006
#> beta-Alanine Metabolism 2.8133149
#> Porphyrin Metabolism 3.1213203
#> Purine Metabolism 4.6733053
#> Sphingolipid Metabolism 2.8395164
#> Chlorocyclohexane and chlorobenzene degradation 1.2886751
#> Cyanoamino acid metabolism 2.3756381
#> Valine, leucine and isoleucine degradation 2.0615286
#> Porphyrin and chlorophyll metabolism 1.8506493
#> Estrogen signaling pathway 0.2085144
#> One carbon pool by folate 0.8944272
#> n_mapped_metabolites
#> Beta Oxidation of Very Long Chain Fatty Acids 2.7328912
#> Glycosphingolipid metabolism 13.9627029
#> C21-steroid hormone biosynthesis and metabolism 28.3710206
#> Androgen and Estrogen Metabolism 13.2744270
#> Glycine and Serine Metabolism 28.9817190
#> beta-Alanine Metabolism 16.5311037
#> Porphyrin Metabolism 12.8947329
#> Purine Metabolism 31.7643456
#> Sphingolipid Metabolism 15.1783390
#> Chlorocyclohexane and chlorobenzene degradation 5.4192440
#> Cyanoamino acid metabolism 15.4608753
#> Valine, leucine and isoleucine degradation 9.1648402
#> Porphyrin and chlorophyll metabolism 8.2950505
#> Estrogen signaling pathway 0.2085144
#> One carbon pool by folate 0.8944272
#> n_metabolites
#> Beta Oxidation of Very Long Chain Fatty Acids 14
#> Glycosphingolipid metabolism 45
#> C21-steroid hormone biosynthesis and metabolism 80
#> Androgen and Estrogen Metabolism 63
#> Glycine and Serine Metabolism 56
#> beta-Alanine Metabolism 42
#> Porphyrin Metabolism 47
#> Purine Metabolism 91
#> Sphingolipid Metabolism 40
#> Chlorocyclohexane and chlorobenzene degradation 23
#> Cyanoamino acid metabolism 29
#> Valine, leucine and isoleucine degradation 33
#> Porphyrin and chlorophyll metabolism 40
#> Estrogen signaling pathway 8
#> One carbon pool by folate 9
#> significant metabolites
#> Beta Oxidation of Very Long Chain Fatty Acids <NA>
#> Glycosphingolipid metabolism <NA>
#> C21-steroid hormone biosynthesis and metabolism <NA>
#> Androgen and Estrogen Metabolism <NA>
#> Glycine and Serine Metabolism <NA>
#> beta-Alanine Metabolism <NA>
#> Porphyrin Metabolism <NA>
#> Purine Metabolism <NA>
#> Sphingolipid Metabolism <NA>
#> Chlorocyclohexane and chlorobenzene degradation <NA>
#> Cyanoamino acid metabolism <NA>
#> Valine, leucine and isoleucine degradation <NA>
#> Porphyrin and chlorophyll metabolism <NA>
#> Estrogen signaling pathway <NA>
#> One carbon pool by folate <NA>
#> mapped_metabolites
#> Beta Oxidation of Very Long Chain Fatty Acids HMDB0000638,HMDB0000062,HMDB0000201
#> Glycosphingolipid metabolism HMDB0001565,HMDB0000224,HMDB0000220,HMDB0000252,HMDB0001383,HMDB0001551,HMDB0000277,HMDB0003449,HMDB0001480,HMDB0000122,HMDB0000187,HMDB0006752,HMDB0004866,HMDB0000648,HMDB0001448,HMDB0006591
#> C21-steroid hormone biosynthesis and metabolism HMDB0000653,HMDB0006759,HMDB0004026,HMDB0006762,HMDB0000015,HMDB0011653,HMDB0004031,HMDB0004030,HMDB0000016,HMDB0004029,HMDB0006758,HMDB0000319,HMDB0000949,HMDB0000268,HMDB0006755,HMDB0006278,HMDB0000990,HMDB0002833,HMDB0006281,HMDB0060512,HMDB0002829,HMDB0001231,HMDB0006756,HMDB0006203,HMDB0006280,HMDB0001032,HMDB0000774,HMDB0001318,HMDB0000374,HMDB0006763,HMDB0006224,HMDB0004484,HMDB0000374,HMDB0000253,HMDB0001547,HMDB0000142,HMDB0001448,HMDB0003193,HMDB0000042,HMDB0000363,HMDB0003069,HMDB0000063,HMDB0006773
#> Androgen and Estrogen Metabolism HMDB0001377,HMDB0000142,HMDB0002111,HMDB0003959,HMDB0003955,HMDB0006224,HMDB0000374,HMDB0000363,HMDB0001032,HMDB0003193,HMDB0001448,HMDB0003125,HMDB0002168,HMDB0006774,HMDB0000253,HMDB0000405,HMDB0006765,HMDB0002829,HMDB0004484,HMDB0060424,HMDB0006773
#> Glycine and Serine Metabolism HMDB0002134,HMDB0001377,HMDB0002111,HMDB0003125,HMDB0001167,HMDB0000243,HMDB0006454,HMDB0000123,HMDB0000092,HMDB0001426,HMDB0000271,HMDB0013639,HMDB0012210,HMDB0000187,HMDB0001352,HMDB0000161,HMDB0000119,HMDB0000517,HMDB0000064,HMDB0001149,HMDB0000043,HMDB0000742,HMDB0000696,HMDB0000139,HMDB0000807,HMDB0000148,HMDB0000208,HMDB0001429,HMDB0003406,HMDB0000005
#> beta-Alanine Metabolism HMDB0002111,HMDB0000056,HMDB0000479,HMDB0000177,HMDB0000191,HMDB0000026,HMDB0000076,HMDB0000300,HMDB0000208,HMDB0011111,HMDB0000148,HMDB0001106,HMDB0001377,HMDB0003125,HMDB0000112,HMDB0000700
#> Porphyrin Metabolism HMDB0000123,HMDB0001149,HMDB0000245,HMDB0002111,HMDB0002158,HMDB0001261,HMDB0001377,HMDB0003125,HMDB0000692,HMDB0001008,HMDB0000054,HMDB0003325,HMDB0060273,HMDB0000127,HMDB0001264
#> Purine Metabolism HMDB0002111,HMDB0001429,HMDB0000085,HMDB0000132,HMDB0000292,HMDB0000148,HMDB0000641,HMDB0000123,HMDB0000972,HMDB0001235,HMDB0000191,HMDB0000134,HMDB0001517,HMDB0000175,HMDB0000299,HMDB0000195,HMDB0000157,HMDB0001377,HMDB0003125,HMDB0000289,HMDB0000071,HMDB0000050,HMDB0000034,HMDB0011629,HMDB0003335,HMDB0001314,HMDB0000044,HMDB0000283,HMDB0030097,HMDB0003537,HMDB0000293,HMDB0000462,HMDB0006555,HMDB0001005,HMDB0000294,HMDB0000243
#> Sphingolipid Metabolism HMDB0000187,HMDB0001480,HMDB0001383,HMDB0002111,HMDB0001429,HMDB0000224,HMDB0001551,HMDB0006752,HMDB0000277,HMDB0000252,HMDB0001565,HMDB0000122,HMDB0004866,HMDB0001448,HMDB0000143
#> Chlorocyclohexane and chlorobenzene degradation HMDB0000254,HMDB0002434,HMDB0001505,HMDB0032037,HMDB0060503,HMDB0060461,HMDB0060363
#> Cyanoamino acid metabolism HMDB0000123,HMDB0000191,HMDB0000187,HMDB0000159,HMDB0000158,HMDB0000168,HMDB0000883,HMDB0060475,HMDB0000172,HMDB0001536,HMDB0060486,HMDB0060292,HMDB0062251,HMDB0060245,HMDB0060427,HMDB0031243,HMDB0004101,HMDB0034171,HMDB0060309
#> Valine, leucine and isoleucine degradation HMDB0000687,HMDB0000019,HMDB0000060,HMDB0000883,HMDB0000695,HMDB0001172,HMDB0000172,HMDB0002299,HMDB0000202,HMDB0002166,HMDB0000023,HMDB0002217
#> Porphyrin and chlorophyll metabolism HMDB0000148,HMDB0000123,HMDB0000167,HMDB0001149,HMDB0001008,HMDB0000245,HMDB0013233,HMDB0001261,HMDB0002158,HMDB0004157,HMDB0004161,HMDB0000692
#> Estrogen signaling pathway HMDB0000112
#> One carbon pool by folate HMDB0000972,HMDB0001562
We note that applying the multiple-matching penalty using parameter fractional.count.power will effectively making fractional counts out of the multiple-matched features. Thus the mapped feature tables, you will see fractional counts, rather than integer counts.
ftable(r)[which(ptable(r)[,1]<0.025 & ptable(r)[,2]>=2)]
#> $`Glycosphingolipid metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 380.2564 517.4015 0.02576156 2.263223 "HMDB0000277" 380.256
#> [2,] 282.2793 522.1412 0.03861876 2.095591 "HMDB0001551" 282.2791
#> [3,] 371.3268 546.4621 0.02881342 -2.217735 "HMDB0006752" 371.3268
#> [4,] 179.0563 104.8357 0.02843861 -2.191182 "HMDB0000122" 179.0561
#> [5,] 179.0563 104.8357 0.02843861 -2.191182 "HMDB0003449" 179.0561
#> [6,] 380.2575 194.7167 0.02327888 -2.268827 "HMDB0001383" 380.2571
#> ion.type counts
#> [1,] "M+H" 0.2672612
#> [2,] "M+ACN+H" 0.5
#> [3,] "M+ACN+H" 0.7071068
#> [4,] "M-H" 0.1825742
#> [5,] "M-H" 0.1825742
#> [6,] "M-H" 1
#>
#> $`C21-steroid hormone biosynthesis and metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 380.2564 517.4015 0.02576156 2.263223 "HMDB0000253" 380.256
#> [2,] 380.2564 517.4015 0.02576156 2.263223 "HMDB0003069" 380.256
#> [3,] 482.3603 568.9371 0.04738957 -2.007298 "HMDB0006280" 482.3605
#> [4,] 482.3603 568.9371 0.04738957 -2.007298 "HMDB0006281" 482.3605
#> [5,] 482.3603 568.9371 0.04738957 -2.007298 "HMDB0006763" 482.3605
#> [6,] 465.2501 180.1967 0.01296878 2.484626 "HMDB0002829" 465.2494
#> [7,] 465.2501 180.1967 0.01296878 2.484626 "HMDB0004484" 465.2494
#> [8,] 465.2501 180.1967 0.01296878 2.484626 "HMDB0006203" 465.2494
#> [9,] 465.3047 178.2345 0.03315628 -2.130186 "HMDB0000653" 465.3044
#> [10,] 349.1476 235.4682 0.02916411 2.181261 "HMDB0001032" 349.1474
#> [11,] 349.1476 235.4682 0.02916411 2.181261 "HMDB0002833" 349.1474
#> ion.type counts
#> [1,] "M+ACN+Na" 0.2672612
#> [2,] "M+ACN+Na" 0.2672612
#> [3,] "M+ACN+Na" 0.2672612
#> [4,] "M+ACN+Na" 0.2672612
#> [5,] "M+ACN+Na" 0.2672612
#> [6,] "M-H" 0.5
#> [7,] "M-H" 0.5
#> [8,] "M-H" 0.5
#> [9,] "M-H" 1
#> [10,] "M-H2O-H" 0.5
#> [11,] "M-H2O-H" 0.5
#>
#> $`Androgen and Estrogen Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 380.2564 517.4015 0.02576156 2.263223 "HMDB0000253" 380.256
#> [2,] 91.00046 74.11095 0.0369492 -2.114328 "HMDB0003125" 91.00018
#> [3,] 465.2501 180.1967 0.01296878 2.484626 "HMDB0002829" 465.2494
#> [4,] 465.2501 180.1967 0.01296878 2.484626 "HMDB0004484" 465.2494
#> [5,] 349.1476 235.4682 0.02916411 2.181261 "HMDB0001032" 349.1474
#> ion.type counts
#> [1,] "M+ACN+Na" 0.2672612
#> [2,] "2M+Na" 1
#> [3,] "M-H" 0.5
#> [4,] "M-H" 0.5
#> [5,] "M-H2O-H" 0.5
#>
#> $`Glycine and Serine Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 104.0711 161.4844 0.0006262675 3.530572 "HMDB0000092" 104.0706
#> [2,] 118.0865 123.9865 0.00925984 2.653289 "HMDB0000043" 118.0863
#> [3,] 132.0769 120.2762 0.002813653 3.062472 "HMDB0000064" 132.0768
#> [4,] 148.0605 145.3059 6.477547e-05 4.168804 "HMDB0000148" 148.0604
#> [5,] 154.0588 104.7939 0.0003642482 3.68944 "HMDB0000064" 154.0587
#> [6,] 148.0605 145.3059 6.477547e-05 4.168804 "HMDB0000139" 148.0604
#> [7,] 159.0765 108.9502 0.02020321 -2.359876 "HMDB0006454" 159.0764
#> [8,] 156.1133 53.23243 0.03377114 2.152113 "HMDB0002134" 156.1131
#> [9,] 91.00046 74.11095 0.0369492 -2.114328 "HMDB0003125" 91.00018
#> [10,] 116.0717 171.0386 0.01687998 2.389311 "HMDB0000043" 116.0717
#> ion.type counts
#> [1,] "M+H" 0.2085144
#> [2,] "M+H" 0.1856953
#> [3,] "M+H" 0.3779645
#> [4,] "M+H" 0.2182179
#> [5,] "M+Na" 0.5773503
#> [6,] "M+ACN+H" 0.2182179
#> [7,] "M+ACN+H" 0.3779645
#> [8,] "M+2ACN+H" 0.3015113
#> [9,] "2M+Na" 1
#> [10,] "M-H" 0.3779645
#>
#> $`beta-Alanine Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 104.0711 161.4844 0.0006262675 3.530572 "HMDB0000112" 104.0706
#> [2,] 148.0605 145.3059 6.477547e-05 4.168804 "HMDB0000148" 148.0604
#> [3,] 132.0769 120.2762 0.002813653 3.062472 "HMDB0000076" 132.0768
#> [4,] 156.1133 53.23243 0.03377114 2.152113 "HMDB0001106" 156.1131
#> [5,] 91.00046 74.11095 0.0369492 -2.114328 "HMDB0003125" 91.00018
#> [6,] 111.0199 170.672 0.04095368 -2.043999 "HMDB0000300" 111.02
#> ion.type counts
#> [1,] "M+H" 0.2085144
#> [2,] "M+H" 0.2182179
#> [3,] "M+NH4" 0.3779645
#> [4,] "M+2ACN+H" 0.3015113
#> [5,] "2M+Na" 1
#> [6,] "M-H" 0.7071068
#>
#> $`Porphyrin Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 91.00046 74.11095 0.0369492 -2.114328 "HMDB0003125" 91.00018
#> [2,] 583.2549 175.0813 0.01153899 2.525938 "HMDB0000054" 583.2562
#> [3,] 641.2961 221.7938 0.04707521 1.985623 "HMDB0001261" 641.2975
#> [4,] 641.2961 221.7938 0.04707521 1.985623 "HMDB0002158" 641.2975
#> ion.type counts
#> [1,] "2M+Na" 1
#> [2,] "M-H" 0.7071068
#> [3,] "M-H2O-H" 0.7071068
#> [4,] "M-H2O-H" 0.7071068
#>
#> $`Purine Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 137.0457 102.6127 0.01490208 2.477191 "HMDB0000157" 137.0458
#> [2,] 148.0605 145.3059 6.477547e-05 4.168804 "HMDB0000148" 148.0604
#> [3,] 169.0357 129.7487 2.198944e-05 4.451891 "HMDB0000289" 169.0356
#> [4,] 176.0658 95.71658 0.007465356 2.730395 "HMDB0001005" 176.0666
#> [5,] 210.0622 124.1626 0.01731002 2.419944 "HMDB0000289" 210.0622
#> [6,] 91.00046 74.11095 0.0369492 -2.114328 "HMDB0003125" 91.00018
#> [7,] 472.1565 235.4289 0.03463024 2.112656 "HMDB0000972" 472.1586
#> [8,] 168.0246 22.15699 0.02175471 2.294624 "HMDB0001517" 168.0241
#> ion.type counts
#> [1,] "M+H" 0.4472136
#> [2,] "M+H" 0.2182179
#> [3,] "M+H" 0.7071068
#> [4,] "M+ACN+H" 0.5
#> [5,] "M+ACN+H" 1
#> [6,] "2M+Na" 1
#> [7,] "M-H" 0.4472136
#> [8,] "M-2H" 0.3535534
#>
#> $`Sphingolipid Metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 380.2564 517.4015 0.02576156 2.263223 "HMDB0000277" 380.256
#> [2,] 282.2793 522.1412 0.03861876 2.095591 "HMDB0001551" 282.2791
#> [3,] 371.3268 546.4621 0.02881342 -2.217735 "HMDB0006752" 371.3268
#> [4,] 179.0563 104.8357 0.02843861 -2.191182 "HMDB0000122" 179.0561
#> [5,] 179.0563 104.8357 0.02843861 -2.191182 "HMDB0000143" 179.0561
#> [6,] 380.2575 194.7167 0.02327888 -2.268827 "HMDB0001383" 380.2571
#> ion.type counts
#> [1,] "M+H" 0.2672612
#> [2,] "M+ACN+H" 0.5
#> [3,] "M+ACN+H" 0.7071068
#> [4,] "M-H" 0.1825742
#> [5,] "M-H" 0.1825742
#> [6,] "M-H" 1
#>
#> $`Cyanoamino acid metabolism`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 118.0865 123.9865 0.00925984 2.653289 "HMDB0000883" 118.0863
#> [2,] 132.102 112.3156 0.00101215 3.385782 "HMDB0000172" 132.1019
#> [3,] 148.0605 145.3059 6.477547e-05 4.168804 "HMDB0060475" 148.0604
#> [4,] 182.0812 126.5291 0.0026755 3.078928 "HMDB0000158" 182.0812
#> [5,] 132.0769 120.2762 0.002813653 3.062472 "HMDB0060245" 132.0768
#> [6,] 141.1022 68.87089 0.03648133 2.119709 "HMDB0060309" 141.1022
#> [7,] 173.1285 108.9319 0.009278025 2.65258 "HMDB0000172" 173.1285
#> [8,] 132.0769 120.2762 0.002813653 3.062472 "HMDB0001536" 132.0768
#> [9,] 116.0717 171.0386 0.01687998 2.389311 "HMDB0000883" 116.0717
#> ion.type counts
#> [1,] "M+H" 0.1856953
#> [2,] "M+H" 0.1666667
#> [3,] "M+H" 0.2182179
#> [4,] "M+H" 0.164399
#> [5,] "M+NH4" 0.3779645
#> [6,] "M+ACN+H" 0.2773501
#> [7,] "M+ACN+H" 0.2294157
#> [8,] "2M+ACN+H" 0.3779645
#> [9,] "M-H" 0.3779645
#>
#> $`Valine, leucine and isoleucine degradation`
#> m.z retention.time p.value statistic HMDB_ID m.z
#> [1,] 104.0711 161.4844 0.0006262675 3.530572 "HMDB0002166" 104.0706
#> [2,] 104.0711 161.4844 0.0006262675 3.530572 "HMDB0002299" 104.0706
#> [3,] 118.0865 123.9865 0.00925984 2.653289 "HMDB0000883" 118.0863
#> [4,] 132.102 112.3156 0.00101215 3.385782 "HMDB0000172" 132.1019
#> [5,] 132.102 112.3156 0.00101215 3.385782 "HMDB0000687" 132.1019
#> [6,] 173.1285 108.9319 0.009278025 2.65258 "HMDB0000172" 173.1285
#> [7,] 173.1285 108.9319 0.009278025 2.65258 "HMDB0000687" 173.1285
#> [8,] 116.0717 171.0386 0.01687998 2.389311 "HMDB0000883" 116.0717
#> [9,] 117.0195 42.31922 0.01629752 -2.402184 "HMDB0000202" 117.0193
#> ion.type counts
#> [1,] "M+H" 0.2085144
#> [2,] "M+H" 0.2085144
#> [3,] "M+H" 0.1856953
#> [4,] "M+H" 0.1666667
#> [5,] "M+H" 0.1666667
#> [6,] "M+ACN+H" 0.2294157
#> [7,] "M+ACN+H" 0.2294157
#> [8,] "M-H" 0.3779645
#> [9,] "M-H" 0.2886751