U models (derivation)

Binding of one ligand molecules to one receptor monomer

R + L = RL

Evgenii L. Kovrigin

01-15-2014

Back to Contents

Goals

1. define thermodynamic  equations for binding of one ligand to one receptor molecule .

2.  prepare equations for  calculations of equilibrium concentrations in the titration experiment.

Analysis of the solutions will be done separately.

Back to Contents

1. Definitions

clean up workspace

reset()

Set path to save results into:

NOTE: make sure the path ends with slash character "/".

ProjectName:="U_model_derivation";
CurrentPath:="/Volumes/Leopard_Partition/Users/kovrigin/Documents/Workspace/Global Analysis/IDAP/Mathematical_models/Equilibrium_thermodynamic_models/U/";

Binding  constant

NOTE 1: All binding constants I am using are association constants.

NOTE 2: These relationships serve as restraints for solve(), but not restrict these values in calculations!

Macroscopic equilibrium constants

K_A

K_A ;
assumeAlso(K_A  > 0):
assumeAlso(K_A , R_):

Total concentrations

Rtot - total concentration of the receptor

Rtot;
assumeAlso(Rtot>0):
assumeAlso(Rtot,R_):

Ltot - total concentration of a ligand

Ltot;
assumeAlso(Ltot>0):
assumeAlso(Ltot,R_):

Equilibrium concentrations

Req - free receptor

Req;
assumeAlso(Req>0):
assumeAlso(Req<Rtot):
assumeAlso(Req,R_):

Leq - free ligand

Leq;
assumeAlso(Leq>0):
assumeAlso(Leq<Ltot):
assumeAlso(Leq,R_):

RLeq  - equlibrium conentration of single-bound species

RLeq;
assumeAlso(RLeq>0):
assumeAlso(RLeq<Rtot):
assumeAlso(RLeq<Ltot):
assumeAlso(RLeq,R_):

Check if all names are correctly entered:

anames(Properties,User);

Back to Contents

2. Basic equilibrium equations

Goal: I will try to express analytical [L] from equation for a total concentration of a receptor or use the expression for a numeric solution if analytical is not possible

Total concentration (mass balance) equations:

eq2_1:= Rtot = Req + RLeq;
eq2_2:= Ltot = Leq + RLeq ;

Equilibrium thermodynamics equations for independent constants

eq2_3:= K_A = RLeq / (Req*Leq);

Back to Contents

4. Derivation of  equations for concentrations of species

Goal: Express concentration of the free ligand, Leq, as a function of equilibrium constants and total concentrations.

Equations to use:

eq2_1

eq2_2

eq2_3

STEP 1: Express all R-containing species starting from the higher stoichiometry

Express RL_2eq out of the equilibrium constant equation

eq2_3:
solve(%, RLeq):
%[1][1]:
eq4_1:= RLeq = %

STEP 2: Substitute all into mass balance for L and express Req

eq2_2:
% | eq4_1:
eq4_2:= %

solve(eq4_2,Req):
%[1][1]:
eq4_3:= Req = %

STEP 3: Substitute all into mass balance for R and attempt to solve for Leq

eq2_1:
% | eq4_1 | eq4_3:
eq4_4:= %;
normal(%);
eq4_5:=Simplify(%);

=> This is an expression for numerical solution

Try to solve analytically

solutions:=solve(eq4_5, Leq);

=> multipe solutions. Select the positive one:

sol1:=solutions[2][1];
sol2:=solutions[3][1];

Test

sol1 | Ltot=1 | Rtot = 1 | K_A=1;
bool(%>0)

sol2 | Ltot=1 | Rtot = 1 | K_A=1;
bool(%>0)

Use positivie solution!

eq4_6:= Leq = sol1

Summary of equations for equilibrium concentrations of species

NOTE: Rename all equations for easier use.

Expression for analytical solution for Leq:

eqLeq:=eq4_6

Expressions for other species

eqReq:=eq4_3

eqRLeq:=eq4_1

Back to Contents

5. Prepare equations

Introduce a convenient variable LRratio=Ltot/Rtot

eqLRratio:= Ltot = LRratio * Rtot

5.1 Macroscopic B model

STEP 1: Make a function forLeq

fLeq_U:= (Rtot, LRratio, K_A) --> eqLeq[2] | eqLRratio;

Assume some constant values for testing

NOTE 1: Use different names for variables!!!

NOTE 2: Make sure the VALUES are all different and NOT just ORDER OF MAGNITUDS to make it easier for troubleshooting.

Rtot_value:=1e-3:
K_A_value:= 1e4:
LR_ratio_max:= 2.5:
LR_ratio_value:= 0.8:

Test operation of the new function:

fLeq_U(Rtot_value, LR_ratio_value, K_A_value)

=> operational!

STEP 3: Define functions for equilibrium concentrations of all species

(begin with listing equations for the species)

Expressions for other species:

eqReq:
pnReq_U:= proc(paramRtot, paramLRratio, paramK_A)
local  L;
begin
L:=fLeq_U(paramRtot, paramLRratio, paramK_A);
// Insert equation for this species and substitute all parameters

eqReq[2] | Ltot=paramLRratio*paramRtot | Leq=L | K_A=paramK_A

end_proc

test

pnReq_U(Rtot_value, LR_ratio_value, K_A_value);

=>operational

RLeq

eqRLeq;
pnRLeq_U:= proc(paramRtot, paramLRratio, paramK_A)
local  L, R;
begin
L:=fLeq_U(paramRtot, paramLRratio, paramK_A);
R:=pnReq_U(paramRtot, paramLRratio, paramK_A);
// Insert equation for this species and substitute all parameters
eqRLeq[2]  | Leq=L | Req=R | K_A=paramK_A ;
end_proc

Test

pnRLeq_U(Rtot_value, LR_ratio_value, K_A_value);

=> operational

STEP 4: Catch errors in substitution of equations (cut-and-paste glitches)

Collect all the test lines and re-run. Make sure all numbers come out different.

Cut-and-paste glitches come out as identical numbers.

fLeq_U(Rtot_value, LR_ratio_value, K_A_value);
pnReq_U(Rtot_value, LR_ratio_value, K_A_value);
pnRLeq_U(Rtot_value, LR_ratio_value, K_A_value);

=> All different! No cut-and-paste typos.

STEP 5: Collect all these names in Section 6 for saving on the disk.

Back to Contents

6. Save results on disk for future use

(you can retrieve them later by executing: fread(filename,Quiet))

ProjectName;
CurrentPath

Save all numeric solutions:

filename:=CurrentPath.ProjectName.".mb";
write(filename,

//   - equations
eqLeq,
eqReq,
eqRLeq,

//   -  procedures
fLeq_U,
pnReq_U,
pnRLeq_U

)

Conclusions

Derivation has been completed. Analysis document confirms correctness of the model

Back to Contents