A: Write function for optimizing the plateau values determined during editing (only needs to work with data where time-invariant and radially invariant noise has already been removed):

- identify graphically/numerically/etc where the scan has a horizontal region (at the plateau)
- average a certain # of points from horizontal regions to get a more reliable plateau value
- exclude late scans that do not have a reliable plateau
- generate a linear fit of included plateau values:

(eq1) log (C

_{p}) = -2 s_{wavg}ω^{2}t + log (C_{0}), determine s_{wavg}, C_{0}by linear fit

- predict theoretical plateau (C
_{pt}) for the scans that were excluded in (3) using the s_{wavg}and C_{0}determined in eq1.

B: Initial van Holde - Weischet distribution:

- evenly divide span (plateau
_{scan}- baseline, for each scan) into n divisions and find intercepts to determine radius, and use that radius to determine a apparent s-value for that position. use: (eq2) s_{app}= log(r_{boundary}/r_{meniscus})/[ω^{2}* t_{corr}] - plot s
_{app}for each boundary division against the inverse square root of time_{corr} - do a linear fit of each corresponding division and extrapolate to y
_{intercept}(infinite time, or zero on the inverse time scale.

C: Account for differential radial dilution of each species.

- take s-values from initial vHW distribution and calculate the plateau concentration
for each species i based on eq1 where C
_{0}is the value obtained for each scan j when calculating: (eq3) C_{pij}= [(C_{0}- baseline)/division] exp(-2 * s_{i}* ω^{2}* t_{j}) (C_{pij}values are plateau concentrations when the species is considered in isolation, i.e., this species' partial concentration) - Check plateau consistency for all scans: C
_{ptj}= Σ (from j=1 to n) C_{pij}. Add up differences and equally distribute it over all plateaus C_{pij}so that this equation is satisfied. - Calculate new division positions in each scan for each species half way in between the two plateaus. Let this be the division concentration C
_{dij}. C_{dij}= Σ(from 1 to i-1)(C_{pij}) + (C_{pij}/2) - repeat van Holde - Weischet calculation to obtain a new set of s
_{i}and store s_{i}in a separate array.

D: repeat C until no more change in the s

_{i}array (based on user-selected iteration number).

E: Back-diffusion correction (eliminate regions of the boundary that are affected by the back diffusion). The idea is to assume that every particle is spherical (i.e., maximum diffusion, although this can be decreased by the user) and to use the smallest particle found by the van Holde - Weischet extrapolation to state the worst case. Calculate the diffusion coefficient for this particle according to eq4.

(eq4) D = (RT)/(9 π η N sqrt((2 s

_{smallest}υbar η)/(1-υbar ρ)))where η is the viscosity provided by the user

- R is the gas constant (8.314e7), should be a defined constant in UltraScan
- N is avogadros # (also defined in UltraScan)
- υbar is provided by the user
- ρ is the density of the solvent, provided by the user
- T is temperature in Kelvin (273.15+T
_{experiment})

F: Calculate the diffusion distance based on D and time, and exclude the points on the right of this boundary for each scan.