- Introduction to metabolomics
- Introduction to (LC-)MS
- Handling and processing metabolomics data in R
- Lab overview: Main preprocessing steps
- Annotation of metabolomics data
CSAMA 2024
What are we measuring? … depends on context:
How are we measuring these small compounds?
Where can we measure small compounds/metabolites?
Glucose (C6H12O6)
Fructose (C6H12O6)
Mannose (C6H12O6)
Glucose (C6H12O6)
Fructose (C6H12O6)
Mannose (C6H12O6)
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Separation based on affinity for the column’s stationary phase.
Sample is dissolved in a fluid (mobile phase).
Mobile phase carries analytes through column (stationary phase).
Separation based on affinity for the column’s stationary phase.
Commonly used: RPLC (Reversed Phase LC). HILIC (hyrophilic liquid interaction chromatography)
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
We gain an additional dimension:
Signal measured along retention time (150-175 seconds).
Signal along rt (chromatogram) of an [M+Na]+ ion of C6H12O6.
ms <- readMsExperiment(fl)
sps <- Spectra(fl, backend = MsBackendMzR())
findChromPeaks
adjustRtime
groupChromPeaks
featureValues
## DataFrame with 779 rows and 6 columns ## mz rt sample_1 sample_2 sample_3 sample_4 ## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric> ## FT001 326.378 25.409 4654.057 4814.874 4793.317 4734.862 ## FT002 134.096 16.513 767.239 782.878 803.749 913.539 ## FT003 134.096 19.089 1054.229 1159.738 1004.752 1044.921 ## FT004 134.096 22.305 980.392 1007.868 1051.315 980.127 ## FT005 134.097 25.409 525.633 579.745 645.511 594.787 ## ... ... ... ... ... ... ... ## FTM933 441.298 24.896 28202.47 28263.68 28454.65 28219.58 ## FTM934 447.345 14.577 1356.29 1432.32 1337.77 1391.90 ## FTM935 495.265 12.009 3218.93 3303.66 3037.58 3279.49 ## FTM936 501.383 137.340 7767.00 7854.74 7804.17 7927.17 ## FTM937 612.404 28.094 1667.49 1658.53 1779.24 1671.64
R is a amazing tool for this kind of statistical analysis.
## DataFrame with 779 rows and 6 columns ## mz rt sample_1 sample_2 sample_3 sample_4 ## <numeric> <numeric> <numeric> <numeric> <numeric> <numeric> ## FT001 326.378 25.409 4654.057 4814.874 4793.317 4734.862 ## FT002 134.096 16.513 767.239 782.878 803.749 913.539 ## FT003 134.096 19.089 1054.229 1159.738 1004.752 1044.921 ## FT004 134.096 22.305 980.392 1007.868 1051.315 980.127 ## FT005 134.097 25.409 525.633 579.745 645.511 594.787 ## ... ... ... ... ... ... ... ## FTM933 441.298 24.896 28202.47 28263.68 28454.65 28219.58 ## FTM934 447.345 14.577 1356.29 1432.32 1337.77 1391.90 ## FTM935 495.265 12.009 3218.93 3303.66 3037.58 3279.49 ## FTM936 501.383 137.340 7767.00 7854.74 7804.17 7927.17 ## FTM937 612.404 28.094 1667.49 1658.53 1779.24 1671.64
name | formula | exactmass |
---|---|---|
Caffeine | C8H10N4O2 | 194.1 |
name | formula | exactmass | [M+H]+ |
---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 |
name | formula | exactmass | [M+H]+ | [M+Na]+ |
---|---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
name | formula | exactmass | [M+H]+ | [M+Na]+ |
---|---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target, Mass2MzParam(c("[M+H]+", "[M+Na]+")))
name | formula | exactmass | [M+H]+ | [M+Na]+ |
---|---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target, Mass2MzParam(c("[M+H]+", "[M+Na]+")))
query
: experimental m/z values.target
: reference masses (e.g. from HMDB, ChEBI, PubChem, …).name | formula | exactmass | [M+H]+ | [M+Na]+ |
---|---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
Enprofylline | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
name | formula | exactmass | [M+H]+ | [M+Na]+ |
---|---|---|---|---|
Caffeine | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
Enprofylline | C8H10N4O2 | 194.1 | 195.1 | 217.1 |
mtch <- matchValues(query, target, Mass2MzRtParam(c("[M+H]+", "[M+Na]+")))
mtch <- matchSpectra(query, target, CompareSpectraParam())
xcmsTutorials
: exploring and analyzing LC-MS using Spectra and xcms (updated workflow with upcoming version of xcms).
SpectraTutorials
: introduction to MS data handling and processing using Spectra.
MetaboAnnotationTutorials
: annotation of untargeted metabolomics data.