5U-R-RL
Generalized model with one binding-incompetent conformation of R (for example, closed) and many binding-competent (for example, open) leading to one nal bound (closed) conformation of R
Here I will analyze numeric solutions from "derivation.mn" document.
Clean up
reset()
Path to previous results
ProjectName:="5U-R-RL";
CurrentPath:="/Users/kovrigin_laptop/Documents/Workspace/Global_Analysis/IDAP/Mathematical_models/Equilibrium_thermodynamic_models/U-multi-path-models/nU/5U-R-RL";
Read results of derivations
filename:=CurrentPath."/".ProjectName.".mb";
fread(filename,Quiet):
anames(User)
Assume some values for testing operation
Total_R:=1e-3:
Total_L:=10e-3:
Kb1_p1:=2:
Kb1_p2:=3:
Kb1_p3:=4:
Kb1_p4:=5:
Kb1_p5:=6:
Ka1_p1:=2:
Ka1_p2:=3:
Ka1_p3:=4:
Ka1_p4:=5:
Ka1_p5:=6:
Kb2_p1:=2:
test operation of all functions
fLeq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_seq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_1eq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_2eq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_3eq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_4eq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_5eq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_1Leq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_2Leq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_3Leq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_4Leq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_p_5Leq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
fR_sLeq_5U_R_RL(Total_R, Total_L, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1);
=> operative
Make wrapper functions for plotting using L/R as X axis
fLeq:=LRratio -> fLeq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_seq:=LRratio -> fR_seq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_1eq:=LRratio -> fR_p_1eq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_2eq:=LRratio -> fR_p_2eq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_3eq:=LRratio -> fR_p_3eq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_4eq:=LRratio -> fR_p_4eq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_5eq:=LRratio -> fR_p_5eq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_1Leq:=LRratio -> fR_p_1Leq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_2Leq:=LRratio -> fR_p_2Leq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_3Leq:=LRratio -> fR_p_3Leq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_4Leq:=LRratio -> fR_p_4Leq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_p_5Leq:=LRratio -> fR_p_5Leq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
fR_sLeq:=LRratio -> fR_sLeq_5U_R_RL(Total_R, LRratio*Total_R, Kb1_p1,Kb1_p2,Kb1_p3,Kb1_p4,Kb1_p5,Ka1_p1,Ka1_p2,Ka1_p3,Ka1_p4,Ka1_p5,Kb2_p1):
Test plotting
Total_R:=1e-3:
LRratio_max:=2:
Kb1_p1:=2:
Kb1_p2:=3:
Kb1_p3:=4:
Kb1_p4:=5:
Kb1_p5:=6:
Ka1_p1:=1e5:
Ka1_p2:=1e5:
Ka1_p3:=1e5:
Ka1_p4:=1e5:
Ka1_p5:=1e5:
Kb2_p1:=2:
LineW:=1.5: //line width
// create plots
pLeq:= plot::Function2d(
Function=(fLeq),
LegendText="[L]",
Color = RGB::Blue,
XMin=(0),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_sLeq:= plot::Function2d(
Function=(fR_sLeq),
LegendText="[R*L]",
Color = RGB::Red,
XMin=(0),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
plot(pLeq, pR_sLeq, LegendVisible=TRUE)
=> works
Assume some constants and evaluate titrations.
NOTE: Adjust dependent constant calculation if necessary.
To create a situation with a specific B2n' constant (example):
//wanted
Kb1_p1:=1e-6:
Kb1_p2:=2:
Ka1_p2:=1e5:
Kb2_p2:=2:
// Set
Ka1_p1:=Ka1_p2:
Kb2_p1:= Kb1_p2*Ka1_p2*Kb2_p2 /( Kb1_p1 * Ka1_p1);
Simulation_name:= "Full 5U-R-RL, different affinity":
Total_R:=1e-3:
LRratio_max:=2:
Kb1_p1:=2:
Kb1_p2:=2.1:
Kb1_p3:=2.2:
Kb1_p4:=2.3:
Kb1_p5:=2.4:
Ka1_p1:=1e5:
Ka1_p2:=2e5:
Ka1_p3:=3e5:
Ka1_p4:=4e5:
Ka1_p5:=5e5:
Kb2_p1:=3:
LRratio_max:=1.5: // plotting range
LineW:=1.5: // plot line width
pLeq:= plot::Function2d(
Function=(fLeq),
LegendText="[L]",
Color = RGB::Gray,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_seq:= plot::Function2d(
Function=(fR_seq),
LegendText="[R*]",
Color = RGB::Black,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
// --- Rn' -------
pR_p_1eq:= plot::Function2d(
Function=(fR_p_1eq),
LegendText="[R']",
Color = RGB::Green,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_2eq:= plot::Function2d(
Function=(fR_p_2eq),
LegendText="[R'']",
Color = RGB::LimeGreen,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_3eq:= plot::Function2d(
Function=(fR_p_3eq),
LegendText="[R''']",
Color = RGB::SeaGreen,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_4eq:= plot::Function2d(
Function=(fR_p_4eq),
LegendText="[R'''']",
Color = RGB::Lavender,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_5eq:= plot::Function2d(
Function=(fR_p_5eq),
LegendText="[R''''']",
Color = RGB::YellowGreen,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
// --- Rn'L -------
pR_p_1Leq:= plot::Function2d(
Function=(fR_p_1Leq),
LegendText="[R'L]",
Color = RGB::Blue,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_2Leq:= plot::Function2d(
Function=(fR_p_2Leq),
LegendText="[R''L]",
Color = RGB::Cyan,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_3Leq:= plot::Function2d(
Function=(fR_p_3Leq),
LegendText="[R'''L]",
Color = RGB::Aqua,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_4Leq:= plot::Function2d(
Function=(fR_p_4Leq),
LegendText="[R''''L]",
Color = RGB::SeaGreen,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
pR_p_5Leq:= plot::Function2d(
Function=(fR_p_5Leq),
LegendText="[R'''''L]",
Color = RGB::AlizarinCrimson,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
//--------
pR_sLeq:= plot::Function2d(
Function=(fR_sLeq),
LegendText="[R*L]",
Color = RGB::Yellow,
XMin=(LRratio_max*1e-6),
XMax=(LRratio_max),
XName=(LRratio),
TitlePositionX=(0),
LineWidth=LineW):
// Text report
print(Unquoted, Simulation_name);
print(Unquoted, "-------------");
print(Unquoted,"Model: ".ProjectName);
print(Unquoted,"Total_R=".Total_R);
print(Unquoted,"Kb1'=".Kb1_p1);
print(Unquoted,"Kb1''=".Kb1_p2);
print(Unquoted,"Kb1'''=".Kb1_p3);
print(Unquoted,"Kb1''''=".Kb1_p4);
print(Unquoted,"Kb1'''''=".Kb1_p5);
print(Unquoted,"Ka'=".Ka1_p1);
print(Unquoted,"Ka''=".Ka1_p2);
print(Unquoted,"Ka'''=".Ka1_p3);
print(Unquoted,"Ka''''=".Ka1_p4);
print(Unquoted,"Ka'''''=".Ka1_p5);
Kb2_p2:= Kb1_p1*Ka1_p1*Kb2_p1 / ( Kb1_p2 * Ka1_p2):
Kb2_p3:= Kb1_p1*Ka1_p1*Kb2_p1 / ( Kb1_p3 * Ka1_p3):
Kb2_p4:= Kb1_p1*Ka1_p1*Kb2_p1 / ( Kb1_p4 * Ka1_p4):
Kb2_p5:= Kb1_p1*Ka1_p1*Kb2_p1 / ( Kb1_p5 * Ka1_p5):
print(Unquoted,"Kb2'=".Kb2_p1):
print(Unquoted,"Kb2''=".Kb2_p2." (dep)");
print(Unquoted,"Kb2'''=".Kb2_p3." (dep)");
print(Unquoted,"Kb2''''=".Kb2_p4." (dep)");
print(Unquoted,"Kb2'''''=".Kb2_p5." (dep)");
// plot all together
plot(pLeq, pR_seq, pR_p_1eq, pR_p_2eq, pR_p_3eq, pR_p_4eq, pR_p_5eq,
pR_p_1Leq, pR_p_2Leq, pR_p_3Leq, pR_p_4Leq, pR_p_5Leq,
pR_sLeq,
YAxisTitle="[X]", Header=("Model: ".ProjectName),
Height=160, Width=100,TicksLabelFont=["Helvetica",12,[0,0,0],Left],
AxesTitleFont=["Helvetica",14,[0,0,0],Left],
XGridVisible=TRUE, YGridVisible=TRUE,
LegendVisible=TRUE, LegendFont=["Helvetica",14,[0,0,0],Left],
ViewingBoxYMax=Total_R);
Full 5U-R-RL, different affinity
-------------
Model: 5U-R-RL
Total_R=0.001
Kb1'=2
Kb1''=2.1
Kb1'''=2.2
Kb1''''=2.3
Kb1'''''=2.4
Ka'=100000.0
Ka''=200000.0
Ka'''=300000.0
Ka''''=400000.0
Ka'''''=500000.0
Kb2'=3
Kb2''=1.428571429 (dep)
Kb2'''=0.9090909091 (dep)
Kb2''''=0.652173913 (dep)
Kb2'''''=0.5 (dep)
Jump back to the beginning of simulation section
Jump back to the beginning of simulation section
Test of the model: titration of R with L
Reduce to U (use U') |
Reduce to U (use U'') |
Reduce to U (use U''') |
Reduce to U (use U'''') |
Reduce to U (use U''''') |
Reduce to U-5R |
|
|
Reduce to U-R-RL (use ') |
Reduce to U-R-RL (use '') |
Reduce to U-R-RL (use ''') |
Reduce to U-R-RL (use '''') |
Reduce to U-R-RL (use ''''') |
Reduce to 2U-R-RL (use ' and '') |
Reduce to 2U-R-RL (use ' and ''), different affinity |
Reduce to 3U-R-RL, different affinity |
Reduce to 4U-R-RL, different affinity |
Full 5U-R-RL, different affinity |
|
|
|
Jump back to the beginning of simulation section
Conclusion:
The model works as expected
NOTE: To turn on one path, you need to find out how to set B2' constant. See example how to set up Kb1' and Kb2'