resources

Nonlinear fitting of titration data using Sigma Plot

The “binding by two ligands” procedure part of the fitting tools of the software is here modified to accommodate simultaneous fitting of complexing capacities and the sensitivity S (SFIT). Titration data were directly imported to the software and fitted using the following equation:

f = (Bmax1*abs(x)/S/(Kd1 + abs(x)/S) + Bmax2*abs(x)/S/(Kd2 + abs(x)/S))+abs(x)/S (S2)

that respects the nomenclature of the “binding by two ligands” procedure included in the software to facilitate its adaptation by other users. Full step by step details to program this new procedure into the software package can be found in Table S1. From Eq. (6) complexing parameters can be obtained with the following expressions (if titration data in nM and nA respectively):

Bmax1=[LS] (S3)

Bmax2= [LW] (S4)

KS =1/Kd1· ·109 (S5)

KW=1/Kd2· ·109 (S6)

A convenient fact is that the output includes standard errors for all those parameters determined, including an error for S.

Programming of non-linear fitting of Eq. (S1) in Sigma Plot.

Once the titration data have been pasted in two different columns of a Sigma Plot spreadsheet, by pressing F5 (or locating Regression Wizard in the menu) the following menu opens:

Select Equation category:

Go to the option User-defined

Edit code and fill all the options with the following information before running the regression tool. The software allows saving this new procedure for future use.

Remember that here variable x is ip (in nA) and variable y is [Cu]TOT (in nM).

Please replace the contents of the different boxes in the code page with the following code:

Table S1

Equation:

f = (Bmax1*abs(x)/S/(Kd1 + abs(x)/S) + Bmax2*abs(x)/S/(Kd2 + abs(x)/S))+abs(x)/S

fit f to y

''fit f to y with weight reciprocal_y

''fit f to y with weight reciprocal_ysquare

Variables:

x = col(1)

y = col(2)

reciprocal_y=1/abs(y)

reciprocal_ysquare=1/y^2

Initial parameters:

Bmax1 = max(y)/2 ''Auto {{previous: 31.0214}}

Kd1 = if(x50(x,y)>0, 0.5*x50(x,y), if(mean(x)=0, 1, 0.5*abs(mean(x)))) ''Auto {{previous: 0.409331}}

Bmax2 = max(y)/2 ''Auto {{previous: 88.3188}}

Kd2 = if(x50(x,y)>0, 1.5*x50(x,y), if(mean(x)=0, 2, 1.5*abs(mean(x)))) ''Auto {{previous: 22.9404}}

S = max(y)/max(x) ' {{previous: 0.456565}}

Constraints:

Bmax1>0

Kd1>0

Bmax2>0

Kd2>0

S>0

Iterations:

2000

Step size:

1

Tolerance:

1e-010