Particle tracking using IDL -- John C. Crocker and Eric R. Weeks (this page written primarily by Brenton Hoffman)
Home | Download software | Tutorial | Extra software

Click here to return to microrheology summary page


A program written to calculate shear moduli (G', G") from either one point mean square displacement ( or distinct mean square displacements generated from two point correlation tensors ( It is based on power-law approximations of the data and an algebraic approximation to the Generalized Stokes-Einstein with second order logarithmic derivative corrections. See Mason, Rheologica Acta 2000 and Dasgupta PRE 2005 for details. The code deals best with power-laws and can give erroneous results if the data has a lot of curvature.

The code has a fundamental problem common to all numerical Fourier or Laplace transforms. These transforms are defined for all lagtimes, but obviously data can only be obtained over a finite range of lagtimes. The code uses the points at the extrema of the msd to extrapolate to 0 and infinity. Therefore, curvature near the extrema, whether actually physical or from noise sources such as vibration or effects due to particles diffusing out of the two-dimensional imaging plane, can lead to erroneous results. In general, several data points from the edge of the msd should not be used in the conversion. The user needs to determine how many on a case by case basis. Usually the ends of the resultant rheological curves will fluctuate up and down as points are added or removed. The transformation should be repeated until this artifact stops.

Because of these caveats there is no guarantee for reliable results. In the past, we have found it useful to have new users run theoretical data through the program to get an understanding of these effects. Convenient analytical forms can be found in Mason, Rheologica Acta 2000. We strongly recommend this type of exercise, preferably with theoretical data similar to the experimental data, before publication.


The code requires a set of time points and the corresponding msd values.



IDL> g=micrheo(md(0,2:27),md(1,2:27),a=0.5,wid=0.9)

where md is the output of, a particle radius of 0.5 microns is assumed, and a width parameters of 0.9 is used. The second through 27th points are used to generate data.

NOTE: The msd data from is in the third column. A call using that structure would look like:

IDL> g=micrheo(m(0,2:27),m(3,2:27),a=0.5,wid=0.9)

where m is the output from

Using column 2 in md and 4 in m would result in the rheology generated from the theta-theat component of the two point correlation tensor or the y componment of the particle trajectory.


The output is a 4 column (4,number of time points) array where:
               res(0,*): is the frequency (s or omega), rads/sec.
               res(1,*): is G(s)  in Pascals
               res(2,*): is G'(w) in Pascals
               res(3,*): is G"(w) in Pascals

This program was written by John, and this webpage was written by Brenton Hoffman, a student working with John (with some editing to html-ize it by Eric).

Click here to return to microrheology summary page

Contact us