InitalCommit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
using BaseCellSimulation.Enzyms;
|
||||
using BaseCellSimulation.Enzyms.Membrane;
|
||||
using BaseCellSimulation.Enzyms.Membrane.GLUT;
|
||||
|
||||
namespace BaseCellSimulation
|
||||
{
|
||||
/// <summary>
|
||||
/// Cell membrane small leakage and passive disposal of waste
|
||||
/// </summary>
|
||||
/// <param name="cellname"></param>
|
||||
/// <param name="glucoseImportRate"></param>
|
||||
/// <param name="oxygenImportRate"></param>
|
||||
/// <param name="wasteOuttakeRate"></param>
|
||||
public class Membrane : Organell
|
||||
{
|
||||
public readonly List<MembranEnzyme> enzyms = new List<MembranEnzyme>();
|
||||
public readonly List<GLUT1> glutTransporters = new List<GLUT1>();
|
||||
private readonly string name;
|
||||
|
||||
public Membrane() : this("Membrane") { }
|
||||
|
||||
public Membrane(string cellname)
|
||||
{
|
||||
this.name = cellname;
|
||||
enzyms.Add(new KLeakChannel());
|
||||
enzyms.Add(new MCT());
|
||||
enzyms.Add(new NaK_ATPase());
|
||||
enzyms.Add(new NCX());
|
||||
enzyms.Add(new PMCA());
|
||||
// Add GLUT transporters
|
||||
glutTransporters.Add(new GLUT1());
|
||||
}
|
||||
|
||||
public string getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public void applyChanges(CellRessources res, double dt)
|
||||
{
|
||||
|
||||
foreach (MembranEnzyme enzyme in enzyms)
|
||||
{
|
||||
enzyme.ApplyChanges(res, dt);
|
||||
}
|
||||
foreach (GLUT1 glut in glutTransporters)
|
||||
{
|
||||
glut.ApplyChanges(res, dt);
|
||||
}
|
||||
// --- 5. Kleine Verluste anderer Stoffe (Diffusionslecks) ---
|
||||
res.Res.Carbon.Glucose = Math.Max(0, res.Res.Carbon.Glucose - 0.001 * dt);
|
||||
res.Res.Oxygen = Math.Max(0, res.Res.Oxygen - 0.001 * dt);
|
||||
}
|
||||
|
||||
public void calculateRate(CellRessources res)
|
||||
{
|
||||
foreach (MembranEnzyme enzyme in enzyms)
|
||||
{
|
||||
double gradient = enzyme.CalculateGradient(res);
|
||||
enzyme.ComputeRate(gradient, res.Env);
|
||||
}
|
||||
double glutGradient = glutTransporters[0].CalculateGradient(res);
|
||||
|
||||
foreach (GLUT1 glut in glutTransporters)
|
||||
{
|
||||
glut.ComputeRate(glutGradient, res.Env);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user