Files
WyanMueller d2e409d10f InitalCommit
2025-11-16 10:30:26 +01:00

44 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BaseCellSimulation.Enzyms.Nucleus
{
public class DNMT1 : InternalEnzym
{
public DNMT1()
{
Km = 0.01;
Vmax = 0.25;
}
public override void ApplyChanges(CellRessources res, double dt)
{
// Berechne tatsächlich übertragene Methylmenge
double dMethyl = Math.Min(rate * dt, res.Res.Protein.SAM);
// Chromatinzugänglichkeit moduliert Effektivität
double accessibilityFactor = Math.Clamp(res.Res.Nucleus.ChromatinAccessibility / 0.005, 0.1, 1.0);
dMethyl *= accessibilityFactor;
// SAM → SAH Umwandlung
res.Res.Protein.SAM -= dMethyl;
res.Res.Protein.SAH += dMethyl; // 1:1 Bildung
// Methylierung der DNA (vereinfachte Darstellung)
res.Res.Nucleus.ChromatinAccessibility -= dMethyl * 0.005;
if (res.Res.Nucleus.ChromatinAccessibility < 0)
res.Res.Nucleus.ChromatinAccessibility = 0;
}
public override void ComputeRate(Resources res)
{
double activityFactor = Math.Min(1.0, res.Nucleus.ReplicationProgress / 10.0);
Michaelis_Menten(res.Protein.SAM * activityFactor);
rate *= activityFactor;
}
}
}