Added Json Schemas
This commit is contained in:
@@ -6,4 +6,15 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="EnzymData\enzymes.schema.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="EnzymData\Enzyms.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ProjectExtensions><VisualStudio><UserProperties enzymdata_4enzymes_1schema_1json__JsonSchema="https://json-schema.org/draft-07/schema" /></VisualStudio></ProjectExtensions>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"$schema": "cellRessources.schema.json",
|
||||||
|
"BasicCell": {
|
||||||
|
"energy": {
|
||||||
|
"ATP": 2.5,
|
||||||
|
"ADP": 0.8,
|
||||||
|
"AMP": 0.1,
|
||||||
|
"NAD+": 1.0,
|
||||||
|
"NADH": 0.3,
|
||||||
|
"GTP": 0.5,
|
||||||
|
"GDP": 0.2
|
||||||
|
},
|
||||||
|
"Pi": 5.0,
|
||||||
|
"PPi": 0.1,
|
||||||
|
|
||||||
|
"glucose": 5.0,
|
||||||
|
"G6P": 0.5,
|
||||||
|
"F6P": 0.3,
|
||||||
|
"F1,6BP": 0.2,
|
||||||
|
"GA3P": 0.2,
|
||||||
|
"1,3BPG": 0.1,
|
||||||
|
"3PG": 0.4,
|
||||||
|
"2PG": 0.3,
|
||||||
|
"PEP": 0.2,
|
||||||
|
"Pyruvate": 1.0,
|
||||||
|
"Lactate": 1.5,
|
||||||
|
|
||||||
|
"CO2": 10.0,
|
||||||
|
"AcCoA": 0.2,
|
||||||
|
|
||||||
|
"AminoAcids": 5.0,
|
||||||
|
"NucleicAcids": 1.0,
|
||||||
|
"Nucleotides": 2.0,
|
||||||
|
"NTP": 0.5,
|
||||||
|
"dNTP": 0.1,
|
||||||
|
|
||||||
|
"mRNA": 0.5,
|
||||||
|
"DNA_damage": 0.0,
|
||||||
|
|
||||||
|
"SAM": 0.05,
|
||||||
|
"MET": 0.5,
|
||||||
|
"SAH": 0.02,
|
||||||
|
"Homocysteine": 0.01,
|
||||||
|
"Adenosin": 0.1,
|
||||||
|
|
||||||
|
"tRNA": 1.0,
|
||||||
|
"Aminocylated_tRNA": 0.3,
|
||||||
|
|
||||||
|
"H+": 0.00004,
|
||||||
|
"Na+": 10.0,
|
||||||
|
"K+": 140.0,
|
||||||
|
|
||||||
|
"H2O2": 0.001,
|
||||||
|
|
||||||
|
"B12": 0.01,
|
||||||
|
"THF": 0.1,
|
||||||
|
"MethylTHF": 0.1,
|
||||||
|
|
||||||
|
"CytoSolCA": 0.0001,
|
||||||
|
"rERCa": 0.3,
|
||||||
|
"sERCa": 0.6
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,241 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json-schema.org/draft-04/schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"energy": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"ATP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Adenosine-triphosphate"
|
||||||
|
},
|
||||||
|
"ADP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Adenosine-diphosphate"
|
||||||
|
},
|
||||||
|
"AMP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Adenosine-monophosphate"
|
||||||
|
},
|
||||||
|
"NAD+": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Nicotinamide adenine dinucleotide (oxidized form)"
|
||||||
|
},
|
||||||
|
"NADH": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Nicotinamide adenine dinucleotide (reduced form)"
|
||||||
|
},
|
||||||
|
"GTP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Guanosine-triphosphate"
|
||||||
|
},
|
||||||
|
"GDP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Guanosine-diphosphate"
|
||||||
|
},
|
||||||
|
"Pi": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Inorganic phosphate"
|
||||||
|
},
|
||||||
|
"PPi": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Inorganic pyrophosphate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glucose": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Glucose concentration"
|
||||||
|
},
|
||||||
|
"G6P": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Glucose-6-phosphate concentration"
|
||||||
|
},
|
||||||
|
"F6P": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Fructose-6-phosphate concentration"
|
||||||
|
},
|
||||||
|
"F1,6BP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Fructose-1,6-bisphosphate concentration"
|
||||||
|
},
|
||||||
|
"GA3P": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Glyceraldehyde-3-phosphate concentration"
|
||||||
|
},
|
||||||
|
"1,3BPG": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "1,3-Bisphosphoglycerate concentration"
|
||||||
|
},
|
||||||
|
"3PG": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "3-Phosphoglycerate concentration"
|
||||||
|
},
|
||||||
|
"2PG": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "2-Phosphoglycerate concentration"
|
||||||
|
},
|
||||||
|
"PEP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Phosphoenolpyruvate concentration"
|
||||||
|
},
|
||||||
|
"Pyruvate": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Pyruvate concentration"
|
||||||
|
},
|
||||||
|
"Lactate": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Lactate concentration"
|
||||||
|
},
|
||||||
|
"CO2": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Carbon dioxide concentration"
|
||||||
|
},
|
||||||
|
"AcCoA": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Acetyl-Coenzyme A concentration"
|
||||||
|
},
|
||||||
|
"AminoAcids": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total amino acids concentration"
|
||||||
|
},
|
||||||
|
"NucleicAcids": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total nucleic acids concentration"
|
||||||
|
},
|
||||||
|
"Nucleotides": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total nucleotides concentration"
|
||||||
|
},
|
||||||
|
"NTP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total nucleoside triphosphates concentration"
|
||||||
|
},
|
||||||
|
"dNTP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total deoxynucleoside triphosphates concentration"
|
||||||
|
},
|
||||||
|
"mRNA": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total messenger RNA concentration"
|
||||||
|
},
|
||||||
|
"DNA_damage": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Amount of DNA damage"
|
||||||
|
},
|
||||||
|
"SAM": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "S-Adenosyl methionine concentration"
|
||||||
|
},
|
||||||
|
"MET": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Methionine concentration"
|
||||||
|
},
|
||||||
|
"SAH": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "S-Adenosyl homocysteine concentration"
|
||||||
|
},
|
||||||
|
"Homocysteine": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Homocysteine concentration"
|
||||||
|
},
|
||||||
|
"Adenosin": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Adenosine concentration"
|
||||||
|
},
|
||||||
|
"tRNA": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total transfer RNA concentration"
|
||||||
|
},
|
||||||
|
"Aminocylated_tRNA": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Total aminoacylated tRNA concentration"
|
||||||
|
},
|
||||||
|
"H+": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Proton concentration"
|
||||||
|
},
|
||||||
|
"Na+": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Sodium ion concentration"
|
||||||
|
},
|
||||||
|
"K+": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Potassium ion concentration"
|
||||||
|
},
|
||||||
|
"H2O2": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Hydrogen peroxide concentration"
|
||||||
|
},
|
||||||
|
"B12": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Vitamin B12 concentration"
|
||||||
|
},
|
||||||
|
"THF": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Tetrahydrofolate concentration"
|
||||||
|
},
|
||||||
|
"MethylTHF": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "5-Methyltetrahydrofolate concentration"
|
||||||
|
},
|
||||||
|
"CytoSolCA": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Cytosolic calcium concentration"
|
||||||
|
},
|
||||||
|
"rERCa": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Rough endoplasmic reticulum calcium concentration"
|
||||||
|
},
|
||||||
|
"sERCa": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0,
|
||||||
|
"description": "Smooth endoplasmic reticulum calcium concentration"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"$schema": "enzymes.schema.json",
|
||||||
|
"Cytosolic": [
|
||||||
|
{
|
||||||
|
"Name": "HexokinaseI",
|
||||||
|
"Km": {
|
||||||
|
"Value": 0.05,
|
||||||
|
"Min": 0.02,
|
||||||
|
"Max": 0.1
|
||||||
|
},
|
||||||
|
"Vmax": {
|
||||||
|
"Value": 2.5,
|
||||||
|
"Min": 0.5,
|
||||||
|
"Max": 2.5
|
||||||
|
},
|
||||||
|
"Type": "MichelisMenten",
|
||||||
|
"Description": "Phosphorylates glucose to form glucose-6-phosphate."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "HexokinaseII",
|
||||||
|
"Km": {
|
||||||
|
"Value": 0.1,
|
||||||
|
"Min": 0.05,
|
||||||
|
"Max": 0.15
|
||||||
|
},
|
||||||
|
"Vmax": {
|
||||||
|
"Value": 5,
|
||||||
|
"Min": 1,
|
||||||
|
"Max": 10
|
||||||
|
},
|
||||||
|
"Type": "MichelisMenten",
|
||||||
|
"Description": "Phosphorylates glucose to form glucose-6-phosphate."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "HexokinaseIII",
|
||||||
|
"Km": {
|
||||||
|
"Value": 0.05,
|
||||||
|
"Min": 0.01,
|
||||||
|
"Max": 0.1
|
||||||
|
},
|
||||||
|
"Vmax": {
|
||||||
|
"Value": 1,
|
||||||
|
"Min": 0.1,
|
||||||
|
"Max": 2
|
||||||
|
},
|
||||||
|
"Type": "MichelisMenten",
|
||||||
|
"Description": "Phosphorylates glucose to form glucose-6-phosphate."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "HexokinaseIV_Gluko",
|
||||||
|
"Km": {
|
||||||
|
"Value": 8.5,
|
||||||
|
"Min": 7,
|
||||||
|
"Max": 10
|
||||||
|
},
|
||||||
|
"Vmax": {
|
||||||
|
"Value": 5,
|
||||||
|
"Min": 1,
|
||||||
|
"Max": 10
|
||||||
|
},
|
||||||
|
"Hill": {
|
||||||
|
"Value": 1.7,
|
||||||
|
"Min": 1.6,
|
||||||
|
"Max": 1.9
|
||||||
|
},
|
||||||
|
"Type": "Hill",
|
||||||
|
"Description": "Phosphorylates glucose to form glucose-6-phosphate."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Phosphofructokinase",
|
||||||
|
"K0_5": 0.1,
|
||||||
|
"Hill": 2.0,
|
||||||
|
"Vmax": 80.0,
|
||||||
|
"Type": "Hill",
|
||||||
|
"Description": "Catalyzes the phosphorylation of fructose-6-phosphate to fructose-1,6-bisphosphate."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft-07/schema",
|
||||||
|
"title": "Enzyme Parameter Schema",
|
||||||
|
"type": "object",
|
||||||
|
"additionalProperties": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"Vmax": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Value": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Min": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Max": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Type": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [ "Hill", "MichelisMenten", "Linear" ]
|
||||||
|
},
|
||||||
|
"Substrates": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Name": { "type": "string" },
|
||||||
|
"Amount": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Km": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Value": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Min": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Max": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Hill": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Value": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Min": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Max": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oneOf": [
|
||||||
|
{ "required": [ "Km" ] },
|
||||||
|
{ "required": [ "Hill" ] }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Products": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Name": { "type": "string" },
|
||||||
|
"Amount": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ConsumATPtoADP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ProduceATPfromADP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ConsumATPtoAMP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ProduceATPfromAMP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ConsumeNADtoNADH": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ProduceNADfromNADH": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ConsumeGDPtoGTP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"ProduceGDPfromGTP": {
|
||||||
|
"type": "number",
|
||||||
|
"minimum": 0
|
||||||
|
},
|
||||||
|
"Description": { "type": "string" }
|
||||||
|
},
|
||||||
|
"required": [ "Vmax", "Type", "Name", "Substrates", "Products" ],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,14 +19,14 @@ namespace BaseCellSimulation.Enzyms.Cytosol
|
|||||||
|
|
||||||
public override void ApplyChanges(CellRessources res, double dt)
|
public override void ApplyChanges(CellRessources res, double dt)
|
||||||
{
|
{
|
||||||
double used = Math.Min(rate * dt, res.Res.Carbon.FBP);
|
double used = Math.Min(rate * dt, res.Res.Carbon.F1_6BP);
|
||||||
res.Res.Carbon.FBP -= used;
|
res.Res.Carbon.F1_6BP -= used;
|
||||||
res.Res.Carbon.GAP += 2 * used;
|
res.Res.Carbon.GA3P += 2 * used;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ComputeRate(Resources res)
|
public override void ComputeRate(Resources res)
|
||||||
{
|
{
|
||||||
Michaelis_Menten(res.Carbon.FBP);
|
Michaelis_Menten(res.Carbon.F1_6BP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ namespace BaseCellSimulation.Enzyms.Cytosol
|
|||||||
|
|
||||||
public override void ApplyChanges(CellRessources res, double dt)
|
public override void ApplyChanges(CellRessources res, double dt)
|
||||||
{
|
{
|
||||||
double used = Math.Min(rate * dt, Math.Min(res.Res.Carbon.GAP, res.Res.Energy.NAD));
|
double used = Math.Min(rate * dt, Math.Min(res.Res.Carbon.GA3P, res.Res.Energy.NAD));
|
||||||
res.Res.Carbon.GAP -= used;
|
res.Res.Carbon.GA3P -= used;
|
||||||
res.Res.Carbon.PBG13 += used;
|
res.Res.Carbon.PBG13 += used;
|
||||||
res.TransferNADH(used, false);
|
res.TransferNADH(used, false);
|
||||||
res.Res.Ions.Protons += 1.0 * used;
|
res.Res.Ions.Protons += 1.0 * used;
|
||||||
@@ -34,7 +34,7 @@ namespace BaseCellSimulation.Enzyms.Cytosol
|
|||||||
|
|
||||||
public override void ComputeRate(Resources res)
|
public override void ComputeRate(Resources res)
|
||||||
{
|
{
|
||||||
rate = Vmax * (res.Carbon.GAP / (Km + res.Carbon.GAP)) * (res.Energy.NAD / (Km_NAD + res.Energy.NAD));
|
rate = Vmax * (res.Carbon.GA3P / (Km + res.Carbon.GA3P)) * (res.Energy.NAD / (Km_NAD + res.Energy.NAD));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BaseCellSimulation.Enzyms.Cytosol.Hexokinasen
|
||||||
|
{
|
||||||
|
public class HK1 : Hexokinasis
|
||||||
|
{
|
||||||
|
public HK1() : base()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BaseCellSimulation.Enzyms.Cytosol.Hexokinasen
|
||||||
|
{
|
||||||
|
internal class HK2
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BaseCellSimulation.Enzyms.Cytosol.Hexokinasen
|
||||||
|
{
|
||||||
|
internal class HK3
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BaseCellSimulation.Enzyms.Cytosol.Hexokinasen
|
||||||
|
{
|
||||||
|
internal class HK4_GK
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
+4
-2
@@ -4,14 +4,16 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace BaseCellSimulation.Enzyms.Cytosol
|
namespace BaseCellSimulation.Enzyms.Cytosol.Hexokinasen
|
||||||
{
|
{
|
||||||
public class Hexokinasis : InternalEnzym
|
public abstract class Hexokinasis : InternalEnzym
|
||||||
{
|
{
|
||||||
public Hexokinasis() {
|
public Hexokinasis() {
|
||||||
Km = 0.05;
|
Km = 0.05;
|
||||||
Vmax = 5;
|
Vmax = 5;
|
||||||
|
|
||||||
|
Type = EnzymType.MichelisMenten;
|
||||||
|
|
||||||
KmRange = new(0.01, 0.1);
|
KmRange = new(0.01, 0.1);
|
||||||
VmaxRange = new(0.5, 20);
|
VmaxRange = new(0.5, 20);
|
||||||
}
|
}
|
||||||
@@ -27,7 +27,7 @@ namespace BaseCellSimulation.Enzyms.Cytosol
|
|||||||
{
|
{
|
||||||
double used = Math.Min(rate * dt, Math.Min(res.Res.Energy.ATP, res.Res.Carbon.F6P));
|
double used = Math.Min(rate * dt, Math.Min(res.Res.Energy.ATP, res.Res.Carbon.F6P));
|
||||||
res.Res.Carbon.F6P -= used;
|
res.Res.Carbon.F6P -= used;
|
||||||
res.Res.Carbon.FBP += used;
|
res.Res.Carbon.F1_6BP += used;
|
||||||
res.ConsumeATP(used);
|
res.ConsumeATP(used);
|
||||||
res.Res.Ions.Protons += used;
|
res.Res.Ions.Protons += used;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,37 +3,173 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace BaseCellSimulation.Enzyms
|
namespace BaseCellSimulation.Enzyms
|
||||||
{
|
{
|
||||||
public abstract class Enzym
|
public enum EnzymType
|
||||||
{
|
{
|
||||||
/// <summary>
|
Hill,
|
||||||
/// mM/S
|
MichelisMenten,
|
||||||
/// </summary>
|
Linear
|
||||||
public double Vmax { get; set; }
|
}
|
||||||
|
|
||||||
|
public struct Substrate
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public double Amount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// mM
|
/// mM
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double Km { get; set; }
|
[JsonPropertyName("Km")]
|
||||||
|
public ValueRange Km { get; set; }
|
||||||
|
|
||||||
public ValueRange VmaxRange { get; protected set; }
|
[JsonPropertyName("Hill")]
|
||||||
|
public ValueRange n_Hill { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public ValueRange KmRange { get; protected set; }
|
public struct Product
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public double Amount { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Enzym
|
||||||
|
{
|
||||||
|
[JsonPropertyName("Name")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// mM/S
|
||||||
|
/// </summary>
|
||||||
|
[JsonPropertyName("Vmax")]
|
||||||
|
public ValueRange Vmax { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("Type")]
|
||||||
|
public EnzymType Type { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("ConsumATPtoADP")]
|
||||||
|
public double ConsumATPtoADP { get; set; }
|
||||||
|
[JsonPropertyName("ProduceATPfromADP")]
|
||||||
|
public double ProduceATPfromADP { get; set; }
|
||||||
|
[JsonPropertyName("ConsumATPtoAMP")]
|
||||||
|
public double ConsumATPtoAMP { get; set; }
|
||||||
|
[JsonPropertyName("ProduceATPfromAMP")]
|
||||||
|
public double ProduceATPfromAMP { get; set; }
|
||||||
|
[JsonPropertyName("ConsumeNADtoNADH")]
|
||||||
|
public double ConsumeNADtoNADH { get; set; }
|
||||||
|
[JsonPropertyName("ProduceNADfromNADH")]
|
||||||
|
public double ProduceNADfromNADH { get; set; }
|
||||||
|
[JsonPropertyName("ConsumeGDPtoGTP")]
|
||||||
|
public double ConsumeGDPtoGTP { get; set; }
|
||||||
|
[JsonPropertyName("ProduceGDPfromGTP")]
|
||||||
|
public double ProduceGDPfromGTP { get; set; }
|
||||||
|
|
||||||
|
[JsonPropertyName("Substrates")]
|
||||||
|
public List<Substrate> Substrates { get; set; } = new List<Substrate>();
|
||||||
|
|
||||||
|
[JsonPropertyName("Products")]
|
||||||
|
public List<Product> Products { get; set; } = new List<Product>();
|
||||||
|
|
||||||
protected double rate;
|
protected double rate;
|
||||||
|
|
||||||
protected void Michaelis_Menten(double ressource)
|
|
||||||
|
protected double Michaelis_Menten(CellRessources res)
|
||||||
{
|
{
|
||||||
rate = Michaelis_Menten(ressource, Vmax, Km);
|
double retVar = Vmax.Value;
|
||||||
|
foreach (Substrate substrate in Substrates)
|
||||||
|
{
|
||||||
|
if (!res.Resources.TryGetValue(substrate.Name, out double ResAmount))
|
||||||
|
return 0.0;
|
||||||
|
if (ResAmount <= 0.0)
|
||||||
|
return 0.0;
|
||||||
|
|
||||||
|
retVar *= ResAmount / (substrate.Km.Value + ResAmount);
|
||||||
|
}
|
||||||
|
|
||||||
|
return retVar;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected double Michaelis_Menten(double consumable,double vmax, double km)
|
protected double HillEquation(CellRessources res)
|
||||||
{
|
{
|
||||||
return (vmax * consumable) / (km + consumable);
|
double retVar = Vmax.Value;
|
||||||
|
foreach (Substrate substrate in Substrates)
|
||||||
|
{
|
||||||
|
if (!res.Resources.TryGetValue(substrate.Name, out double ResAmount))
|
||||||
|
return 0.0;
|
||||||
|
if (ResAmount <= 0.0)
|
||||||
|
return 0.0;
|
||||||
|
|
||||||
|
|
||||||
|
retVar *= Math.Pow(ResAmount, substrate.n_Hill.Value) / (Math.Pow(substrate.Km.Value, substrate.n_Hill.Value) + Math.Pow(ResAmount, substrate.n_Hill.Value));
|
||||||
|
}
|
||||||
|
|
||||||
|
return retVar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void ApplyChanges(CellRessources res, double dt);
|
public void ApplyChanges(CellRessources res, double dt)
|
||||||
|
{
|
||||||
|
double delta = rate * dt;
|
||||||
|
foreach (Substrate substrate in Substrates)
|
||||||
|
{
|
||||||
|
if (res.Resources.TryGetValue(substrate.Name, out double oldVal))
|
||||||
|
{
|
||||||
|
delta = Math.Min(delta, oldVal / substrate.Amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (Substrate substrate in Substrates)
|
||||||
|
{
|
||||||
|
if (res.Resources.TryGetValue(substrate.Name, out double oldVal))
|
||||||
|
{
|
||||||
|
res.Resources[substrate.Name] = oldVal - substrate.Amount * delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach (Product product in Products)
|
||||||
|
{
|
||||||
|
if (res.Resources.ContainsKey(product.Name))
|
||||||
|
{
|
||||||
|
res.Resources[product.Name] += product.Amount * delta;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res.Resources[product.Name] = product.Amount * delta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ConsumATPtoADP > 0.0)
|
||||||
|
res.ConsumeATP(ConsumATPtoADP * delta, false);
|
||||||
|
if(ProduceATPfromADP > 0.0)
|
||||||
|
res.RegenerateATP(ProduceATPfromADP * delta, false);
|
||||||
|
if(ConsumATPtoAMP > 0.0)
|
||||||
|
res.ConsumeATP(ConsumATPtoAMP * delta, true);
|
||||||
|
if(ProduceATPfromAMP > 0.0)
|
||||||
|
res.RegenerateATP(ProduceATPfromAMP * delta, true);
|
||||||
|
if(ConsumeNADtoNADH > 0.0)
|
||||||
|
res.TransferNADH(ConsumeNADtoNADH * delta, true);
|
||||||
|
if(ProduceNADfromNADH > 0.0)
|
||||||
|
res.TransferNADH(ProduceNADfromNADH * delta, false);
|
||||||
|
if(ConsumeGDPtoGTP > 0.0)
|
||||||
|
res.TransferGTP(ConsumeGDPtoGTP * delta, true);
|
||||||
|
if(ProduceGDPfromGTP > 0.0)
|
||||||
|
res.TransferGTP(ProduceGDPfromGTP * delta, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeRate(CellRessources res)
|
||||||
|
{
|
||||||
|
switch (Type)
|
||||||
|
{
|
||||||
|
case EnzymType.Hill:
|
||||||
|
rate = HillEquation(res);
|
||||||
|
break;
|
||||||
|
case EnzymType.MichelisMenten:
|
||||||
|
rate = Michaelis_Menten(res);
|
||||||
|
break;
|
||||||
|
case EnzymType.Linear:
|
||||||
|
rate = Vmax.Value * res.Resources[Substrates[0].Name];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract class InternalEnzym : Enzym
|
public abstract class InternalEnzym : Enzym
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Text.Json;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace BaseCellSimulation
|
namespace BaseCellSimulation
|
||||||
{
|
{
|
||||||
@@ -9,6 +11,43 @@ namespace BaseCellSimulation
|
|||||||
{
|
{
|
||||||
public Resources Res;
|
public Resources Res;
|
||||||
public EnviromentState Env = new();
|
public EnviromentState Env = new();
|
||||||
|
[JsonPropertyName("energy")]
|
||||||
|
public EnergyPool energyPool;
|
||||||
|
public Dictionary<string, double> Resources => new Dictionary<string, double>();
|
||||||
|
|
||||||
|
public static CellRessources LoadRessources(string jsonPath)
|
||||||
|
{
|
||||||
|
string json = File.ReadAllText(jsonPath);
|
||||||
|
using var doc = JsonDocument.Parse(json);
|
||||||
|
var root = doc.RootElement;
|
||||||
|
var result = new CellRessources();
|
||||||
|
|
||||||
|
// deserialice energy
|
||||||
|
if (root.TryGetProperty("energy", out JsonElement energyElement))
|
||||||
|
{
|
||||||
|
result.energyPool = JsonSerializer.Deserialize<EnergyPool>(energyElement.GetRawText());
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach(var property in root.EnumerateObject())
|
||||||
|
{
|
||||||
|
if (property.NameEquals("energy"))
|
||||||
|
continue; // already handled
|
||||||
|
|
||||||
|
if (property.Value.ValueKind == JsonValueKind.Number)
|
||||||
|
{
|
||||||
|
result.Resources[property.Name] = property.Value.GetDouble();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SaveRessources(CellRessources ressources, string jsonPath)
|
||||||
|
{
|
||||||
|
var options = new JsonSerializerOptions { WriteIndented = true };
|
||||||
|
string json = JsonSerializer.Serialize(ressources, options);
|
||||||
|
File.WriteAllText(jsonPath, json);
|
||||||
|
}
|
||||||
|
|
||||||
// pH in mM-basiertem Hilfsformat (vereinfachte Umrechnung):
|
// pH in mM-basiertem Hilfsformat (vereinfachte Umrechnung):
|
||||||
public double pH_in => 3.0 - Math.Log10(Res.Ions.Protons + 1e-12);
|
public double pH_in => 3.0 - Math.Log10(Res.Ions.Protons + 1e-12);
|
||||||
@@ -117,6 +156,22 @@ namespace BaseCellSimulation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void TransferGTP(double amount, bool toGDP)
|
||||||
|
{
|
||||||
|
if (toGDP)
|
||||||
|
{
|
||||||
|
if (Res.Energy.GTP < amount) amount = Res.Energy.GTP;
|
||||||
|
Res.Energy.GTP -= amount;
|
||||||
|
Res.Energy.GDP += amount;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Res.Energy.GDP < amount) amount = Res.Energy.GDP;
|
||||||
|
Res.Energy.GDP -= amount;
|
||||||
|
Res.Energy.GTP += amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// --- Initialisierung mit plausiblen Startwerten ---
|
// --- Initialisierung mit plausiblen Startwerten ---
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Erzeugt eine CellRessources-Instanz mit vernünftigen Startwerten (grobe physiologische Annahmen).
|
/// Erzeugt eine CellRessources-Instanz mit vernünftigen Startwerten (grobe physiologische Annahmen).
|
||||||
@@ -143,8 +198,8 @@ namespace BaseCellSimulation
|
|||||||
cr.Res.Carbon.Glucose = 1.0; // mM intrazellulär (abhängig von Aufnahme)
|
cr.Res.Carbon.Glucose = 1.0; // mM intrazellulär (abhängig von Aufnahme)
|
||||||
cr.Res.Carbon.G6P = 0.05;
|
cr.Res.Carbon.G6P = 0.05;
|
||||||
cr.Res.Carbon.F6P = 0.02;
|
cr.Res.Carbon.F6P = 0.02;
|
||||||
cr.Res.Carbon.FBP = 0.005;
|
cr.Res.Carbon.F1_6BP = 0.005;
|
||||||
cr.Res.Carbon.GAP = 0.01;
|
cr.Res.Carbon.GA3P = 0.01;
|
||||||
cr.Res.Carbon.PBG13 = 0.005;
|
cr.Res.Carbon.PBG13 = 0.005;
|
||||||
cr.Res.Carbon.PG3 = 0.02;
|
cr.Res.Carbon.PG3 = 0.02;
|
||||||
cr.Res.Carbon.PG2 = 0.01;
|
cr.Res.Carbon.PG2 = 0.01;
|
||||||
@@ -229,34 +284,114 @@ namespace BaseCellSimulation
|
|||||||
/// <summary>Energiemengen: ATP/ADP/AMP + NAD/NADH + GTP/GDP</summary>
|
/// <summary>Energiemengen: ATP/ADP/AMP + NAD/NADH + GTP/GDP</summary>
|
||||||
public struct EnergyPool
|
public struct EnergyPool
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Adenosine-triphosphate
|
||||||
|
/// </summary>
|
||||||
public double ATP;
|
public double ATP;
|
||||||
|
/// <summary>
|
||||||
|
/// Adenosine diphosphate
|
||||||
|
/// </summary>
|
||||||
public double ADP;
|
public double ADP;
|
||||||
|
/// <summary>
|
||||||
|
/// Adenosine monophosphat
|
||||||
|
/// </summary>
|
||||||
public double AMP;
|
public double AMP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Nicotinamide adenine dinucleotide
|
||||||
|
/// </summary>
|
||||||
public double NAD;
|
public double NAD;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Nicotinamide adenine dinucleotide
|
||||||
|
/// </summary>
|
||||||
public double NADH;
|
public double NADH;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Nicotinamide adenine dinucleotide phosphate
|
||||||
|
/// </summary>
|
||||||
|
public double NADPH;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Guanosintriphosphat
|
||||||
|
/// </summary>
|
||||||
public double GTP;
|
public double GTP;
|
||||||
public double GDP { get; internal set; }
|
|
||||||
|
/// <summary>
|
||||||
|
/// Guanosindiphosphat
|
||||||
|
/// </summary>
|
||||||
|
public double GDP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// inorganic phosphate
|
||||||
|
/// </summary>
|
||||||
|
public double Pi;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pyrophosphat
|
||||||
|
/// </summary>
|
||||||
|
public double PPi;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Inorganische Phosphate</summary>
|
/// <summary>Inorganische Phosphate</summary>
|
||||||
public struct Phosphate
|
public struct Phosphate
|
||||||
{
|
{
|
||||||
public double Pi; // anorganisches Phosphat
|
/// <summary>
|
||||||
public double PPi; // Pyrophosphat
|
/// inorganic phosphate
|
||||||
|
/// </summary>
|
||||||
|
public double Pi;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pyrophosphat
|
||||||
|
/// </summary>
|
||||||
|
public double PPi;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Kohlenstoff- / Glykolyse-Intermediaten</summary>
|
/// <summary>Kohlenstoff- / Glykolyse-Intermediaten</summary>
|
||||||
public struct CarbonPool
|
public struct CarbonPool
|
||||||
{
|
{
|
||||||
public double Glucose;
|
public double Glucose;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Glucose-6-phosphate
|
||||||
|
/// </summary>
|
||||||
public double G6P;
|
public double G6P;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Fructose-6-phosphate
|
||||||
|
/// </summary>
|
||||||
public double F6P;
|
public double F6P;
|
||||||
public double FBP;
|
|
||||||
public double GAP;
|
/// <summary>
|
||||||
|
/// Fructose 1,6-bisphosphate
|
||||||
|
/// </summary>
|
||||||
|
public double F1_6BP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Glycerinaldehyd-3-phosphat
|
||||||
|
/// </summary>
|
||||||
|
public double GA3P;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 1,3-Bisphosphoglycerat
|
||||||
|
/// </summary>
|
||||||
public double PBG13;
|
public double PBG13;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 3-Phosphoglycerat
|
||||||
|
/// </summary>
|
||||||
public double PG3;
|
public double PG3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 2-Phosphoglycerat
|
||||||
|
/// </summary>
|
||||||
public double PG2;
|
public double PG2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Phosphoenolpyruvat
|
||||||
|
/// </summary>
|
||||||
public double PEP;
|
public double PEP;
|
||||||
|
|
||||||
public double Pyruvate;
|
public double Pyruvate;
|
||||||
public double Lactate;
|
public double Lactate;
|
||||||
public double CO2;
|
public double CO2;
|
||||||
@@ -271,14 +406,35 @@ namespace BaseCellSimulation
|
|||||||
public double Waste;
|
public double Waste;
|
||||||
public double NucleicAcids;
|
public double NucleicAcids;
|
||||||
public double Nucleotides;
|
public double Nucleotides;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Nukleosidtriphosphate
|
||||||
|
/// </summary>
|
||||||
public double NTP;
|
public double NTP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Desoxyribonukleotidtriphosphate
|
||||||
|
/// </summary>
|
||||||
public double dNTP;
|
public double dNTP;
|
||||||
public double mRNA;
|
public double mRNA;
|
||||||
public double DNA_damage;
|
public double DNA_damage;
|
||||||
public double AcetylCoA;
|
public double AcetylCoA;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S-Adenosylmethionin
|
||||||
|
/// </summary>
|
||||||
public double SAM;
|
public double SAM;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Methionine
|
||||||
|
/// </summary>
|
||||||
public double MET;
|
public double MET;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// S-Adenosylhomocystein
|
||||||
|
/// </summary>
|
||||||
public double SAH;
|
public double SAH;
|
||||||
|
|
||||||
public double Homocystein;
|
public double Homocystein;
|
||||||
public double Adenosin;
|
public double Adenosin;
|
||||||
internal double tRNA;
|
internal double tRNA;
|
||||||
@@ -289,9 +445,22 @@ namespace BaseCellSimulation
|
|||||||
public struct IonPool
|
public struct IonPool
|
||||||
{
|
{
|
||||||
public double Protons; // H+ (vereinfachte Einheit mM)
|
public double Protons; // H+ (vereinfachte Einheit mM)
|
||||||
public double ROS; // reactive oxygen species
|
|
||||||
|
/// <summary>
|
||||||
|
/// reactive oxygen species
|
||||||
|
/// </summary>
|
||||||
|
public double ROS;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// NAtrium-Ionen
|
||||||
|
/// </summary>
|
||||||
public double Na;
|
public double Na;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Kalium-Ionen
|
||||||
|
/// </summary>
|
||||||
public double K;
|
public double K;
|
||||||
|
|
||||||
public double H2O2;
|
public double H2O2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,6 +471,9 @@ namespace BaseCellSimulation
|
|||||||
|
|
||||||
public struct Folates
|
public struct Folates
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Tetrahydrofolsäure
|
||||||
|
/// </summary>
|
||||||
public double THF { get; internal set; }
|
public double THF { get; internal set; }
|
||||||
public double MethylTHF { get; internal set; }
|
public double MethylTHF { get; internal set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,18 +3,23 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace BaseCellSimulation
|
namespace BaseCellSimulation
|
||||||
{
|
{
|
||||||
public struct ValueRange
|
public struct ValueRange
|
||||||
{
|
{
|
||||||
public double Start;
|
[JsonPropertyName("Value")]
|
||||||
public double End;
|
public double Value;
|
||||||
|
[JsonPropertyName("Min")]
|
||||||
|
public double Min;
|
||||||
|
[JsonPropertyName("Max")]
|
||||||
|
public double Max;
|
||||||
|
|
||||||
public ValueRange(double start, double end)
|
public ValueRange(double start, double end)
|
||||||
{
|
{
|
||||||
Start = start;
|
Min = start;
|
||||||
End = end;
|
Max = end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user