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; } } }