# Patent

## Title
Image processing method and system for microfluidic devices

## Abstract

A method for processing an image of a microfluidic device. The method includes receiving a first image of a microfluidic device. The first image corresponds to a first state. Additionally, the method includes receiving a second image of the microfluidic device. The second image corresponds to a second state. Moreover, the method includes transforming the first image and the second image into a third coordinate space. Also, the method includes obtaining a third image based on at least information associated with the transformed first image and the transformed second image, and processing the third image to obtain information associated with the first state and the second state.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
This application is a division of U.S. patent application Ser. No. 10/902,494, filed Jul. 28, 2004, which claims priority to U.S. Provisional Patent Application No. 60/490,712, filed Jul. 28, 2003, the disclosures of which are hereby incorporated by reference.
Additionally, U.S. application Ser. No. 10/851,777 filed May 20, 2004 and titled “Method and System for Microfluidic Device and Imaging Thereof” is incorporated by reference herein.


COPYRIGHT NOTICE
A portion of this application contains computer codes, which are owned by Fluidigm Corporation. All rights have been preserved under the copyright protection, Fluidigm Corporation©2004.
BACKGROUND OF THE INVENTION
The present invention is directed to image processing technology. More particularly, the invention provides an image processing method and system for detecting changes of an imaged object. Merely by way of example, the invention has been applied to crystallization in a microfluidic device. But it would be recognized that the invention has a much broader range of applicability.
Crystallization is an important technique to the biological and chemical arts. Specifically, a high-quality crystal of a target compound can be analyzed by x-ray diffraction techniques to produce an accurate three-dimensional structure of the target. This three-dimensional structure information can then be utilized to predict functionality and behavior of the target.
In theory, the crystallization process is simple. A target compound in pure form is dissolved in solvent. The chemical environment of the dissolved target material is then altered such that the target is less soluble and reverts to the solid phase in crystalline form. This change in chemical environment is typically accomplished by introducing a crystallizing agent that makes the target material less soluble, although changes in temperature and pressure can also influence solubility of the target material.
In practice however, forming a high quality crystal is generally difficult and sometimes impossible, requiring much trial and error and patience on the part of the researcher. Specifically, the highly complex structure of even simple biological compounds means that they are not amenable to forming a highly ordered crystalline structure. Therefore, a researcher must be patient and methodical, experimenting with a large number of conditions for crystallization, altering parameters such as sample concentration, solvent type, countersolvent type, temperature, and duration in order to obtain a high quality crystal, if in fact a crystal can be obtained at all.
Hansen, et al., describe in PCT publication WO 02/082047, published Oct. 17, 2002 and herein incorporated by reference in its entirety for all purposes and the specific purposes disclosed therein and herein, a high-throughput system for screening conditions for crystallization of target materials, for example, proteins. The system is provided in a microfluidic device wherein an array of metering cells is formed by a multilayer elastomeric manufacturing process. Each metering cell comprises one or more of pairs of opposing chambers, each pair being in fluid communication with the other through an interconnecting microfluidic channel, one chamber containing a protein solution, and the other, opposing chamber, containing a crystallization reagent. Along the channel, a valve is situated to keep the contents of opposing chamber from each other until the valve is opened, thus allowing free interface diffusion to occur between the opposing chambers through the interconnecting microfluidic channel. As the opposing chambers approach equilibrium with respect to crystallization reagent and protein concentrations as free interface diffusion progresses, it is hoped that the protein will, at some point, form a crystal. In preferred embodiments, the microfluidic devices taught by Hansen et al. have arrays of metering cells containing chambers for conducting protein crystallization experiments therein. Use of such arrays in turn provides for high-throughput testing of numerous conditions for protein crystallization which require analysis.
The invention disclosed herein provides systems and methods for conducting such analysis to determine whether a particular set of protein crystallization conditions indeed caused crystals to form.
SUMMARY OF THE INVENTION
The present invention is directed to image processing technology. More particularly, the invention provides an image processing method and system for detecting changes of an imaged object. Merely by way of example, the invention has been applied to crystallization in a microfluidic device. But it would be recognized that the invention has a much broader range of applicability.
According to the present invention, a number of embodiments of the image processing method and system for microfluidic devices are provided. Merely by way of an example, a method for processing an image of a microfluidic device includes receiving a first image of a microfluidic device. The first image corresponds to a first state. Additionally, the method includes receiving a second image of the microfluidic device. The second image corresponds to a second state. Moreover, the method includes transforming the first image into a third coordinate space. The transforming uses at least a first fiducial on the first image. Also, the method includes transforming the second image into the third coordinate space. The transforming uses at least a second fiducial on the second image. Additionally, the method includes obtaining a third image based on at least information associated with the transformed first image and the transformed second image, and processing the third image to obtain information associated with the first state and the second state. In one example, the third coordinate space is based on the prior known geometry of the microfluidic device. In another example, although there are certain advantages to using the first image, the method can work adequately without the first image. The second image is transformed into the third coordinate space.
According to another embodiment of the present invention, a computer-readable medium including instructions for processing an image of a microfluidic device comprises one or more instructions for receiving a first image of a microfluidic device. The first image corresponds to a first state. Additionally, the computer-readable medium includes one or more instructions for receiving a second image of the microfluidic device. The second image corresponds to a second state. Moreover, the computer-readable medium includes one or more instructions for transforming the first image into a third coordinate space. The transforming uses at least a first fiducial on the first image. Also the computer-readable medium includes one or more instructions for transforming the second image into the third coordinate space. The transforming uses at least a second fiducial on the second image. Additionally, the computer-readable medium includes one or more instructions for obtaining a third image based on at least information associated with the transformed first image and the transformed second image, and one or more instructions for processing the third image to obtain information associated with the first state and the second state.
Numerous benefits are achieved using the invention over conventional techniques. Depending upon the embodiment, one or more of these benefits may be achieved. For example, certain embodiments of the present invention improves the speed of imaging analysis and crystallization detection. Some embodiments of the present invention simplify the image processing system for crystallization detection. Certain embodiments of the present invention improve sensitivity of the image processing method and system.
According to yet another embodiment of the present invention, a method for processing an image of a microfluidic device includes receiving a first image of a microfluidic device. The first image includes a first fiducial marking and a first chamber region, and the first chamber region is associated with a first chamber boundary. Additionally, the method includes transforming the first image into a first coordinate space based on at least information associated with the first fiducial marking, removing at least a first part of the first chamber boundary from the first image, processing information associated with the first chamber region, and determining whether a first crystal is present in the first chamber region.
According to yet another embodiment of the present invention, a method for processing a plurality of images of a microfluidic device includes receiving at least a first image and a second image of a microfluidic device. The first image and the second image are associated with a first focal position and a second focal position respectively, and each of the first image and the second image includes a first chamber region. Additionally, the method includes processing information associated with the first image and the second image, generating a third image based on at least information associated with the first image and the second image, processing information associated with the third image, and determining whether a first crystal is present in the first chamber region based on at least information associated with the third image.
According to yet another embodiment of the present invention, a method for adjusting a classifier and processing an image of a microfluidic device includes receiving a first image of a microfluidic device. The first image is associated with at least a first predetermined characteristic. Additionally, the method includes generating a first plurality of features based on at least information associated with the first image, and selecting a second plurality of features from the first plurality of features based on at least information associated with the first plurality of features and the at least a first predetermined characteristic. Moreover, the method includes determining a third plurality of features based on at least information associated with the second plurality of features, and processing information associated with the third plurality of features. Also, the method includes determining at least a first likelihood based on at least information based on the third plurality of features and a first plurality of parameters, processing information associated with the first likelihood and the at least a first predetermined characteristic, and adjusting the first plurality of parameters based on at least information associated with the first likelihood and the at least a first predetermined characteristic.
According to another embodiment of the present invention, a computer-readable medium includes instructions for processing an image of a microfluidic device. The computer-readable medium includes one or more instructions for receiving a first image of a microfluidic device. The first image includes a first fiducial marking and a first chamber region, and the first chamber region is associated with a first chamber boundary. Additionally, the computer-readable medium includes one or more instructions for transforming the first image into a first coordinate space based on at least information associated with the first fiducial marking, and one or more instructions for removing at least a first part of the first chamber boundary from the first image. Moreover, the computer-readable medium includes one or more instructions for processing information associated with the first chamber region, and one or more instructions for determining whether a first crystal is present in the first chamber region.
According to yet another embodiment of the present invention, a computer-readable medium includes instructions for processing a plurality of images of a microfluidic device. The computer-readable medium includes one or more instructions for receiving at least a first image and a second image of a microfluidic device. The first image and the second image are associated with a first focal position and a second focal position respectively, and each of the first image and the second image includes a first chamber region. Additionally, the computer-readable medium includes one or more instructions for processing information associated with the first image and the second image, and one or more instructions for generating a third image based on at least information associated with the first image and the second image. Moreover, the computer-readable medium includes one or more instructions for processing information associated with the third image, and one or more instructions for determining whether a first crystal is present in the first chamber region based on at least information associated with the third image.
According to yet another embodiment of the present invention, a computer-readable medium includes instructions for adjusting a classifier and processing an image of a microfluidic device. The computer-readable medium includes one or more instructions for receiving a first image of a microfluidic device. The first image is associated with at least a first predetermined characteristic. Additionally, the computer-readable medium includes one or more instructions for generating a first plurality of features based on at least information associated with the first image, and one or more instructions for selecting a second plurality of features from the first plurality of features based on at least information associated with the first plurality of features and the at least a first predetermined characteristic. Moreover, the computer-readable medium includes one or more instructions for determining a third plurality of features based on at least information associated with the second plurality of features, and one or more instructions for processing information associated with the third plurality of features. Also, the computer-readable medium includes one or more instructions for determining at least a first likelihood based on at least information based on the third plurality of features and a first plurality of parameters, one or more instructions for processing information associated with the first likelihood and the at least a first predetermined characteristic, and one or more instructions for adjusting the first plurality of parameters based on at least information associated with the first likelihood and the at least a first predetermined characteristic.
Depending upon the embodiment under consideration, one or more these benefits of the present invention may be achieved. These benefits and various additional objects, features and advantages of the present invention can be fully appreciated with reference to the detailed description and accompanying drawings that follow.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 depicts overview of an exemplary imaging system.
FIGS. 2a and 2b depict a top plan and cross-sectional view of an exemplary microfluidic device used in accordance with the invention.
FIGS. 3a and 3b depict how metering cell stretch and distortion may be compensated in accordance with the invention.
FIGS. 4a through 4c depict the process of masking and image subtraction employed in accordance with the invention.
FIG. 5 is a simplified diagram for an image processing method according to an embodiment of the present invention.
FIG. 6 is a simplified process 520 for transforming images according to one embodiment of the present invention.
FIG. 7 shows simplified wells and channels according to one embodiment of the present invention.
FIGS. 8-10 are simplified diagrams showing sample 1-D signals.
FIG. 11 is a simplified diagram for masking images according to one embodiment of the present invention.
FIG. 12 is a simplified diagram for implosion-padding process.
FIG. 13 is a simplified method for wall detection according to an embodiment of the present invention.
FIGS. 14(a), (b) and (c) are simplified diagrams for wall detection according to an embodiment of the present invention;
FIG. 15 is a simplified method for implosion padding according to an embodiment of the present invention.
FIG. 16 is a simplified diagram for wall implosion according to an embodiment of the present invention.
FIG. 17 is a simplified diagram for wall implosion at another time according to an embodiment of the present invention.
FIG. 18 is a simplified method for image inspection according to an embodiment of the present invention.
FIG. 19 is a simplified training method according to an embodiment of the present invention.
FIG. 20 is a simplified method for classification according to an embodiment of the present invention.
FIG. 21 is a simplified method for combining images according to an embodiment of the present invention.
FIG. 22 is a simplified diagram for deep chamber according to an embodiment of the present invention.
FIG. 23 is a simplified diagram for capturing multiple images according to an embodiment of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
The present invention is directed to image processing technology. More particularly, the invention provides an image processing method and system for detecting changes of an imaged object. Merely by way of example, the invention has been applied to crystallization in a microfluidic device. But it would be recognized that the invention has a much broader range of applicability.
FIG. 1 is a simplified diagram for an imaging system according to an embodiment of the present invention. FIGS. 2a and 2b are simplified diagrams for a top view and cross-sectional view of a microfluidic device according to an embodiment of the present invention. The microfluidic device as shown in FIGS. 2a and 2b can be used in conjunction with the imaging system as shown in FIG. 1. These diagrams are merely examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
Imaging system (10) operates, in one embodiment, in the following manner. First, microfluidic device (30) is securely placed on stage (20). Based on a fixed feature of the microfluidic device (30), for example, an edge of the base support of microfluidic device (30), computer (110) then causes x,y drive (25) to move stage (20) about to align microfluidic device (30) in a first x,y position with a first of a plurality of fiducial marking (30), wherein the fiducial markings are embedded within microfluidic device at a known z dimension distance from a chamber center point, comes into focus by imaging device (60) based on dead reckoning from the fixed feature. A user of the system then registers the precise coordinate of the fiducial with the imaging system. Two or more additional fiducial marks are then likewise mapped with the assistance of a user. In other embodiments, this process is automatic as the centroids of the fiducials can be calculated precisely by locating the symmetric XY fiducial object and removing any non-symmetric components. Imaging device (60), under the control of computer (110) then adjusts the z dimension location of focal plane (105) to focus upon the fiducial marking (not shown in FIG. 1, but shown in FIG. 2). For example, once focused upon the first fiducial marking, the imaging system then obtains a first x,y coordinate image of microfluidic device (30) looking for additional fiducial markings within the field of view of image device (60). In preferred embodiments, the field of view can embrace an entire metering cell. The computer then analyzes the first x,y coordinate image to determine whether the microfluidic device has skew and stretch, and if skew or stretch are determined, transforms the first x,y image to align the image and coordinate map of the microfluidic device to an idealized coordinate map. The idealized coordinate map is used later during image subtraction and masking steps.
In preferred embodiments, with the microfluidic device x,y coordinate image aligned against the ideal coordinate map, the system then determines whether the stretch, distortion or lack of co-registration between the various microfluidic layers is present in the microfluidic device by comparing the location of the fiducial markings in the x,y coordinate image with the fiducial markings locations in the x,y coordinate image of the ideal stored image map. If differences are present between the actual fiducial locations and the imaged fiducial locations, a matrix transformation, preferable an Affine transformation, is performed to transform the imaged shape of the metering cell into a virtual shape of the ideal metering cell shape. By converting the actual image to a known and fixed ideal image using the matrix transformation computed from the differences between the measured actual fiducial locations and the stored ideal fiducial locations, image subtraction and other image analysis are made possible. For instance, FIG. 3 depicts an ideal microfluidic device stored image (actually stored as a coordinate map), and an actual, distorted, microfluidic device image (also stored as a coordinate map determined from fiducial mapping). By computing the differences between the coordinate maps through matrix analysis, a matrix transformation may be developed to reform the actual image into an ideal image for use in further image processing described herein. By causing the imaged microfluidic device to conform to a standard shape, image subtraction and masking is possible to maximize the viewable area of a metering cell chamber. Moreover, if defects or debris are present within the chamber at time zero in a series of time based images, such defects or debris can be masked out of subsequent images to avoid false positive when applying automated crystal recognition analysis. In addition to masking off areas of the chambers which contain defects or debris, the walls of the chambers may be subtracted from subsequent images, again so as to not cause false reading with the crystal recognition analysis. The discrepancy between various layers, such as between the control layer and the channel layer, can also be calculated based on the position of a found object in the control layer, such as the control lines themselves. In another example, this correction is determined based on the control layer fiducials themselves. For certain embodiments, this extra transformation is important since the control layer partitions the protein chamber from the rest of the control line.
FIGS. 4a through 4c depict how the above image subtraction and masking occur at time zero prior to crystal formation. FIG. 4a depicts a metering cell with debris, shown as the letter “D” distributed about the metering cell chambers. Using the technique described above, after the metering cell has been rotated, if needed, to align with the ideal metering coordinate system, and after the metering cell has been stretch compensated to make the imaged metering cell dimensions match those of the ideal metering cell dimensions, then foreign objects not present in the ideal image are masked out, meaning that those regions including, and immediately surrounding the foreign objects are masked so as to avoid falsely triggering the crystal detection analysis into deeming the foreign object as a crystal that was formed. FIG. 4b depicts an image wherein the mask has removed the foreign objects from the image so as to not provide false triggers for image analysis. FIG. 4c depicts how image subtraction is applied to remove the chamber edge features from the image to reduce the raw image into one of just wall-less chambers. From this final image, further masking may occur if wall implosion is detected, an event that usually occurs when the microfluidic device is dehydrating and the chamber contents are permeating outside of the chamber, causing a negative pressure therein and thus, wall collapse or implosion. Such further masking for implosion employs a series of known shapes that occur when chamber implosion occurs and uses such known shapes to create additional masks to occlude from the image the now intruding imploded walls.
FIG. 5 is a simplified diagram for an image processing method according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method includes a process 510 for locating fiducials, a process 520 for transforming image, a process 530 for masking image, a process 540 for comparing images, and a process 550 for inspecting image. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequence of processes may be interchanged with others replaced. The process 540 for comparing images may be performed prior to the process 530 for masking image, during the process 530 for masking image, and/or after the process 530 for masking image. Future detail of the present invention can be found throughout the present specification and more particularly below.
At the process 510, marking fiducials are located on an image. The image may be renormalized against a reference image, which was previously taken with either a standardized slab or nothing under the microscope, for white balancing or for exposure normalization, or other desirable characteristics. Marking fiducials may include cross hairs. In one embodiment of the present invention, the image includes metering cells in addition to a Fluidigm logo. Each metering cell has cross-hair fiducials at known locations around the metering cell. During the image acquisition, the positions of these fiducials are determined to within +/−100 microns through the X-Y correction process. This estimation accuracy may be achieved even under rotational orientations. During the process 510, some sub-images are extracted around these estimated locations. Within these sub-images, the cross-hair fiducials are found, and their global positions are determined. The global positions in the T0 image are compared to the global positions in a subsequent image, such as the T1 image, the T2 image, . . . , the TM image, . . . , or the TN image. N is a positive integer, and M is a positive integer smaller than or equal to N. The T0 image is captured at T0; while the TM image is captured at TM. For example, at T0, no crystallization of protein occurs. At TM, crystallization of protein may have occurred. If a single fiducial is missed from the T0 image or the subsequent TM image, the missed fiducial is usually not considered during the subsequent analysis of the images.
FIG. 6 is a simplified process 520 for transforming images according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The process 520 includes a process 610 for matching fiducials, a process 620 for calculating transformation, and a process 630 for transforming image. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. The process 620 for calculating transformation and the process 630 for transforming image may be combined. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequence of processes may be interchanged with others replaced. Future detail of the present invention can be found throughout the present specification and more particularly below.
At the process 610, fiducials in an image is matched with corresponding fiducials in an ideal coordinate map. For example, the image is the T0 image or the TM image. In one embodiment, the image is an x-y coordinate image, and the ideal coordinate map is an x-y coordinate map. The image is aligned against the ideal coordinate map. Locations of the fiducials in the image are compared with locations of the fiducials in the ideal coordinate map. Such comparison can reveal any distortion including a stretch of the microfluidic device when the image is captured, such as at T0 or TM.
At the process 620, a spatial transformation from an image to an ideal coordinate space is calculated. The ideal coordinate space corresponds to the ideal coordinate map. In one embodiment, a matrix transformation, such as an Affine transformation, is calculated. For example, two least squares transformations are calculated from the T0 image to an ideal coordinate space and from the TM image to the ideal coordinate space.
At the process 630, an image is transformed into an ideal coordinate space. The image may be the T0 image or the TM image. For example, a matrix transformation, such as an Affine transformation, changes the shape of a metering cell in the image into an ideal shape. The metering cell may be sliced into three or more diffusion experiments. In one embodiment, FIG. 3a shows a simplified ideal coordinate map, and FIG. 3b shows a simplified distorted image. By computing the differences between the fiducial locations in the coordinate map and the corresponding fiducial locations in the distorted image, a matrix transformation may be performed to convert the distorted image into an ideal image.
At the process 630, the T0 image and the TM image are transformed into the ideal coordinate space. The transformed T0 image and the transformed TM image are located in the same coordinate space, so they are co-registered and comparable to one another. The transformed T0 image can be subtracted from the TM image to detect crystallization in the TM image. But such subtraction does not remove all the noise sources that should be removed.
In theory, the locations of the wells in the ideal coordinate space is known since the cross-hair fiducials are on the same layer as the wells, but in practice each metering cell is unique. Dead-reckoning the well-locations including well-walls usually do not provide accurate information. Instead, a sub-rectangular is usually extracted around each well location, and the T0 image is used to look for the well walls. For example, four linear lines are fitted to the four walls of the well. In addition, four vertical lines are usually used to determine four of the six walls for the three channel segments.
FIG. 7 shows simplified wells and channels according to one embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The four vertical lines as discussed above include the left-wall of the right channel, the right wall and the left wall of the middle channel, and the right wall of the left channel. The remaining two walls, e.g., the right wall of the right channel and the left wall of the left channel are demarcated by the containment lines which are found through thresholding a 1-D horizontal signal of a gross left and right sub-image. The analysis of one-dimensional horizontal signal can also locate an interface line in the center channel and the top and bottom walls of the horizontal channels using small windows across the x-dimension. The horizontal channels can be tilted out of the horizontal due to alignment errors. The interface lines and the top and bottom walls of the channels are used in the subsequently processes.
FIGS. 8-10 are simplified diagrams showing sample 1-D signals. These diagrams are merely examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In certain embodiments, the channel walls are not as crisp in signal as shown in FIGS. 8-10, as the strength of that signal depends on the z-location at the time of image acquisition. Specifically, FIG. 9 is a simplified diagram for interface line detection. FIG. 10 is a simplified diagram for filtered and width matched signal. In some embodiments, the fiducials are on the same layer as the channel. The channel position can be found via the affine transformation without finding the channel walls.
At the process 530, an image is masked. The masking increases the viewable area of a metering cell chamber. If defects or debris are present within a chamber in the T0 image, these defects or debris can be masked out of the T0 image and the subsequent TM image. The removal of defects or debris can reduce the number of false positives in automated crystal recognition analysis.
For example, a stamp or a mask is calculated from the T0 image in order to mask out regions of the T0 image that contain signals not of interest to the crystal recognition analysis. FIG. 11 is a simplified diagram for masking images according to one embodiment of the present invention. The T0 image and the T1 image are captured and transformed to the ideal coordinate space. Each rectilinear region contains four bounding walls. The region beyond the four bounding walls in the T0 image is masked out of the subsequent analysis. Similarly, the interface line is masked out. Additionally, large blob objects that appear in the region of interest and exceed threshold in the T0 image are similarly masked as they are assumed to be pre-existing before crystallization. As shown in FIG. 11, a blob object appears in the right channel in both the T0 image and the T1 image, but the blob object does not exist in the scrubbed lower-right image.
The cells, voids, and spaces are deformable in microfluidic devices, so they can change in size from T0 to TM. Such deformation of the cell surfaces is modeled, and the mask is accordingly modified for the corresponding TM. For example, as shown in FIG. 11, the left and right well subcomponents have their “implosion-padding” values calculated. This is necessary because the substantial pressure difference in the well between T0 and TM implodes the walls from their original position.
According to one embodiment of the present invention, the implosion-padding process includes extracting rectangle around a well in the T0 image, calculating an average of a succession of rectangle-perimeters from the T0 image, finding a minimum value of this vector and the index, repeating the above three processes of extracting, calculating, and finding for the subsequently T1 image, the T2 image, . . . , the TM image, . . . , and the TN image, and calculating the difference in the indices. The difference in the indices is used to estimate additional padding to the masking region for the original T0 image. FIG. 12 is a simplified diagram for implosion-padding process. As discussed above and further emphasized here, this diagram is merely an examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
At the process 540, images are compared to generate a comparison image. For example, a comparison image results from the subtraction of the T0 image from the TM image. The scrubbing can usually remove the walls of the chambers. Such removal can reduce false reading in the crystal recognition analysis. As discussed above and further emphasized here, the process 540 for image comparison may be performed prior to the process 530 for masking image, during the process 530 for masking image, and/or after the process 530 for masking image.
In one embodiment, the comparison image is median re-centered to push the middle to 128 instead of the arbitrary value that would otherwise result. The intensity of the image can vary even with respect to the reference image as it is dependent on the hydration conditions on the chip. The mask generated in the process 530 is applied to the comparison image to create an attenuating front which softens the harsh borders that the mask would introduce to an image. The closer an image pixel is to a mask pixel, the more the image pixel is attenuated. This process is one example of scrubbing. The distance map describing the distance of each image pixel from a mask pixel is calculated separately from the T0 image.
FIGS. 4a through 4c are simplified diagrams for image subtraction, masking and scrubbing. These diagrams are merely examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. As shown in FIG. 4a, a metering cell contains debris indicated by the letter D's distributed about the metering cell chambers. With the processes described above, the metering cell may be rotated to align with the ideal coordinate map, and is transformed to make the imaged metering cell dimensions match those of the ideal metering cell dimensions. For example, the transformation can stretch compensate the image. Subsequently, the foreign objects not present in the ideal image are masked out. The masking process removes signals from the regions including and immediately surrounding the foreign objects. The removal can reduce falsely identifications of the foreign objects as crystals. FIG. 4b is a simplified diagram for an image with foreign objects removed. FIG. 4c is a simplified diagram for image subtraction. The image subtraction calculates differences between the T0 image and the TM image, and thereby removes the chamber edge features from the TM image. The TM image is converted into an image having wall-less chambers.
For this converted image, a further masking may be needed if wall implosion is detected. Wall implosion usually occurs when the microfluidic device is dehydrating and the chamber contents are permeating outside of the chamber. The permeation causes a negative pressure therein and thus wall collapse or implosion. Such further masking for implosion employs a series of known shapes that occur when chamber implosion occurs and uses such known shapes to create additional masks to occlude from the image the now intruding imploded walls.
According to one embodiment of the present invention, an output scrubbed image is calculated by first renormalizing the T0 image and the TM image with respect to each other. The renormalization process can reduce a DC or background signal resulting from environmental changes to the chip, such as loss of chip moisture. A simple subtraction image is then calculated with a 128 offset. This subtraction image is then “scrubbed” by stamping all the pixel locations in the stamp with 128 and thereby obliterating their output signal. Additionally, pixel locations are progressively attenuated based on their x-y distance to a stamped pixel in the mask. Therefore the subtraction image is scrubbed around the mask pixels to ensure a smooth transition from the stamped 128 value and the real image values.
At a process 550, an image is inspected for crystals. For example, the final scrubbed image is sent through a feature extractor which performs additional image processing techniques on the image.
Training and selection of these features is a semi-automatic process using Matlab scripts. A random combination of these features is selected. The higher dimensional space is mapped to a lower dimensionality through fisher-linear discriminant analysis to increase the separability of crystals from other materials. Classification is performed in this lower dimensional space using a K-nearest neighbor algorithm. A confusion matrix for the original training set is calculated by excluding the instance under test and a cost matrix is applied to the training matrix to evaluate the “goodness” of the training run. The best training run is used to determine the number of neighbors, the features used and two thresholds used for false positive rejection and false negative rejection.
According to yet another embodiment of the present invention, a computer medium includes instructions for processing an image of a microfluidic device. The computer medium stores a computer code that directs a processor to perform the inventive processes as discussed above. An exemplary computer code may use Matlab or other computer language, and may run on Pentium PC or other computer. The computer code is not intended to limit the scope of the claims herein. One of ordinary skill in the art would recognize other variations, modifications, and alternatives.
For example, the computer-readable medium includes one or more instructions for receiving the T0 image of a microfluidic device. The T0 image is captured prior to crystallization. Additionally, the computer-readable medium includes one or more instructions for receiving the TM image of the microfluidic device. The TM image is captured after the T0 image. Moreover the computer readable medium includes one or more instructions for transforming the T0 image into an ideal coordinate space using at least a fiducial on the T0 image, one or more instructions for transforming the TM image into the ideal coordinate space using at least a fiducial on the TM image, one or more instructions for obtaining a comparison image based on at least information associated with the transformed T0 image and the transformed TM image, and one or more instructions for processing the comparison image to obtain information associated with the crystallization.
As another example, the computer code can perform locating fiducials, transforming image, masking image, comparing images, and inspecting image. As yet another example, the computer code performs some or all of the processes as described in FIGS. 1-12.
As discussed above and further emphasized here, the above examples of computer-readable medium and computer code are merely examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, some processes may be achieved with hardware while other processes may be achieved with software. Some processes may be achieved with a combination of hardware and software. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. Depending upon the embodiment, the specific sequence of processes may be interchanged with others replaced.
Numerous benefits are achieved using the invention over conventional techniques. Depending upon the embodiment, one or more of these benefits may be achieved. For example, certain embodiments of the present invention improves the speed of imaging analysis and crystallization detection. Some embodiments of the present invention simplify the image processing system for crystallization detection. Certain embodiments of the present invention improve sensitivity of the image processing method and system.
As discussed above and further emphasized here, FIGS. 1-12 represent certain embodiments of the present invention, and these embodiments include many examples. In one example, at the process 510, marking fiducials are located on an image. The image may be renormalized against a reference image, which was previously taken with either a standardized slab or nothing under the microscope, for white balancing or for exposure normalization, or other desirable characteristics. The image may be 8-bit renormalized with high resolution, or other desirable characteristics. Marking fiducials may include cross hairs. In one embodiment of the present invention, the image includes metering cells in addition to a Fluidigm logo. Each metering cell has cross-hair fiducials at known locations around the metering cell. During the image acquisition, the positions of these fiducials are determined to within +/−100 microns through the X-Y correction process. This estimation accuracy may be achieved even under rotational orientations. During the process 510, some sub-images are extracted around these estimated locations. Within these sub-images, the cross-hair fiducials are found, and their global positions are determined. In one example, the T0 image is analyzed at the process 510, and in another example, the T0 image is not analyzed at the process 520. For example, the T0 image is captured at T0. At T0, no crystallization of protein occurs. At TM, crystallization of protein may have occurred.
If the T0 image is analyzed at the process 520, the global positions in the T0 image are compared to the global positions in a subsequent image, such as the T1 image, the T2 image, . . . , the TM image, . . . , or the TN image. N is a positive integer, and M is a positive integer smaller than or equal to N. The TM image is captured at TM. If a single fiducial is missed from the T0 image or the subsequent TM image, the missed fiducial is usually not considered during the subsequent analysis of the images.
In another example, the process 520 includes a process 610 for matching fiducials, a process 620 for calculating transformation, and a process 630 for transforming image. At the process 610, fiducials in an image is matched with corresponding fiducials in an ideal coordinate map. For example, the image is the TM image. In one embodiment, the image is an x-y coordinate image, and the ideal coordinate map is an x-y coordinate map. The image is aligned against the ideal coordinate map. Locations of the fiducials in the image are compared with locations of the fiducials in the ideal coordinate map. Such comparison can reveal any distortion including a stretch of the microfluidic device when the image is captured, such as at TM. In one embodiment, the ideal coordinate map takes into account certain characteristics of the imaging system 10 and/or the microfluidic device 30. For example, the characteristics include some imperfections known or predicted at the time the ideal coordinate map was generated.
At the process 620, a spatial transformation from an image to an ideal coordinate space is calculated. The ideal coordinate space corresponds to the ideal coordinate map. In one example, a least squares transformation is calculated from the T0 image to the ideal coordinate space. In another example, a least squares transformation is not calculated from the T0 image to the ideal coordinate space.
At the process 630, an image is transformed into an ideal coordinate space. For example, the T0 image is transformed. In another example, the T0 image is not transformed. In one embodiment, the transformed images are located in the same coordinate space, so they are co-registered and comparable to one another. In another embodiment, the transformed image includes at least part of the microfluidic device 30. For example, the microfluidic device 30 has the channel regions and well regions. In certain embodiments, the channel regions and the well regions are interchangeable. The channels and the wells refer to recessed regions in the microfluidic device. In other embodiments, the microfluidic device uses channel regions to function as well regions. In yet other embodiments, the microfluidic device includes chambers that can be used as fluid channels, control channels, and wells.
At the process 530, an image is masked. For example, a stamp or a mask is calculated using predetermined information about the idealized image. As shown in FIG. 11, the TM image is captured and transformed to the ideal coordinate space. Each rectilinear region contains four bounding walls. The region beyond the four bounding walls in the TM image is masked out of the subsequent analysis. Similarly, the interface line is masked out.
In another example, FIG. 13 is a simplified method for wall detection. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 1300 includes process 1310 for receiving image, process 1320 for performing intensity analysis, process 1330 for converting intensities, process 1340 for detecting walls for first control channel, and process 1350 for detecting wall for second control channel. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, the processes 1310 and 1320 is combined. In another example, the processes 1340 and 1350 is combined. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. Further details of these processes are found throughout the present specification and more particularly below.
FIGS. 14(a), (b) and (c) are simplified diagrams for wall detection according to an embodiment of the present invention. These diagrams are only illustrative, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
At the process 1310, an image is received. For example, the image is the T0 image or the TM image. In one embodiment, as shown in FIG. 14(a), an image 1400 includes an interface line 1410 as a first control channel, a containment line 1420 as a second control channel, and a reaction channel 1430. The interface line 1410 includes walls 1412 and 1414, and the containment line 1420 includes a wall 1422. The reaction channel includes walls 1432 and 1434. For example, the interface line 1410 and the containment line 1420 are in the control layer. In another example, the reaction channel 1430 is used for protein crystallization.
At the process 1320, an intensity analysis is performed. In one embodiment, as shown in FIG. 14(b), the image 1400 is analyzed based on intensity. A curve 1440 represents image intensity along the direction of the reaction channel 1430. The curve 1440 includes at least five peaks 1442, 1444, 1452, 1454, and 1456. The peaks 1442 and 1444 correspond to bright regions, and the peaks 1452, 1454, and 1456 correspond to dark regions. The peaks 1442 and 1452 are associated with to the wall 1412, the peaks 1444 and 1454 are associated with the wall 1414, and the peak 1456 is associated with the wall 1422.
At the process 1330, the intensities are converted. In one embodiment, as shown in FIG. 14(c), the curve 1440 is converted into a curve 1460. The conversion removes polarity differences between the peaks 1442 and 1452 and between the peaks 1444 and 1454. Additionally, the conversion also provide a smoothing process. For example, the intensity values of the curve 1440 is compared against the average intensity value of the curve 1440, and the absolute values of the differences are plotted along the direction of the reaction channel 1430. As a result, the curve 1460 includes three peaks 1472, 1474, and 1476. The peak 1472 corresponds to the peaks 1442 and 1452, the peak 1474 corresponds to the peaks 1444 and 1454, and the peak 1476 corresponds to the peak 1456. In one embodiment, the smoothing process ensures the peaks 1442 and 1452 are converted into a single peak 1472. In another embodiment of the present invention, the conversion is performed without the smoothing process. For example, the curve 1440 has a single peak with a single polarity in place of the peaks 1442 and 1452. No smoothing or fusing of the two peaks is needed.
At the process 1340, walls of the first control channel are detected. In one embodiment, as shown in FIG. 14(c), the peaks 1472 and 1474 are associated with the walls 1412 and 1414 of the first control channel 1410. A line 1488 is drawn parallel to the x axis along the direction of the reaction channel. The line 1488 intersects with the curve 1460 at four intersections 1482, 1484, 1486, and 1488. The average x value of intersections 1482 and 1484 and the average x value of the intersections 1486 and 1488 are calculated. The difference between the two average x values is determined as the calculated width of the interface line 1410. The calculated width is compared against the predetermined width of the interface line 1410. By moving the line 1488 up and down along the y direction, the difference between the calculated width and the predetermined width is minimized at a certain y position for the line 1488. At this y position, the average x value of intersections 1482 and 1484 is considered to be the position of the wall 1412, and the average x value of the intersections 1486 and 1488 is considered to be the position of the wall 1414.
At the process 1350, a wall of the second control channel is detected. In one embodiment, once the interface line 1410 is located, the predetermined length of the reaction channel 1430 between the interface line 1410 and the containment line 1420 is used to calculate the position of the containment line 1420. The calculation provides an approximate location for the wall 1422. Afterwards, the approximate locations for the walls 1414 and 1422 are further adjusted by a fine-correction process. The fine-correction process calculates the penalty functions for the wall 1414 and the wall 1416 and determines a combined penalty function as a function of wall positions. In one example, the combined penalty function takes into account the signal intensities of the curve 1460. In another example, the combined penalty function takes into account the distance between the fine-corrected wall positions and the approximate wall positions without fine correction. In yet another example, by minimizing the combined penalty function, the locations of the walls 1414 and 1422 are determined. In yet another example, by smoothing the combined penalty function, the locations of the walls 1414 and 1422 are determined.
As discussed above and further emphasized here, FIG. 13 is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, the walls 1432 and 1434 of the reaction channel 1430 as shown in FIG. 14(a) are found in a way similar to the walls 1412, 1414, and 1422. The distance between the two walls 1432 and 1434 are predetermined. Multiple regions of the reaction channel 1430 are sampled to generate a composite estimate locations for the walls 1432 and 1434. In another example, the fiducial markings are detected and registered on the channel layer, and the walls 1432 and 1434 are thereby determined. In yet another example, the locations of the walls 1432, 1434, 1414 and 1422 can be determined based on at least information obtained from a bar code on the microfluidic device 30. In yet another example, as shown in FIG. 14(a), the region beyond the four bounding walls 1432, 1434, 1414 and 1422 can be masked out of the subsequent analysis.
Also, various fiducial markings can be included in the microfluidic system 30. In one embodiment, a fiducial marking comprises a recessed region in a deformable layer. The recessed region becomes a volume or open region surrounded by portions of the deformable layer or other layers. The volume or open region is preferably filled with a fluid such as a gas including air or other non-reactive fluid. The fluid also has a substantially different refractive index to light relative to the surrounding deformable layer. The open region is preferably filed with an air or air type mixture and has a low refractive index. Similarly, the fiducial marking in the control layer has similar characteristics according to a specific embodiment. In another embodiment, the fiducial marking has sharp edges that highlight the marking from its surroundings. In yet another embodiment, the fiducial markings can be any physical features associated with the microfluidic device 30. For example, the fiducial markings include a channel wall or an edge of the microfluidic device 30.
At the process 540, images are compared to generate a comparison image. For example, a comparison image results from the subtraction of the T0 image from the TM image. In another example, a comparison image results from the subtraction of the TM1 image from the TM2 image. Each of M1 and M2 is a positive integer smaller than or equal to N. For example, M1 is smaller than M2. Such removal can reduce false reading in the crystal recognition analysis. In another example, the mask generated in the process 530 is applied to the comparison image to create an attenuating front which softens the harsh borders that the mask would introduce to an image. The closer an image pixel is to a mask pixel, the more the image pixel is attenuated. In yet another example, the mask takes into account wall implosion by an implosion-padding process. As discussed above and further emphasized here, the process 540 may be skipped in some examples.
FIG. 15 is a simplified method for implosion padding according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 4500 includes process 4510 for selecting image area, process 4520 for determining median intensity, process 4530 for determining need for additional image area, process 4540 for determining minimum intensity, and process 4550 for determining implosion padding. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some processes are combined or expanded. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. Further details of these processes are found throughout the present specification and more particularly below.
At the process 4510, an image area is selected from the T0 image or the TM image. For example, the selected image area is associated with a rectangular boundary. FIG. 16 is a simplified diagram for wall implosion according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. An image area along the perimeter of a rectangle 4610 is selected from an image. The rectangle 4610 is assigned with an index.
At the process 4520, a median intensity is determined. As shown in FIG. 16, the median intensity for the image area is calculated. The median intensity is associated with an index corresponding to the rectangle 4610, and determined based on raw pixel intensities along the perimeter of the rectangle 4610. In another embodiment, the average intensity instead of the median intensity for the image area is determined. At the process 4530, whether an additional image area should be selected is determined. If an additional image area needs to be selected, the process 4510 is performed. If an additional image area does not need to be selected, the process 4540 is performed. In one example, the processes 4520 and 4530 are repeated for a succession of nested rectangles and the rectangle index is plotted against the determined median intensity as shown in a curve 4620.
At the process 4540, the minimum median intensity is determined. As shown in FIG. 16, the median intensity is a function of the index, and may be plotted as the curve 4620. At an index equal to about 10, the median intensity approximately reaches a minimum. The rectangle associated with the minimum median intensity is related to the walls of the reaction chamber, and is used to determine the extent of implosion. In another embodiment, the minimum average intensity instead of the minimum median intensity for the image area is determined.
At the process 4550, the implosion padding is determined. FIG. 17 is a simplified diagram for wall implosion at another time according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. FIG. 17 shows the processes 4510, 4520, 4530, and 4540 performed on an image taken later than the image analyzed in FIG. 16. For example, FIG. 16 is associated with the T0 image or the TM1 image. FIG. 17 is associated with TM2 image, and M2 is larger than M1. In FIG. 17, the index that corresponds to minimum median intensity has shifted from 10 to about 29. The change in index values indicates the wall implosion. Based on the location of the rectangles corresponding to the two index values, the additional implosion padding that should be applied for the image in FIG. 17 is determined. The mask can be designed to cover the wall implosion.
At a process 550, an image is inspected for crystals. For example, FIG. 18 is a simplified method for image inspection. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 1500 includes process 1510 for training classifier and process 1520 for classifying image. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some processes are combined or expanded. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. For example, the process 1510 is skipped. In another example, the process 1510 is repeated for a plurality of images. Further details of these processes are found throughout the present specification and more particularly below.
At the process 1510, a classifier is trained. FIG. 19 is a simplified training method according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The process 1510 includes process 1610 for generating features, process 1620 for selecting features, process 1630 for projecting features, and process 1640 for adjusting classifier. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some processes are combined or expanded. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. Further details of these processes are found throughout the present specification and more particularly below.
At the process 1610, a number of features are generated. In one embodiment, the features are computed on the entire image. In another embodiment, the image is divided into overlapping tiles or spatial components, and the features are computed on each image tile or spatial component. These features describe certain characteristics of the image useful for the classification of the image. For example, the image can be classified into crystal, phase/precipitate and clear types.
In one embodiment, some characteristics of the image are predetermined. The predetermination is accomplished by manually and/or automatically inspecting the image. The characteristics may describe with which of the crystal, phase/precipitate and clear classes the image is associated. The predetermined characteristics can be used to assess the accuracy and adjust the various settings of the classifier.
In one embodiment, the features including some or all of the following:
Coarse Image Statistics: global image features;
Circle Counting Image Statistics: count of different kinds of circles and ellipse;
Sliding Threshold Features: threshold values at which objects of sufficient size are segmented;
Biggest Object Features: features of the biggest blob or object found in the image;
Discrete Fourier Transform Features: frequency analysis features;
Form Analysis Features: shape analysis features;
X-axis Symmetry Features: features describing the symmetry around X-axis;
Canny Image Sign Flipping Features: features describing the flipping of sign using Canny edge detector;
Hough Transform Features: features computed using Hough Transform method to detect straight lines; and
Neighborhood Line Detector Features: features computed in local neighborhoods detecting straight line patterns.
The above list of features is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In one embodiment, for neighborhood line detector features, a N-by-N-pixel square neighborhood is centered around each pixel in the image and considered for a fixed value of N. For example, N is equal to 9. The gradient of each pixel in the neighborhood is computed. Based on all the gradients of the pixels in the neighborhood, the dominant orientation angle indicative of the straight line pattern in the neighborhood is determined. Also, based on the number of pixels in the neighborhood aligned with the dominant orientation, the strength of the straight line pattern is determined. If there are a number of pixels forming a line and each of the neighborhoods centered at those pixels has strong and similarly oriented straight line patterns, the number of such pixels and the strength and similarity of orientations can be used as features for classification
At the process 1620, certain features are selected from the plurality of features generated. For example, a subset of features is selected using an automatic method in which features are added and removed iteratively and classification accuracy is improved or optimized. In one embodiment, the feature selection process is repeated for each pair of the classes, and the accuracy for distinguishing between each pair of classes is improved. The accuracy may be determined between the result from the classifier and the predetermined characteristic of the image. For example, the image is associated with three classes including crystal, phase/precipitate and clear. In another example, for each pair of classes, certain features are selected from all the features obtained at the process 1610. The selection includes computing the Fisher Discriminant between the pair and evaluating its classification accuracy using receiver operating characteristic (ROC) curve area which is a plot between false negative rate and false positive rate. For three pairs of classes, three groups of selected features are determined. Each group corresponds to a pair of class, and may be different from or the same as another group. Additionally, only for the Neighborhood Line Detector Features obtained at the process 1610, the feature selection process is performed. For example, the selection is related to two out of three pairs of classes, and two groups of selected Neighborhood Line Detector Features are determined. In yet another embodiment, the three classes can be subdivided using a clustering algorithm in order to use pairs of subclasses for the feature selection process.
At the process 1630, the selected features are projected. In one embodiment, all of the selected features are projected onto the lower dimensional feature space. For example, from 130 original features, 5 groups of features are selected. As discussed above, 3 groups of features are selected from all features for 3 pairs of classes, and 2 groups of features are selected from only Neighborhood Line Detector Features for 2 pairs of classes. These 5 groups of selected features are used to calculate 5 Fisher features. The number of dimensions is reduced from 130 to 5.
At the process 1640, the classifier is adjusted. In one embodiment, the Fisher features are input to a Feed Forward neural network. This network is trained using a neural network training algorithm such as backpropagation algorithm. The neural network can have multiple outputs, each output indicating the likelihood of the image or the image tile being in one of the classes such as crystal, phase/precipitate or clear. If the image is divided into image tiles, the neural network outputs for the different image tiles are combined into a single output using a spatial fusion algorithm. Based on the comparison between the output from the neural network and the predetermined characteristics of the image, the neural network is adjusted. For example, the weights and/or biases of the neural network is changed.
At the process 1520, an image is classified. FIG. 20 is a simplified method for classification according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The process 1520 includes process 1710 for generating features, process 1720 for projecting features, and process 1730 for determining image class. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. Further details of these processes are found throughout the present specification and more particularly below.
At the process 1710, a number of features are generated. These features include all the features selected at the process 1620. In one embodiment, the features are computed on the entire image. In another embodiment, the image is divided into overlapping tiles or spatial components, and the features are computed on each image tile or spatial component. In yet another embodiment, the scrubbing and ripping operations are performed on the image prior to the process 1710.
At the process 1720, the selected features are projected. In one embodiment, all of the features selected at the process 1620 are projected onto the lower dimensional feature space. For example, from 130 original features, 5 groups of features are selected at the process 1620. These selected features are computed at the process 1710, and are used to calculate 5 Fisher features.
At the process 1730, the image class is determined. In one embodiment, the Fisher features are input to a Feed Forward neural network. The neural network can have multiple outputs, each output indicating the likelihood of the image or the image tile being in one of the classes such as crystal, phase/precipitate or clear. If the image is divided into image tiles, the neural network outputs for the different image tiles are combined into a single output using a spatial fusion algorithm. In another embodiment, the crystal likelihood is compared against a threshold. If the crystal likelihood is above the threshold, the image is classified as a crystal image. For example, the threshold is 50%.
As discussed above and further emphasized here, FIGS. 1-17 represent certain embodiments of the present invention, and these embodiments include many examples. For example, the T0 image and/or the TM image associated with some or all of the processes 510, 520, 530, 540, and 550 may be directly acquired by the imaging system 10, or generated from a plurality of images acquired by the imaging system 10. In one embodiment of the present invention, the imaging system 10 captures a plurality of images for the same area of the microfluidic system 30 at a plurality of z-focus positions respectively. The plurality of images at different z-planes are combined into one image used as the T0 image or TM image.
FIG. 21 is a simplified method for combining images according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. The method 1800 includes process 1810 for determining image characteristics, process 1820 for performing statistical analysis, and process 1830 for generating combined image. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some processes are combined or expanded. Other processes may be inserted to those noted above. Depending upon the embodiment, the specific sequences of processes may be interchanged with others replaced. Further details of these processes are found throughout the present specification and more particularly below.
At the process 1810, certain image characteristics are determined for the plurality of images. In one embodiment, for each pixel of each image, the sharpness and colorness are determined. For example, the sharpness is determined with Laplacian operator, and the colorness is determined with Saturation of the HSV color mode. At the process 1820, a statistical analysis is performed. In one embodiment, the statistics such as mean of sharpness and mean of colorness are determined for all the images.
At the process 1830, a combined image is generated. For example,




  
    
      
        
          Combined
          ⁢
          
            
          
          ⁢
          
            Image
            ⁡
            
              (
              
                x
                ,
                y
              
              )
            
          
        
        =
        
          
            
              ∑
              
                m
                =
                1
              
              N
            
            ⁢
            
              
                
                  wt
                  m
                
                ⁡
                
                  (
                  
                    x
                    ,
                    y
                  
                  )
                
              
              ×
              
                
                  Image
                  m
                
                ⁡
                
                  (
                  
                    x
                    ,
                    y
                  
                  )
                
              
            
          
          
            
              ∑
              
                m
                =
                1
              
              N
            
            ⁢
            
              
                wt
                m
              
              ⁡
              
                (
                
                  x
                  ,
                  y
                
                )
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          1
        
        )
      
    
  




wherein N is the number of images for the plurality of images. CombinedImage (x,y) is the intensity of the combined image at pixel (x,y), and Imagem(x,y) is the intensity of image m at pixel (x,y). For example, the image intensity has three components including red intensity, green intensity, and blue intensity. The intensity of the combined image associated with a given color is dependent upon the intensity of image m associated with the same color. The weight wtm is determined based on the sharpness and colorness at pixel (x, y) for image m. For example,




  
    
      
        
          
            wt
            m
          
          (
          
            
          
          ⁢
          
            x
            ,
            
              
            
            ⁢
            y
          
          )
        
        =
        
          
        
        ⁢
        
          
            0.7
            ×
            
              
            
            ⁢
            
              
                
                  Laplacian
                  m
                
                ⁡
                
                  (
                  
                    x
                    ,
                    y
                  
                  )
                
              
              MeanLapcian
            
          
          +
          
            
          
          ⁢
          
            0.3
            ×
            
              
            
            ⁢
            
              
                
                  Saturation
                  m
                
                ⁡
                
                  (
                  
                    x
                    ,
                    y
                  
                  )
                
              
              MeanSaturation
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          2
        
        )
      
    
  




wherein Lapacianm(x,y) and Saturationm(x,y) are the values of Laplacian operator and Saturation respectively for the pixel (x,y) on image m. MeanLaplacian is the mean of Laplacian values for all pixels in all of the plurality of images, and MeanSaturation is the mean of Saturation values for all pixels in all the plurality of images.
The method for combining images has various applications. For example, in certain microfluidic devices, a reaction chamber, such as a reaction channel or the protein well, has a large depth. The crystals can be located anywhere within the reaction chamber. FIG. 22 is a simplified diagram for deep chamber according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. A protein well 1900 has a depth of about 300 microns. In one example, the depth of focus of 10× objective is less than 300 microns, and the single z-plane image capture cannot capture all the crystals 1910, 1920, and 1930. If the imaging system focuses on the middle of the protein well, the image may capture only the crystal 1920.
FIG. 23 is a simplified diagram for capturing multiple images according to an embodiment of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. In one example, three images are acquired. Image #1 captures the crystal 1910, Image #2 captures the crystal 1920, and Image #3 captures the crystal 1930. The number of images are depending on the objective and aperture setting of the imaging system. The smaller the aperture, the larger of the depth of field, and the less the images needed. For example, 5 images with 70 micron step size may be used with 10× objective. The captured multiple images are combined according to the method 1800.
In one embodiment, each of the three images has three components for a given (x, y) location. The three components include red intensity, green intensity, and blue intensity. Similarly, the combined image has the same three components for a given (x, y) location. For example, at the pixel location (10, 10), Image1(10, 10)=(200, 100, 50), Image2(10, 10)=(100, 200, 150) and Image3(10, 10)=(50, 50, 50). The corresponding weights are wt1(10, 10)=0.1, wt2(10, 10)=10 and wt3(10, 10)=0.2. According to Equation 1, CombinedImage (10, 10) is as follows:




  
    
      
        
          
            
              
                Combined
                ⁢
                
                  
                
                ⁢
                
                  Image
                  ⁡
                  
                    (
                    
                      10
                      ,
                      10
                    
                    )
                  
                
              
              =
              
              ⁢
              
                
                  [
                  
                    
                      
                        
                          
                            
                              
                                wt
                                1
                              
                              ⁡
                              
                                (
                                
                                  10
                                  ,
                                  10
                                
                                )
                              
                            
                            ×
                            
                              
                                Image
                                1
                              
                              ⁡
                              
                                (
                                
                                  10
                                  ,
                                  10
                                
                                )
                              
                            
                          
                          +
                        
                      
                    
                    
                      
                        
                          
                            
                              
                                wt
                                2
                              
                              ⁡
                              
                                (
                                
                                  10
                                  ,
                                  10
                                
                                )
                              
                            
                            ×
                            
                              Image
                              2
                            
                          
                          +
                        
                      
                    
                    
                      
                        
                          
                            
                              wt
                              3
                            
                            ⁡
                            
                              (
                              
                                10
                                ,
                                10
                              
                              )
                            
                          
                          ×
                          
                            
                              Image
                              3
                            
                            ⁡
                            
                              (
                              
                                10
                                ,
                                10
                              
                              )
                            
                          
                        
                      
                    
                  
                  ]
                
                
                  [
                  
                    
                      
                        wt
                        1
                      
                      ⁡
                      
                        (
                        
                          x
                          ,
                          y
                        
                        )
                      
                    
                    +
                    
                      
                        wt
                        2
                      
                      ⁡
                      
                        (
                        
                          x
                          ,
                          y
                        
                        )
                      
                    
                    +
                    
                      
                        wt
                        3
                      
                      ⁡
                      
                        (
                        
                          x
                          ,
                          y
                        
                        )
                      
                    
                  
                  ]
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  [
                  
                    
                      
                        
                          
                            0.1
                            ×
                            
                              (
                              
                                200
                                ,
                                100
                                ,
                                5
                              
                              )
                            
                          
                          +
                          
                            10
                            ×
                          
                        
                      
                    
                    
                      
                        
                          
                            (
                            
                              100
                              ,
                              200
                              ,
                              150
                            
                            )
                          
                          +
                          
                            0.2
                            ×
                          
                        
                      
                    
                    
                      
                        
                          (
                          
                            50
                            ,
                            50
                            ,
                            50
                          
                          )
                        
                      
                    
                  
                  ]
                
                
                  (
                  
                    0.1
                    +
                    10.0
                    +
                    0.2
                  
                  )
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                (
                
                  
                    
                      
                        
                          
                            (
                            
                              
                                0.1
                                ×
                                200
                              
                              +
                              
                                10
                                ×
                                100
                              
                              +
                              
                                0.2
                                ×
                                50
                              
                            
                            )
                          
                          10.3
                        
                        ,
                      
                    
                  
                  
                    
                      
                        
                          
                            (
                            
                              
                                0.1
                                ×
                                100
                              
                              +
                              
                                10
                                ×
                                200
                              
                              +
                              
                                0.2
                                ×
                                50
                              
                            
                            )
                          
                          10.3
                        
                        ,
                      
                    
                  
                  
                    
                      
                        
                          
                            (
                            
                              
                                0.1
                                ×
                                50
                              
                              +
                              
                                10
                                ×
                                150
                              
                              +
                              
                                0.2
                                ×
                                50
                              
                            
                            )
                          
                          10.3
                        
                        )
                      
                    
                  
                
                )
              
            
          
        
        
          
            
              =
              
              ⁢
              
                (
                
                  100
                  ,
                  196.12
                  ,
                  147.09
                
                )
              
            
          
        
      
    
    
      
        (
        
          Equation
          ⁢
          
            
          
          ⁢
          3
        
        )
      
    
  




where the combined image has a red intensity of 100, a green intensity of 196.12, and a blue intensity of 147.09 at x equal to 10 and y equal to 10. As discussed above and further emphasized here, Equation 3 is only an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications.
Examples of the present invention include code that directs a processor to perform all or certain inventive processes as discussed above. The computer code is implemented using C++ or other computer language. The computer code is not intended to limit the scope of the claims herein. One of ordinary skill in the art would recognize other variations, modifications, and alternatives.
According to one embodiment of the present invention, a computer-readable medium includes instructions for processing an image of a microfluidic device. The computer-readable medium includes one or more instructions for receiving a first image of a microfluidic device. The first image includes a first fiducial marking and a first chamber region, and the first chamber region is associated with a first chamber boundary. Additionally, the computer-readable medium includes one or more instructions for transforming the first image into a first coordinate space based on at least information associated with the first fiducial marking, and one or more instructions for removing at least a first part of the first chamber boundary from the first image. Moreover, the computer-readable medium includes one or more instructions for processing information associated with the first chamber region, and one or more instructions for determining whether a first crystal is present in the first chamber region.
According to another embodiment of the present invention, a computer-readable medium includes instructions for processing a plurality of images of a microfluidic device. The computer-readable medium includes one or more instructions for receiving at least a first image and a second image of a microfluidic device. The first image and the second image are associated with a first focal position and a second focal position respectively, and each of the first image and the second image includes a first chamber region. Additionally, the computer-readable medium includes one or more instructions for processing information associated with the first image and the second image, and one or more instructions for generating a third image based on at least information associated with the first image and the second image. Moreover, the computer-readable medium includes one or more instructions for processing information associated with the third image, and one or more instructions for determining whether a first crystal is present in the first chamber region based on at least information associated with the third image.
According to yet another embodiment of the present invention, a computer-readable medium includes instructions for adjusting a classifier and processing an image of a microfluidic device. The computer-readable medium includes one or more instructions for receiving a first image of a microfluidic device. The first image is associated with at least a first predetermined characteristic. Additionally, the computer-readable medium includes one or more instructions for generating a first plurality of features based on at least information associated with the first image, and one or more instructions for selecting a second plurality of features from the first plurality of features based on at least information associated with the first plurality of features and the at least a first predetermined characteristic. Moreover, the computer-readable medium includes one or more instructions for determining a third plurality of features based on at least information associated with the second plurality of features, and one or more instructions for processing information associated with the third plurality of features. Also, the computer-readable medium includes one or more instructions for determining at least a first likelihood based on at least information based on the third plurality of features and a first plurality of parameters, one or more instructions for processing information associated with the first likelihood and the at least a first predetermined characteristic, and one or more instructions for adjusting the first plurality of parameters based on at least information associated with the first likelihood and the at least a first predetermined characteristic.
In yet another embodiment, at the process 1350, a wall of the second control channel is detected. In one embodiment, once the interface line 1410 is located, the predetermined length of the reaction channel 1430 between the interface line 1410 and the containment line 1420 is used to calculate the position of the containment line 1420. The calculation provides an approximate location for the wall 1422. Afterwards, the approximate locations for the walls 1414 and 1422 are further adjusted by a fine-correction process. An exemplary computer code for fine correction is shown below.












int DiffusionCellImageTemplate::fineCorrectProteinChannelLocation(IplImage* t0Image,int


proteinChannelBeginningInPixels, int totalProteinChannelLengthInPixels)


{


 int fineTuneDistance=CONTROL_LAYER_FINE_TUNE_DISTANCE_IN_MICRONS/this-


>m_engineConfiguration->getXMicronsPerPixel( );


 this->StartImageTimer(“fine correction start”);


 RECT leftRect;


 RECT rightRect;


 leftRect.top=0;


 leftRect.bottom=t0Image->height−1;


 leftRect.left=proteinChannelBeginningInPixels−fineTuneDistance/2;


 leftRect.right=proteinChannelBeginningInPixels+fineTuneDistance/2;


 rightRect.top=0;


 rightRect.bottom=t0Image->height−1;


 rightRect.left=proteinChannelBeginningInPixels+totalProteinChannelLengthInPixels−


fineTuneDistance/2;


rightRect.right=proteinChannelBeginningInPixels+totalProteinChannelLengthInPixels+fineTune


Distance/2;


 IplImage* leftSide=ImageProcessor::extractImageRect(t0Image,&leftRect);


 IplImage* rightSide=ImageProcessor::extractImageRect(t0Image,&rightRect);


 int returnValue=proteinChannelBeginningInPixels;


 if ((leftSide==NULL)||(rightSide==NULL))


 {


 // no additional calculation done here - simply return the base protein channel beginning


 }


 else


 {


 this->PollImageTimer(“both images non-null”);


 // PERFORM THE FINE CORRECTION CALCULATION HERE


 int *leftSignal=ImageProcessor::calculateHorizontalDerivativeAmplitude(leftSide);


 int *rightSignal=ImageProcessor::calculateHorizontalDerivativeAmplitude(rightSide);


// this->PollImageTimer(“calculated derivative signals”);


 if ((leftSignal!=NULL)&&(rightSignal!=NULL))


 {


 this->PollImageTimer(“both are non-null”);


 int signalWidth=leftSide->width;


int minLeftSignal=INT_MAX;


int minRightSignal=INT_MAX;


// determine the min of each signal


for (int i=0;i<signalWidth−1;i++) // skip the last value as it is always zero


 {


 if (leftSignal[i]<minLeftSignal)


 minLeftSignal=leftSignal[i];


 if (rightSignal[i]<minRightSignal)


 minRightSignal=rightSignal[i];


 }


// now subtract the min value


for (i=0;i<signalWidth−1;i++) // skip the last value as it is always zero


 {


 leftSignal[i]−=minLeftSignal;


 rightSignal[i]−=minRightSignal;


}


// now interrogate the possible benefit from each of the possible fine tuning values


this->PollImageTimer(“calculating penality function for each side”);


int *leftPenality=new int[signalWidth];


int *rightPenality=new int[signalWidth];


int leftSum=0;


int rightSum=0;


for (i=0;i<signalWidth;i++)


{


 // calculate the sum to determine to normalize left and right side


 leftSum+=leftSignal[i];


 rightSum+=rightSignal[i];


 // now calculate the penality for each side


 leftPenality[i]=0;


 rightPenality[i]=0;


 // left penality are all the signal contributions to the left of this perturbation


 for (int j=0;j<i;j++)


 {


 rightPenality[i]+=rightSignal[j];


 }


 // right penality includes all the signal contributions to the right of this pertubation


 for (j=signalWidth−1;j>=i;j−−)


 {


 leftPenality[i]+=leftSignal[j];


}


}


// calculate the combined penality as a sum of the normalized penality contribution from


// each side of the signal


this->PollImageTimer(“calculating combined penality function”);


double *combinedPenality=new double[signalWidth];


double *combinedPenalityRaw=new double[signalWidth];


 for (i=0;i<signalWidth;i++)


 {


 double leftValue=((double)leftPenality[i])/(leftSum);


 double rightValue=((double) rightPenality[i])/(rightSum);


 // unless we're in the area in which we can average...


 combinedPenalityRaw[i]=rightValue+leftValue;


 }


 // smooth the penality function to force the minimum peak to the center of the acceptable band


 // and calculate the minimum index


 double minPenality=1e99;


 int minPenalityIndex=0;


 int


smoothingWindow=SMOOTHING_WINDOW_FOR_CONTROL_LINE_DETERMINATION/this


->m_engineConfiguration->getXMicronsPerPixel( );


 for (i=0;i<signalWidth;i++)


 {


 int left=i−smoothingWindow;


 int right=i+smoothingWindow;


 if (left<0) left=0;


 if (right>signalWidth−1) right=signalWidth−1;


 combinedPenality[i]=0;


 for (int j=left; j<=right;j++)


 {


 combinedPenality[i]+=combinedPenalityRaw[j];


 }


 combinedPenality[i]/=(right−left); // normalize based on how much we were able to integrate


 if (combinedPenality[i]<minPenality)


 {


  minPenality=combinedPenality[i];


  minPenalityIndex=i;


 }


 }


 this->PollImageTimer(“calculating offset”);


 // apply the fine correction to our return value


 returnValue+=minPenalityIndex−signalWidth/2; // subtract half the signal width since this was


zero centered


 //#define DEBUG_FINE_CORRECT_CHANNEL


 #ifdef DEBUG_FINE_CORRECT_CHANNEL


 double *xValues=new double[leftSide->width];


 double *yValues1=new double[leftSide->width];


 double *yValues2=new double[leftSide->width];


 double *yValues3=new double[leftSide->width];


 double *yValues4=new double[leftSide->width];


 for (int ii=0;ii<signalWidth;ii++)


 {


  xValues[ii]=ii;


 yValues1[ii]=leftSignal[ii];


 yValues2[ii]=rightSignal[ii];


 yValues3[ii]=((double)leftPenality[ii])/leftSum*2;


 yValues4[ii]=((double)rightPenality[ii])/rightSum*2;


 }


 CVGraphUtility newGraph;


newGraph.plotDoubleXYData(xValues,yValues1,signalWidth,xValues,yValues2,signalWidth,“


HorizontalDerivativeSignals”);


 CVGraphUtility newGraph2;


newGraph2.plotTripleXYData(xValues,yValues3,signalWidth,xValues,yValues4,signalWidth,


  xValues,combinedPenality,signalWidth,“Penality Function”);


 delete[ ] xValues;


 delete[ ] yValues1;


 delete[ ] yValues2;


 delete[ ] yValues3;


 delete[ ] yValues4;


 #endif


  // free up values


  if (combinedPenality!=NULL)


  {


  delete[ ] combinedPenality;


  combinedPenality=0;


  }


 if (combinedPenalityRaw!=NULL)


 {


 delete[ ] combinedPenalityRaw;


 combinedPenalityRaw=0;


 }


 if (leftPenality!=NULL)


 {


 delete[ ] leftPenality;


 leftPenality=0;


 }


 if (rightPenality!=NULL)


 {


 delete[ ] rightPenality;


 rightPenality=0;


 }


 }


 if (leftSignal!=NULL)


 {


 delete[ ] leftSignal;


 leftSignal=0;


 }


 if (rightSignal!=NULL)


 {


 delete[ ] rightSignal;


 rightSignal=0;


 }


}


if (leftSide!=NULL)


 cvReleaseImage(&leftSide);


if (rightSide!=NULL)


 cvReleaseImage(&rightSide);


this->StopImageTimer( );


return returnValue;


}









As discussed above and further emphasized here, the above examples of computer-readable medium and computer code are merely examples, which should not unduly limit the scope of the claims herein. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. For example, some processes may be achieved with hardware while other processes may be achieved with software. Some processes may be achieved with a combination of hardware and software. Although the above has been shown using a selected sequence of processes, there can be many alternatives, modifications, and variations. For example, some of the processes may be expanded and/or combined. Depending upon the embodiment, the specific sequence of processes may be interchanged with others replaced.
It is understood that the examples and embodiments described herein are for illustrative purposes only and that various modifications or changes in light thereof will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application and scope of the appended claims.

## Claims

1. A method for adjusting a classifier and processing an image of a microfluidic device, the method comprising:
receiving a first image of a microfluidic device, the first image being associated with at least a first predetermined characteristic;
generating a first plurality of features, using a processor, based on at least information associated with the first image;
selecting a second plurality of features, using said processor, from the first plurality of features based on at least information associated with the first plurality of features and the at least a first predetermined characteristic;
determining a third plurality of features, using said processor, based on at least information associated with the second plurality of features;
processing information associated with the third plurality of features;
determining at least a first likelihood based on at least information based on the third plurality of features and a first plurality of parameters;
processing information associated with the first likelihood and the at least a first predetermined characteristic;
adjusting the first plurality of parameters based on at least information associated with the first likelihood and the at least a first predetermined characteristic.

2. The method of claim 1 further comprising:
receiving a second image of a microfluidic device;
generating the second plurality of features based on at least information associated with the second image;
processing information associated with the second plurality of features;
determining the third plurality of features based on at least information associated with the second plurality of features;
processing information associated with the third plurality of features and the first plurality of adjusted parameters;
determining whether a first crystal is present or absent in the second image based on at least information associated with the third plurality of features and the first plurality of adjusted parameters.

3. The method of claim 2 wherein the determining whether the first crystal is present or absent in the second image comprises:
determining a second likelihood that the first crystal is present in the second image based on at least information associated with the third plurality of features;
processing information associated with the second likelihood and a first threshold;
determining that the first crystal is present if the second likelihood exceeds a first threshold and the first crystal is absent if the second likelihood does not exceed the first threshold.

4. The method of claim 1 wherein the first plurality of features comprises at least a neighborhood line detector feature, the neighborhood line detector feature being associated with detecting at least a straight line pattern.

5. The method of claim 1 wherein the third plurality of features comprises a first Fisher feature.

6. The method of claim 1 wherein the first Fisher feature is associated with a first image state and a second image state, each of the first image state and the second image state being selected from a group consisting of a crystal state, a phase/precipitate state, and a clear state.

7. A non-transitory computer-readable medium including instructions for adjusting a classifier and processing an image of a microfluidic device, the computer-readable medium comprising:
one or more instructions for receiving a first image of a microfluidic device, the first image being associated with at least a first predetermined characteristic;
one or more instructions for generating a first plurality of features based on at least information associated with the first image;
one or more instructions for selecting a second plurality of features from the first plurality of features based on at least information associated with the first plurality of features and the at least a first predetermined characteristic;
one or more instructions for determining a third plurality of features based on at least information associated with the second plurality of features;
one or more instructions for processing information associated with the third plurality of features;
one or more instructions for determining at least a first likelihood based on at least information based on the third plurality of features and a first plurality of parameters;
one or more instructions for processing information associated with the first likelihood and the at least a first predetermined characteristic;
one or more instructions for adjusting the first plurality of parameters based on at least information associated with the first likelihood and the at least a first predetermined characteristic.

8. The non-transitory computer-readable medium of claim 7 further comprising:
one or more instructions for receiving a second image of a microfluidic device;
one or more instructions for generating the second plurality of features based on at least information associated with the second image;
one or more instructions for processing information associated with the second plurality of features;
one or more instructions for determining the third plurality of features based on at least information associated with the second plurality of features;
one or more instructions for processing information associated with the third plurality of features and the first plurality of adjusted parameters;
one or more instructions for determining whether a first crystal is present or absent in the second image based on at least information associated with the third plurality of features and the first plurality of adjusted parameters.

9. The non-transitory computer-readable medium of claim 8 wherein the one or more instructions for determining whether the first crystal is present or absent in the second image comprises:
one or more instructions for determining a second likelihood that the first crystal is present in the second image based on at least information associated with the third plurality of features;
one or more instructions for processing information associated with the second likelihood and a first threshold;
one or more instructions for determining that the first crystal is present if the second likelihood exceeds a first threshold and the first crystal is absent if the second likelihood does not exceed the first threshold.

10. The non-transitory computer-readable medium of claim 7 wherein the first plurality of features comprises at least a neighborhood line detector feature, the neighborhood line detector feature being associated with detecting at least a straight line pattern.

11. The non-transitory computer-readable medium of claim 7 wherein the third plurality of features comprises a first Fisher feature.

12. The non-transitory computer-readable medium of claim 11 wherein the first Fisher feature is associated with a first image state and a second image state, each of the first image state and the second image state being selected from a group consisting of a crystal state, a phase/precipitate state, and a clear state.