using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BaseCellSimulation.Enzyms { public static class VmaxCalculator { private const double Avogadro = 6.02214076e23; // mol⁻¹ /// /// Berechnet Vmax (in mM/s) aus Enzymkinetik-Parametern. /// /// Turnover-Zahl des Enzyms (s⁻¹ pro Molekül) /// Anzahl der Enzymmoleküle in der Zelle /// Zellvolumen in Litern (z. B. 1e-12 für typische Eukaryoten) /// Vmax in mM/s public static double ComputeVmax(double kcat, double enzymeCount, double cellVolume_L) { // [E_total] = (enzymeCount / Avogadro) / cellVolume double enzymeConcentration_M = (enzymeCount / Avogadro) / cellVolume_L; // mol/L double vmax_M_per_s = kcat * enzymeConcentration_M; // mol/L/s // Umrechnung auf mM/s return vmax_M_per_s * 1000.0; } /// /// Beispielausgabe für häufige Zellgrößen / Transporter. /// public static void Example() { // Beispielwerte: GLUT1, GLUT2, GLUT3, GLUT4 double cellVolume = 1e-12; // Liter (≈ typische Säugetierzelle) double[] enzymeCounts = { 1e5, 1e6, 1e7 }; // niedrige, mittlere, hohe Expression double[] kcats = { 100, 500, 1000 }; // plausible Turnover-Werte foreach (var kcat in kcats) { foreach (var enz in enzymeCounts) { double vmax = ComputeVmax(kcat, enz, cellVolume); Console.WriteLine($"kcat={kcat,5:F0} Enzyme={enz:E0} → Vmax={vmax:F2} mM/s"); } } } } }