using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaseCellSimulation.Enzyms.Nucleus { public class RNA_Polymerase_II : InternalEnzym { private const double EnergyCostATP = 0.3; public RNA_Polymerase_II() { Km = 0.02; Vmax = 0.8; } public override void ApplyChanges(CellRessources res, double dt) { double dM = Math.Min(rate * dt, res.Res.Protein.NTP); dM = res.Res.Energy.ATP >= dM * EnergyCostATP ? dM : res.Res.Energy.ATP / EnergyCostATP; res.Res.Protein.NTP -= dM; res.Res.Protein.mRNA += dM; res.ConsumeATP(dM * EnergyCostATP); } public override void ComputeRate(Resources res) { Michaelis_Menten(res.Protein.NTP); rate *= res.Nucleus.ChromatinAccessibility; } } }