Embodiments of the present invention relate to computational analysis of microarray data and, in particular, a method and system for computationally analyzing an image of a microarray to compute metrics that allow for detection of an intensity gradient within the image of the microarray.
The present invention is related to microarrays. In order to facilitate discussion of the present invention, a general background for microarrays is provided, below. In the following discussion, the terms “microarray,” “molecular array,” and “array” are used interchangeably. The terms “microarray” and “molecular array” are well known and well understood in the scientific community. As discussed below, a microarray is a precisely manufactured tool which may be used in research, diagnostic testing, or various other analytical techniques.
Array technologies have gained prominence in biological research and in diagnostics. Currently, microarray techniques are most often used to determine the concentrations of particular nucleic-acid polymers in complex sample solutions. Molecular-array-based analytical techniques are not, however, restricted to analysis of nucleic acid solutions, but may be employed to analyze complex solutions of any type of molecule that can be optically or radiometrically scanned and that can bind with high specificity to complementary molecules synthesized within, or bound to, discrete features on the surface of an array. Because arrays are widely used for analysis of nucleic acid samples, the following background information on arrays is introduced in the context of analysis of nucleic acid solutions following a brief background of nucleic acid chemistry.
Deoxyribonucleic acid (“DNA”) and ribonucleic acid (“RNA”) are linear polymers, each synthesized from four different types of subunit molecules.
The DNA polymers that contain the organization information for living organisms occur in the nuclei of cells in pairs, forming double-stranded DNA helixes. One polymer of the pair is laid out in a 5′ to 3′ direction, and the other polymer of the pair is laid out in a 3′ to 5′ direction, or, in other words, the two strands are anti-parallel. The two DNA polymers, or strands, within a double-stranded DNA helix are bound to each other through attractive forces including hydrophobic interactions between stacked purine and pyrimidine bases and hydrogen bonding between purine and pyrimidine bases, the attractive forces emphasized by conformational constraints of DNA polymers. Because of a number of chemical and topographic constraints, double-stranded DNA helices are most stable when deoxy-adenylate subunits of one strand hydrogen bond to deoxy-thymidylate subunits of the other strand, and deoxy-guanylate subunits of one strand hydrogen bond to corresponding deoxy-cytidilate subunits of the other strand. FIGS. 2A-B illustrates the hydrogen bonding between the purine and pyrimidine bases of two anti-parallel DNA strands. AT and GC base pairs, illustrated in FIGS. 2A-B, are known as Watson-Crick (“WC”) base pairs. Two DNA strands linked together by hydrogen bonds forms the familiar helix structure of a double-stranded DNA helix.
Double-stranded DNA may be denatured, or converted into single stranded DNA, by changing the ionic strength of the solution containing the double-stranded DNA or by raising the temperature of the solution. Single-stranded DNA polymers may be renatured, or converted back into DNA duplexes, by reversing the denaturing conditions, for example by lowering the temperature of the solution containing complementary single-stranded DNA polymers. During renaturing or hybridization, complementary bases of anti-parallel DNA strands form WC base pairs in a cooperative fashion, leading to reannealing of the DNA duplex.
The ability to denature and renature double-stranded DNA has led to the development of many extremely powerful and discriminating assay technologies for identifying the presence of DNA and RNA polymers having particular base sequences or containing particular base subsequences within complex mixtures of different nucleic acid polymers, other biopolymers, and inorganic and organic chemical compounds.
Once an array has been prepared, the array may be exposed to a sample solution of target DNA or RNA molecules (410-413 in
Finally, as shown in
When a microarray is scanned, data may be collected as a two-dimensional digital image of the microarray, each pixel of which represents the intensity of phosphorescent, fluorescent, chemiluminescent, or radioactive emission from an area of the microarray corresponding to the pixel. A microarray data set may comprise a two-dimensional image or a list of numerical or alphanumerical pixel intensities, or any of many other computer-readable data sets. An initial series of steps employed in processing digital microarray images includes constructing a regular coordinate system for the digital image of the microarray by which the features within the digital image of the microarray can be indexed and located. For example, when the features are laid out in a periodic, rectilinear pattern, a rectilinear coordinate system is commonly constructed so that the positions of the centers of features lie as closely as possible to intersections between horizontal and vertical gridlines of the rectilinear coordinate system, alternatively, exactly half-way between a pair of adjacent horizontal and a pair of adjacent vertical grid lines. Then, regions of interest (“ROIs”) are computed, based on the initially estimated positions of the features in the coordinate grid, and centroids for the ROIs are computed in order to refine the positions of the features. Once the position of a feature is refined, feature pixels can be differentiated from background pixels within the ROI, and the signal corresponding to the feature can then be computed by integrating the intensity over the feature pixels.
In general, the intensity associated with a pixel in the image of a microarray is the sum of: (1) a signal-intensity component produced, at a location of the surface of the microarray corresponding to the pixel, by bound target molecules; and (2) a background-intensity component produced by a wide variety of background-intensity-producing sources, including noise produced by electronic and optical components of a microarray scanner, general non-specific reflection of light from the surface of the microarray during scanning, or, in the case of radio-labeled target molecules, natural sources of background radiation, and various defects and contaminants on, and damage associated with, the surface of the microarray. A wide variety of different computational techniques are employed to determine the background-intensity components of pixel intensities and to subtract the background-intensity components from measured pixel intensities in order to recover the signal-intensity components. Unfortunately, it may be difficult to precisely determine the background intensity components of pixels in an image of a microarray, particularly when the microarray contains contaminants and/or defects that produce background intensity gradients within the image of the microarray. For this reason, designers, manufacturers, and users of microarrays and microarray scanners continue to seek improved and computationally efficient methods for detecting defects and damage reflected in background intensity gradients in images of microarrays.
Various embodiments of the present invention may employ metrics computed for a number of features within an image of a microarray that provide an indication of background intensity gradients within the image of the microarray. In one embodiment of the present invention, a convergence metric is computed for a feature by determining the size of a region surrounding the feature for which the difference between the mean and median pixel intensifies is large. In one or more embodiments, features with computed metrics of large magnitudes are generally found in, or adjacent to, regions within the image of the microarray with steep background intensity gradients. The presence of features with computed metrics of large magnitudes may be used in one or more embodiments as an indication of the presence of background intensity gradients within the image of the microarray, and the patterns of distribution of such features within an array of features may be used to provide an indication of the location and directions of background intensity gradients within the image of the microarray.
The present invention relates to methods and systems for detecting the presence of intensity gradients and characterizing intensity gradients within images of microarrays. In a first subsection, below, additional information about microarrays is provided. Next, in a second subsection, embodiments of the present invention are described with reference to a number of figures that illustrate simple examples. Finally, in a third subsection, a C++-like pseudocode implementation of a method for computing convergence-metrics is provided as a detailed illustration of one embodiment of the present invention.
An array may include any one-, two- or three-dimensional arrangement of addressable regions, or features, each bearing a particular chemical moiety or moieties, such as biopolymers, associated with that region. Any given array substrate may carry one, two, or four or more arrays disposed on a front surface of the substrate. Depending upon the use, any or all of the arrays may be the same or different from one another and each may contain multiple spots or features. A typical array may contain more than ten, more than one hundred, more than one thousand, more ten thousand features, or even more than one hundred thousand features, in an area of less than 20 cm2 or even less than 10 cm2. For example, square features may have widths, or round feature may have diameters, in the range from a 10 μm to 1.0 cm. In other embodiments each feature may have a width or diameter in the range of 1.0 μm to 1.0 mm, usually 5.0 μm to 500 μm, and more usually 10 μm to 200 μm. Features other than round or square may have area ranges equivalent to that of circular features with the foregoing diameter ranges. At least some, or all, of the features may be of different compositions (for example, when any repeats of each feature composition are excluded the remaining features may account for at least 5%, 10%, or 20% of the total number of features). Inter-feature areas are typically, but not necessarily, present. Inter-feature areas generally do not carry probe molecules. Such inter-feature areas typically are present where the arrays are formed by processes involving drop deposition of reagents, but may not be present when, for example, photolithographic array fabrication processes are used. When present, interfeature areas can be of various sizes and configurations.
Each array may cover an area of less than 100 cm2, or even less than 50 cm2, 10 cm2 or 1 cm2. In many embodiments, the substrate carrying the one or more arrays will be shaped generally as a rectangular solid having a length of more than 4 mm and less than 1 m, usually more than 4 mm and less than 600 mm, more usually less than 400 mm; a width of more than 4 mm and less than 1 m, usually less than 500 mm and more usually less than 400 mm; and a thickness of more than 0.01 mm and less than 5.0 mm, usually more than 0.1 mm and less than 2 mm and more usually more than 0.2 and less than 1 mm. Other shapes are possible, as well. With arrays that are read by detecting fluorescence, the substrate may be of a material that emits low fluorescence upon illumination with the excitation light. Additionally in this situation, the substrate may be relatively transparent to reduce the absorption of the incident illuminating laser light and subsequent heating if the focused laser beam travels too slowly over a region. For example, a substrate may transmit at least 20%, or 50% (or even at least 70%, 90%, or 95%), of the illuminating light incident on the front as may be measured across the entire integrated spectrum of such illuminating light or alternatively at 532 nm or 633 nm.
Arrays can be fabricated using drop deposition from pulsejets of either polynucleotide precursor units (such as monomers) in the case of in situ fabrication, or the previously obtained polynucleotide. Such methods are described in detail in, for example, U.S. Pat. No. 6,242,266, U.S. Pat. No. 6,232,072, U.S. Pat. No. 6,180,351, U.S. Pat. No. 6,171,797, U.S. Pat. No. 6,323,043, U.S. patent application Ser. No. 09/302,898 filed Apr. 30, 1999 by Caren et al., and the references cited therein. Other drop deposition methods can be used for fabrication, as previously described herein. Also, instead of drop deposition methods, photolithographic array fabrication methods may be used. Interfeature areas need not be present particularly when the arrays are made by photolithographic methods as described in those patents.
A molecular array is typically exposed to a sample including labeled target molecules, or, as mentioned above, to a sample including unlabeled target molecules followed by exposure to labeled molecules that bind to unlabeled target molecules bound to the array, and the array is then read. Reading of the array may be accomplished by illuminating the array and reading the location and intensity of resulting fluorescence at multiple regions on each feature of the array. For example, a scanner may be used for this purpose, which is similar to the AGILENT MICROARRAY SCANNER manufactured by Agilent Technologies, Palo Alto, Calif. Other suitable apparatus and methods are described in published U.S. patent applications 20030160183A1, 20020160369A1, 20040023224A1, and 20040021055A, as well as U.S. Pat. No. 6,406,849. However, arrays may be read by any other method or apparatus than the foregoing, with other reading methods including other optical techniques, such as detecting chemiluminescent or electroluminescent labels, or electrical techniques, for where each feature is provided with an electrode to detect hybridization at that feature in a manner disclosed in U.S. Pat. No. 6,251,685, U.S. Pat. No. 6,221,583 and elsewhere.
A result obtained from reading an array, followed by application of a method of the present invention, may be used in that form or may be further processed to generate a result such as that obtained by forming conclusions based on the pattern read from the array, such as whether or not a particular target sequence may have been present in the sample, or whether or not a pattern indicates a particular condition of an organism from which the sample came. A result of the reading, whether further processed or not, may be forwarded, such as by communication, to a remote location if desired, and received there for further use, such as for further processing. When one item is indicated as being remote from another, this is referenced that the two items are at least in different buildings, and may be at least one mile, ten miles, or at least one hundred miles apart. Communicating information references transmitting the data representing that information as electrical signals over a suitable communication channel, for example, over a private or public network. Forwarding an item refers to any means of getting the item from one location to the next, whether by physically transporting that item or, in the case of data, physically transporting a medium carrying the data or communicating the data.
As pointed out above, array-based assays can involve other types of biopolymers, synthetic polymers, and other types of chemical entities. A biopolymer is a polymer of one or more types of repeating units. Biopolymers are typically found in biological systems and particularly include polysaccharides, peptides, and polynucleotides, as well as their analogs such as those compounds composed of, or containing, amino acid analogs or non-amino-acid groups, or nucleotide analogs or non-nucleotide groups. This includes polynucleotides in which the conventional backbone has been replaced with a non-naturally occurring or synthetic backbone, and nucleic acids, or synthetic or naturally occurring nucleic-acid analogs, in which one or more of the conventional bases has been replaced with a natural or synthetic group capable of participating in Watson-Crick-type hydrogen bonding interactions. Polynucleotides include single or multiple-stranded configurations, where one or more of the strands may or may not be completely aligned with another. For example, a biopolymer includes DNA, RNA, oligonucleotides, and PNA and other polynucleotides as described in U.S. Pat. No. 5,948,902 and references cited therein, regardless of the source. An oligonucleotide is a nucleotide multimer of about 10 to 100 nucleotides in length, while a polynucleotide includes a nucleotide multimer having any number of nucleotides.
As an example of a non-nucleic-acid-based molecular array, protein antibodies may be attached to features of the array that would bind to soluble labeled antigens in a sample solution. Many other types of chemical assays may be facilitated by array technologies. For example, polysaccharides, glycoproteins, synthetic copolymers, including block copolymers, biopolymer-like polymers with synthetic or derivitized monomers or monomer linkages, and many other types of chemical or biochemical entities may serve as probe and target molecules for array-based analysis. A fundamental principle upon which arrays are based is that of specific recognition, by probe molecules affixed to the array, of target molecules, whether by sequence-mediated binding affinities, binding affinities based on conformational or topological properties of probe and target molecules, or binding affinities based on spatial distribution of electrical charge on the surfaces of target and probe molecules.
Scanning of a molecular array by an optical scanning device or radiometric scanning device generally produces an image comprising a rectilinear grid of pixels, with each pixel having a corresponding signal intensity. These signal intensities are processed by an array-data-processing program that analyzes data scanned from an array to produce experimental or diagnostic results which are stored in a computer-readable medium, transferred to an intercommunicating entity via electronic signals, printed in a human-readable format, or otherwise made available for further use. Molecular array experiments can indicate precise gene-expression responses of organisms to drugs, other chemical and biological substances, environmental factors, and other effects. Molecular array experiments can also be used to diagnose disease, for gene sequencing, and for analytical chemistry. Processing of molecular-array data can produce detailed chemical and biological analyses, disease diagnoses, and other information that can be stored in a computer-readable medium, transferred to an intercommunicating entity via electronic signals, printed in a human-readable format, or otherwise made available for further use.
In general, a pixel intensity within an image of a microarray is expected to be the sum of a signal-intensity component, generated by a bound target molecule on the surface of a microarray, and a background-intensity component, generated by various background-intensity sources, as discussed above. The background intensity is expected to be relatively uniformly distributed within the image of a microarray, and have a variance and average magnitude characteristic for the type of microarray, experimental procedure, and microarray scanner used to scan the microarray. In processing microarray data, the background-intensity component is generally estimated, by any of various computational techniques, and subtracted from the measured intensity to produce an estimated signal intensity. However, in reality, the background intensity components associated with pixels in the image of a microarray may be quite non-uniformly distributed. Non-uniform distributions of background-pixel intensities across the image of a microarray may result from background intensity gradients within the image of a microarray. For example, a disk-shaped region of contamination on the surface of a microarray may lead to a corresponding disk-shaped region, in the image of a microarray, with much greater or lower background intensities. An intensity gradient within the image of the microarray is found within an annular band of pixels containing the circumference of the disk-shaped region of contamination, with directions of steepest increase or decrease of background intensities within the gradient corresponding to the intersections of radial lines emanating from the center of the disk-shaped region of contamination and the annular gradient. Similarly, the image of a microarray partly dipped into a contaminating solution may show a background intensity gradient near the line dividing the portion of the microarray immersed in the contaminating solution and the portion of the array not immersed in the contaminating solution, and therefore free of contamination. Manufacturing defects, thumbprints, scratches, and other such defects and damage to the surface of a microarray may produce multiple, complicated gradients within the image of a microarray.
In order to carry out background subtraction to recover feature signals from a microarray data set, the presence of gradients, such as the gradient illustrated in the subregion of
Embodiments of the present invention are directed to computationally inexpensive techniques for detecting and characterizing intensity gradients within the image of a microarray. In these embodiments, a metric is computed for a number of features within the image of the microarray based on non-feature, background regions surrounding the number of features. Those features associated with computed metrics of large magnitudes are often found in regions of the image of a microarray with significant intensity gradients. The distributions of features within the image of the microarray with computed metrics of high magnitudes are indicative of the locations of intensity gradients within the image of the microarray.
One useful metric that can be calculated for selected features within the image of a microarray is the convergence metric χ.
In this subsection, a relatively straightforward, C++-like pseudocode implementation of one embodiment of the present invention is provided. This pseudocode implementation is provided for illustrative purposes only. It is not, for example, intended to limit the scope of the present invention to the particular implementation details discussed below. As with any software routine, there are an almost limitless number of possible implementations for any given embodiment.
First, a number of constant declarations are provided:
Next, a single class declaration is provided as scaffolding for a handful of methods that implement one embodiment of the present invention:
The class “scannedlmage” includes the following private data members: (1) “image,” declared above on line 4, a two-dimensional byte array representing an image of a microarray, each byte in the two-dimensional array representing the intensity associated with a pixel in the image; (2) “annulusMask,” declared above on line 5, a two-dimensional byte array that contains numeric values representing the membership of corresponding pixels within background annuli surrounding a central feature, within the central feature, or within features near the central feature, the numeric value “0” indicating a feature pixel, and numeric values greater than the value “0”indicating the number of an annulus in a sequence of annuli extending outward from the central feature; (3) “pixels,” declared above on line 6, a two-dimensional array indexed by potential pixel intensity values and the sequence number for annular backgrounds surrounding a central feature, which stores the number of pixels of each intensity value within each annular background region surrounding the feature; (4) “meansMinusMedians,” declared above on line 7, an array containing the computed difference between the average and median background-pixel intensities within annular background regions of increasing radii; (5) “radii,” a two-dimensional array declared above, on line 8, that contains the computed convergence metric □ for each feature in the microarray; and (6) “maxX” and “maxY,” declared above on lines 9-10, which contain the maximum horizontal and vertical feature indices for the image of the microarray.
The class “scannedImage” includes the following private data members: (1) “computeFeatureIndexes,” declared above on line 12, which computes the convergence metrics for all the features within the image of the microarray; (2) “distance,” declared above on line 13, which computes the distance between two pixels in a rectilinear grid, or array, of pixels, the two pixels specified by x and y coordinates supplied as arguments; (3) “translateFeatureToPixel,” declared above on line 14, which translates feature coordinates (x,y) to pixel coordinates (px,py); (4) “computeAnnulusMask,” declared above on line 15, which prepares the private data member “annulusMask” for use in subsequently computing convergence metrics for the features in the image of the microarray; (5) “clearData,” declared above on line 16, that clears the contents of the private data members “pixels” and “meansMinusMedians” prior to computing the convergence metric χ for a particular feature; (6) “computeAnnuli,” declared above on line 17, which counts the number of pixels of each possible intensity within all of the background annuli about a feature at feature coordinates (x,y), supplied as arguments; and (7) “computeRadiusOfConvergence,” declared above on line 18, which computes the convergence metric χ for a feature at feature coordinates (x,y), supplied as arguments. The class “scananedImage” includes the public function member “computerRadiiOfConvergence,” declared above on line 21, that computes the convergence metrics for all features within the image of a microarray and stores the computed convergence metrics in the two-dimensional array “radii,” and a constructor, which obtains the image of a microarray and stores the pixel intensity values in the private data member “image.”
An implementation of the function member “computeFeatureIndexes” is next provided:
The function member “computeFeatureIndexes” determines values for the private data members “maxX” and “maxY,” described above. These private data members indicate the dimensions of a feature array contained within the scanned image of the microarray.
An implementation of the function member “distance” is next provided:
The function member “distance” determines the distance, in pixels, of a pixel with coordinates (px, py) from a pixel with coordinates (pxc, pyc). The distance is determined by a simple Euclidean distance function.
An implementation of the function member “translateFeatureToPixel” is next provided:
The function member “translateFeatureToPixel” translates the position of a feature, specified in feature coordinates (x,y), into pixel coordinates (px, py). The feature spacings and position of the corner feature (0,0) within the image of the microarray, specified by the constants “Feature_x_spacing,” “Feature_y_spacing,” “Feature00_x,” and “Feature00_y,” are used to translate the feature coordinates (x,y), into pixel coordinates (px, py).
An implementation of the function member “computeAnnulusMask” is next provided:
The function member “computeAnnulusMask” generates an annulus mask, stored in the private data member “annulusMask,” that is used to determine whether pixels n the neighborhood of a feature belong to the feature, to a neighboring feature, or to one of a number of concentric annular background regions surrounding the feature. The center of the mask is superimposed on the image of the microarray at the center of a feature in order to select background pixels in the neighborhood of the feature. Feature pixels are represented by the value “0,” while background pixels have a numeric value equal to or greater than “1,” indicating the largest background annulus to which the pixel belongs. In the nested for-loops of lines 10-43, each mask position is indexed by the loop variables i and j. A value is determined for each position. On line 13, the distance between the position (i,j) and the center of the annulus mask is determined. On lines 14-15, the value for position (ij) is set to “0,” if the position is within a distance equal to the feature radius of the center of the annulus mask, and otherwise set to a value equal to the number of background annulus widths that the position is distant from the feature, plus 1. On lines 23-39, the pixel coordinates (p,q) of the nearest feature center to the position (i,j) is determined, and then, on line 40, the distance of the position (i,j) from the center of the nearest feature is determined. If that distance is less than or equal to the feature radius, the value corresponding to the position in the annulus mask is set to 0on line 41.
An implementation of the function member “clearData” is next provided:
The function member “clearData” simply clears the arrays “pixels” and “meansMinusMedians” to prepare for computation of a convergence metric □ for a next feature.
Next, an implementation of the function member “computeAnnuli” is provided:
The function member “computeAnnuli” computes and stores the counts of the number of pixels with each possible pixel intensity into the two-dimensional array “pixels.” The array “pixels” is indexed both by possible intensity values and by the annulus in which the intensities are counted. Note that, in the case of function member “computeAnnuli,” the pixel intensity counts are for strict annuli, rather than annuli that include all annuli of smaller radius. The function member “computeAnnuli” keeps track of the lowest and highest intensities observed in the variable arguments “low” and high.” On lines 13-48, the function member “computeAnnuli” determines the range of positions in the annulus mask that overlap image pixels when the center of the annulus map is coincident with the feature at pixel coordinates (pxc, pyc) passed to the function member “computeAnnuli” as arguments. Then, in the nested for-loops of lines 49-62, the function member “computeAnnuli” considers each position of the annulus mask overlapping the image in the neighborhood of the feature at pixel coordinates (pxc, pyc), and tabulates the umber of times each possible intensity value is observed in each strict background annulus. Note that only intensities for pixels within annuli in the overlap region are tabulated.
Next, an implementation of the function member “computeRadiusOfConvergence” is provided:
The function member “computerRadiusOfConvergence” computes a convergence metric χ for the feature at feature coordinates (x,y), passed to the function member “computerRadiusOfConvergence” as arguments. First, on lines 15-17, the feature coordinates (x,y) are translated to pixel coordinates (pxc, pyc) and the number of times each possible intensity is observed for each strict background annulus is tabulated via a call to function member “computeAnnuli.” Then, in for-loop of lines 19-58, the mean and median pixel intensities for each background annulus of increasing radius, as described with reference to
An implementation of the function member “computerRadiiOfConvergence” is next provided:
The above function computes the convergence metric χ for each feature in the image of the microarray via a call to function member “computeRadiusofconvergence,” and stores each computed convergence metric χ into the two-dimensional array “radii.”
Once convergence metrics are computed for all or a selected number of features within a microarray, the computed convergence metrics can be used in many different ways. For example, the computed convergence metrics may be sorted, and the number of computed convergence metrics with magnitudes greater than the threshold magnitude determined in order to decide whether or not the image of the microarray contains a sufficient proportion of features within intensity gradients to make the microarray unsuitable for feature extraction. Alternatively, the features within the image of a microarray with computed convergence metrics greater than a threshold value may be clustered together based on position in order to identify subregions within the image of the microarray with high intensity gradients, and those subregions may either be considered unsuitable for feature extraction, or may be specially treated or flagged by feature extraction programs.
Although the present invention has been described in terms of a particular embodiment, it is not intended that the invention be limited to this embodiment. Modifications within the spirit of the invention will be apparent to those skilled in the art. For example, many different possible convergence metrics may be used to identify features within regions containing intensity gradients. In the above-described implementation, the absolute value of the difference between the average and median intensities of features within background annuli are computed to find the annulus with the greatest absolute value of difference between average and median pixel intensities. However, different, similar metrics are possible. For example, the square of the computed difference may be employed. In the above-described implementation, the annulus with the greatest absolute value of the difference between average and median pixel intensities is selected to define the convergence metric, but in alternative implementations, an annulus immediately preceding or following the annulus with the greatest difference between average and median pixel intensities may instead be selected. The selection may also be based on the shape of the plotted difference versus radii graphs, described above with reference to
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the invention. The foregoing descriptions of specific embodiments of the present invention are presented for purpose of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously many modifications and variations are possible in view of the above teachings. The embodiments are shown and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents: