Implicit UDF Models¶
Starting with v4.02, TableCurve 2D's UDFs can contain implicit functions. Implicit functions are of the form f(x,y)=0 where it is impossible to factor y to where it exists only on the left hand side of the equation.
The implicit UDF function is IMPLICIT(Fn#,Ymin,Ymax,Tol)
- • Fn#, the number of the Fn to be implicitly solved for Y
- • Ymin, the initial lower bracket for the solution of Y
- • Ymax, the initial upper bracket for the solution of Y
- • Tol, the fractional tolerance for solution convergence
If the initial bracketing for Y is unsuccessful, the initial Y limits are expanded first by 1x the Y range, then 10x the Y range, and finally by 100x the Y range. Zero is returned in the instance where bracketing or convergence fails.
The following UDF example is for the Michaelis-Menten equation for enzyme kinetics Y=A0+A2*LN(A0)-A1*X-A2*LN(Y). Y is concentration, X is time, A0 is the concentration at time 0, A1 and A2 are the parameters of the underlying hyperbolic rate equation dC/dt=A1*C/(A2+C):
F1=IF((Y.EQ.DATAERR).OR.(Y.LE.0),0,A0+A2*LN(A0)-A1*X-A2*LN(Y)-Y)
Y=IMPLICIT(F1,YMIN,YMAX,1E-8)
The following UDF example is for the basic ligand binding model Y=((A0*A1/(1+A0*(10^X-Y*10^X))+A2)*(10^X-Y*10^X))/10^X. Y is the Bound/Total ratio, X is the base 10 log of the Total, A0 is the affinity K, A1 is the binding capacity R, and A2 is the non-specific binding N:
F1=10^X
F2=((A0*A1/(1+A0*(F1-Y*F1))+A2)*(F1-Y*F1))/F1-Y
Y=IMPLICIT(F2,YMIN,YMAX,1E-8)
Note that the Y= is not a part of the expression to be solved. The Fn is implicitly solved for Y assuming the Fn evaluates to 0. If your implicit function is of the form y=f(x,y) or 1=f(x,y), you must be sure to subtract Y or 1 from the Fn expression.
The file MICHMENT.UDL contains implicit and explicit solutions to the Michaelis-Menten equation. The UDF library, LIGAND.UDL contains six implicit models for a single ligand binding to 1, 2, and 3 sites, with and without non-specific binding. Also included are the two explicit solutions for the 1 site case.