InitalCommit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user