├── LICENSE ├── README.md ├── input_data ├── HILIC_pos_diag_basel.txt ├── Shuzhao-ASMS-Fall20181130-Exercises.zip ├── ave_log2_modc_ae_2012.txt ├── mcg_pathwayanalysis_A.tsv ├── mcg_pathwayanalysis_B.tsv ├── modc_ae_2012.txt └── testdata0710.txt └── notebooks ├── All_Exercises_execuable_ASMS2018F.ipynb ├── Averaging_technical_replicates.ipynb ├── Bubble_plot_pathways.ipynb ├── HCL_clustering_considering_retention_time.ipynb ├── Search_list_targets_in_featureTable.ipynb ├── Statistics_group_comparison.ipynb ├── asari2023_Notebook_Composite_mass_tracks.ipynb ├── khipu2023_Numbers_khipu_preannotation.ipynb ├── khipu2023_custom_adduct_isotope_patterns.ipynb ├── khipu2023_data_analysis_ecoli_pos.ipynb ├── khipu2023_data_analysis_yeast_pos.ipynb ├── khipu2023_demo_khipu_algorithms.ipynb ├── khipu2023_demo_khipu_plot.ipynb ├── pcpfm_Bowen2023_analysis.ipynb ├── pcpfm_HZV029_subset_analysis.ipynb └── porting_iroa_annotation.ipynb /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018 Shuzhao Li 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | 7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | 11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Notebooks in Computational Metabolomics 2 | 3 | This repo is a collection of Jupyter notebooks covering topics in metabolomics data analysis and computational methods. 4 | 5 | Some of the notebooks were written as part of publications. Users should distinguish questions on metabolomics and on general computing techniques. The latter often have ready answers on the internet. The notebooks are not limited to Python, but the majority here are in Python. 6 | Feel free to explore the notebooks under `notebooks/`. 7 | 8 | Notebooks may be written quickly during data analysis, not as clean as desired pedagogical materials. Users should use discretion on dated materials or errors. Feedback and contributions are welcome. 9 | Free in the 3-Clause BSD License. 10 | 11 | ## Use Jupyter notebooks via VS Code 12 | This is the preferred way of doing data analysis in our research lab. VS Code is a development environment: 13 | - [VS Code](https://code.visualstudio.com/download). Then install Python and Jupyter notebook within VS Code. 14 | 15 | ## Use R or Python Jupyter notebooks via Docker containers 16 | See [Docker page](/docker.md) 17 | 18 | ## Example notebooks 19 | 20 | - [Averaging technical replicates](notebooks/Averaging_technical_replicates.ipynb) 21 | - [Statistical analyses of metabolite features (group comparison)](notebooks/Statistics_group_comparison.ipynb) 22 | - [Clustering of metabolite peaks from LC-MS](notebooks/HCL_clustering_considering_retention_time.ipynb) 23 | - [Bubble plot, using scatter plot panels to visualize result from pathway analysis](notebooks/Bubble_plot_pathways.ipynb) 24 | - [Illustration of mass tracks in asari](notebooks/asari2023_Notebook_Composite_mass_tracks.ipynb) 25 | - [Illustration of khipu plots for isotope tracing data](notebooks/khipu2023_demo_khipu_plot.ipynb) 26 | - [Analyzing the cardiomyocyte data in asari pipeline](notebooks/pcpfm_Bowen2023_analysis.ipynb) 27 | - [Metabolomics Pathway Analysis at ASMS 2018Fall](notebooks/All_Exercises_execuable_ASMS2018F.ipynb) 28 | - More under `notebooks/`. 29 | 30 | ## Other Links 31 | 32 | - Example metabolomics data to use: https://github.com/shuzhao-li-lab/data 33 | - Workshop at MANA2024 - Working like a data scientist on Jupyter: https://github.com/shuzhao-li/MANA2024 34 | - Week-long workshop at ESPOL 2019, Metabolomics and Data Analysis: https://github.com/shuzhao-li-lab/espol-workshop 35 | - Tutorial for metabolomics data processing using asari tools: https://github.com/shuzhao-li-lab/asari_pcpfm_tutorials 36 | 37 | -------------------------------------------------------------------------------- /input_data/Shuzhao-ASMS-Fall20181130-Exercises.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shuzhao-li-lab/Notebooks-computational-metabolomics/53fedbac97e19f42240f03f41cc8533ee3dad2d6/input_data/Shuzhao-ASMS-Fall20181130-Exercises.zip -------------------------------------------------------------------------------- /input_data/mcg_pathwayanalysis_A.tsv: -------------------------------------------------------------------------------- 1 | pathway overlap_size pathway_size p-value overlap_EmpiricalCompounds (id) overlap_features (id) overlap_features (name) 2 | Vitamin B9 (folate) metabolism 4 5 0.0120157969918 E518,E283,E1016,E1050 C00921,C00217/C05938/C00025/C00302,C05520/C01045/C01042,C00504 Dihydropteroate; 7,8-Dihydropteroate$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$2-Amino-3-oxoadipate; 2-Amino-3-oxohexanedioic acid/N-Formyl-L-glutamate/N-Acetyl-L-aspartate$Folate; Pteroylglutamic acid; Folic acid 3 | Tryptophan metabolism 11 42 0.0421813293001 E669,E769,E59,E1028,E589,E1059,E923,E530,E538,E283,E697 C00643,CE1918/CE5629,C03824,C00051,C02220,C03824,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00362/C00020,C05648,C00217/C05938/C00025/C00302,C00780 5-Hydroxy-L-tryptophan$5-hydroxytryptophol/1,2-dehydrosalsolinol$2-Aminomuconate semialdehyde; 2-Aminomuconate 6-semialdehyde$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$2-Aminomuconate; 2-Aminomuconic acid; o-Aminomuconate$2-Aminomuconate semialdehyde; 2-Aminomuconate 6-semialdehyde$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$5-Hydroxy-N-formylkynurenine; 5-Hydroxy-N-formyl-L-kynurenine$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$3-(2-Aminoethyl)-1H-indol-5-ol; Serotonin; 5-Hydroxytryptamine; Enteramine 4 | Glycosphingolipid metabolism 6 17 0.0495756659104 E570,E306,E271,E218,E204,E923 C00836,C12144,C00128,C00319/C02934,C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 Sphinganine; Dihydrosphingosine; 2-Amino-1,3-dihydroxyoctadecane$Phytosphingosine; 4-D-Hydroxysphinganine$CMP-N-acetylneuraminate$Sphingosine; Sphingenine; Sphingoid; Sphing-4-enine/3-Dehydrosphinganine; 3-Dehydro-D-sphinganine$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 5 | Methionine and cysteine metabolism 10 38 0.0513402235106 E283,E325,E879,E1028,E93,E337,E916,E530,E182,E301 C00217/C05938/C00025/C00302,,C00491,C00051,,,,C00362/C00020,C00170,C00127 D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$$L-Cystine; L-Dicysteine; L-alpha-Diamino-beta-dithiolactic acid$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$$$$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 6 | Ascorbate (Vitamin C) and Aldarate Metabolism 4 9 0.0667170825981 E734,E1028,E607,E301 C00262,C00051,,C00127 Hypoxanthine; Purine-6-ol$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 7 | Glycerophospholipid metabolism 8 30 0.0739433661037 E570,E1013,E761,E726,E593,E1163,E218,E923 C00836,,,C00256,,,C00319/C02934,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 Sphinganine; Dihydrosphingosine; 2-Amino-1,3-dihydroxyoctadecane$$$(R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$$$Sphingosine; Sphingenine; Sphingoid; Sphing-4-enine/3-Dehydrosphinganine; 3-Dehydro-D-sphinganine$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 8 | Galactose metabolism 5 15 0.0902445172675 E726,E1154,E204,E923,E970 C00256,C05796/C00718,C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C01613/C02052 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$Galactan/Amylose; Amylose chain; (1,4-alpha-D-Glucosyl)n; (1,4-alpha-D-Glucosyl)n+1; (1,4-alpha-D-Glucosyl)n-1; 4-{(1,4)-alpha-D-Glucosyl}(n-1)-D-glucose; 1,4-alpha-D-Glucan$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$Stachyose/Maltotetraose 9 | Sialic acid metabolism 5 15 0.0902445172675 E115,E1154,E204,E923,E271 C00074,C05796/C00718,C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00128 Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$Galactan/Amylose; Amylose chain; (1,4-alpha-D-Glucosyl)n; (1,4-alpha-D-Glucosyl)n+1; (1,4-alpha-D-Glucosyl)n-1; 4-{(1,4)-alpha-D-Glucosyl}(n-1)-D-glucose; 1,4-alpha-D-Glucan$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$CMP-N-acetylneuraminate 10 | Alanine and Aspartate Metabolism 5 15 0.0902445172675 E286,E283,E1016,E324,E530 C00327,C00217/C05938/C00025/C00302,C05520/C01045/C01042,C00062,C00362/C00020 L-Citrulline; 2-Amino-5-ureidovaleric acid; Citrulline$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$2-Amino-3-oxoadipate; 2-Amino-3-oxohexanedioic acid/N-Formyl-L-glutamate/N-Acetyl-L-aspartate$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 11 | Carnitine shuttle 4 10 0.0909167296866 E597,E520,E374,E1001 ,,, $$$ 12 | Purine metabolism 8 33 0.118057306109 E283,E1139,E734,E631,E115,E530,E1152,E227 C00217/C05938/C00025/C00302,C00147,C00262,C00294,C00074,C00362/C00020,C00360,C00147 D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Adenine; 6-Aminopurine$Hypoxanthine; Purine-6-ol$Inosine$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$dAMP; 2'-Deoxyadenosine 5'-phosphate; 2'-Deoxyadenosine 5'-monophosphate; Deoxyadenylic acid; Deoxyadenosine monophosphate$Adenine; 6-Aminopurine 13 | Drug metabolism - cytochrome P450 4 11 0.120410049576 E1156,E639,E826,E1011 ,,, $$$ 14 | Glycosphingolipid biosynthesis - globoseries 3 6 0.122846819595 E204,E923,E271 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00128 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$CMP-N-acetylneuraminate 15 | Arginine and Proline Metabolism 7 29 0.145618015293 E286,E283,E1139,E910,E324,E182,E227 C00327,C00217/C05938/C00025/C00302,C00147,,C00062,C00170,C00147 L-Citrulline; 2-Amino-5-ureidovaleric acid; Citrulline$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Adenine; 6-Aminopurine$$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$Adenine; 6-Aminopurine 16 | Aminosugars metabolism 5 18 0.156457440551 E115,E204,E283,E1104,E271 C00074,C00645/C00140/C01132,C00217/C05938/C00025/C00302,C00352/C06377,C00128 Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$D-Glucosamine 6-phosphate; D-Glucosamine phosphate/D-Galactosamine 6-phosphate$CMP-N-acetylneuraminate 17 | Glycosphingolipid biosynthesis - ganglioseries 3 7 0.160490715066 E204,E923,E271 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00128 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$CMP-N-acetylneuraminate 18 | Propanoate metabolism 3 7 0.160490715066 E726,E607,E530 C00256,,C00362/C00020 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 19 | Histidine metabolism 4 15 0.236030585665 E1028,E530,E283,E174 C00051,C00362/C00020,C00217/C05938/C00025/C00302,C00785 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Urocanate; Urocanic acid 20 | Arachidonic acid metabolism 4 15 0.236030585665 E1028,E283,E301,E530 C00051,C00217/C05938/C00025/C00302,C00127,C00362/C00020 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 21 | Pentose phosphate pathway 4 15 0.236030585665 E530,E923,E1104,E1013 C00362/C00020,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00352/C06377, dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$D-Glucosamine 6-phosphate; D-Glucosamine phosphate/D-Galactosamine 6-phosphate$ 22 | Hexose phosphorylation 3 9 0.238047222922 E923,E1104,E151 C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00352/C06377,C05839 D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$D-Glucosamine 6-phosphate; D-Glucosamine phosphate/D-Galactosamine 6-phosphate$cis-beta-D-Glucosyl-2-hydroxycinnamate; beta-D-Glucosyl-2-coumarinate 23 | Aspartate and asparagine metabolism 8 40 0.238047222922 E283,E727,E1028,E286,E825,E324,E530,E301 C00217/C05938/C00025/C00302,C00315/CE5586,C00051,C00327,C01029/C00612,C00062,C00362/C00020,C00127 D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Spermidine; N-(3-Aminopropyl)-1,4-butane-diamine/dehydrospermidine$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$L-Citrulline; 2-Amino-5-ureidovaleric acid; Citrulline$/N1-Acetylspermidine$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 24 | Glycine, serine, alanine and threonine metabolism 6 29 0.271069658012 E208,E283,E726,E1028,E324,E530 ,C00217/C05938/C00025/C00302,C00256,C00051,C00062,C00362/C00020 $D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$(R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 25 | Vitamin E metabolism 2 4 0.287286782623 E245,E530 CE7072,C00362/C00020 13'-carboxy-gama-tocotrienol$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 26 | Glycolysis and Gluconeogenesis 4 17 0.293252667843 E726,E530,E923,E115 C00256,C00362/C00020,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00074 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP 27 | Starch and Sucrose Metabolism 3 11 0.309217712797 E970,E1154,E923 C01613/C02052,C05796/C00718,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 Stachyose/Maltotetraose$Galactan/Amylose; Amylose chain; (1,4-alpha-D-Glucosyl)n; (1,4-alpha-D-Glucosyl)n+1; (1,4-alpha-D-Glucosyl)n-1; 4-{(1,4)-alpha-D-Glucosyl}(n-1)-D-glucose; 1,4-alpha-D-Glucan$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 28 | Chondroitin sulfate degradation 2 5 0.335349970591 E204,E923 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 29 | Pyruvate Metabolism 2 5 0.335349970591 E726,E1028 C00256,C00051 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione 30 | Putative anti-Inflammatory metabolites formation from EPA 2 5 0.335349970591 E1028,E283 C00051,C00217/C05938/C00025/C00302 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate 31 | TCA cycle 2 5 0.335349970591 E115,E910 C00074, Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$ 32 | Heparan sulfate degradation 2 5 0.335349970591 E204,E923 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 33 | Glutathione Metabolism 3 12 0.338290899924 E1028,E283,E301 C00051,C00217/C05938/C00025/C00302,C00127 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 34 | Glutamate metabolism 4 19 0.34165196202 E1028,E910,E283,E301 C00051,,C00217/C05938/C00025/C00302,C00127 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 35 | Tyrosine metabolism 10 60 0.349886564154 E769,E632,E1028,E276,E302,E1200,E318,E530,E283,E301 CE1918/CE5629,,C00051,C00079,,,,C00362/C00020,C00217/C05938/C00025/C00302,C00127 5-hydroxytryptophol/1,2-dehydrosalsolinol$$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$L-Phenylalanine; (S)-alpha-Amino-beta-phenylpropionic acid$$$$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 36 | Leukotriene metabolism 3 13 0.365515502899 E1028,E283,E530 C00051,C00217/C05938/C00025/C00302,C00362/C00020 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 37 | Beta-Alanine metabolism 3 13 0.365515502899 E726,E283,E727 C00256,C00217/C05938/C00025/C00302,C00315/CE5586 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Spermidine; N-(3-Aminopropyl)-1,4-butane-diamine/dehydrospermidine 38 | N-Glycan Degradation 2 6 0.3743382909 E204,E923 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 39 | Phytanic acid peroxisomal oxidation 2 6 0.3743382909 E910,E530 ,C00362/C00020 $dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 40 | Keratan sulfate degradation 2 7 0.401562893874 E204,E923 C00645/C00140/C01132,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 41 | Valine, leucine and isoleucine degradation 3 15 0.403831610789 E910,E283,E530 ,C00217/C05938/C00025/C00302,C00362/C00020 $D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 42 | Vitamin B3 (nicotinate and nicotinamide) metabolism 3 15 0.403831610789 E283,E324,E530 C00217/C05938/C00025/C00302,C00062,C00362/C00020 D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 43 | N-Glycan biosynthesis 2 8 0.419628602638 E923,E271 C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124,C00128 D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose$CMP-N-acetylneuraminate 44 | Pyrimidine metabolism 5 32 0.423577850601 E841,E115,E1013,E283,E530 C00239,C00074,,C00217/C05938/C00025/C00302,C00362/C00020 dCMP; Deoxycytidylic acid; Deoxycytidine monophosphate; Deoxycytidylate; 2'-Deoxycytidine 5'-monophosphate$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 45 | Butanoate metabolism 3 17 0.428955549954 E910,E283,E530 ,C00217/C05938/C00025/C00302,C00362/C00020 $D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 46 | Fructose and mannose metabolism 2 9 0.435089488278 E726,E923 C00256,C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 (R)-Lactate; D-Lactate; D-Lactic acid; D-2-Hydroxypropanoic acid; D-2-Hydroxypropionic acid$D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 47 | Bile acid biosynthesis 2 10 0.447273338375 E659,E530 ,C00362/C00020 $dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 48 | Lysine metabolism 3 22 0.472481304092 E910,E283,E530 ,C00217/C05938/C00025/C00302,C00362/C00020 $D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 49 | Prostaglandin formation from arachidonate 2 13 0.475338206873 E1028,E530 C00051,C00362/C00020 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 50 | Urea cycle/amino group metabolism 5 44 0.484497101084 E286,E182,E283,E324,E727 C00327,C00170,C00217/C05938/C00025/C00302,C00062,C00315/CE5586 L-Citrulline; 2-Amino-5-ureidovaleric acid; Citrulline$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$L-Arginine; (S)-2-Amino-5-guanidinovaleric acid$Spermidine; N-(3-Aminopropyl)-1,4-butane-diamine/dehydrospermidine 51 | Linoleate metabolism 2 21 0.490967145618 E1028,E301 C00051,C00127 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione 52 | Xenobiotics metabolism 3 41 0.494328207714 E83,E1028,E300 ,C00051, $Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$ 53 | R Group Synthesis 0 0 0.494748340476 54 | Glycerolipid metabolism 0 0 0.494748340476 55 | Vitamin B2 (riboflavin) metabolism 1 3 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 56 | Vitamin D3 (cholecalciferol) metabolism 1 2 0.494748340476 E659 57 | Squalene and cholesterol biosynthesis 0 4 0.494748340476 58 | Di-unsaturated fatty acid beta-oxidation 1 2 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 59 | Alkaloid biosynthesis II 1 2 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 60 | Hyaluronan Metabolism 1 3 0.494748340476 E204 C00645/C00140/C01132 N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose/N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc/N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose 61 | 3-oxo-10R-octadecatrienoate beta-oxidation 0 0 0.494748340476 62 | Vitamin B1 (thiamin) metabolism 1 4 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 63 | C5-Branched dibasic acid metabolism 1 1 0.494748340476 E962 64 | Electron transport chain 0 0 0.494748340476 65 | Glycosylphosphatidylinositol(GPI)-anchor biosynthesis 0 2 0.494748340476 66 | Vitamin B5 - CoA biosynthesis from pantothenate 1 3 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 67 | Glycosphingolipid biosynthesis - lactoseries 1 3 0.494748340476 E271 C00128 CMP-N-acetylneuraminate 68 | Parathio degradation 0 4 0.494748340476 69 | Androgen and estrogen biosynthesis and metabolism 1 8 0.494748340476 E1028 C00051 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione 70 | Vitamin H (biotin) metabolism 1 5 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 71 | Biopterin metabolism 1 8 0.494748340476 E276 C00079 L-Phenylalanine; (S)-alpha-Amino-beta-phenylpropionic acid 72 | Blood Group Biosynthesis 1 3 0.494748340476 E271 C00128 CMP-N-acetylneuraminate 73 | Lipoate metabolism 1 3 0.494748340476 E607 74 | Caffeine metabolism 0 3 0.494748340476 75 | Saturated fatty acids beta-oxidation 1 5 0.494748340476 E374 76 | Omega-3 fatty acid metabolism 1 4 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 77 | CoA Catabolism 1 3 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 78 | Glycosaminoglycan degradation 0 0 0.494748340476 79 | Fatty acid oxidation 0 0 0.494748340476 80 | ROS Detoxification 0 0 0.494748340476 81 | Fatty Acid Metabolism 0 4 0.494748340476 82 | Heparan sulfate biosynthesis 0 0 0.494748340476 83 | De novo fatty acid biosynthesis 1 8 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 84 | Mono-unsaturated fatty acid beta-oxidation 1 2 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 85 | Glycosphingolipid biosynthesis - neolactoseries 1 3 0.494748340476 E271 C00128 CMP-N-acetylneuraminate 86 | Vitamin A (retinol) metabolism 1 8 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 87 | Glyoxylate and Dicarboxylate Metabolism 0 5 0.494748340476 88 | Geraniol degradation 0 0 0.494748340476 89 | Fatty acid oxidation, peroxisome 1 4 0.494748340476 E910 90 | Polyunsaturated fatty acid biosynthesis 0 0 0.494748340476 91 | Vitamin D 0 0 0.494748340476 92 | D4&E4-neuroprostanes formation 1 2 0.494748340476 E311 93 | Keratan sulfate biosynthesis 1 4 0.494748340476 E271 C00128 CMP-N-acetylneuraminate 94 | 3-Chloroacrylic acid degradation 0 1 0.494748340476 95 | Sphingolipid metabolism 0 0 0.494748340476 96 | O-Glycan biosynthesis 1 3 0.494748340476 E271 C00128 CMP-N-acetylneuraminate 97 | Limonene and pinene degradation 0 6 0.494748340476 98 | Proteoglycan biosynthesis 0 2 0.494748340476 99 | Dynorphin metabolism 0 1 0.494748340476 100 | Ubiquinone Biosynthesis 1 2 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 101 | Nucleotide Sugar Metabolism 0 2 0.494748340476 102 | Benzoate degradation via CoA ligation 0 3 0.494748340476 103 | Dimethyl-branched-chain fatty acid mitochondrial beta-oxidation 0 0 0.494748340476 104 | 1- and 2-Methylnaphthalene degradation 0 2 0.494748340476 105 | Drug metabolism - other enzymes 0 6 0.494748340476 106 | Nitrogen metabolism 1 5 0.494748340476 E283 C00217/C05938/C00025/C00302 D-Glutamate; D-Glutamic acid; D-Glutaminic acid; D-2-Aminoglutaric acid/L-4-Hydroxyglutamate semialdehyde/L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate/DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate 107 | Vitamin K metabolism 0 0 0.494748340476 108 | Phosphatidylinositol phosphate metabolism 1 11 0.494748340476 E923 C00795/C00267/C00137/C00221/C00962/C00738/C00095/C00247/C00984/C00031/C00936/C01582/C00159/C02336/C00293/C00124 D-Tagatose; lyxo-Hexulose/alpha-D-Glucose/myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I/beta-D-Glucose/beta-D-Galactose/D-Hexose/D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose/L-Sorbose; L-xylo-Hexulose/alpha-D-Galactose/D-Glucose; Grape sugar; Dextrose//Galactose/D-Mannose; Mannose; Seminose; Carubinose/beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose/Glucose/D-Galactose 109 | Fatty acid activation 1 8 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 110 | Porphyrin metabolism 1 10 0.494748340476 E1016 C05520/C01045/C01042 2-Amino-3-oxoadipate; 2-Amino-3-oxohexanedioic acid/N-Formyl-L-glutamate/N-Acetyl-L-aspartate 111 | Vitamin B12 (cyanocobalamin) metabolism 0 0 0.494748340476 112 | Carbon fixation 1 10 0.494748340476 E115 C00074 Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP 113 | Pentose and Glucuronate Interconversions 0 8 0.494748340476 114 | Atrazine degradation 0 0 0.494748340476 115 | Vitamin B6 (pyridoxine) metabolism 0 7 0.494748340476 116 | Trihydroxycoprostanoyl-CoA beta-oxidation 0 0 0.494748340476 117 | Omega-6 fatty acid metabolism 1 3 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 118 | C21-steroid hormone biosynthesis and metabolism 0 7 0.494748340476 119 | Prostaglandin formation from dihomo gama-linoleic acid 0 3 0.494748340476 120 | Selenoamino acid metabolism 1 9 0.494748340476 E530 C00362/C00020 dGMP; 2'-Deoxyguanosine 5'-monophosphate; 2'-Deoxyguanosine 5'-phosphate; Deoxyguanylic acid; Deoxyguanosine monophosphate/AMP; Adenosine 5'-monophosphate; Adenylic acid; Adenylate; 5'-AMP; 5'-Adenylic acid; 5'-Adenosine monophosphate; Adenosine 5'-phosphate 121 | -------------------------------------------------------------------------------- /input_data/mcg_pathwayanalysis_B.tsv: -------------------------------------------------------------------------------- 1 | pathway overlap_size pathway_size p-value overlap_features (name) overlap_features (id) used_input_mzs Tryptophan metabolism 17 54 0.000680833 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Formyl-5-hydroxykynurenamine$L-Kynurenine; 3-Anthraniloyl-L-alanine$Formyl-N-acetyl-5-methoxykynurenamine$5-Hydroxyindoleacetate$Cinnavalininate$3-(2-Aminoethyl)-1H-indol-5-ol; Serotonin; 5-Hydroxytryptamine; Enteramine$5-Hydroxyindoleacetaldehyde$5-Hydroxy-N-formylkynurenine; 5-Hydroxy-N-formyl-L-kynurenine$$2-Aminomuconate semialdehyde; 2-Aminomuconate 6-semialdehyde$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$5-Hydroxy-L-tryptophan$5-hydroxytryptophol$2-Aminomuconate; 2-Aminomuconic acid; o-Aminomuconate$xanthurenate-8-O-beta-D-glucoside$Indole-3-acetate; Indole-3-acetic acid; (Indol-3-yl)acetate; Indoleacetate; Indoleacetic acid C00025;C05647;C00328;C05642;C05635;C05640;C00780;C05634;C05648;C00936;C03824;C00051;C00643;CE1918;C02220;CE2947;C00954 "170.0414;277.0784,277.0812;277.0784,277.0812;333.103;260.0516;303.0437,303.0437;177.1024;177.0723,176.0692,176.069;275.0662;180.0645;142.0501;310.0853,310.0853,309.0929;289.0779;179.0898;159.0492,158.044;451.0505;177.0723,176.0692,176.069" N-Glycan biosynthesis 6 11 0.000708252 "D-Mannose; Mannose; Seminose; Carubinose$D-Glucose; Grape sugar; Dextrose$CMP-N-acetylneuraminate$Isopentenyl diphosphate; delta3-Isopentenyl diphosphate; delta3-Methyl-3-butenyl diphosphate$N,N'-Diacetylchitobiosyldiphosphodolichol; Chitobiosyldiphosphodolichol$CMP; Cytidine-5'-monophosphate; Cytidylic acid" C00159;C00031;C00128;C00129;C04537;C00055 "180.0645;180.0645;617.1579;135.0023;865.2138;326.0566,362.0125,326.0566" Purine metabolism 12 36 0.000798903 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Inosine$Guanine; 2-Amino-6-hydroxypurine$Deoxyguanosine; 2'-Deoxyguanosine$5-Phospho-alpha-D-ribose 1-diphosphate; 5-Phosphoribosyl diphosphate; 5-Phosphoribosyl 1-pyrophosphate; PRPP$Adenine; 6-Aminopurine$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$dADP; 2'-Deoxyadenosine 5'-diphosphate$Deoxyadenosine; 2'-Deoxyadenosine$2-(Formamido)-N1-(5'-phosphoribosyl)acetamidine; 1-(5'-Phosphoribosyl)-N-formylglycinamidine; 5'-Phosphoribosyl-N-formylglycinamidine; 5'-Phosphoribosylformylglycinamidine; 2-(Formamido)-N1-(5-phospho-D-ribosyl)acetamidine$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid$Allantoin; 5-Ureidohydantoin; Glyoxyldiureide$Adenosine$1-(5'-Phosphoribosyl)-5-amino-4-(N-succinocarboxamide)-imidazole; 1-(5'-Phosphoribosyl)-4-(N-succinocarboxamide)-5-aminoimidazole; 5'-Phosphoribosyl-4-(N-succinocarboxamide)-5-aminoimidazole; (S)-2-[5-Amino-1-(5-phospho-D-ribosyl)imidazole-4-carboxamido]succinate; SAICAR C00025;C00294;C00242;C00330;C00119;C00147;C00074;C00206;C00559;C04640;C00049;C01551;C00212;C04823 "170.0414;307.042;220.0421;306.0621;392.9592;158.044,136.0623;168.9891;414.0358,414.0358;274.0914;158.044;134.0441;158.044;306.0621;493.0394" Aminosugars metabolism 10 28 0.000820342 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$CMP-N-acetylneuraminate$N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc$D-Glucosamine 6-phosphate; D-Glucosamine phosphate$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose$CMP; Cytidine-5'-monophosphate; Cytidylic acid$CMP-N-glycoloylneuraminate; CMP-N-glycolylneuraminate; CMP-NeuNGc$N-Glycoloyl-neuraminate; N-Glycolylneuraminate; NeuNGc$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose C00025;C00128;C00140;C00352;C00074;C00645;C00055;C03691;C03410;C01132 "170.0414;617.1579;221.0881,260.0516;260.0516,131.0331;168.9891;221.0881,260.0516;326.0566,362.0125,326.0566;316.5773;364.0613;221.0881,260.0516" Glycosphingolipid biosynthesis - ganglioseries 5 9 0.000858411 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid$D-Galactose$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$Galactose C00128;C00055;C00124;C01132;C01582 "617.1579;326.0566,362.0125,326.0566;180.0645;221.0881,260.0516;180.0645" Sialic acid metabolism 9 26 0.001014025 D-Galactose$beta-D-Glucose$CMP-N-acetylneuraminate$N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc$D-Galactosyl-3-(N-acetyl-beta-D-galactosaminyl)-L-serine$alpha-D-Glucose$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$Galactose$N-Acetyl-D-mannosamine; 2-Acetamido-2-deoxy-D-mannose$CMP; Cytidine-5'-monophosphate; Cytidylic acid$myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I$Galactan$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose C00124;C00221;C00128;C00140;C04776;C00267;C00074;C01582;C00645;C00055;C00137;C05796;C01132 "180.0645;180.0645;617.1579;221.0881,260.0516;236.0944;180.0645;168.9891;180.0645;221.0881,260.0516;326.0566,362.0125,326.0566;180.0645;371.1583;221.0881,260.0516" Glycosphingolipid metabolism 8 23 0.001192449 "D-Galactose$Sphinganine; Dihydrosphingosine; 2-Amino-1,3-dihydroxyoctadecane$D-Glucose; Grape sugar; Dextrose$CMP-N-acetylneuraminate$Galactose$CMP; Cytidine-5'-monophosphate; Cytidylic acid$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose$Sphingosine; Sphingenine; Sphingoid; Sphing-4-enine$3-Dehydrosphinganine; 3-Dehydro-D-sphinganine$beta-D-Galactose" C00124;C00836;C00031;C00128;C01582;C00055;C01132;C00319;C02934;C00962 "180.0645;302.304;180.0645;617.1579;180.0645;326.0566,362.0125,326.0566;221.0881,260.0516;300.2883;300.2883;180.0645" Glycosphingolipid biosynthesis - globoseries 4 7 0.001228854 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid$alpha-D-Galactose$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose C00128;C00055;C00984;C01132 "617.1579;326.0566,362.0125,326.0566;180.0645;221.0881,260.0516" Ascorbate (Vitamin C) and Aldarate Metabolism 5 12 0.001639775 Phenylacetaldehyde; alpha-Tolualdehyde$Lipoate; Lipoic acid; alpha-Lipoic acid; Thioctic acid$L-Gulonate; L-Gulonic acid; Gulonate; Gulonic acid$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione C00601;C00725;C00800;C00051;C00127 "205.028;207.051;281.0256;310.0853,310.0853,309.0929;614.1602" Vitamin B9 (folate) metabolism 4 8 0.001672651 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$N-Formyl-L-glutamate$Folate; Pteroylglutamic acid; Folic acid$10-Formyltetrahydrofolyl L-glutamate; 10-Formyl-THF-L-glutamate C00025;C01045;C00504;C05928 "170.0414;177.0596;443.1493,221.5757,442.1462;313.103" Tyrosine metabolism 16 65 0.002244103 "L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-Adrenaline; (R)-(-)-Adrenaline; (R)-(-)-Epinephrine; (R)-(-)-Epirenamine; (R)-(-)-Adnephrine; 4-[(1R)-1-Hydroxy-2-(methylamino)ethyl]-1,2-benzenediol$L-Phenylalanine; (S)-alpha-Amino-beta-phenylpropionic acid$adrenochrome o-semiquinone$salsoline-1-carboxylate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione$1,2-dehydrosalsolinol$adrenochrome$Dopamine; 4-(2-Aminoethyl)-1,2-benzenediol; 4-(2-Aminoethyl)benzene-1,2-diol; 3,4-Dihydroxyphenethylamine; 2-(3,4-Dihydroxyphenyl)ethylamine$alpha-N-Phenylacetyl-L-glutamine$O-(4-Hydroxy-3,5-diidophenyl)-3,5-diiodo-L-tyrosine; L-Thyroxine; 3,5,3'5'-Tetraiodo-L-thyronine; Levothyroxin; T4$L-Normetanephrine$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Phenylacetaldehyde; alpha-Tolualdehyde$Tyramine O-sulfate$" C00025;C00788;C00079;CE5541;CE5627;C00127;CE5629;CE5536;C03758;C04148;C01829;C05589;C00051;C00601;tymsf;CE2172 "170.0414;186.0909;167.0886;180.0645;236.0944;614.1602;179.0898;180.0645;155.0888,176.0692,176.069,155.0897;333.103;400.3405;186.0909;310.0853,310.0853,309.0929;205.028;220.0421;167.0886" Urea cycle/amino group metabolism 9 32 0.002495585 "L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-Adrenaline; (R)-(-)-Adrenaline; (R)-(-)-Epinephrine; (R)-(-)-Epirenamine; (R)-(-)-Adnephrine; 4-[(1R)-1-Hydroxy-2-(methylamino)ethyl]-1,2-benzenediol$Guanine; 2-Amino-6-hydroxypurine$N-Acetylornithine; N2-Acetyl-L-ornithine$N-Acetyl-L-glutamate; N-Acetyl-L-glutamic acid$Hippurate; Hippuric acid; N-Benzoylglycine; Benzoylaminoacetic acid$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$5'-Deoxyadenosine$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid" C00025;C00788;C00242;C00437;C00624;C01586;C00170;C05198;C00049 "170.0414;186.0909;220.0421;177.1024;190.07,191.0757;180.0645;320.0817;274.0914;134.0441" N-Glycan Degradation 3 6 0.004016416 D-Mannose; Mannose; Seminose; Carubinose$N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc$D-Galactose C00159;C00140;C00124 "180.0645;221.0881,260.0516;180.0645" C5-Branched dibasic acid metabolism 2 2 0.004731524 Itaconate; Itaconic acid; Methylenesuccinic acid$Mesaconate; 2-Methylfumarate; Mesaconic acid; Methylfumaric acid C00490;C01732 "131.0331,168.9891;131.0331,168.9891" Vitamin B3 (nicotinate and nicotinamide) metabolism 5 16 0.005140637 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Nicotinate D-ribonucleoside$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid$5-Phospho-alpha-D-ribose 1-diphosphate; 5-Phosphoribosyl diphosphate; 5-Phosphoribosyl 1-pyrophosphate; PRPP$Nicotinate D-ribonucleotide; beta-Nicotinate D-ribonucleotide; Nicotinate ribonucleotide; Nicotinic acid ribonucleotide C00025;C05841;C00049;C00119;C01185 170.0414;256.0808;134.0441;392.9592;336.0461 Drug metabolism - cytochrome P450 6 21 0.005310597 "2-Hydroxyfelbamate$5-Phenyl-1,3-oxazinane-2,4-dione$p-Hydroxyfelbamate$Felbamate$Carbamazepine$N,N-Didesmethyltamoxifen" C16582;C16596;C16584;C07501;C06868;C16548 "277.0784,339.0594,277.0812;260.0516;277.0784,339.0594,277.0812;277.0609;236.0944;366.1834" Carnitine shuttle 3 7 0.006502462 L-Palmitoylcarnitine$heptadecanoyl carnitine$tetradecanoyl carnitine C02990;hpdcacrn;ttdcrn 400.3405;436.3408;372.3093 Pyrimidine metabolism 8 32 0.006735758 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Deoxyribose; 2-Deoxy-D-erythro-pentose; Thyminose; 2-Deoxy-D-ribose$5-Phospho-alpha-D-ribose 1-diphosphate; 5-Phosphoribosyl diphosphate; 5-Phosphoribosyl 1-pyrophosphate; PRPP$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$CMP; Cytidine-5'-monophosphate; Cytidylic acid$Thymidine; Deoxythymidine$dADP; 2'-Deoxyadenosine 5'-diphosphate$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid C00025;C01801;C00119;C00074;C00055;C00214;C00206;C00049 "170.0414;135.0661;392.9592;168.9891;326.0566,362.0125,326.0566;311.0872;414.0358,414.0358;134.0441" Hexose phosphorylation 5 17 0.006960007 D-Mannose; Mannose; Seminose; Carubinose$cis-beta-D-Glucosyl-2-hydroxycinnamate; beta-D-Glucosyl-2-coumarinate$D-Glucose; Grape sugar; Dextrose$D-Glucosamine 6-phosphate; D-Glucosamine phosphate$D-Hexose$dADP; 2'-Deoxyadenosine 5'-diphosphate$D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose C00159;C05839;C00031;C00352;C00738;C00206;C00095 "180.0645;349.0871;180.0645;260.0516,131.0331;180.0645;414.0358,414.0358;180.0645" Alkaloid biosynthesis II 2 3 0.010562897 Cocaine; l-Cocain; beta-Cocain$ecgonine methyl ester C01416;egme "388.1146,372.141;101.0702" Aspartate and asparagine metabolism 10 46 0.014052728 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-4-Hydroxyglutamate semialdehyde$N-Acetylornithine; N2-Acetyl-L-ornithine$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione$D-Aspartate; D-Aspartic acid$N-Acetyl-beta-D-glucosaminylamine$O-Acetylcarnitine; O-Acetyl-L-carnitine$spermine dialdehyde$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$N-Succinyl-L-glutamate; (2S)-2-(3-Carboxypropanoylamino)pentanedioic acid$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid C00025;C05938;C00437;C00127;C00402;C01239;C02571;CE1936;C00051;C05931;C00049 "170.0414;170.0414;177.1024;614.1602;134.0441;289.099;204.1216;102.0908;310.0853,310.0853,309.0929;250.0712,250.0712;134.0441" Androgen and estrogen biosynthesis and metabolism 6 25 0.01522497 "Testosterone glucuronide; Testosterone 17beta-(beta-D-glucuronide)$2-hydroxyestrone-1-S-glutathione$2-hydroxyestrone-4-S-glutathione$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$4-hydroxyestrone-2-S-glutathione$5alpha-androstane-3alpha,17beta-diol$Androst-4-ene-3,17-dione; Androstenedione; 4-Androstene-3,17-dione" C11134;CE5242;CE5240;C00051;CE5244;CE2209;C00280 "244.1171;307.1091;307.1091;310.0853,310.0853,309.0929;307.1091;158.1172;371.1583" Linoleate metabolism 5 20 0.016902087 $$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione CE2006;CE2061;C00051;CE6506;C00127 "195.0786;253.0847;310.0853,310.0853,309.0929;195.0786;614.1602" Nitrogen metabolism 2 4 0.02059776 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid C00025;C00049 170.0414;134.0441 Glycosphingolipid biosynthesis - lactoseries 2 4 0.02059776 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid C00128;C00055 "617.1579;326.0566,362.0125,326.0566" Glutamate metabolism 3 10 0.023918957 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione C00025;C00051;C00127 "170.0414;310.0853,310.0853,309.0929;614.1602" Glutathione Metabolism 3 10 0.023918957 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione C00025;C00051;C00127 "170.0414;310.0853,310.0853,309.0929;614.1602" Methionine and cysteine metabolism 8 38 0.024648649 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Mercaptopyruvate; 3-Mercaptopyruvate$N-Acetylmethionine$Adenosine C00025;C00302;C00127;C00170;C00051;C00957;C02712;C00212 "170.0414;170.0414;614.1602;320.0817;310.0853,310.0853,309.0929;204.9561;214.0508;306.0621" Glycerophospholipid metabolism 7 34 0.034233621 "Sphinganine; Dihydrosphingosine; 2-Amino-1,3-dihydroxyoctadecane$CDP-ethanolamine$myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I$(R)-glycerol 1-acetate$Galactose$CMP; Cytidine-5'-monophosphate; Cytidylic acid$Sphingosine; Sphingenine; Sphingoid; Sphing-4-enine" C00836;C00570;C00137;CE0520;C01582;C00055;C00319 "302.304;447.0666;180.0645;135.0661;180.0645;326.0566,362.0125,326.0566;300.2883" Chondroitin sulfate degradation 2 5 0.035953183 D-Galactose$N-Acetyl-D-galactosamine; N-Acetyl-D-chondrosamine; 2-Acetamido-2-deoxy-D-galactose C00124;C01132 "180.0645;221.0881,260.0516" O-Glycan biosynthesis 2 5 0.035953183 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid C00128;C00055 "617.1579;326.0566,362.0125,326.0566" Heparan sulfate degradation 2 5 0.035953183 N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc$D-Galactose C00140;C00124 "221.0881,260.0516;180.0645" Glycosphingolipid biosynthesis - neolactoseries 2 5 0.035953183 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid C00128;C00055 "617.1579;326.0566,362.0125,326.0566" Blood Group Biosynthesis 2 5 0.035953183 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid C00128;C00055 "617.1579;326.0566,362.0125,326.0566" Keratan sulfate biosynthesis 2 6 0.05730283 CMP-N-acetylneuraminate$CMP; Cytidine-5'-monophosphate; Cytidylic acid C00128;C00055 "617.1579;326.0566,362.0125,326.0566" Xenobiotics metabolism 10 54 0.057853158 "1,2-Dihydroxy-3,4-epoxy-1,2,3,4-tetrahydronaphthalene$(1S,2R)-Naphthalene 1,2-oxide; (1S,2R)-Naphthalene epoxide$(1R,2S)-Naphthalene 1,2-oxide; (1R,2S)-Naphthalene epoxide$Benzo[a]pyrene-4,5-oxide; Benzo[a]pyrene-4,5-epoxide$Benzo[a]pyrene-7,8-oxide; Benzo[a]pyrene-7,8-epoxide$9-Hydroxybenzo[a]pyrene-4,5-oxide; 9-Hydroxybenzo[a]pyrene-4,5-epoxide$$$4-Nitrophenol; p-Nitrophenol; PNP; Niphen; 4-Hydroxynitrobenzene$Benzo[a]pyrene-9,10-oxide; Benzo[a]pyrene-9,10-epoxide$S-(1,2-Dichlorovinyl)glutathione; DCVG$9-Hydroxybenzo[a]pyrene$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$beta-Naphthol; 2-Naphthol$" C14784;C14787;C14786;C14851;C14850;C14854;C14877;C14873;C00870;C14849;C14868;C14556;C00051;C11713;C11714 "247.0562;147.0633;147.0633;307.0501;307.0501;285.0889;341.0998;204.9561;142.0312,142.0312;307.0501;470.012;307.0501;310.0853,310.0853,309.0929;147.0633;147.0633" Arginine and Proline Metabolism 5 25 0.060363245 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-4-Hydroxyglutamate semialdehyde$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid$5'-Methylthioadenosine; Methylthioadenosine; S-Methyl-5'-thioadenosine; 5-Methylthioadenosine; 5'-Deoxy-5'-(methylthio)adenosine; Thiomethyladenosine; MTA$Adenine; 6-Aminopurine C00025;C05938;C00049;C00170;C00147 "170.0414;170.0414;134.0441;320.0817;158.044,136.0623" Pentose phosphate pathway 5 26 0.074781384 Deoxyribose; 2-Deoxy-D-erythro-pentose; Thyminose; 2-Deoxy-D-ribose$5-Phospho-alpha-D-ribose 1-diphosphate; 5-Phosphoribosyl diphosphate; 5-Phosphoribosyl 1-pyrophosphate; PRPP$D-Gluconic acid; D-Gluconate; D-gluco-Hexonic acid$beta-D-Glucose$Aminofructose 6-phosphate; Amino-D-fructose 6-phosphate C01801;C00119;C00257;C00221;C12214 "135.0661;392.9592;281.0256;180.0645;260.0516,131.0331" Carbon fixation 2 7 0.084754872 L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP C00049;C00074 134.0441;168.9891 Caffeine metabolism 2 7 0.084754872 "$1,7-Dimethyluric acid$1,7-Dimethylxanthine; Paraxanthine$" C16360;C16356;C13747;C07480 281.0256;281.0256;180.0645;180.0645 Alanine and Aspartate Metabolism 3 14 0.087284985 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$D-Aspartate; D-Aspartic acid$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid$N-Acetyl-L-aspartate C00025;C00402;C00049;C01042 170.0414;134.0441;134.0441;177.0596 Porphyrin metabolism 3 15 0.111944774 Biliverdin; Biliverdin IXalpha$2-Amino-3-oxoadipate; 2-Amino-3-oxohexanedioic acid$Heme; Haem; Protoheme; Heme B; Protoheme IX C00500;C05520;C00032 667.2191;177.0596;309.0929 Keratan sulfate degradation 2 8 0.117875174 N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc$D-Galactose C00140;C00124 "221.0881,260.0516;180.0645" Biopterin metabolism 2 8 0.117875174 "2,5-Diamino-6-(5'-triphosphoryl-3',4'-trihydroxy-2'-oxopentyl)-amino-4-oxopyrimidine$L-Phenylalanine; (S)-alpha-Amino-beta-phenylpropionic acid$2,5-Diaminopyrimidine nucleoside triphosphate" C06148;C00079;C05923 515.0199;167.0886;515.0199 Butanoate metabolism 4 22 0.119532785 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Thiamin diphosphate; Thiamine diphosphate; Thiamin pyrophosphate; TPP; ThPP$3-Butynoate$6-Acetamido-2-oxohexanoate; 2-Oxo-6-acetamidocaproate C00025;C00068;C06144;C05548 170.0414;494.0435;168.9891;256.0808 Saturated fatty acids beta-oxidation 2 10 0.197474746 3-Oxooctanoyl-CoA$L-Palmitoylcarnitine C05267;C02990 455.1099;400.3405 Vitamin E metabolism 2 10 0.197474746 13'-carboxy-gama-tocotrienol$Phenylacetaldehyde; alpha-Tolualdehyde CE7072;C00601 462.2738;205.028 Phosphatidylinositol phosphate metabolism 3 20 0.276017436 myo-Inositol; D-myo-Inositol; 1D-myo-Inositol; L-myo-Inositol; 1L-myo-Inositol; meso-Inositol; Inositol; Dambose; Cyclohexitol; Meat sugar; Bios I$CMP; Cytidine-5'-monophosphate; Cytidylic acid$D-Galactose C00137;C00055;C00124 "180.0645;326.0566,362.0125,326.0566;180.0645" Beta-Alanine metabolism 2 12 0.287284751 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$L-Aspartate; L-Aspartic acid; 2-Aminosuccinic acid C00025;C00049 170.0414;134.0441 Drug metabolism - other enzymes 2 12 0.287284751 "5,6-Dihydro-5-fluorouracil; 5-Fluorodihydrouracil$5-Fluorouridine monophosphate" C16630;C16634 "134.0441;345.0277,345.0277,343.0359" TCA cycle 2 12 0.287284751 Thiamin diphosphate; Thiamine diphosphate; Thiamin pyrophosphate; TPP; ThPP$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP C00068;C00074 494.0435;168.9891 Galactose metabolism 4 29 0.327318784 D-Mannose; Mannose; Seminose; Carubinose$beta-D-Fructose; beta-Fruit sugar; beta-D-arabino-Hexulose; beta-Levulose; Fructose$D-Galactose$beta-D-Glucose$D-Glucose; Grape sugar; Dextrose$Galactan$alpha-D-Glucose$D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose$D-Tagatose; lyxo-Hexulose$N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc C00159;C02336;C00124;C00221;C00031;C05796;C00267;C00095;C00795;C00140 "180.0645;180.0645;180.0645;180.0645;180.0645;371.1583;180.0645;180.0645;180.0645;221.0881,260.0516" Squalene and cholesterol biosynthesis 2 13 0.333283278 Isopentenyl diphosphate; delta3-Isopentenyl diphosphate; delta3-Methyl-3-butenyl diphosphate$Dimethylallyl diphosphate; Prenyl diphosphate; 2-Isopentenyl diphosphate; delta2-Isopentenyl diphosphate; delta-Prenyl diphosphate; DMAPP$(R)-5-Phosphomevalonate; (R)-5-Phosphomevaloonic acid; (R)-Mevalonic acid 5-phosphate C00129;C00235;C01107 "135.0023;135.0023;231.0422,231.0422" Selenoamino acid metabolism 2 13 0.333283278 Adenosine$gamma-Glutamyl-Se-methylselenocysteine; 5-L-Glutamyl-Se-methylselenocysteine C00212;C05695 306.0621;350.983 Leukotriene metabolism 3 22 0.351061621 "Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$DL-Glutamate; DL-Glutaminic acid; 2-Aminoglutaric acid; Glutamate$10,11-dihydro-12R-hydroxy-leukotriene E4" C00051;C00302;CE4995 "310.0853,310.0853,309.0929;170.0414;458.2517" Putative anti-Inflammatory metabolites formation from EPA 2 14 0.378827109 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione C00025;C00051 "170.0414;310.0853,310.0853,309.0929" Starch and Sucrose Metabolism 2 14 0.378827109 "Amylose; Amylose chain; (1,4-alpha-D-Glucosyl)n; (1,4-alpha-D-Glucosyl)n+1; (1,4-alpha-D-Glucosyl)n-1; 4-{(1,4)-alpha-D-Glucosyl}(n-1)-D-glucose; 1,4-alpha-D-Glucan$alpha-D-Glucose$beta-D-Glucose$D-Glucose; Grape sugar; Dextrose" C00718;C00267;C00221;C00031 371.1583;180.0645;180.0645;180.0645 Histidine metabolism 2 14 0.378827109 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione C00025;C00051 "170.0414;310.0853,310.0853,309.0929" Glycolysis and Gluconeogenesis 3 29 0.592637536 Thiamin diphosphate; Thiamine diphosphate; Thiamin pyrophosphate; TPP; ThPP$alpha-D-Glucose$beta-D-Glucose$Phosphoenolpyruvate; Phosphoenolpyruvic acid; PEP$D-Glucose; Grape sugar; Dextrose C00068;C00267;C00221;C00074;C00031 494.0435;180.0645;180.0645;168.9891;180.0645 Lysine metabolism 2 21 0.647449409 "L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$3-Hydroxy-N6,N6,N6-trimethyl-L-lysine" C00025;C01259 170.0414;244.1171 "Valine, leucine and isoleucine degradation" 2 26 0.773306084 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Thiamin diphosphate; Thiamine diphosphate; Thiamin pyrophosphate; TPP; ThPP C00025;C00068 170.0414;494.0435 C21-steroid hormone biosynthesis and metabolism 3 38 0.797366003 "19-Hydroxydeoxycorticosterone$Androstenedione$testosterone glucuronide$Androst-4-ene-3,17-dione; Androstenedione; 4-Androstene-3,17-dione$21-Hydroxy-5beta-pregnane-3,11,20-trione$11-Deoxycortisol; Cortodoxone$21-Deoxycortisol; 4-Pregnene-11beta,17alpha-diol-3,20-dione; 11beta,17alpha-Dihydroxyprogesterone$Corticosterone; 11beta,21-Dihydroxy-4-pregnene-3,20-dione; Kendall's compound B; Reichstein's substance H" CE1347;andrstndn;tststeroneglc;C00280;C05477;C05488;C05497;C02140 415.2066;371.1583;244.1171;371.1583;415.2066;415.2066;415.2066;415.2066 "Glycine, serine, alanine and threonine metabolism" 3 39 0.813162038 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$O-Phospho-L-serine; L-O-Phosphoserine; 3-Phosphoserine; Dexfosfoserine$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione C00025;C01005;C00051 "170.0414;207.9975;310.0853,310.0853,309.0929" Arachidonic acid metabolism 3 42 0.853952973 L-Glutamate; L-Glutamic acid; L-Glutaminic acid; Glutamate$Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione$Glutathione disulfide; GSSG; Oxiglutatione; Oxidized glutathione C00025;C00051;C00127 "170.0414;310.0853,310.0853,309.0929;614.1602" Glycerolipid metabolism 0 0 1 Vitamin B2 (riboflavin) metabolism 0 3 1 Di-unsaturated fatty acid beta-oxidation 0 3 1 Pyruvate Metabolism 1 10 1 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione C00051 "310.0853,310.0853,309.0929" R Group Synthesis 0 1 1 Hyaluronan Metabolism 1 4 1 N-Acetyl-D-glucosamine; N-Acetylchitosamine; 2-Acetamido-2-deoxy-D-glucose; GlcNAc C00140 "221.0881,260.0516" Vitamin D3 (cholecalciferol) metabolism 0 4 1 Phytanic acid peroxisomal oxidation 0 6 1 Omega-6 fatty acid metabolism 0 5 1 Trihydroxycoprostanoyl-CoA beta-oxidation 0 1 1 Prostaglandin formation from dihomo gama-linoleic acid 0 2 1 1- and 2-Methylnaphthalene degradation 0 2 1 Ubiquinone Biosynthesis 0 3 1 Nucleotide Sugar Metabolism 0 1 1 Fatty acid activation 1 13 1 Octanoic acid; Caprylic acid; Octylic acid C06423 213.1089 Vitamin B12 (cyanocobalamin) metabolism 0 0 1 Atrazine degradation 0 0 1 Pentose and Glucuronate Interconversions 1 6 1 L-Gulonate; L-Gulonic acid; Gulonate; Gulonic acid C00800 281.0256 Vitamin B6 (pyridoxine) metabolism 1 6 1 Pyridoxamine; PM C00534 207.051 Dimethyl-branched-chain fatty acid mitochondrial beta-oxidation 0 3 1 Prostaglandin formation from arachidonate 1 32 1 Glutathione; 5-L-Glutamyl-L-cysteinylglycine; N-(N-gamma-L-Glutamyl-L-cysteinyl)glycine; gamma-L-Glutamyl-L-cysteinyl-glycine; GSH; Reduced glutathione C00051 "310.0853,310.0853,309.0929" Benzoate degradation via CoA ligation 0 3 1 Vitamin K metabolism 0 1 1 Proteoglycan biosynthesis 0 5 1 Limonene and pinene degradation 0 6 1 Sphingolipid metabolism 0 1 1 3-Chloroacrylic acid degradation 0 2 1 Polyunsaturated fatty acid biosynthesis 0 0 1 "Fatty acid oxidation, peroxisome" 0 3 1 Dynorphin metabolism 0 2 1 Vitamin D 0 0 1 D4&E4-neuroprostanes formation 0 17 1 Geraniol degradation 0 0 1 Mono-unsaturated fatty acid beta-oxidation 0 2 1 Omega-3 fatty acid metabolism 0 7 1 CoA Catabolism 1 4 1 Pantetheine 4'-phosphate; 4'-Phosphopantetheine; Phosphopantetheine; D-Pantetheine 4'-phosphate C01134 191.0477 ROS Detoxification 0 0 1 Fructose and mannose metabolism 1 22 1 D-Mannose; Mannose; Seminose; Carubinose$alpha-D-Glucose$D-Fructose; Levulose; Fruit sugar; D-arabino-Hexulose$D-Glucose; Grape sugar; Dextrose C00159;C00267;C00095;C00031 180.0645;180.0645;180.0645;180.0645 Fatty acid oxidation 0 3 1 Glycosaminoglycan degradation 0 0 1 Fatty Acid Metabolism 1 6 1 O-Acetylcarnitine; O-Acetyl-L-carnitine C02571 204.1216 Vitamin A (retinol) metabolism 0 12 1 De novo fatty acid biosynthesis 0 14 1 Glyoxylate and Dicarboxylate Metabolism 0 4 1 Heparan sulfate biosynthesis 0 0 1 Lipoate metabolism 1 3 1 Lipoate; Lipoic acid; alpha-Lipoic acid; Thioctic acid C00725 207.051 Vitamin H (biotin) metabolism 0 2 1 Electron transport chain 0 3 1 Propanoate metabolism 1 18 1 "2-Methylcitrate; 2-Hydroxybutane-1,2,3-tricarboxylate; (2R,3S)-2-Hydroxybutane-1,2,3-tricarboxylate$(2S,3R)-3-Hydroxybutane-1,2,3-tricarboxylate; Methylisocitrate; Methylisocitric acid" C02225;C04593 207.051;207.051 Parathio degradation 1 2 1 4-Nitrophenol; p-Nitrophenol; PNP; Niphen; 4-Hydroxynitrobenzene C00870 "142.0312,142.0312" Bile acid biosynthesis 0 31 1 Glycosylphosphatidylinositol(GPI)-anchor biosynthesis 0 1 1 Vitamin B5 - CoA biosynthesis from pantothenate 1 6 1 Pantetheine 4'-phosphate; 4'-Phosphopantetheine; Phosphopantetheine; D-Pantetheine 4'-phosphate C01134 191.0477 Vitamin B1 (thiamin) metabolism 1 7 1 Thiamin diphosphate; Thiamine diphosphate; Thiamin pyrophosphate; TPP; ThPP C00068 494.0435 3-oxo-10R-octadecatrienoate beta-oxidation 0 0 1 -------------------------------------------------------------------------------- /notebooks/Bubble_plot_pathways.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Bubble plot, using scatter plot panels to visualize result from pathway analysis\n", 8 | "\n", 9 | "One can include multiple panels, and customize size, colors of scatters.\n" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 1, 15 | "metadata": { 16 | "collapsed": true 17 | }, 18 | "outputs": [], 19 | "source": [ 20 | "import numpy as np\n", 21 | "import matplotlib.pyplot as plt\n", 22 | "\n", 23 | "%matplotlib inline\n", 24 | "\n", 25 | "# these use mummichog output pathway .tsv files\n", 26 | "# more files can be used\n", 27 | "INDIR = \"../inputdata/\"\n", 28 | "input_files = ['mcg_pathwayanalysis_A.tsv', 'mcg_pathwayanalysis_B.tsv' ]" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 8, 34 | "metadata": { 35 | "collapsed": false 36 | }, 37 | "outputs": [ 38 | { 39 | "name": "stdout", 40 | "output_type": "stream", 41 | "text": [ 42 | "[0.92790713095172228, 1.0413561944231713, 1.0445791738300669, 1.0445791738300669, 1.0445791738300669, 1.1311007830435784, 1.1757629527667233, 1.289542244951507, 1.3047314435519113, 1.3748797380483697]\n", 43 | "[3.0975059479977372, 2.1869221771157168, 1.0590604583847831, 2.9939513376770353, 0, 1.4655471617108637, 2.7852157391243377, 1.6082068795479776, 2.9235601862855152, 3.1669594021441387]\n" 44 | ] 45 | }, 46 | { 47 | "name": "stderr", 48 | "output_type": "stream", 49 | "text": [ 50 | "/Users/sli/anaconda2/lib/python2.7/site-packages/ipykernel/__main__.py:51: MatplotlibDeprecationWarning: The set_axis_bgcolor function was deprecated in version 2.0. Use set_facecolor instead.\n" 51 | ] 52 | }, 53 | { 54 | "data": { 55 | "image/png": "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\nKrIppymSlpCNllyWV/eHafHts2SLjF9qVm+XjXOxpP2B30oa8P/t3XmYHXWd7/H3p5POvhgMgg1K\nJCSOSYSGJMg6EgSRgGG47AOJQSUyMIwMl4GHCw9GmRFkVAiDXiZGDEsIMIiORoNwJYyILEkgZEGW\nITAal0BAyNZpOt3f+0dVk5OmT/fptc6pfF7PkyfnnPpV1bdOV/p8+lu/6pD8G7mR5PLTfOCWgknG\n3yO5q+rPwNIWm9qWvj/VwOfT12YDt0paSTLJ+HNtlNIHuDOtQcBNEfGWuthzloJDDun4T4Rmlo2a\nmiZ+/OM3mD59BC++2PbE8eHDm5g37y8cfrj/jQMouuNeNDOrCLW1tbF48eKsyyiq+XejlPu8kUqo\nsydqrKmpWZ7eWNAlPg87rqEBFi8ewG23DeLxx3f+HUL77bedGTO2cPrpdQwbVl6f6Vmeh+7gmJmZ\nlbnqapg2bRvTpm1j3bo+vPFG8gs7hw6tZ+zYXftuqWIccMzMzCrI3ns3Mnp0EmrK5ffclCNPMjYz\nM7PcccAxMzOz3HHAMTMzs9xxwDEzM7PcccAxMzOz3HHAMTMzs9xxwDEzM7PcccAxMzOz3HHAMTMz\ns9xxwDEzM7PcccAxMzOz3HHAMTMzs9xxwDEzM7PcccAxMzOz3HHAMTMzs9xxwDEzM7PcccAxMzOz\n3HHAMTMzs9xxwDEzM7PcccAxMzOz3HHAMTMzs9xxwDEzM7PcccAxMzOz3HHAMTMzs9xxwDEzs173\n7LPVLFgwkNWr+2ZdiuWUzywzM+tV69ZdyfHHj3z3+axZm5k9e1OGFVkeOeCYmVmveuON03Z6Pnfu\nEGbMaORjH2vMqKKdVVdXZ11CuyqhRsi2Tl+iMjOzHidplqRlkpa1tnzlyj69XZLlnDs4HSDpb4Af\nAR+LiOfT10YBiyJiQie3OQ/4dkQ81111drKOo4BLI+LEIstvBE4DPhQRTT1cy0zgwYj4Y3eMa7HO\nbOArwJiI+O/0tYuBG4DJEdHqN9+CcXMjYms7+3gVmBQRGzpQ0+aI+KakrwG/ioj/V8q6HbVx4+HM\nnDmCxkY488w6TjhhW0/sxuw9ImIuMBdAIlouHz++jvr67b1eV1vq6+uzLqFdlVAjZFOnOzgdcxbw\n6/TvbhERX8w63LRHUhVwMvB74JM9vK8+wEygpoThpY5raRVwZsHz04A1Jax3MTCoE/srWURc3VPh\n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\n", 56 | "text/plain": [ 57 | "" 58 | ] 59 | }, 60 | "metadata": {}, 61 | "output_type": "display_data" 62 | } 63 | ], 64 | "source": [ 65 | "# read pathway analysis result from mummichog\n", 66 | "def get_data(f):\n", 67 | " '''\n", 68 | " Input data: pathway overlap_size pathway_size p-value\n", 69 | " '''\n", 70 | " mydict = {}\n", 71 | " w = open(f).read().splitlines()\n", 72 | " # first 50 lines are usually enough; extra lines may exist in the pathway export table\n", 73 | " for line in w[1: 50]:\n", 74 | " a = line.split('\\t')\n", 75 | " mydict[a[0]] = -np.log10(float(a[3])) # a[4] if mummichog v1 result\n", 76 | "\n", 77 | " return mydict\n", 78 | "\n", 79 | "# read data\n", 80 | "mydata = []\n", 81 | "for ff in input_files: mydata.append( get_data(INDIR + ff) )\n", 82 | "\n", 83 | "# manualy input pathway list. \n", 84 | "#Edit below for different set/order of pathways\n", 85 | "selected_pathways = '''Tryptophan metabolism\n", 86 | "Glycosphingolipid metabolism\n", 87 | "Methionine and cysteine metabolism\n", 88 | "Ascorbate (Vitamin C) and Aldarate Metabolism\n", 89 | "Glycerophospholipid metabolism\n", 90 | "Galactose metabolism\n", 91 | "Sialic acid metabolism\n", 92 | "Alanine and Aspartate Metabolism\n", 93 | "Carnitine shuttle\n", 94 | "Purine metabolism'''\n", 95 | "selected_pathways = [x.strip() for x in selected_pathways.splitlines()]\n", 96 | "selected_pathways.reverse()\n", 97 | "\n", 98 | "# plot\n", 99 | "fig, myaxes = plt.subplots(figsize=(8, 6), nrows=1, ncols=2)\n", 100 | "Y = range( len(selected_pathways) )\n", 101 | "\n", 102 | "#\n", 103 | "# plt.yticks(range(len(selected_pathways)), selected_pathways)\n", 104 | "\n", 105 | "for ii in range(2):\n", 106 | "\n", 107 | " X = [mydata[ii].get(path, 0) for path in selected_pathways]\n", 108 | " print(X)\n", 109 | " myaxes[ii].set_xlim( 1, 4.5 )\n", 110 | " myaxes[ii].set_xticks(range(1, 5))\n", 111 | " myaxes[ii].set_yticks(range(len(selected_pathways)))\n", 112 | " myaxes[ii].set_yticklabels([]*len(selected_pathways))\n", 113 | " #myaxes[ii].set_ylim( 0, 0.5+len(selected_pathways))\n", 114 | " myaxes[ii].grid(True, color='w', linestyle='-', linewidth=2, alpha=0.3, zorder=0)\n", 115 | " myaxes[ii].set_axis_bgcolor('0.9')\n", 116 | " # change styles below. s stands for size of dots\n", 117 | " myaxes[ii].scatter( X, Y, s=[30*x**2 for x in X], c='blue', linewidths =0, alpha=1, zorder=3)\n", 118 | "\n", 119 | "\n", 120 | "myaxes[0].set_yticklabels(selected_pathways)\n", 121 | "\n", 122 | "plt.tight_layout()\n", 123 | "plt.show()\n", 124 | "# comment out the last line and use this line to save file\n", 125 | "# plt.savefig('good-bubbles-.pdf')" 126 | ] 127 | } 128 | ], 129 | "metadata": { 130 | "kernelspec": { 131 | "display_name": "Python 2", 132 | "language": "python", 133 | "name": "python2" 134 | }, 135 | "language_info": { 136 | "codemirror_mode": { 137 | "name": "ipython", 138 | "version": 2 139 | }, 140 | "file_extension": ".py", 141 | "mimetype": "text/x-python", 142 | "name": "python", 143 | "nbconvert_exporter": "python", 144 | "pygments_lexer": "ipython2", 145 | "version": "2.7.13" 146 | } 147 | }, 148 | "nbformat": 4, 149 | "nbformat_minor": 2 150 | } 151 | -------------------------------------------------------------------------------- /notebooks/Search_list_targets_in_featureTable.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "d68ed131", 6 | "metadata": {}, 7 | "source": [ 8 | "# Search a list of target features in a feature table\n", 9 | "\n", 10 | "This is the simpliest method to match m/z and retention time between a list of targets and a dataset, by defined windows of m/z and retention time.\n", 11 | "\n", 12 | "The only trick is to index the dataset so that the search isn't too slow.\n", 13 | "\n", 14 | "This was using jupyter/scipy-notebook, e.g.:\n", 15 | "\n", 16 | "docker run -v /home/shuzhao/play:/home/jovyan -p 8888:8888 jupyter/scipy-notebook\n", 17 | "\n", 18 | "Shuzhao Li, 2021-06-23" 19 | ] 20 | }, 21 | { 22 | "cell_type": "code", 23 | "execution_count": 1, 24 | "id": "d65e0ce0", 25 | "metadata": {}, 26 | "outputs": [ 27 | { 28 | "name": "stdout", 29 | "output_type": "stream", 30 | "text": [ 31 | "['name\\tm/z(M+H)\\tRT\\n', 'betaine_D11\\t129.15410400000002\\t0\\n', 'citrulline_D4\\t180.1275884\\t0\\n', 'creatine_D3\\t135.0951996\\t0\\n', 'homocysteine_D5\\t141.0734744\\t0\\n', 'ornithine_D6\\t139.1341256\\t0\\n', 'phenylacetylglutamine_D5\\t270.1490786\\t0\\n', 'taurine_D4\\t130.0465648\\t0\\n', 'test_pos\\t267.0048\\t164\\n'] \n", 32 | "\n", 33 | "[['betaine_D11', 129.15410400000002, 0.0], ['citrulline_D4', 180.1275884, 0.0], ['creatine_D3', 135.0951996, 0.0], ['homocysteine_D5', 141.0734744, 0.0], ['ornithine_D6', 139.1341256, 0.0], ['phenylacetylglutamine_D5', 270.1490786, 0.0], ['taurine_D4', 130.0465648, 0.0], ['test_pos', 267.0048, 164.0]]\n" 34 | ] 35 | } 36 | ], 37 | "source": [ 38 | "# This is a list of labeled compounds, \n", 39 | "targets = \"labeled_targets.txt\"\n", 40 | "targets = open(targets).readlines()\n", 41 | "print(targets[:10], '\\n')\n", 42 | "\n", 43 | "# name at col 0, m/z at col 1 and rt col 2\n", 44 | "wanted = []\n", 45 | "for line in targets[1:]:\n", 46 | " a = line.split('\\t')\n", 47 | " wanted.append([a[0], float(a[1]), float(a[2])])\n", 48 | " \n", 49 | "print(wanted)" 50 | ] 51 | }, 52 | { 53 | "cell_type": "markdown", 54 | "id": "2f557e81", 55 | "metadata": {}, 56 | "source": [ 57 | "One can compute the adducts if needed:\n", 58 | "\n", 59 | "PROTON = 1.00727646677\n", 60 | "\n", 61 | "SODIUM = 21.9820 + PROTON\n", 62 | "\n", 63 | "H2O = 18.0106" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 2, 69 | "id": "512033b4", 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "name": "stdout", 74 | "output_type": "stream", 75 | "text": [ 76 | "[['row1', 85.02783, 59.0, '85.02783\\t59\\t17.23\\t17.18\\t17.44\\t15.67\\t15.57\\t17.26\\t16.94\\t16.98\\t16.56\\n'], ['row2', 85.04717, 124.0, '85.04717\\t124\\t16.53\\t15.8\\t16.62\\t14.37\\t14.85\\t15.63\\t16.71\\t15.65\\t16.27\\n'], ['row3', 85.06532, 68.0, '85.06532\\t68\\t10.8\\t10.61\\t11.36\\t14.87\\t14.89\\t12.53\\t14.42\\t14.03\\t10.81\\n']]\n", 77 | "min_mz, max_mz = 85.02783 1956.091\n" 78 | ] 79 | } 80 | ], 81 | "source": [ 82 | "feature_table = \"input_data/ave_log2_modc_ae_2012.txt\"\n", 83 | "\n", 84 | "# m/z at col 1, rt at col 2\n", 85 | "\n", 86 | "row = 0\n", 87 | "features = []\n", 88 | "for line in open(feature_table).readlines()[1:]:\n", 89 | " a = line.split('\\t')\n", 90 | " row += 1\n", 91 | " features.append([ 'row'+str(row), float(a[0]), float(a[1]), line ])\n", 92 | " \n", 93 | "print (features[:3])\n", 94 | "\n", 95 | "tree = {}\n", 96 | "all_mzs = [x[1] for x in features]\n", 97 | "min_mz, max_mz = min(all_mzs), max(all_mzs)\n", 98 | "print(\"min_mz, max_mz = \", min_mz, max_mz)\n", 99 | "\n", 100 | "for ii in range(int(min_mz), int(max_mz)+1):\n", 101 | " tree[ii] = []\n", 102 | "\n", 103 | "# building feature index so that the search isn't too slow.\n", 104 | "for f in features:\n", 105 | " tree[int(f[1])].append(f)\n" 106 | ] 107 | }, 108 | { 109 | "cell_type": "code", 110 | "execution_count": 3, 111 | "id": "d16f81fd", 112 | "metadata": {}, 113 | "outputs": [ 114 | { 115 | "data": { 116 | "text/plain": [ 117 | "True" 118 | ] 119 | }, 120 | "execution_count": 3, 121 | "metadata": {}, 122 | "output_type": "execute_result" 123 | } 124 | ], 125 | "source": [ 126 | "# 0.000010 is 10 ppm\n", 127 | "PPM_tolerance = 0.000010\n", 128 | "# use a large number to include anything in RTime, small number to be specific\n", 129 | "RTime_tolerance = 5000 # seconds in retention time, usually a small number\n", 130 | " # more lenient for diff instruments\n", 131 | " # and possible diff void volume\n", 132 | " \n", 133 | "# F1 = (m/z, rt)\n", 134 | "def match2(F1, F2):\n", 135 | " if abs(F1[0]-F2[0])/F1[0] < PPM_tolerance and abs(F1[1] - F2[1]) < RTime_tolerance:\n", 136 | " return True\n", 137 | " else:\n", 138 | " return False\n", 139 | " \n", 140 | "# test\n", 141 | "match2((129.1541, 55), (129.1533, 144))" 142 | ] 143 | }, 144 | { 145 | "cell_type": "code", 146 | "execution_count": 4, 147 | "id": "75e0f84b", 148 | "metadata": {}, 149 | "outputs": [ 150 | { 151 | "name": "stdout", 152 | "output_type": "stream", 153 | "text": [ 154 | "Found 1 matches, result written to search_result.tsv\n" 155 | ] 156 | } 157 | ], 158 | "source": [ 159 | "result_file = \"search_result.tsv\"\n", 160 | "\n", 161 | "def find_targets(targetList, featuresTree, result_file):\n", 162 | " # target format: name at col 0, m/z at col 1 and rt col 2\n", 163 | " # feature format: row_number, m/z, rt, original line\n", 164 | " matched = []\n", 165 | " # filter targetList\n", 166 | " new = []\n", 167 | " min_mz, max_mz = min(featuresTree.keys()), max(featuresTree.keys())\n", 168 | " for x in targetList:\n", 169 | " if min_mz < x[1] < max_mz:\n", 170 | " new.append(x)\n", 171 | " else:\n", 172 | " print(\"out of m/z range: \", x)\n", 173 | " for x in new:\n", 174 | " # mz -0.1 to + 0.1 as search range\n", 175 | " neighbors = set([int(x[1]-0.1), int(x[1]+0.1)])\n", 176 | " for ii in neighbors:\n", 177 | " for F in featuresTree[ii]:\n", 178 | " if match2( (x[1], x[2]), F[1:3] ):\n", 179 | " matched.append((x + F))\n", 180 | " \n", 181 | " if matched:\n", 182 | " s = \"#Matched result\\n\"\n", 183 | " for line in matched:\n", 184 | " s += '\\t'.join([str(x) for x in line]) + '\\n'\n", 185 | " with open(result_file, 'w') as file:\n", 186 | " file.write(s)\n", 187 | " print(\"Found %d matches, result written to %s\" %(len(matched), result_file))\n", 188 | " else:\n", 189 | " print(\"No match found\")\n", 190 | " \n", 191 | " return matched\n", 192 | "\n", 193 | "matched = find_targets( wanted, tree, result_file )" 194 | ] 195 | }, 196 | { 197 | "cell_type": "code", 198 | "execution_count": 5, 199 | "id": "e5463607", 200 | "metadata": {}, 201 | "outputs": [ 202 | { 203 | "name": "stdout", 204 | "output_type": "stream", 205 | "text": [ 206 | "[['test_pos', 267.0048, 164.0, 'row5819', 267.0048, 164.0, '267.0048\\t164\\t15.57\\t14.45\\t14.78\\t12.09\\t14.34\\t14.38\\t14.97\\t14.97\\t14.47\\n']]\n" 207 | ] 208 | } 209 | ], 210 | "source": [ 211 | "# Can do more with matched here\n", 212 | "print(matched[:3])" 213 | ] 214 | } 215 | ], 216 | "metadata": { 217 | "kernelspec": { 218 | "display_name": "Python 3", 219 | "language": "python", 220 | "name": "python3" 221 | }, 222 | "language_info": { 223 | "codemirror_mode": { 224 | "name": "ipython", 225 | "version": 3 226 | }, 227 | "file_extension": ".py", 228 | "mimetype": "text/x-python", 229 | "name": "python", 230 | "nbconvert_exporter": "python", 231 | "pygments_lexer": "ipython3", 232 | "version": "3.9.5" 233 | } 234 | }, 235 | "nbformat": 4, 236 | "nbformat_minor": 5 237 | } 238 | -------------------------------------------------------------------------------- /notebooks/Statistics_group_comparison.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Statistical analyses of metabolite features (group comparison)\n", 8 | "\n", 9 | "This notebook is about statistical analyses at feature level. This uses a data table after preprocessing, quality control and normalization. Annotation is not necessary at this step.\n", 10 | "\n", 11 | "Common study designs are\n", 12 | "* group comparison\n", 13 | "* linear regression to test association with a variable\n", 14 | "* time series\n", 15 | "\n", 16 | "Each is a separte topic, and this notebook deals with group comparisons.\n", 17 | "Please refer to this paper for extended discussions:\n", 18 | "\n", 19 | "Gardinassi L, Xia J, Safo S, Li S. (2017) Bioinformatics tools for the interpretation of metabolomics data. Current Pharmacology Reports, December 2017, Volume 3, Issue 6, pp 374–383. DOI: 10.1007/s40495-017-0107-0. " 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 1, 25 | "metadata": { 26 | "collapsed": false 27 | }, 28 | "outputs": [ 29 | { 30 | "data": { 31 | "text/html": [ 32 | "
\n", 33 | "\n", 34 | " \n", 35 | " \n", 36 | " \n", 37 | " \n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | "
mzretention_timemock_6hr_01mock_6hr_02mock_6hr_03p_0hr_01p_0hr_02p_0hr_03yf_6hr_01yf_6hr_02yf_6hr_03
085.027835917.2317.1817.4415.6715.5717.2616.9416.9816.56
185.0471712416.5315.8016.6214.3714.8515.6316.7115.6516.27
285.065326810.8010.6111.3614.8714.8912.5314.4214.0310.81
385.100731613.3213.1613.4213.7712.4213.3112.9912.9912.95
486.059516718.4218.1518.3715.1817.0217.9117.7617.6715.15
\n", 123 | "
" 124 | ], 125 | "text/plain": [ 126 | " mz retention_time mock_6hr_01 mock_6hr_02 mock_6hr_03 p_0hr_01 \\\n", 127 | "0 85.02783 59 17.23 17.18 17.44 15.67 \n", 128 | "1 85.04717 124 16.53 15.80 16.62 14.37 \n", 129 | "2 85.06532 68 10.80 10.61 11.36 14.87 \n", 130 | "3 85.10073 16 13.32 13.16 13.42 13.77 \n", 131 | "4 86.05951 67 18.42 18.15 18.37 15.18 \n", 132 | "\n", 133 | " p_0hr_02 p_0hr_03 yf_6hr_01 yf_6hr_02 yf_6hr_03 \n", 134 | "0 15.57 17.26 16.94 16.98 16.56 \n", 135 | "1 14.85 15.63 16.71 15.65 16.27 \n", 136 | "2 14.89 12.53 14.42 14.03 10.81 \n", 137 | "3 12.42 13.31 12.99 12.99 12.95 \n", 138 | "4 17.02 17.91 17.76 17.67 15.15 " 139 | ] 140 | }, 141 | "execution_count": 1, 142 | "metadata": {}, 143 | "output_type": "execute_result" 144 | } 145 | ], 146 | "source": [ 147 | "import os\n", 148 | "import pandas as pd\n", 149 | "import numpy as np\n", 150 | "from scipy import stats\n", 151 | "import matplotlib.pyplot as plt\n", 152 | "from statsmodels.sandbox.stats.multicomp import multipletests\n", 153 | "\n", 154 | "%matplotlib inline\n", 155 | "\n", 156 | "INDIR = \"./input_data/\"\n", 157 | "datafile = \"ave_log2_modc_ae_2012.txt\"\n", 158 | "data = pd.read_table(os.path.join(INDIR + datafile))\n", 159 | "data.head()" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 2, 165 | "metadata": { 166 | "collapsed": false 167 | }, 168 | "outputs": [ 169 | { 170 | "name": "stdout", 171 | "output_type": "stream", 172 | "text": [ 173 | "('groups: ', (['p_0hr_01', 'p_0hr_02', 'p_0hr_03'], ['mock_6hr_01', 'mock_6hr_02', 'mock_6hr_03'], ['yf_6hr_01', 'yf_6hr_02', 'yf_6hr_03']))\n" 174 | ] 175 | } 176 | ], 177 | "source": [ 178 | "# get group definition\n", 179 | "# This can be from user supplied file.\n", 180 | "\n", 181 | "# manually define here for this example dataset\n", 182 | "header = [x for x in data]\n", 183 | "baseline = [x for x in header[2:] if '0hr' in x]\n", 184 | "mock = [x for x in header[2:] if 'mock_6hr' in x]\n", 185 | "yfv = [x for x in header[2:] if 'yf_6hr' in x]\n", 186 | "\n", 187 | "print(\"groups: \", (baseline, mock, yfv))" 188 | ] 189 | }, 190 | { 191 | "cell_type": "markdown", 192 | "metadata": {}, 193 | "source": [ 194 | "## Compare two groups\n", 195 | "Student's t-test is a parametric method commonly used to compare two groups. But the method assume normal distribution of data. If data contain a lot of missing values, nonparametric methods are better suited, e.g. Mann-Whitney U test (stats.mannwhitneyu).\n", 196 | "A paired test should be used on repeated measurements (e.g. stats.ttest_rel)." 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 3, 202 | "metadata": { 203 | "collapsed": false 204 | }, 205 | "outputs": [], 206 | "source": [ 207 | "number_features = data.shape[0]\n", 208 | "# this line select columns by sample names\n", 209 | "data_baseline, data_mock, data_yfv = data[baseline].values, data[mock].values, data[yfv].values\n", 210 | "\n", 211 | "# compare yfv and baseline\n", 212 | "t_scores, p_values, fdrs = [], [], []\n", 213 | "for ii in range(number_features):\n", 214 | " # this is t-test on independent samples\n", 215 | " t,p = stats.ttest_ind(data_yfv[ii,:], data_baseline[ii,:])\n", 216 | " # nan may be returned\n", 217 | " if np.isnan(t):\n", 218 | " t,p = 0,1\n", 219 | " t_scores.append(t)\n", 220 | " p_values.append(p)\n", 221 | " \n", 222 | "# Compute FDR using Benjamini-Hochberg procedure\n", 223 | "fdrs = multipletests(p_values, method = 'fdr_bh')[1]\n", 224 | "\n", 225 | "#sort output\n", 226 | "new = []\n", 227 | "for ii in range(number_features):\n", 228 | " mz, rtime = data.values[ii, :2]\n", 229 | " new.append([p_values[ii]] + [str(x) for x in [\n", 230 | " mz, rtime, p_values[ii], t_scores[ii], fdrs[ii], 'row_'+str(ii+1)]])\n", 231 | "new.sort()\n", 232 | "\n", 233 | "# output format \n", 234 | "# mz, rtime, p, t, row_num, \n", 235 | "s = '\\t'.join(['m/z', 'retention_time', 'p-value', 't-score', 'FDR_BH'\n", 236 | " 'row_number']) + '\\n'\n", 237 | "for L in new:\n", 238 | " s += '\\t'.join(L[1:]) + '\\n'\n", 239 | " \n", 240 | "with open(\"ttest_yfv_baseline_\" + datafile, \"w\") as file:\n", 241 | " file.write(s)" 242 | ] 243 | }, 244 | { 245 | "cell_type": "markdown", 246 | "metadata": {}, 247 | "source": [ 248 | "## Multiple group comparison using ANOVA\n" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": 4, 254 | "metadata": { 255 | "collapsed": true 256 | }, 257 | "outputs": [], 258 | "source": [ 259 | "# compare 3 groups\n", 260 | "t_scores, p_values, fdrs = [], [], []\n", 261 | "for ii in range(number_features):\n", 262 | " # t is actually f-score here\n", 263 | " t,p = stats.f_oneway(data_yfv[ii,:], data_mock[ii,:], data_baseline[ii,:])\n", 264 | " # nan may be returned\n", 265 | " if np.isnan(t):\n", 266 | " t,p = 0,1\n", 267 | " t_scores.append(t)\n", 268 | " p_values.append(p)\n", 269 | " \n", 270 | "# Compute FDR using Benjamini-Hochberg procedure\n", 271 | "fdrs = multipletests(p_values, method = 'fdr_bh')[1]\n", 272 | "\n", 273 | "#sort output\n", 274 | "new = []\n", 275 | "for ii in range(number_features):\n", 276 | " mz, rtime = data.values[ii, :2]\n", 277 | " new.append([p_values[ii]] + [str(x) for x in [\n", 278 | " mz, rtime, p_values[ii], t_scores[ii], fdrs[ii], 'row_'+str(ii+1)]])\n", 279 | "new.sort()\n", 280 | "\n", 281 | "# output format \n", 282 | "# mz, rtime, p, t, row_num, \n", 283 | "s = '\\t'.join(['m/z', 'retention_time', 'p-value', 'f-score', 'FDR_BH'\n", 284 | " 'row_number']) + '\\n'\n", 285 | "for L in new:\n", 286 | " s += '\\t'.join(L[1:]) + '\\n'\n", 287 | " \n", 288 | "with open(\"ANOVA_\" + datafile, \"w\") as file:\n", 289 | " file.write(s)" 290 | ] 291 | } 292 | ], 293 | "metadata": { 294 | "kernelspec": { 295 | "display_name": "Python 2", 296 | "language": "python", 297 | "name": "python2" 298 | }, 299 | "language_info": { 300 | "codemirror_mode": { 301 | "name": "ipython", 302 | "version": 2 303 | }, 304 | "file_extension": ".py", 305 | "mimetype": "text/x-python", 306 | "name": "python", 307 | "nbconvert_exporter": "python", 308 | "pygments_lexer": "ipython2", 309 | "version": "2.7.13" 310 | } 311 | }, 312 | "nbformat": 4, 313 | "nbformat_minor": 2 314 | } 315 | -------------------------------------------------------------------------------- /notebooks/khipu2023_custom_adduct_isotope_patterns.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "b81701a3-54b9-4e98-8ae2-f2e28b56fd28", 6 | "metadata": {}, 7 | "source": [ 8 | "# Demo using custom patterns for isotopes or adducts in khipu\n", 9 | "\n", 10 | "- Goal: how to use custom ion patterns for isotopes or adducts in khipu \n", 11 | "- Citation: Li, S. and Zheng, S., 2023. Generalized tree structure to annotate untargeted metabolomics and stable isotope tracing data. Analytical chemistry, 95(15), pp.6212-6217. (https://pubs.acs.org/doi/10.1021/acs.analchem.2c05810)\n", 12 | "- Original repo: https://github.com/shuzhao-li-lab/khipu\n", 13 | "\n", 14 | "\n", 15 | "SL 2023-03-02" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "execution_count": 1, 21 | "id": "0cce130b-0fb4-4b4e-bed7-a162330e20ac", 22 | "metadata": {}, 23 | "outputs": [], 24 | "source": [ 25 | "!pip install -q --upgrade khipu-metabolomics" 26 | ] 27 | }, 28 | { 29 | "cell_type": "code", 30 | "execution_count": 2, 31 | "id": "7641973d-0ec9-4858-a31f-11f006c20698", 32 | "metadata": {}, 33 | "outputs": [], 34 | "source": [ 35 | "from khipu.utils import *\n", 36 | "from khipu.epdsConstructor import epdsConstructor" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 3, 42 | "id": "765e12f7-6880-4c2c-9e93-ab27ff633cb8", 43 | "metadata": {}, 44 | "outputs": [ 45 | { 46 | "name": "stdout", 47 | "output_type": "stream", 48 | "text": [ 49 | "['In', 'Out', 'PROTON', '_', '_dh', '_exit_code', '_i', '_i1', '_i2', '_i3', '_ih', '_ii', '_iii', '_oh', 'add_data_to_tag', 'adduct_search_patterns', 'adduct_search_patterns_neg', 'assign_masstrack_ids_in_khipu', 'build_centurion_tree', 'electron', 'epdsConstructor', 'exit', 'export_json_trees', 'export_tsv_trees', 'extended_adducts', 'find_all_matches_centurion_indexed_list', 'find_trees_by_datatag', 'find_trees_by_datatag_list', 'get_adduct_edge_pairs', 'get_ipython', 'get_isotope_pattern_name', 'get_isotopic_edge_pairs', 'is_datatag_in_tree', 'isotope_search_patterns', 'json', 'make_edge_tag', 'make_expected_adduct_index', 'make_peak_dict', 'make_peak_tag', 'np', 'nx', 'peaks_to_networks', 'quit', 'read_features_from_text', 'realign_isotopes', 'realign_isotopes_reverse', 'relabel_dict', 'rt_compared_by_values', 'rt_matched_by_tolerance']\n" 50 | ] 51 | } 52 | ], 53 | "source": [ 54 | "# inspect variables in current scope\n", 55 | "\n", 56 | "print([x for x in dir() if x[:2] != '__'])" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 4, 62 | "id": "dbd56ad6-085c-4e6e-aac2-4f50c7bd2370", 63 | "metadata": {}, 64 | "outputs": [ 65 | { 66 | "name": "stdout", 67 | "output_type": "stream", 68 | "text": [ 69 | "Help on function read_features_from_text in module khipu.utils:\n", 70 | "\n", 71 | "read_features_from_text(text_table, id_col=0, mz_col=1, rtime_col=2, intensity_cols=(3, 6), delimiter='\\t')\n", 72 | " Read a text feature table into a list of features.\n", 73 | " Input\n", 74 | " -----\n", 75 | " text_table: Tab delimited feature table read as text. First line as header.\n", 76 | " Recommended col 0 for ID, col 1 for m/z, col 2 for rtime.\n", 77 | " id_col: column for id. If feature ID is not given, row_number is used as ID.\n", 78 | " mz_col: column for m/z.\n", 79 | " rtime_col: column for retention time.\n", 80 | " intensity_cols: range of columns for intensity values. E.g. (3,5) includes only col 3 and 4.\n", 81 | " Return\n", 82 | " ------\n", 83 | " List of features: [{'id': '', 'mz': 0, 'rtime': 0, \n", 84 | " intensities: [], 'representative_intensity': 0, ...}, \n", 85 | " ...], \n", 86 | " where representative_intensity is mean value.\n", 87 | "\n" 88 | ] 89 | } 90 | ], 91 | "source": [ 92 | "help(read_features_from_text)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 5, 98 | "id": "a0060c10-e22f-4350-90ef-3a2ebb1b51e9", 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "name": "stdout", 103 | "output_type": "stream", 104 | "text": [ 105 | "table header looks like: ['id_number', 'mz', 'rtime', 'cSelectivity', 'goodness_fitting', 'snr', 'posi-Yeast-12C14N-a', 'posi-Yeast-12C14N-b', 'posi-Yeast-12C14N-c']\n", 106 | "Read 14051 feature lines\n" 107 | ] 108 | } 109 | ], 110 | "source": [ 111 | "# The input file, yeast_pos_full.tsv, from khipu GitHub repo.\n", 112 | "\n", 113 | "features = read_features_from_text(open('yeast_pos_full.tsv').read(), \n", 114 | " id_col=0, mz_col=1, rtime_col=2, intensity_cols=(6, 9), delimiter='\\t')" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 6, 120 | "id": "890ab3a9-fa72-484b-ab42-af18e44b398e", 121 | "metadata": {}, 122 | "outputs": [ 123 | { 124 | "data": { 125 | "text/plain": [ 126 | "{'id': 'F100',\n", 127 | " 'mz': 260.1688,\n", 128 | " 'rtime': 185.63,\n", 129 | " 'intensities': [943328.0, 666713.0, 671035.0],\n", 130 | " 'representative_intensity': 760358.6666666666}" 131 | ] 132 | }, 133 | "execution_count": 6, 134 | "metadata": {}, 135 | "output_type": "execute_result" 136 | } 137 | ], 138 | "source": [ 139 | "features[99]" 140 | ] 141 | }, 142 | { 143 | "cell_type": "markdown", 144 | "id": "81c404a6-3074-45d4-a2b9-92ad01e44c11", 145 | "metadata": {}, 146 | "source": [ 147 | "### Current patterns" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": 7, 153 | "id": "ebd486d1-140c-4c93-8bef-b9446f00fd7b", 154 | "metadata": {}, 155 | "outputs": [ 156 | { 157 | "name": "stdout", 158 | "output_type": "stream", 159 | "text": [ 160 | "[(21.982, 'Na/H'), (41.026549, 'ACN'), (35.9767, 'HCl'), (37.955882, 'K/H')] \n", 161 | "\n", 162 | "[(1.003355, '13C/12C', (0, 0.8)), (2.00671, '13C/12C*2', (0, 0.8)), (3.010065, '13C/12C*3', (0, 0.8)), (4.01342, '13C/12C*4', (0, 0.8)), (5.016775, '13C/12C*5', (0, 0.8)), (6.02013, '13C/12C*6', (0, 0.8)), (7.023485, '13C/12C*7', (0, 0.8)), (8.02684, '13C/12C*8', (0, 0.8)), (9.030195, '13C/12C*9', (0, 0.8)), (10.03355, '13C/12C*10', (0, 0.8)), (11.036905, '13C/12C*11', (0, 0.8)), (12.04026, '13C/12C*12', (0, 0.8))] \n", 163 | "\n", 164 | "[(1.0078, 'H'), (-1.0078, '-H'), (10.991, 'Na/H, double charged'), (0.5017, '13C/12C, double charged'), (117.02655, '-NH3'), (17.02655, 'NH3'), (-18.0106, '-H2O'), (18.0106, 'H2O'), (18.033823, 'NH4'), (27.01089904, 'HCN'), (37.94694, 'Ca/H2'), (32.026215, 'MeOH'), (43.96389, 'Na2/H2'), (67.987424, 'NaCOOH'), (83.961361, 'KCOOH'), (97.96737927, 'H2SO4'), (97.97689507, 'H3PO4')] \n", 165 | "\n" 166 | ] 167 | } 168 | ], 169 | "source": [ 170 | "for x in (adduct_search_patterns, isotope_search_patterns, extended_adducts):\n", 171 | " print(x, '\\n')" 172 | ] 173 | }, 174 | { 175 | "cell_type": "markdown", 176 | "id": "cb3f7138-9509-4ddd-831c-c3019c448aa3", 177 | "metadata": {}, 178 | "source": [ 179 | "### Redefine custom patterns" 180 | ] 181 | }, 182 | { 183 | "cell_type": "code", 184 | "execution_count": 8, 185 | "id": "9612a9c7-8f93-40bb-be02-4f7786cb53b2", 186 | "metadata": {}, 187 | "outputs": [], 188 | "source": [ 189 | "isotope_search_patterns = [(1.003355, '13C/12C', (0, 0.8)), (2.00671, '13C/12C*2', (0, 0.8))]\n", 190 | "\n", 191 | "extended_adducts = [(1.0078, 'H'), (-1.0078, '-H'), (10.991, 'Na/H, double charged'), (0.5017, '13C/12C, double charged'), \n", 192 | " (117.02655, '-NH3'), (17.02655, 'NH3'), (-18.0106, '-H2O'), (18.0106, 'H2O'),\n", 193 | " (55.96644655, 'KOH'), (60.02112937, 'C2H4O2'), \n", 194 | " (62.00039, 'H2CO3'), (62.9956429, 'HNO3'), (75.91176374, '2K-2H'),]" 195 | ] 196 | }, 197 | { 198 | "cell_type": "markdown", 199 | "id": "9999533f-60bc-4a96-aa42-0bc878464029", 200 | "metadata": {}, 201 | "source": [ 202 | "### Annotate features using custom patterns" 203 | ] 204 | }, 205 | { 206 | "cell_type": "code", 207 | "execution_count": 9, 208 | "id": "2802b63b-9132-43b3-a363-99fd7cf859a8", 209 | "metadata": {}, 210 | "outputs": [ 211 | { 212 | "name": "stdout", 213 | "output_type": "stream", 214 | "text": [ 215 | "Help on class epdsConstructor in module khipu.epdsConstructor:\n", 216 | "\n", 217 | "class epdsConstructor(builtins.object)\n", 218 | " | epdsConstructor(peak_list, mode='pos')\n", 219 | " | \n", 220 | " | Wrapper class to organize a list of peaks/features into a list of empirical compounds.\n", 221 | " | \n", 222 | " | To-dos:\n", 223 | " | add support of user input formats where rtime isn't precise or unavailable.\n", 224 | " | add options of coelution_function (see mass2chem.epdsConstructor )\n", 225 | " | \n", 226 | " | Methods defined here:\n", 227 | " | \n", 228 | " | __init__(self, peak_list, mode='pos')\n", 229 | " | Parameters\n", 230 | " | ----------\n", 231 | " | peak_list : [{'parent_masstrace_id': 1670, 'mz': 133.09702315984987, 'rtime': 654, 'height': 14388.0, 'id': 555}, ...]\n", 232 | " | mz_tolerance_ppm: ppm tolerance in examining m/z patterns.\n", 233 | " | \n", 234 | " | peaks_to_epdDict(self, isotope_search_patterns, adduct_search_patterns, extended_adducts, mz_tolerance_ppm, rt_tolerance=2)\n", 235 | " | Parameters\n", 236 | " | ----------\n", 237 | " | isotope_search_patterns : exact list used to retrieve the subnetworks. E.g. \n", 238 | " | [ (1.003355, '13C/12C', (0, 0.8)),\n", 239 | " | (2.00671, '13C/12C*2', (0, 0.8)),\n", 240 | " | (3.010065, '13C/12C*3', (0, 0.8)),\n", 241 | " | (4.01342, '13C/12C*4', (0, 0.8)),\n", 242 | " | (5.016775, '13C/12C*5', (0, 0.8)),\n", 243 | " | (6.02013, '13C/12C*6', (0, 0.8)),]\n", 244 | " | \n", 245 | " | adduct_search_patterns : exact list used to retrieve the subnetworks. \n", 246 | " | It's not recommended to have a long list here, as it's better to search additional \n", 247 | " | in-source modifications after empCpds are seeded. Example adduct_search_patterns list: \n", 248 | " | [ (1.0078, 'H'), \n", 249 | " | (21.9820, 'Na/H'), \n", 250 | " | (41.026549, 'Acetonitrile')]\n", 251 | " | adduct_search_patterns is dependent on ionization, but the option is left open for other functions.\n", 252 | " | \n", 253 | " | mz_tolerance_ppm : ppm tolerance in examining m/z patterns.\n", 254 | " | rt_tolerance : tolerance threshold for deviation in retetion time, arbitrary unit depending on input data.\n", 255 | " | Default intended as 2 seconds.\n", 256 | " | \n", 257 | " | Returns\n", 258 | " | -------\n", 259 | " | epdDict : A dictionary of empCpds (empirical compounds) indexed by IDs ('interim_id').\n", 260 | " | Not including singletons.\n", 261 | " | \n", 262 | " | ----------------------------------------------------------------------\n", 263 | " | Data descriptors defined here:\n", 264 | " | \n", 265 | " | __dict__\n", 266 | " | dictionary for instance variables (if defined)\n", 267 | " | \n", 268 | " | __weakref__\n", 269 | " | list of weak references to the object (if defined)\n", 270 | "\n" 271 | ] 272 | } 273 | ], 274 | "source": [ 275 | "help(epdsConstructor)" 276 | ] 277 | }, 278 | { 279 | "cell_type": "code", 280 | "execution_count": 13, 281 | "id": "e713883c-8369-47a4-92a1-c43f7f4dfbb4", 282 | "metadata": {}, 283 | "outputs": [ 284 | { 285 | "name": "stdout", 286 | "output_type": "stream", 287 | "text": [ 288 | "\n", 289 | "\n", 290 | "Initial khipu search grid: \n", 291 | " M+H+ Na/H HCl K/H ACN\n", 292 | "M0 1.007276 22.989276 36.983976 38.963158 42.033825\n", 293 | "13C/12C 2.010631 23.992631 37.987331 39.966513 43.037180\n", 294 | "13C/12C*2 3.013986 24.995986 38.990686 40.969868 44.040535\n", 295 | "\n", 296 | "\n", 297 | "Downsized input network with 64 features, highest peak at F6410 \n", 298 | "Warning no match in isotope_pattern: 3.0108999999999924\n", 299 | "Unknown isotope match ~ (268.2636, 'F469')\n", 300 | "Downsized input network with 297 features, highest peak at F8433 \n", 301 | "Warning no match in isotope_pattern: 44.03710000000001\n", 302 | "Unknown isotope match ~ (376.2592, 'F6829')\n", 303 | "Warning no match in isotope_pattern: 59.9692\n", 304 | "Unknown isotope match ~ (392.1913, 'F8433')\n", 305 | "Warning no match in isotope_pattern: 60.97249999999997\n", 306 | "Unknown isotope match ~ (393.1946, 'F8570')\n", 307 | "Warning no match in isotope_pattern: 61.0634\n", 308 | "Unknown isotope match ~ (393.2855, 'F8615')\n", 309 | "Warning no match in isotope_pattern: 61.97429999999997\n", 310 | "Unknown isotope match ~ (394.1964, 'F8703')\n", 311 | "Warning no match in isotope_pattern: 62.066599999999994\n", 312 | "Unknown isotope match ~ (394.2887, 'F3701')\n", 313 | "Warning no match in isotope_pattern: 65.01490000000001\n", 314 | "Unknown isotope match ~ (397.237, 'F3971')\n", 315 | "Warning no match in isotope_pattern: 69.04589999999996\n", 316 | "Unknown isotope match ~ (401.268, 'F4387')\n", 317 | "Warning no match in isotope_pattern: 70.04849999999999\n", 318 | "Unknown isotope match ~ (402.2706, 'F4490')\n", 319 | "Warning no match in isotope_pattern: 88.00059999999996\n", 320 | "Unknown isotope match ~ (420.2227, 'F6247')\n", 321 | "Warning no match in isotope_pattern: 89.0949\n", 322 | "Unknown isotope match ~ (421.317, 'F6424')\n", 323 | "Warning no match in isotope_pattern: 100.05180000000001\n", 324 | "Unknown isotope match ~ (432.2739, 'F7583')\n", 325 | "Warning no match in isotope_pattern: 198.08969999999994\n", 326 | "Unknown isotope match ~ (530.3118, 'F8580')\n", 327 | "Warning no match in isotope_pattern: 256.1312\n", 328 | "Unknown isotope match ~ (588.3533, 'F8903')\n", 329 | "Warning no match in isotope_pattern: 3.0107999999999606\n", 330 | "Unknown isotope match ~ (272.2222, 'F795')\n", 331 | "Warning no match in isotope_pattern: 3.010600000000011\n", 332 | "Unknown isotope match ~ (272.2586, 'F806')\n", 333 | "Downsized input network with 47 features, highest peak at F2646 \n", 334 | "Downsized input network with 30 features, highest peak at F651 \n", 335 | "Warning no match in isotope_pattern: 3.0108000000000175\n", 336 | "Unknown isotope match ~ (274.1802, 'F897')\n", 337 | "Downsized input network with 16 features, highest peak at F3524 \n", 338 | "Downsized input network with 23 features, highest peak at F712 \n", 339 | "Downsized input network with 39 features, highest peak at F3227 \n", 340 | "Downsized input network with 21 features, highest peak at F4170 \n", 341 | "Warning no match in isotope_pattern: 3.0108999999999924\n", 342 | "Unknown isotope match ~ (286.2744, 'F1779')\n", 343 | "Downsized input network with 32 features, highest peak at F3234 \n", 344 | "Warning no match in isotope_pattern: 3.011000000000024\n", 345 | "Unknown isotope match ~ (306.1549, 'F3393')\n", 346 | "Warning no match in isotope_pattern: 4.014200000000017\n", 347 | "Unknown isotope match ~ (307.1581, 'F3500')\n" 348 | ] 349 | }, 350 | { 351 | "name": "stderr", 352 | "output_type": "stream", 353 | "text": [ 354 | "/opt/conda/lib/python3.10/site-packages/scipy/optimize/_minpack_py.py:833: OptimizeWarning: Covariance of the parameters could not be estimated\n", 355 | " warnings.warn('Covariance of the parameters could not be estimated',\n" 356 | ] 357 | }, 358 | { 359 | "name": "stdout", 360 | "output_type": "stream", 361 | "text": [ 362 | "Warning no match in isotope_pattern: 3.0109999999999673\n", 363 | "Unknown isotope match ~ (356.3162, 'F4242')\n", 364 | "Warning no match in isotope_pattern: 4.0142999999999915\n", 365 | "Unknown isotope match ~ (357.3195, 'F4416')\n", 366 | "Warning no match in isotope_pattern: 3.0108999999999924\n", 367 | "Unknown isotope match ~ (398.363, 'F4120')\n", 368 | "Warning no match in isotope_pattern: 4.0142999999999915\n", 369 | "Unknown isotope match ~ (399.3664, 'F4211')\n", 370 | "Downsized input network with 25 features, highest peak at F4327 \n", 371 | "Downsized input network with 17 features, highest peak at F6770 \n", 372 | "Downsized input network with 18 features, highest peak at F4422 \n", 373 | "Downsized input network with 17 features, highest peak at F4461 \n", 374 | "Warning no match in isotope_pattern: 41.02710000000002\n", 375 | "Unknown isotope match ~ (399.2345, 'F4157')\n", 376 | "Warning no match in isotope_pattern: 3.0107000000000426\n", 377 | "Unknown isotope match ~ (446.2533, 'F4949')\n", 378 | "Warning no match in isotope_pattern: 4.014499999999998\n", 379 | "Unknown isotope match ~ (447.2571, 'F5051')\n", 380 | "Downsized input network with 40 features, highest peak at F8756 \n", 381 | "Downsized input network with 24 features, highest peak at F4664 \n", 382 | "Downsized input network with 34 features, highest peak at F6243 \n", 383 | "Downsized input network with 35 features, highest peak at F9075 \n", 384 | "Warning no match in isotope_pattern: 0.0020999999999844476\n", 385 | "Unknown isotope match ~ (363.1726, 'F5136')\n", 386 | "Warning no match in isotope_pattern: 3.008199999999988\n", 387 | "Unknown isotope match ~ (452.1574, 'F5507')\n", 388 | "Downsized input network with 24 features, highest peak at F6117 \n", 389 | "Warning no match in isotope_pattern: 0.002200000000016189\n", 390 | "Unknown isotope match ~ (417.2884, 'F5973')\n", 391 | "Warning no match in isotope_pattern: 3.009900000000016\n", 392 | "Unknown isotope match ~ (374.196, 'F11023')\n", 393 | "Downsized input network with 30 features, highest peak at F10939 \n", 394 | "Warning no match in isotope_pattern: 0.002599999999972624\n", 395 | "Unknown isotope match ~ (502.3855, 'F6341')\n", 396 | "Downsized input network with 29 features, highest peak at F9872 \n", 397 | "Warning no match in isotope_pattern: 3.0103000000000293\n", 398 | "Unknown isotope match ~ (426.2232, 'F6884')\n", 399 | "Downsized input network with 16 features, highest peak at F6838 \n", 400 | "Warning no match in isotope_pattern: 3.0084000000000515\n", 401 | "Unknown isotope match ~ (387.3038, 'F7950')\n", 402 | "Warning no match in isotope_pattern: 3.0079999999999814\n", 403 | "Unknown isotope match ~ (435.2885, 'F7870')\n", 404 | "Warning no match in isotope_pattern: 0.0027000000000043656\n", 405 | "Unknown isotope match ~ (475.2973, 'F7777')\n", 406 | "Downsized input network with 19 features, highest peak at F11321 \n", 407 | "Warning no match in isotope_pattern: 3.0083999999999946\n", 408 | "Unknown isotope match ~ (395.1562, 'F3744')\n", 409 | "Warning no match in isotope_pattern: 3.0091999999999643\n", 410 | "Unknown isotope match ~ (811.3642, 'F9628')\n", 411 | "Warning no match in isotope_pattern: 3.009999999999991\n", 412 | "Unknown isotope match ~ (548.4432, 'F10192')\n", 413 | "Warning no match in isotope_pattern: 5.01419999999996\n", 414 | "Unknown isotope match ~ (550.4474, 'F10333')\n", 415 | "Warning no match in isotope_pattern: 3.0068999999999733\n", 416 | "Unknown isotope match ~ (870.3901, 'F10058')\n", 417 | "Warning no match in isotope_pattern: 3.009900000000016\n", 418 | "Unknown isotope match ~ (621.4826, 'F13019')\n", 419 | "Warning no match in isotope_pattern: 3.005899999999997\n", 420 | "Unknown isotope match ~ (861.3589, 'F13750')\n", 421 | "\n", 422 | "\n", 423 | " ~~~~~~ Got 2161 khipus, with 7819 features ~~~~~~~ \n", 424 | "\n", 425 | "\n" 426 | ] 427 | } 428 | ], 429 | "source": [ 430 | "ECON = epdsConstructor(features, mode='pos')\n", 431 | "\n", 432 | "khipu_dict = ECON.peaks_to_epdDict(\n", 433 | " isotope_search_patterns = isotope_search_patterns,\n", 434 | " adduct_search_patterns = adduct_search_patterns,\n", 435 | " extended_adducts = extended_adducts,\n", 436 | " mz_tolerance_ppm=5, \n", 437 | " rt_tolerance=2, \n", 438 | " )" 439 | ] 440 | }, 441 | { 442 | "cell_type": "code", 443 | "execution_count": 14, 444 | "id": "d55c9312-9158-4101-b295-bc4641631bea", 445 | "metadata": {}, 446 | "outputs": [ 447 | { 448 | "data": { 449 | "text/plain": [ 450 | "('kp100_313.2617',\n", 451 | " {'interim_id': 'kp100_313.2617',\n", 452 | " 'neutral_formula_mass': 313.26169603322995,\n", 453 | " 'neutral_formula': None,\n", 454 | " 'Database_referred': [],\n", 455 | " 'identity': [],\n", 456 | " 'MS1_pseudo_Spectra': [{'id': 'F683',\n", 457 | " 'mz': 315.2723,\n", 458 | " 'rtime': 159.79,\n", 459 | " 'intensities': [25028245.0, 25883849.0, 24629612.0],\n", 460 | " 'representative_intensity': 25180568.666666668,\n", 461 | " 'parent_masstrack_id': '315.2723',\n", 462 | " 'isotope': '13C/12C',\n", 463 | " 'modification': 'M+H+',\n", 464 | " 'ion_relation': '13C/12C,M+H+'},\n", 465 | " {'id': 'F578',\n", 466 | " 'mz': 314.269,\n", 467 | " 'rtime': 159.79,\n", 468 | " 'intensities': [133991630.0, 135907142.0, 137575102.0],\n", 469 | " 'representative_intensity': 135824624.66666666,\n", 470 | " 'parent_masstrack_id': '314.269',\n", 471 | " 'isotope': 'M0',\n", 472 | " 'modification': 'M+H+',\n", 473 | " 'ion_relation': 'M0,M+H+'}],\n", 474 | " 'MS2_Spectra': []})" 475 | ] 476 | }, 477 | "execution_count": 14, 478 | "metadata": {}, 479 | "output_type": "execute_result" 480 | } 481 | ], 482 | "source": [ 483 | "list(khipu_dict.items())[99]" 484 | ] 485 | }, 486 | { 487 | "cell_type": "markdown", 488 | "id": "50904005-9c8a-49bb-9a48-96708adde3aa", 489 | "metadata": {}, 490 | "source": [ 491 | "# Conclusion\n", 492 | "\n", 493 | "This notebook shows how to use khipu.epdsConstructor.epdsConstructor to generate a dictionary of khipus (empCpds).\n", 494 | "The epdsConstructor.peaks_to_epdDict() function takes custom patterns." 495 | ] 496 | } 497 | ], 498 | "metadata": { 499 | "kernelspec": { 500 | "display_name": "Python 3 (ipykernel)", 501 | "language": "python", 502 | "name": "python3" 503 | }, 504 | "language_info": { 505 | "codemirror_mode": { 506 | "name": "ipython", 507 | "version": 3 508 | }, 509 | "file_extension": ".py", 510 | "mimetype": "text/x-python", 511 | "name": "python", 512 | "nbconvert_exporter": "python", 513 | "pygments_lexer": "ipython3", 514 | "version": "3.10.5" 515 | } 516 | }, 517 | "nbformat": 4, 518 | "nbformat_minor": 5 519 | } 520 | -------------------------------------------------------------------------------- /notebooks/pcpfm_Bowen2023_analysis.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Analyzing the cardiomyocyte data in asari pipeline\n", 8 | "\n", 9 | "- Goal: data analysis to find sunitinib metabolites in Bowen et al 2023, published in the asari pipeline (pcpfm) paper\n", 10 | "- Mitchell, J.M., Chi, Y., Thapa, M., Pang, Z., Xia, J. and Li, S., 2024. Common data models to streamline metabolomics processing and annotation, and implementation in a Python pipeline. PLOS Computational Biology, 20(6), p.e1011912. (https://doi.org/10.1371/journal.pcbi.1011912)\n", 11 | "- Original repo: https://github.com/shuzhao-li-lab/PythonCentricPipelineForMetabolomics\n" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": null, 17 | "metadata": {}, 18 | "outputs": [], 19 | "source": [ 20 | "# lets download the example dataset\n", 21 | "# you can download the zip from here : \n", 22 | "# lets assume you downloaded it to ~/Downloads/ and unziped it" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 7, 28 | "metadata": {}, 29 | "outputs": [], 30 | "source": [ 31 | "# now we need to make the sequence file as input to the pipeline\n", 32 | "\n", 33 | "import pandas as pd\n", 34 | "import os\n", 35 | "\n", 36 | "bowen_sequence = []\n", 37 | "downloads_path = os.path.abspath(os.path.expanduser(\"~/Downloads/Bowen_CellData/\"))\n", 38 | "for f in os.listdir(downloads_path):\n", 39 | " file_path = os.path.join(downloads_path, f)\n", 40 | " filename = os.path.basename(file_path).rstrip(\".mzML\")\n", 41 | " if \"blank\" in filename:\n", 42 | " sample_type = \"Blank\"\n", 43 | " else:\n", 44 | " sample_type = \"Unknown\"\n", 45 | " bowen_sequence.append({\n", 46 | " \"Filepath\": file_path,\n", 47 | " \"File Name\": filename,\n", 48 | " \"Method\": \"Unknown\",\n", 49 | " \"Sample Type\": sample_type\n", 50 | " })\n", 51 | "pd.DataFrame(bowen_sequence).to_csv(\"bowen_cell_sequence.csv\", index=False)\n" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 8, 57 | "metadata": {}, 58 | "outputs": [ 59 | { 60 | "data": { 61 | "text/plain": [ 62 | "'/Users/mitchjo/pcpfm_tutorials/notebooks'" 63 | ] 64 | }, 65 | "execution_count": 8, 66 | "metadata": {}, 67 | "output_type": "execute_result" 68 | } 69 | ], 70 | "source": [ 71 | "# the below block will run the pcpfm analysis. This relies upon python3 being on your $PATH.\n", 72 | "\n", 73 | "# if not, you will need to open the terminal and cd to this directory:\n", 74 | "\n", 75 | "os.getcwd()\n", 76 | "\n", 77 | "# run the command to add it to $PATH and do it manually using the commands below:\n", 78 | "\n", 79 | "# else you can use the block below to do it 'inline'" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 9, 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "name": "stderr", 89 | "output_type": "stream", 90 | "text": [ 91 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 92 | " warnings.warn(\n", 93 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 94 | " warnings.warn(\n", 95 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 96 | " warnings.warn(\n" 97 | ] 98 | }, 99 | { 100 | "name": "stdout", 101 | "output_type": "stream", 102 | "text": [ 103 | "\n", 104 | "\n", 105 | "~~~~~~~ Hello from Asari (1.12.8) ~~~~~~~~~\n", 106 | "\n", 107 | "Working on ~~ /Users/mitchjo/pcpfm_tutorials/notebooks/bowen_cell/converted_acquisitions/ ~~ \n", 108 | "\n", 109 | "\n" 110 | ] 111 | }, 112 | { 113 | "name": "stderr", 114 | "output_type": "stream", 115 | "text": [ 116 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 117 | " warnings.warn(\n", 118 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 119 | " warnings.warn(\n", 120 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 121 | " warnings.warn(\n", 122 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 123 | " warnings.warn(\n", 124 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 125 | " warnings.warn(\n" 126 | ] 127 | }, 128 | { 129 | "name": "stdout", 130 | "output_type": "stream", 131 | "text": [ 132 | "Extracted AZ1.mzML to 1303 mass tracks.\n", 133 | "Extracted AZ15.mzML to 1427 mass tracks.\n", 134 | "Extracted AZ11.mzML to 1738 mass tracks.\n", 135 | "Extracted AZ13.mzML to 1613 mass tracks.\n", 136 | "Extracted AZ10.mzML to 1795 mass tracks.\n", 137 | "Extracted AZ16.mzML to 1560 mass tracks.\n", 138 | "Extracted AZ12.mzML to 1736 mass tracks.\n", 139 | "Extracted AZ14.mzML to 1571 mass tracks.\n", 140 | "Extracted AZ2.mzML to 1433 mass tracks.\n", 141 | "Extracted AZ4.mzML to 1516 mass tracks.\n", 142 | "Extracted AZ6.mzML to 1647 mass tracks.\n", 143 | "Extracted AZ17.mzML to 3104 mass tracks.\n", 144 | "Extracted AZ3.mzML to 1483 mass tracks.\n", 145 | "Extracted AZ7.mzML to 1583 mass tracks.\n", 146 | "Extracted AZ5.mzML to 2104 mass tracks.\n", 147 | "Extracted AZ18.mzML to 1824 mass tracks.\n", 148 | "Extracted AZ8.mzML to 1518 mass tracks.\n", 149 | "Extracted blank_cell_end.mzML to 1021 mass tracks.\n", 150 | "Extracted AZ9.mzML to 1466 mass tracks.\n", 151 | "Extracted blank_cell_start.mzML to 1064 mass tracks.\n", 152 | "\n", 153 | " The reference sample is:\n", 154 | " ||* AZ17 *||\n", 155 | "\n", 156 | "Max reference retention time is 840.44 at scan number 2245.\n", 157 | "\n", 158 | "Constructing MassGrid, ...\n", 159 | "\n", 160 | "Building composite mass tracks and calibrating retention time ...\n", 161 | "\n", 162 | " AZ17\n", 163 | "\t\tgood_reference_landmark_peaks: 292\n", 164 | " AZ1\n", 165 | "\tgood_landmark_peaks: 101\n", 166 | " AZ10\n", 167 | "\tgood_landmark_peaks: 147\n", 168 | " AZ11\n", 169 | "\tgood_landmark_peaks: 127\n", 170 | " AZ12\n", 171 | "\tgood_landmark_peaks: 127\n", 172 | " AZ13\n", 173 | "\tgood_landmark_peaks: 122\n", 174 | " AZ14\n", 175 | "\tgood_landmark_peaks: 125\n", 176 | " AZ15\n", 177 | "\tgood_landmark_peaks: 95\n", 178 | " AZ16\n", 179 | "\tgood_landmark_peaks: 106\n", 180 | " AZ18\n", 181 | "\tgood_landmark_peaks: 131\n", 182 | " AZ2\n", 183 | "\tgood_landmark_peaks: 102\n", 184 | " AZ3\n", 185 | "\tgood_landmark_peaks: 92\n", 186 | " AZ4\n", 187 | "\tgood_landmark_peaks: 101\n", 188 | " AZ5\n", 189 | "\tgood_landmark_peaks: 104\n", 190 | " AZ6\n", 191 | "\tgood_landmark_peaks: 95\n", 192 | " AZ7\n", 193 | "\tgood_landmark_peaks: 130\n", 194 | " AZ8\n", 195 | "\tgood_landmark_peaks: 109\n", 196 | " AZ9\n", 197 | "\tgood_landmark_peaks: 112\n", 198 | " blank_cell_end\n", 199 | "\tgood_landmark_peaks: 59\n", 200 | " blank_cell_start\n", 201 | "\tgood_landmark_peaks: 64\n", 202 | "\n", 203 | "Peak detection on 4695 composite mass tracks, ...\n", 204 | "\n" 205 | ] 206 | }, 207 | { 208 | "name": "stderr", 209 | "output_type": "stream", 210 | "text": [ 211 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 212 | " warnings.warn(\n", 213 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 214 | " warnings.warn(\n", 215 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 216 | " warnings.warn(\n", 217 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 218 | " warnings.warn(\n", 219 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 220 | " warnings.warn(\n" 221 | ] 222 | }, 223 | { 224 | "name": "stdout", 225 | "output_type": "stream", 226 | "text": [ 227 | "Mass accuracy was estimated on 212 matched values as -0.3 ppm.\n", 228 | "\n", 229 | "\n", 230 | "Multiple charges considered: [1, 2, 3]\n", 231 | "\n", 232 | "\n", 233 | "Khipu search grid: \n", 234 | " M+H+ Na/H HCl K/H ACN\n", 235 | "M0 1.007276 22.989276 36.983976 38.963158 42.033825\n", 236 | "13C/12C 2.010631 23.992631 37.987331 39.966513 43.037180\n", 237 | "13C/12C*2 3.013986 24.995986 38.990686 40.969868 44.040535\n", 238 | "Constructed 837 khipus in this round.\n", 239 | "\n", 240 | "\n", 241 | "Khipu search grid: \n", 242 | " M+H+, 2x charged ... ACN, 2x charged\n", 243 | "M0 0.503638 ... 21.520551\n", 244 | "13C/12C, 2x charged 1.005316 ... 22.022228\n", 245 | "13C/12C*2, 2x charged 1.506993 ... 22.523906\n", 246 | "\n", 247 | "[3 rows x 5 columns]\n", 248 | "Constructed 44 khipus in this round.\n", 249 | "\n", 250 | "\n", 251 | "Khipu search grid: \n", 252 | " M+H+, 3x charged ... ACN, 3x charged\n", 253 | "M0 0.335759 ... 14.682793\n", 254 | "13C/12C, 3x charged 0.670210 ... 15.017244\n", 255 | "13C/12C*2, 3x charged 1.004662 ... 15.351696\n", 256 | "\n", 257 | "[3 rows x 5 columns]\n", 258 | "Constructed 4 khipus in this round.\n", 259 | "\n", 260 | "\n", 261 | "\n", 262 | "\n", 263 | " ~~~~~~ Got 885 khipus, with 2342 features ~~~~~~~ \n", 264 | "\n", 265 | "\n", 266 | "\n", 267 | "Annotation of 3943 Empirical compounds was written to /Users/mitchjo/pcpfm_tutorials/notebooks/bowen_cell/asari_asari_project_214143654/Feature_annotation.tsv.\n", 268 | "\n", 269 | "\n", 270 | "\n", 271 | "Feature table (5199 x 20) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/bowen_cell/asari_asari_project_214143654/export/full_Feature_table.tsv.\n", 272 | "\n", 273 | "Filtered Feature table (3626 x 20) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/bowen_cell/asari_asari_project_214143654/preferred_Feature_table.tsv.\n", 274 | "\n", 275 | "Unique compound table (2576 x 20) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/bowen_cell/asari_asari_project_214143654/export/unique_compound__Feature_table.tsv.\n", 276 | "\n", 277 | "Removing temporary pickle files...\n" 278 | ] 279 | } 280 | ], 281 | "source": [ 282 | "%%bash\n", 283 | "\n", 284 | "pcpfm assemble -s bowen_cell_sequence.csv -j bowen_cell -o .\n", 285 | "pcpfm asari -i bowen_cell" 286 | ] 287 | }, 288 | { 289 | "cell_type": "code", 290 | "execution_count": 11, 291 | "metadata": {}, 292 | "outputs": [ 293 | { 294 | "name": "stderr", 295 | "output_type": "stream", 296 | "text": [ 297 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 298 | " warnings.warn(\n", 299 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 300 | " warnings.warn(\n", 301 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 302 | " warnings.warn(\n", 303 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 304 | " warnings.warn(\n" 305 | ] 306 | } 307 | ], 308 | "source": [ 309 | "%%bash \n", 310 | "\n", 311 | "# now lets blank_mask the samples and drop outliers\n", 312 | "\n", 313 | "pcpfm blank_masking --table_moniker preferred --new_moniker pref_blank_masked --blank_value Blank --sample_value Unknown --query_field \"Sample Type\" --blank_intensity_ratio 3 -i bowen_cell\n", 314 | "pcpfm drop_samples --table_moniker pref_blank_masked --new_moniker masked_pref_unknowns --drop_value Unknown --drop_field \"Sample Type\" --drop_others true -i bowen_cell\n", 315 | "\n", 316 | "pcpfm blank_masking --table_moniker full --new_moniker full_blank_masked --blank_value Blank --sample_value Unknown --query_field \"Sample Type\" --blank_intensity_ratio 3 -i bowen_cell\n", 317 | "pcpfm drop_samples --table_moniker full_blank_masked --new_moniker masked_full_unknowns --drop_value Unknown --drop_field \"Sample Type\" --drop_others true -i bowen_cell\n" 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "execution_count": 23, 323 | "metadata": {}, 324 | "outputs": [], 325 | "source": [ 326 | "# lets look for the features reported in the paper\n", 327 | "expected_features_cell = [\n", 328 | " (399.1823, 33.4, 'M0_1'),\n", 329 | " (399.2184, 224.8, 'M0_2'),\n", 330 | " (371.1874, 257.2, 'M1'),\n", 331 | " (415.2134, 264.8, 'M2_1'),\n", 332 | " (415.2128, 224.5, 'M2_2'),\n", 333 | " (343.1562, 249.4, 'M3'),\n", 334 | " (387.1823, 35.4, 'M4_1'),\n", 335 | " (387.1824, 242.5, 'M4_2'),\n", 336 | " (413.1978, 34.6, 'M12'),\n", 337 | " (385.1667, 38.9, 'M14_1'),\n", 338 | " (385.1666, 65.8, 'M14_2'),\n", 339 | " (159.1490, 273.2, 'M20')\n", 340 | "]\n", 341 | "\n", 342 | "import json\n", 343 | "\n", 344 | "# load the preferred and full feature table\n", 345 | "pft_cell = pd.read_csv(\"./bowen_cell/filtered_feature_tables/masked_pref_unknowns_Feature_table.tsv\", sep=\"\\t\")\n", 346 | "fft_cell = pd.read_csv(\"./bowen_cell/filtered_feature_tables/masked_full_unknowns_Feature_table.tsv\", sep=\"\\t\")\n" 347 | ] 348 | }, 349 | { 350 | "cell_type": "code", 351 | "execution_count": 24, 352 | "metadata": {}, 353 | "outputs": [ 354 | { 355 | "name": "stdout", 356 | "output_type": "stream", 357 | "text": [ 358 | "Cell - preferred\n", 359 | "M0_1 {'F3900', 'F3899'}\n", 360 | "M0_2 set()\n", 361 | "M1 set()\n", 362 | "M2_1 set()\n", 363 | "M2_2 set()\n", 364 | "M3 {'F3729'}\n", 365 | "M4_1 {'F3483'}\n", 366 | "M4_2 {'F3488'}\n", 367 | "M12 {'F4048'}\n", 368 | "M14_1 set()\n", 369 | "M14_2 set()\n", 370 | "M20 {'F395'}\n", 371 | "\n", 372 | "Cell - full\n", 373 | "M0_1 {'F3900', 'F3899'}\n", 374 | "M0_2 {'F3910'}\n", 375 | "M1 {'F3741'}\n", 376 | "M2_1 {'F4229'}\n", 377 | "M2_2 set()\n", 378 | "M3 {'F3729'}\n", 379 | "M4_1 {'F3483', 'F3484'}\n", 380 | "M4_2 {'F3488'}\n", 381 | "M12 {'F4047', 'F4048', 'F4049'}\n", 382 | "M14_1 {'F3364', 'F3366', 'F3365'}\n", 383 | "M14_2 {'F3368'}\n", 384 | "M20 {'F395'}\n" 385 | ] 386 | } 387 | ], 388 | "source": [ 389 | "# this builds an efficient structure to search the feature table by\n", 390 | "\n", 391 | "from intervaltree import IntervalTree\n", 392 | "\n", 393 | "ppm_mz_tol = 5\n", 394 | "rt_tol = 10\n", 395 | "\n", 396 | "pft_mz_tree = IntervalTree()\n", 397 | "pft_rt_tree = IntervalTree()\n", 398 | "for mz, rt, id in zip(pft_cell['mz'], pft_cell['rtime'], pft_cell['id_number']):\n", 399 | " mz_err = mz/1e6 * ppm_mz_tol\n", 400 | " pft_mz_tree.addi(mz-mz_err, mz+mz_err, id)\n", 401 | " pft_rt_tree.addi(rt-rt_tol, rt+rt_tol, id)\n", 402 | "\n", 403 | "fft_mz_tree = IntervalTree()\n", 404 | "fft_rt_tree = IntervalTree()\n", 405 | "for mz, rt, id in zip(fft_cell['mz'], fft_cell['rtime'], fft_cell['id_number']):\n", 406 | " mz_err = mz/1e6 * ppm_mz_tol\n", 407 | " fft_mz_tree.addi(mz-mz_err, mz+mz_err, id)\n", 408 | " fft_rt_tree.addi(rt-rt_tol, rt+rt_tol, id)\n", 409 | "\n", 410 | "\n", 411 | "# now look for the features\n", 412 | " \n", 413 | "print(\"Cell - preferred\")\n", 414 | "for expected in expected_features_cell:\n", 415 | " exp_mz, exp_rt, id = expected\n", 416 | " matches_mz = set([x.data for x in pft_mz_tree.at(exp_mz)])\n", 417 | " matches_rt = set([x.data for x in pft_rt_tree.at(exp_rt)])\n", 418 | " true_matches = matches_mz.intersection(matches_rt)\n", 419 | " print(id, true_matches)\n", 420 | "print()\n", 421 | "print(\"Cell - full\")\n", 422 | "for expected in expected_features_cell:\n", 423 | " exp_mz, exp_rt, id = expected\n", 424 | " matches_mz = set([x.data for x in fft_mz_tree.at(exp_mz)])\n", 425 | " matches_rt = set([x.data for x in fft_rt_tree.at(exp_rt)])\n", 426 | " true_matches = matches_mz.intersection(matches_rt)\n", 427 | " print(id, true_matches)" 428 | ] 429 | }, 430 | { 431 | "cell_type": "code", 432 | "execution_count": 28, 433 | "metadata": {}, 434 | "outputs": [ 435 | { 436 | "name": "stderr", 437 | "output_type": "stream", 438 | "text": [ 439 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 440 | " warnings.warn(\n" 441 | ] 442 | }, 443 | { 444 | "name": "stdout", 445 | "output_type": "stream", 446 | "text": [ 447 | "\n", 448 | "\n", 449 | "~~~~~~~ Hello from Asari (1.12.8) ~~~~~~~~~\n", 450 | "\n", 451 | "//*Asari dashboard*// Press Control-C to exit.\n", 452 | "Launching server at http://localhost:58687\n" 453 | ] 454 | } 455 | ], 456 | "source": [ 457 | "# As you can see, we have one missing feature but why is it missing?\n", 458 | "\n", 459 | "# lets look using asari viz\n", 460 | "\n", 461 | "experiment = json.load(open(\"./bowen_cell/experiment.json\"))\n", 462 | "asari_path = experiment[\"feature_tables\"]['full'].split(\"export\")[0]\n", 463 | "os.system(\"asari viz --input \" + asari_path)" 464 | ] 465 | }, 466 | { 467 | "cell_type": "code", 468 | "execution_count": null, 469 | "metadata": {}, 470 | "outputs": [], 471 | "source": [ 472 | "# now find the mass track for m/z=415.2128 using asari viz" 473 | ] 474 | } 475 | ], 476 | "metadata": { 477 | "kernelspec": { 478 | "display_name": "Python 3", 479 | "language": "python", 480 | "name": "python3" 481 | }, 482 | "language_info": { 483 | "codemirror_mode": { 484 | "name": "ipython", 485 | "version": 3 486 | }, 487 | "file_extension": ".py", 488 | "mimetype": "text/x-python", 489 | "name": "python", 490 | "nbconvert_exporter": "python", 491 | "pygments_lexer": "ipython3", 492 | "version": "3.9.6" 493 | } 494 | }, 495 | "nbformat": 4, 496 | "nbformat_minor": 2 497 | } 498 | -------------------------------------------------------------------------------- /notebooks/pcpfm_HZV029_subset_analysis.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Analyzing the HZV029 data in asari pipeline\n", 8 | "\n", 9 | "- Goal: process and annotate the HZV029 dataset, published in the asari pipeline (pcpfm) paper\n", 10 | "- Mitchell, J.M., Chi, Y., Thapa, M., Pang, Z., Xia, J. and Li, S., 2024. Common data models to streamline metabolomics processing and annotation, and implementation in a Python pipeline. PLOS Computational Biology, 20(6), p.e1011912. (https://doi.org/10.1371/journal.pcbi.1011912)\n", 11 | "- Original repo: https://github.com/shuzhao-li-lab/PythonCentricPipelineForMetabolomics\n" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 3, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "name": "stderr", 21 | "output_type": "stream", 22 | "text": [ 23 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 24 | " warnings.warn(\n", 25 | "Retrieving folder list\n", 26 | "Failed to retrieve folder contents:\n", 27 | "\n", 28 | " \tCannot retrieve the folder information from the link. You may need to\n", 29 | "\tchange the permission to 'Anyone with the link'. \n", 30 | "\n" 31 | ] 32 | } 33 | ], 34 | "source": [ 35 | "# lets download the example dataset\n", 36 | "# you can download the zip from here : https://drive.google.com/file/d/1PikUcw3fyF3AgMjCqp42hyVhEvl4Y5mw/view\n", 37 | "# lets assume you downloaded it to ~/Downloads/ and unziped it" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 35, 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "# now we need to make the sequence file as input to the pipeline\n", 47 | "\n", 48 | "import pandas as pd\n", 49 | "import os\n", 50 | "\n", 51 | "HZV029_subset_sequence = []\n", 52 | "downloads_path = os.path.abspath(os.path.expanduser(\"~/Downloads/HZV029_subset/\"))\n", 53 | "for f in os.listdir(downloads_path):\n", 54 | " file_path = os.path.join(downloads_path, f)\n", 55 | " filename = os.path.basename(file_path).rstrip(\".mzML\")\n", 56 | " HZV029_subset_sequence.append({\n", 57 | " \"Filepath\": file_path,\n", 58 | " \"File Name\": filename,\n", 59 | " \"Method\": \"Unknown\",\n", 60 | " \"Sample Type\": \"Unknown\"\n", 61 | " })\n", 62 | "pd.DataFrame(HZV029_subset_sequence).to_csv(\"HZV029_subset_sequence.csv\", index=False)\n" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 42, 68 | "metadata": {}, 69 | "outputs": [ 70 | { 71 | "data": { 72 | "text/plain": [ 73 | "'/Users/mitchjo/pcpfm_tutorials/notebooks'" 74 | ] 75 | }, 76 | "execution_count": 42, 77 | "metadata": {}, 78 | "output_type": "execute_result" 79 | } 80 | ], 81 | "source": [ 82 | "# the below block will run the pcpfm analysis. This relies upon python3 being on your $PATH.\n", 83 | "\n", 84 | "# if not, you will need to open the terminal and cd to this directory:\n", 85 | "\n", 86 | "os.getcwd()\n", 87 | "\n", 88 | "# run the command to add it to $PATH and do it manually using the commands below:\n", 89 | "\n", 90 | "# else you can use the block below to do it 'inline'" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 40, 96 | "metadata": { 97 | "vscode": { 98 | "languageId": "shellscript" 99 | } 100 | }, 101 | "outputs": [ 102 | { 103 | "name": "stderr", 104 | "output_type": "stream", 105 | "text": [ 106 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 107 | " warnings.warn(\n", 108 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 109 | " warnings.warn(\n", 110 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 111 | " warnings.warn(\n" 112 | ] 113 | }, 114 | { 115 | "name": "stdout", 116 | "output_type": "stream", 117 | "text": [ 118 | "\n", 119 | "\n", 120 | "~~~~~~~ Hello from Asari (1.12.8) ~~~~~~~~~\n", 121 | "\n", 122 | "Working on ~~ /Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/converted_acquisitions/ ~~ \n", 123 | "\n", 124 | "\n" 125 | ] 126 | }, 127 | { 128 | "name": "stderr", 129 | "output_type": "stream", 130 | "text": [ 131 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 132 | " warnings.warn(\n", 133 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 134 | " warnings.warn(\n", 135 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 136 | " warnings.warn(\n", 137 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 138 | " warnings.warn(\n", 139 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 140 | " warnings.warn(\n" 141 | ] 142 | }, 143 | { 144 | "name": "stdout", 145 | "output_type": "stream", 146 | "text": [ 147 | "Extracted batch13_MT_20210807_139.mzML to 3305 mass tracks.\n", 148 | "Extracted batch10_MT_20210804_007.mzML to 3553 mass tracks.\n", 149 | "Extracted batch10_MT_20210804_173.mzML to 3836 mass tracks.\n", 150 | "Extracted batch11_MT_20210805_003.mzML to 3849 mass tracks.\n", 151 | "Extracted batch17_MT_20210811_187.mzML to 3371 mass tracks.\n", 152 | "Extracted batch5_MT_20210730_007.mzML to 3434 mass tracks.\n", 153 | "Extracted batch7_MT_20210801_003C.mzML to 3910 mass tracks.\n", 154 | "Extracted batch6_MT_20210731_003K.mzML to 3957 mass tracks.\n", 155 | "Extracted batch8_MT_20210802_189.mzML to 3987 mass tracks.\n", 156 | "Extracted batch9_MT_20210803_007.mzML to 3474 mass tracks.\n", 157 | "\n", 158 | " The reference sample is:\n", 159 | " ||* batch6_MT_20210731_003K *||\n", 160 | "\n", 161 | "Max reference retention time is 299.75 at scan number 779.\n", 162 | "\n", 163 | "Constructing MassGrid, ...\n", 164 | "Adding sample to MassGrid, batch10_MT_20210804_007\n", 165 | " mapped pairs = 1067 / 3553 \n", 166 | "Adding sample to MassGrid, batch10_MT_20210804_173\n", 167 | " mapped pairs = 3075 / 3836 \n", 168 | "Adding sample to MassGrid, batch11_MT_20210805_003\n", 169 | " mapped pairs = 3569 / 3849 \n", 170 | "Adding sample to MassGrid, batch13_MT_20210807_139\n", 171 | " mapped pairs = 2972 / 3305 \n", 172 | "Adding sample to MassGrid, batch17_MT_20210811_187\n", 173 | " mapped pairs = 3188 / 3371 \n", 174 | "Adding sample to MassGrid, batch5_MT_20210730_007\n", 175 | " mapped pairs = 3126 / 3434 \n", 176 | "Adding sample to MassGrid, batch7_MT_20210801_003C\n", 177 | " mapped pairs = 3685 / 3910 \n", 178 | "Adding sample to MassGrid, batch8_MT_20210802_189\n", 179 | " mapped pairs = 3756 / 3987 \n", 180 | "Adding sample to MassGrid, batch9_MT_20210803_007\n", 181 | " mapped pairs = 3360 / 3474 \n", 182 | "\n", 183 | "Building composite mass tracks and calibrating retention time ...\n", 184 | "\n", 185 | " batch6_MT_20210731_003K\n", 186 | "\t\tgood_reference_landmark_peaks: 480\n", 187 | " batch10_MT_20210804_007\n", 188 | "\tgood_landmark_peaks: 91\n", 189 | " batch10_MT_20210804_173\n", 190 | "\tgood_landmark_peaks: 332\n", 191 | " batch11_MT_20210805_003\n", 192 | "\tgood_landmark_peaks: 348\n", 193 | " batch13_MT_20210807_139\n", 194 | "\tgood_landmark_peaks: 253\n", 195 | " batch17_MT_20210811_187\n", 196 | "\tgood_landmark_peaks: 322\n", 197 | " batch5_MT_20210730_007\n", 198 | "\tgood_landmark_peaks: 267\n", 199 | " batch7_MT_20210801_003C\n", 200 | "\tgood_landmark_peaks: 411\n", 201 | " batch8_MT_20210802_189\n", 202 | "\tgood_landmark_peaks: 204\n", 203 | " batch9_MT_20210803_007\n", 204 | "\tgood_landmark_peaks: 116\n", 205 | "\n", 206 | "Peak detection on 8878 composite mass tracks, ...\n", 207 | "\n" 208 | ] 209 | }, 210 | { 211 | "name": "stderr", 212 | "output_type": "stream", 213 | "text": [ 214 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 215 | " warnings.warn(\n", 216 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 217 | " warnings.warn(\n", 218 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 219 | " warnings.warn(\n", 220 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 221 | " warnings.warn(\n", 222 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 223 | " warnings.warn(\n" 224 | ] 225 | }, 226 | { 227 | "name": "stdout", 228 | "output_type": "stream", 229 | "text": [ 230 | "Mass accuracy was estimated on 319 matched values as 0.4 ppm.\n", 231 | "\n", 232 | "\n", 233 | "Multiple charges considered: [1, 2, 3]\n", 234 | "\n", 235 | "\n", 236 | "Khipu search grid: \n", 237 | " M+H+ Na/H HCl K/H ACN\n", 238 | "M0 1.007276 22.989276 36.983976 38.963158 42.033825\n", 239 | "13C/12C 2.010631 23.992631 37.987331 39.966513 43.037180\n", 240 | "13C/12C*2 3.013986 24.995986 38.990686 40.969868 44.040535\n", 241 | "Downsized input network with 16 features, highest peak at F9151 \n", 242 | "Downsized input network with 18 features, highest peak at F9694 \n", 243 | "Downsized input network with 17 features, highest peak at F10266 \n", 244 | "Downsized input network with 19 features, highest peak at F11978 \n", 245 | "Downsized input network with 25 features, highest peak at F7169 \n", 246 | "Constructed 2061 khipus in this round.\n", 247 | "\n", 248 | "\n", 249 | "Khipu search grid: \n", 250 | " M+H+, 2x charged ... ACN, 2x charged\n", 251 | "M0 0.503638 ... 21.520551\n", 252 | "13C/12C, 2x charged 1.005316 ... 22.022228\n", 253 | "13C/12C*2, 2x charged 1.506993 ... 22.523906\n", 254 | "\n", 255 | "[3 rows x 5 columns]\n", 256 | "Constructed 127 khipus in this round.\n", 257 | "\n", 258 | "\n", 259 | "Khipu search grid: \n", 260 | " M+H+, 3x charged ... ACN, 3x charged\n", 261 | "M0 0.335759 ... 14.682793\n", 262 | "13C/12C, 3x charged 0.670210 ... 15.017244\n", 263 | "13C/12C*2, 3x charged 1.004662 ... 15.351696\n", 264 | "\n", 265 | "[3 rows x 5 columns]\n", 266 | "Constructed 42 khipus in this round.\n", 267 | "\n", 268 | "\n", 269 | "\n", 270 | "\n", 271 | " ~~~~~~ Got 2230 khipus, with 6645 features ~~~~~~~ \n", 272 | "\n", 273 | "\n", 274 | "\n", 275 | "Annotation of 9098 Empirical compounds was written to /Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/asari_asari_project_214112746/Feature_annotation.tsv.\n", 276 | "\n", 277 | "\n", 278 | "\n", 279 | "Feature table (12716 x 10) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/asari_asari_project_214112746/export/full_Feature_table.tsv.\n", 280 | "\n", 281 | "Filtered Feature table (8463 x 10) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/asari_asari_project_214112746/preferred_Feature_table.tsv.\n", 282 | "\n", 283 | "Unique compound table (5763 x 10) was written to /Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/asari_asari_project_214112746/export/unique_compound__Feature_table.tsv.\n", 284 | "\n" 285 | ] 286 | }, 287 | { 288 | "name": "stderr", 289 | "output_type": "stream", 290 | "text": [ 291 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 292 | " warnings.warn(\n" 293 | ] 294 | }, 295 | { 296 | "name": "stdout", 297 | "output_type": "stream", 298 | "text": [ 299 | "\n", 300 | "\n", 301 | "Multiple charges considered: [1, 2, 3]\n", 302 | "\n", 303 | "\n", 304 | "Khipu search grid: \n", 305 | " M+H+ Na/H HCl K/H ACN\n", 306 | "M0 1.007276 22.989276 36.983976 38.963158 42.033825\n", 307 | "13C/12C 2.010631 23.992631 37.987331 39.966513 43.037180\n", 308 | "13C/12C*2 3.013986 24.995986 38.990686 40.969868 44.040535\n", 309 | "13C/12C*3 4.017341 25.999341 39.994041 41.973223 45.043890\n", 310 | "Downsized input network with 23 features, highest peak at F7737 \n", 311 | "Downsized input network with 27 features, highest peak at F7759 \n", 312 | "Constructed 2097 khipus in this round.\n", 313 | "\n", 314 | "\n", 315 | "Khipu search grid: \n", 316 | " M+H+, 2x charged ... ACN, 2x charged\n", 317 | "M0 0.503638 ... 21.520551\n", 318 | "13C/12C, 2x charged 1.005316 ... 22.022228\n", 319 | "13C/12C*2, 2x charged 1.506993 ... 22.523906\n", 320 | "13C/12C*3, 2x charged 2.008671 ... 23.025583\n", 321 | "\n", 322 | "[4 rows x 5 columns]\n", 323 | "Constructed 117 khipus in this round.\n", 324 | "\n", 325 | "\n", 326 | "Khipu search grid: \n", 327 | " M+H+, 3x charged ... ACN, 3x charged\n", 328 | "M0 0.335759 ... 14.682793\n", 329 | "13C/12C, 3x charged 0.670210 ... 15.017244\n", 330 | "13C/12C*2, 3x charged 1.004662 ... 15.351696\n", 331 | "13C/12C*3, 3x charged 1.339114 ... 15.686148\n", 332 | "\n", 333 | "[4 rows x 5 columns]\n", 334 | "Constructed 40 khipus in this round.\n", 335 | "\n", 336 | "\n", 337 | "\n", 338 | "\n", 339 | " ~~~~~~ Got 2254 khipus, with 7211 features ~~~~~~~ \n", 340 | "\n", 341 | "\n" 342 | ] 343 | }, 344 | { 345 | "name": "stderr", 346 | "output_type": "stream", 347 | "text": [ 348 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 349 | " warnings.warn(\n" 350 | ] 351 | } 352 | ], 353 | "source": [ 354 | "%%bash\n", 355 | "\n", 356 | "pcpfm assemble -s HZV029_subset_sequence.csv -j HZV029_subset -o .\n", 357 | "pcpfm asari -i HZV029_subset\n", 358 | "pcpfm build_empCpds -i HZV029_subset -tm full -em full\n", 359 | "pcpfm l4_annotate -i HZV029_subset -em full -nm full_w_l4" 360 | ] 361 | }, 362 | { 363 | "cell_type": "code", 364 | "execution_count": 34, 365 | "metadata": { 366 | "vscode": { 367 | "languageId": "shellscript" 368 | } 369 | }, 370 | "outputs": [ 371 | { 372 | "name": "stderr", 373 | "output_type": "stream", 374 | "text": [ 375 | "/Users/mitchjo/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:34: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020\n", 376 | " warnings.warn(\n" 377 | ] 378 | }, 379 | { 380 | "name": "stdout", 381 | "output_type": "stream", 382 | "text": [ 383 | "[]\n", 384 | "Failure Executing Method: pca\n", 385 | "Found array with 0 sample(s) (shape=(0, 8463)) while a minimum of 1 is required by StandardScaler.\n", 386 | "Unable to processes section: \n", 387 | " {'section': 'figure', 'table': 'preferred', 'name': 'pca'}\n", 388 | "Failure Executing Method: pearson\n", 389 | "negative dimensions are not allowed\n", 390 | "Unable to processes section: \n", 391 | " {'section': 'figure', 'table': 'preferred', 'name': 'pearson_correlation'}\n", 392 | "[]\n", 393 | "Failure Executing Method: pca\n", 394 | "Found array with 0 sample(s) (shape=(0, 12716)) while a minimum of 1 is required by StandardScaler.\n", 395 | "Unable to processes section: \n", 396 | " {'section': 'figure', 'table': 'full', 'name': 'pca'}\n", 397 | "Failure Executing Method: pearson\n", 398 | "negative dimensions are not allowed\n", 399 | "Unable to processes section: \n", 400 | " {'section': 'figure', 'table': 'full', 'name': 'pearson_correlation'}\n", 401 | "No such table: for_analysis\n", 402 | "Unable to processes section: \n", 403 | " {'section': 'figure', 'table': 'for_analysis', 'name': 'pca'}\n", 404 | "No such table: for_analysis\n", 405 | "Unable to processes section: \n", 406 | " {'section': 'figure', 'table': 'for_analysis', 'name': 'pearson_correlation'}\n", 407 | "No such table: for_analysis\n", 408 | "Unable to processes section: \n", 409 | " {'section': 'figure', 'table': 'for_analysis', 'name': 'spearman_corrlation'}\n", 410 | "No such table: for_analysis\n", 411 | "Unable to processes section: \n", 412 | " {'section': 'figure', 'table': 'for_analysis', 'name': 'log_tics.png'}\n", 413 | "No such table: for_analysis\n", 414 | "Unable to processes section: \n", 415 | " {'section': 'figure', 'table': 'for_analysis', 'name': 'feature_count_z_scores'}\n" 416 | ] 417 | } 418 | ], 419 | "source": [ 420 | "%%bash\n", 421 | "\n", 422 | "pcpfm report -i HZV029_subset\n" 423 | ] 424 | }, 425 | { 426 | "cell_type": "code", 427 | "execution_count": 43, 428 | "metadata": {}, 429 | "outputs": [ 430 | { 431 | "name": "stdout", 432 | "output_type": "stream", 433 | "text": [ 434 | "/Users/mitchjo/pcpfm_tutorials/notebooks/HZV029_subset/output/report.pdf\n" 435 | ] 436 | } 437 | ], 438 | "source": [ 439 | "# now you can open the report at:\n", 440 | "\n", 441 | "print(os.path.abspath(\"./HZV029_subset/output/report.pdf\"))" 442 | ] 443 | }, 444 | { 445 | "cell_type": "code", 446 | "execution_count": 52, 447 | "metadata": {}, 448 | "outputs": [ 449 | { 450 | "name": "stdout", 451 | "output_type": "stream", 452 | "text": [ 453 | "Total Features: 8463\n", 454 | "Total Samples: 21\n" 455 | ] 456 | } 457 | ], 458 | "source": [ 459 | "# now lets summarize some features:\n", 460 | "\n", 461 | "import json\n", 462 | "experiment = json.load(open(\"./HZV029_subset/experiment.json\"))\n", 463 | "preferred_ft = pd.read_csv(experiment[\"feature_tables\"][\"preferred\"], sep=\"\\t\")\n", 464 | "print(\"Total Features: \", preferred_ft.shape[0])\n", 465 | "print(\"Total Samples: \", preferred_ft.shape[1])\n", 466 | "\n" 467 | ] 468 | }, 469 | { 470 | "cell_type": "code", 471 | "execution_count": 63, 472 | "metadata": {}, 473 | "outputs": [ 474 | { 475 | "name": "stdout", 476 | "output_type": "stream", 477 | "text": [ 478 | "Num empcpds: 2254\n", 479 | "Num empcpds w/ l4 annots: 1092\n" 480 | ] 481 | } 482 | ], 483 | "source": [ 484 | "# now lets move on to empCpds and annotations:\n", 485 | "\n", 486 | "empcpd = json.load(open(experiment[\"empCpds\"][\"full_w_l4\"]))\n", 487 | "print(\"Num empcpds:\", len(empcpd))\n", 488 | "l4_annotated = 0\n", 489 | "for x in empcpd.values():\n", 490 | " if \"Level_4\" in x and x[\"Level_4\"]:\n", 491 | " l4_annotated += 1\n", 492 | "print(\"Num empcpds w/ l4 annots: \", l4_annotated)\n", 493 | "\n" 494 | ] 495 | }, 496 | { 497 | "cell_type": "code", 498 | "execution_count": null, 499 | "metadata": {}, 500 | "outputs": [], 501 | "source": [] 502 | } 503 | ], 504 | "metadata": { 505 | "kernelspec": { 506 | "display_name": "Python 3", 507 | "language": "python", 508 | "name": "python3" 509 | }, 510 | "language_info": { 511 | "codemirror_mode": { 512 | "name": "ipython", 513 | "version": 3 514 | }, 515 | "file_extension": ".py", 516 | "mimetype": "text/x-python", 517 | "name": "python", 518 | "nbconvert_exporter": "python", 519 | "pygments_lexer": "ipython3", 520 | "version": "3.9.6" 521 | } 522 | }, 523 | "nbformat": 4, 524 | "nbformat_minor": 2 525 | } 526 | --------------------------------------------------------------------------------