Files
CellSimulation/BaseCellSimulation/Enzyms/Cytosol/NucleosideDiphosphateKinase.cs
T
WyanMueller d2e409d10f InitalCommit
2025-11-16 10:30:26 +01:00

51 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BaseCellSimulation.Enzyms.Cytosol
{
public class NucleosideDiphosphateKinase : InternalEnzym
{
private const double k_eq = 0.25; // 0.25 / s → recht schnell, da NDK sehr aktiv ist
public NucleosideDiphosphateKinase()
{
Km = 0.05; // unspezifisch, da das Enzym viele Nukleotide akzeptiert
Vmax = 1.0; // fiktiver Maximalumsatz (mmol/L·s)
}
public override void ApplyChanges(CellRessources res, double dt)
{
var energy = res.Res.Energy;
// --- Austausch zwischen ATP und GTP ---
double delta = (energy.ATP - energy.GTP) * k_eq * dt;
if (Math.Abs(delta) < 1e-9)
return;
// Begrenzung: kein negativer Pool
if (delta > 0)
{
delta = Math.Min(delta, energy.ATP);
}
else
{
delta = Math.Max(delta, -energy.GTP);
}
// Umsetzung: ATP -> GTP oder umgekehrt
energy.ATP -= delta;
energy.GTP += delta;
}
public override void ComputeRate(Resources res)
{
double diff = Math.Abs(res.Energy.ATP - res.Energy.GTP);
Michaelis_Menten(diff);
}
}
}