Team:SBS NY/Model

<!DOCTYPE html>

Modeling Metal<span>-</span>hunters— Brief description

Modeling our Project

Basic Idea

Here we provide a simple but efficient mathematical model to interpret our data. In this model, we tried to exclude the influence of cross interactions and get high accurate result.

Assumption

Any abstract model requires proper assumptions to approximate real system. Here are our basic assumptions.

  1. Fluorence intensity is proportional to the binding efficiency of ion with vector
  2. Any responsing curve fits Hill equation.
  3. When different kinds of ion exist in the detection system, they will not influence others’ responsing behaviour.

The first assumption is natural. Consider the whole responsing process as a computation module which consists of input, processing layer, and output. Therefore, the input is the number of ions. Processing layer is to produce fluorence protein when the ions successfully bound with vector. Output is the number of fluorence protein. The only thing affect the output is the probability of ion binding, which is determined by input. In average, we have the following:

IH(x)

Here I refers to intensity and H(x) refers to the probability of binding. x stands for the concentration of ion.

The second assumption helps us to calculate the probability in assumption one, which is based on a simplified but well-established biochemical model. In short, Hill equation reflects the binding of ligands to macromolecules, as a function of the ligand concentration. It can be written as:

Pactive=Ha(x)=xnkan+xnPinhibitive=Hi(x)=kinkin+xn

To explain the physical meaning of those parameters, here we briefly introduce the model. Suppose an “on” state of processing layer requires n binding ions, and corresponding chemical reaction can be written as:

P+nInPI

And the dissociation constant can be expressed as:
Kd=[P][I]n[nPI]

What we focus on is the probability of binding, which can be calculated by the proportion of [nPI] over all states. To simplify, we only consider two states: all binding([P]) and no binding([nPI]).Therefore the probability is:
P=[nPI][P]+[nPI]=[P][I]nKd[P]+[P][I]nKd=[I]nKd+[I]n=[I]nkan+[I]n

Since Kd is a positive constant, it can be rewritten in power form:Kd=kan. So the probability is the function of ion concentration. This is exactly the second assumption.

By integrating assumption 1 and 2, it is easy to find out the function of intensity:

I=Imax[I]nkan+[I]n

Imax is the maximum intensity the system can get.

The third assumption ensures a linear model system. Since each kind of ion has its unique responsing curve to each detector, the final intensity will be the addition of intensity from all kinds of ion. This assumption ensure that the intensity for each ion will only depend on the concentration of their own and will not be influenced by other ions. Therefore, the intensity for ith detector should be:

Ii=j(Imax)ijHij(xj)

Here Hij is the responsing curve of jth ion to ith vector.

Model

Based on the analysis in assumption, the model system is clear. For ith the detector should be:

Ii=j(Imax)ijHij(xj)

Here Hij is the responsing curve of jth ion to ith vector.

To analyze our data, we should first determine the all coeffcients in the expression and then use those standard functions to calculate the actual concentrations in an unknown sample.

Determine Coefficients

During the experiment, we have tested how the detectors response to ions by a concentration gradient. To couple the experiment with model, it is necessary to do some transformation on fitting equation.

Generally, Ij=(Imax)H(x) can be rewritten as:

log(IImaxI)=nlog(ka)nlog(I)

In this form, we can easily get a linear relation between our input concerntration and output. The question is how to find out Imax in this equation because this value determine the reprocessed data of output. Another question is, due to the large scale of our data, to ease the workload of proceesing such data. To meet the needs of these two question, define the ratio between output data and the maximum of all output data as the standard output. As following shows:

output=I1,I2,···,In

Ioutput={I1,I2,···,In}whichIi=IimaxIoutput

The elements in Ioutput fit following equation:

logIimaxIoutputImaxIimaxIoutput=nlogxinlogk

We define the value of ImaxmaxIoutput as a parameter PImax. So the equation we actually simulate is following one:
logyiPImaxyi=nlogxinlogk

Use Mathematica, the following code is shown:

outputdata = {Output1, Output2, Output3, Output4, Output5, Output6, Output7};
Processeddata = outputdata/Max[outputdata] // N;
data' = {{Log10[10^(-10)], Processeddata[[1]]}, {Log10[10^(-9)], 
    Processeddata[[2]]}, {Log10[10^(-8)], 
    Processeddata[[3]]}, {Log10[10^(-7)], 
    Processeddata[[4]]}, {Log10[10^(-6)], 
    Processeddata[[5]]}, {Log10[10^(-5)], 
    Processeddata[[6]]}, {Log10[10^(-4)], Processeddata[[7]]}};
data = {{data'[[1, 1]], data'[[1, 2]]}, {data'[[2, 1]], 
    data'[[2, 2]]}, {data'[[3, 1]], data'[[3, 2]]}, {data'[[4, 1]], 
    data'[[4, 2]]}, {data'[[5, 1]], data'[[5, 2]]}, {data'[[6, 1]], 
    data'[[6, 2]]}, {data'[[7, 1]], data'[[7, 2]]}};
solu = Flatten[
   Solve[Log10[(y*PImax)/(1 - (y*PImax))] == n*x - n*logk, y]];
fitparameter = (FindFit[data, y /. solu, {PImax, logk, n}, x])
fit = y /. solu /. fitparameter;
Show[ListPlot[data, PlotStyle -> Red], Plot[fit, {x, -11, 0}], 
 PlotRange -> {0, 1}]

Data Analysis

In last section, we successfully got statistics of each detector. Now they will be used to analyze an unknown sample.

Denote the concentration of each ion in the sample is Xn.

For each detector:

Ii=j(Imax)ijHij(Xj)for i=1,2,3,···,n

Which {(Imax)ijHij(x)} has been determined for all i,j. {Ii} is the output of unknown sample in ith detector.

Now we have n equation for n variables, it should determined the value of all variables. But unfortunately, this is not a linear system and more importantly, the technique we used to get linear form in last section cannot be transplanted here. A general way to solve such an nonlinear system is so-called “Netwon Iteration Method”.

New Form

First rewrite the model as:

j(Imax)ijHij(Xj)Ii=0

Define:
F(X)=(F1(X)F2(X)···Fn(X));X=(x1x2···xn)Fi(X)=j(Imax)ijHij(xj)Ii,for i=1,2,3,···,nF(X)=0

Now calculate the Jacobian matrix:
J(X)=(F1(X)x1F1(X)x1···F1(X)xnF2(X)x1F2(X)x1···F2(X)xn············Fn(X)x1Fn(X)x1···Fn(X)xn)Fi(X)xj=xj(j(Imax)ijHij(xj)Ii)=(Imax)ijxjHij(xj)

Once Jacobian matrix is determined, take iteration:
xn+1=xnJ1(xn)F(xn)

Theoretically we have
limn+xn=(X1X2···Xn)

This is exactly the newton iteration method.

Notice

The iteration method does not always works well, which is depending on the property of iteration functions. For some nonlinear system, the approximation could be useful in a very ting neighborhood. Such neighborhood determines the flexibility of intial value choosing. If the initial value is choosen far from the solution and the solving system is bad, then the iteration will be deficient. Therefore, to choose proper position and proper inital value to start iteration algorithm is critial to final result.

How to choose initial value

To get a good initial value for iteration, a proper range of solution should be guessed. Based on the biological property of detectors, the cross talk between target ion and untarget ion should be low. In extreme, the response of a wonderful detector to untarget ion should be a constant. First get rid of all posible background, and then solve the equation only with target ion.

That means to solve xi0 in following:

(Imax)iiHii(xi)=Iiij(Imax)ij

For all i=1,2,···,n

Then we got initial value for iteration:

x0=(x10x20···xn0)

How to choose data?

In our test, the sample can be diluted to 10X or even 100X according to its quality. Therefore, we can choose the data that benefits to the data processing. From analysis, we want to make a robust approximation, which means a small perturbation will not lead to a big change of result. So the region with large derivative should be avoided. One thing should be noticed that since the inputs in algorithm are the detector results and outputs are deduced from response curves, the derivative of the inverse functions of the curve, not response curve, should be considered. Therefore, we choose the detector results with biggest change as the “proper” data. To define the “Change”, here considers the difference between adjacent data points.

Example

Here we provide an example for 2 variables:

H[n_, k_, x_, V_] := V*x^n/(k^n + x^n)(*Hill Function*); 
DH[n_, k_, x_, V_] := (
 V*k^n n x^(-1 + n))/(k^n + x^
   n)^2(*Derivative of Hill Function*);
M = {{0.003,0.0007}}
(*Initial Value,Determine by "Solve[5*x^2/((10^-3)^2+x^2)\\[Equal]4.5,x];Solve[7*x^2/((10^-3.5)^2+x^2)\[Equal]6,x]"*);

For[i = 1, i < 10, i++, x1 = M[[i, 1]]; x2 = M[[i, 2]];
 g1 = H[2, 10^(-3), x1, 5] + H[2, 10^(-1), x2, 4] - 4.5;
 g2 = H[2, 10^(-2), x1, 3] + H[2, 10^(-3.5), x2, 7] - 6;
 {x1d, y1d} = {x1, x2} - 
   Inverse[{{DH[2, 10^(-3), x1, 5], 
       DH[2, 10^(-1), x2, 4]}, {DH[2, 10^(-2), x1, 3], 
       DH[2, 10^(-3.5), x2, 7]}}].{g1, g2}; 
 AppendTo[M, {x1d, y1d}]](*Newton Method*); Print[M[[10]]]

Result:{0.00299939,0.000679022}

Compared to original:{0.003,0.0007}

Good approximation.