51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BaseCellSimulation.Enzyms.Cytosol
|
|
{
|
|
public class Methioninsynthase : InternalEnzym
|
|
{
|
|
public Methioninsynthase()
|
|
{
|
|
Km = 0.015;
|
|
Vmax = 0.2;
|
|
}
|
|
|
|
public override void ApplyChanges(CellRessources res, double dt)
|
|
{
|
|
// Berechne tatsächlich mögliche Umwandlung
|
|
double dHcy = Math.Min(rate * dt, res.Res.Protein.Homocystein);
|
|
dHcy = Math.Min(dHcy, res.Res.Folate.MethylTHF);
|
|
dHcy = Math.Min(dHcy, res.Res.Cofactor.B12); // Co-Faktor limitierend
|
|
|
|
if (dHcy <= 0)
|
|
return;
|
|
|
|
// Verbrauch von Substraten
|
|
res.Res.Protein.Homocystein -= dHcy;
|
|
res.Res.Folate.MethylTHF -= dHcy;
|
|
|
|
// Cofaktor-B12 wird nicht dauerhaft verbraucht (Katalytisch)
|
|
// kann aber langsam inaktiviert werden, falls du das modellieren willst
|
|
|
|
// Bildung von Produkten
|
|
res.Res.Protein.MET += dHcy;
|
|
res.Res.Folate.THF += dHcy;
|
|
}
|
|
|
|
public override void ComputeRate(Resources res)
|
|
{
|
|
// Aktivitätsfaktor abhängig vom verfügbaren B12
|
|
double cofactorEffect = Math.Clamp(res.Cofactor.B12 / 0.01, 0.0, 1.0);
|
|
|
|
// Michaelis-Menten über Homocystein
|
|
Michaelis_Menten(res.Protein.Homocystein);
|
|
|
|
rate *= cofactorEffect;
|
|
}
|
|
}
|
|
}
|