Abstract:
The present disclosure provides methods and systems for automated analysis of spectrometry data corresponding to particles of a sample, such as large data sets obtained during single particle mode analysis of an inductively coupled plasma mass spectrometer (SP-ICP-MS). Techniques are presented herein that provide appropriate smoothing for rapid data processing without an accompanying reduction (or with an acceptably negligible reduction) in accuracy and/or precision.

Description:
TECHNICAL FIELD 
       [0001]    This invention relates generally to analysis of spectrometry data. In particular embodiments, the invention relates to automated peak detection and analysis in single-particle inductively coupled plasma mass spectrometry (SP-ICP-MS). 
       BACKGROUND 
       [0002]    Inductively coupled plasma mass spectrometry (ICP-MS) has been gaining favor with laboratories around the world as the instrument of choice for performing trace metal analysis. ICP-MS instrument detection limits are at or below the single part per billion (ppb) level for much of the periodic table, the analytical working range is nine orders of magnitude, productivity is superior to other techniques, and isotopic analysis can be readily achieved. Most analyses performed on ICP-MS instrumentation are quantitative; however, ICP-MS can perform semi-quantitative analysis as well, identifying an unknown sample for any of 80 detectable, differentiable elements, for example. 
         [0003]    In ICP-MS analysis, samples are introduced into an argon plasma as aerosol droplets. The plasma dries the aerosol, dissociates the molecules, then removes an electron from the components, thereby forming singly-charged ions, which are directed into a mass filtering device known as a mass spectrometer. Most commercial ICP-MS systems employ a quadrupole mass spectrometer which rapidly scans the mass range. At any given time, only one mass-to-charge ratio will be allowed to pass through the mass spectrometer from the entrance to the exit. Upon exiting the mass spectrometer, ions strike the first dynode of an electron multiplier, which serves as a detector. The impact of the ions releases a cascade of electrons, which are amplified until they become a measurable pulse. The intensities of the measured pulses are compared to standards, which make up a calibration curve for a particular element, to determine the concentration of that element in the sample. 
         [0004]    Most ICP-MS instruments include the following components: a sample introduction system composed of a nebulizer and spray chamber; an ICP torch and RF coil for generating the argon plasma that serves as the ion source; an interface that links the atmospheric pressure ICP ion source to a high vacuum mass spectrometer; a vacuum system that provides high vacuum for ion optics, quadrupole, and detector; a collision/reaction cell that precedes the mass spectrometer and is used to remove interferences that can degrade achievable detection limits; ion optics that guide the desired ions into the quadrupole while assuring that neutral species and photons are discarded from the ion beam; a mass spectrometer that acts as a mass filter to sort ions by their mass-to-charge ratio (m/z); a detector that counts individual ions exiting the quadrupole; and a data handling and system controller that controls aspects of instrument control and data handling for use in obtaining final concentration results. 
         [0005]    Single-particle (SP) ICP-MS is a recently developed technique useful for detecting and sizing metal-containing nanoparticles at very low levels with great precision and accuracy. The detection of such nanoparticles is important in a variety of fields, particularly environmental health. For example, while there is great interest in the use of engineered nanomaterials in a wide variety of industrial and commercial applications, such nanoparticles may be harmful to humans. A 2009 study in the Journal of Nanoparticle Research showed that zinc oxide nanoparticles were toxic to human lung cells in lab tests even at low concentrations (Weisheng et al., Journal of Nanoparticle Research, 2009, Vol. 11, No. 1, pp. 25-39). Other studies have shown that tiny silver particles (15 nm) killed liver and brain cells in laboratory rats (Braydich-Stolle et al., Toxicological Sciences, 2005, Vol. 88, Issue 2, pp. 412-419). At the nano scale, particles are more chemically reactive and bioactive, allowing them to more easily penetrate organs and cells. Thus, it is important to assess nanoparticle fate, transformation, and transportation in different matrices, e.g., environmental, biological, food, etc. SP-ICP-MS provides a technique for performing such difficult analyses. 
         [0006]    In SP-ICP-MS, a dilute solution of a dissolved metal will produce a relatively constant signal, while signals from solid nanoparticles that are suspended in the solution are detected as single-point pulses or multi-point peaks whose intensity exceeds the background signal from the dissolved metal. Thus, single particle mode analysis (SP-ICP-MS) allows the differentiation between signals produced by dissolved analyte and signals produced by solid nanoparticle analyte. 
         [0007]    In order for SP-ICP-MS to work at low nanoparticle concentrations, the speed of data acquisition and the response time of the ICP-MS quadrupole and detector must be fast enough to capture the pulses/peaks corresponding to the nanoparticles. Sequences of pulses/peaks can be identified and quantified by an instrument running with a short enough dwell time (e.g., a few milliseconds or shorter) to resolve the individual nanoparticle pulses/peaks in the time domain. For example, the NexION® 300 ICP-MS, manufactured by PerkinElmer of Shelton, Conn., can be operated in Single Particle mode with a high-speed mass analyzer at a scan rate that exceeds 100,000 data points per second, a read speed that exceeds 3000 points per second, and a detector capable of integrating ionic signals at a dwell time of 10 microseconds without any settling time in between. The NexION® 300 ICP-MS has a unique ion path design, e.g., the Triple Cone Interface (TCI) and Quadrupole Ion Deflector (QID), that allows this high level performance for nanoparticle detection. 
         [0008]    Pulse height or area under a peak is compared against calibration standards to determine the concentration of the particles in the sample and the mass and size distribution of the particles in the sample. Coupled with a size-separation technique, e.g., field flow fractionation (FFF) and liquid chromatography (LC), SP-ICP-MS is capable of addressing size, size distribution, surface charge, and surface functionality of nanoparticles in samples. 
         [0009]    Previous SP-ICP-MS techniques produced a single data point per nanoparticle detected. Such techniques require multiple sample dilutions in order to obtain single data points representing only one nanoparticle each, rather than multiple nanoparticles per pulse. These multiple dilutions introduce additional error, as well as potential data artifacts, which affect the accuracy of the results. 
         [0010]    Newer SP-ICP-MS techniques, such as those performed with high performance instrumentation such as the NexION® 300 ICP-MS, acquire data at extremely fast rates and are capable of acquiring multiple data points per nanoparticle, thereby producing a multi-point peak per nanoparticle, rather than a single-point pulse. These techniques offer significantly improved precision and accuracy, and obviate or reduce the need for multiple sample dilutions prior to running a sample. However, these newer techniques produce extremely large data sets (e.g., several million to tens of millions or more pulse counts per sample run) and complicate data analysis. Even with today&#39;s fast computational speeds, such large data sets require significant processing time. Because of the size of the data sets and the nature of the data, individual researchers implementing the SP-ICP-MS techniques routinely perform their own data analysis, which often involves some degree of estimation or other qualitative judgment, thereby introducing inaccuracy and lack of precision and/or reproducibility. 
         [0011]    There is a need for a highly efficient, automated technique for processing spectrometry data, such as data sets obtained during SP-ICP-MS analysis. 
       SUMMARY OF THE INVENTION 
       [0012]    Described herein are methods and systems for automated analysis of spectrometry data corresponding to particles of a sample, such as large data sets obtained during single particle mode analysis of an inductively coupled plasma mass spectrometer (SP-ICP-MS). In such data sets, there are multiple data points for any given peak representing a single detected particle, e.g., a solid nanoparticle, and there is a background signal that can interfere with the accuracy and/or precision of the analysis. Techniques are presented herein that provide appropriate smoothing for rapid data processing without an accompanying reduction (or with an acceptably negligible reduction) in accuracy and/or precision. 
         [0013]    Single-particle (SP) ICP-MS is a recently developed technique useful for detecting and sizing metallic nanoparticles at very low levels (e.g., &lt;1 part-per-billion, or as low as 1 part-per-trillion) with great precision and accuracy. The detection of such nanoparticles is important in a variety of fields, particularly environmental health, where even low concentrations of nanoparticles may cause deleterious effects on human health. Single particle mode analysis (SP-ICP-MS) techniques are powerful because they permit differentiation between signals produced by analyte in a sample that is in a dissolved form, and analyte that is in the form of solid nanoparticles. In SP-ICP-MS systems, a dilute solution of a dissolved analyte (e.g., a metal element) produces a relatively constant signal, while signals from solid nanoparticles composed of the same analyte, said nanoparticles being suspended in the solution, are detected as either single-point pulses or multi-point peaks whose intensity exceeds the background signal from the dissolved analyte. Certain slower SP-ICP-MS systems that can only obtain single-point pulses often require sample dilution by a factor of 10,000 or more to provide a testing sample with differentiable nanoparticle signals. Such high dilution factors often introduce unacceptable error and/or artifacts which diminish the accuracy and precision of the results. 
         [0014]    Advanced SP-ICP-MS systems provide fast acquisition of pulse count values with a very short dwell time and settling time, thereby permitting multiple data points (multiple pulse count values) to be obtained for any given nanoparticle. This increases the accuracy and precision of the data analysis and promotes the ability to differentiate between a signal obtained from analyte in dissolved form and analyte in solid nanoparticle form without requiring such extensive sample dilutions. However, because of the huge amount of data produced during a given SP-ICP-MS sample run, very efficient data processing is needed to avoid high processing time requirements. 
         [0015]    In particular, in certain embodiments, the techniques presented herein involve accessing an array of SP-ICP-MS pulse count values that include multiple data points for each detected particle, and determining a threshold for identifying (and excluding from the array in subsequent iterations) pulse count values as corresponding to a peak signal (and not a background signal). The threshold is adjusted based on remaining pulse count values following each of a series of iterations, with a given subsequent iteration further excluding pulse count values identified as corresponding to a peak in the preceding iteration. A final background threshold is determined upon convergence of the threshold within acceptable tolerance. 
         [0016]    Embodiments described herein provide an efficient, accurate, precise, and automated way to determine particle mass and/or particle size corresponding to a given peak for a sample analyzed via SP-ICP-MS. The techniques also work for analysis of other data sets which—as with SP-ICP-MS data sets—contain multiple data points for any given peak representing a single detected particle and which contain a background signal that can interfere with the accuracy and/or precision of the analysis if not properly accounted for. The techniques described herein further allow automated determination of the mass distribution and/or size distribution of the particles in the sample, as well as determination of particle concentration, a mean particle size, a median particle size, most common particle size, and a dissolved analyte concentration for the sample. Moreover, the techniques allow determination of the composition of the particles, they allow characterization of agglomeration of the particles, and they allow differentiation between the detected ionic and particulate signals. 
         [0017]    In one aspect, the invention is directed to a method for automated analysis of spectrometry data corresponding to particles of a sample, the method comprising: (a) accessing, by a processor of a computing device, a sequence of pulse count values (e.g., intensity values) acquired by a spectrometer (e.g. an inductively coupled plasma mass spectrometer (ICP-MS)), at a rate fast enough (e.g., at a short enough dwell time and/or settling time) to produce, for at least one given peak corresponding to an individual particle comprising an analyte in the sample, a plurality of pulse count values each of which is greater than a threshold background intensity value; (b) determining, by the processor, from a first array of the pulse count values, a threshold for identifying (and excluding from the array in subsequent iterations) pulse count values as corresponding to a peak signal (and not a background signal), and adjusting the threshold based on remaining pulse count values following each of a series of iterations, with a given subsequent iteration further excluding pulse count values identified as corresponding to a peak in the preceding iteration, wherein a final background threshold is determined (e.g., and a background level is determined, e.g., where the background level can be used to determine a dissolved analyte concentration in the sample) upon convergence of the threshold within acceptable tolerance; (c) building, by the processor, from the first array of the pulse count values, a smoothed data array (e.g., an x-point averaged data array, e.g., where x is an integer from 1 to 100, or from 3 to 20, e.g., 5), identifying as peaks the values of the smoothed data array (e.g., the x-point averaged data array) that are larger than both subsequent and preceding values (e.g., the subsequent and the preceding averaged values) and larger than the final background threshold; (d) identifying, by the processor, a peak area intensity corresponding to each of the identified peaks for the sample and constructing, by the processor, a histogram of peak area intensities for the sample; (e) computing, by the processor, using the histogram of peak area intensities for the sample, one or more of (i) to (ix) as follows: (i) a particle mass histogram for the sample, (ii) a particle size histogram for the sample, (iii) a number of peaks detected for the sample, (iv) a particle concentration for the sample, (v) a mean particle size for the sample, (vi) a median particle size for the sample, (vii) a dissolved analyte concentration for the sample, (viii) a mode particle size, i.e., the most common particle size, and (ix) a measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages); and (f) rendering, by the processor, for presentation on a display, a graphical and/or alphanumeric representation of one or more of (i) to (xi) as follows: (i) the identified peaks for the sample, (ii) the histogram of peak area intensities for the sample, (iii) the particle mass histogram for the sample, (iv) the particle size histogram for the sample, (v) the number of peaks detected for the sample, (vi) the particle concentration for the sample, (vii) the mean particle size for the sample, (viii) the median particle size for the sample, (ix) the dissolved analyte concentration for the sample, (x) the mode particle size, i.e., the most common particle size, and (xi) the measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages). 
         [0018]    In certain embodiments, the spectrometer is an inductively coupled plasma mass spectrometer (ICP-MS). In certain embodiments, the particles in the sample are nanoparticles. In certain embodiments, the particles in the sample are microparticles or cells. 
         [0019]    In certain embodiments, the sequence of pulse count values contain an average of from 1 to 50, or from 1 to 25, or from 2 to 10, or no less than 1.1, or no less than 1.2, or no less than 1.5, or no less than 2, or no less than 3, or no less than 4, or no less than 5 pulse count values per peak in the sample. 
         [0020]    In certain embodiments, the threshold for at least one iteration in step (b) is computed as an average of remaining values in the array plus a multiple of the standard deviation (e.g., average+3 times std dev). In certain embodiments, step (c) further comprises storing positions of the identified peaks in a peak position array and, optionally, repeating step (c) with one or more additional x-values and, optionally, converging on an acceptable x-value. In certain embodiments, the smoothed data array is an x-point averaged data array and step (c) comprises building the x-point averaged data array to produce smoothed data, where x is a predetermined integer (e.g., from 3 to 20), and wherein step (c) further comprises identifying an average number of pulse count values per identified peak in the first array of pulse count values using the x-point averaged data array, then building, from the first array of the pulse count values, an x′-point averaged data array, identifying as peaks the values of the x′-point averaged data array that are larger than both subsequent and preceding averaged values and larger than the final background threshold, where x′ is determined from the average number of pulse count values per identified peak using the x-point averaged data array [e.g. x′=round(avg. points per peak+1)], then proceeding to step (d) to identify the peak area intensity corresponding to each of the peaks identified using the x′-point averaged data array. 
         [0021]    In certain embodiments, step (e) comprises constructing, by the processor, a mass flux calibration for the sample using: a transport efficiency value for the sample, a dissolved solution calibration for the analyte (e.g., a metallic element of which the particles of the sample are comprised), and a dwell time and a flow rate for the sample in the spectrometer (e.g., ICP-MS). In certain embodiments, step (e) further comprises computing the particle mass histogram for the sample using: (i) the histogram of peak area intensities for the sample, (ii) the mass flux calibration for the sample, (iii) a mass fraction of the particle that is the analyte, (iv) an ionization efficiency, (v) a determined or known shape of the particles, and (vi) a determined or known density of the particles. 
         [0022]    In certain embodiments, step (e) comprises determining, by the processor, an intensity versus mass calibration for the sample using: (i) a most-common intensity determined from an intensity histogram produced from an ICP-MS run of a standard particle having a known size and the same composition as the sample (e.g., same analyte), (ii) a determined or known shape of the particles of the sample, and (iii) a determined or known density of the particles of the sample. In certain embodiments, step (e) further comprises computing the particle mass histogram for the sample using: (i) the intensity versus mass calibration for the sample, (ii) a mass fraction of the particle that is the analyte, and (iii) an ionization efficiency. 
         [0023]    In certain embodiments, dwell time for each pulse count is no greater than 10 milliseconds, no greater than 1 millisecond, no greater than 500 microseconds, no greater than 200 microseconds, no greater than 100 microseconds, no greater than 50 microseconds, or no greater than 10 microseconds. In certain embodiments, dwell time for each pulse count is a value from 10 microseconds to 500 microseconds, or from 10 microseconds to 200 microseconds. In certain embodiments, settling time for the sample is no greater than 200 microseconds, no greater than 100 microseconds, no greater than 50 microseconds, no greater than 10 microseconds, no greater than 5 microseconds, no greater than 3 microseconds, no greater than 2 microseconds, no greater than 1 microsecond, no greater than 0.5 microsecond, no greater than 0.1 microsecond, or zero. 
         [0024]    In certain embodiments, particles of the sample comprise at least one metallic element (analyte). In certain embodiments, particles of the sample comprise at least one member (analyte) selected from the group consisting of Li, Be, B, Na, Mg, Al, Si, P, S. CI, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, As, Se, Br, Kr, Rb, Sr, Y, Zr, Nb, Mo, Tc, Ru, Rh, Pd, Ag, Cd, In, Sn, Sb, Te, I, Xe, Cs, Ba, La, Hf, Ta, W, Re, Os, Ir, Pt, Au, Hg, Tl, Pb, Bi, Ce, Pr, Nd, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu, Th, Pa, and U. In certain embodiments, particles of the sample all have substantially the same composition. 
         [0025]    In certain embodiments, the method further comprises the step of acquiring the sequence of pulse count values using the spectrometer (e.g., an inductively coupled plasma mass spectrometer, ICP-MS). 
         [0026]    In certain embodiments, the method further comprises the step of displaying the graphical and/or alphanumeric representation of one or more of (i) to (xi) rendered in step (f). 
         [0027]    In certain embodiments, the pulse count values acquired by the spectrometer are filtered and/or normalized by the processor before being entered into (or considered as) the first array of the pulse count values and proceeding with step (b). 
         [0028]    In another aspect, the invention is directed to a system for automated analysis of spectrometry data corresponding to particles of a sample, the system comprising: a processor; and a memory, wherein the memory comprises instructions that, when executed by the processor, cause the processor to: (a) access a sequence of pulse count values (e.g., intensity values) acquired by a spectrometer at a rate fast enough (e.g., at a short enough dwell time and/or settling time) to produce, for at least one given peak corresponding to an individual particle comprising an analyte in the sample, a plurality of pulse count values each of which is greater than a threshold background intensity value; (b) determine, from a first array of the pulse count values, a threshold for identifying (and excluding from the array in subsequent iterations) pulse count values as corresponding to a peak signal (and not a background signal), and adjust the threshold based on remaining pulse count values following each of a series of iterations, with a given subsequent iteration further excluding pulse count values identified as corresponding to a peak in the preceding iteration, wherein a final background threshold is determined (e.g., and a background level is determined, e.g., where the background level can be used to determine a dissolved analyte concentration in the sample) upon convergence of the threshold within acceptable tolerance; (c) build, from the first array of the pulse count values, a smoothed data array (e.g., an x-point averaged data array, e.g., where x is an integer from 1 to 100 or from 3 to 20, e.g., 5), identifying as peaks the values of the smoothed data array (e.g., the x-point averaged data array) that are larger than both subsequent and preceding values (e.g., the subsequent and the preceding averaged values) and larger than the final background threshold; (d) identify a peak area intensity corresponding to each of the identified peaks for the sample and construct a histogram of peak area intensities for the sample; (e) compute, using the histogram of peak area intensities for the sample, one or more of (i) to (ix) as follows: (i) a particle mass histogram for the sample, (ii) a particle size histogram for the sample, (iii) a number of peaks detected for the sample, (iv) a particle concentration for the sample, (v) a mean particle size for the sample, (vi) a median particle size for the sample, (vii) a dissolved analyte concentration for the sample, (viii) a mode particle size, i.e., the most common particle size, and (ix) a measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages); and (f) render for presentation on a display, a graphical and/or alphanumeric representation of one or more of (i) to (xi) as follows: (i) the identified peaks for the sample, (ii) the histogram of peak area intensities for the sample, (iii) the particle mass histogram for the sample, (iv) the particle size histogram for the sample, (v) the number of peaks detected for the sample, (vi) the particle concentration for the sample, (vii) the mean particle size for the sample, (viii) the median particle size for the sample, (ix) the dissolved analyte concentration for the sample, (x) the mode particle size, i.e., the most common particle size, and (xi) the measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages). 
         [0029]    In certain embodiments, the system further comprises the spectrometer for acquiring the sequence of pulse count values for the sample, wherein the spectrometer is an inductively coupled plasma mass spectrometer (ICP-MS). In certain embodiments, the ICP-MS comprises: a sample introduction system (e.g., (i) a nebulizer and a spray chamber, (ii) a microdroplet generator system, and/or (iii) a direct injection high efficiency nebulizer); an ICP torch and RF coil for generating an argon plasma that serves as an atmospheric pressure ion source; an interface that links the atmospheric pressure ICP ion source to a high vacuum mass spectrometer; a vacuum system that provides high vacuum for ion optics, a quadrupole, and a detector; a collision/reaction cell that precedes the mass spectrometer and is configured to remove interferences that can degrade achievable detection limits; the ion optics that guide the desired ions into the quadrupole while assuring that neutral species and photons are discarded from the ion beam; a mass spectrometer that acts as a mass filter to sort ions by their mass-to-charge ratio (m/z); a detector that counts individual ions exiting the quadrupole; and a data handling and system controller that controls aspects of instrument control and data acquisition and processing for use in obtaining final concentration results, wherein the processor is part of the data handling and system controller. 
         [0030]    In another aspect, the invention is directed to a non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed by a processor, cause the processor to: (a) access a sequence of pulse count values (e.g., intensity values) acquired by a spectrometer at a rate fast enough (e.g., at a short enough dwell time and/or settling time) to produce, for at least one given peak corresponding to an individual particle comprising an analyte in the sample, a plurality of pulse count values each of which is greater than a threshold background intensity value; (b) determine, from a first array of the pulse count values, a threshold for identifying (and excluding from the array in subsequent iterations) pulse count values as corresponding to a peak signal (and not a background signal), and adjust the threshold based on remaining pulse count values following each of a series of iterations, with a given subsequent iteration further excluding pulse count values identified as corresponding to a peak in the preceding iteration, wherein a final background threshold is determined (e.g., and a background level is determined, e.g., where the background level can be used to determine a dissolve analyte concentration in the sample) upon convergence of the threshold within acceptable tolerance; (c) build, from the first array of the pulse count values, a smoothed data array (e.g., an x-point averaged data array, e.g., where x is an integer from 1 to 100 or from 3 to 20, e.g., 5), identifying as peaks the values of the smoothed data array (e.g., the x-point averaged data array) that are larger than both subsequent and preceding values (e.g., the subsequent and the preceding averaged values) and larger than the final background threshold; (d) identify a peak area intensity corresponding to each of the identified peaks for the sample and construct a histogram of peak area intensities for the sample; (e) compute, using the histogram of peak area intensities for the sample, one or more of (i) to (ix) as follows: (i) a particle mass histogram for the sample, (ii) a particle size histogram for the sample, (iii) a number of peaks detected for the sample, (iv) a particle concentration for the sample, (v) a mean particle size for the sample, (vi) a median particle size for the sample, (vii) a dissolved analyte concentration for the sample, (viii) a mode particle size, i.e., the most common particle size, and (ix) a measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages); and (f) render for presentation on a display, a graphical and/or alphanumeric representation of one or more of (i) to (xi) as follows: (i) the identified peaks for the sample, (ii) the histogram of peak area intensities for the sample, (iii) the particle mass histogram for the sample, (iv) the particle size histogram for the sample, (v) the number of peaks detected for the sample, (vi) the particle concentration for the sample, (vii) the mean particle size for the sample, (viii) the median particle size for the sample, (ix) the dissolved analyte concentration for the sample, (x) the mode particle size, i.e., the most common particle size, and (xi) the measure of width of particle size distribution (e.g., standard deviation, full width at half maximum (FWHM), or span from the size containing 10% of the particles to the size containing 90% of the particles, or any other choice of two different percentages). 
         [0031]    In certain embodiments, features described with respect to one aspect of the invention (e.g., a method), may also apply to another aspect of the invention (e.g., a system or a non-transitory computer readable medium). 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0032]    The foregoing and other objects, aspects, features, and advantages of the present disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which: 
           [0033]      FIG. 1  is a flow chart of a method for automated detection and analysis of data peaks in raw data acquired by an ICP-MS system, where each of the peaks have multiple points and each peak corresponds to a nanoparticle of a sample, according to an illustrative embodiment of the invention. 
           [0034]      FIG. 2  is a flow chart depicting steps in the Background Determination block of the method of  FIG. 1 , according to an illustrative embodiment of the invention. 
           [0035]      FIG. 3  is a flow chart depicting steps in the Peak Detection block of the method of  FIG. 1 , according to an illustrative embodiment of the invention. 
           [0036]      FIG. 4  is a flow chart depicting steps in the Peak Area Determination block and the Constructing Intensity Histogram block of the method of  FIG. 1 , according to an illustrative embodiment of the invention. 
           [0037]      FIG. 5  is a flow chart depicting steps in the Constructing Size Histogram block and the Calculating Statistical Data block of the method of  FIG. 1 , according to an illustrative embodiment of the invention. 
           [0038]      FIG. 6A  is a portion of a plot showing experimental results of background determination for SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0039]      FIG. 6B  is a small portion of the data set showing iterations performed for background determination of SP-ICP-MS data per the method of  FIG. 1 , and result obtained, according to an illustrative embodiment. 
           [0040]      FIG. 7A  is a portion of a plot showing experimental results of peak detection from SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0041]      FIG. 7B  is a small portion of data set showing steps performed for peak detection of SP-ICP-MS experimental data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0042]      FIG. 8A  is an intensity histogram computed for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0043]      FIG. 8B  is a small portion of data used to prepare the intensity histogram of  FIG. 8A , according to an illustrative embodiment. 
           [0044]      FIG. 9A  is a particle size histogram computed for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0045]      FIGS. 9B, 9C, 9D, and 9E  depict computations, a size histogram, an intensity histogram, and calibrations used in performing mass and size calculations and producing the size histogram for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0046]      FIG. 10  shows a size histogram computed for SP-ICP-MS-run samples having known dissolved concentration to demonstrate detection of correct suspended nanoparticle size without interference from the dissolved analyte per the method of  FIG. 1 , according to an illustrative embodiment. 
           [0047]      FIGS. 11A, 11B, and 11C  show computations of average particle size and standard deviation for known samples from SP-ICP-MS experimental data to demonstrate accuracy and precision of the method of  FIG. 1  for determining average particle size and differentiating analyte in solid particle form from dissolved analyte, according to an illustrative embodiment. 
           [0048]      FIG. 12  is a schematic diagram of components of an ICP-MS system, according to an illustrative embodiment. 
           [0049]      FIG. 13  is a block diagram of an example network environment for use in the methods and systems for analysis of spectrometry data, according to an illustrative embodiment. 
           [0050]      FIG. 14  is a block diagram of an example computing device and an example mobile computing device, for use in illustrative embodiments of the invention. 
       
    
    
       [0051]    The features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. 
       DETAILED DESCRIPTION 
       [0052]    It is contemplated that systems, devices, methods, and processes of the claimed invention encompass variations and adaptations developed using information from the embodiments described herein. Adaptation and/or modification of the systems, devices, methods, and processes described herein may be performed by those of ordinary skill in the relevant art. 
         [0053]    Throughout the description, where articles, devices, and systems are described as having, including, or comprising specific components, or where processes and methods are described as having, including, or comprising specific steps, it is contemplated that, additionally, there are articles, devices, and systems of the present invention that consist essentially of, or consist of, the recited components, and that there are processes and methods according to the present invention that consist essentially of, or consist of, the recited processing steps. 
         [0054]    It should be understood that the order of steps or order for performing certain action is immaterial so long as the invention remains operable. Moreover, two or more steps or actions may be conducted simultaneously. 
         [0055]    The mention herein of any publication, for example, in the Background section, is not an admission that the publication serves as prior art with respect to any of the claims presented herein. The Background section is presented for purposes of clarity and is not meant as a description of prior art with respect to any claim. 
         [0056]      FIG. 1  is a flow chart of an illustrative method for automated detection and analysis of data peaks in raw data acquired by an ICP-MS system, where at least some of the peaks have multiple points and each peak corresponds to a nanoparticle of a sample, according to an illustrative embodiment. 
         [0057]    Method  100  of  FIG. 1  begins with accessing raw data comprising a sequence of pulse count values (e.g., intensity values) acquired by an ICP-MS system ( 102 ). The raw data is analyzed to determine a background level, wherein the background level corresponds to the level at which the raw data does not exceed a meaningful threshold value ( 104 ). In some implementations, the background level is determined using a multi-pass algorithm, wherein the algorithm is iteratively executed until the background threshold converges to be within acceptable tolerance. 
         [0058]    The data is then analyzed to determine peaks in excess of the background level ( 106 ). The data points corresponding to the peaks are then used to determine the peak area intensities, corresponding to the area under the peaks which exceed the background level ( 108 ). An intensity histogram is constructed from the peak area intensities ( 110 ). A size histogram is constructed from the intensity histogram ( 112 ). The size histogram is analyzed to determine statistical data for the particle sample ( 114 ). 
         [0059]      FIG. 2  is an illustrative embodiment of a flow chart depicting steps in the Background Determination block of the method of  FIG. 1 . 
         [0060]    Background Determination Method  200  begins by loading raw data, e.g., all of the data points acquired by the ICP-MS system ( 202 ). This raw data is used in the initial iteration of the Background Determination Method  200  (i.e., i=0, the 0th iteration) ( 204 ,  222 ). 
         [0061]    The threshold approximation for the initial iteration is calculated by the average of the data points plus three times the standard deviation of the data set (e.g., the threshold function, T(i)=Average(i)+(3*Standard dev. (i)) ( 206 ). In subsequent iterations, the threshold approximation is calculated by the same threshold function T ( 206 ), but uses a reduced data set consisting only of those data points which were less than or equal to the threshold approximation of the previous iteration ( 214 ,  216 ,  218 ,  220 ,  226 ,  228 ,  230 ). 
         [0062]    The most recent iteration of the threshold approximation is compared to the threshold approximation of the previous iteration to determine if they are approximately equal (i.e., the threshold level has converged). Based on a positive determination, the final threshold level is calculated by the threshold function of the final iteration of the data set, and the final background level is calculated by the average of the final iteration of the data set. Based on a negative determination, the data set is further processed ( 208 ) to reduce the data set to those data points which are less than or equal to the most recent iteration of threshold approximation, according to steps  214 ,  216 ,  218 ,  220 ,  226 ,  228 ,  230 . 
         [0063]      FIG. 3  is a flow chart depicting steps in the Peak Detection block of the method of  FIG. 1 , according to the illustrative embodiment. 
         [0064]    Peak Detection Method  300  begins by loading raw data acquired by the ICP-MS system ( 304 ). A five point averaged data array is constructed from the raw data, wherein each consecutive set of five points is averaged (e.g., Average(points 1-5), Average(points 6-10), etc.) and these averages are used to construct a new array ( 304 ,  306 ,  308 ,  310 ,  312 ). In some implementations, the size of the new array will be approximately one fifth of the size of the raw data array ( 330 ). 
         [0065]    The five point averaged data array is then analyzed to detect those points which represent peaks, wherein a point is determined to be a peak if the value of the point is greater than both the preceding point and the following point in the array, and the value of the point exceeds the threshold level determined in the Background Determination Method  200  ( 316 ,  318 ,  322 ,  324 ,  326 ). These peak positions are stored in a new array representing the position of the peaks detected ( 318 ). The number of times a peak is detected is counted to determine the total number of peaks ( 320 ). 
         [0066]      FIG. 4  is a flow chart depicting steps in the Peak Area Determination block and the Constructing Intensity Histogram block of the method of  FIG. 1 , according to the illustrative embodiment. 
         [0067]    Peak Area Determination Method  400  begins by loading the peak position array constructed in Peak Detection Method  300  ( 402 ). Each entry in the peak position array indicates that an actual peak occurs within a five point subarray of the raw data acquired by the ICP-MS system, wherein the five point subarray corresponds to the five consecutive points within the raw data which are centered on the indicated peak position ( 404 ). The peak data point contained in the five point subarray is then determined by finding the maximum value within the five point subarray ( 406 ). 
         [0068]    A summation of area corresponding to the peak is initiated by populating a summation variable with the value of the peak point, less the background level determined in Background Determination Method  200  ( 408 ). This background level corresponds to the contribution of the dissolved analyte and is subtracted from the value of any point that is added to the summation variable ( 416 ,  422 ). Each point to the right of the peak is iteratively added to the area summation until a point is determined to be less than or equal to the threshold level determined in Background Determination Method  200  ( 414 ), or the end of the raw data is reached ( 420 ). Subsequently, each point to the left of the peak is iteratively added to the area summation until a point is determined to be less than or equal to the threshold level ( 424 ), or the beginning of the raw data is reached ( 430 ). Thus, a value less than or equal to the threshold, or the end of the data, comprise the limits to the area considered to correspond to a particular peak value. In certain implementations, the horizontal component (e.g., time steps) of the area may be recorded in a separate array, but although such information may be useful, it is not necessary to record this information. 
         [0069]    The described summation of area is calculated for each of the peaks in the peak position array and the summations are added to a new peak summation array ( 434 ). The peak summation array is rounded to a whole number and used to construct an intensity histogram, wherein the intensity histogram corresponds to the frequency of any particular peak intensity (area). 
         [0070]      FIG. 5  is a flow chart depicting steps in the Constructing Size Histogram block and the Calculating Statistical Data block of the method of  FIG. 1 , according to the illustrative embodiment. 
         [0071]    The intensity histogram constructed using the Peak Area Determination Method  400  is used to construct a two-dimensional array comprising the whole-number rounded intensities from one to the maximum detected peak intensity in the first dimension, and the corresponding frequency of each intensity in the second dimension ( 502 ). These whole-number rounded intensities are referred to as bins and all whole-number rounded intensities will correspond to a particular bin. The number of whole-number rounded intensities assigned to a bin is defined as the frequency for that particular bin. 
         [0072]    To convert intensity to mass, and then size, Dissolved solution calibration method  504  may be used if the transport efficiency value has been specified and a dissolved solution calibration for the analyte exists ( 504   a ). A mass flux calibration is constructed based on the dissolved solution calibration, transport efficiency value, dwell time, and flow rate of the analysis ( 504   b ). The mass of dissolved analyte per dwell time is calculated by W=concentration*dwell time*flow rate*transport efficiency. The mass flux calibration is thus obtained by plotting intensity versus W for different dissolved solution concentrations. In some implementations, the dissolved solution calibration specifies the relation between the observed intensity and analyte concentration. In certain implementations, the mass flux calibration specifies the relation between the observed intensity and the mass of a nanoparticle. 
         [0073]    The mass flux calibration, mass fraction of analyte in the nanoparticle, and ionization efficiency are used to convert the peak area intensity of the histogram to mass, wherein Mass-Bin=[Intensity-Bin/Slope of Mass Flux calibration]*[1/Mass Fraction]*[1/Ionization efficiency] ( 504   c ). 
         [0074]    Alternatively, to convert intensity to mass, and then size, standard particle method  514  may be used if a standard particle for the analyte exists ( 514   a ). The standard nanoparticle with known size is run through analysis and a peak detection is performed, followed by construction of an intensity histogram ( 514   b ). 
         [0075]    The most common intensity in the histogram is found using a method of LogNormal/Gaussian/Max intensity fit. The specified density and size/shape are used to calculate the mass that the most common intensity refers to. The intensity versus mass of the nanoparticle(s) and blank (i.e., mass=0) is used to construct an intensity versus mass calibration ( 514   c ). 
         [0076]    The resulting intensity versus mass calibration, the mass fraction of the analyte in the nanoparticle sample, and the ionization efficiency are used to convert the peak area intensity of the histogram to mass ( 514   d ). 
         [0077]    Once intensity has been converted to mass by steps  514   d  or  504   c , a size histogram is created by converting the mass to size using the user input density and nanoparticle shape (e.g., solving for the size in the formula of Density=Mass/Volume, where volume is cube, sphere, etc.) ( 510 ). 
         [0078]    The most frequent size is then obtained by finding the maximum in the size-histogram array using a user input method of finding the maximum in the histogram, or alternatively finding the max in the fitted LogNormal or Gaussian fit. Other statistically useful parameters are also extracted, such as number of peaks detected, particle concentration, mean particle size, median particle size, and dissolved concentration ( 522 ). 
         [0079]      FIG. 6A  is a portion of a plot showing experimental results of background determination for SP-ICP-MS data per the method of  FIG. 1 , according to the illustrative embodiment. 
         [0080]    Plot  600  is a plot of the data points acquired by the SP-ICP-MS system, wherein the horizontal access depicts time, and the vertical axis depicts the magnitude of the reading. Following a background determination method such as Background Determination Method  200 , those points which are less than or equal to the threshold level are identified as representing background data, and are represented by the background data indicator  602 . Those data points which are not determined to be background data correspond to data that lies on a peak, and consist of those points indicated by raw data indicator  604  which are not obscured by a background data indicator. 
         [0081]      FIG. 6B  is a small portion of the data set showing iterations performed for background determination of SP-ICP-MS data per the method of  FIG. 1 , and result obtained, according to an illustrative embodiment. 
         [0082]    The first column of Table  620  includes the raw data obtained by the SP-ICP-MS system. The first row of calculations in Table  640  corresponds to the raw data, and indicates the threshold approximation corresponding to the initial iteration of background determination. The data set is iteratively reduced according to the background determination method, wherein after each threshold approximation, those values which are less than or equal to the approximation are removed from the data set (e.g., the 1st iteration column of Table  620  comprises all data points of the raw data which are less than or equal to the threshold approximation calculated in the 0th iteration shown in Table  640 , etc.). The data set continues to be iteratively reduced until the threshold approximation of the most recent iteration and the threshold approximation of the previous iteration are approximately equal, as indicated in the 6th iteration and 7th iteration of Table  640  (i.e., the threshold has converged). 
         [0083]    Once the threshold has converged, the threshold (calculated using the threshold formula of the most recent data set iteration) and the background level (calculated using the average of the most recent data set iteration) are finalized ( 650 ). 
         [0084]      FIG. 7A  is a portion of a plot showing experimental results of peak detection from SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0085]    Plot  700  is a plot of the data points acquired by the SP-ICP-MS system, wherein the horizontal access depicts time, and the vertical axis depicts the magnitude of the reading. The data set is used with a peak detection method such as Peak Detection Method  300  to identify the location of those points which correspond to a peak in the data. The points which correspond to a particular peak are indicated by the max peak detected indicator  704 . All other points, as well as the remaining points along the already identified peaks are indicated with the raw data indicator  702 . 
         [0086]      FIG. 7B  is a small portion of data set showing steps performed for peak detection of SP-ICP-MS experimental data per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0087]    The first column of data in Table  720  shows the raw data  722  acquired by the SP-ICP-MS system. Using a peak detection method such as Peak Detection Method  300 , a five point averaged data set  724  is constructed from the raw data  722 , wherein each consecutive set of five points is averaged and used to construct the data set  724 . 
         [0088]    Where a point in the five point averaged data set  724  is greater than both the previous and following point in the data set, the presence of a peak is indicated within that five point range by peak position data  726 . The maximum point from the raw data within the five point range identified by peak position data  726  is used to construct the maximum peaks data  728  (i.e., the maximum value identified from the five points of raw data comprising the value from the position directly indicated by the peak position data, the previous two data points, and the following two data points is used as the maximum value of the peak). 
         [0089]      FIG. 8A  is an intensity histogram computed for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0090]    Plot  800  is an intensity histogram, wherein the horizontal axis depicts the whole-number rounded intensity data constructed using a peak area determination method such as Peak Area Determination Method  400 , and the vertical axis depicts the frequency at which each intensity was detected in the analysis. 
         [0091]      FIG. 8B  is a small portion of data used to prepare the intensity histogram of  FIG. 8A , according to an illustrative embodiment. 
         [0092]    The first column of Table  820  comprises the peak intensity data  822  corresponding to each peak within the data set. The peak intensity data  822  is rounded to whole-number rounded intensity data  824 . Table  830  shows intensity bins  832  which correspond to all whole-number values from one to the highest detected intensity, and the frequency of detection of a particular whole-number rounded intensity is defined as frequency data  834 . 
         [0093]      FIG. 9A  is a particle size histogram computed for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0094]    Plot  900  is a particle size histogram, wherein the horizontal axis depicts the size of particles calculated from intensity bins  826  (i.e., the size calculated from the unique entries in whole-number rounded intensity data  824 ), and the vertical axis depicts the frequency at which each size was detected in the analysis. 
         [0095]      FIGS. 9B, 9C, 9D, and 9E  depict computations, a size histogram, an intensity histogram, and calibrations used in performing mass and size calculations and producing the size histogram for experimental SP-ICP-MS data per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0096]    Table  920  is an example of mass flux calibration (specifies relation between observed intensity and the mass of a nanoparticle) using the dissolved solution calibration method  504 , based on dissolved solution calibration, transport efficiency value, dwell time, and flow rate as described in blocks  504 ,  506 ,  508 ,  510 . As described in block  504   b , Mass flux  924  is calculated by Concentration  922 *dwell time  928 *flow rate  930 *transport efficiency  932 . Mass flux calibration is then calculated by linear fit of intensity  926  versus mass flux  924  to give slope  934  and intercept  946 . 
         [0097]    Table  950  shows mass and size calculations between intensity data  952  and particle size  956 . As described in block  504   c , particle mass  954  is calculated by [intensity  952 /mass flux calibration slope  934 ]*[1/mass fraction  942 ]*[1/ionization efficiency  944 ]. As described in block  510 , particle size  956  is calculated from density  946  and particle shape (spherical) by [[6*particle mass  944 /Pi]*[1/density  946 ]]̂[1/3]. 
         [0098]    Plot  970  shows a size histogram of frequency data versus particle size, indicating the frequency at which a particular size of particle occurred in the analysis. Plot  980  shows an intensity histogram of frequency data versus intensity, indicating the frequency at which a particular intensity occurred in the analysis. Plot  990  is a plot of mass flux calibration calculated by linear fit of intensity  996  versus mass flux  994  to give mass flux calibration  998 . 
         [0099]      FIG. 10  shows a size histogram computed for SP-ICP-MS-run samples having known dissolved concentration to demonstrate detection of correct suspended nanoparticle size without interference from the dissolved analyte per the method of  FIG. 1 , according to an illustrative embodiment. 
         [0100]    Plot  1000  shows detected size of particle contained in DIW  1020 , 2 ppb  1022 , and 10 ppb  1024  dissolved analyte concentration. The peak at 60 nm  1026  is clearly indicated by the size histogram constructed in accordance with the methods described herein, which corresponds to the actual measured size  1028  of the sample. 
         [0101]      FIGS. 11A, 11B, and 11C  show computations of average particle size and standard deviation for known samples from SP-ICP-MS experimental data to demonstrate accuracy and precision of the method of  FIG. 1  for determining average particle size and differentiating analyte in solid particle form from dissolved analyte, according to an illustrative embodiment. 
         [0102]    Plots  1110  and  1130  show detected sample with relatively high (13 ppb) and low (0.44) dissolved analyte concentration. In both examples, relatively low standard deviations  1112  and  1132  indicate high precision throughout the collected data. Tables  1150  and  1170  show further consistency between sample readings and dissolved standard solution. 
         [0103]      FIG. 12  is a schematic diagram of components of an ICP-MS system, according to an illustrative embodiment. 
         [0104]    The ICP-MS system  1200  is an instrument for performing trace metal analysis on a sample. Sample Introduction System  1202  is composed of a nebulizer and spray chamber which introduce the sample into an argon plasma as aerosol droplets. Using RF Coil  1206 , ICP Torch  1204  generates the argon plasma that serves as the ion source, which dries the aerosol, dissociates the molecules, then removes an electron from the components, thereby forming singly-charged ions. Interface  1208  links the atmospheric pressure ICP ion source to high vacuum mass spectrometer  1216 . Mass spectrometer  1216  acts as a mass filter to sort ions by their mass-to-charge ratio (m/z). Vacuum system  1210  creates the vacuum for ion optics  1214 , which guides the desired ions into a quadrupole while assuring that neutral species and photons are discarded from the ion beam. Collision/reaction cell  1212  precedes the mass spectrometer and is used to remove interferences that can degrade achievable detection limits. Detector  1218  counts individual ions exiting the quadrupole. Processor  1220  is used to control aspects of instrument control and data handling for use in obtaining final concentration results. 
         [0105]      FIG. 13  shows an illustrative network environment  1300  for use in the methods and systems for analysis of spectrometry data corresponding to particles of a sample, as described herein. In brief overview, referring now to  FIG. 13 , a block diagram of an exemplary cloud computing environment  1300  is shown and described. The cloud computing environment  1300  may include one or more resource providers  1302   a ,  1302   b ,  1302   c  (collectively,  1302 ). Each resource provider  1302  may include computing resources. In some implementations, computing resources may include any hardware and/or software used to process data. For example, computing resources may include hardware and/or software capable of executing algorithms, computer programs, and/or computer applications. In some implementations, exemplary computing resources may include application servers and/or databases with storage and retrieval capabilities. Each resource provider  1302  may be connected to any other resource provider  1302  in the cloud computing environment  1300 . In some implementations, the resource providers  1302  may be connected over a computer network  1308 . Each resource provider  1302  may be connected to one or more computing device  1304   a ,  1304   b ,  1304   c  (collectively,  1304 ), over the computer network  1308 . 
         [0106]    The cloud computing environment  1300  may include a resource manager  1306 . The resource manager  1306  may be connected to the resource providers  1302  and the computing devices  1304  over the computer network  1308 . In some implementations, the resource manager  1306  may facilitate the provision of computing resources by one or more resource providers  1302  to one or more computing devices  1304 . The resource manager  1306  may receive a request for a computing resource from a particular computing device  1304 . The resource manager  1306  may identify one or more resource providers  1302  capable of providing the computing resource requested by the computing device  1304 . The resource manager  1306  may select a resource provider  1302  to provide the computing resource. The resource manager  1306  may facilitate a connection between the resource provider  1302  and a particular computing device  1304 . In some implementations, the resource manager  1306  may establish a connection between a particular resource provider  1302  and a particular computing device  1304 . In some implementations, the resource manager  1306  may redirect a particular computing device  1304  to a particular resource provider  1302  with the requested computing resource. 
         [0107]      FIG. 14  shows an example of a computing device  1400  and a mobile computing device  1450  that can be used in the methods and systems described in this disclosure. The computing device  1400  is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. The mobile computing device  1450  is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart-phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be examples only, and are not meant to be limiting. 
         [0108]    The computing device  1400  includes a processor  1402 , a memory  1404 , a storage device  1406 , a high-speed interface  1408  connecting to the memory  1404  and multiple high-speed expansion ports  1410 , and a low-speed interface  1412  connecting to a low-speed expansion port  1414  and the storage device  1406 . Each of the processor  1402 , the memory  1404 , the storage device  1406 , the high-speed interface  1408 , the high-speed expansion ports  1410 , and the low-speed interface  1412 , are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. The processor  1402  can process instructions for execution within the computing device  1400 , including instructions stored in the memory  1404  or on the storage device  1406  to display graphical information for a GUI on an external input/output device, such as a display  1416  coupled to the high-speed interface  1408 . In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). 
         [0109]    The memory  1404  stores information within the computing device  1400 . In some implementations, the memory  1404  is a volatile memory unit or units. In some implementations, the memory  1404  is a non-volatile memory unit or units. The memory  1404  may also be another form of computer-readable medium, such as a magnetic or optical disk. 
         [0110]    The storage device  1406  is capable of providing mass storage for the computing device  1400 . In some implementations, the storage device  1406  may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. Instructions can be stored in an information carrier. The instructions, when executed by one or more processing devices (for example, processor  1402 ), perform one or more methods, such as those described above. The instructions can also be stored by one or more storage devices such as computer- or machine-readable mediums (for example, the memory  1404 , the storage device  1406 , or memory on the processor  1402 ). 
         [0111]    The high-speed interface  1408  manages bandwidth-intensive operations for the computing device  1400 , while the low-speed interface  1412  manages lower bandwidth-intensive operations. Such allocation of functions is an example only. In some implementations, the high-speed interface  1408  is coupled to the memory  1404 , the display  1416  (e.g., through a graphics processor or accelerator), and to the high-speed expansion ports  1410 , which may accept various expansion cards (not shown). In the implementation, the low-speed interface  1412  is coupled to the storage device  1406  and the low-speed expansion port  1414 . The low-speed expansion port  1414 , which may include various communication ports (e.g., USB, Bluetooth®, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter. 
         [0112]    The computing device  1400  may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server  1420 , or multiple times in a group of such servers. In addition, it may be implemented in a personal computer such as a laptop computer  1422 . It may also be implemented as part of a rack server system  1424 . Alternatively, components from the computing device  1400  may be combined with other components in a mobile device (not shown), such as a mobile computing device  1450 . Each of such devices may contain one or more of the computing device  1400  and the mobile computing device  1450 , and an entire system may be made up of multiple computing devices communicating with each other. 
         [0113]    The mobile computing device  1450  includes a processor  1452 , a memory  1464 , an input/output device such as a display  1454 , a communication interface  1466 , and a transceiver  1468 , among other components. The mobile computing device  1450  may also be provided with a storage device, such as a micro-drive or other device, to provide additional storage. Each of the processor  1452 , the memory  1464 , the display  1454 , the communication interface  1466 , and the transceiver  1468 , are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate. 
         [0114]    The processor  1452  can execute instructions within the mobile computing device  1450 , including instructions stored in the memory  1464 . The processor  1452  may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor  1452  may provide, for example, for coordination of the other components of the mobile computing device  1450 , such as control of user interfaces, applications run by the mobile computing device  1450 , and wireless communication by the mobile computing device  1450 . 
         [0115]    The processor  1452  may communicate with a user through a control interface  1458  and a display interface  1456  coupled to the display  1454 . The display  1454  may be, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface  1456  may comprise appropriate circuitry for driving the display  1454  to present graphical and other information to a user. The control interface  1458  may receive commands from a user and convert them for submission to the processor  1452 . In addition, an external interface  1462  may provide communication with the processor  1452 , so as to enable near area communication of the mobile computing device  1450  with other devices. The external interface  1462  may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used. 
         [0116]    The memory  1464  stores information within the mobile computing device  1450 . The memory  1464  can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. An expansion memory  1474  may also be provided and connected to the mobile computing device  1450  through an expansion interface  1472 , which may include, for example, a SIMM (Single In Line Memory Module) card interface. The expansion memory  1474  may provide extra storage space for the mobile computing device  1450 , or may also store applications or other information for the mobile computing device  1450 . Specifically, the expansion memory  1474  may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, the expansion memory  1474  may be provided as a security module for the mobile computing device  1450 , and may be programmed with instructions that permit secure use of the mobile computing device  1450 . In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner. 
         [0117]    The memory may include, for example, flash memory and/or NVRAM memory (non-volatile random access memory), as discussed below. In some implementations, instructions are stored in an information carrier and, when executed by one or more processing devices (for example, processor  1452 ), perform one or more methods, such as those described above. The instructions can also be stored by one or more storage devices, such as one or more computer- or machine-readable mediums (for example, the memory  1464 , the expansion memory  1474 , or memory on the processor  1452 ). In some implementations, the instructions can be received in a propagated signal, for example, over the transceiver  1468  or the external interface  1462 . 
         [0118]    The mobile computing device  1450  may communicate wirelessly through the communication interface  1466 , which may include digital signal processing circuitry where necessary. The communication interface  1466  may provide for communications under various modes or protocols, such as GSM voice calls (Global System for Mobile communications), SMS (Short Message Service), EMS (Enhanced Messaging Service), or MMS messaging (Multimedia Messaging Service), CDMA (code division multiple access), TDMA (time division multiple access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000, or GPRS (General Packet Radio Service), among others. Such communication may occur, for example, through the transceiver  1468  using a radio-frequency. In addition, short-range communication may occur, such as using a Bluetooth®, Wi-Fi™, or other such transceiver (not shown). In addition, a GPS (Global Positioning System) receiver module  1470  may provide additional navigation- and location-related wireless data to the mobile computing device  1450 , which may be used as appropriate by applications running on the mobile computing device  1450 . 
         [0119]    The mobile computing device  1450  may also communicate audibly using an audio codec  1460 , which may receive spoken information from a user and convert it to usable digital information. The audio codec  1460  may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of the mobile computing device  1450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on the mobile computing device  1450 . 
         [0120]    The mobile computing device  1450  may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone  1480 . It may also be implemented as part of a smart-phone  1482 , personal digital assistant, or other similar mobile device. 
         [0121]    Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. 
         [0122]    These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term machine-readable signal refers to any signal used to provide machine instructions and/or data to a programmable processor. 
         [0123]    To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input. 
         [0124]    The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet. 
         [0125]    The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
         [0126]    While the invention has been particularly shown and described with reference to specific preferred embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.