44 lines
1.4 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|