52 lines
1.9 KiB
C#
52 lines
1.9 KiB
C#
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⁻¹
|
|
|
|
/// <summary>
|
|
/// Berechnet Vmax (in mM/s) aus Enzymkinetik-Parametern.
|
|
/// </summary>
|
|
/// <param name="kcat">Turnover-Zahl des Enzyms (s⁻¹ pro Molekül)</param>
|
|
/// <param name="enzymeCount">Anzahl der Enzymmoleküle in der Zelle</param>
|
|
/// <param name="cellVolume_L">Zellvolumen in Litern (z. B. 1e-12 für typische Eukaryoten)</param>
|
|
/// <returns>Vmax in mM/s</returns>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Beispielausgabe für häufige Zellgrößen / Transporter.
|
|
/// </summary>
|
|
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");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|