using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaseCellSimulation.Enzyms.Mytochondrion { public class PyruvateDehydrogenase : InternalEnzym { public PyruvateDehydrogenase() { Vmax = 1.0; // mM/s Km = 0.05; // mM Pyruvat } public override void ComputeRate(Resources res) { Michaelis_Menten(res.Carbon.Pyruvate); // Aktivierung durch Ca²⁺ double ca = res.Ca.CytosolicCa; double caBoost = 1.0 + 0.8 * (ca / (0.0005 + ca)); // bis ~1.8x Boost rate *= caBoost; // Hemmung durch hohes NADH/NAD+ Verhältnis oder ATP double redox = res.Energy.NAD / (res.Energy.NAD + res.Energy.NADH + 1e-9); double energy = res.Energy.ATP / (res.Energy.ATP + res.Energy.ADP + 1e-9); rate *= redox * (1.0 - 0.5 * energy); // Hohe Energie hemmt } public override void ApplyChanges(CellRessources res, double dt) { double used = Math.Min(res.Res.Carbon.Pyruvate, rate * dt); res.Res.Carbon.Pyruvate -= used; res.Res.Carbon.AcetylCoA += used; res.TransferNADH(used, false); res.Res.Carbon.CO2 += used; } } }