knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  warning = FALSE
)

This vignette describes the complete workflow for the prediction of Caenorhabditis elegans (C. elegans) lipids performed by Witting et al. (in preparation). All template reactions at the current stage have been curated from the WormJam model.

# load required library
library("LipidNetworkPredictR")
library("dplyr")
library("rgoslin")
library("igraph")

In order to store all the results a data frame for the reactions is created. Lipids abbreviations are just appended.

## create data frame to store reactions
lipid_reactions <- data.frame()

## create vector to store shorthand notations of generated lipids
##lipid_abbrev <- vector()
lipid_df <- tibble()

The following abbreviations are used (in alphabetical order):

Fatty acids used for biosynthesis

First input for the prediction are fatty acids that were shown to be present in C. elegans by different groups. A consensus list was generated based on fatty acids from WormJam and detected in C. elegans. A data frame of these fatty acids is supplied with this package. Fatty acids used in glycero- and glycerophospholipids are different from the ones used in sphingolipid biosynthesis. The pools are only partially overlapping between the two. Therefore, two different files for the two different pools are supplied. The following lines read the fatty acids into a data frame and isolates the shorthand notation of the fatty acids, which are further used for downstream processing.

## read data frame with fatty acids detected in C. elegans
f <- system.file("extdata", "celegans_fatty_acids_GL_GP.txt",
    package = "LipidNetworkPredictR")

fatty_acid_gl_gp_df <- read.table(f, sep = "\t", header = TRUE, 
        comment.char = "", stringsAsFactors = FALSE) |> 
    data.frame()

## get short hand notations for fatty acids
FA_GPGL <- fatty_acid_gl_gp_df$shorthand

## take only a subset of those to speed things up
FA_GPGL <- FA_GPGL[FA_GPGL %in%
    c("FA(12:0)", "FA(14:0)", "FA(15:0)", "FA(16:0)", "FA(17:0)", "FA(18:0)", "FA(19:0)", "FA(20:0)")]
lipid_info <- rgoslin::parseLipidNames(FA_GPGL)

## add lipids to data frame
lipid_df <- dplyr::bind_rows(lipid_df, lipid_info)

The lines below perform the same action for fatty acids used in sphingolipid biosynthesis.

## read data frame with fatty acids detected in C. elegans
f <- system.file("extdata", "celegans_fatty_acids_SPH.txt",
    package = "LipidNetworkPredictR")

fatty_acid_sph_df <- read.table(f, sep = "\t", header = TRUE,
    comment.char = "", stringsAsFactors = FALSE) |>
    data.frame()

## get short hand notations for fatty acids
FA_SPH <- fatty_acid_sph_df$shorthand

## take only a subset of those to speed things up
FA_SPH <- FA_SPH[FA_SPH %in%
    c("FA(12:0)", "FA(14:0)", "FA(15:0)", "FA(16:0)", "FA(17:0)", "FA(18:0)", "FA(19:0)", "FA(20:0)" )]
lipid_info <- rgoslin::parseLipidNames(FA_SPH)

## add lipids to data frame
lipid_df <- dplyr::bind_rows(lipid_df, lipid_info)

GPGL pool

Block 0: Preparation of Acyl-CoA

Biosynthesis of CoA from FA (RHEA:15421)

Acyl groups are transfered in their activate form of acyl CoA (CoA). Their synthesis requires ATP. C. elegans harbors different Acyl-CoA synthetases and their substrate specificity is not established so far. In order to be able to use all defined acyls they are converted to acyl CoA. The reaction converts fatty acids (FA) to acyl-CoA.

Block 1: Biosynthesis and Degradation of Phosphaditic acid and Diacylglycerol

Phosphaditic acid (PA) and Diacylgylcerols (DG) are an important intermediate for the biosynthesis of different lipids. The represent a branching point between triacylglycerols and glycerophospholipids. They are synthesized from lysosphosphaditic and phosphaditic acid by successive acylation of glycerol 3-phosphate. The first block of reactions handles the generation of PA and DG as well as their degradation via monoacylglycerols to fatty acids.

Biosynthesis of LPA (RHEA:15325)

The first step to obtain DG is the biosynthesis of lysophophaditic acid from acyl CoA_GPGL and glycerol 3-phosphate. This reaction takes place in the ER and the mitochondria. In the ER the reaction is catalyzed by acl-5 (WBGene00011106) or acl-6 (WBGene00017261), while in the mitochondria acl-4 (WBGene00018657) is used. No subcellular specificity is currently used, therefore the assignments are merged together to yield a single reaction.

Biosynthesis of PA (RHEA:19709)

In the next step a second acyl group is transferred to the LPA to produce PA. This reaction is catalyzed by acl-9 (WBGene00022646) or acl-8 (WBGene00020264) or mboa-3 (WBGene00016934) or acl-1 (WBGene00010339) or acl-2 (WBGene00011543) in the ER. For the mitochondrial counterpart no genes are known so far. acl-3 (WBGene00006491) might be a good candidate since it is predicted to locate in the mitochondria.

Biosynthesis of DG (RHEA:27429)

Diacylglycerols (DG) are produced from PA by dephosphorylation. DG are important intermediates for biosynthesis of glycerophospholipids or triacylglycerols (DG). A prominent enzyme catalyzing this reactions is LPIN-1. Plasma membrane or ER WBGene00008749 or WBGene00018756 or WBGene00020895 or WBGene00010425 nucleus WBGene00010425

DG Kinase (RHEA:10272)

DG can be phosphorylated to create PA, which is the reversal of the reaction above. Under normal conditions this reactions is inactive, but can be activated yielding PA. Normally, DG is used for synthesis of TGs and phospho- lipids, but phosphorylation yields a switch in DG to PA, which both have also different signaling functions. In this case a lipid, which has been generated previously by a different reactions is produced.

Degradation of DG (RHEA:44712, RHEA:33275, sn2mg_to_sn1mg)

Production of 1-MG (RHEA:44712)

DG are degraded by the activity of different lipases yielding mono acylglycerols. In the case of this reaction the fatty acid at sn1 position is removed yieling an sn2-MG. sn2-MG can be converted to sn1-MG, which in turn can be re-acylated at a later stage.

Production of 2-MG (RHEA:33275)

DG are degraded by the activity of different lipases yielding mono acylglycerols. In the case of this reaction the fatty acid at sn1 position is removed yieling an sn2-MG. sn2-MG can be converted to sn1-MG, which in turn can be re-acylated at a later stage.

Acyl chain migration (sn2mg_to_sn1mg)

Acyl chain migration can happen to produced 1-Acyl-MGs from 2-Acyl-MGs. Both species are in equilibrium to each other. However, 1-Acyl-MGs can be reacylated to yields DGs.

Degradation of MG (RHEA:34019, RHEA:32871)

Both, sn1- and sn2-MG, can degraded to free fatty acids and glycerol, which can be used for energy production upon conversion to Acyl-CoAs and import into mitochondria for beta-oxidation. Other possibilities include the re-use in lipid biosynthesis.

Phosphorylation and reacylation of MG (RHEA:38463, RHEA:32947, RHEA:33747)

Similar to the degradation, all MG can be reacylated to yields DG again.

Additionally, 1-Acyl-MG can be also phosphorylated to yield LPA, which is then fed into lipid biosynthesis.

Block 2: Biosynthesis and degradation of TG

Triacylglycerols (TG) are storage lipids in C. elegans and other organisms. They are stored in lipid droplets. In C. elegans they are also found in yolk for the production of eggs.

Biosynthesis of TG (RHEA:10868)

TG are synthesized by acylation of DG in the ER and sequestered into lipid droplets. Since TGs harbor three acyl chains their combinatorial spaces is large.

Degradation of TG (RHEA:33271)

TG are "symmetric" molecules, therefore from each TG two different DG can produced.

Block 3: Biosynthesis of Glycerophospholipids (PC, PE, PS)

The glycerophospholipids phosphatidylcholine, -ethanolamine and serine are synthesized from DG by addition of headgroups. Additionally they can be interconverted

Biosynthesis of PC (RHEA:32939)

Biosynthesis of PE (RHEA:32943)

Biosynthesis of PS (RHEA:45088, RHEA:27606)

PS can be formed from PC (RHEA:45088) and from PE (RHEA:27606).

Decarboxylation of PS to PE (RHEA:20828)

PE can be formed from PS species by decarboxylation. The reaction takes place only in mitochondria.

Block 4: Remodeling and Degradation of Glycerophospholipids

Phospholipase action on PC (RHEA:18689, RHEA:15801, RHEA:14445)

PLA1 cleaves of the acyl at the sn1 position producing an sn2LPC (RHEA:18689_.

PLA2 on PC (RHEA:15801).

PLD on PC (RHEA:14445).

LPC to FA_GPGL (RHEA:15177, RHEA:44696)

sn1LPC to FA_GPGL.

sn2LPC to FA_GPGL.

Reacylation of LPC to PC (Remodeling, RHEA:12937)

Only sn1LPC get re-acylated --> constraining? = remodeling!

Phospholipase action on PE (RHEA:44408)

PLA1 on PE (RHEA:44408).

PLA2 on PE (RHEA:44604).

PLD on PE (pe_to_pa).

LPE to FA_GPGL (RHEA:32967)

sn1LPE to FA_GPGL (RHEA:32967).

sn2LPE to FA_GPGL (sn2lpe_to_fa)

Reacylation of LPE to PE (Remodeling, RHEA:32995)

Only sn1LPE get re-acylated --> constraining? = remodeling!

Block 5: Biosynthesis of Glycerophospholipids (PG, PI, CL)

PG, PI and CL are synthesized based on the common precursor CDP-DG

Biosynthesis of CDP-DG (RHEA:16229)

Biosynthesis of PI (RHEA:11580)

Biosynthesis of PGP and PG (RHEA:12593, RHEA:33751, RHEA:32931)

This reaction is taking place only in the mitochondria.

This reaction has no gene assignment at the moment (RHEA:33751).

The reaction from PG to CL is only taking place in mitochondria (RHEA:32931).

Block 6: Biosynthesis of Etherlipids

Generation of fatty alcohols (RHEA:52716)

Some etherlipids... mostly PE, small amounts in PC. This reaction is constrained to 16:0, 18:0, 20:0!

Generation of Acyl-DHAP (RHEA:17657)

Generation of Alkyl-DHAP (RHEA:36171)

Reduction of Alkyl-DHAP to LPA-O (RHEA:36175)

Enzyme not known so far in C. elegans!!! EC 1.1.1.101

Biosynthesis of PA-O (RHEA:36235)

Same genes as for LPA to PA --> substrate specificity not known yet.

Biosynthesis of DG-O (RHEA:36239)

Biosnythesis of PE-O (RHEA:36187)

Headgroup transfer via cept-1 and cept-2.

Biosynthesis of PE-P (RHEA:22956)

reductase is unknown so far.

Biosynthesis of PC-O (RHEA:36179)

same as for PC!

Block 7: Remodeling of Etherlipids

PLA2 on PE-O (peo_to_lpeo)

Reacylation of PE-O (lpeo_to_peo)

PLA2 on PE-P (RHEA:36195)

Reacylation of PE-P (RHEA:16245)

PLA2 on PC-O (RHEA:36231)

Remodeling of PC-O???

Degradation of LPEP

Block Y: Biosynthesis and Degradation of N-Acyl-Ethanolamines

This biosynthetic pathway is putative. Only a few enzymes have been found so far.

Biosynthesis of N-Acyl-phosphatidylethanolamine (NAPE) from PE and PC (pe_to_nape_sn1, peo_to_napeo_sn1, pep_to_napep_sn1, pe_to_nape_sn2, peo_to_napeo_sn2, pep_to_napep_sn2)

N-acyl-phosphatidylethanolamines are produced by the transfer of an acyl group from PC to the nitrogen of PE. In C. elegans this reaction is so far not known. It is unknown if the sn1 or sn2 position is transferred. Since C. elegans contains about equal amounts of PE, PE-O and PE-P it might be possible that the acyl group is transferred to all of them producing NAPE, NAPE-O and NAPE-P.

transfer of Sn1 fatty acyl to PE (pe_to_nape_sn1)

transfer of Sn1 fatty acyl to PE-O (peo_to_napeo_sn1)

transfer of Sn1 fatty acyl to PE-P (pep_to_napep_sn1)

transfer of Sn2 fatty acyl to PE (pe_to_nape_sn2)

transfer of Sn2 fatty acyl to PE-O (peo_to_napeo_sn2)

transfer of Sn2 fatty acyl to PE-P (pep_to_napep_sn2)

Biosynthesis of N-Acyl-ethanolamine (nape_to_nae, napeo_to_nae)

From NAPE (nape_to_nae)

From NAPEO (napeo_to_nae)

Biosynthesis of from NAPE (nape_to_pnae)

From NAPE.

Generation of N-Acyl-Ethanolamines from N-Acyl-Phosphoethanolamines

Generation of LysoNAPE from NAPE (nape_to_lnape)

Generation of GPNAE from LysoNAPE (RHEA:45420)

Degradation of N-Acyl-Ethanolamines (nae_to_fa)

Run the function

reactions <- rbind(
    ## Block 0
    c("RHEA:15421", "M_FA + M_ATP + M_CoA = M_AcylCoA + M_AMP + M_PPi"), ## FA_GPGL + ATP + CoA = CoA_GPGL + AMP + PPi

    ## Block 1
    c("RHEA:15325", "M_AcylCoA + M_Glycerol-3-P = M_LPA + M_CoA"), ## CoA_GPGL + G3P = LPA + CoA
    c("RHEA:19709", "M_LPA + M_AcylCoA = M_PA + M_CoA"), ## LPA + CoA_GPGL = PA + CoA
    c("RHEA:27429", "M_PA + M_H2O = M_1,2-DG + M_Pi"), ## PA + H2O = DG + Pi
    c("RHEA:10272", "M_1,2-DG + M_ATP = M_PA + M_ADP + M_H+"), ## DG + ATP = PA + ADP + H+
    c("RHEA:44712", "M_1,2-DG + M_H2O = M_1-MG + M_FA + M_H+"), ## DG + H2O = sn1MG + FA + H+
    c("RHEA:33275", "M_1,2-DG + M_H2O = M_2-MG + M_FA + M_H+"), ## DG + H2O = sn2MG + FA + H+
    c("sn2mg_to_sn1mg", "M_2-MG <=> M_1-MG"), ## sn1MG <=> sn2MG
    c("RHEA:34019", "M_1-MG + M_H2O = M_FA + M_Glycerol + M_H+"), ## sn1MG + H2O = FA + Glycerol + H+
    c("RHEA:32871", "M_H2O + M_2-MG = M_FA + M_Glycerol + M_H+"), ## H2O + sn2MG = FA + Glycerol + H+
    c("RHEA:38463", "M_1-MG + M_AcylCoA = M_1,2-DG + M_CoA"), ## sn1MG + CoA_GPGL = DG + CoA
    c("RHEA:32947", "M_2-MG + M_AcylCoA = M_1,2-DG + M_CoA"), ## sn2MG + CoA_GPGL = DG + CoA
    c("RHEA:33747", "M_1-MG + M_ATP = M_LPA + M_ADP + M_H+"), ## 1-MG + ATP = LPA + ADP + H+

    ## Block 2
    c("RHEA:10868", "M_1,2-DG + M_AcylCoA = M_TG + M_CoA"), ## DG + CoA_GPGL = TG + CoA
    c("RHEA:33271", "M_TG + M_H2O = M_1,2-DG + M_FA + M_H+"), ## TG + H2O = DG + FA + H+

    ## Block 3
    c("RHEA:32939", "M_1,2-DG + M_CDP-Choline = M_PC + M_CMP + M_H+"), ## DG + CDP-Choline = PC + CMP + H+
    c("RHEA:32943", "M_1,2-DG + M_CDP-Ethanolamine = M_PE + M_CMP + M_H+"), ## DG + CDP-Ethanolamine = PE + CMP + H+
    c("RHEA:45088", "M_PC + M_L-Serine = M_PS + M_Choline"), ## PC + L-Serine = PS + Choline
    c("RHEA:27606", "M_PE + M_L-Serine = M_PS + M_Ethanolamine"), ## PE + L-Serine = PS + Ethanolamine
    c("RHEA:20828", "M_PS + M_H+ = M_PE + M_CO2"), ## PS + H+ = PE + CO2

    ## Block 4
    c("RHEA:18689", "M_PC_c + M_H2O_c = M_2-LPC_c + M_FA_c + M_H+_c"), ## PC + H2O = sn2LPC + FA_GPGL
    c("RHEA:15801", "M_PC + M_H2O  = M_1-LPC + M_FA + M_H+"), ## PC + H2O  = sn1LPC + FA_GPGL + H+
    c("RHEA:14445", "M_PC + M_H2O = M_PA + M_Choline + M_H+"), ## PC + H2O = PA + Choline + H+
    c("RHEA:15177", "M_1-LPC + M_H2O = M_FA + M_H+ + M_Glycerophosphocholine"), ## sn1LPC + H2O = FA_GPGL + H+ + Glycerophosphocholine
    c("RHEA:44696", "M_2-LPC + M_H2O = M_FA + M_H+ + M_Glycerophosphocholine"), ## sn2LPC + H2O = FA_GPGL + H+ + Glycerophosphocholine
    c("RHEA:12937", "M_1-LPC_c + M_AcylCoA_c = M_PC_c + M_CoA_c"), ## sn1LPC + CoA_GPGL = PC + CoA_GPGL
    c("RHEA:44408", "M_PE + M_H2O = M_2-LPE + M_FA + M_H+"), ## PE + H2O = sn2LPE + FA_GPGL + H+
    c("RHEA:44604", "M_PE + M_H2O = M_1-LPE + M_FA + M_H+"), ## PE + H2O = sn1LPE + FA_GPGL + H+
    c("pe_to_pa", "M_PE + M_H2O <=> M_PA + M_Ethanolamine + M_H+"), ## PE + H2O <=> PA + Ethanolamine + H+
    c("RHEA:32967", "M_1-LPE + M_H2O = M_FA + M_H+ + M_Glycerophosphoethanolamine"), ## sn1LPE + H2O = FA_GPGL + H+ + Glycerophosphoethanolamine
    c("sn2lpe_to_fa", "M_2-LPE + M_H2O <=> M_FA + M_H+ + M_Glycerophosphoethanolamine"), ## sn2LPE + H2O <=> FA_GPGL + H+ + Glycerophosphoethanolamine
    c("RHEA:32995", "M_1-LPE + M_AcylCoA = M_PE + M_CoA"), ## sn1LPE + CoA_GPGL = PE + CoA
    ## Block 5
    c("RHEA:16229", "M_PA + M_CTP + M_H+ = M_CDP-DG + M_PPi"), ## PA + CTP + H+ = CDP-DG + PPi
    c("RHEA:11580", "M_CDP-DG + M_myo-Inositol = M_PI + M_CMP + M_H+"), ## CDP-DG + myo-Inositol = PI + CMP + H+
    c("RHEA:12593", "M_CDP-DG + M_Glycerol-3-P = M_PGP + M_CMP + M_H+"), ## CDP-DG + Glycerol-3-P = PGP + CMP + M_H+
    c("RHEA:33751", "M_PGP + M_H2O = M_PG + M_Pi"), ## PGP + H2O = PG + Pi
    c("RHEA:32931", "M_PG + M_CDP-DG = M_CL + M_CMP + M_H+"), ## PG + CDP-DG = CL + CMP + H+
    ## Block 6
    c("RHEA:52716", "M_AcylCoA + 2 M_H+ + 2 M_NADPH = M_FAO + M_CoA + 2 M_NADP"), ## AcylCoA_GPGL + 2 H+ + 2 NADPH = FAO + CoA + 2 NADP
    c("RHEA:17657", "M_AcylCoA + M_Dihydroxyacetone-P = M_AcylDHAP + M_CoA"), ##CoA_GPGL + Dihydroxyacetone-P = AcylDHAP + CoA
    c("RHEA:36171", "M_AcylDHAP + M_FAO = M_AlkylDHAP + M_FA + M_H+"), ##AcylDHAP + FAO = AlkylDHAP + FA_GPGL + H+
    c("RHEA:36175", "M_AlkylDHAP + M_H+ + M_NADPH = M_LPA-O + M_NADP"), ## AlkylDHAP + H+ + NADPH = LPAO + NADP
    c("RHEA:36235", "M_LPA-O + M_AcylCoA = M_PA-O + M_CoA"), ## LPAO + CoA_GPGL = PAO + CoA
    c("RHEA:36239", "M_PA-O + M_H2O = M_DG-O + M_Pi"), ## PAO + H2O = DGO + Pi
    c("RHEA:36187", "M_DG-O + M_CDP-Ethanolamine =  M_PE-O + M_CMP + M_H+"), ## DGO + CDP-Ethanolamine =  PEO + CMP + H+
    c("RHEA:22956", "M_PE-O + M_Fe2+cytochrome_b5 + 2 M_H+ + M_O2 = M_PE-P + M_Fe3+cytochrome_b5 + 2 M_H2O"), ## PEO + Fe2+cytochrome_b5 + 2 H+ + O2 = PEP + Fe3+cytochrome_b5 + 2 H2O
    c("RHEA:36179", "M_DG-O + M_CDP-Choline = M_PC-O + M_CMP + M_H+"), ## DGO + CDP-Choline = PCO + CMP + H+
    ## Block 7
    c("peo_to_lpeo", "M_PE-O + M_H2O <=> M_LPE-O + M_FA + M_H+"), ## PEO + H2O <=> LPEO + FA_GPGL + H+
    c("lpeo_to_peo", "M_AcylCoA + M_LPE-O = M_CoA + M_PE-O"), ## CoA_GPGL + LPEO = CoA + M_PEO
    c("RHEA:36195", "M_PE-P + M_H2O = M_LPE-P + M_FA + M_H+"), ## PEP + H2O = LPE-P + FA + H+
    c("RHEA:16245", "M_LPE-P + M_AcylCoA = M_PE-P + M_CoA"), ## LPEP + CoA_GPGL = PEP + CoA
    c("RHEA:36231", "M_PC-O + M_H2O = M_LPC-O + M_FA + M_H"), ## PCO + H2O = LPCO + FA_GPGL + H+

    ## Block 8
    c("RHEA:17730", "M_Cholesterol + M_AcylCoA = M_CE + M_CoA"), ## Cholesterol + AcylCoA = CE + CoA

    ## Block Y
    c("RHEA:45188", "M_PC + M_PE = M_2-LPC + M_H+ + M_NAPE"), ## PC + PE = sn2LPC + H+ + NAPE
    c("peo_to_napeo_sn1", "M_PE-O + M_PC = M_NAPEO + M_2-LPC"), ## PEO + PC = NAPEO + sn2LPC
    c("RHEA:63596", "M_PE-P + M_PC = M_NAPEP + M_2-LPC"), ## PEP + PC = NAPEP + sn2LPC
    c("RHEA:45192", "M_PC + M_PE = M_1-LPC + M_H+ + M_NAPE"), ## ## PC + PE = sn1LPC + H+ + NAPE
    c("peo_to_napeo_sn2", "M_PE-O + M_PC = M_NAPEO + M_1-LPC"), ## PEO + PC = NAPEO + sn1LPC
    c("pep_to_napep_sn2", "M_PE-P + M_PC = M_NAPEP + M_1-LPC"), ## PEP + PC = NAPEP + sn1LPC
    c("RHEA:33159", "M_NAPE + M_H2O = M_NAE + M_PA"), ## NAPE + H2O <=> NAE + PA
    c("napeo_to_nae", "M_NAPEO + M_H2O <=> M_NAE + M_PA-O"), ## akac2nape + H2O <=> NAE + PAO
    c("nape_to_pnae", "M_NAPE + M_H2O <=> M_PNAE + M_1,2-DG"), ## NAPE + H2O <=> PNAE + DG
    c("RHEA:45460", "M_NAPE + M_H2O = M_LNAPE + M_FA + M_H+"), ## NAPE + H2O <=> LNAPE + FA_GPGL
    c("RHEA:45420", "M_H2O + M_LNAPE = M_FA + M_H+ + M_GPNAE"), ## H2O + LNAPE = FA_GPGL + H+ + GPNAE
    c("RHEA:17505", "M_H2O + M_NAE = M_FA + M_Ethanolamine") ## H2O + NAE = FA_GPGL + Ethanolamine
)

reactions <- data.frame(order = seq_len(nrow(reactions)), 
    reaction_RHEA = reactions[, 1], reaction_formula = reactions[, 2])

## run the function
reactions_GPGL <- create_reactions(
    substrates = list(FA = FA_GPGL, SPH = "SPH(d16:0(1OH,3OH)(15Me))"), 
    reactions = reactions)

## show the first entry of reactions_GPGL
reactions_GPGL[[1]]

The object reactions_GPGL is a list that contains 63 entries, each consisting of another two list entries. The first entry will contain the products of each reaction and the second entry will contain a data.frame with the following information on each reaction:

The function create_reaction_adjacency_matrix will create an adjacency matrix from the reactions_GPGL. This adjacency matrix may be used in subsequent analysis, e.g. using the igraph package.

adj_GPGL <- create_reaction_adjacency_matrix(reactions_GPGL)

SPH pool

Block 0: Preparation of Acyl-CoA

Biosynthesis from FA to CoA (RHEA:15421)

The fatty acyls for the synthesis of sphingolipids are required as acyl-CoA. The main differences are that fatty acyls in sphingolipids are generally saturated and longer compared to glycero- and glycerophospholipids and often contain a hydroxygroup at the second position of the acyl.

Block X: Biosynthesis and degradation of sphingolipids

Biosynthesis of Dihydroceramides (RHEA:53424)

Biosynthesis of Dihydrosphingomyelins (RHEA:44620)

Degradation of Dihydrosphingomyelins (DhSM, RHEA:45300)

Biosynthesis of Ceramides (Cer, RHEA:46544)

Biosynthesis of Sphingomyelins (SM, RHEA:18765)

Degradation of Sphingomyelins (SM) to Ceramides (Cer) (sm_to_cer)

Biosynthesis of Ceramide-1-Phosphates (CerP) from Ceramides (Cer) (RHEA:17929)

Degradation of Ceramide-1-Phosphates (CerP) to Ceramides (Cer) (CerP_to_cer)

Gene is unknown.

Biosynthesis of Glucosylceramides (RHEA:12088)

Run the function

reactions <- rbind(
    c(1, "RHEA:15421", "M_FA + M_ATP + M_CoA = M_AcylCoA + M_AMP + M_PPi"), 
    ## Block X
    c(2, "RHEA:53424", "M_AcylCoA + M_Sphinganine = M_DhCer + M_CoA + M_H+"), 
    c(3, "RHEA:44620", "M_PC + M_DhCer = M_1,2-DG + M_DhSM"), 
    c(4, "RHEA:45300", "M_DhSM + M_H2O = M_DhCer + M_H+ + M_Phosphocholine"), 
    c(5, "RHEA:46544", "M_DhCer + 2 M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 = 2 M_Fe3+-cytochrome_b5 + M_Cer + 2 M_H2O"),
    c(6, "RHEA:18765", "M_PC + M_Cer <=> M_1,2-DG + M_SM"),
    c(7, "RHEA:45644", "M_H2O + M_SM = M_H+ + M_Cer + M_Phosphocholine"),
    c(8, "RHEA:17929", "M_Cer + M_ATP = M_ADP + M_CerP + M_H+"),
    c(9, "RHEA:33743", "M_H2O + M_CerP = M_Pi + M_Cer"),
    c(10, "RHEA:12088", "M_Cer + M_UDP-Glucose = M_GlcCer + M_H+ + M_UDP")
)

reactions <- data.frame(order = as.numeric(reactions[, 1]), 
    reaction_RHEA = reactions[, 2], reaction_formula = reactions[, 3])

## run the function
reactions_SPH <- create_reactions(substrates = list(FA = FA_SPH, SPH = "SPH(d16:0(1OH,3OH)(15Me))"), reactions = reactions)

## show the first entry of reactions_SPH
reactions_SPH[[1]]

The object reactions_SPH is a list that contains 10 entries, each consisting of another two list entries. The first entry will contain the products of each reaction and the second entry will contain a data.frame with the following information on each reaction:

The function create_reaction_adjacency_matrix will create an adjacency matrix from the reactions_GPGL. This adjacency matrix may be used in subsequent analysis, e.g. using the igraph package.

adj_SPH <- create_reaction_adjacency_matrix(reactions_SPH)

Network analysis

The adjacency matrix can be converted to graph objects, e.g. via the sna or the igraph packages. The LipidNetworkPredictR package enables users to add experimental data on an igraph graph object derived from the reaction adjacency matrix.

Here, we will simimulate data and map these data on the igraphobject g.

First, we will create an igraph object from the adjacency matrix adj_GPGL.

g <- igraph::graph_from_adjacency_matrix(adjmatrix = adj_SPH,
    mode = "directed", weighted = TRUE, diag = FALSE)

plot(g, vertex.label = NA)

Map data on edges

Experimental data can be used to uncover relational information between features of a network, such as constructing correlation networks based on Pearson or Spearman coefficients. Such networks can be overlaid with the networks that are based on the biochemistry, such as provided by LipidNetworkPredictR.

Such correlation data can be provided by either (1) an adjacency matrix where the entries are the correlation coefficients or (2) a data.frame object with columns specifying the in- and outgoing nodes and (an) additional column(s) specifying the correlation coefficients.

Here, we will only show how to add information via (1).

## simulate the correlation adjacency matrix
.names <- rownames(adj_SPH)
n <- length(.names)
set.seed(2024)
attributes <- matrix(runif(n ^ 2, min = -1, max = 1), ncol = n, nrow = n, 
    dimnames = list(.names, .names))
attributes[upper.tri(attributes)] <- attributes[lower.tri(attributes)]
diag(attributes) <- 1

## add the information to the object g
g_new <- add_attributes(g, attribute_type = "edges", attributes = attributes)

In a next step, we can explore the weighted biochemical reaction network and use the built-in functions in the igraph package.

plot(g_new, edge.weights = E(g_new)$value, vertex.label = NA)

## create an undirected graph, take absolute values from correlation 
## coefficients
g_new_undirected <- g_new
E(g_new_undirected)$weight <- abs(E(g_new_undirected)$value)
g_new_undirected <- as.undirected(g_new_undirected)
cluster_louvain(g_new_undirected)

Map data on vertices

Data can be mapped on vertices of the network, e.g. log2-fold changes or t-values regarding contrasts. Information is passed to the igraph object g via the argument attributes. The assignment of the vertices will be done via the column cols_vertex (here: "name") of the attributes object.

The logFC_cond1 and logFC_cond2 were previously simulated using rnorm.

attributes <- data.frame(
    name = c("CoA(12:0)", "CoA(14:0)", "CoA(16:0)", 
        "Cer(16:0(3OH,4OH,15Me)/12:0)", "Cer(16:0(3OH,4OH,15Me)/14:0)",
        "Cer(16:0(3OH,4OH,15Me)/15:0)", "Cer(16:0(3OH,4OH,15Me)/16:0)",
        "Cer(16:0(3OH,4OH,15Me)/17:0)", "Cer(16:0(3OH,4OH,15Me)/18:0)",
        "Cer(16:0(3OH,4OH,15Me)/19:0)", "Cer(16:0(3OH,4OH,15Me)/20:0)",
        "CerP(16:0(3OH,4OH,15Me)/12:0)", "FA(12:0)", "FA(14:0)",
        "FA(16:0)", "SM(16:0(3OH,4OH,15Me)/12:0)", 
        "SM(16:0(3OH,4OH,15Me)/14:0)", "SM(16:0(3OH,4OH,15Me)/15:0)", 
        "SM(16:0(3OH,4OH,15Me)/16:0)", "SM(16:0(3OH,4OH,15Me)/17:0)", 
        "SM(16:0(3OH,4OH,15Me)/18:0)", "SM(16:0(3OH,4OH,15Me)/19:0)", 
        "SM(16:0(3OH,4OH,15Me)/20:0)", "SPH(d16:0(1OH,3OH)(15Me))",
        "GlcCer(16:0(3OH,4OH,15Me)/17:0)", "GlcCer(16:0(3OH,4OH,15Me)/18:0)",
        "PA(16:0/16:0)"),
    logFC_cond1 = c(-5.08,  0.75,  5.43, -0.62,  2.35, 1.39, 2.91,  0.26, 
        -4.14,  0.19,  6.18, 0.78, -1.81,  4.66, -0.10,  2.84, -0.81,
        -0.81, -0.32,  0.17,  2.25, -1.94,  0.80, 4.21,  0.20, -3.29, 
        -0.11),
    logFC_cond2 = c(-2.73,  6.14,  1.98,  0.09,  1.57,  1.77,  3.08,  4.04,
        -3.01, 1.22, -4.25, 0.39, 0.53, 3.30, 7.10, 2.81, -0.99, -0.09,
        -8.25, 4.94, -3.54, -7.74, -1.98, 0.73,  2.36,  2.53, -0.62))

g_new <- add_attributes(g, attribute_type = "vertex", attributes = attributes, 
    cols_vertex = "name")

Perform clustering based on vertex attributes in the g object. While igraph does not have built-in clustering algorithms specifically designed for vertex attributes, we can use general clustering functions combined with preprocessing or external libraries to achieve this.

Approach 1: Using vertex attributes as input for clustering

We can treat vertex attributes as data points and perform clustering using a method such as k-means, hierarchical clustering, or any other clustering algorithm.

## create a data.frame of vertex attributes
attributes_network <- data.frame(
    logFC_cond1 = V(g_new)$logFC_cond1, 
    logFC_cond2 = V(g_new)$logFC_cond2) 
rownames(attributes_network) <- V(g_new)$name
attributes_network <- attributes_network |>
    na.omit()

## perform k-means clustering on attributes
set.seed(2024)
clusters <- kmeans(attributes_network, centers = 2)$cluster |>
    as.data.frame()
clusters$name <- rownames(clusters)
colnames(clusters)[1] <- "cluster"

## assign clustering results as a new vertex attribute
g_new <- add_attributes(g_new, attribute_type = "vertex", attributes = clusters, cols_vertex = "name")

## check the cluster assignment
V(g_new)$cluster

Approach 2: Network clustering and vertex attributes

If we want to combine vertex attributes with the graph's structural information (e.g., topology), we can extend clustering algorithms with custom similarity metrics.

Example: Similarity based on attributes

  1. compute a similarity or distance matrix based on the vertex attributes,
  2. use this matrix for clustering.
## compute a similarity matrix based on vertex attributes, Euclidean distance
## between attributes
similarity_matrix <- dist(attributes_network)

## perform hierarchical clustering and cut into 2 clusters
hc <- hclust(similarity_matrix)
clusters <- cutree(hc, k = 2)
clusters <- data.frame(name = names(clusters), cluster = clusters)

## assign clustering results as a new vertex attribute
g_new <- add_attributes(g_new, attribute_type = "vertex", attributes = clusters, cols_vertex = "name")

## check the cluster assignment
V(g_new)$cluster

Approach 3: Community detection and attributes

The igraph package provides community detection algorithms based on network topology (e.g., Louvain). We can augment this by adding attribute similarity as weights.

  1. create edge weights based on attributes: combine structural and attribute-based similarity into edge weights.

  2. run community detection: use algorithms like cluster_louvain or cluster_fast_greedy with the custom weights.

## calculate edge weights based on attribute similarity
E(g_new)$weight_logFC_cond1 <- 1 / 
    (1 + abs(V(g_new)[ends(g_new, E(g_new))[,1]]$logFC_cond1 - 
        V(g_new)[ends(g_new, E(g_new))[,2]]$logFC_cond1))

## perform community detection
g_new_undirected <- as.undirected(g_new)
community <- cluster_louvain(g_new_undirected, weights = E(g_new_undirected)$weight_logFC_cond1)

## assign community membership to vertices
V(g_new_undirected)$community <- membership(community)

# Check the community assignment
V(g_new_undirected)$community

List of implemented reactions

Please find here a list of the implemented reactions (ordered according to RHEA id).

dg_to_pa: - "RHEA:10272": "M_1,2-DG + M_ATP = M_PA + M_ADP + M_H+" - "RHEA:10273": "M_1,2-DG + M_ATP => M_PA + M_ADP + M_H+" - "RHEA:10274": "M_1,2-DG + M_ATP <= M_PA + M_ADP + M_H+" - "RHEA:10275": "M_1,2-DG + M_ATP <=> M_PA + M_ADP + M_H+"

pc_to_dg: - "RHEA:10604": "M_PC + M_H2O = M_1,2-DG + M_H+ + M_Phosphocholine" - "RHEA:10605": "M_PC + M_H2O => M_1,2-DG + M_H+ + M_Phosphocholine" - "RHEA:10606": "M_PC + M_H2O <= M_1,2-DG + M_H+ + M_Phosphocholine" - "RHEA:10607": "M_PC + M_H2O <=> M_1,2-DG + M_H+ + M_Phosphocholine"

dg_to_tg: - "RHEA:10868": "M_1,2-DG + M_AcylCoA = M_TG + M_CoA" - "RHEA:10869": "M_1,2-DG + M_AcylCoA => M_TG + M_CoA" - "RHEA:10870": "M_1,2-DG + M_AcylCoA <= M_TG + M_CoA" - "RHEA:10871": "M_1,2-DG + M_AcylCoA <=> M_TG + M_CoA"

cdpdg_to_pi: - "RHEA:11580": "M_CDP-DG + M_myo-Inositol = M_PI + M_CMP + M_H+" - "RHEA:11581": "M_CDP-DG + M_myo-Inositol => M_PI + M_CMP + M_H+" - "RHEA:11582": "M_CDP-DG + M_myo-Inositol <= M_PI + M_CMP + M_H+" - "RHEA:11583": "M_CDP-DG + M_myo-Inositol <=> M_PI + M_CMP + M_H+"

cer_to_glccer: - "RHEA:12088": "M_Cer + M_UDP-Glucose = M_GlcCer + M_H+ + M_UDP" - "RHEA:12089": "M_Cer + M_UDP-Glucose => M_GlcCer + M_H+ + M_UDP" - "RHEA:12090": "M_Cer + M_UDP-Glucose <= M_GlcCer + M_H+ + M_UDP" - "RHEA:12091": "M_Cer + M_UDP-Glucose <=> M_GlcCer + M_H+ + M_UDP"

cdpdg_to_pgp: - "RHEA:12593": "M_CDP-DG + M_Glycerol-3-P = M_PGP + M_CMP + M_H+" - "RHEA:12594": "M_CDP-DG + M_Glycerol-3-P => M_PGP + M_CMP + M_H+" - "RHEA:12595": "M_CDP-DG + M_Glycerol-3-P <= M_PGP + M_CMP + M_H+" - "RHEA:12596": "M_CDP-DG + M_Glycerol-3-P <=> M_PGP + M_CMP + M_H+"

sn1lpc_to_pc: - "RHEA:12937": "M_1-LPC + M_AcylCoA = M_PC + M_CoA" - "RHEA:12938": "M_1-LPC + M_AcylCoA => M_PC + M_CoA" - "RHEA:12939": "M_1-LPC + M_AcylCoA <= M_PC + M_CoA" - "RHEA:12940": "M_1-LPC + M_AcylCoA <=> M_PC + M_CoA"

pc_to_pa: - "RHEA:14445": "M_PC + M_H2O = M_PA + M_Choline + M_H+" - "RHEA:14446": "M_PC + M_H2O => M_PA + M_Choline + M_H+" - "RHEA:14447": "M_PC + M_H2O <= M_PA + M_Choline + M_H+" - "RHEA:14448": "M_PC + M_H2O <=> M_PA + M_Choline + M_H+"

sn1lpc_to_fa: - "RHEA:15177": "M_1-LPC + M_H2O = M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:15178": "M_1-LPC + M_H2O => M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:15179": "M_1-LPC + M_H2O <= M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:15180": "M_1-LPC + M_H2O <=> M_FA + M_H+ + M_Glycerophosphocholine"

coa_to_lpa: - "RHEA:15325": "M_AcylCoA + M_Glycerol-3-P = M_LPA + M_CoA" - "RHEA:15326": "M_AcylCoA + M_Glycerol-3-P => M_LPA + M_CoA" - "RHEA:15327": "M_AcylCoA + M_Glycerol-3-P <= M_LPA + M_CoA" - "RHEA:15328": "M_AcylCoA + M_Glycerol-3-P <=> M_LPA + M_CoA"

fa_to_coa: - "RHEA:15421"/"RHEA:38883": "M_FA + M_ATP + M_CoA = M_AcylCoA + M_AMP + M_PPi" - "RHEA:15422"/"RHEA:38884": "M_FA + M_ATP + M_CoA => M_AcylCoA + M_AMP + M_PPi" - "RHEA:15423"/"RHEA:38885": "M_FA + M_ATP + M_CoA <= M_AcylCoA + M_AMP + M_PPi" - "RHEA:15424"/"RHEA:38886": "M_FA + M_ATP + M_CoA <=> M_AcylCoA + M_AMP + M_PPi"

pc_to_sn1lpc: - "RHEA:15801": "M_PC + M_H2O = M_1-LPC + M_FA + M_H+" - "RHEA:15802": "M_PC + M_H2O => M_1-LPC + M_FA + M_H+A" - "RHEA:15803": "M_PC + M_H2O <= M_1-LPC + M_FA + M_H+" - "RHEA:15804": "M_PC + M_H2O <=> M_1-LPC + M_FA + M_H+"

pa_to_cdpdg: - "RHEA:16229": "M_PA + M_CTP + M_H+ = M_CDP-DG + M_PPi" - "RHEA:16230": "M_PA + M_CTP + M_H+ => M_CDP-DG + M_PPi" - "RHEA:16231": "M_PA + M_CTP + M_H+ <= M_CDP-DG + M_PPi" - "RHEA:16232": "M_PA + M_CTP + M_H+ <=> M_CDP-DG + M_PPi"

lpep_to_pep: - "RHEA:16245": "M_LPE-P + M_AcylCoA = M_PE-P + M_CoA" - "RHEA:16246": "M_LPE-P + M_AcylCoA => M_PE-P + M_CoA" - "RHEA:16247": "M_LPE-P + M_AcylCoA <= M_PE-P + M_CoA" - "RHEA:16248": "M_LPE-P + M_AcylCoA <=> M_PE-P + M_CoA"

sn2mg_to_dg: - "RHEA:16741"/"RHEA:32947": "M_2-MG + M_AcylCoA = M_1,2-DG + M_CoA" - "RHEA:16742"/"RHEA:32948": "M_2-MG + M_AcylCoA => M_1,2-DG + M_CoA" - "RHEA:16743"/"RHEA:32949": "M_2-MG + M_AcylCoA <= M_1,2-DG + M_CoA" - "RHEA:16744"/"RHEA:32950": "M_2-MG + M_AcylCoA <=> M_1,2-DG + M_CoA"

lpep_to_fal: - "RHEA:16905": "M_1-LPE-P + M_H2O = M_FAL + M_Glycerophosphoethanolamine" - "RHEA:16906": "M_1-LPE-P + M_H2O => M_FAL + M_Glycerophosphoethanolamine" - "RHEA:16907": "M_1-LPE-P + M_H2O <= M_FAL + M_Glycerophosphoethanolamine" - "RHEA:16908": "M_1-LPE-P + M_H2O <=> M_FAL + M_Glycerophosphoethanolamine"

coa_to_ce: - "RHEA:17229": "M_Cholesterol + M_AcylCoA = M_CE + M_CoA" - "RHEA:17230": "M_Cholesterol + M_AcylCoA => M_CE + M_CoA" - "RHEA:17231": "M_Cholesterol + M_AcylCoA <= M_CE + M_CoA" - "RHEA:17232": "M_Cholesterol + M_AcylCoA <=> M_CE + M_CoA"

nae_to_fa: - "RHEA:17505"/"RHEA:39995": "M_H2O + M_NAE = M_FA + M_Ethanolamine" - "RHEA:17506"/"RHEA:39996": "M_H2O + M_NAE => M_FA + M_Ethanolamine" - "RHEA:17507"/"RHEA:39997": "M_H2O + M_NAE <= M_FA + M_Ethanolamine" - "RHEA:17508"/"RHEA:39998": "M_H2O + M_NAE <=> M_FA + M_Ethanolamine"

coa_to_acdhap: - "RHEA:17657": "M_AcylCoA + M_Dihydroxyacetone-P = M_AcylDHAP + M_CoA" - "RHEA:17658": "M_AcylCoA + M_Dihydroxyacetone-P => M_AcylDHAP + M_CoA" - "RHEA:17659": "M_AcylCoA + M_Dihydroxyacetone-P <= M_AcylDHAP + M_CoA" - "RHEA:17660": "M_AcylCoA + M_Dihydroxyacetone-P <=> M_AcylDHAP + M_CoA"

cer_to_cerp: - "RHEA:17929": "M_Cer + M_ATP = M_ADP + M_CerP + M_H+" - "RHEA:17930": "M_Cer + M_ATP => M_ADP + M_CerP + M_H+" - "RHEA:17931": "M_Cer + M_ATP <= M_ADP + M_CerP + M_H+" - "RHEA:17932": "M_Cer + M_ATP <=> M_ADP + M_CerP + M_H+"

pi_to_sn1lpi: - "RHEA:18001": "M_PI + M_H2O = M_1-LPI + M_FA + M_H+" - "RHEA:18002": "M_PI + M_H2O => M_1-LPI + M_FA + M_H+" - "RHEA:18003": "M_PI + M_H2O <= M_1-LPI + M_FA + M_H+" - "RHEA:18004": "M_PI + M_H2O <=> M_1-LPI + M_FA + M_H+"

pc_to_sn2lpc: - "RHEA:18689": "M_PC + M_H2O = M_2-LPC + M_FA + M_H+" - "RHEA:18690": "M_PC + M_H2O => M_2-LPC + M_FA + M_H+" - "RHEA:18691": "M_PC + M_H2O <= M_2-LPC + M_FA + M_H+" - "RHEA:18692": "M_PC + M_H2O <=> M_2-LPC + M_FA + M_H+"

cer_to_sm: - "RHEA:18765": "M_PC + M_Cer <=> M_1,2-DG + M_SM" - "RHEA:18766": "M_PC + M_Cer <=> M_1,2-DG + M_SM" - "RHEA:18767": "M_PC + M_Cer <=> M_1,2-DG + M_SM" - "RHEA:18768": "M_PC + M_Cer <=> M_1,2-DG + M_SM"

lpa_to_pa: - "RHEA:19709": "M_LPA + M_AcylCoA = M_PA + M_CoA" - "RHEA:19710": "M_LPA + M_AcylCoA => M_PA + M_CoA" - "RHEA:19711": "M_LPA + M_AcylCoA <= M_PA + M_CoA" - "RHEA:19712": "M_LPA + M_AcylCoA <=> M_PA + M_CoA"

ps_to_pe - "RHEA:20828": "M_PS + M_H+ = M_PE + M_CO2" - "RHEA:20829": "M_PS + M_H+ => M_PE + M_CO2" - "RHEA:20830": "M_PS + M_H+ <= M_PE + M_CO2" - "RHEA:20831": "M_PS + M_H+ <=> M_PE + M_CO2"

peo_to_pep: - "RHEA:22956": "M_PE-O + M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 = M_PE-P + M_Fe3+-cytochrome_b5 + 2 M_H2O" - "RHEA:22957": "M_PE-O + M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 => M_PE-P + M_Fe3+-cytochrome_b5 + 2 M_H2O" - "RHEA:22958": "M_PE-O + M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 <= M_PE-P + M_Fe3+-cytochrome_b5 + 2 M_H2O" - "RHEA:22959": "M_PE-O + M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 <=> M_PE-P + M_Fe3+-cytochrome_b5 + 2 M_H2O"

lpco_to_pco: - "RHEA:23992": "M_1-LPC-O + M_AcylCoA = M_PC-O + M_CoA" - "RHEA:23993": "M_1-LPC-O + M_AcylCoA => M_PC-O + M_CoA" - "RHEA:23994": "M_1-LPC-O + M_AcylCoA <= M_PC-O + M_CoA" - "RHEA:23995": "M_1-LPC-O + M_AcylCoA <=> M_PC-O + M_CoA"

pa_to_dg: - "RHEA:27429": "M_PA + M_H2O = M_1,2-DG + M_Pi" - "RHEA:27430": "M_PA + M_H2O => M_1,2-DG + M_Pi" - "RHEA:27431": "M_PA + M_H2O <= M_1,2-DG + M_Pi" - "RHEA:27432": "M_PA + M_H2O <=> M_1,2-DG + M_Pi"

pe_to_ps: - "RHEA:27606": "M_PE + M_L-Serine = M_PS + M_Ethanolamine" - "RHEA:27607": "M_PE + M_L-Serine => M_PS + M_Ethanolamine" - "RHEA:27608": "M_PE + M_L-Serine <= M_PS + M_Ethanolamine" - "RHEA:27609": "M_PE + M_L-Serine <=> M_PS + M_Ethanolamine"

sn2mg_to_fa: - "RHEA:32871": "M_H2O + M_2-MG = M_FA + M_Glycerol + M_H+" - "RHEA:32872": "M_H2O + M_2-MG => M_FA + M_Glycerol + M_H+" - "RHEA:32873": "M_H2O + M_2-MG <= M_FA + M_Glycerol + M_H+" - "RHEA:32874": "M_H2O + M_2-MG <=> M_FA + M_Glycerol + M_H+"

pg_to_cl: - "RHEA:32931": "M_PG + M_CDP-DG = M_CL + M_CMP + M_H+" - "RHEA:32932": "M_PG + M_CDP-DG => M_CL + M_CMP + M_H+" - "RHEA:32933": "M_PG + M_CDP-DG <= M_CL + M_CMP + M_H+" - "RHEA:32934": "M_PG + M_CDP-DG <=> M_CL + M_CMP + M_H+"

cl_to_lcl: - "RHEA:32935": "M_CL + M_H2O = M_1,2,4-LCL + M_FA + M_H+" - "RHEA:32936": "M_CL + M_H2O => M_1,2,4-LCL + M_FA + M_H+" - "RHEA:32937": "M_CL + M_H2O <= M_1,2,4-LCL + M_FA + M_H+" - "RHEA:32938": "M_CL + M_H2O <=> M_1,2,4-LCL + M_FA + M_H+"

dg_to_pc: - "RHEA:32939": "M_1,2-DG + M_CDP-Choline = M_PC + M_CMP + M_H+" - "RHEA:32940": "M_1,2-DG + M_CDP-Choline => M_PC + M_CMP + M_H+" - "RHEA:32941": "M_1,2-DG + M_CDP-Choline <= M_PC + M_CMP + M_H+" - "RHEA:32942": "M_1,2-DG + M_CDP-Choline <=> M_PC + M_CMP + M_H+"

dg_to_pe: - "RHEA:32943": "M_1,2-DG + M_CDP-Ethanolamine = M_PE + M_CMP + M_H+"``` -"RHEA:32944":"M_1,2-DG + M_CDP-Ethanolamine => M_PE + M_CMP + M_H+"-"RHEA:32945":"M_1,2-DG + M_CDP-Ethanolamine <= M_PE + M_CMP + M_H+"-"RHEA:32946":"M_1,2-DG + M_CDP-Ethanolamine <=> M_PE + M_CMP + M_H+"`

sn1lpe_to_fa: - "RHEA:32967": "M_1-LPE + M_H2O = M_FA + M_H+ + M_Glycerophosphoethanolamine" - "RHEA:32968": "M_1-LPE + M_H2O => M_FA + M_H+ + M_Glycerophosphoethanolamine" - "RHEA:32969": "M_1-LPE + M_H2O <= M_FA + M_H+ + M_Glycerophosphoethanolamine" - "RHEA:32970": "M_1-LPE + M_H2O <=> M_FA + M_H+ + M_Glycerophosphoethanolamine"

sn1lpe_to_pe: - "RHEA:32995": "M_1-LPE + M_AcylCoA = M_PE + M_CoA" - "RHEA:32996": "M_1-LPE + M_AcylCoA => M_PE + M_CoA" - "RHEA:32997": "M_1-LPE + M_AcylCoA <= M_PE + M_CoA" - "RHEA:32998": "M_1-LPE + M_AcylCoA <=> M_PE + M_CoA"

nape_to_nae: - "RHEA:33159": "M_H2O + M_NAPE = M_PA + M_NAE + M_H+" - "RHEA:33160": "M_H2O + M_NAPE => M_PA + M_NAE + M_H+" - "RHEA:33161": "M_H2O + M_NAPE <= M_PA + M_NAE + M_H+" - "RHEA:33162": "M_H2O + M_NAPE <=> M_PA + M_NAE + M_H+"

sn1lpi_to_pi: - "RHEA:33195": "M_1-LPI + M_AcylCoA = M_PI + M_CoA" - "RHEA:33196": "M_1-LPI + M_AcylCoA => M_PI + M_CoA" - "RHEA:33197": "M_1-LPI + M_AcylCoA <= M_PI + M_CoA" - "RHEA:33198": "M_1-LPI + M_AcylCoA <=> M_PI + M_CoA"

lpg_to_pg - "RHEA:33203": "PG(14:0/0:0) + CoA(16:0) = PG(14:0/16:0) + CoA" - "RHEA:33204": "PG(14:0/0:0) + CoA(16:0) => PG(14:0/16:0) + CoA" - "RHEA:33205": "PG(14:0/0:0) + CoA(16:0) <= PG(14:0/16:0) + CoA" - "RHEA:33206": "PG(14:0/0:0) + CoA(16:0) <=> PG(14:0/16:0) + CoA"

tg_to_dg: - "RHEA:33271"/"RHEA:44864": "M_TG + M_H2O = M_1,2-DG + M_FA + M_H+" - "RHEA:33272"/"RHEA:44865": "M_TG + M_H2O => M_1,2-DG + M_FA + M_H+" - "RHEA:33273"/"RHEA:44866": "M_TG + M_H2O <= M_1,2-DG + M_FA + M_H+" - "RHEA:33274"/"RHEA:44867": "M_TG + M_H2O <=> M_1,2-DG + M_FA + M_H+"

dg_to_sn2mg: - "RHEA:33275": "M_1,2-DG + M_H2O = M_2-MG + M_FA + M_H+" - "RHEA:33276": "M_1,2-DG + M_H2O => M_2-MG + M_FA + M_H+" - "RHEA:33277": "M_1,2-DG + M_H2O <= M_2-MG + M_FA + M_H+" - "RHEA:33278": "M_1,2-DG + M_H2O <=> M_2-MG + M_FA + M_H+"

cerp_to_cer: - "RHEA:33743": "M_H2O + M_CerP = M_Pi + M_Cer" - "RHEA:33744": "M_H2O + M_CerP => M_Pi + M_Cer" - "RHEA:33745": "M_H2O + M_CerP <= M_Pi + M_Cer" - "RHEA:33746": "M_H2O + M_CerP <=> M_Pi + M_Cer"

sn1mg_to_lpa: - "RHEA:33747": "M_1-MG + M_ATP = M_LPA + M_ADP + M_H+" - "RHEA:33748": "M_1-MG + M_ATP => M_LPA + M_ADP + M_H+" - "RHEA:33749": "M_1-MG + M_ATP <= M_LPA + M_ADP + M_H+" - "RHEA:33750": "M_1-MG + M_ATP <=> M_LPA + M_ADP + M_H+"

pgp_to_pg: - "RHEA:33751": "M_PGP + M_H2O = M_PG + M_Pi" - "RHEA:33752": "M_PGP + M_H2O => M_PG + M_Pi" - "RHEA:33753": "M_PGP + M_H2O <= M_PG + M_Pi" - "RHEA:33754": "M_PGP + M_H2O <=> M_PG + M_Pi"

sn1mg_to_fa: - "RHEA:34019": "M_1-MG + M_H2O = M_FA + M_Glycerol + M_H+" - "RHEA:34020": "M_1-MG + M_H2O => M_FA + M_Glycerol + M_H+" - "RHEA:34021": "M_1-MG + M_H2O <= M_FA + M_Glycerol + M_H+" - "RHEA:34022": "M_1-MG + M_H2O <=> M_FA + M_Glycerol + M_H+"

dg_to_sn1mg: - "RHEA:35663"/"RHEA:44712": "M_1,2-DG + M_H2O = M_1-MG + M_FA + M_H+" - "RHEA:35664"/"RHEA:44713": "M_1,2-DG + M_H2O => M_1-MG + M_FA + M_H+" - "RHEA:35665"/"RHEA:44714": "M_1,2-DG + M_H2O <= M_1-MG + M_FA + M_H+" - "RHEA:35666"/"RHEA:44715": "M_1,2-DG + M_H2O <=> M_1-MG + M_FA + M_H+"

lcl_to_cl: - "RHEA:35839": "M_1,2,4-LCL + M_AcylCoA = M_CL + M_CoA" - "RHEA:35840": "M_1,2,4-LCL + M_AcylCoA => M_CL + M_CoA" - "RHEA:35841": "M_1,2,4-LCL + M_AcylCoA <= M_CL + M_CoA" - "RHEA:35842": "M_1,2,4-LCL + M_AcylCoA <=> M_CL + M_CoA"

lpco_to_mgo: - "RHEA:36083": "M_1-LPC-O + M_H2O = M_1-MG-O + M_H+ + M_Phosphocholine" - "RHEA:36084": "M_1-LPC-O + M_H2O => M_1-MG-O + M_H+ + M_Phosphocholine" - "RHEA:36085": "M_1-LPC-O + M_H2O <= M_1-MG-O + M_H+ + M_Phosphocholine" - "RHEA:36086": "M_1-LPC-O + M_H2O <=> M_1-MG-O + M_H+ + M_Phosphocholine"

acyldhap_to_alkyldhap: - "RHEA:36171": "M_AcylDHAP + M_FAO = M_AlkylDHAP + M_FA + M_H+" - "RHEA:36172": "M_AcylDHAP + M_FAO => M_AlkylDHAP + M_FA + M_H+" - "RHEA:36173": "M_AcylDHAP + M_FAO <= M_AlkylDHAP + M_FA + M_H+" - "RHEA:36174": "M_AcylDHAP + M_FAO <=> M_AlkylDHAP + M_FA + M_H+"

alkyldhap_to_lpao: - "RHEA:36175": "M_AlkylDHAP + M_H+ + M_NADPH = M_LPA-O + M_NADP" - "RHEA:36176": "M_AlkylDHAP + M_H+ + M_NADPH => M_LPA-O + M_NADP" - "RHEA:36177": "M_AlkylDHAP + M_H+ + M_NADPH <= M_LPA-O + M_NADP" - "RHEA:36178": "M_AlkylDHAP + M_H+ + M_NADPH <=> M_LPA-O + M_NADP"

dgo_to_pco: - "RHEA:36179": "M_DG-O + M_CDP-Choline = M_PC-O + M_CMP + M_H+" - "RHEA:36180": "M_DG-O + M_CDP-Choline => M_PC-O + M_CMP + M_H+" - "RHEA:36181": "M_DG-O + M_CDP-Choline <= M_PC-O + M_CMP + M_H+" - "RHEA:36182": "M_DG-O + M_CDP-Choline <=> M_PC-O + M_CMP + M_H+"

dgo_to_peo: - "RHEA:36187": "M_DG-O + M_CDP-Ethanolamine = M_PE-O + M_CMP + M_H+" - "RHEA:36188": "M_DG-O + M_CDP-Ethanolamine => M_PE-O + M_CMP + M_H+" - "RHEA:36189": "M_DG-O + M_CDP-Ethanolamine <= M_PE-O + M_CMP + M_H+" - "RHEA:36190": "M_DG-O + M_CDP-Ethanolamine <=> M_PE-O + M_CMP + M_H+"

pep_to_lpep: - "RHEA:36195": "M_PE-P + M_H2O = M_LPE-P + M_FA + M_H+" - "RHEA:36196": "M_PE-P + M_H2O => M_LPE-P + M_FA + M_H+" - "RHEA:36197": "M_PE-P + M_H2O <= M_LPE-P + M_FA + M_H+" - "RHEA:36198": "M_PE-P + M_H2O <=> M_LPE-P + M_FA + M_H+"

lpep_to_mgp: - "RHEA:36199": "M_1-LPE-P + M_H2O = M_1-MG-P + M_H+ + M_Phosphoethanolamine" - "RHEA:36200": "M_1-LPE-P + M_H2O => M_1-MG-P + M_H+ + M_Phosphoethanolamine" - "RHEA:36201": "M_1-LPE-P + M_H2O <= M_1-MG-P + M_H+ + M_Phosphoethanolamine" - "RHEA:36202": "M_1-LPE-P + M_H2O <=> M_1-MG-P + M_H+ + M_Phosphoethanolamine"

lpep_to_lpap: - "RHEA:36203": "M_1-LPE-P + M_H2O = M_LPA-P + M_Ethanolamine + M_H+" - "RHEA:36204": "M_1-LPE-P + M_H2O => M_LPA-P + M_Ethanolamine + M_H+" - "RHEA:36205": "M_1-LPE-P + M_H2O <= M_LPA-P + M_Ethanolamine + M_H+" - "RHEA:36206": "M_1-LPE-P + M_H2O <=> M_LPA-P + M_Ethanolamine + M_H+"

pco_to_lpco: - "RHEA:36231": "M_PC-O + M_H2O = M_LPC-O + M_FA + M_H+" - "RHEA:36232": "M_PC-O + M_H2O => M_LPC-O + M_FA + M_H+" - "RHEA:36233": "M_PC-O + M_H2O <= M_LPC-O + M_FA + M_H+" - "RHEA:36234": "M_PC-O + M_H2O <=> M_LPC-O + M_FA + M_H+"

lpao_to_pao: - "RHEA:36235": "M_LPA-O + M_AcylCoA = M_PA-O + M_CoA" - "RHEA:36236": "M_LPA-O + M_AcylCoA => M_PA-O + M_CoA" - "RHEA:36237": "M_LPA-O + M_AcylCoA <= M_PA-O + M_CoA" - "RHEA:36238": "M_LPA-O + M_AcylCoA <=> M_PA-O + M_CoA"

pao_to_dgo: - "RHEA:36239": "M_PA-O + M_H2O = M_DG-O + M_Pi" - "RHEA:36240": "M_PA-O + M_H2O => M_DG-O + M_Pi" - "RHEA:36241": "M_PA-O + M_H2O <= M_DG-O + M_Pi" - "RHEA:36242": "M_PA-O + M_H2O <=> M_DG-O + M_Pi"

sn1mg_to_dg: - "RHEA:38463"/"RHEA:39943": "M_1-MG + M_AcylCoA = M_1,2-DG + M_CoA" - "RHEA:38464"/"RHEA:39944": "M_1-MG + M_AcylCoA => M_1,2-DG + M_CoA" - "RHEA:38465"/"RHEA:39945": "M_1-MG + M_AcylCoA <= M_1,2-DG + M_CoA" - "RHEA:38466"/"RHEA:39946": "M_1-MG + M_AcylCoA <=> M_1,2-DG + M_CoA"

lpco_to_lpao: - "RHEA:39927": "M_1-LPC-O + M_H2O = M_1-LPA-O + M_Choline + M_H+" - "RHEA:39928": "M_1-LPC-O + M_H2O => M_1-LPA-O + M_Choline + M_H+" - "RHEA:39929": "M_1-LPC-O + M_H2O <= M_1-LPA-O + M_Choline + M_H+" - "RHEA:39930": "M_1-LPC-O + M_H2O <=> M_1-LPA-O + M_Choline + M_H+"

pi_to_dg: - "RHEA:43484": "M_PI + M_H2O = M_myo-Inositol-1-P + M_1,2-DG + M_H+" - "RHEA:43485": "M_PI + M_H2O => M_myo-Inositol-1-P + M_1,2-DG + M_H+" - "RHEA:43486": "M_PI + M_H2O <= M_myo-Inositol-1-P + M_1,2-DG + M_H+" - "RHEA:43487": "M_PI + M_H2O <=> M_myo-Inositol-1-P + M_1,2-DG + M_H+"

pe_to_sn2lpe: - "RHEA:44408": "M_PE + M_H2O = M_2-LPE + M_FA + M_H+" - "RHEA:44409": "M_PE + M_H2O => M_2-LPE + M_FA + M_H+" - "RHEA:44410": "M_PE + M_H2O <= M_2-LPE + M_FA + M_H+" - "RHEA:44411": "M_PE + M_H2O <=> M_2-LPE + M_FA + M_H+"

pe_to_sn1lpe: - "RHEA:44604": "M_PE + M_H2O = M_1-LPE + M_FA + M_H+" - "RHEA:44605": "M_PE + M_H2O => M_1-LPE + M_FA + M_H+" - "RHEA:44606": "M_PE + M_H2O <= M_1-LPE + M_FA + M_H+" - "RHEA:44607": "M_PE + M_H2O <=> M_1-LPE + M_FA + M_H+"

dhcer_to_dhsm: - "RHEA:44620": "M_PC + M_DhCer = M_1,2-DG + M_DhSM" - "RHEA:44621": "M_PC + M_DhCer => M_1,2-DG + M_DhSM" - "RHEA:44622": "M_PC + M_DhCer <= M_1,2-DG + M_DhSM" - "RHEA:44623": "M_PC + M_DhCer <=> M_1,2-DG + M_DhSM"

sn2lpc_to_fa: - "RHEA:44696": "M_2-LPC + M_H2O = M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:44697": "M_2-LPC + M_H2O => M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:44698": "M_2-LPC + M_H2O <= M_FA + M_H+ + M_Glycerophosphocholine" - "RHEA:44699": "M_2-LPC + M_H2O <=> M_FA + M_H+ + M_Glycerophosphocholine"

pc_to_ps: - "RHEA:45088": "M_PC + M_L-Serine = M_PS + M_Choline" - "RHEA:45089": "M_PC + M_L-Serine => M_PS + M_Choline" - "RHEA:45090": "M_PC + M_L-Serine <= M_PS + M_Choline" - "RHEA:45091": "M_PC + M_L-Serine <=> M_PS + M_Choline"

pe_to_nape_sn1: - "RHEA:45188": "M_PC + M_PE = M_2-LPC + M_H+ + M_NAPE" - "RHEA:45189": "M_PC + M_PE => M_2-LPC + M_H+ + M_NAPE" - "RHEA:45190": "M_PC + M_PE <= M_2-LPC + M_H+ + M_NAPE" - "RHEA:45191": "M_PC + M_PE <=> M_2-LPC + M_H+ + M_NAPE"

pe_to_nape_sn2: - "RHEA:45192": "M_PC + M_PE = M_1-LPC + M_H+ + M_NAPE" - "RHEA:45193": "M_PC + M_PE => M_1-LPC + M_H+ + M_NAPE" - "RHEA:45194": "M_PC + M_PE <= M_1-LPC + M_H+ + M_NAPE" - "RHEA:45195": "M_PC + M_PE <=> M_1-LPC + M_H+ + M_NAPE"

dhsm_to_dhcer: - "RHEA:45300": "M_DhSM + M_H2O = M_DhCer + M_H+ + M_Phosphocholine" - "RHEA:45301": "M_DhSM + M_H2O => M_DhCer + M_H+ + M_Phosphocholine" - "RHEA:45302": "M_DhSM + M_H2O <= M_DhCer + M_H+ + M_Phosphocholine" - "RHEA:45303": "M_DhSM + M_H2O <=> M_DhCer + M_H+ + M_Phosphocholine"

lnape_to_gpnae: - "RHEA:45420": "M_H2O + M_LNAPE = M_FA + M_H+ + M_GPNAE" - "RHEA:45421": "M_H2O + M_LNAPE => M_FA + M_H+ + M_GPNAE" - "RHEA:45422": "M_H2O + M_LNAPE <= M_FA + M_H+ + M_GPNAE" - "RHEA:45423": "M_H2O + M_LNAPE <=> M_FA + M_H+ + M_GPNAE"

nape_to_lnape: - "RHEA:45460": "M_H2O + M_NAPE = M_FA + M_H+ + M_LNAPE" - "RHEA:45461": "M_H2O + M_NAPE => M_FA + M_H+ + M_LNAPE" - "RHEA:45462": "M_H2O + M_NAPE <= M_FA + M_H+ + M_LNAPE" - "RHEA:45463": "M_H2O + M_NAPE <=> M_FA + M_H+ + M_LNAPE"`

dhcer_to_cer: - "RHEA:46544": "M_DhCer + 2 M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 = 2 M_Fe3+-cytochrome_b5 + M_Cer + 2 M_H2O" - "RHEA:46545": "M_DhCer + 2 M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 => 2 M_Fe3+-cytochrome_b5 + M_Cer + 2 M_H2O" - "RHEA:46546": "M_DhCer + 2 M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 <= 2 M_Fe3+-cytochrome_b5 + M_Cer + 2 M_H2O" - "RHEA:46547": "M_DhCer + 2 M_Fe2+-cytochrome_b5 + 2 M_H+ + M_O2 <=> 2 M_Fe3+-cytochrome_b5 + M_Cer + 2 M_H2O"

sm_to_cer: - "RHEA:45644": "M_H2O + M_SM = M_H+ + M_Cer + M_Phosphocholine" - "RHEA:45644": "M_H2O + M_SM => M_H+ + M_Cer + M_Phosphocholine" - "RHEA:45644": "M_H2O + M_SM <= M_H+ + M_Cer + M_Phosphocholine" - "RHEA:45644": "M_H2O + M_SM <=> M_H+ + M_Cer + M_Phosphocholine"

coa_to_fao: - "RHEA:52716": "M_AcylCoA + 2 M_H+ + 2 M_NADPH = M_FAO + M_CoA + 2 M_NADP" - "RHEA:52717": "M_AcylCoA + 2 M_H+ + 2 M_NADPH => M_FAO + M_CoA + 2 M_NADP" - "RHEA:52718": "M_AcylCoA + 2 M_H+ + 2 M_NADPH <= M_FAO + M_CoA + 2 M_NADP" - "RHEA:52719": "M_AcylCoA + 2 M_H+ + 2 M_NADPH <=> M_FAO + M_CoA + 2 M_NADP"

sphinga_to_dhcer: - "RHEA:53424": "M_AcylCoA + M_Sphinganine = M_DhCer + M_CoA + M_H+" - "RHEA:53425": "M_AcylCoA + M_Sphinganine => M_DhCer + M_CoA + M_H+" - "RHEA:53426": "M_AcylCoA + M_Sphinganine <= M_DhCer + M_CoA + M_H+" - "RHEA:53427": "M_AcylCoA + M_Sphinganine <=> M_DhCer + M_CoA + M_H+"

pep_to_napep_sn1: - "RHEA:63596": "M_PE-P + M_PC = M_2-LPC+ M_H+ + M_NAPEP" - "RHEA:63597": "M_PE-P + M_PC => M_2-LPC+ M_H+ + M_NAPEP" - "RHEA:63598": "M_PE-P + M_PC <= M_2-LPC+ M_H+ + M_NAPEP" - "RHEA:63599": "M_PE-P + M_PC <=> M_2-LPC+ M_H+ + M_NAPEP"

pe_to_dg: - "RHEA:78951": "M_H2O + M_PE = M_P-Ethanolamine + M_1,2-DG + M_H+" - "RHEA:78952": "M_H2O + M_PE => M_P-Ethanolamine + M_1,2-DG + M_H+" - "RHEA:78953": "M_H2O + M_PE <= M_P-Ethanolamine + M_1,2-DG + M_H+" - "RHEA:78954": "M_H2O + M_PE <=> M_P-Ethanolamine + M_1,2-DG + M_H+"

sn2lpe_to_fa: - "sn2lpe_to_fa": "M_2-LPE + M_H2O <=> M_FA + M_H+ + M_Glycerophosphoethanolamine"

lpeo_to_peo: - "lpeo_to_peo": "M_AcylCoA + M_ak2lgpe <=> M_CoA + M_PE-O"

sn2mg_to_sn1mg: - "sn2mg_to_sn1mg": "M_2-MG <=> M_1-MG"

nape_to_pnae: - "nape_to_pnae": "M_NAPE + M_H2O <=> M_PNAE + M_1,2-DG"

napeo_to_nae: - "napeo_to_nae": "M_NAPEO + M_H2O <=> M_NAE + M_PA-O"

pe_to_pa: - "pe_to_pa": "M_PE + M_H2O <=> M_PA + M_Ethanolamine + M_H+"

peo_to_lpeo: - "peo_to_lpeo": "M_PE-O + M_H2O <=> M_LPE-O + M_FA + M_H+"

peo_to_napeo_sn1: - "peo_to_napeo_sn1": "M_PE-O + M_PC <=> M_NAPEO + M_2-LPC"

peo_to_napeo_sn2: - "peo_to_napeo_sn2": "M_PE-O + M_PC <=> M_NAPEO + M_1-LPC"

pep_to_napep_sn2: - "pep_to_napep_sn2": "M_PE-P + M_PC <=> M_NAPEP + M_1-LPC"



michaelwitting/wormLipidPredictR documentation built on Jan. 30, 2025, 12:30 a.m.