40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace BaseCellSimulation.Enzyms.Membrane
|
||
{
|
||
// ----------------------------------------------------------
|
||
// 3. PMCA – Ca²⁺-ATPase (Ca raus, ATP-abhängig)
|
||
// ----------------------------------------------------------
|
||
public class PMCA : MembranEnzyme
|
||
{
|
||
public double ATPperCycle = 1.0;
|
||
|
||
public override void ComputeRate(double caCyt, EnviromentState env)
|
||
{
|
||
// klassisch: Michaelis-Menten mit Ca²⁺-Abhängigkeit
|
||
rate = Michaelis_Menten(caCyt, Vmax, Km);
|
||
}
|
||
|
||
public override void ApplyChanges(CellRessources res, double dt)
|
||
{
|
||
double flux = rate * dt;
|
||
double atpNeeded = flux * ATPperCycle;
|
||
|
||
if (res.Res.Energy.ATP < atpNeeded) flux *= res.Res.Energy.ATP / atpNeeded;
|
||
|
||
res.Res.Ca.CytosolicCa -= flux; // Ca raus
|
||
res.Env.Ca += flux;
|
||
res.ConsumeATP(atpNeeded);
|
||
}
|
||
|
||
public override double CalculateGradient(CellRessources res)
|
||
{
|
||
return res.Res.Ca.CytosolicCa; // PMCA is not driven by a concentration gradient
|
||
}
|
||
}
|
||
}
|