Team:TU Delft-Leiden/Modeling/Curli/Colony

From 2014.igem.org

Revision as of 18:05, 17 October 2014 by Anton (Talk | contribs)


Colony Level Modeling

Now that we determined values for \(\rho_{curli}\) and \(r_{cond}\) at the cell level, we can finally predict if our system works as expected and capture the dynamics of our system. The product we aim for is a chip where two parallel electrodes are a distance w apart. Between the electrodes, cells will grow and start building curli in the presence of an inducer. Then, we will measure the conductance of the resulting biofilm, which is related to the amount of inducer. Since even with bound gold nanoparticles the conductivity of the curli is very low, the chip is designed such that the electrodes are as long as possible.
For the modeling, we can make some approximations. Since the cells are grown on a chip, we assume that the cells and curli grow on a surface. This reduces our problem from 3D to 2D. This saves much computational time and memory. For this model, we take a chip of 500 by 500 µm. The electrodes are placed parallel to the y axis on x = 20 µm and x = 480 µm. The next approximation is that the cells are already present when they are induced by DNT/TNT, we neglect cell growth. In our model, E. coli are present with a density of \(\rho_{cell}\). Furthermore, we assume there is no spatial correlation between the cells; hence we place them at random on our chip. The cell density we use is \( \ 2 \cdot 10^4 \) cells per \( mm^2 \). We would like to model higher cell densities and larger chips. However, the memory cost of the solution increases with the amount of cells squared and, even when the code is neatly vectorized, the computational time increases drastically.
Firstly, we want to prove that our system works as expected. So, we want to predict if a conductive path between the two electrodes arise at a certain point in time and at which time this happens. Secondly, we not only want to answer the question if our system works as expected with a yes or no answer, but we also want to make quantitative predictions about the resistance between the two electrodes of our system in time. We do this by modeling the curli growth on the colony level; each cell is now visualized and has curli growth. Now, we have come up with two different approaches to answer these questions:

  • Firstly, we let the cells increase their conductive radius in time, according with our findings on the cellular level, see figure 1. A connection is created from one electrode to the other electrode when there is a conductive path between them. Conductive paths consists of cells that have a connection between each other; cells connect when there is an overlap between their conductive radius. This problem is very similar to problems in percolation theory. From this, we can make conclusions about how our system works in an experimental setting.
  • Secondly, we not only want to answer the question if our system works as expected with only a yes or no answer, but we also want to make quantitative predictions about the resistance between the two electrodes of our system in time. Therefore, we used graph theory to translate the cells on the chip to a graph and used an algorithm from graph theory to calculate the resistance between the two electrodes. The conductance between the cells is computed from an integral that we have set up starting at equation 1 and resulting in equation 18.

Figure 1: The green lines are the conductive radius plotted versus the time for 100 cells with a critical density of \( \rho_{crit}=1204 \) curli subuntis \( \mu m ^{-3} \). The orange red represents the mean conductive radius and the dark blue lines represent two standard deviations from the mean.

Percolation

We have designed our chip as a 500 by 500 µm square with an electrode on the left and right side. On this chip, we place cells randomly with a density of \(\rho_{cell}\). Subsequently, we increase the conductive radius of each cell in time, corresponding with our findings on the cellular level, see figure 1. A connection is created from one electrode to the other electrode when there is a conductive path between them. Conductive paths consists of cells that have a connection with each other. Cells have a connection with each other when there is an overlap between their conductive radii. We have programmed this by calculating the distances of all cells with all other cells and then calculate if that distance is greater than the respective conductive radius of each cell added to each other. A simulation of our resulting model is shown in figure 2. Percolation is computed by applying an algorithm that can find clusters of connected cells. When one of the clusters connects both electrodes, there is percolation.

meh
Figure 2: NorthWest: A visual representation of our cells on the plate. The circles represent the cells with an increasing conductive radius. In this simulation there are 5000 cells present on a chip of 500µmx500µm. NorthEast: A spy matrix of 5000x5000 where the blue dots represent connections between the individual cells. A blue dot on position x,y means that cell x is connected with y. Each cell is connected to itself (diagonal). At the point of percolation, \( \approx 0.1 \% \) of the matrix is connected, meaning that each cell is on average connected to 5 others. SouthWest: Each square of nxn represents a cluster of n connected cells. The squares are sorted from small to large. SouthEast: This figure shows the largest cluster of cells in different colors. Click to play!

We have stochasticity in our model, as we place the cells randomly with a density of \(\rho_{cell}\) on the chip. Therefore, we simulated our model 100 times and for each point in time we checked if there was percolation. We will only get a yes (1) or no (0) response. This enables us to find the chance of percolation at each time point, shown in figure 3 as the yellow line. The yellow line shows a sharp transition between 1.5 and 2 hours. Since this is a Bernoulli process [1], the variance is exactly equal to p(1-p). The variance must be as low as possible to get reliable measurement results. This is achieved when the transition from no percolation to percolation is as sharp as possible.
At first we assumed that \(r_{cond}\) is the same for each cell at each point in time (figure 1 red line). However, figure 1 shows that there clearly is some cellular variation in \(r_{cond}\). Therefore, we added a new feature to our model; the conductive radius of each cell can now deviate from the mean \(r_{cond}\) with the standard deviation as found in figure 1. We simulated our new model again 100 times and for each point in time we checked the chance of percolation, see figure 3 as the blue line. Fortunately, the resulting curve is very similar to the curve without cellular variation in \(r_{cond}\) (yellow line). This means that cellular variation has little influence on the chance of percolation at each point in time. Therefore, the results of our model are robust to cellular variation and it is likely that many factors that could increase the cellular variation, e.g. different CsgA or CsgB protein production rates, are relatively unimportant.

Figure 3: The chance of percolation with 5000 cells on a 500x500 \(\mu m \) chip. as function of time. The results are from 100 simulations. The yellow line represents the chance of percolation where all the cells have the same conductive radius. The blue line is the same simulation, but all cells have slightly different conductive radii. Note how there is no notable difference between the two.

Influence of the chip geometry on the point of percolation

To further investigate the point of percolation we have varied the shape of our chip. We have decreased the relative distance between the electrodes by making our chip 250 µm x 500 µm, where the electrodes are 250 µm apart. From the result, shown in figure 4, it can be seen that our system behaves in correspondence with a percolation problem. The system is smaller, therefore the transition toward percolation is less sharp. This suggests that we want to increase the area size of our system. A larger area results in a shaper transition, thus a lower uncertainty. Other simulations with a chip of 1000 µm x 500 µm show a sharper transition.

Figure 4: The chance of percolation with 2500 cells on a 250x500 \(\mu m \) chip. as function of time. The results are from 100 simulations. The yellow line represents the chance of percolation where all the cells have the same conductive radius. The blue line is the same simulation, but all cells have slightly different conductive radii.

Influence of the promoter strength on the moment of percolation.

As we want our system to be usable as a biosensor, it has to be strongly dependent on the analyte concentration, and therefore the CsgB production rate. To verify this is the case, we have run the same gene and cell level simulations as before, with the same parameters, including the critical density. The only exception is that the CsgB production rate is reduced by 50%. (\(p_B = 6.5 \cdot 10^{-14} M/s\) instead of (\(p_B = 1.3 \cdot 10^{-13} M/s \) ). The result is shown in figure 5.


Figure 5: The change of induction for t=0:10 hours, when cellular differences are included in the cell level for different induction strengths. The orange line is created by reducing the promoter strength of the cyan line (\(p_B = 1.3 \cdot 10^{-13} M/s \) ) by 50%.

From the figure, we see that there is a very distinguishable difference between the two lines. First of all, the moment of percolation is much later (4.5 hours as opposed to 1.5 hours). Equally important is that the transition from no percolation to percolation is much less sharper. For a little feedback, we refer to figure 7 in the Cell Level Model.


Resistance

To calculate the conductance (which is the inverse of the resistance) as function of time, we repeat the following steps:

  • Place the cells on the chip.
  • Compute the conductance between the cells.
  • Compute the conductance between the electrodes.


Compute the conductance between the cells

First, we have to get a quantitative measure for the conductance between two cells. To do this, we will quantify the overlap of two conducting spheres, where we assumed that the conducting spheres represent cells surrounded by curli filaments. We subdivide the overlapping region in infinitesimal volumes \(dV\). The infinitesimal conductance of such an infinitesimal volume is given by:

$$ d \sigma (y) = \ \frac{\rho_1}{r_1} dV \frac{\rho_2}{r_2} dV \tag{1}$$

The factor \( 1/r \) is introduced to account for the conductance of the wires itself, which is inversely proportional to the length of the conducting wire [2]. Further away from the cell, the wires need a longer distance to go to the cell. Since we want to know the strength of the connection between the cells, we have to include this factor. For a straight line this is inversely proportional to the distance. For a single curli fibril, this relation does not hold. However, we assume that the curli density is high, thus there are many connections between the curli. Then there is a pathway from the origin to \( r \) roughly proportional to the distance from the cell. To find the total conductance, we integrate on both sides. To account for the fact that both volume elements \(dV\) are the same, we make use of the Dirac-delta function \(\delta_3\) [3]. This gives us the following:

$$ \sigma (y) = \int{ \frac{\rho_1(\vec{r_1})\rho_2(\vec{r_2})}{r_1 r_2}\delta_3(\vec{r_2}-f(\vec{r_1}))d^3\vec{r_1}d^3\vec{r_2}} \tag{2} $$

The Dirac delta allows us to remove the \(\vec{r_2}\) dependence by expressing these in \(\vec{r_1}\). The still undetermined relation between \(\vec{r_1}\) and \(\vec{r_2}\) is given by \(\vec{r_2} = f(\vec{r_1})\). Applying this removes one of the two volume integrations. Using spherical coordinates, the resulting single volume integration can be written as:

$$ \sigma (y) = \int_{r_0}^{r_{max}} \int_0^{\theta_{max}(r)} \int_0^{2\pi} \rho(r_1)\rho_2(f(r_1))\frac{r_1}{f(r_1)} \sin(\theta_1) d\phi_1 d\theta_1 dr_1 \tag{3} $$

Here we have made use of the fact that the density \(\rho\) is only dependent on \(r\) and not on \(\phi\) and \(\theta \). The integral over \(\phi_1\) is trivial and gives us a multiplication factor of \(2 \pi\):

$$ \sigma (y) = \ 2 \pi \int_{r_0}^{r_{max}} \int_0^{\theta_{max}(r)} \rho(r_1)\rho_2(f(r_1))\frac{r_1}{f(r_1)} \sin(\theta_1) d\theta_1 dr_1 \tag{4} $$

Now that we have reduced our integration to two dimensions, we will work out \(f(\vec{r_1})\). To do this, we introduce the vector from the origin of cell 1 to the origin of cell 2, \(\vec{y}\). This allows us to express \(\vec{r_2}\) in terms of \(\vec{y}\) and \(\vec{r_1}\):

$$ \vec{r_2} = \ \vec{y} - \ \vec{r_1} = \begin{bmatrix}y \\0\\ \end{bmatrix} - \begin{bmatrix} r_1 \cos(\theta_1) \\r_1 \sin(\theta_1)\\ \end{bmatrix} \tag{5} $$

Now it is straightforward to express \(r_2\) in terms of \(y\), \(r_1\) and \(\theta_1\):

$$ r_2 = \ |\vec{r_2}| = \ \sqrt{(y - r_1 \cos(\theta_1))^2 + \ r_1^2 \sin^2(\theta_1)} \tag{6} $$

Plugging this in yields the following integral:

$$ \sigma (y) = \ 2 \pi \int_{r_0}^{r_{max}} \int_0^{\theta_{max}(r)} \frac{\rho(r_1)\rho_2 \left( \sqrt{(y - r_1 \cos(\theta_1))^2 + r_1^2 \sin^2(\theta_1)}\right) r_1 \sin(\theta_1)}{ \sqrt{(y - r_1 \cos(\theta_1))^2 + r_1^2 \sin^2(\theta_1)}} d\theta_1 dr_1 \tag{7} $$

We will now have a closer look at the boundary values for \(r_1\) and \(\theta_1\). We want to integrate over the entire space. Therefore, \( \theta(max) = \pi \) and \( r_{max}=\infty \). By introducing no cut-off radius, we are able to take into account the possibility of having by chance a very large conductive radius. Here we have approximated our cells as points in space. Hence \( r_0 =0 \).


We will now use that the curli density can be described as (see section Cell Level Model):

$$ \rho(r) = \ C_{1}e^{-\frac{r}{C_{2}}} + C_{3}e^{-\frac{r}{C_{4}}} \tag{8} $$

For simplicity we demonstrate what the formula would look like when only one exponential term is present. Later we will show how you can use this to get an expression for the entire formula.

$$ \rho(r) = \ C_{1}e^{-\frac{r}{C_{2}}} \tag{9} $$

Plugging in the boundary values and our expression for \(\rho(r)\), we find the following expression for the conductance between two cells:

$$ \sigma (y) = \ 2 \pi C_{1}^2 \int_{0}^{\infty} \int_0^{\pi} \frac{e^{-\frac{r_1}{C_{2}}} e^{-\frac{ \sqrt{(y - \ r_1 \cos(\theta_1))^2 + \ r_1^2 \sin^2(\theta_1)}}{C_{2}}} r_1 \sin(\theta_1)}{\sqrt{(y - r_1 \cos(\theta_1))^2 + r_1^2 \sin^2(\theta_1)}} d\theta_1 dr_1 \tag{10} $$

This integral looks very complicated, but don't panic! It can algebraically be simplified with some substitutions. We can rewrite this integral by moving all terms independent of \( \theta \) out of the integral over \(\theta_1\). Furthermore, using that \( \sin^2 (\theta_1) + \cos^2(\theta_1) = 1 \) we get.

$$ \sigma (y) = \ 2 \pi C_{1}^2 \int_{0}^{\infty} r_1 e^{-\frac{r_1}{C_{2}}} \int_0^{\pi} \frac{e^{-\frac{ \sqrt{y^2+r_1^2-2yr_1 cos( \theta_1 ) }}{C_{2}}} \sin(\theta_1)}{ \sqrt{y^2+r_1^2-2yr_1 \cos( \theta_1 ) }} d\theta_1 dr_1 \tag{11} $$

Now we must recognize that we can substitute \( x= cos(\theta_1) \) such that \( dx = -\sin(\theta_1) d\theta_1 \). This results in:

$$ \sigma (y) = - \ 2 \pi C_{1}^2 \int_{0}^{\infty} r_1 e^{-\frac{r_1}{C_{2}}} \int_1^{-1} \frac{e^{-\frac{ \sqrt{y^2+r_1^2-2yr_1 x }}{C_{2}}}}{\sqrt{y^2+r_1^2-2yr_1 x }} dx dr_1 \tag{12} $$

In the second integral we recognize something of the form \( \int \frac{e^{-\sqrt{a+bx}}}{C_2\sqrt{a+bx}} dx \) with \( a= \frac{y^2+r_1^2}{C^2_2} \) and \(b=-\frac{2yr_1}{C^2_2} \). Substituting \( h= \sqrt{a+bx} \) with \( dx= \frac{2h}{b} dh \) yields:

$$ \int_1^{-1} \frac{e^{-\sqrt{a+bx}}}{C_2\sqrt{a+bx}} dx = \frac{2}{bC_2} \int_{\sqrt{a+b}}^{\sqrt{a-b}} e^{-h} dh= \frac{-2}{bC_2} (e^{-\sqrt{a-b}}- \ e^{-\sqrt{a+b}})$$

Now \(a\) and \(b\) can be substituted:

$$ \int_1^{-1} \frac{e^{-\sqrt{a+bx}}}{C_2\sqrt{a+bx}} dx = \frac{C_2}{yr_1} \left( e^{-\frac{\sqrt{y^2+r_1^2+2yr_1}}{C_2}} - e^{-\frac{\sqrt{y^2+r_1^2-2yr_1}}{C_2}} \right)$$

Hence, the entire integral now becomes:

$$ \sigma (y) = \frac{ 2 \pi C_{1}^2 C_2 }{y} \int_{0}^{\infty} e^{-\frac{|y-r_1|+r_1}{C_2} } - e^{-\frac{y+2r_1}{C_2} } dr_1 \tag{13} $$

Solving the second integral is fairly easy:

$$ \sigma (y) = \frac{ 2 \pi C_{1}^2 C_2 }{y} \int_{0}^{\infty} e^{-\frac{|y-r_1|+r_1}{C_2} }-e^{-\frac{y+2r_1}{C_2} } dr_1 = \frac{ 2 \pi C_{1}^2 C_2 }{y} \left( \int_{0}^{y} e^{-\frac{y}{C_2}} dr_1 +\int_{y}^{\infty} e^{-\frac{2r_1-y}{C_2}} dr_1 -e^{\frac{-y}{C_2}}\int_0^{\infty} e^{-\frac{2r_1}{C_2} } dr_1 \right) \tag{14} $$

Which brings us to the final result:

$$ \sigma (y) = \ 2 \pi C_{1}^2 C_2 e^{-\frac{y}{C_2}} \tag{15} $$

The same derivation has also been done by us for the case that \( \rho_1(r) = \ C_{1}e^{-\frac{r}{C_{2}}} \) and \( \rho_2(r) = \ C_{3}e^{-\frac{r}{C_{4}}} \). The conductance between the two electrodes is then:

$$ \sigma (y) = \ \frac{4 \pi C_{1}C_3 C_2^2 C_4^2}{y \left( C_2^2 - C_4^2 \right)} \left( e^{-\frac{y}{C_2}} -e^{-\frac{y}{C_4}} \right) \tag{16} $$

In our case \( \rho_{1}= \rho_{2} = \rho_a + \rho_b \), with \( \rho_a = C_1 e^{-\frac{r}{C_2}} \) and \( \rho_b = C_3 e^{-\frac{r}{C_4}} \). We can use the linearity of the system and using equation 1:

$$ d \sigma (y) = \ \frac{\rho_{1}}{r_1} dV \frac{\rho_2}{r_2} dV = \ \frac{\rho_{a}}{r_1} dV \frac{\rho_a}{r_2} dV + \ \frac{\rho_{b}}{r_1} dV \frac{\rho_b}{r_2} dV + 2* \frac{\rho_{a}}{r_1} dV \frac{\rho_b}{r_2} dV\tag{17} $$

These will form three integrals in the same form as we have previously derived! The final result then becomes:

$$ \sigma (y) = \ 2 \pi \left( C_{1}^2 C_2 e^{-\frac{y}{C_2}} + C_{3}^2 C_4 e^{-\frac{y}{C_4}} + \frac{4 C_{1}C_3 C_2^2 C_4^2}{y \left( C_2^2 - C_4^2 \right)} \left( e^{-\frac{y}{C_2}} -e^{-\frac{y}{C_4}} \right) \right) \tag{18}$$

Results

Now, we use graph theory to translate the cells on the chip to a graph and use an algorithm from graph theory to calculate the resistance between the two electrodes.


Influence of the chip size.

We have calculated the conductance as function of time for different dimensions of our plate. We varied the distance between the electrodes between 210, 460 and 960 \( \mu m \). The length of the electrodes is kept at \( 500 \mu m\). The result is shown in figure 6.

Figure 6: The conductance of our system as function of time, using the results from the gene and the colony level. Different simulations have been done with different chip sizes. The length of the chips is in all cases \( 500 \mu m \). The distance between the electrodes is varied from \( 210 \mu m \) (green lines) to \( 460 \mu m \) (red lines) and \( 960 \mu m \) (blue lines). There are multiple lines as we repeated the simulations multiple times.

From figure 6 we draw a couple of conclusions:

  • First of all, there is a very strong trend in the red lines. From 0-2 hours, the conductance is increasing rapidly. We have already seen from the gene level modeling that this is the result of rapid curli growth due to the abundance of CsgA at t=0 hours. When all initial CsgA proteins have formed curli, the increase in curli is linear with time and so is the conductance. This is unexpected, since from the resistor example in percolation theory, an exponential increase was expected, see the percolation theory section. From these results we conclude that it is not necessary to wait a very long time to see any change in conductivity in our system. The conductivity at 10 hours is barely twice as large as the conductivity at 2 hours.
  • When the electrodes are positioned further away, the conductance decreases inversely proportional. An increase from \( 210 \mu m \) to \( 460 \mu m \) (factor 2.2) results in a decrease in conductivity from \( 6.1e-13 \) a.u. to \(2.6e-13\) a.u. (factor \(2.3^{-1}\). However, their shapes maintain the same.
  • The relative uncertainty of the green and red curves is not significantly different. The mean relative uncertainty of the larger chips (red lines) is 3.7 % as opposed to 3.4% for the smaller chips (green lines). The relative uncertainty is smallest at 1:15 hr, where the slope is steepest, for both curves (2.6%) and increases with time.

Influence of the cell density

Another parameter we investigated is the influence of cell density on the conductivity of the system. From percolation theory we have learned that this is a strong factor in the moment of percolation.

Figure 7: The conductance of our chip ( \( 500\mu m X 500\mu m \) as function of time. Two different cell densities have been simulated. The red lines show simulations with a cell density of \( 2 \cdot 10^4 cells / mm^2\). The blue lines show the results with a cell density of \( 2.4 \cdot 10^4 cells / mm^2\)

As expected, increasing the cell density drastically increases the conductance. The cell density is increased with 20%, but the conductivity is increased by 65% (from 2.7e-13 a.u. to 4.4e-13 a.u.). Increasing the cell density thus greatly improves our signal. Furthermore, we expect that there is less sensitivity to the random behaviour of the cell placement, since there is a larger sample size. However, we cannot strongly make this statement, since we only have 5 data points at larger densities (mean uncertainty of 2.7%). Another very important conclusion and recommendation for the lab is that the cell density should be kept constant for small changes have a strong effect on the outcome. It should be noted that for very high cell densities our model might not work, since we did not account for physical interactions between the cells and or curli.


Influence of the CsgB induction strength

The most important question of all is: Will our system work, and under what conditions? To answer this question we have done the exact same simulation as in the gene level and the cell level as elsewhere, but with the only difference that we halved the promoter strength of CsgB. This simulates a CsgB that is less activated; when there is less TNT/DNT present. The result is shown in figure 8.

Figure 8: The conductance of our chip ( \( 500\mu m X 500\mu m \) as function of time. Two different activation strengths have been simulated. The red lines (same as in figure 16/17) show a 100% activated CsgB promoter. The blue lines show the results for a promoter that is activated for 50%.

Indeed, there can be concluded that the induction strength is a factor for the conductance. Unfortunately, it's influence is not as big as we hoped. The curves are near each other. Especially for longer times, the differences are barely larger than the uncertainty due to cellular placement on the chip. Compare these differences to the differences in figure 7 and there can be concluded that it will be very hard to distinguish between a small increase in cell density or increase in DNT. From 3 hours, the relative deferences between the mean of the two curves is less than 20%. But there is some good news. The Differences are largest in the regime where there is a steep increase. At t=1h, the red curves show 2.5 times as much conductance as the blue curves. Furthermore, the point where the transition is between fast increase and linear increase of conductivity shifts with the induction strength.


Recommendations for product design and wet lab

There are a couple of recommendations we have in the design of the chip:

  • From figure 6 we recommend to decrease the distance between the electrodes. This will increase the conductance without increasing the uncertainty. From the shape of the curve we expect that we do not need to wait very long (longer than a couple of hours) to do a measurement. The gain in conductivity is after a steep increase relatively small. Furthermore, the uncertainty due to the placement of our cells increases of time.
  • Figure 7 gives us a couple of recommendations for the lab. For increased signal strength, we recommend high cell density. However, it is crucial that the cell density is kept constant through the measurement. It's influence is significant and over the span of multiple hours, the cells will, when uncontrolled, destructively influence the results of the measurement.
  • From figure 8 we have learned that we have to be very careful with our measurement time in order to be able to draw conclusions about the concentration of TNT/DNT. The influence of the induction strength is very small and decreasing after the initial amount of CsgA is converted to curli. A recommendation for the lab is to increase the waiting time (thereby increasing the initial amount of CsgA) prior to the experiment. This will increase the height and thereby the relative differences. In our curve, this increase happens between 0-2.5 h hours. The time length of this strong increase in conductivity is strongly dependent on the parameter K in our simplified gene model. We could fit this parameter to our curves, just by doing a conductivity measurement as we have done in silico. If only a single measurement can be done, we recommend measuring just after the transition to the linear increase in time. The uncertainty is then still low and the differences are relatively high. Furthermore, it is then less sensitive to timing protocols than when the measurement is performed when the conductance increase is steepest. If there can be continuously measured, the measuring until there is linear increase in time will give the most useful information to extracting inducement strength, since the time of this point depends on the strength of induction.


References

[1] C.W. Helstrom, "Probability and Stochastic Processes for Engineers", Macmillan Publishing Company, 1984.

[2] N. Kumar, "Comprehensive Physics XII", Laxmi Publications, 2003.

[3] G.B. Arfken & H.J. Weber, "Mathematical Methods for Physicists Fifth Edition", Academic Press, 2000.

Top
facebook twitter